divide.pass.cpp revision bc8d3f97eb5c958007f2713238472e0c1c8fe02c
1988323c57bd25a58f05dfa492d9b9c8ab62c5153satok//===----------------------------------------------------------------------===//
2988323c57bd25a58f05dfa492d9b9c8ab62c5153satok//
3988323c57bd25a58f05dfa492d9b9c8ab62c5153satok// ��������������������The LLVM Compiler Infrastructure
4988323c57bd25a58f05dfa492d9b9c8ab62c5153satok//
5988323c57bd25a58f05dfa492d9b9c8ab62c5153satok// This file is distributed under the University of Illinois Open Source
6988323c57bd25a58f05dfa492d9b9c8ab62c5153satok// License. See LICENSE.TXT for details.
7988323c57bd25a58f05dfa492d9b9c8ab62c5153satok//
8988323c57bd25a58f05dfa492d9b9c8ab62c5153satok//===----------------------------------------------------------------------===//
9988323c57bd25a58f05dfa492d9b9c8ab62c5153satok
10988323c57bd25a58f05dfa492d9b9c8ab62c5153satok// <valarray>
11988323c57bd25a58f05dfa492d9b9c8ab62c5153satok
12988323c57bd25a58f05dfa492d9b9c8ab62c5153satok// template <class T> class gslice_array
13988323c57bd25a58f05dfa492d9b9c8ab62c5153satok
14988323c57bd25a58f05dfa492d9b9c8ab62c5153satok// void operator/= (const valarray<value_type>& v) const;
15988323c57bd25a58f05dfa492d9b9c8ab62c5153satok
16988323c57bd25a58f05dfa492d9b9c8ab62c5153satok#include <valarray>
17aafd955fa8f5c31c511763c0f826b6d7acf15b9csatok#include <cassert>
18988323c57bd25a58f05dfa492d9b9c8ab62c5153satok
19988323c57bd25a58f05dfa492d9b9c8ab62c5153satokint main()
20988323c57bd25a58f05dfa492d9b9c8ab62c5153satok{
21988323c57bd25a58f05dfa492d9b9c8ab62c5153satok    int a1[] = { 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11,
22988323c57bd25a58f05dfa492d9b9c8ab62c5153satok                12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
23988323c57bd25a58f05dfa492d9b9c8ab62c5153satok                24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
2433b8ee509f36a0168c8ce5a9091b57ab936f4c13Dianne Hackborn                36, 37, 38, 39, 40};
25988323c57bd25a58f05dfa492d9b9c8ab62c5153satok    int a2[] = {  1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11, 12,
2633b8ee509f36a0168c8ce5a9091b57ab936f4c13Dianne Hackborn                 13,  14,  15,  16,  17,  18,  19,  20,  21,  22,  23, 24};
27988323c57bd25a58f05dfa492d9b9c8ab62c5153satok    std::valarray<int> v1(a1, sizeof(a1)/sizeof(a1[0]));
2833b8ee509f36a0168c8ce5a9091b57ab936f4c13Dianne Hackborn    std::valarray<int> v2(a2, sizeof(a2)/sizeof(a2[0]));
29988323c57bd25a58f05dfa492d9b9c8ab62c5153satok    std::size_t sz[] = {2, 4, 3};
30988323c57bd25a58f05dfa492d9b9c8ab62c5153satok    std::size_t st[] = {19, 4, 1};
311bedd99761e3d2acdac947d641e7fee5db556141satok    typedef std::valarray<std::size_t> sizes;
32988323c57bd25a58f05dfa492d9b9c8ab62c5153satok    typedef std::valarray<std::size_t> strides;
33988323c57bd25a58f05dfa492d9b9c8ab62c5153satok    v1[std::gslice(3, sizes(sz, sizeof(sz)/sizeof(sz[0])),
34988323c57bd25a58f05dfa492d9b9c8ab62c5153satok                      strides(st, sizeof(st)/sizeof(st[0])))] /= v2;
35988323c57bd25a58f05dfa492d9b9c8ab62c5153satok    assert(v1.size() == 41);
36988323c57bd25a58f05dfa492d9b9c8ab62c5153satok    assert(v1[ 0] ==  0);
37988323c57bd25a58f05dfa492d9b9c8ab62c5153satok    assert(v1[ 1] ==  1);
38988323c57bd25a58f05dfa492d9b9c8ab62c5153satok    assert(v1[ 2] ==  2);
39988323c57bd25a58f05dfa492d9b9c8ab62c5153satok    assert(v1[ 3] ==  3);
4044b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[ 4] ==  2);
4144b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[ 5] ==  1);
4244b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[ 6] ==  6);
4344b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[ 7] ==  1);
4444b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[ 8] ==  1);
4544b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[ 9] ==  1);
4644b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[10] == 10);
4744b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[11] ==  1);
4844b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[12] ==  1);
4944b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[13] ==  1);
5044b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[14] == 14);
5144b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[15] ==  1);
5244b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[16] ==  1);
5344b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[17] ==  1);
5444b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[18] == 18);
5544b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[19] == 19);
5644b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[20] == 20);
5744b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[21] == 21);
5844b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[22] ==  1);
5944b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[23] ==  1);
6044b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[24] ==  1);
6144b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[25] == 25);
6244b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[26] ==  1);
6344b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[27] ==  1);
6444b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[28] ==  1);
6544b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[29] == 29);
6644b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[30] ==  1);
6744b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[31] ==  1);
6844b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[32] ==  1);
6944b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[33] == 33);
7044b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[34] ==  1);
7144b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[35] ==  1);
7244b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[36] ==  1);
7344b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[37] == 37);
7444b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[38] == 38);
7544b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[39] == 39);
7644b75030931d9c65c9e495a86d11d71da59b4429satok    assert(v1[40] == 40);
7744b75030931d9c65c9e495a86d11d71da59b4429satok}
7844b75030931d9c65c9e495a86d11d71da59b4429satok