divide.pass.cpp revision f5256e16dfc425c1d466f6308d4026d529ce9e0b
156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks//===----------------------------------------------------------------------===//
256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks//
356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks//                     The LLVM Compiler Infrastructure
456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks//
556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks// This file is distributed under the University of Illinois Open Source
656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks// License. See LICENSE.TXT for details.
756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks//
856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks//===----------------------------------------------------------------------===//
956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
1056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks// <valarray>
1156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
1256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks// template <class T> class gslice_array
1356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
1456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks// void operator/= (const valarray<value_type>& v) const;
1556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
1656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include <valarray>
1756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include <cassert>
1856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
1956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksint main()
2056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{
2156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    int a1[] = { 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11,
2256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks                12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks                24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
2456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks                36, 37, 38, 39, 40};
2556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    int a2[] = {  1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11, 12,
2656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks                 13,  14,  15,  16,  17,  18,  19,  20,  21,  22,  23, 24};
2756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    std::valarray<int> v1(a1, sizeof(a1)/sizeof(a1[0]));
2856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    std::valarray<int> v2(a2, sizeof(a2)/sizeof(a2[0]));
2956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    std::size_t sz[] = {2, 4, 3};
3056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    std::size_t st[] = {19, 4, 1};
3156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    typedef std::valarray<std::size_t> sizes;
3256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    typedef std::valarray<std::size_t> strides;
3356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    v1[std::gslice(3, sizes(sz, sizeof(sz)/sizeof(sz[0])),
3456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks                      strides(st, sizeof(st)/sizeof(st[0])))] /= v2;
357df30109963092559d3760c0661a020f9daf1030The Android Open Source Project    assert(v1.size() == 41);
367df30109963092559d3760c0661a020f9daf1030The Android Open Source Project    assert(v1[ 0] ==  0);
377df30109963092559d3760c0661a020f9daf1030The Android Open Source Project    assert(v1[ 1] ==  1);
387df30109963092559d3760c0661a020f9daf1030The Android Open Source Project    assert(v1[ 2] ==  2);
397df30109963092559d3760c0661a020f9daf1030The Android Open Source Project    assert(v1[ 3] ==  3);
407df30109963092559d3760c0661a020f9daf1030The Android Open Source Project    assert(v1[ 4] ==  2);
417df30109963092559d3760c0661a020f9daf1030The Android Open Source Project    assert(v1[ 5] ==  1);
427df30109963092559d3760c0661a020f9daf1030The Android Open Source Project    assert(v1[ 6] ==  6);
437df30109963092559d3760c0661a020f9daf1030The Android Open Source Project    assert(v1[ 7] ==  1);
447df30109963092559d3760c0661a020f9daf1030The Android Open Source Project    assert(v1[ 8] ==  1);
457df30109963092559d3760c0661a020f9daf1030The Android Open Source Project    assert(v1[ 9] ==  1);
467df30109963092559d3760c0661a020f9daf1030The Android Open Source Project    assert(v1[10] == 10);
4756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[11] ==  1);
4856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[12] ==  1);
4956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[13] ==  1);
5056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[14] == 14);
5156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[15] ==  1);
5256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[16] ==  1);
5356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[17] ==  1);
5456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[18] == 18);
5556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[19] == 19);
5656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[20] == 20);
5756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[21] == 21);
5856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[22] ==  1);
5956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[23] ==  1);
6056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[24] ==  1);
6156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[25] == 25);
6256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[26] ==  1);
6356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[27] ==  1);
6456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[28] ==  1);
6556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[29] == 29);
6656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[30] ==  1);
6756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[31] ==  1);
6856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[32] ==  1);
6956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[33] == 33);
7056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[34] ==  1);
7156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[35] ==  1);
7256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[36] ==  1);
7356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[37] == 37);
7456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[38] == 38);
7556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[39] == 39);
7656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    assert(v1[40] == 40);
7756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks}
7856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks