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