divide.pass.cpp revision b64f8b07c104c6cc986570ac8ee0ed16a9f23976
1659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry//===----------------------------------------------------------------------===//
2659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry//
3659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry//                     The LLVM Compiler Infrastructure
4659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry//
5659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry// This file is dual licensed under the MIT and the University of Illinois Open
6659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry// Source Licenses. See LICENSE.TXT for details.
7659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry//
8659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry//===----------------------------------------------------------------------===//
9659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry
10659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry// <valarray>
11659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry
12659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry// template <class T> class indirect_array
13659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry
14659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry// void operator/=(const valarray<value_type>& v) const;
15659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry
16659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry#include <valarray>
17659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry#include <cassert>
18659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry
19659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berryint main()
20659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry{
21659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    int a1[] = { 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11,
22659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry                12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
23659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry                24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
24659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry                36, 37, 38, 39, 40};
25659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    const std::size_t N1 = sizeof(a1)/sizeof(a1[0]);
26659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    int a2[] = {  1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11, 12,
27659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry                 13,  14,  15,  16,  17,  18,  19,  20,  21,  22,  23, 24};
28659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    const std::size_t N2 = sizeof(a2)/sizeof(a2[0]);
29659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    std::size_t s[N2] = { 3,  4,  5,  7,  8,  9, 11, 12, 13, 15, 16, 17,
30659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry                         22, 23, 24, 26, 27, 28, 30, 31, 32, 34, 35, 36};
31659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    std::valarray<int> v1(a1, N1);
32659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    std::valarray<int> v2(a2, N2);
33659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    std::valarray<std::size_t> ia(s, N2);
34659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    v1[ia] /= v2;
35659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1.size() == 41);
36659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[ 0] ==  0);
37659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[ 1] ==  1);
38659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[ 2] ==  2);
39659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[ 3] ==  3);
40659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[ 4] ==  2);
41659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[ 5] ==  1);
42659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[ 6] ==  6);
43659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[ 7] ==  1);
44659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[ 8] ==  1);
45659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[ 9] ==  1);
46659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[10] == 10);
47659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[11] ==  1);
48659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[12] ==  1);
49659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[13] ==  1);
50659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[14] == 14);
51659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[15] ==  1);
52659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[16] ==  1);
53659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[17] ==  1);
54659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[18] == 18);
55659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[19] == 19);
56659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[20] == 20);
57659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[21] == 21);
58659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[22] ==  1);
59659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[23] ==  1);
60659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[24] ==  1);
61659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[25] == 25);
62659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[26] ==  1);
63659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[27] ==  1);
64659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[28] ==  1);
65659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[29] == 29);
66659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[30] ==  1);
67659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[31] ==  1);
68659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[32] ==  1);
69659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[33] == 33);
70659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[34] ==  1);
71659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[35] ==  1);
72659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[36] ==  1);
73659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[37] == 37);
74659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[38] == 38);
75659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[39] == 39);
76659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry    assert(v1[40] == 40);
77659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry}
78659cdedb532e675da5676d40ee39278aadd8f0a1Paul Berry