51 constexpr int ensemble_size = 8;
57 scalar a = (scalar) 1.;
60 scalar b = (scalar) 2.;
63 std::cout << std::endl;
64 std::cout << a << std::endl;
65 std::cout << b << std::endl;
66 std::cout << m1 << std::endl;
67 TEST_EQUALITY( m1.getSize(), ensemble_size );
68 TEST_EQUALITY( m1.get(0),
true );
69 TEST_EQUALITY( m1.get(1),
false );
70 TEST_EQUALITY( m1.get(2),
true );
71 for (
auto i=3; i<ensemble_size; ++i)
72 TEST_EQUALITY( m1.get(i),
false );
74 TEST_EQUALITY( (
double) m1, 2./ensemble_size );
79 constexpr int ensemble_size = 16;
85 scalar a = (scalar) 1.;
88 scalar b = (scalar) 2.;
91 std::cout << std::endl;
92 std::cout << a << std::endl;
93 std::cout << b << std::endl;
94 std::cout << m1 << std::endl;
95 TEST_EQUALITY( m1.getSize(), ensemble_size );
96 TEST_EQUALITY( m1.get(0),
true );
97 TEST_EQUALITY( m1.get(1),
false );
98 TEST_EQUALITY( m1.get(2),
true );
99 for (
auto i=3; i<ensemble_size; ++i)
100 TEST_EQUALITY( m1.get(i),
false );
102 TEST_EQUALITY( (
double) m1, 2./ensemble_size );
128 constexpr int ensemble_size = 8;
134 scalar a = (scalar) 1.;
137 scalar b = (scalar) 2.;
145 std::cout << m1 << std::endl;
146 std::cout << mul << std::endl;
148 std::cout << mul2 << std::endl;
149 std::cout << mul3 << std::endl;
151 TEST_EQUALITY( mul[0], 2.5 );
152 TEST_EQUALITY( mul[1], 0. );
153 TEST_EQUALITY( mul[2], 2.5 );
154 for (
auto i=3; i<ensemble_size; ++i)
155 TEST_EQUALITY( mul[i], 0. );
157 TEST_EQUALITY( mul2, mul3 );
162 constexpr int ensemble_size = 16;
168 scalar a = (scalar) 1.;
171 scalar b = (scalar) 2.;
175 std::cout << m1 << std::endl;
176 std::cout << mul << std::endl;
178 TEST_EQUALITY( mul[0], 2.5 );
179 TEST_EQUALITY( mul[1], 0. );
180 TEST_EQUALITY( mul[2], 2.5 );
181 for (
auto i=3; i<ensemble_size; ++i)
182 TEST_EQUALITY( mul[i], 0. );
187 constexpr int ensemble_size = 8;
193 scalar a = (scalar) 1.;
196 scalar b = (scalar) 2.;
199 scalar mul = m1*a + !m1*b;
200 scalar mul2 = a*m1 + !m1*b;
201 std::cout << m1 << std::endl;
202 std::cout << mul << std::endl;
203 std::cout << mul2 << std::endl;
205 TEST_EQUALITY( mul[0], 2.5 );
206 TEST_EQUALITY( mul[1], 2. );
207 TEST_EQUALITY( mul[2], 2.5 );
208 for (
auto i=3; i<ensemble_size; ++i)
209 TEST_EQUALITY( mul[i], 2. );
211 TEST_EQUALITY( mul, mul2 );
216 constexpr int ensemble_size = 8;
224 scalar a = (scalar) 1.;
227 scalar b = (scalar) 2.;
230 auto m2 = a>(scalar) 0.;
233 std::cout << m1 << std::endl;
234 std::cout << m2 << std::endl;
235 std::cout << m3<< std::endl;
236 std::cout << m4<< std::endl;
239 {TEST_EQUALITY(
true,
false );}
241 {TEST_EQUALITY(
true,
true );}
243 TEST_EQUALITY((
bool) m1,
false );
244 TEST_EQUALITY((
bool) !m1,
true );
247 {TEST_EQUALITY(
true,
true );}
249 {TEST_EQUALITY(
true,
false );}
251 TEST_EQUALITY((
bool) m2,
true );
252 TEST_EQUALITY((
bool) !m2,
false );
254 TEST_EQUALITY( m2, m3 );
255 TEST_EQUALITY( m2, m4 );
565 constexpr int ensemble_size = 8;
571 scalar a2 = {0.,2.,2.,2.,2.,2.,2.,2.};
572 std::cout << a2 << std::endl;
574 scalar a = (scalar) 1.;
576 auto m = (a>(scalar) 0.);
577 std::cout <<
"m is computed" << std::endl;
578 std::cout << m << std::endl;
580 std::cout <<
"m is computed" << std::endl;
581 std::cout << m << std::endl;
583 std::cout << a << std::endl;
584 std::cout << m << std::endl;
585 std::cout << (a>=(scalar) 0. )<< std::endl;
586 std::cout << (a> 0. )<< std::endl;
587 std::cout << (a>= 0.) << std::endl;
588 std::cout << (0.<a )<< std::endl;
589 std::cout << (0.<=a) << std::endl;
591 mask_assign<scalar>(m,a) /= {a, 2.,-1.};
592 TEST_EQUALITY(a[1],0.5);
593 TEST_EQUALITY(a[2],-1.);
603 mask_assign<scalar>(m,a) /= {4.,2.,-1.};
604 TEST_EQUALITY(a[1],2.);
605 TEST_EQUALITY(a[2],-1.);
610 TEST_EQUALITY(b,0.5);
612 TEST_EQUALITY(b,-1.);