1
/***************************************************************************
2
* blitz/../vecwhere.cc where(X,Y,Z) function for vectors
4
* This program is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU General Public License
6
* as published by the Free Software Foundation; either version 2
7
* of the License, or (at your option) any later version.
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
14
* Suggestions: blitz-suggest@cybervision.com
15
* Bugs: blitz-bugs@cybervision.com
17
* For more information, please see the Blitz++ Home Page:
18
* http://seurat.uwaterloo.ca/blitz/
20
***************************************************************************
24
// Generated source file. Do not edit.
25
// genvecwhere.cpp Oct 6 2005 15:58:49
27
#ifndef BZ_VECWHERE_CC
28
#define BZ_VECWHERE_CC
32
// where(Vector<P_numtype1>, Vector<P_numtype2>, Vector<P_numtype3>)
33
template<class P_numtype1, class P_numtype2, class P_numtype3>
35
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
36
VectorIterConst<P_numtype2>,
37
VectorIterConst<P_numtype3> > >
38
where(const Vector<P_numtype1>& d1,
39
const Vector<P_numtype2>& d2,
40
const Vector<P_numtype3>& d3)
42
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
43
VectorIterConst<P_numtype2>,
44
VectorIterConst<P_numtype3> > T_expr;
46
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
51
// where(Vector<P_numtype1>, Vector<P_numtype2>, _bz_VecExpr<P_expr3>)
52
template<class P_numtype1, class P_numtype2, class P_expr3>
54
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
55
VectorIterConst<P_numtype2>,
56
_bz_VecExpr<P_expr3> > >
57
where(const Vector<P_numtype1>& d1,
58
const Vector<P_numtype2>& d2,
59
_bz_VecExpr<P_expr3> d3)
61
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
62
VectorIterConst<P_numtype2>,
63
_bz_VecExpr<P_expr3> > T_expr;
65
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
70
// where(Vector<P_numtype1>, Vector<P_numtype2>, VectorPick<P_numtype3>)
71
template<class P_numtype1, class P_numtype2, class P_numtype3>
73
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
74
VectorIterConst<P_numtype2>,
75
VectorPickIterConst<P_numtype3> > >
76
where(const Vector<P_numtype1>& d1,
77
const Vector<P_numtype2>& d2,
78
const VectorPick<P_numtype3>& d3)
80
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
81
VectorIterConst<P_numtype2>,
82
VectorPickIterConst<P_numtype3> > T_expr;
84
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
89
// where(Vector<P_numtype1>, Vector<P_numtype2>, Range)
90
template<class P_numtype1, class P_numtype2>
92
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
93
VectorIterConst<P_numtype2>,
95
where(const Vector<P_numtype1>& d1,
96
const Vector<P_numtype2>& d2,
99
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
100
VectorIterConst<P_numtype2>,
103
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
108
// where(Vector<P_numtype1>, Vector<P_numtype2>, TinyVector<P_numtype3, N_length3>)
109
template<class P_numtype1, class P_numtype2, class P_numtype3, int N_length3>
111
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
112
VectorIterConst<P_numtype2>,
113
TinyVectorIterConst<P_numtype3, N_length3> > >
114
where(const Vector<P_numtype1>& d1,
115
const Vector<P_numtype2>& d2,
116
const TinyVector<P_numtype3, N_length3>& d3)
118
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
119
VectorIterConst<P_numtype2>,
120
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
122
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
127
// where(Vector<P_numtype1>, Vector<P_numtype2>, int)
128
template<class P_numtype1, class P_numtype2>
130
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
131
VectorIterConst<P_numtype2>,
132
_bz_VecExprConstant<int> > >
133
where(const Vector<P_numtype1>& d1,
134
const Vector<P_numtype2>& d2,
137
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
138
VectorIterConst<P_numtype2>,
139
_bz_VecExprConstant<int> > T_expr;
141
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
143
_bz_VecExprConstant<int>(d3)));
146
// where(Vector<P_numtype1>, Vector<P_numtype2>, float)
147
template<class P_numtype1, class P_numtype2>
149
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
150
VectorIterConst<P_numtype2>,
151
_bz_VecExprConstant<float> > >
152
where(const Vector<P_numtype1>& d1,
153
const Vector<P_numtype2>& d2,
156
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
157
VectorIterConst<P_numtype2>,
158
_bz_VecExprConstant<float> > T_expr;
160
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
162
_bz_VecExprConstant<float>(d3)));
165
// where(Vector<P_numtype1>, Vector<P_numtype2>, double)
166
template<class P_numtype1, class P_numtype2>
168
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
169
VectorIterConst<P_numtype2>,
170
_bz_VecExprConstant<double> > >
171
where(const Vector<P_numtype1>& d1,
172
const Vector<P_numtype2>& d2,
175
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
176
VectorIterConst<P_numtype2>,
177
_bz_VecExprConstant<double> > T_expr;
179
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
181
_bz_VecExprConstant<double>(d3)));
184
// where(Vector<P_numtype1>, Vector<P_numtype2>, long double)
185
template<class P_numtype1, class P_numtype2>
187
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
188
VectorIterConst<P_numtype2>,
189
_bz_VecExprConstant<long double> > >
190
where(const Vector<P_numtype1>& d1,
191
const Vector<P_numtype2>& d2,
194
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
195
VectorIterConst<P_numtype2>,
196
_bz_VecExprConstant<long double> > T_expr;
198
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
200
_bz_VecExprConstant<long double>(d3)));
203
// where(Vector<P_numtype1>, Vector<P_numtype2>, complex<T3>)
204
#ifdef BZ_HAVE_COMPLEX
205
template<class P_numtype1, class P_numtype2, class T3>
207
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
208
VectorIterConst<P_numtype2>,
209
_bz_VecExprConstant<complex<T3> > > >
210
where(const Vector<P_numtype1>& d1,
211
const Vector<P_numtype2>& d2,
214
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
215
VectorIterConst<P_numtype2>,
216
_bz_VecExprConstant<complex<T3> > > T_expr;
218
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
220
_bz_VecExprConstant<complex<T3> > (d3)));
222
#endif // BZ_HAVE_COMPLEX
224
// where(Vector<P_numtype1>, _bz_VecExpr<P_expr2>, Vector<P_numtype3>)
225
template<class P_numtype1, class P_expr2, class P_numtype3>
227
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
228
_bz_VecExpr<P_expr2>,
229
VectorIterConst<P_numtype3> > >
230
where(const Vector<P_numtype1>& d1,
231
_bz_VecExpr<P_expr2> d2,
232
const Vector<P_numtype3>& d3)
234
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
235
_bz_VecExpr<P_expr2>,
236
VectorIterConst<P_numtype3> > T_expr;
238
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
243
// where(Vector<P_numtype1>, _bz_VecExpr<P_expr2>, _bz_VecExpr<P_expr3>)
244
template<class P_numtype1, class P_expr2, class P_expr3>
246
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
247
_bz_VecExpr<P_expr2>,
248
_bz_VecExpr<P_expr3> > >
249
where(const Vector<P_numtype1>& d1,
250
_bz_VecExpr<P_expr2> d2,
251
_bz_VecExpr<P_expr3> d3)
253
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
254
_bz_VecExpr<P_expr2>,
255
_bz_VecExpr<P_expr3> > T_expr;
257
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
262
// where(Vector<P_numtype1>, _bz_VecExpr<P_expr2>, VectorPick<P_numtype3>)
263
template<class P_numtype1, class P_expr2, class P_numtype3>
265
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
266
_bz_VecExpr<P_expr2>,
267
VectorPickIterConst<P_numtype3> > >
268
where(const Vector<P_numtype1>& d1,
269
_bz_VecExpr<P_expr2> d2,
270
const VectorPick<P_numtype3>& d3)
272
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
273
_bz_VecExpr<P_expr2>,
274
VectorPickIterConst<P_numtype3> > T_expr;
276
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
281
// where(Vector<P_numtype1>, _bz_VecExpr<P_expr2>, Range)
282
template<class P_numtype1, class P_expr2>
284
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
285
_bz_VecExpr<P_expr2>,
287
where(const Vector<P_numtype1>& d1,
288
_bz_VecExpr<P_expr2> d2,
291
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
292
_bz_VecExpr<P_expr2>,
295
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
300
// where(Vector<P_numtype1>, _bz_VecExpr<P_expr2>, TinyVector<P_numtype3, N_length3>)
301
template<class P_numtype1, class P_expr2, class P_numtype3, int N_length3>
303
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
304
_bz_VecExpr<P_expr2>,
305
TinyVectorIterConst<P_numtype3, N_length3> > >
306
where(const Vector<P_numtype1>& d1,
307
_bz_VecExpr<P_expr2> d2,
308
const TinyVector<P_numtype3, N_length3>& d3)
310
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
311
_bz_VecExpr<P_expr2>,
312
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
314
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
319
// where(Vector<P_numtype1>, _bz_VecExpr<P_expr2>, int)
320
template<class P_numtype1, class P_expr2>
322
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
323
_bz_VecExpr<P_expr2>,
324
_bz_VecExprConstant<int> > >
325
where(const Vector<P_numtype1>& d1,
326
_bz_VecExpr<P_expr2> d2,
329
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
330
_bz_VecExpr<P_expr2>,
331
_bz_VecExprConstant<int> > T_expr;
333
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
335
_bz_VecExprConstant<int>(d3)));
338
// where(Vector<P_numtype1>, _bz_VecExpr<P_expr2>, float)
339
template<class P_numtype1, class P_expr2>
341
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
342
_bz_VecExpr<P_expr2>,
343
_bz_VecExprConstant<float> > >
344
where(const Vector<P_numtype1>& d1,
345
_bz_VecExpr<P_expr2> d2,
348
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
349
_bz_VecExpr<P_expr2>,
350
_bz_VecExprConstant<float> > T_expr;
352
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
354
_bz_VecExprConstant<float>(d3)));
357
// where(Vector<P_numtype1>, _bz_VecExpr<P_expr2>, double)
358
template<class P_numtype1, class P_expr2>
360
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
361
_bz_VecExpr<P_expr2>,
362
_bz_VecExprConstant<double> > >
363
where(const Vector<P_numtype1>& d1,
364
_bz_VecExpr<P_expr2> d2,
367
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
368
_bz_VecExpr<P_expr2>,
369
_bz_VecExprConstant<double> > T_expr;
371
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
373
_bz_VecExprConstant<double>(d3)));
376
// where(Vector<P_numtype1>, _bz_VecExpr<P_expr2>, long double)
377
template<class P_numtype1, class P_expr2>
379
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
380
_bz_VecExpr<P_expr2>,
381
_bz_VecExprConstant<long double> > >
382
where(const Vector<P_numtype1>& d1,
383
_bz_VecExpr<P_expr2> d2,
386
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
387
_bz_VecExpr<P_expr2>,
388
_bz_VecExprConstant<long double> > T_expr;
390
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
392
_bz_VecExprConstant<long double>(d3)));
395
// where(Vector<P_numtype1>, _bz_VecExpr<P_expr2>, complex<T3>)
396
#ifdef BZ_HAVE_COMPLEX
397
template<class P_numtype1, class P_expr2, class T3>
399
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
400
_bz_VecExpr<P_expr2>,
401
_bz_VecExprConstant<complex<T3> > > >
402
where(const Vector<P_numtype1>& d1,
403
_bz_VecExpr<P_expr2> d2,
406
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
407
_bz_VecExpr<P_expr2>,
408
_bz_VecExprConstant<complex<T3> > > T_expr;
410
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
412
_bz_VecExprConstant<complex<T3> > (d3)));
414
#endif // BZ_HAVE_COMPLEX
416
// where(Vector<P_numtype1>, VectorPick<P_numtype2>, Vector<P_numtype3>)
417
template<class P_numtype1, class P_numtype2, class P_numtype3>
419
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
420
VectorPickIterConst<P_numtype2>,
421
VectorIterConst<P_numtype3> > >
422
where(const Vector<P_numtype1>& d1,
423
const VectorPick<P_numtype2>& d2,
424
const Vector<P_numtype3>& d3)
426
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
427
VectorPickIterConst<P_numtype2>,
428
VectorIterConst<P_numtype3> > T_expr;
430
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
435
// where(Vector<P_numtype1>, VectorPick<P_numtype2>, _bz_VecExpr<P_expr3>)
436
template<class P_numtype1, class P_numtype2, class P_expr3>
438
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
439
VectorPickIterConst<P_numtype2>,
440
_bz_VecExpr<P_expr3> > >
441
where(const Vector<P_numtype1>& d1,
442
const VectorPick<P_numtype2>& d2,
443
_bz_VecExpr<P_expr3> d3)
445
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
446
VectorPickIterConst<P_numtype2>,
447
_bz_VecExpr<P_expr3> > T_expr;
449
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
454
// where(Vector<P_numtype1>, VectorPick<P_numtype2>, VectorPick<P_numtype3>)
455
template<class P_numtype1, class P_numtype2, class P_numtype3>
457
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
458
VectorPickIterConst<P_numtype2>,
459
VectorPickIterConst<P_numtype3> > >
460
where(const Vector<P_numtype1>& d1,
461
const VectorPick<P_numtype2>& d2,
462
const VectorPick<P_numtype3>& d3)
464
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
465
VectorPickIterConst<P_numtype2>,
466
VectorPickIterConst<P_numtype3> > T_expr;
468
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
473
// where(Vector<P_numtype1>, VectorPick<P_numtype2>, Range)
474
template<class P_numtype1, class P_numtype2>
476
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
477
VectorPickIterConst<P_numtype2>,
479
where(const Vector<P_numtype1>& d1,
480
const VectorPick<P_numtype2>& d2,
483
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
484
VectorPickIterConst<P_numtype2>,
487
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
492
// where(Vector<P_numtype1>, VectorPick<P_numtype2>, TinyVector<P_numtype3, N_length3>)
493
template<class P_numtype1, class P_numtype2, class P_numtype3, int N_length3>
495
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
496
VectorPickIterConst<P_numtype2>,
497
TinyVectorIterConst<P_numtype3, N_length3> > >
498
where(const Vector<P_numtype1>& d1,
499
const VectorPick<P_numtype2>& d2,
500
const TinyVector<P_numtype3, N_length3>& d3)
502
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
503
VectorPickIterConst<P_numtype2>,
504
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
506
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
511
// where(Vector<P_numtype1>, VectorPick<P_numtype2>, int)
512
template<class P_numtype1, class P_numtype2>
514
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
515
VectorPickIterConst<P_numtype2>,
516
_bz_VecExprConstant<int> > >
517
where(const Vector<P_numtype1>& d1,
518
const VectorPick<P_numtype2>& d2,
521
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
522
VectorPickIterConst<P_numtype2>,
523
_bz_VecExprConstant<int> > T_expr;
525
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
527
_bz_VecExprConstant<int>(d3)));
530
// where(Vector<P_numtype1>, VectorPick<P_numtype2>, float)
531
template<class P_numtype1, class P_numtype2>
533
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
534
VectorPickIterConst<P_numtype2>,
535
_bz_VecExprConstant<float> > >
536
where(const Vector<P_numtype1>& d1,
537
const VectorPick<P_numtype2>& d2,
540
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
541
VectorPickIterConst<P_numtype2>,
542
_bz_VecExprConstant<float> > T_expr;
544
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
546
_bz_VecExprConstant<float>(d3)));
549
// where(Vector<P_numtype1>, VectorPick<P_numtype2>, double)
550
template<class P_numtype1, class P_numtype2>
552
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
553
VectorPickIterConst<P_numtype2>,
554
_bz_VecExprConstant<double> > >
555
where(const Vector<P_numtype1>& d1,
556
const VectorPick<P_numtype2>& d2,
559
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
560
VectorPickIterConst<P_numtype2>,
561
_bz_VecExprConstant<double> > T_expr;
563
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
565
_bz_VecExprConstant<double>(d3)));
568
// where(Vector<P_numtype1>, VectorPick<P_numtype2>, long double)
569
template<class P_numtype1, class P_numtype2>
571
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
572
VectorPickIterConst<P_numtype2>,
573
_bz_VecExprConstant<long double> > >
574
where(const Vector<P_numtype1>& d1,
575
const VectorPick<P_numtype2>& d2,
578
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
579
VectorPickIterConst<P_numtype2>,
580
_bz_VecExprConstant<long double> > T_expr;
582
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
584
_bz_VecExprConstant<long double>(d3)));
587
// where(Vector<P_numtype1>, VectorPick<P_numtype2>, complex<T3>)
588
#ifdef BZ_HAVE_COMPLEX
589
template<class P_numtype1, class P_numtype2, class T3>
591
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
592
VectorPickIterConst<P_numtype2>,
593
_bz_VecExprConstant<complex<T3> > > >
594
where(const Vector<P_numtype1>& d1,
595
const VectorPick<P_numtype2>& d2,
598
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
599
VectorPickIterConst<P_numtype2>,
600
_bz_VecExprConstant<complex<T3> > > T_expr;
602
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
604
_bz_VecExprConstant<complex<T3> > (d3)));
606
#endif // BZ_HAVE_COMPLEX
608
// where(Vector<P_numtype1>, Range, Vector<P_numtype3>)
609
template<class P_numtype1, class P_numtype3>
611
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
613
VectorIterConst<P_numtype3> > >
614
where(const Vector<P_numtype1>& d1,
616
const Vector<P_numtype3>& d3)
618
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
620
VectorIterConst<P_numtype3> > T_expr;
622
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
627
// where(Vector<P_numtype1>, Range, _bz_VecExpr<P_expr3>)
628
template<class P_numtype1, class P_expr3>
630
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
632
_bz_VecExpr<P_expr3> > >
633
where(const Vector<P_numtype1>& d1,
635
_bz_VecExpr<P_expr3> d3)
637
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
639
_bz_VecExpr<P_expr3> > T_expr;
641
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
646
// where(Vector<P_numtype1>, Range, VectorPick<P_numtype3>)
647
template<class P_numtype1, class P_numtype3>
649
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
651
VectorPickIterConst<P_numtype3> > >
652
where(const Vector<P_numtype1>& d1,
654
const VectorPick<P_numtype3>& d3)
656
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
658
VectorPickIterConst<P_numtype3> > T_expr;
660
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
665
// where(Vector<P_numtype1>, Range, Range)
666
template<class P_numtype1>
668
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
671
where(const Vector<P_numtype1>& d1,
675
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
679
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
684
// where(Vector<P_numtype1>, Range, TinyVector<P_numtype3, N_length3>)
685
template<class P_numtype1, class P_numtype3, int N_length3>
687
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
689
TinyVectorIterConst<P_numtype3, N_length3> > >
690
where(const Vector<P_numtype1>& d1,
692
const TinyVector<P_numtype3, N_length3>& d3)
694
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
696
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
698
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
703
// where(Vector<P_numtype1>, Range, int)
704
template<class P_numtype1>
706
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
708
_bz_VecExprConstant<int> > >
709
where(const Vector<P_numtype1>& d1,
713
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
715
_bz_VecExprConstant<int> > T_expr;
717
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
719
_bz_VecExprConstant<int>(d3)));
722
// where(Vector<P_numtype1>, Range, float)
723
template<class P_numtype1>
725
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
727
_bz_VecExprConstant<float> > >
728
where(const Vector<P_numtype1>& d1,
732
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
734
_bz_VecExprConstant<float> > T_expr;
736
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
738
_bz_VecExprConstant<float>(d3)));
741
// where(Vector<P_numtype1>, Range, double)
742
template<class P_numtype1>
744
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
746
_bz_VecExprConstant<double> > >
747
where(const Vector<P_numtype1>& d1,
751
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
753
_bz_VecExprConstant<double> > T_expr;
755
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
757
_bz_VecExprConstant<double>(d3)));
760
// where(Vector<P_numtype1>, Range, long double)
761
template<class P_numtype1>
763
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
765
_bz_VecExprConstant<long double> > >
766
where(const Vector<P_numtype1>& d1,
770
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
772
_bz_VecExprConstant<long double> > T_expr;
774
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
776
_bz_VecExprConstant<long double>(d3)));
779
// where(Vector<P_numtype1>, Range, complex<T3>)
780
#ifdef BZ_HAVE_COMPLEX
781
template<class P_numtype1, class T3>
783
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
785
_bz_VecExprConstant<complex<T3> > > >
786
where(const Vector<P_numtype1>& d1,
790
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
792
_bz_VecExprConstant<complex<T3> > > T_expr;
794
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
796
_bz_VecExprConstant<complex<T3> > (d3)));
798
#endif // BZ_HAVE_COMPLEX
800
// where(Vector<P_numtype1>, TinyVector<P_numtype2, N_length2>, Vector<P_numtype3>)
801
template<class P_numtype1, class P_numtype2, int N_length2, class P_numtype3>
803
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
804
TinyVectorIterConst<P_numtype2, N_length2>,
805
VectorIterConst<P_numtype3> > >
806
where(const Vector<P_numtype1>& d1,
807
const TinyVector<P_numtype2, N_length2>& d2,
808
const Vector<P_numtype3>& d3)
810
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
811
TinyVectorIterConst<P_numtype2, N_length2>,
812
VectorIterConst<P_numtype3> > T_expr;
814
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
819
// where(Vector<P_numtype1>, TinyVector<P_numtype2, N_length2>, _bz_VecExpr<P_expr3>)
820
template<class P_numtype1, class P_numtype2, int N_length2, class P_expr3>
822
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
823
TinyVectorIterConst<P_numtype2, N_length2>,
824
_bz_VecExpr<P_expr3> > >
825
where(const Vector<P_numtype1>& d1,
826
const TinyVector<P_numtype2, N_length2>& d2,
827
_bz_VecExpr<P_expr3> d3)
829
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
830
TinyVectorIterConst<P_numtype2, N_length2>,
831
_bz_VecExpr<P_expr3> > T_expr;
833
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
838
// where(Vector<P_numtype1>, TinyVector<P_numtype2, N_length2>, VectorPick<P_numtype3>)
839
template<class P_numtype1, class P_numtype2, int N_length2, class P_numtype3>
841
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
842
TinyVectorIterConst<P_numtype2, N_length2>,
843
VectorPickIterConst<P_numtype3> > >
844
where(const Vector<P_numtype1>& d1,
845
const TinyVector<P_numtype2, N_length2>& d2,
846
const VectorPick<P_numtype3>& d3)
848
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
849
TinyVectorIterConst<P_numtype2, N_length2>,
850
VectorPickIterConst<P_numtype3> > T_expr;
852
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
857
// where(Vector<P_numtype1>, TinyVector<P_numtype2, N_length2>, Range)
858
template<class P_numtype1, class P_numtype2, int N_length2>
860
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
861
TinyVectorIterConst<P_numtype2, N_length2>,
863
where(const Vector<P_numtype1>& d1,
864
const TinyVector<P_numtype2, N_length2>& d2,
867
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
868
TinyVectorIterConst<P_numtype2, N_length2>,
871
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
876
// where(Vector<P_numtype1>, TinyVector<P_numtype2, N_length2>, TinyVector<P_numtype3, N_length3>)
877
template<class P_numtype1, class P_numtype2, int N_length2, class P_numtype3, int N_length3>
879
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
880
TinyVectorIterConst<P_numtype2, N_length2>,
881
TinyVectorIterConst<P_numtype3, N_length3> > >
882
where(const Vector<P_numtype1>& d1,
883
const TinyVector<P_numtype2, N_length2>& d2,
884
const TinyVector<P_numtype3, N_length3>& d3)
886
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
887
TinyVectorIterConst<P_numtype2, N_length2>,
888
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
890
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
895
// where(Vector<P_numtype1>, TinyVector<P_numtype2, N_length2>, int)
896
template<class P_numtype1, class P_numtype2, int N_length2>
898
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
899
TinyVectorIterConst<P_numtype2, N_length2>,
900
_bz_VecExprConstant<int> > >
901
where(const Vector<P_numtype1>& d1,
902
const TinyVector<P_numtype2, N_length2>& d2,
905
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
906
TinyVectorIterConst<P_numtype2, N_length2>,
907
_bz_VecExprConstant<int> > T_expr;
909
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
911
_bz_VecExprConstant<int>(d3)));
914
// where(Vector<P_numtype1>, TinyVector<P_numtype2, N_length2>, float)
915
template<class P_numtype1, class P_numtype2, int N_length2>
917
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
918
TinyVectorIterConst<P_numtype2, N_length2>,
919
_bz_VecExprConstant<float> > >
920
where(const Vector<P_numtype1>& d1,
921
const TinyVector<P_numtype2, N_length2>& d2,
924
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
925
TinyVectorIterConst<P_numtype2, N_length2>,
926
_bz_VecExprConstant<float> > T_expr;
928
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
930
_bz_VecExprConstant<float>(d3)));
933
// where(Vector<P_numtype1>, TinyVector<P_numtype2, N_length2>, double)
934
template<class P_numtype1, class P_numtype2, int N_length2>
936
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
937
TinyVectorIterConst<P_numtype2, N_length2>,
938
_bz_VecExprConstant<double> > >
939
where(const Vector<P_numtype1>& d1,
940
const TinyVector<P_numtype2, N_length2>& d2,
943
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
944
TinyVectorIterConst<P_numtype2, N_length2>,
945
_bz_VecExprConstant<double> > T_expr;
947
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
949
_bz_VecExprConstant<double>(d3)));
952
// where(Vector<P_numtype1>, TinyVector<P_numtype2, N_length2>, long double)
953
template<class P_numtype1, class P_numtype2, int N_length2>
955
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
956
TinyVectorIterConst<P_numtype2, N_length2>,
957
_bz_VecExprConstant<long double> > >
958
where(const Vector<P_numtype1>& d1,
959
const TinyVector<P_numtype2, N_length2>& d2,
962
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
963
TinyVectorIterConst<P_numtype2, N_length2>,
964
_bz_VecExprConstant<long double> > T_expr;
966
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
968
_bz_VecExprConstant<long double>(d3)));
971
// where(Vector<P_numtype1>, TinyVector<P_numtype2, N_length2>, complex<T3>)
972
#ifdef BZ_HAVE_COMPLEX
973
template<class P_numtype1, class P_numtype2, int N_length2, class T3>
975
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
976
TinyVectorIterConst<P_numtype2, N_length2>,
977
_bz_VecExprConstant<complex<T3> > > >
978
where(const Vector<P_numtype1>& d1,
979
const TinyVector<P_numtype2, N_length2>& d2,
982
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
983
TinyVectorIterConst<P_numtype2, N_length2>,
984
_bz_VecExprConstant<complex<T3> > > T_expr;
986
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
988
_bz_VecExprConstant<complex<T3> > (d3)));
990
#endif // BZ_HAVE_COMPLEX
992
// where(Vector<P_numtype1>, int, Vector<P_numtype3>)
993
template<class P_numtype1, class P_numtype3>
995
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
996
_bz_VecExprConstant<int>,
997
VectorIterConst<P_numtype3> > >
998
where(const Vector<P_numtype1>& d1,
1000
const Vector<P_numtype3>& d3)
1002
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1003
_bz_VecExprConstant<int>,
1004
VectorIterConst<P_numtype3> > T_expr;
1006
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1007
_bz_VecExprConstant<int>(d2),
1011
// where(Vector<P_numtype1>, int, _bz_VecExpr<P_expr3>)
1012
template<class P_numtype1, class P_expr3>
1014
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1015
_bz_VecExprConstant<int>,
1016
_bz_VecExpr<P_expr3> > >
1017
where(const Vector<P_numtype1>& d1,
1019
_bz_VecExpr<P_expr3> d3)
1021
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1022
_bz_VecExprConstant<int>,
1023
_bz_VecExpr<P_expr3> > T_expr;
1025
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1026
_bz_VecExprConstant<int>(d2),
1030
// where(Vector<P_numtype1>, int, VectorPick<P_numtype3>)
1031
template<class P_numtype1, class P_numtype3>
1033
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1034
_bz_VecExprConstant<int>,
1035
VectorPickIterConst<P_numtype3> > >
1036
where(const Vector<P_numtype1>& d1,
1038
const VectorPick<P_numtype3>& d3)
1040
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1041
_bz_VecExprConstant<int>,
1042
VectorPickIterConst<P_numtype3> > T_expr;
1044
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1045
_bz_VecExprConstant<int>(d2),
1049
// where(Vector<P_numtype1>, int, Range)
1050
template<class P_numtype1>
1052
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1053
_bz_VecExprConstant<int>,
1055
where(const Vector<P_numtype1>& d1,
1059
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1060
_bz_VecExprConstant<int>,
1063
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1064
_bz_VecExprConstant<int>(d2),
1068
// where(Vector<P_numtype1>, int, TinyVector<P_numtype3, N_length3>)
1069
template<class P_numtype1, class P_numtype3, int N_length3>
1071
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1072
_bz_VecExprConstant<int>,
1073
TinyVectorIterConst<P_numtype3, N_length3> > >
1074
where(const Vector<P_numtype1>& d1,
1076
const TinyVector<P_numtype3, N_length3>& d3)
1078
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1079
_bz_VecExprConstant<int>,
1080
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
1082
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1083
_bz_VecExprConstant<int>(d2),
1087
// where(Vector<P_numtype1>, int, int)
1088
template<class P_numtype1>
1090
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1091
_bz_VecExprConstant<int>,
1092
_bz_VecExprConstant<int> > >
1093
where(const Vector<P_numtype1>& d1,
1097
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1098
_bz_VecExprConstant<int>,
1099
_bz_VecExprConstant<int> > T_expr;
1101
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1102
_bz_VecExprConstant<int>(d2),
1103
_bz_VecExprConstant<int>(d3)));
1106
// where(Vector<P_numtype1>, float, Vector<P_numtype3>)
1107
template<class P_numtype1, class P_numtype3>
1109
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1110
_bz_VecExprConstant<float>,
1111
VectorIterConst<P_numtype3> > >
1112
where(const Vector<P_numtype1>& d1,
1114
const Vector<P_numtype3>& d3)
1116
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1117
_bz_VecExprConstant<float>,
1118
VectorIterConst<P_numtype3> > T_expr;
1120
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1121
_bz_VecExprConstant<float>(d2),
1125
// where(Vector<P_numtype1>, float, _bz_VecExpr<P_expr3>)
1126
template<class P_numtype1, class P_expr3>
1128
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1129
_bz_VecExprConstant<float>,
1130
_bz_VecExpr<P_expr3> > >
1131
where(const Vector<P_numtype1>& d1,
1133
_bz_VecExpr<P_expr3> d3)
1135
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1136
_bz_VecExprConstant<float>,
1137
_bz_VecExpr<P_expr3> > T_expr;
1139
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1140
_bz_VecExprConstant<float>(d2),
1144
// where(Vector<P_numtype1>, float, VectorPick<P_numtype3>)
1145
template<class P_numtype1, class P_numtype3>
1147
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1148
_bz_VecExprConstant<float>,
1149
VectorPickIterConst<P_numtype3> > >
1150
where(const Vector<P_numtype1>& d1,
1152
const VectorPick<P_numtype3>& d3)
1154
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1155
_bz_VecExprConstant<float>,
1156
VectorPickIterConst<P_numtype3> > T_expr;
1158
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1159
_bz_VecExprConstant<float>(d2),
1163
// where(Vector<P_numtype1>, float, Range)
1164
template<class P_numtype1>
1166
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1167
_bz_VecExprConstant<float>,
1169
where(const Vector<P_numtype1>& d1,
1173
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1174
_bz_VecExprConstant<float>,
1177
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1178
_bz_VecExprConstant<float>(d2),
1182
// where(Vector<P_numtype1>, float, TinyVector<P_numtype3, N_length3>)
1183
template<class P_numtype1, class P_numtype3, int N_length3>
1185
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1186
_bz_VecExprConstant<float>,
1187
TinyVectorIterConst<P_numtype3, N_length3> > >
1188
where(const Vector<P_numtype1>& d1,
1190
const TinyVector<P_numtype3, N_length3>& d3)
1192
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1193
_bz_VecExprConstant<float>,
1194
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
1196
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1197
_bz_VecExprConstant<float>(d2),
1201
// where(Vector<P_numtype1>, float, float)
1202
template<class P_numtype1>
1204
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1205
_bz_VecExprConstant<float>,
1206
_bz_VecExprConstant<float> > >
1207
where(const Vector<P_numtype1>& d1,
1211
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1212
_bz_VecExprConstant<float>,
1213
_bz_VecExprConstant<float> > T_expr;
1215
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1216
_bz_VecExprConstant<float>(d2),
1217
_bz_VecExprConstant<float>(d3)));
1220
// where(Vector<P_numtype1>, double, Vector<P_numtype3>)
1221
template<class P_numtype1, class P_numtype3>
1223
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1224
_bz_VecExprConstant<double>,
1225
VectorIterConst<P_numtype3> > >
1226
where(const Vector<P_numtype1>& d1,
1228
const Vector<P_numtype3>& d3)
1230
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1231
_bz_VecExprConstant<double>,
1232
VectorIterConst<P_numtype3> > T_expr;
1234
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1235
_bz_VecExprConstant<double>(d2),
1239
// where(Vector<P_numtype1>, double, _bz_VecExpr<P_expr3>)
1240
template<class P_numtype1, class P_expr3>
1242
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1243
_bz_VecExprConstant<double>,
1244
_bz_VecExpr<P_expr3> > >
1245
where(const Vector<P_numtype1>& d1,
1247
_bz_VecExpr<P_expr3> d3)
1249
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1250
_bz_VecExprConstant<double>,
1251
_bz_VecExpr<P_expr3> > T_expr;
1253
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1254
_bz_VecExprConstant<double>(d2),
1258
// where(Vector<P_numtype1>, double, VectorPick<P_numtype3>)
1259
template<class P_numtype1, class P_numtype3>
1261
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1262
_bz_VecExprConstant<double>,
1263
VectorPickIterConst<P_numtype3> > >
1264
where(const Vector<P_numtype1>& d1,
1266
const VectorPick<P_numtype3>& d3)
1268
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1269
_bz_VecExprConstant<double>,
1270
VectorPickIterConst<P_numtype3> > T_expr;
1272
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1273
_bz_VecExprConstant<double>(d2),
1277
// where(Vector<P_numtype1>, double, Range)
1278
template<class P_numtype1>
1280
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1281
_bz_VecExprConstant<double>,
1283
where(const Vector<P_numtype1>& d1,
1287
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1288
_bz_VecExprConstant<double>,
1291
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1292
_bz_VecExprConstant<double>(d2),
1296
// where(Vector<P_numtype1>, double, TinyVector<P_numtype3, N_length3>)
1297
template<class P_numtype1, class P_numtype3, int N_length3>
1299
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1300
_bz_VecExprConstant<double>,
1301
TinyVectorIterConst<P_numtype3, N_length3> > >
1302
where(const Vector<P_numtype1>& d1,
1304
const TinyVector<P_numtype3, N_length3>& d3)
1306
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1307
_bz_VecExprConstant<double>,
1308
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
1310
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1311
_bz_VecExprConstant<double>(d2),
1315
// where(Vector<P_numtype1>, double, double)
1316
template<class P_numtype1>
1318
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1319
_bz_VecExprConstant<double>,
1320
_bz_VecExprConstant<double> > >
1321
where(const Vector<P_numtype1>& d1,
1325
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1326
_bz_VecExprConstant<double>,
1327
_bz_VecExprConstant<double> > T_expr;
1329
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1330
_bz_VecExprConstant<double>(d2),
1331
_bz_VecExprConstant<double>(d3)));
1334
// where(Vector<P_numtype1>, long double, Vector<P_numtype3>)
1335
template<class P_numtype1, class P_numtype3>
1337
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1338
_bz_VecExprConstant<long double>,
1339
VectorIterConst<P_numtype3> > >
1340
where(const Vector<P_numtype1>& d1,
1342
const Vector<P_numtype3>& d3)
1344
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1345
_bz_VecExprConstant<long double>,
1346
VectorIterConst<P_numtype3> > T_expr;
1348
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1349
_bz_VecExprConstant<long double>(d2),
1353
// where(Vector<P_numtype1>, long double, _bz_VecExpr<P_expr3>)
1354
template<class P_numtype1, class P_expr3>
1356
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1357
_bz_VecExprConstant<long double>,
1358
_bz_VecExpr<P_expr3> > >
1359
where(const Vector<P_numtype1>& d1,
1361
_bz_VecExpr<P_expr3> d3)
1363
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1364
_bz_VecExprConstant<long double>,
1365
_bz_VecExpr<P_expr3> > T_expr;
1367
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1368
_bz_VecExprConstant<long double>(d2),
1372
// where(Vector<P_numtype1>, long double, VectorPick<P_numtype3>)
1373
template<class P_numtype1, class P_numtype3>
1375
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1376
_bz_VecExprConstant<long double>,
1377
VectorPickIterConst<P_numtype3> > >
1378
where(const Vector<P_numtype1>& d1,
1380
const VectorPick<P_numtype3>& d3)
1382
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1383
_bz_VecExprConstant<long double>,
1384
VectorPickIterConst<P_numtype3> > T_expr;
1386
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1387
_bz_VecExprConstant<long double>(d2),
1391
// where(Vector<P_numtype1>, long double, Range)
1392
template<class P_numtype1>
1394
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1395
_bz_VecExprConstant<long double>,
1397
where(const Vector<P_numtype1>& d1,
1401
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1402
_bz_VecExprConstant<long double>,
1405
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1406
_bz_VecExprConstant<long double>(d2),
1410
// where(Vector<P_numtype1>, long double, TinyVector<P_numtype3, N_length3>)
1411
template<class P_numtype1, class P_numtype3, int N_length3>
1413
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1414
_bz_VecExprConstant<long double>,
1415
TinyVectorIterConst<P_numtype3, N_length3> > >
1416
where(const Vector<P_numtype1>& d1,
1418
const TinyVector<P_numtype3, N_length3>& d3)
1420
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1421
_bz_VecExprConstant<long double>,
1422
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
1424
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1425
_bz_VecExprConstant<long double>(d2),
1429
// where(Vector<P_numtype1>, long double, long double)
1430
template<class P_numtype1>
1432
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1433
_bz_VecExprConstant<long double>,
1434
_bz_VecExprConstant<long double> > >
1435
where(const Vector<P_numtype1>& d1,
1439
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1440
_bz_VecExprConstant<long double>,
1441
_bz_VecExprConstant<long double> > T_expr;
1443
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1444
_bz_VecExprConstant<long double>(d2),
1445
_bz_VecExprConstant<long double>(d3)));
1448
// where(Vector<P_numtype1>, complex<T2>, Vector<P_numtype3>)
1449
#ifdef BZ_HAVE_COMPLEX
1450
template<class P_numtype1, class T2, class P_numtype3>
1452
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1453
_bz_VecExprConstant<complex<T2> > ,
1454
VectorIterConst<P_numtype3> > >
1455
where(const Vector<P_numtype1>& d1,
1457
const Vector<P_numtype3>& d3)
1459
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1460
_bz_VecExprConstant<complex<T2> > ,
1461
VectorIterConst<P_numtype3> > T_expr;
1463
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1464
_bz_VecExprConstant<complex<T2> > (d2),
1467
#endif // BZ_HAVE_COMPLEX
1469
// where(Vector<P_numtype1>, complex<T2>, _bz_VecExpr<P_expr3>)
1470
#ifdef BZ_HAVE_COMPLEX
1471
template<class P_numtype1, class T2, class P_expr3>
1473
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1474
_bz_VecExprConstant<complex<T2> > ,
1475
_bz_VecExpr<P_expr3> > >
1476
where(const Vector<P_numtype1>& d1,
1478
_bz_VecExpr<P_expr3> d3)
1480
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1481
_bz_VecExprConstant<complex<T2> > ,
1482
_bz_VecExpr<P_expr3> > T_expr;
1484
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1485
_bz_VecExprConstant<complex<T2> > (d2),
1488
#endif // BZ_HAVE_COMPLEX
1490
// where(Vector<P_numtype1>, complex<T2>, VectorPick<P_numtype3>)
1491
#ifdef BZ_HAVE_COMPLEX
1492
template<class P_numtype1, class T2, class P_numtype3>
1494
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1495
_bz_VecExprConstant<complex<T2> > ,
1496
VectorPickIterConst<P_numtype3> > >
1497
where(const Vector<P_numtype1>& d1,
1499
const VectorPick<P_numtype3>& d3)
1501
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1502
_bz_VecExprConstant<complex<T2> > ,
1503
VectorPickIterConst<P_numtype3> > T_expr;
1505
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1506
_bz_VecExprConstant<complex<T2> > (d2),
1509
#endif // BZ_HAVE_COMPLEX
1511
// where(Vector<P_numtype1>, complex<T2>, Range)
1512
#ifdef BZ_HAVE_COMPLEX
1513
template<class P_numtype1, class T2>
1515
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1516
_bz_VecExprConstant<complex<T2> > ,
1518
where(const Vector<P_numtype1>& d1,
1522
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1523
_bz_VecExprConstant<complex<T2> > ,
1526
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1527
_bz_VecExprConstant<complex<T2> > (d2),
1530
#endif // BZ_HAVE_COMPLEX
1532
// where(Vector<P_numtype1>, complex<T2>, TinyVector<P_numtype3, N_length3>)
1533
#ifdef BZ_HAVE_COMPLEX
1534
template<class P_numtype1, class T2, class P_numtype3, int N_length3>
1536
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1537
_bz_VecExprConstant<complex<T2> > ,
1538
TinyVectorIterConst<P_numtype3, N_length3> > >
1539
where(const Vector<P_numtype1>& d1,
1541
const TinyVector<P_numtype3, N_length3>& d3)
1543
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1544
_bz_VecExprConstant<complex<T2> > ,
1545
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
1547
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1548
_bz_VecExprConstant<complex<T2> > (d2),
1551
#endif // BZ_HAVE_COMPLEX
1553
// where(Vector<P_numtype1>, complex<T2>, complex<T3>)
1554
#ifdef BZ_HAVE_COMPLEX
1555
template<class P_numtype1, class T2, class T3>
1557
_bz_VecExpr<_bz_VecWhere<VectorIterConst<P_numtype1>,
1558
_bz_VecExprConstant<complex<T2> > ,
1559
_bz_VecExprConstant<complex<T3> > > >
1560
where(const Vector<P_numtype1>& d1,
1564
typedef _bz_VecWhere<VectorIterConst<P_numtype1>,
1565
_bz_VecExprConstant<complex<T2> > ,
1566
_bz_VecExprConstant<complex<T3> > > T_expr;
1568
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
1569
_bz_VecExprConstant<complex<T2> > (d2),
1570
_bz_VecExprConstant<complex<T3> > (d3)));
1572
#endif // BZ_HAVE_COMPLEX
1574
// where(_bz_VecExpr<P_expr1>, Vector<P_numtype2>, Vector<P_numtype3>)
1575
template<class P_expr1, class P_numtype2, class P_numtype3>
1577
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
1578
VectorIterConst<P_numtype2>,
1579
VectorIterConst<P_numtype3> > >
1580
where(_bz_VecExpr<P_expr1> d1,
1581
const Vector<P_numtype2>& d2,
1582
const Vector<P_numtype3>& d3)
1584
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
1585
VectorIterConst<P_numtype2>,
1586
VectorIterConst<P_numtype3> > T_expr;
1588
return _bz_VecExpr<T_expr>(T_expr(d1,
1593
// where(_bz_VecExpr<P_expr1>, Vector<P_numtype2>, _bz_VecExpr<P_expr3>)
1594
template<class P_expr1, class P_numtype2, class P_expr3>
1596
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
1597
VectorIterConst<P_numtype2>,
1598
_bz_VecExpr<P_expr3> > >
1599
where(_bz_VecExpr<P_expr1> d1,
1600
const Vector<P_numtype2>& d2,
1601
_bz_VecExpr<P_expr3> d3)
1603
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
1604
VectorIterConst<P_numtype2>,
1605
_bz_VecExpr<P_expr3> > T_expr;
1607
return _bz_VecExpr<T_expr>(T_expr(d1,
1612
// where(_bz_VecExpr<P_expr1>, Vector<P_numtype2>, VectorPick<P_numtype3>)
1613
template<class P_expr1, class P_numtype2, class P_numtype3>
1615
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
1616
VectorIterConst<P_numtype2>,
1617
VectorPickIterConst<P_numtype3> > >
1618
where(_bz_VecExpr<P_expr1> d1,
1619
const Vector<P_numtype2>& d2,
1620
const VectorPick<P_numtype3>& d3)
1622
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
1623
VectorIterConst<P_numtype2>,
1624
VectorPickIterConst<P_numtype3> > T_expr;
1626
return _bz_VecExpr<T_expr>(T_expr(d1,
1631
// where(_bz_VecExpr<P_expr1>, Vector<P_numtype2>, Range)
1632
template<class P_expr1, class P_numtype2>
1634
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
1635
VectorIterConst<P_numtype2>,
1637
where(_bz_VecExpr<P_expr1> d1,
1638
const Vector<P_numtype2>& d2,
1641
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
1642
VectorIterConst<P_numtype2>,
1645
return _bz_VecExpr<T_expr>(T_expr(d1,
1650
// where(_bz_VecExpr<P_expr1>, Vector<P_numtype2>, TinyVector<P_numtype3, N_length3>)
1651
template<class P_expr1, class P_numtype2, class P_numtype3, int N_length3>
1653
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
1654
VectorIterConst<P_numtype2>,
1655
TinyVectorIterConst<P_numtype3, N_length3> > >
1656
where(_bz_VecExpr<P_expr1> d1,
1657
const Vector<P_numtype2>& d2,
1658
const TinyVector<P_numtype3, N_length3>& d3)
1660
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
1661
VectorIterConst<P_numtype2>,
1662
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
1664
return _bz_VecExpr<T_expr>(T_expr(d1,
1669
// where(_bz_VecExpr<P_expr1>, Vector<P_numtype2>, int)
1670
template<class P_expr1, class P_numtype2>
1672
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
1673
VectorIterConst<P_numtype2>,
1674
_bz_VecExprConstant<int> > >
1675
where(_bz_VecExpr<P_expr1> d1,
1676
const Vector<P_numtype2>& d2,
1679
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
1680
VectorIterConst<P_numtype2>,
1681
_bz_VecExprConstant<int> > T_expr;
1683
return _bz_VecExpr<T_expr>(T_expr(d1,
1685
_bz_VecExprConstant<int>(d3)));
1688
// where(_bz_VecExpr<P_expr1>, Vector<P_numtype2>, float)
1689
template<class P_expr1, class P_numtype2>
1691
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
1692
VectorIterConst<P_numtype2>,
1693
_bz_VecExprConstant<float> > >
1694
where(_bz_VecExpr<P_expr1> d1,
1695
const Vector<P_numtype2>& d2,
1698
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
1699
VectorIterConst<P_numtype2>,
1700
_bz_VecExprConstant<float> > T_expr;
1702
return _bz_VecExpr<T_expr>(T_expr(d1,
1704
_bz_VecExprConstant<float>(d3)));
1707
// where(_bz_VecExpr<P_expr1>, Vector<P_numtype2>, double)
1708
template<class P_expr1, class P_numtype2>
1710
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
1711
VectorIterConst<P_numtype2>,
1712
_bz_VecExprConstant<double> > >
1713
where(_bz_VecExpr<P_expr1> d1,
1714
const Vector<P_numtype2>& d2,
1717
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
1718
VectorIterConst<P_numtype2>,
1719
_bz_VecExprConstant<double> > T_expr;
1721
return _bz_VecExpr<T_expr>(T_expr(d1,
1723
_bz_VecExprConstant<double>(d3)));
1726
// where(_bz_VecExpr<P_expr1>, Vector<P_numtype2>, long double)
1727
template<class P_expr1, class P_numtype2>
1729
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
1730
VectorIterConst<P_numtype2>,
1731
_bz_VecExprConstant<long double> > >
1732
where(_bz_VecExpr<P_expr1> d1,
1733
const Vector<P_numtype2>& d2,
1736
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
1737
VectorIterConst<P_numtype2>,
1738
_bz_VecExprConstant<long double> > T_expr;
1740
return _bz_VecExpr<T_expr>(T_expr(d1,
1742
_bz_VecExprConstant<long double>(d3)));
1745
// where(_bz_VecExpr<P_expr1>, Vector<P_numtype2>, complex<T3>)
1746
#ifdef BZ_HAVE_COMPLEX
1747
template<class P_expr1, class P_numtype2, class T3>
1749
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
1750
VectorIterConst<P_numtype2>,
1751
_bz_VecExprConstant<complex<T3> > > >
1752
where(_bz_VecExpr<P_expr1> d1,
1753
const Vector<P_numtype2>& d2,
1756
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
1757
VectorIterConst<P_numtype2>,
1758
_bz_VecExprConstant<complex<T3> > > T_expr;
1760
return _bz_VecExpr<T_expr>(T_expr(d1,
1762
_bz_VecExprConstant<complex<T3> > (d3)));
1764
#endif // BZ_HAVE_COMPLEX
1766
// where(_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>, Vector<P_numtype3>)
1767
template<class P_expr1, class P_expr2, class P_numtype3>
1769
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
1770
_bz_VecExpr<P_expr2>,
1771
VectorIterConst<P_numtype3> > >
1772
where(_bz_VecExpr<P_expr1> d1,
1773
_bz_VecExpr<P_expr2> d2,
1774
const Vector<P_numtype3>& d3)
1776
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
1777
_bz_VecExpr<P_expr2>,
1778
VectorIterConst<P_numtype3> > T_expr;
1780
return _bz_VecExpr<T_expr>(T_expr(d1,
1785
// where(_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>, _bz_VecExpr<P_expr3>)
1786
template<class P_expr1, class P_expr2, class P_expr3>
1788
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
1789
_bz_VecExpr<P_expr2>,
1790
_bz_VecExpr<P_expr3> > >
1791
where(_bz_VecExpr<P_expr1> d1,
1792
_bz_VecExpr<P_expr2> d2,
1793
_bz_VecExpr<P_expr3> d3)
1795
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
1796
_bz_VecExpr<P_expr2>,
1797
_bz_VecExpr<P_expr3> > T_expr;
1799
return _bz_VecExpr<T_expr>(T_expr(d1,
1804
// where(_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>, VectorPick<P_numtype3>)
1805
template<class P_expr1, class P_expr2, class P_numtype3>
1807
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
1808
_bz_VecExpr<P_expr2>,
1809
VectorPickIterConst<P_numtype3> > >
1810
where(_bz_VecExpr<P_expr1> d1,
1811
_bz_VecExpr<P_expr2> d2,
1812
const VectorPick<P_numtype3>& d3)
1814
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
1815
_bz_VecExpr<P_expr2>,
1816
VectorPickIterConst<P_numtype3> > T_expr;
1818
return _bz_VecExpr<T_expr>(T_expr(d1,
1823
// where(_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>, Range)
1824
template<class P_expr1, class P_expr2>
1826
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
1827
_bz_VecExpr<P_expr2>,
1829
where(_bz_VecExpr<P_expr1> d1,
1830
_bz_VecExpr<P_expr2> d2,
1833
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
1834
_bz_VecExpr<P_expr2>,
1837
return _bz_VecExpr<T_expr>(T_expr(d1,
1842
// where(_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>, TinyVector<P_numtype3, N_length3>)
1843
template<class P_expr1, class P_expr2, class P_numtype3, int N_length3>
1845
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
1846
_bz_VecExpr<P_expr2>,
1847
TinyVectorIterConst<P_numtype3, N_length3> > >
1848
where(_bz_VecExpr<P_expr1> d1,
1849
_bz_VecExpr<P_expr2> d2,
1850
const TinyVector<P_numtype3, N_length3>& d3)
1852
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
1853
_bz_VecExpr<P_expr2>,
1854
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
1856
return _bz_VecExpr<T_expr>(T_expr(d1,
1861
// where(_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>, int)
1862
template<class P_expr1, class P_expr2>
1864
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
1865
_bz_VecExpr<P_expr2>,
1866
_bz_VecExprConstant<int> > >
1867
where(_bz_VecExpr<P_expr1> d1,
1868
_bz_VecExpr<P_expr2> d2,
1871
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
1872
_bz_VecExpr<P_expr2>,
1873
_bz_VecExprConstant<int> > T_expr;
1875
return _bz_VecExpr<T_expr>(T_expr(d1,
1877
_bz_VecExprConstant<int>(d3)));
1880
// where(_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>, float)
1881
template<class P_expr1, class P_expr2>
1883
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
1884
_bz_VecExpr<P_expr2>,
1885
_bz_VecExprConstant<float> > >
1886
where(_bz_VecExpr<P_expr1> d1,
1887
_bz_VecExpr<P_expr2> d2,
1890
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
1891
_bz_VecExpr<P_expr2>,
1892
_bz_VecExprConstant<float> > T_expr;
1894
return _bz_VecExpr<T_expr>(T_expr(d1,
1896
_bz_VecExprConstant<float>(d3)));
1899
// where(_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>, double)
1900
template<class P_expr1, class P_expr2>
1902
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
1903
_bz_VecExpr<P_expr2>,
1904
_bz_VecExprConstant<double> > >
1905
where(_bz_VecExpr<P_expr1> d1,
1906
_bz_VecExpr<P_expr2> d2,
1909
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
1910
_bz_VecExpr<P_expr2>,
1911
_bz_VecExprConstant<double> > T_expr;
1913
return _bz_VecExpr<T_expr>(T_expr(d1,
1915
_bz_VecExprConstant<double>(d3)));
1918
// where(_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>, long double)
1919
template<class P_expr1, class P_expr2>
1921
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
1922
_bz_VecExpr<P_expr2>,
1923
_bz_VecExprConstant<long double> > >
1924
where(_bz_VecExpr<P_expr1> d1,
1925
_bz_VecExpr<P_expr2> d2,
1928
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
1929
_bz_VecExpr<P_expr2>,
1930
_bz_VecExprConstant<long double> > T_expr;
1932
return _bz_VecExpr<T_expr>(T_expr(d1,
1934
_bz_VecExprConstant<long double>(d3)));
1937
// where(_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>, complex<T3>)
1938
#ifdef BZ_HAVE_COMPLEX
1939
template<class P_expr1, class P_expr2, class T3>
1941
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
1942
_bz_VecExpr<P_expr2>,
1943
_bz_VecExprConstant<complex<T3> > > >
1944
where(_bz_VecExpr<P_expr1> d1,
1945
_bz_VecExpr<P_expr2> d2,
1948
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
1949
_bz_VecExpr<P_expr2>,
1950
_bz_VecExprConstant<complex<T3> > > T_expr;
1952
return _bz_VecExpr<T_expr>(T_expr(d1,
1954
_bz_VecExprConstant<complex<T3> > (d3)));
1956
#endif // BZ_HAVE_COMPLEX
1958
// where(_bz_VecExpr<P_expr1>, VectorPick<P_numtype2>, Vector<P_numtype3>)
1959
template<class P_expr1, class P_numtype2, class P_numtype3>
1961
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
1962
VectorPickIterConst<P_numtype2>,
1963
VectorIterConst<P_numtype3> > >
1964
where(_bz_VecExpr<P_expr1> d1,
1965
const VectorPick<P_numtype2>& d2,
1966
const Vector<P_numtype3>& d3)
1968
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
1969
VectorPickIterConst<P_numtype2>,
1970
VectorIterConst<P_numtype3> > T_expr;
1972
return _bz_VecExpr<T_expr>(T_expr(d1,
1977
// where(_bz_VecExpr<P_expr1>, VectorPick<P_numtype2>, _bz_VecExpr<P_expr3>)
1978
template<class P_expr1, class P_numtype2, class P_expr3>
1980
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
1981
VectorPickIterConst<P_numtype2>,
1982
_bz_VecExpr<P_expr3> > >
1983
where(_bz_VecExpr<P_expr1> d1,
1984
const VectorPick<P_numtype2>& d2,
1985
_bz_VecExpr<P_expr3> d3)
1987
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
1988
VectorPickIterConst<P_numtype2>,
1989
_bz_VecExpr<P_expr3> > T_expr;
1991
return _bz_VecExpr<T_expr>(T_expr(d1,
1996
// where(_bz_VecExpr<P_expr1>, VectorPick<P_numtype2>, VectorPick<P_numtype3>)
1997
template<class P_expr1, class P_numtype2, class P_numtype3>
1999
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2000
VectorPickIterConst<P_numtype2>,
2001
VectorPickIterConst<P_numtype3> > >
2002
where(_bz_VecExpr<P_expr1> d1,
2003
const VectorPick<P_numtype2>& d2,
2004
const VectorPick<P_numtype3>& d3)
2006
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2007
VectorPickIterConst<P_numtype2>,
2008
VectorPickIterConst<P_numtype3> > T_expr;
2010
return _bz_VecExpr<T_expr>(T_expr(d1,
2015
// where(_bz_VecExpr<P_expr1>, VectorPick<P_numtype2>, Range)
2016
template<class P_expr1, class P_numtype2>
2018
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2019
VectorPickIterConst<P_numtype2>,
2021
where(_bz_VecExpr<P_expr1> d1,
2022
const VectorPick<P_numtype2>& d2,
2025
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2026
VectorPickIterConst<P_numtype2>,
2029
return _bz_VecExpr<T_expr>(T_expr(d1,
2034
// where(_bz_VecExpr<P_expr1>, VectorPick<P_numtype2>, TinyVector<P_numtype3, N_length3>)
2035
template<class P_expr1, class P_numtype2, class P_numtype3, int N_length3>
2037
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2038
VectorPickIterConst<P_numtype2>,
2039
TinyVectorIterConst<P_numtype3, N_length3> > >
2040
where(_bz_VecExpr<P_expr1> d1,
2041
const VectorPick<P_numtype2>& d2,
2042
const TinyVector<P_numtype3, N_length3>& d3)
2044
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2045
VectorPickIterConst<P_numtype2>,
2046
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
2048
return _bz_VecExpr<T_expr>(T_expr(d1,
2053
// where(_bz_VecExpr<P_expr1>, VectorPick<P_numtype2>, int)
2054
template<class P_expr1, class P_numtype2>
2056
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2057
VectorPickIterConst<P_numtype2>,
2058
_bz_VecExprConstant<int> > >
2059
where(_bz_VecExpr<P_expr1> d1,
2060
const VectorPick<P_numtype2>& d2,
2063
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2064
VectorPickIterConst<P_numtype2>,
2065
_bz_VecExprConstant<int> > T_expr;
2067
return _bz_VecExpr<T_expr>(T_expr(d1,
2069
_bz_VecExprConstant<int>(d3)));
2072
// where(_bz_VecExpr<P_expr1>, VectorPick<P_numtype2>, float)
2073
template<class P_expr1, class P_numtype2>
2075
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2076
VectorPickIterConst<P_numtype2>,
2077
_bz_VecExprConstant<float> > >
2078
where(_bz_VecExpr<P_expr1> d1,
2079
const VectorPick<P_numtype2>& d2,
2082
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2083
VectorPickIterConst<P_numtype2>,
2084
_bz_VecExprConstant<float> > T_expr;
2086
return _bz_VecExpr<T_expr>(T_expr(d1,
2088
_bz_VecExprConstant<float>(d3)));
2091
// where(_bz_VecExpr<P_expr1>, VectorPick<P_numtype2>, double)
2092
template<class P_expr1, class P_numtype2>
2094
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2095
VectorPickIterConst<P_numtype2>,
2096
_bz_VecExprConstant<double> > >
2097
where(_bz_VecExpr<P_expr1> d1,
2098
const VectorPick<P_numtype2>& d2,
2101
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2102
VectorPickIterConst<P_numtype2>,
2103
_bz_VecExprConstant<double> > T_expr;
2105
return _bz_VecExpr<T_expr>(T_expr(d1,
2107
_bz_VecExprConstant<double>(d3)));
2110
// where(_bz_VecExpr<P_expr1>, VectorPick<P_numtype2>, long double)
2111
template<class P_expr1, class P_numtype2>
2113
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2114
VectorPickIterConst<P_numtype2>,
2115
_bz_VecExprConstant<long double> > >
2116
where(_bz_VecExpr<P_expr1> d1,
2117
const VectorPick<P_numtype2>& d2,
2120
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2121
VectorPickIterConst<P_numtype2>,
2122
_bz_VecExprConstant<long double> > T_expr;
2124
return _bz_VecExpr<T_expr>(T_expr(d1,
2126
_bz_VecExprConstant<long double>(d3)));
2129
// where(_bz_VecExpr<P_expr1>, VectorPick<P_numtype2>, complex<T3>)
2130
#ifdef BZ_HAVE_COMPLEX
2131
template<class P_expr1, class P_numtype2, class T3>
2133
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2134
VectorPickIterConst<P_numtype2>,
2135
_bz_VecExprConstant<complex<T3> > > >
2136
where(_bz_VecExpr<P_expr1> d1,
2137
const VectorPick<P_numtype2>& d2,
2140
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2141
VectorPickIterConst<P_numtype2>,
2142
_bz_VecExprConstant<complex<T3> > > T_expr;
2144
return _bz_VecExpr<T_expr>(T_expr(d1,
2146
_bz_VecExprConstant<complex<T3> > (d3)));
2148
#endif // BZ_HAVE_COMPLEX
2150
// where(_bz_VecExpr<P_expr1>, Range, Vector<P_numtype3>)
2151
template<class P_expr1, class P_numtype3>
2153
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2155
VectorIterConst<P_numtype3> > >
2156
where(_bz_VecExpr<P_expr1> d1,
2158
const Vector<P_numtype3>& d3)
2160
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2162
VectorIterConst<P_numtype3> > T_expr;
2164
return _bz_VecExpr<T_expr>(T_expr(d1,
2169
// where(_bz_VecExpr<P_expr1>, Range, _bz_VecExpr<P_expr3>)
2170
template<class P_expr1, class P_expr3>
2172
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2174
_bz_VecExpr<P_expr3> > >
2175
where(_bz_VecExpr<P_expr1> d1,
2177
_bz_VecExpr<P_expr3> d3)
2179
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2181
_bz_VecExpr<P_expr3> > T_expr;
2183
return _bz_VecExpr<T_expr>(T_expr(d1,
2188
// where(_bz_VecExpr<P_expr1>, Range, VectorPick<P_numtype3>)
2189
template<class P_expr1, class P_numtype3>
2191
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2193
VectorPickIterConst<P_numtype3> > >
2194
where(_bz_VecExpr<P_expr1> d1,
2196
const VectorPick<P_numtype3>& d3)
2198
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2200
VectorPickIterConst<P_numtype3> > T_expr;
2202
return _bz_VecExpr<T_expr>(T_expr(d1,
2207
// where(_bz_VecExpr<P_expr1>, Range, Range)
2208
template<class P_expr1>
2210
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2213
where(_bz_VecExpr<P_expr1> d1,
2217
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2221
return _bz_VecExpr<T_expr>(T_expr(d1,
2226
// where(_bz_VecExpr<P_expr1>, Range, TinyVector<P_numtype3, N_length3>)
2227
template<class P_expr1, class P_numtype3, int N_length3>
2229
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2231
TinyVectorIterConst<P_numtype3, N_length3> > >
2232
where(_bz_VecExpr<P_expr1> d1,
2234
const TinyVector<P_numtype3, N_length3>& d3)
2236
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2238
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
2240
return _bz_VecExpr<T_expr>(T_expr(d1,
2245
// where(_bz_VecExpr<P_expr1>, Range, int)
2246
template<class P_expr1>
2248
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2250
_bz_VecExprConstant<int> > >
2251
where(_bz_VecExpr<P_expr1> d1,
2255
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2257
_bz_VecExprConstant<int> > T_expr;
2259
return _bz_VecExpr<T_expr>(T_expr(d1,
2261
_bz_VecExprConstant<int>(d3)));
2264
// where(_bz_VecExpr<P_expr1>, Range, float)
2265
template<class P_expr1>
2267
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2269
_bz_VecExprConstant<float> > >
2270
where(_bz_VecExpr<P_expr1> d1,
2274
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2276
_bz_VecExprConstant<float> > T_expr;
2278
return _bz_VecExpr<T_expr>(T_expr(d1,
2280
_bz_VecExprConstant<float>(d3)));
2283
// where(_bz_VecExpr<P_expr1>, Range, double)
2284
template<class P_expr1>
2286
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2288
_bz_VecExprConstant<double> > >
2289
where(_bz_VecExpr<P_expr1> d1,
2293
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2295
_bz_VecExprConstant<double> > T_expr;
2297
return _bz_VecExpr<T_expr>(T_expr(d1,
2299
_bz_VecExprConstant<double>(d3)));
2302
// where(_bz_VecExpr<P_expr1>, Range, long double)
2303
template<class P_expr1>
2305
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2307
_bz_VecExprConstant<long double> > >
2308
where(_bz_VecExpr<P_expr1> d1,
2312
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2314
_bz_VecExprConstant<long double> > T_expr;
2316
return _bz_VecExpr<T_expr>(T_expr(d1,
2318
_bz_VecExprConstant<long double>(d3)));
2321
// where(_bz_VecExpr<P_expr1>, Range, complex<T3>)
2322
#ifdef BZ_HAVE_COMPLEX
2323
template<class P_expr1, class T3>
2325
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2327
_bz_VecExprConstant<complex<T3> > > >
2328
where(_bz_VecExpr<P_expr1> d1,
2332
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2334
_bz_VecExprConstant<complex<T3> > > T_expr;
2336
return _bz_VecExpr<T_expr>(T_expr(d1,
2338
_bz_VecExprConstant<complex<T3> > (d3)));
2340
#endif // BZ_HAVE_COMPLEX
2342
// where(_bz_VecExpr<P_expr1>, TinyVector<P_numtype2, N_length2>, Vector<P_numtype3>)
2343
template<class P_expr1, class P_numtype2, int N_length2, class P_numtype3>
2345
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2346
TinyVectorIterConst<P_numtype2, N_length2>,
2347
VectorIterConst<P_numtype3> > >
2348
where(_bz_VecExpr<P_expr1> d1,
2349
const TinyVector<P_numtype2, N_length2>& d2,
2350
const Vector<P_numtype3>& d3)
2352
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2353
TinyVectorIterConst<P_numtype2, N_length2>,
2354
VectorIterConst<P_numtype3> > T_expr;
2356
return _bz_VecExpr<T_expr>(T_expr(d1,
2361
// where(_bz_VecExpr<P_expr1>, TinyVector<P_numtype2, N_length2>, _bz_VecExpr<P_expr3>)
2362
template<class P_expr1, class P_numtype2, int N_length2, class P_expr3>
2364
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2365
TinyVectorIterConst<P_numtype2, N_length2>,
2366
_bz_VecExpr<P_expr3> > >
2367
where(_bz_VecExpr<P_expr1> d1,
2368
const TinyVector<P_numtype2, N_length2>& d2,
2369
_bz_VecExpr<P_expr3> d3)
2371
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2372
TinyVectorIterConst<P_numtype2, N_length2>,
2373
_bz_VecExpr<P_expr3> > T_expr;
2375
return _bz_VecExpr<T_expr>(T_expr(d1,
2380
// where(_bz_VecExpr<P_expr1>, TinyVector<P_numtype2, N_length2>, VectorPick<P_numtype3>)
2381
template<class P_expr1, class P_numtype2, int N_length2, class P_numtype3>
2383
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2384
TinyVectorIterConst<P_numtype2, N_length2>,
2385
VectorPickIterConst<P_numtype3> > >
2386
where(_bz_VecExpr<P_expr1> d1,
2387
const TinyVector<P_numtype2, N_length2>& d2,
2388
const VectorPick<P_numtype3>& d3)
2390
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2391
TinyVectorIterConst<P_numtype2, N_length2>,
2392
VectorPickIterConst<P_numtype3> > T_expr;
2394
return _bz_VecExpr<T_expr>(T_expr(d1,
2399
// where(_bz_VecExpr<P_expr1>, TinyVector<P_numtype2, N_length2>, Range)
2400
template<class P_expr1, class P_numtype2, int N_length2>
2402
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2403
TinyVectorIterConst<P_numtype2, N_length2>,
2405
where(_bz_VecExpr<P_expr1> d1,
2406
const TinyVector<P_numtype2, N_length2>& d2,
2409
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2410
TinyVectorIterConst<P_numtype2, N_length2>,
2413
return _bz_VecExpr<T_expr>(T_expr(d1,
2418
// where(_bz_VecExpr<P_expr1>, TinyVector<P_numtype2, N_length2>, TinyVector<P_numtype3, N_length3>)
2419
template<class P_expr1, class P_numtype2, int N_length2, class P_numtype3, int N_length3>
2421
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2422
TinyVectorIterConst<P_numtype2, N_length2>,
2423
TinyVectorIterConst<P_numtype3, N_length3> > >
2424
where(_bz_VecExpr<P_expr1> d1,
2425
const TinyVector<P_numtype2, N_length2>& d2,
2426
const TinyVector<P_numtype3, N_length3>& d3)
2428
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2429
TinyVectorIterConst<P_numtype2, N_length2>,
2430
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
2432
return _bz_VecExpr<T_expr>(T_expr(d1,
2437
// where(_bz_VecExpr<P_expr1>, TinyVector<P_numtype2, N_length2>, int)
2438
template<class P_expr1, class P_numtype2, int N_length2>
2440
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2441
TinyVectorIterConst<P_numtype2, N_length2>,
2442
_bz_VecExprConstant<int> > >
2443
where(_bz_VecExpr<P_expr1> d1,
2444
const TinyVector<P_numtype2, N_length2>& d2,
2447
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2448
TinyVectorIterConst<P_numtype2, N_length2>,
2449
_bz_VecExprConstant<int> > T_expr;
2451
return _bz_VecExpr<T_expr>(T_expr(d1,
2453
_bz_VecExprConstant<int>(d3)));
2456
// where(_bz_VecExpr<P_expr1>, TinyVector<P_numtype2, N_length2>, float)
2457
template<class P_expr1, class P_numtype2, int N_length2>
2459
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2460
TinyVectorIterConst<P_numtype2, N_length2>,
2461
_bz_VecExprConstant<float> > >
2462
where(_bz_VecExpr<P_expr1> d1,
2463
const TinyVector<P_numtype2, N_length2>& d2,
2466
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2467
TinyVectorIterConst<P_numtype2, N_length2>,
2468
_bz_VecExprConstant<float> > T_expr;
2470
return _bz_VecExpr<T_expr>(T_expr(d1,
2472
_bz_VecExprConstant<float>(d3)));
2475
// where(_bz_VecExpr<P_expr1>, TinyVector<P_numtype2, N_length2>, double)
2476
template<class P_expr1, class P_numtype2, int N_length2>
2478
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2479
TinyVectorIterConst<P_numtype2, N_length2>,
2480
_bz_VecExprConstant<double> > >
2481
where(_bz_VecExpr<P_expr1> d1,
2482
const TinyVector<P_numtype2, N_length2>& d2,
2485
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2486
TinyVectorIterConst<P_numtype2, N_length2>,
2487
_bz_VecExprConstant<double> > T_expr;
2489
return _bz_VecExpr<T_expr>(T_expr(d1,
2491
_bz_VecExprConstant<double>(d3)));
2494
// where(_bz_VecExpr<P_expr1>, TinyVector<P_numtype2, N_length2>, long double)
2495
template<class P_expr1, class P_numtype2, int N_length2>
2497
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2498
TinyVectorIterConst<P_numtype2, N_length2>,
2499
_bz_VecExprConstant<long double> > >
2500
where(_bz_VecExpr<P_expr1> d1,
2501
const TinyVector<P_numtype2, N_length2>& d2,
2504
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2505
TinyVectorIterConst<P_numtype2, N_length2>,
2506
_bz_VecExprConstant<long double> > T_expr;
2508
return _bz_VecExpr<T_expr>(T_expr(d1,
2510
_bz_VecExprConstant<long double>(d3)));
2513
// where(_bz_VecExpr<P_expr1>, TinyVector<P_numtype2, N_length2>, complex<T3>)
2514
#ifdef BZ_HAVE_COMPLEX
2515
template<class P_expr1, class P_numtype2, int N_length2, class T3>
2517
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2518
TinyVectorIterConst<P_numtype2, N_length2>,
2519
_bz_VecExprConstant<complex<T3> > > >
2520
where(_bz_VecExpr<P_expr1> d1,
2521
const TinyVector<P_numtype2, N_length2>& d2,
2524
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2525
TinyVectorIterConst<P_numtype2, N_length2>,
2526
_bz_VecExprConstant<complex<T3> > > T_expr;
2528
return _bz_VecExpr<T_expr>(T_expr(d1,
2530
_bz_VecExprConstant<complex<T3> > (d3)));
2532
#endif // BZ_HAVE_COMPLEX
2534
// where(_bz_VecExpr<P_expr1>, int, Vector<P_numtype3>)
2535
template<class P_expr1, class P_numtype3>
2537
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2538
_bz_VecExprConstant<int>,
2539
VectorIterConst<P_numtype3> > >
2540
where(_bz_VecExpr<P_expr1> d1,
2542
const Vector<P_numtype3>& d3)
2544
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2545
_bz_VecExprConstant<int>,
2546
VectorIterConst<P_numtype3> > T_expr;
2548
return _bz_VecExpr<T_expr>(T_expr(d1,
2549
_bz_VecExprConstant<int>(d2),
2553
// where(_bz_VecExpr<P_expr1>, int, _bz_VecExpr<P_expr3>)
2554
template<class P_expr1, class P_expr3>
2556
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2557
_bz_VecExprConstant<int>,
2558
_bz_VecExpr<P_expr3> > >
2559
where(_bz_VecExpr<P_expr1> d1,
2561
_bz_VecExpr<P_expr3> d3)
2563
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2564
_bz_VecExprConstant<int>,
2565
_bz_VecExpr<P_expr3> > T_expr;
2567
return _bz_VecExpr<T_expr>(T_expr(d1,
2568
_bz_VecExprConstant<int>(d2),
2572
// where(_bz_VecExpr<P_expr1>, int, VectorPick<P_numtype3>)
2573
template<class P_expr1, class P_numtype3>
2575
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2576
_bz_VecExprConstant<int>,
2577
VectorPickIterConst<P_numtype3> > >
2578
where(_bz_VecExpr<P_expr1> d1,
2580
const VectorPick<P_numtype3>& d3)
2582
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2583
_bz_VecExprConstant<int>,
2584
VectorPickIterConst<P_numtype3> > T_expr;
2586
return _bz_VecExpr<T_expr>(T_expr(d1,
2587
_bz_VecExprConstant<int>(d2),
2591
// where(_bz_VecExpr<P_expr1>, int, Range)
2592
template<class P_expr1>
2594
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2595
_bz_VecExprConstant<int>,
2597
where(_bz_VecExpr<P_expr1> d1,
2601
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2602
_bz_VecExprConstant<int>,
2605
return _bz_VecExpr<T_expr>(T_expr(d1,
2606
_bz_VecExprConstant<int>(d2),
2610
// where(_bz_VecExpr<P_expr1>, int, TinyVector<P_numtype3, N_length3>)
2611
template<class P_expr1, class P_numtype3, int N_length3>
2613
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2614
_bz_VecExprConstant<int>,
2615
TinyVectorIterConst<P_numtype3, N_length3> > >
2616
where(_bz_VecExpr<P_expr1> d1,
2618
const TinyVector<P_numtype3, N_length3>& d3)
2620
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2621
_bz_VecExprConstant<int>,
2622
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
2624
return _bz_VecExpr<T_expr>(T_expr(d1,
2625
_bz_VecExprConstant<int>(d2),
2629
// where(_bz_VecExpr<P_expr1>, int, int)
2630
template<class P_expr1>
2632
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2633
_bz_VecExprConstant<int>,
2634
_bz_VecExprConstant<int> > >
2635
where(_bz_VecExpr<P_expr1> d1,
2639
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2640
_bz_VecExprConstant<int>,
2641
_bz_VecExprConstant<int> > T_expr;
2643
return _bz_VecExpr<T_expr>(T_expr(d1,
2644
_bz_VecExprConstant<int>(d2),
2645
_bz_VecExprConstant<int>(d3)));
2648
// where(_bz_VecExpr<P_expr1>, float, Vector<P_numtype3>)
2649
template<class P_expr1, class P_numtype3>
2651
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2652
_bz_VecExprConstant<float>,
2653
VectorIterConst<P_numtype3> > >
2654
where(_bz_VecExpr<P_expr1> d1,
2656
const Vector<P_numtype3>& d3)
2658
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2659
_bz_VecExprConstant<float>,
2660
VectorIterConst<P_numtype3> > T_expr;
2662
return _bz_VecExpr<T_expr>(T_expr(d1,
2663
_bz_VecExprConstant<float>(d2),
2667
// where(_bz_VecExpr<P_expr1>, float, _bz_VecExpr<P_expr3>)
2668
template<class P_expr1, class P_expr3>
2670
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2671
_bz_VecExprConstant<float>,
2672
_bz_VecExpr<P_expr3> > >
2673
where(_bz_VecExpr<P_expr1> d1,
2675
_bz_VecExpr<P_expr3> d3)
2677
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2678
_bz_VecExprConstant<float>,
2679
_bz_VecExpr<P_expr3> > T_expr;
2681
return _bz_VecExpr<T_expr>(T_expr(d1,
2682
_bz_VecExprConstant<float>(d2),
2686
// where(_bz_VecExpr<P_expr1>, float, VectorPick<P_numtype3>)
2687
template<class P_expr1, class P_numtype3>
2689
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2690
_bz_VecExprConstant<float>,
2691
VectorPickIterConst<P_numtype3> > >
2692
where(_bz_VecExpr<P_expr1> d1,
2694
const VectorPick<P_numtype3>& d3)
2696
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2697
_bz_VecExprConstant<float>,
2698
VectorPickIterConst<P_numtype3> > T_expr;
2700
return _bz_VecExpr<T_expr>(T_expr(d1,
2701
_bz_VecExprConstant<float>(d2),
2705
// where(_bz_VecExpr<P_expr1>, float, Range)
2706
template<class P_expr1>
2708
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2709
_bz_VecExprConstant<float>,
2711
where(_bz_VecExpr<P_expr1> d1,
2715
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2716
_bz_VecExprConstant<float>,
2719
return _bz_VecExpr<T_expr>(T_expr(d1,
2720
_bz_VecExprConstant<float>(d2),
2724
// where(_bz_VecExpr<P_expr1>, float, TinyVector<P_numtype3, N_length3>)
2725
template<class P_expr1, class P_numtype3, int N_length3>
2727
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2728
_bz_VecExprConstant<float>,
2729
TinyVectorIterConst<P_numtype3, N_length3> > >
2730
where(_bz_VecExpr<P_expr1> d1,
2732
const TinyVector<P_numtype3, N_length3>& d3)
2734
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2735
_bz_VecExprConstant<float>,
2736
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
2738
return _bz_VecExpr<T_expr>(T_expr(d1,
2739
_bz_VecExprConstant<float>(d2),
2743
// where(_bz_VecExpr<P_expr1>, float, float)
2744
template<class P_expr1>
2746
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2747
_bz_VecExprConstant<float>,
2748
_bz_VecExprConstant<float> > >
2749
where(_bz_VecExpr<P_expr1> d1,
2753
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2754
_bz_VecExprConstant<float>,
2755
_bz_VecExprConstant<float> > T_expr;
2757
return _bz_VecExpr<T_expr>(T_expr(d1,
2758
_bz_VecExprConstant<float>(d2),
2759
_bz_VecExprConstant<float>(d3)));
2762
// where(_bz_VecExpr<P_expr1>, double, Vector<P_numtype3>)
2763
template<class P_expr1, class P_numtype3>
2765
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2766
_bz_VecExprConstant<double>,
2767
VectorIterConst<P_numtype3> > >
2768
where(_bz_VecExpr<P_expr1> d1,
2770
const Vector<P_numtype3>& d3)
2772
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2773
_bz_VecExprConstant<double>,
2774
VectorIterConst<P_numtype3> > T_expr;
2776
return _bz_VecExpr<T_expr>(T_expr(d1,
2777
_bz_VecExprConstant<double>(d2),
2781
// where(_bz_VecExpr<P_expr1>, double, _bz_VecExpr<P_expr3>)
2782
template<class P_expr1, class P_expr3>
2784
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2785
_bz_VecExprConstant<double>,
2786
_bz_VecExpr<P_expr3> > >
2787
where(_bz_VecExpr<P_expr1> d1,
2789
_bz_VecExpr<P_expr3> d3)
2791
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2792
_bz_VecExprConstant<double>,
2793
_bz_VecExpr<P_expr3> > T_expr;
2795
return _bz_VecExpr<T_expr>(T_expr(d1,
2796
_bz_VecExprConstant<double>(d2),
2800
// where(_bz_VecExpr<P_expr1>, double, VectorPick<P_numtype3>)
2801
template<class P_expr1, class P_numtype3>
2803
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2804
_bz_VecExprConstant<double>,
2805
VectorPickIterConst<P_numtype3> > >
2806
where(_bz_VecExpr<P_expr1> d1,
2808
const VectorPick<P_numtype3>& d3)
2810
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2811
_bz_VecExprConstant<double>,
2812
VectorPickIterConst<P_numtype3> > T_expr;
2814
return _bz_VecExpr<T_expr>(T_expr(d1,
2815
_bz_VecExprConstant<double>(d2),
2819
// where(_bz_VecExpr<P_expr1>, double, Range)
2820
template<class P_expr1>
2822
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2823
_bz_VecExprConstant<double>,
2825
where(_bz_VecExpr<P_expr1> d1,
2829
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2830
_bz_VecExprConstant<double>,
2833
return _bz_VecExpr<T_expr>(T_expr(d1,
2834
_bz_VecExprConstant<double>(d2),
2838
// where(_bz_VecExpr<P_expr1>, double, TinyVector<P_numtype3, N_length3>)
2839
template<class P_expr1, class P_numtype3, int N_length3>
2841
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2842
_bz_VecExprConstant<double>,
2843
TinyVectorIterConst<P_numtype3, N_length3> > >
2844
where(_bz_VecExpr<P_expr1> d1,
2846
const TinyVector<P_numtype3, N_length3>& d3)
2848
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2849
_bz_VecExprConstant<double>,
2850
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
2852
return _bz_VecExpr<T_expr>(T_expr(d1,
2853
_bz_VecExprConstant<double>(d2),
2857
// where(_bz_VecExpr<P_expr1>, double, double)
2858
template<class P_expr1>
2860
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2861
_bz_VecExprConstant<double>,
2862
_bz_VecExprConstant<double> > >
2863
where(_bz_VecExpr<P_expr1> d1,
2867
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2868
_bz_VecExprConstant<double>,
2869
_bz_VecExprConstant<double> > T_expr;
2871
return _bz_VecExpr<T_expr>(T_expr(d1,
2872
_bz_VecExprConstant<double>(d2),
2873
_bz_VecExprConstant<double>(d3)));
2876
// where(_bz_VecExpr<P_expr1>, long double, Vector<P_numtype3>)
2877
template<class P_expr1, class P_numtype3>
2879
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2880
_bz_VecExprConstant<long double>,
2881
VectorIterConst<P_numtype3> > >
2882
where(_bz_VecExpr<P_expr1> d1,
2884
const Vector<P_numtype3>& d3)
2886
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2887
_bz_VecExprConstant<long double>,
2888
VectorIterConst<P_numtype3> > T_expr;
2890
return _bz_VecExpr<T_expr>(T_expr(d1,
2891
_bz_VecExprConstant<long double>(d2),
2895
// where(_bz_VecExpr<P_expr1>, long double, _bz_VecExpr<P_expr3>)
2896
template<class P_expr1, class P_expr3>
2898
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2899
_bz_VecExprConstant<long double>,
2900
_bz_VecExpr<P_expr3> > >
2901
where(_bz_VecExpr<P_expr1> d1,
2903
_bz_VecExpr<P_expr3> d3)
2905
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2906
_bz_VecExprConstant<long double>,
2907
_bz_VecExpr<P_expr3> > T_expr;
2909
return _bz_VecExpr<T_expr>(T_expr(d1,
2910
_bz_VecExprConstant<long double>(d2),
2914
// where(_bz_VecExpr<P_expr1>, long double, VectorPick<P_numtype3>)
2915
template<class P_expr1, class P_numtype3>
2917
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2918
_bz_VecExprConstant<long double>,
2919
VectorPickIterConst<P_numtype3> > >
2920
where(_bz_VecExpr<P_expr1> d1,
2922
const VectorPick<P_numtype3>& d3)
2924
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2925
_bz_VecExprConstant<long double>,
2926
VectorPickIterConst<P_numtype3> > T_expr;
2928
return _bz_VecExpr<T_expr>(T_expr(d1,
2929
_bz_VecExprConstant<long double>(d2),
2933
// where(_bz_VecExpr<P_expr1>, long double, Range)
2934
template<class P_expr1>
2936
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2937
_bz_VecExprConstant<long double>,
2939
where(_bz_VecExpr<P_expr1> d1,
2943
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2944
_bz_VecExprConstant<long double>,
2947
return _bz_VecExpr<T_expr>(T_expr(d1,
2948
_bz_VecExprConstant<long double>(d2),
2952
// where(_bz_VecExpr<P_expr1>, long double, TinyVector<P_numtype3, N_length3>)
2953
template<class P_expr1, class P_numtype3, int N_length3>
2955
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2956
_bz_VecExprConstant<long double>,
2957
TinyVectorIterConst<P_numtype3, N_length3> > >
2958
where(_bz_VecExpr<P_expr1> d1,
2960
const TinyVector<P_numtype3, N_length3>& d3)
2962
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2963
_bz_VecExprConstant<long double>,
2964
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
2966
return _bz_VecExpr<T_expr>(T_expr(d1,
2967
_bz_VecExprConstant<long double>(d2),
2971
// where(_bz_VecExpr<P_expr1>, long double, long double)
2972
template<class P_expr1>
2974
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2975
_bz_VecExprConstant<long double>,
2976
_bz_VecExprConstant<long double> > >
2977
where(_bz_VecExpr<P_expr1> d1,
2981
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
2982
_bz_VecExprConstant<long double>,
2983
_bz_VecExprConstant<long double> > T_expr;
2985
return _bz_VecExpr<T_expr>(T_expr(d1,
2986
_bz_VecExprConstant<long double>(d2),
2987
_bz_VecExprConstant<long double>(d3)));
2990
// where(_bz_VecExpr<P_expr1>, complex<T2>, Vector<P_numtype3>)
2991
#ifdef BZ_HAVE_COMPLEX
2992
template<class P_expr1, class T2, class P_numtype3>
2994
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
2995
_bz_VecExprConstant<complex<T2> > ,
2996
VectorIterConst<P_numtype3> > >
2997
where(_bz_VecExpr<P_expr1> d1,
2999
const Vector<P_numtype3>& d3)
3001
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
3002
_bz_VecExprConstant<complex<T2> > ,
3003
VectorIterConst<P_numtype3> > T_expr;
3005
return _bz_VecExpr<T_expr>(T_expr(d1,
3006
_bz_VecExprConstant<complex<T2> > (d2),
3009
#endif // BZ_HAVE_COMPLEX
3011
// where(_bz_VecExpr<P_expr1>, complex<T2>, _bz_VecExpr<P_expr3>)
3012
#ifdef BZ_HAVE_COMPLEX
3013
template<class P_expr1, class T2, class P_expr3>
3015
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
3016
_bz_VecExprConstant<complex<T2> > ,
3017
_bz_VecExpr<P_expr3> > >
3018
where(_bz_VecExpr<P_expr1> d1,
3020
_bz_VecExpr<P_expr3> d3)
3022
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
3023
_bz_VecExprConstant<complex<T2> > ,
3024
_bz_VecExpr<P_expr3> > T_expr;
3026
return _bz_VecExpr<T_expr>(T_expr(d1,
3027
_bz_VecExprConstant<complex<T2> > (d2),
3030
#endif // BZ_HAVE_COMPLEX
3032
// where(_bz_VecExpr<P_expr1>, complex<T2>, VectorPick<P_numtype3>)
3033
#ifdef BZ_HAVE_COMPLEX
3034
template<class P_expr1, class T2, class P_numtype3>
3036
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
3037
_bz_VecExprConstant<complex<T2> > ,
3038
VectorPickIterConst<P_numtype3> > >
3039
where(_bz_VecExpr<P_expr1> d1,
3041
const VectorPick<P_numtype3>& d3)
3043
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
3044
_bz_VecExprConstant<complex<T2> > ,
3045
VectorPickIterConst<P_numtype3> > T_expr;
3047
return _bz_VecExpr<T_expr>(T_expr(d1,
3048
_bz_VecExprConstant<complex<T2> > (d2),
3051
#endif // BZ_HAVE_COMPLEX
3053
// where(_bz_VecExpr<P_expr1>, complex<T2>, Range)
3054
#ifdef BZ_HAVE_COMPLEX
3055
template<class P_expr1, class T2>
3057
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
3058
_bz_VecExprConstant<complex<T2> > ,
3060
where(_bz_VecExpr<P_expr1> d1,
3064
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
3065
_bz_VecExprConstant<complex<T2> > ,
3068
return _bz_VecExpr<T_expr>(T_expr(d1,
3069
_bz_VecExprConstant<complex<T2> > (d2),
3072
#endif // BZ_HAVE_COMPLEX
3074
// where(_bz_VecExpr<P_expr1>, complex<T2>, TinyVector<P_numtype3, N_length3>)
3075
#ifdef BZ_HAVE_COMPLEX
3076
template<class P_expr1, class T2, class P_numtype3, int N_length3>
3078
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
3079
_bz_VecExprConstant<complex<T2> > ,
3080
TinyVectorIterConst<P_numtype3, N_length3> > >
3081
where(_bz_VecExpr<P_expr1> d1,
3083
const TinyVector<P_numtype3, N_length3>& d3)
3085
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
3086
_bz_VecExprConstant<complex<T2> > ,
3087
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
3089
return _bz_VecExpr<T_expr>(T_expr(d1,
3090
_bz_VecExprConstant<complex<T2> > (d2),
3093
#endif // BZ_HAVE_COMPLEX
3095
// where(_bz_VecExpr<P_expr1>, complex<T2>, complex<T3>)
3096
#ifdef BZ_HAVE_COMPLEX
3097
template<class P_expr1, class T2, class T3>
3099
_bz_VecExpr<_bz_VecWhere<_bz_VecExpr<P_expr1>,
3100
_bz_VecExprConstant<complex<T2> > ,
3101
_bz_VecExprConstant<complex<T3> > > >
3102
where(_bz_VecExpr<P_expr1> d1,
3106
typedef _bz_VecWhere<_bz_VecExpr<P_expr1>,
3107
_bz_VecExprConstant<complex<T2> > ,
3108
_bz_VecExprConstant<complex<T3> > > T_expr;
3110
return _bz_VecExpr<T_expr>(T_expr(d1,
3111
_bz_VecExprConstant<complex<T2> > (d2),
3112
_bz_VecExprConstant<complex<T3> > (d3)));
3114
#endif // BZ_HAVE_COMPLEX
3116
// where(VectorPick<P_numtype1>, Vector<P_numtype2>, Vector<P_numtype3>)
3117
template<class P_numtype1, class P_numtype2, class P_numtype3>
3119
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3120
VectorIterConst<P_numtype2>,
3121
VectorIterConst<P_numtype3> > >
3122
where(const VectorPick<P_numtype1>& d1,
3123
const Vector<P_numtype2>& d2,
3124
const Vector<P_numtype3>& d3)
3126
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3127
VectorIterConst<P_numtype2>,
3128
VectorIterConst<P_numtype3> > T_expr;
3130
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3135
// where(VectorPick<P_numtype1>, Vector<P_numtype2>, _bz_VecExpr<P_expr3>)
3136
template<class P_numtype1, class P_numtype2, class P_expr3>
3138
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3139
VectorIterConst<P_numtype2>,
3140
_bz_VecExpr<P_expr3> > >
3141
where(const VectorPick<P_numtype1>& d1,
3142
const Vector<P_numtype2>& d2,
3143
_bz_VecExpr<P_expr3> d3)
3145
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3146
VectorIterConst<P_numtype2>,
3147
_bz_VecExpr<P_expr3> > T_expr;
3149
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3154
// where(VectorPick<P_numtype1>, Vector<P_numtype2>, VectorPick<P_numtype3>)
3155
template<class P_numtype1, class P_numtype2, class P_numtype3>
3157
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3158
VectorIterConst<P_numtype2>,
3159
VectorPickIterConst<P_numtype3> > >
3160
where(const VectorPick<P_numtype1>& d1,
3161
const Vector<P_numtype2>& d2,
3162
const VectorPick<P_numtype3>& d3)
3164
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3165
VectorIterConst<P_numtype2>,
3166
VectorPickIterConst<P_numtype3> > T_expr;
3168
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3173
// where(VectorPick<P_numtype1>, Vector<P_numtype2>, Range)
3174
template<class P_numtype1, class P_numtype2>
3176
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3177
VectorIterConst<P_numtype2>,
3179
where(const VectorPick<P_numtype1>& d1,
3180
const Vector<P_numtype2>& d2,
3183
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3184
VectorIterConst<P_numtype2>,
3187
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3192
// where(VectorPick<P_numtype1>, Vector<P_numtype2>, TinyVector<P_numtype3, N_length3>)
3193
template<class P_numtype1, class P_numtype2, class P_numtype3, int N_length3>
3195
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3196
VectorIterConst<P_numtype2>,
3197
TinyVectorIterConst<P_numtype3, N_length3> > >
3198
where(const VectorPick<P_numtype1>& d1,
3199
const Vector<P_numtype2>& d2,
3200
const TinyVector<P_numtype3, N_length3>& d3)
3202
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3203
VectorIterConst<P_numtype2>,
3204
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
3206
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3211
// where(VectorPick<P_numtype1>, Vector<P_numtype2>, int)
3212
template<class P_numtype1, class P_numtype2>
3214
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3215
VectorIterConst<P_numtype2>,
3216
_bz_VecExprConstant<int> > >
3217
where(const VectorPick<P_numtype1>& d1,
3218
const Vector<P_numtype2>& d2,
3221
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3222
VectorIterConst<P_numtype2>,
3223
_bz_VecExprConstant<int> > T_expr;
3225
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3227
_bz_VecExprConstant<int>(d3)));
3230
// where(VectorPick<P_numtype1>, Vector<P_numtype2>, float)
3231
template<class P_numtype1, class P_numtype2>
3233
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3234
VectorIterConst<P_numtype2>,
3235
_bz_VecExprConstant<float> > >
3236
where(const VectorPick<P_numtype1>& d1,
3237
const Vector<P_numtype2>& d2,
3240
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3241
VectorIterConst<P_numtype2>,
3242
_bz_VecExprConstant<float> > T_expr;
3244
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3246
_bz_VecExprConstant<float>(d3)));
3249
// where(VectorPick<P_numtype1>, Vector<P_numtype2>, double)
3250
template<class P_numtype1, class P_numtype2>
3252
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3253
VectorIterConst<P_numtype2>,
3254
_bz_VecExprConstant<double> > >
3255
where(const VectorPick<P_numtype1>& d1,
3256
const Vector<P_numtype2>& d2,
3259
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3260
VectorIterConst<P_numtype2>,
3261
_bz_VecExprConstant<double> > T_expr;
3263
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3265
_bz_VecExprConstant<double>(d3)));
3268
// where(VectorPick<P_numtype1>, Vector<P_numtype2>, long double)
3269
template<class P_numtype1, class P_numtype2>
3271
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3272
VectorIterConst<P_numtype2>,
3273
_bz_VecExprConstant<long double> > >
3274
where(const VectorPick<P_numtype1>& d1,
3275
const Vector<P_numtype2>& d2,
3278
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3279
VectorIterConst<P_numtype2>,
3280
_bz_VecExprConstant<long double> > T_expr;
3282
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3284
_bz_VecExprConstant<long double>(d3)));
3287
// where(VectorPick<P_numtype1>, Vector<P_numtype2>, complex<T3>)
3288
#ifdef BZ_HAVE_COMPLEX
3289
template<class P_numtype1, class P_numtype2, class T3>
3291
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3292
VectorIterConst<P_numtype2>,
3293
_bz_VecExprConstant<complex<T3> > > >
3294
where(const VectorPick<P_numtype1>& d1,
3295
const Vector<P_numtype2>& d2,
3298
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3299
VectorIterConst<P_numtype2>,
3300
_bz_VecExprConstant<complex<T3> > > T_expr;
3302
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3304
_bz_VecExprConstant<complex<T3> > (d3)));
3306
#endif // BZ_HAVE_COMPLEX
3308
// where(VectorPick<P_numtype1>, _bz_VecExpr<P_expr2>, Vector<P_numtype3>)
3309
template<class P_numtype1, class P_expr2, class P_numtype3>
3311
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3312
_bz_VecExpr<P_expr2>,
3313
VectorIterConst<P_numtype3> > >
3314
where(const VectorPick<P_numtype1>& d1,
3315
_bz_VecExpr<P_expr2> d2,
3316
const Vector<P_numtype3>& d3)
3318
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3319
_bz_VecExpr<P_expr2>,
3320
VectorIterConst<P_numtype3> > T_expr;
3322
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3327
// where(VectorPick<P_numtype1>, _bz_VecExpr<P_expr2>, _bz_VecExpr<P_expr3>)
3328
template<class P_numtype1, class P_expr2, class P_expr3>
3330
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3331
_bz_VecExpr<P_expr2>,
3332
_bz_VecExpr<P_expr3> > >
3333
where(const VectorPick<P_numtype1>& d1,
3334
_bz_VecExpr<P_expr2> d2,
3335
_bz_VecExpr<P_expr3> d3)
3337
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3338
_bz_VecExpr<P_expr2>,
3339
_bz_VecExpr<P_expr3> > T_expr;
3341
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3346
// where(VectorPick<P_numtype1>, _bz_VecExpr<P_expr2>, VectorPick<P_numtype3>)
3347
template<class P_numtype1, class P_expr2, class P_numtype3>
3349
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3350
_bz_VecExpr<P_expr2>,
3351
VectorPickIterConst<P_numtype3> > >
3352
where(const VectorPick<P_numtype1>& d1,
3353
_bz_VecExpr<P_expr2> d2,
3354
const VectorPick<P_numtype3>& d3)
3356
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3357
_bz_VecExpr<P_expr2>,
3358
VectorPickIterConst<P_numtype3> > T_expr;
3360
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3365
// where(VectorPick<P_numtype1>, _bz_VecExpr<P_expr2>, Range)
3366
template<class P_numtype1, class P_expr2>
3368
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3369
_bz_VecExpr<P_expr2>,
3371
where(const VectorPick<P_numtype1>& d1,
3372
_bz_VecExpr<P_expr2> d2,
3375
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3376
_bz_VecExpr<P_expr2>,
3379
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3384
// where(VectorPick<P_numtype1>, _bz_VecExpr<P_expr2>, TinyVector<P_numtype3, N_length3>)
3385
template<class P_numtype1, class P_expr2, class P_numtype3, int N_length3>
3387
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3388
_bz_VecExpr<P_expr2>,
3389
TinyVectorIterConst<P_numtype3, N_length3> > >
3390
where(const VectorPick<P_numtype1>& d1,
3391
_bz_VecExpr<P_expr2> d2,
3392
const TinyVector<P_numtype3, N_length3>& d3)
3394
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3395
_bz_VecExpr<P_expr2>,
3396
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
3398
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3403
// where(VectorPick<P_numtype1>, _bz_VecExpr<P_expr2>, int)
3404
template<class P_numtype1, class P_expr2>
3406
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3407
_bz_VecExpr<P_expr2>,
3408
_bz_VecExprConstant<int> > >
3409
where(const VectorPick<P_numtype1>& d1,
3410
_bz_VecExpr<P_expr2> d2,
3413
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3414
_bz_VecExpr<P_expr2>,
3415
_bz_VecExprConstant<int> > T_expr;
3417
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3419
_bz_VecExprConstant<int>(d3)));
3422
// where(VectorPick<P_numtype1>, _bz_VecExpr<P_expr2>, float)
3423
template<class P_numtype1, class P_expr2>
3425
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3426
_bz_VecExpr<P_expr2>,
3427
_bz_VecExprConstant<float> > >
3428
where(const VectorPick<P_numtype1>& d1,
3429
_bz_VecExpr<P_expr2> d2,
3432
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3433
_bz_VecExpr<P_expr2>,
3434
_bz_VecExprConstant<float> > T_expr;
3436
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3438
_bz_VecExprConstant<float>(d3)));
3441
// where(VectorPick<P_numtype1>, _bz_VecExpr<P_expr2>, double)
3442
template<class P_numtype1, class P_expr2>
3444
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3445
_bz_VecExpr<P_expr2>,
3446
_bz_VecExprConstant<double> > >
3447
where(const VectorPick<P_numtype1>& d1,
3448
_bz_VecExpr<P_expr2> d2,
3451
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3452
_bz_VecExpr<P_expr2>,
3453
_bz_VecExprConstant<double> > T_expr;
3455
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3457
_bz_VecExprConstant<double>(d3)));
3460
// where(VectorPick<P_numtype1>, _bz_VecExpr<P_expr2>, long double)
3461
template<class P_numtype1, class P_expr2>
3463
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3464
_bz_VecExpr<P_expr2>,
3465
_bz_VecExprConstant<long double> > >
3466
where(const VectorPick<P_numtype1>& d1,
3467
_bz_VecExpr<P_expr2> d2,
3470
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3471
_bz_VecExpr<P_expr2>,
3472
_bz_VecExprConstant<long double> > T_expr;
3474
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3476
_bz_VecExprConstant<long double>(d3)));
3479
// where(VectorPick<P_numtype1>, _bz_VecExpr<P_expr2>, complex<T3>)
3480
#ifdef BZ_HAVE_COMPLEX
3481
template<class P_numtype1, class P_expr2, class T3>
3483
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3484
_bz_VecExpr<P_expr2>,
3485
_bz_VecExprConstant<complex<T3> > > >
3486
where(const VectorPick<P_numtype1>& d1,
3487
_bz_VecExpr<P_expr2> d2,
3490
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3491
_bz_VecExpr<P_expr2>,
3492
_bz_VecExprConstant<complex<T3> > > T_expr;
3494
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3496
_bz_VecExprConstant<complex<T3> > (d3)));
3498
#endif // BZ_HAVE_COMPLEX
3500
// where(VectorPick<P_numtype1>, VectorPick<P_numtype2>, Vector<P_numtype3>)
3501
template<class P_numtype1, class P_numtype2, class P_numtype3>
3503
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3504
VectorPickIterConst<P_numtype2>,
3505
VectorIterConst<P_numtype3> > >
3506
where(const VectorPick<P_numtype1>& d1,
3507
const VectorPick<P_numtype2>& d2,
3508
const Vector<P_numtype3>& d3)
3510
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3511
VectorPickIterConst<P_numtype2>,
3512
VectorIterConst<P_numtype3> > T_expr;
3514
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3519
// where(VectorPick<P_numtype1>, VectorPick<P_numtype2>, _bz_VecExpr<P_expr3>)
3520
template<class P_numtype1, class P_numtype2, class P_expr3>
3522
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3523
VectorPickIterConst<P_numtype2>,
3524
_bz_VecExpr<P_expr3> > >
3525
where(const VectorPick<P_numtype1>& d1,
3526
const VectorPick<P_numtype2>& d2,
3527
_bz_VecExpr<P_expr3> d3)
3529
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3530
VectorPickIterConst<P_numtype2>,
3531
_bz_VecExpr<P_expr3> > T_expr;
3533
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3538
// where(VectorPick<P_numtype1>, VectorPick<P_numtype2>, VectorPick<P_numtype3>)
3539
template<class P_numtype1, class P_numtype2, class P_numtype3>
3541
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3542
VectorPickIterConst<P_numtype2>,
3543
VectorPickIterConst<P_numtype3> > >
3544
where(const VectorPick<P_numtype1>& d1,
3545
const VectorPick<P_numtype2>& d2,
3546
const VectorPick<P_numtype3>& d3)
3548
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3549
VectorPickIterConst<P_numtype2>,
3550
VectorPickIterConst<P_numtype3> > T_expr;
3552
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3557
// where(VectorPick<P_numtype1>, VectorPick<P_numtype2>, Range)
3558
template<class P_numtype1, class P_numtype2>
3560
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3561
VectorPickIterConst<P_numtype2>,
3563
where(const VectorPick<P_numtype1>& d1,
3564
const VectorPick<P_numtype2>& d2,
3567
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3568
VectorPickIterConst<P_numtype2>,
3571
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3576
// where(VectorPick<P_numtype1>, VectorPick<P_numtype2>, TinyVector<P_numtype3, N_length3>)
3577
template<class P_numtype1, class P_numtype2, class P_numtype3, int N_length3>
3579
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3580
VectorPickIterConst<P_numtype2>,
3581
TinyVectorIterConst<P_numtype3, N_length3> > >
3582
where(const VectorPick<P_numtype1>& d1,
3583
const VectorPick<P_numtype2>& d2,
3584
const TinyVector<P_numtype3, N_length3>& d3)
3586
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3587
VectorPickIterConst<P_numtype2>,
3588
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
3590
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3595
// where(VectorPick<P_numtype1>, VectorPick<P_numtype2>, int)
3596
template<class P_numtype1, class P_numtype2>
3598
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3599
VectorPickIterConst<P_numtype2>,
3600
_bz_VecExprConstant<int> > >
3601
where(const VectorPick<P_numtype1>& d1,
3602
const VectorPick<P_numtype2>& d2,
3605
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3606
VectorPickIterConst<P_numtype2>,
3607
_bz_VecExprConstant<int> > T_expr;
3609
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3611
_bz_VecExprConstant<int>(d3)));
3614
// where(VectorPick<P_numtype1>, VectorPick<P_numtype2>, float)
3615
template<class P_numtype1, class P_numtype2>
3617
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3618
VectorPickIterConst<P_numtype2>,
3619
_bz_VecExprConstant<float> > >
3620
where(const VectorPick<P_numtype1>& d1,
3621
const VectorPick<P_numtype2>& d2,
3624
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3625
VectorPickIterConst<P_numtype2>,
3626
_bz_VecExprConstant<float> > T_expr;
3628
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3630
_bz_VecExprConstant<float>(d3)));
3633
// where(VectorPick<P_numtype1>, VectorPick<P_numtype2>, double)
3634
template<class P_numtype1, class P_numtype2>
3636
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3637
VectorPickIterConst<P_numtype2>,
3638
_bz_VecExprConstant<double> > >
3639
where(const VectorPick<P_numtype1>& d1,
3640
const VectorPick<P_numtype2>& d2,
3643
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3644
VectorPickIterConst<P_numtype2>,
3645
_bz_VecExprConstant<double> > T_expr;
3647
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3649
_bz_VecExprConstant<double>(d3)));
3652
// where(VectorPick<P_numtype1>, VectorPick<P_numtype2>, long double)
3653
template<class P_numtype1, class P_numtype2>
3655
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3656
VectorPickIterConst<P_numtype2>,
3657
_bz_VecExprConstant<long double> > >
3658
where(const VectorPick<P_numtype1>& d1,
3659
const VectorPick<P_numtype2>& d2,
3662
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3663
VectorPickIterConst<P_numtype2>,
3664
_bz_VecExprConstant<long double> > T_expr;
3666
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3668
_bz_VecExprConstant<long double>(d3)));
3671
// where(VectorPick<P_numtype1>, VectorPick<P_numtype2>, complex<T3>)
3672
#ifdef BZ_HAVE_COMPLEX
3673
template<class P_numtype1, class P_numtype2, class T3>
3675
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3676
VectorPickIterConst<P_numtype2>,
3677
_bz_VecExprConstant<complex<T3> > > >
3678
where(const VectorPick<P_numtype1>& d1,
3679
const VectorPick<P_numtype2>& d2,
3682
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3683
VectorPickIterConst<P_numtype2>,
3684
_bz_VecExprConstant<complex<T3> > > T_expr;
3686
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3688
_bz_VecExprConstant<complex<T3> > (d3)));
3690
#endif // BZ_HAVE_COMPLEX
3692
// where(VectorPick<P_numtype1>, Range, Vector<P_numtype3>)
3693
template<class P_numtype1, class P_numtype3>
3695
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3697
VectorIterConst<P_numtype3> > >
3698
where(const VectorPick<P_numtype1>& d1,
3700
const Vector<P_numtype3>& d3)
3702
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3704
VectorIterConst<P_numtype3> > T_expr;
3706
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3711
// where(VectorPick<P_numtype1>, Range, _bz_VecExpr<P_expr3>)
3712
template<class P_numtype1, class P_expr3>
3714
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3716
_bz_VecExpr<P_expr3> > >
3717
where(const VectorPick<P_numtype1>& d1,
3719
_bz_VecExpr<P_expr3> d3)
3721
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3723
_bz_VecExpr<P_expr3> > T_expr;
3725
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3730
// where(VectorPick<P_numtype1>, Range, VectorPick<P_numtype3>)
3731
template<class P_numtype1, class P_numtype3>
3733
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3735
VectorPickIterConst<P_numtype3> > >
3736
where(const VectorPick<P_numtype1>& d1,
3738
const VectorPick<P_numtype3>& d3)
3740
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3742
VectorPickIterConst<P_numtype3> > T_expr;
3744
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3749
// where(VectorPick<P_numtype1>, Range, Range)
3750
template<class P_numtype1>
3752
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3755
where(const VectorPick<P_numtype1>& d1,
3759
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3763
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3768
// where(VectorPick<P_numtype1>, Range, TinyVector<P_numtype3, N_length3>)
3769
template<class P_numtype1, class P_numtype3, int N_length3>
3771
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3773
TinyVectorIterConst<P_numtype3, N_length3> > >
3774
where(const VectorPick<P_numtype1>& d1,
3776
const TinyVector<P_numtype3, N_length3>& d3)
3778
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3780
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
3782
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3787
// where(VectorPick<P_numtype1>, Range, int)
3788
template<class P_numtype1>
3790
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3792
_bz_VecExprConstant<int> > >
3793
where(const VectorPick<P_numtype1>& d1,
3797
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3799
_bz_VecExprConstant<int> > T_expr;
3801
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3803
_bz_VecExprConstant<int>(d3)));
3806
// where(VectorPick<P_numtype1>, Range, float)
3807
template<class P_numtype1>
3809
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3811
_bz_VecExprConstant<float> > >
3812
where(const VectorPick<P_numtype1>& d1,
3816
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3818
_bz_VecExprConstant<float> > T_expr;
3820
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3822
_bz_VecExprConstant<float>(d3)));
3825
// where(VectorPick<P_numtype1>, Range, double)
3826
template<class P_numtype1>
3828
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3830
_bz_VecExprConstant<double> > >
3831
where(const VectorPick<P_numtype1>& d1,
3835
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3837
_bz_VecExprConstant<double> > T_expr;
3839
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3841
_bz_VecExprConstant<double>(d3)));
3844
// where(VectorPick<P_numtype1>, Range, long double)
3845
template<class P_numtype1>
3847
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3849
_bz_VecExprConstant<long double> > >
3850
where(const VectorPick<P_numtype1>& d1,
3854
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3856
_bz_VecExprConstant<long double> > T_expr;
3858
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3860
_bz_VecExprConstant<long double>(d3)));
3863
// where(VectorPick<P_numtype1>, Range, complex<T3>)
3864
#ifdef BZ_HAVE_COMPLEX
3865
template<class P_numtype1, class T3>
3867
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3869
_bz_VecExprConstant<complex<T3> > > >
3870
where(const VectorPick<P_numtype1>& d1,
3874
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3876
_bz_VecExprConstant<complex<T3> > > T_expr;
3878
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3880
_bz_VecExprConstant<complex<T3> > (d3)));
3882
#endif // BZ_HAVE_COMPLEX
3884
// where(VectorPick<P_numtype1>, TinyVector<P_numtype2, N_length2>, Vector<P_numtype3>)
3885
template<class P_numtype1, class P_numtype2, int N_length2, class P_numtype3>
3887
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3888
TinyVectorIterConst<P_numtype2, N_length2>,
3889
VectorIterConst<P_numtype3> > >
3890
where(const VectorPick<P_numtype1>& d1,
3891
const TinyVector<P_numtype2, N_length2>& d2,
3892
const Vector<P_numtype3>& d3)
3894
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3895
TinyVectorIterConst<P_numtype2, N_length2>,
3896
VectorIterConst<P_numtype3> > T_expr;
3898
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3903
// where(VectorPick<P_numtype1>, TinyVector<P_numtype2, N_length2>, _bz_VecExpr<P_expr3>)
3904
template<class P_numtype1, class P_numtype2, int N_length2, class P_expr3>
3906
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3907
TinyVectorIterConst<P_numtype2, N_length2>,
3908
_bz_VecExpr<P_expr3> > >
3909
where(const VectorPick<P_numtype1>& d1,
3910
const TinyVector<P_numtype2, N_length2>& d2,
3911
_bz_VecExpr<P_expr3> d3)
3913
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3914
TinyVectorIterConst<P_numtype2, N_length2>,
3915
_bz_VecExpr<P_expr3> > T_expr;
3917
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3922
// where(VectorPick<P_numtype1>, TinyVector<P_numtype2, N_length2>, VectorPick<P_numtype3>)
3923
template<class P_numtype1, class P_numtype2, int N_length2, class P_numtype3>
3925
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3926
TinyVectorIterConst<P_numtype2, N_length2>,
3927
VectorPickIterConst<P_numtype3> > >
3928
where(const VectorPick<P_numtype1>& d1,
3929
const TinyVector<P_numtype2, N_length2>& d2,
3930
const VectorPick<P_numtype3>& d3)
3932
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3933
TinyVectorIterConst<P_numtype2, N_length2>,
3934
VectorPickIterConst<P_numtype3> > T_expr;
3936
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3941
// where(VectorPick<P_numtype1>, TinyVector<P_numtype2, N_length2>, Range)
3942
template<class P_numtype1, class P_numtype2, int N_length2>
3944
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3945
TinyVectorIterConst<P_numtype2, N_length2>,
3947
where(const VectorPick<P_numtype1>& d1,
3948
const TinyVector<P_numtype2, N_length2>& d2,
3951
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3952
TinyVectorIterConst<P_numtype2, N_length2>,
3955
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3960
// where(VectorPick<P_numtype1>, TinyVector<P_numtype2, N_length2>, TinyVector<P_numtype3, N_length3>)
3961
template<class P_numtype1, class P_numtype2, int N_length2, class P_numtype3, int N_length3>
3963
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3964
TinyVectorIterConst<P_numtype2, N_length2>,
3965
TinyVectorIterConst<P_numtype3, N_length3> > >
3966
where(const VectorPick<P_numtype1>& d1,
3967
const TinyVector<P_numtype2, N_length2>& d2,
3968
const TinyVector<P_numtype3, N_length3>& d3)
3970
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3971
TinyVectorIterConst<P_numtype2, N_length2>,
3972
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
3974
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3979
// where(VectorPick<P_numtype1>, TinyVector<P_numtype2, N_length2>, int)
3980
template<class P_numtype1, class P_numtype2, int N_length2>
3982
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
3983
TinyVectorIterConst<P_numtype2, N_length2>,
3984
_bz_VecExprConstant<int> > >
3985
where(const VectorPick<P_numtype1>& d1,
3986
const TinyVector<P_numtype2, N_length2>& d2,
3989
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
3990
TinyVectorIterConst<P_numtype2, N_length2>,
3991
_bz_VecExprConstant<int> > T_expr;
3993
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
3995
_bz_VecExprConstant<int>(d3)));
3998
// where(VectorPick<P_numtype1>, TinyVector<P_numtype2, N_length2>, float)
3999
template<class P_numtype1, class P_numtype2, int N_length2>
4001
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4002
TinyVectorIterConst<P_numtype2, N_length2>,
4003
_bz_VecExprConstant<float> > >
4004
where(const VectorPick<P_numtype1>& d1,
4005
const TinyVector<P_numtype2, N_length2>& d2,
4008
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4009
TinyVectorIterConst<P_numtype2, N_length2>,
4010
_bz_VecExprConstant<float> > T_expr;
4012
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4014
_bz_VecExprConstant<float>(d3)));
4017
// where(VectorPick<P_numtype1>, TinyVector<P_numtype2, N_length2>, double)
4018
template<class P_numtype1, class P_numtype2, int N_length2>
4020
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4021
TinyVectorIterConst<P_numtype2, N_length2>,
4022
_bz_VecExprConstant<double> > >
4023
where(const VectorPick<P_numtype1>& d1,
4024
const TinyVector<P_numtype2, N_length2>& d2,
4027
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4028
TinyVectorIterConst<P_numtype2, N_length2>,
4029
_bz_VecExprConstant<double> > T_expr;
4031
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4033
_bz_VecExprConstant<double>(d3)));
4036
// where(VectorPick<P_numtype1>, TinyVector<P_numtype2, N_length2>, long double)
4037
template<class P_numtype1, class P_numtype2, int N_length2>
4039
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4040
TinyVectorIterConst<P_numtype2, N_length2>,
4041
_bz_VecExprConstant<long double> > >
4042
where(const VectorPick<P_numtype1>& d1,
4043
const TinyVector<P_numtype2, N_length2>& d2,
4046
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4047
TinyVectorIterConst<P_numtype2, N_length2>,
4048
_bz_VecExprConstant<long double> > T_expr;
4050
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4052
_bz_VecExprConstant<long double>(d3)));
4055
// where(VectorPick<P_numtype1>, TinyVector<P_numtype2, N_length2>, complex<T3>)
4056
#ifdef BZ_HAVE_COMPLEX
4057
template<class P_numtype1, class P_numtype2, int N_length2, class T3>
4059
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4060
TinyVectorIterConst<P_numtype2, N_length2>,
4061
_bz_VecExprConstant<complex<T3> > > >
4062
where(const VectorPick<P_numtype1>& d1,
4063
const TinyVector<P_numtype2, N_length2>& d2,
4066
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4067
TinyVectorIterConst<P_numtype2, N_length2>,
4068
_bz_VecExprConstant<complex<T3> > > T_expr;
4070
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4072
_bz_VecExprConstant<complex<T3> > (d3)));
4074
#endif // BZ_HAVE_COMPLEX
4076
// where(VectorPick<P_numtype1>, int, Vector<P_numtype3>)
4077
template<class P_numtype1, class P_numtype3>
4079
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4080
_bz_VecExprConstant<int>,
4081
VectorIterConst<P_numtype3> > >
4082
where(const VectorPick<P_numtype1>& d1,
4084
const Vector<P_numtype3>& d3)
4086
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4087
_bz_VecExprConstant<int>,
4088
VectorIterConst<P_numtype3> > T_expr;
4090
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4091
_bz_VecExprConstant<int>(d2),
4095
// where(VectorPick<P_numtype1>, int, _bz_VecExpr<P_expr3>)
4096
template<class P_numtype1, class P_expr3>
4098
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4099
_bz_VecExprConstant<int>,
4100
_bz_VecExpr<P_expr3> > >
4101
where(const VectorPick<P_numtype1>& d1,
4103
_bz_VecExpr<P_expr3> d3)
4105
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4106
_bz_VecExprConstant<int>,
4107
_bz_VecExpr<P_expr3> > T_expr;
4109
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4110
_bz_VecExprConstant<int>(d2),
4114
// where(VectorPick<P_numtype1>, int, VectorPick<P_numtype3>)
4115
template<class P_numtype1, class P_numtype3>
4117
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4118
_bz_VecExprConstant<int>,
4119
VectorPickIterConst<P_numtype3> > >
4120
where(const VectorPick<P_numtype1>& d1,
4122
const VectorPick<P_numtype3>& d3)
4124
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4125
_bz_VecExprConstant<int>,
4126
VectorPickIterConst<P_numtype3> > T_expr;
4128
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4129
_bz_VecExprConstant<int>(d2),
4133
// where(VectorPick<P_numtype1>, int, Range)
4134
template<class P_numtype1>
4136
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4137
_bz_VecExprConstant<int>,
4139
where(const VectorPick<P_numtype1>& d1,
4143
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4144
_bz_VecExprConstant<int>,
4147
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4148
_bz_VecExprConstant<int>(d2),
4152
// where(VectorPick<P_numtype1>, int, TinyVector<P_numtype3, N_length3>)
4153
template<class P_numtype1, class P_numtype3, int N_length3>
4155
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4156
_bz_VecExprConstant<int>,
4157
TinyVectorIterConst<P_numtype3, N_length3> > >
4158
where(const VectorPick<P_numtype1>& d1,
4160
const TinyVector<P_numtype3, N_length3>& d3)
4162
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4163
_bz_VecExprConstant<int>,
4164
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
4166
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4167
_bz_VecExprConstant<int>(d2),
4171
// where(VectorPick<P_numtype1>, int, int)
4172
template<class P_numtype1>
4174
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4175
_bz_VecExprConstant<int>,
4176
_bz_VecExprConstant<int> > >
4177
where(const VectorPick<P_numtype1>& d1,
4181
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4182
_bz_VecExprConstant<int>,
4183
_bz_VecExprConstant<int> > T_expr;
4185
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4186
_bz_VecExprConstant<int>(d2),
4187
_bz_VecExprConstant<int>(d3)));
4190
// where(VectorPick<P_numtype1>, float, Vector<P_numtype3>)
4191
template<class P_numtype1, class P_numtype3>
4193
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4194
_bz_VecExprConstant<float>,
4195
VectorIterConst<P_numtype3> > >
4196
where(const VectorPick<P_numtype1>& d1,
4198
const Vector<P_numtype3>& d3)
4200
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4201
_bz_VecExprConstant<float>,
4202
VectorIterConst<P_numtype3> > T_expr;
4204
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4205
_bz_VecExprConstant<float>(d2),
4209
// where(VectorPick<P_numtype1>, float, _bz_VecExpr<P_expr3>)
4210
template<class P_numtype1, class P_expr3>
4212
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4213
_bz_VecExprConstant<float>,
4214
_bz_VecExpr<P_expr3> > >
4215
where(const VectorPick<P_numtype1>& d1,
4217
_bz_VecExpr<P_expr3> d3)
4219
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4220
_bz_VecExprConstant<float>,
4221
_bz_VecExpr<P_expr3> > T_expr;
4223
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4224
_bz_VecExprConstant<float>(d2),
4228
// where(VectorPick<P_numtype1>, float, VectorPick<P_numtype3>)
4229
template<class P_numtype1, class P_numtype3>
4231
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4232
_bz_VecExprConstant<float>,
4233
VectorPickIterConst<P_numtype3> > >
4234
where(const VectorPick<P_numtype1>& d1,
4236
const VectorPick<P_numtype3>& d3)
4238
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4239
_bz_VecExprConstant<float>,
4240
VectorPickIterConst<P_numtype3> > T_expr;
4242
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4243
_bz_VecExprConstant<float>(d2),
4247
// where(VectorPick<P_numtype1>, float, Range)
4248
template<class P_numtype1>
4250
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4251
_bz_VecExprConstant<float>,
4253
where(const VectorPick<P_numtype1>& d1,
4257
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4258
_bz_VecExprConstant<float>,
4261
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4262
_bz_VecExprConstant<float>(d2),
4266
// where(VectorPick<P_numtype1>, float, TinyVector<P_numtype3, N_length3>)
4267
template<class P_numtype1, class P_numtype3, int N_length3>
4269
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4270
_bz_VecExprConstant<float>,
4271
TinyVectorIterConst<P_numtype3, N_length3> > >
4272
where(const VectorPick<P_numtype1>& d1,
4274
const TinyVector<P_numtype3, N_length3>& d3)
4276
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4277
_bz_VecExprConstant<float>,
4278
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
4280
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4281
_bz_VecExprConstant<float>(d2),
4285
// where(VectorPick<P_numtype1>, float, float)
4286
template<class P_numtype1>
4288
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4289
_bz_VecExprConstant<float>,
4290
_bz_VecExprConstant<float> > >
4291
where(const VectorPick<P_numtype1>& d1,
4295
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4296
_bz_VecExprConstant<float>,
4297
_bz_VecExprConstant<float> > T_expr;
4299
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4300
_bz_VecExprConstant<float>(d2),
4301
_bz_VecExprConstant<float>(d3)));
4304
// where(VectorPick<P_numtype1>, double, Vector<P_numtype3>)
4305
template<class P_numtype1, class P_numtype3>
4307
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4308
_bz_VecExprConstant<double>,
4309
VectorIterConst<P_numtype3> > >
4310
where(const VectorPick<P_numtype1>& d1,
4312
const Vector<P_numtype3>& d3)
4314
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4315
_bz_VecExprConstant<double>,
4316
VectorIterConst<P_numtype3> > T_expr;
4318
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4319
_bz_VecExprConstant<double>(d2),
4323
// where(VectorPick<P_numtype1>, double, _bz_VecExpr<P_expr3>)
4324
template<class P_numtype1, class P_expr3>
4326
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4327
_bz_VecExprConstant<double>,
4328
_bz_VecExpr<P_expr3> > >
4329
where(const VectorPick<P_numtype1>& d1,
4331
_bz_VecExpr<P_expr3> d3)
4333
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4334
_bz_VecExprConstant<double>,
4335
_bz_VecExpr<P_expr3> > T_expr;
4337
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4338
_bz_VecExprConstant<double>(d2),
4342
// where(VectorPick<P_numtype1>, double, VectorPick<P_numtype3>)
4343
template<class P_numtype1, class P_numtype3>
4345
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4346
_bz_VecExprConstant<double>,
4347
VectorPickIterConst<P_numtype3> > >
4348
where(const VectorPick<P_numtype1>& d1,
4350
const VectorPick<P_numtype3>& d3)
4352
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4353
_bz_VecExprConstant<double>,
4354
VectorPickIterConst<P_numtype3> > T_expr;
4356
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4357
_bz_VecExprConstant<double>(d2),
4361
// where(VectorPick<P_numtype1>, double, Range)
4362
template<class P_numtype1>
4364
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4365
_bz_VecExprConstant<double>,
4367
where(const VectorPick<P_numtype1>& d1,
4371
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4372
_bz_VecExprConstant<double>,
4375
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4376
_bz_VecExprConstant<double>(d2),
4380
// where(VectorPick<P_numtype1>, double, TinyVector<P_numtype3, N_length3>)
4381
template<class P_numtype1, class P_numtype3, int N_length3>
4383
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4384
_bz_VecExprConstant<double>,
4385
TinyVectorIterConst<P_numtype3, N_length3> > >
4386
where(const VectorPick<P_numtype1>& d1,
4388
const TinyVector<P_numtype3, N_length3>& d3)
4390
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4391
_bz_VecExprConstant<double>,
4392
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
4394
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4395
_bz_VecExprConstant<double>(d2),
4399
// where(VectorPick<P_numtype1>, double, double)
4400
template<class P_numtype1>
4402
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4403
_bz_VecExprConstant<double>,
4404
_bz_VecExprConstant<double> > >
4405
where(const VectorPick<P_numtype1>& d1,
4409
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4410
_bz_VecExprConstant<double>,
4411
_bz_VecExprConstant<double> > T_expr;
4413
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4414
_bz_VecExprConstant<double>(d2),
4415
_bz_VecExprConstant<double>(d3)));
4418
// where(VectorPick<P_numtype1>, long double, Vector<P_numtype3>)
4419
template<class P_numtype1, class P_numtype3>
4421
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4422
_bz_VecExprConstant<long double>,
4423
VectorIterConst<P_numtype3> > >
4424
where(const VectorPick<P_numtype1>& d1,
4426
const Vector<P_numtype3>& d3)
4428
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4429
_bz_VecExprConstant<long double>,
4430
VectorIterConst<P_numtype3> > T_expr;
4432
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4433
_bz_VecExprConstant<long double>(d2),
4437
// where(VectorPick<P_numtype1>, long double, _bz_VecExpr<P_expr3>)
4438
template<class P_numtype1, class P_expr3>
4440
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4441
_bz_VecExprConstant<long double>,
4442
_bz_VecExpr<P_expr3> > >
4443
where(const VectorPick<P_numtype1>& d1,
4445
_bz_VecExpr<P_expr3> d3)
4447
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4448
_bz_VecExprConstant<long double>,
4449
_bz_VecExpr<P_expr3> > T_expr;
4451
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4452
_bz_VecExprConstant<long double>(d2),
4456
// where(VectorPick<P_numtype1>, long double, VectorPick<P_numtype3>)
4457
template<class P_numtype1, class P_numtype3>
4459
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4460
_bz_VecExprConstant<long double>,
4461
VectorPickIterConst<P_numtype3> > >
4462
where(const VectorPick<P_numtype1>& d1,
4464
const VectorPick<P_numtype3>& d3)
4466
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4467
_bz_VecExprConstant<long double>,
4468
VectorPickIterConst<P_numtype3> > T_expr;
4470
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4471
_bz_VecExprConstant<long double>(d2),
4475
// where(VectorPick<P_numtype1>, long double, Range)
4476
template<class P_numtype1>
4478
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4479
_bz_VecExprConstant<long double>,
4481
where(const VectorPick<P_numtype1>& d1,
4485
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4486
_bz_VecExprConstant<long double>,
4489
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4490
_bz_VecExprConstant<long double>(d2),
4494
// where(VectorPick<P_numtype1>, long double, TinyVector<P_numtype3, N_length3>)
4495
template<class P_numtype1, class P_numtype3, int N_length3>
4497
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4498
_bz_VecExprConstant<long double>,
4499
TinyVectorIterConst<P_numtype3, N_length3> > >
4500
where(const VectorPick<P_numtype1>& d1,
4502
const TinyVector<P_numtype3, N_length3>& d3)
4504
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4505
_bz_VecExprConstant<long double>,
4506
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
4508
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4509
_bz_VecExprConstant<long double>(d2),
4513
// where(VectorPick<P_numtype1>, long double, long double)
4514
template<class P_numtype1>
4516
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4517
_bz_VecExprConstant<long double>,
4518
_bz_VecExprConstant<long double> > >
4519
where(const VectorPick<P_numtype1>& d1,
4523
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4524
_bz_VecExprConstant<long double>,
4525
_bz_VecExprConstant<long double> > T_expr;
4527
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4528
_bz_VecExprConstant<long double>(d2),
4529
_bz_VecExprConstant<long double>(d3)));
4532
// where(VectorPick<P_numtype1>, complex<T2>, Vector<P_numtype3>)
4533
#ifdef BZ_HAVE_COMPLEX
4534
template<class P_numtype1, class T2, class P_numtype3>
4536
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4537
_bz_VecExprConstant<complex<T2> > ,
4538
VectorIterConst<P_numtype3> > >
4539
where(const VectorPick<P_numtype1>& d1,
4541
const Vector<P_numtype3>& d3)
4543
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4544
_bz_VecExprConstant<complex<T2> > ,
4545
VectorIterConst<P_numtype3> > T_expr;
4547
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4548
_bz_VecExprConstant<complex<T2> > (d2),
4551
#endif // BZ_HAVE_COMPLEX
4553
// where(VectorPick<P_numtype1>, complex<T2>, _bz_VecExpr<P_expr3>)
4554
#ifdef BZ_HAVE_COMPLEX
4555
template<class P_numtype1, class T2, class P_expr3>
4557
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4558
_bz_VecExprConstant<complex<T2> > ,
4559
_bz_VecExpr<P_expr3> > >
4560
where(const VectorPick<P_numtype1>& d1,
4562
_bz_VecExpr<P_expr3> d3)
4564
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4565
_bz_VecExprConstant<complex<T2> > ,
4566
_bz_VecExpr<P_expr3> > T_expr;
4568
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4569
_bz_VecExprConstant<complex<T2> > (d2),
4572
#endif // BZ_HAVE_COMPLEX
4574
// where(VectorPick<P_numtype1>, complex<T2>, VectorPick<P_numtype3>)
4575
#ifdef BZ_HAVE_COMPLEX
4576
template<class P_numtype1, class T2, class P_numtype3>
4578
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4579
_bz_VecExprConstant<complex<T2> > ,
4580
VectorPickIterConst<P_numtype3> > >
4581
where(const VectorPick<P_numtype1>& d1,
4583
const VectorPick<P_numtype3>& d3)
4585
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4586
_bz_VecExprConstant<complex<T2> > ,
4587
VectorPickIterConst<P_numtype3> > T_expr;
4589
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4590
_bz_VecExprConstant<complex<T2> > (d2),
4593
#endif // BZ_HAVE_COMPLEX
4595
// where(VectorPick<P_numtype1>, complex<T2>, Range)
4596
#ifdef BZ_HAVE_COMPLEX
4597
template<class P_numtype1, class T2>
4599
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4600
_bz_VecExprConstant<complex<T2> > ,
4602
where(const VectorPick<P_numtype1>& d1,
4606
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4607
_bz_VecExprConstant<complex<T2> > ,
4610
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4611
_bz_VecExprConstant<complex<T2> > (d2),
4614
#endif // BZ_HAVE_COMPLEX
4616
// where(VectorPick<P_numtype1>, complex<T2>, TinyVector<P_numtype3, N_length3>)
4617
#ifdef BZ_HAVE_COMPLEX
4618
template<class P_numtype1, class T2, class P_numtype3, int N_length3>
4620
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4621
_bz_VecExprConstant<complex<T2> > ,
4622
TinyVectorIterConst<P_numtype3, N_length3> > >
4623
where(const VectorPick<P_numtype1>& d1,
4625
const TinyVector<P_numtype3, N_length3>& d3)
4627
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4628
_bz_VecExprConstant<complex<T2> > ,
4629
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
4631
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4632
_bz_VecExprConstant<complex<T2> > (d2),
4635
#endif // BZ_HAVE_COMPLEX
4637
// where(VectorPick<P_numtype1>, complex<T2>, complex<T3>)
4638
#ifdef BZ_HAVE_COMPLEX
4639
template<class P_numtype1, class T2, class T3>
4641
_bz_VecExpr<_bz_VecWhere<VectorPickIterConst<P_numtype1>,
4642
_bz_VecExprConstant<complex<T2> > ,
4643
_bz_VecExprConstant<complex<T3> > > >
4644
where(const VectorPick<P_numtype1>& d1,
4648
typedef _bz_VecWhere<VectorPickIterConst<P_numtype1>,
4649
_bz_VecExprConstant<complex<T2> > ,
4650
_bz_VecExprConstant<complex<T3> > > T_expr;
4652
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
4653
_bz_VecExprConstant<complex<T2> > (d2),
4654
_bz_VecExprConstant<complex<T3> > (d3)));
4656
#endif // BZ_HAVE_COMPLEX
4658
// where(Range, Vector<P_numtype2>, Vector<P_numtype3>)
4659
template<class P_numtype2, class P_numtype3>
4661
_bz_VecExpr<_bz_VecWhere<Range,
4662
VectorIterConst<P_numtype2>,
4663
VectorIterConst<P_numtype3> > >
4665
const Vector<P_numtype2>& d2,
4666
const Vector<P_numtype3>& d3)
4668
typedef _bz_VecWhere<Range,
4669
VectorIterConst<P_numtype2>,
4670
VectorIterConst<P_numtype3> > T_expr;
4672
return _bz_VecExpr<T_expr>(T_expr(d1,
4677
// where(Range, Vector<P_numtype2>, _bz_VecExpr<P_expr3>)
4678
template<class P_numtype2, class P_expr3>
4680
_bz_VecExpr<_bz_VecWhere<Range,
4681
VectorIterConst<P_numtype2>,
4682
_bz_VecExpr<P_expr3> > >
4684
const Vector<P_numtype2>& d2,
4685
_bz_VecExpr<P_expr3> d3)
4687
typedef _bz_VecWhere<Range,
4688
VectorIterConst<P_numtype2>,
4689
_bz_VecExpr<P_expr3> > T_expr;
4691
return _bz_VecExpr<T_expr>(T_expr(d1,
4696
// where(Range, Vector<P_numtype2>, VectorPick<P_numtype3>)
4697
template<class P_numtype2, class P_numtype3>
4699
_bz_VecExpr<_bz_VecWhere<Range,
4700
VectorIterConst<P_numtype2>,
4701
VectorPickIterConst<P_numtype3> > >
4703
const Vector<P_numtype2>& d2,
4704
const VectorPick<P_numtype3>& d3)
4706
typedef _bz_VecWhere<Range,
4707
VectorIterConst<P_numtype2>,
4708
VectorPickIterConst<P_numtype3> > T_expr;
4710
return _bz_VecExpr<T_expr>(T_expr(d1,
4715
// where(Range, Vector<P_numtype2>, Range)
4716
template<class P_numtype2>
4718
_bz_VecExpr<_bz_VecWhere<Range,
4719
VectorIterConst<P_numtype2>,
4722
const Vector<P_numtype2>& d2,
4725
typedef _bz_VecWhere<Range,
4726
VectorIterConst<P_numtype2>,
4729
return _bz_VecExpr<T_expr>(T_expr(d1,
4734
// where(Range, Vector<P_numtype2>, TinyVector<P_numtype3, N_length3>)
4735
template<class P_numtype2, class P_numtype3, int N_length3>
4737
_bz_VecExpr<_bz_VecWhere<Range,
4738
VectorIterConst<P_numtype2>,
4739
TinyVectorIterConst<P_numtype3, N_length3> > >
4741
const Vector<P_numtype2>& d2,
4742
const TinyVector<P_numtype3, N_length3>& d3)
4744
typedef _bz_VecWhere<Range,
4745
VectorIterConst<P_numtype2>,
4746
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
4748
return _bz_VecExpr<T_expr>(T_expr(d1,
4753
// where(Range, Vector<P_numtype2>, int)
4754
template<class P_numtype2>
4756
_bz_VecExpr<_bz_VecWhere<Range,
4757
VectorIterConst<P_numtype2>,
4758
_bz_VecExprConstant<int> > >
4760
const Vector<P_numtype2>& d2,
4763
typedef _bz_VecWhere<Range,
4764
VectorIterConst<P_numtype2>,
4765
_bz_VecExprConstant<int> > T_expr;
4767
return _bz_VecExpr<T_expr>(T_expr(d1,
4769
_bz_VecExprConstant<int>(d3)));
4772
// where(Range, Vector<P_numtype2>, float)
4773
template<class P_numtype2>
4775
_bz_VecExpr<_bz_VecWhere<Range,
4776
VectorIterConst<P_numtype2>,
4777
_bz_VecExprConstant<float> > >
4779
const Vector<P_numtype2>& d2,
4782
typedef _bz_VecWhere<Range,
4783
VectorIterConst<P_numtype2>,
4784
_bz_VecExprConstant<float> > T_expr;
4786
return _bz_VecExpr<T_expr>(T_expr(d1,
4788
_bz_VecExprConstant<float>(d3)));
4791
// where(Range, Vector<P_numtype2>, double)
4792
template<class P_numtype2>
4794
_bz_VecExpr<_bz_VecWhere<Range,
4795
VectorIterConst<P_numtype2>,
4796
_bz_VecExprConstant<double> > >
4798
const Vector<P_numtype2>& d2,
4801
typedef _bz_VecWhere<Range,
4802
VectorIterConst<P_numtype2>,
4803
_bz_VecExprConstant<double> > T_expr;
4805
return _bz_VecExpr<T_expr>(T_expr(d1,
4807
_bz_VecExprConstant<double>(d3)));
4810
// where(Range, Vector<P_numtype2>, long double)
4811
template<class P_numtype2>
4813
_bz_VecExpr<_bz_VecWhere<Range,
4814
VectorIterConst<P_numtype2>,
4815
_bz_VecExprConstant<long double> > >
4817
const Vector<P_numtype2>& d2,
4820
typedef _bz_VecWhere<Range,
4821
VectorIterConst<P_numtype2>,
4822
_bz_VecExprConstant<long double> > T_expr;
4824
return _bz_VecExpr<T_expr>(T_expr(d1,
4826
_bz_VecExprConstant<long double>(d3)));
4829
// where(Range, Vector<P_numtype2>, complex<T3>)
4830
#ifdef BZ_HAVE_COMPLEX
4831
template<class P_numtype2, class T3>
4833
_bz_VecExpr<_bz_VecWhere<Range,
4834
VectorIterConst<P_numtype2>,
4835
_bz_VecExprConstant<complex<T3> > > >
4837
const Vector<P_numtype2>& d2,
4840
typedef _bz_VecWhere<Range,
4841
VectorIterConst<P_numtype2>,
4842
_bz_VecExprConstant<complex<T3> > > T_expr;
4844
return _bz_VecExpr<T_expr>(T_expr(d1,
4846
_bz_VecExprConstant<complex<T3> > (d3)));
4848
#endif // BZ_HAVE_COMPLEX
4850
// where(Range, _bz_VecExpr<P_expr2>, Vector<P_numtype3>)
4851
template<class P_expr2, class P_numtype3>
4853
_bz_VecExpr<_bz_VecWhere<Range,
4854
_bz_VecExpr<P_expr2>,
4855
VectorIterConst<P_numtype3> > >
4857
_bz_VecExpr<P_expr2> d2,
4858
const Vector<P_numtype3>& d3)
4860
typedef _bz_VecWhere<Range,
4861
_bz_VecExpr<P_expr2>,
4862
VectorIterConst<P_numtype3> > T_expr;
4864
return _bz_VecExpr<T_expr>(T_expr(d1,
4869
// where(Range, _bz_VecExpr<P_expr2>, _bz_VecExpr<P_expr3>)
4870
template<class P_expr2, class P_expr3>
4872
_bz_VecExpr<_bz_VecWhere<Range,
4873
_bz_VecExpr<P_expr2>,
4874
_bz_VecExpr<P_expr3> > >
4876
_bz_VecExpr<P_expr2> d2,
4877
_bz_VecExpr<P_expr3> d3)
4879
typedef _bz_VecWhere<Range,
4880
_bz_VecExpr<P_expr2>,
4881
_bz_VecExpr<P_expr3> > T_expr;
4883
return _bz_VecExpr<T_expr>(T_expr(d1,
4888
// where(Range, _bz_VecExpr<P_expr2>, VectorPick<P_numtype3>)
4889
template<class P_expr2, class P_numtype3>
4891
_bz_VecExpr<_bz_VecWhere<Range,
4892
_bz_VecExpr<P_expr2>,
4893
VectorPickIterConst<P_numtype3> > >
4895
_bz_VecExpr<P_expr2> d2,
4896
const VectorPick<P_numtype3>& d3)
4898
typedef _bz_VecWhere<Range,
4899
_bz_VecExpr<P_expr2>,
4900
VectorPickIterConst<P_numtype3> > T_expr;
4902
return _bz_VecExpr<T_expr>(T_expr(d1,
4907
// where(Range, _bz_VecExpr<P_expr2>, Range)
4908
template<class P_expr2>
4910
_bz_VecExpr<_bz_VecWhere<Range,
4911
_bz_VecExpr<P_expr2>,
4914
_bz_VecExpr<P_expr2> d2,
4917
typedef _bz_VecWhere<Range,
4918
_bz_VecExpr<P_expr2>,
4921
return _bz_VecExpr<T_expr>(T_expr(d1,
4926
// where(Range, _bz_VecExpr<P_expr2>, TinyVector<P_numtype3, N_length3>)
4927
template<class P_expr2, class P_numtype3, int N_length3>
4929
_bz_VecExpr<_bz_VecWhere<Range,
4930
_bz_VecExpr<P_expr2>,
4931
TinyVectorIterConst<P_numtype3, N_length3> > >
4933
_bz_VecExpr<P_expr2> d2,
4934
const TinyVector<P_numtype3, N_length3>& d3)
4936
typedef _bz_VecWhere<Range,
4937
_bz_VecExpr<P_expr2>,
4938
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
4940
return _bz_VecExpr<T_expr>(T_expr(d1,
4945
// where(Range, _bz_VecExpr<P_expr2>, int)
4946
template<class P_expr2>
4948
_bz_VecExpr<_bz_VecWhere<Range,
4949
_bz_VecExpr<P_expr2>,
4950
_bz_VecExprConstant<int> > >
4952
_bz_VecExpr<P_expr2> d2,
4955
typedef _bz_VecWhere<Range,
4956
_bz_VecExpr<P_expr2>,
4957
_bz_VecExprConstant<int> > T_expr;
4959
return _bz_VecExpr<T_expr>(T_expr(d1,
4961
_bz_VecExprConstant<int>(d3)));
4964
// where(Range, _bz_VecExpr<P_expr2>, float)
4965
template<class P_expr2>
4967
_bz_VecExpr<_bz_VecWhere<Range,
4968
_bz_VecExpr<P_expr2>,
4969
_bz_VecExprConstant<float> > >
4971
_bz_VecExpr<P_expr2> d2,
4974
typedef _bz_VecWhere<Range,
4975
_bz_VecExpr<P_expr2>,
4976
_bz_VecExprConstant<float> > T_expr;
4978
return _bz_VecExpr<T_expr>(T_expr(d1,
4980
_bz_VecExprConstant<float>(d3)));
4983
// where(Range, _bz_VecExpr<P_expr2>, double)
4984
template<class P_expr2>
4986
_bz_VecExpr<_bz_VecWhere<Range,
4987
_bz_VecExpr<P_expr2>,
4988
_bz_VecExprConstant<double> > >
4990
_bz_VecExpr<P_expr2> d2,
4993
typedef _bz_VecWhere<Range,
4994
_bz_VecExpr<P_expr2>,
4995
_bz_VecExprConstant<double> > T_expr;
4997
return _bz_VecExpr<T_expr>(T_expr(d1,
4999
_bz_VecExprConstant<double>(d3)));
5002
// where(Range, _bz_VecExpr<P_expr2>, long double)
5003
template<class P_expr2>
5005
_bz_VecExpr<_bz_VecWhere<Range,
5006
_bz_VecExpr<P_expr2>,
5007
_bz_VecExprConstant<long double> > >
5009
_bz_VecExpr<P_expr2> d2,
5012
typedef _bz_VecWhere<Range,
5013
_bz_VecExpr<P_expr2>,
5014
_bz_VecExprConstant<long double> > T_expr;
5016
return _bz_VecExpr<T_expr>(T_expr(d1,
5018
_bz_VecExprConstant<long double>(d3)));
5021
// where(Range, _bz_VecExpr<P_expr2>, complex<T3>)
5022
#ifdef BZ_HAVE_COMPLEX
5023
template<class P_expr2, class T3>
5025
_bz_VecExpr<_bz_VecWhere<Range,
5026
_bz_VecExpr<P_expr2>,
5027
_bz_VecExprConstant<complex<T3> > > >
5029
_bz_VecExpr<P_expr2> d2,
5032
typedef _bz_VecWhere<Range,
5033
_bz_VecExpr<P_expr2>,
5034
_bz_VecExprConstant<complex<T3> > > T_expr;
5036
return _bz_VecExpr<T_expr>(T_expr(d1,
5038
_bz_VecExprConstant<complex<T3> > (d3)));
5040
#endif // BZ_HAVE_COMPLEX
5042
// where(Range, VectorPick<P_numtype2>, Vector<P_numtype3>)
5043
template<class P_numtype2, class P_numtype3>
5045
_bz_VecExpr<_bz_VecWhere<Range,
5046
VectorPickIterConst<P_numtype2>,
5047
VectorIterConst<P_numtype3> > >
5049
const VectorPick<P_numtype2>& d2,
5050
const Vector<P_numtype3>& d3)
5052
typedef _bz_VecWhere<Range,
5053
VectorPickIterConst<P_numtype2>,
5054
VectorIterConst<P_numtype3> > T_expr;
5056
return _bz_VecExpr<T_expr>(T_expr(d1,
5061
// where(Range, VectorPick<P_numtype2>, _bz_VecExpr<P_expr3>)
5062
template<class P_numtype2, class P_expr3>
5064
_bz_VecExpr<_bz_VecWhere<Range,
5065
VectorPickIterConst<P_numtype2>,
5066
_bz_VecExpr<P_expr3> > >
5068
const VectorPick<P_numtype2>& d2,
5069
_bz_VecExpr<P_expr3> d3)
5071
typedef _bz_VecWhere<Range,
5072
VectorPickIterConst<P_numtype2>,
5073
_bz_VecExpr<P_expr3> > T_expr;
5075
return _bz_VecExpr<T_expr>(T_expr(d1,
5080
// where(Range, VectorPick<P_numtype2>, VectorPick<P_numtype3>)
5081
template<class P_numtype2, class P_numtype3>
5083
_bz_VecExpr<_bz_VecWhere<Range,
5084
VectorPickIterConst<P_numtype2>,
5085
VectorPickIterConst<P_numtype3> > >
5087
const VectorPick<P_numtype2>& d2,
5088
const VectorPick<P_numtype3>& d3)
5090
typedef _bz_VecWhere<Range,
5091
VectorPickIterConst<P_numtype2>,
5092
VectorPickIterConst<P_numtype3> > T_expr;
5094
return _bz_VecExpr<T_expr>(T_expr(d1,
5099
// where(Range, VectorPick<P_numtype2>, Range)
5100
template<class P_numtype2>
5102
_bz_VecExpr<_bz_VecWhere<Range,
5103
VectorPickIterConst<P_numtype2>,
5106
const VectorPick<P_numtype2>& d2,
5109
typedef _bz_VecWhere<Range,
5110
VectorPickIterConst<P_numtype2>,
5113
return _bz_VecExpr<T_expr>(T_expr(d1,
5118
// where(Range, VectorPick<P_numtype2>, TinyVector<P_numtype3, N_length3>)
5119
template<class P_numtype2, class P_numtype3, int N_length3>
5121
_bz_VecExpr<_bz_VecWhere<Range,
5122
VectorPickIterConst<P_numtype2>,
5123
TinyVectorIterConst<P_numtype3, N_length3> > >
5125
const VectorPick<P_numtype2>& d2,
5126
const TinyVector<P_numtype3, N_length3>& d3)
5128
typedef _bz_VecWhere<Range,
5129
VectorPickIterConst<P_numtype2>,
5130
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
5132
return _bz_VecExpr<T_expr>(T_expr(d1,
5137
// where(Range, VectorPick<P_numtype2>, int)
5138
template<class P_numtype2>
5140
_bz_VecExpr<_bz_VecWhere<Range,
5141
VectorPickIterConst<P_numtype2>,
5142
_bz_VecExprConstant<int> > >
5144
const VectorPick<P_numtype2>& d2,
5147
typedef _bz_VecWhere<Range,
5148
VectorPickIterConst<P_numtype2>,
5149
_bz_VecExprConstant<int> > T_expr;
5151
return _bz_VecExpr<T_expr>(T_expr(d1,
5153
_bz_VecExprConstant<int>(d3)));
5156
// where(Range, VectorPick<P_numtype2>, float)
5157
template<class P_numtype2>
5159
_bz_VecExpr<_bz_VecWhere<Range,
5160
VectorPickIterConst<P_numtype2>,
5161
_bz_VecExprConstant<float> > >
5163
const VectorPick<P_numtype2>& d2,
5166
typedef _bz_VecWhere<Range,
5167
VectorPickIterConst<P_numtype2>,
5168
_bz_VecExprConstant<float> > T_expr;
5170
return _bz_VecExpr<T_expr>(T_expr(d1,
5172
_bz_VecExprConstant<float>(d3)));
5175
// where(Range, VectorPick<P_numtype2>, double)
5176
template<class P_numtype2>
5178
_bz_VecExpr<_bz_VecWhere<Range,
5179
VectorPickIterConst<P_numtype2>,
5180
_bz_VecExprConstant<double> > >
5182
const VectorPick<P_numtype2>& d2,
5185
typedef _bz_VecWhere<Range,
5186
VectorPickIterConst<P_numtype2>,
5187
_bz_VecExprConstant<double> > T_expr;
5189
return _bz_VecExpr<T_expr>(T_expr(d1,
5191
_bz_VecExprConstant<double>(d3)));
5194
// where(Range, VectorPick<P_numtype2>, long double)
5195
template<class P_numtype2>
5197
_bz_VecExpr<_bz_VecWhere<Range,
5198
VectorPickIterConst<P_numtype2>,
5199
_bz_VecExprConstant<long double> > >
5201
const VectorPick<P_numtype2>& d2,
5204
typedef _bz_VecWhere<Range,
5205
VectorPickIterConst<P_numtype2>,
5206
_bz_VecExprConstant<long double> > T_expr;
5208
return _bz_VecExpr<T_expr>(T_expr(d1,
5210
_bz_VecExprConstant<long double>(d3)));
5213
// where(Range, VectorPick<P_numtype2>, complex<T3>)
5214
#ifdef BZ_HAVE_COMPLEX
5215
template<class P_numtype2, class T3>
5217
_bz_VecExpr<_bz_VecWhere<Range,
5218
VectorPickIterConst<P_numtype2>,
5219
_bz_VecExprConstant<complex<T3> > > >
5221
const VectorPick<P_numtype2>& d2,
5224
typedef _bz_VecWhere<Range,
5225
VectorPickIterConst<P_numtype2>,
5226
_bz_VecExprConstant<complex<T3> > > T_expr;
5228
return _bz_VecExpr<T_expr>(T_expr(d1,
5230
_bz_VecExprConstant<complex<T3> > (d3)));
5232
#endif // BZ_HAVE_COMPLEX
5234
// where(Range, Range, Vector<P_numtype3>)
5235
template<class P_numtype3>
5237
_bz_VecExpr<_bz_VecWhere<Range,
5239
VectorIterConst<P_numtype3> > >
5242
const Vector<P_numtype3>& d3)
5244
typedef _bz_VecWhere<Range,
5246
VectorIterConst<P_numtype3> > T_expr;
5248
return _bz_VecExpr<T_expr>(T_expr(d1,
5253
// where(Range, Range, _bz_VecExpr<P_expr3>)
5254
template<class P_expr3>
5256
_bz_VecExpr<_bz_VecWhere<Range,
5258
_bz_VecExpr<P_expr3> > >
5261
_bz_VecExpr<P_expr3> d3)
5263
typedef _bz_VecWhere<Range,
5265
_bz_VecExpr<P_expr3> > T_expr;
5267
return _bz_VecExpr<T_expr>(T_expr(d1,
5272
// where(Range, Range, VectorPick<P_numtype3>)
5273
template<class P_numtype3>
5275
_bz_VecExpr<_bz_VecWhere<Range,
5277
VectorPickIterConst<P_numtype3> > >
5280
const VectorPick<P_numtype3>& d3)
5282
typedef _bz_VecWhere<Range,
5284
VectorPickIterConst<P_numtype3> > T_expr;
5286
return _bz_VecExpr<T_expr>(T_expr(d1,
5291
// where(Range, Range, Range)
5294
_bz_VecExpr<_bz_VecWhere<Range,
5301
typedef _bz_VecWhere<Range,
5305
return _bz_VecExpr<T_expr>(T_expr(d1,
5310
// where(Range, Range, TinyVector<P_numtype3, N_length3>)
5311
template<class P_numtype3, int N_length3>
5313
_bz_VecExpr<_bz_VecWhere<Range,
5315
TinyVectorIterConst<P_numtype3, N_length3> > >
5318
const TinyVector<P_numtype3, N_length3>& d3)
5320
typedef _bz_VecWhere<Range,
5322
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
5324
return _bz_VecExpr<T_expr>(T_expr(d1,
5329
// where(Range, Range, int)
5332
_bz_VecExpr<_bz_VecWhere<Range,
5334
_bz_VecExprConstant<int> > >
5339
typedef _bz_VecWhere<Range,
5341
_bz_VecExprConstant<int> > T_expr;
5343
return _bz_VecExpr<T_expr>(T_expr(d1,
5345
_bz_VecExprConstant<int>(d3)));
5348
// where(Range, Range, float)
5351
_bz_VecExpr<_bz_VecWhere<Range,
5353
_bz_VecExprConstant<float> > >
5358
typedef _bz_VecWhere<Range,
5360
_bz_VecExprConstant<float> > T_expr;
5362
return _bz_VecExpr<T_expr>(T_expr(d1,
5364
_bz_VecExprConstant<float>(d3)));
5367
// where(Range, Range, double)
5370
_bz_VecExpr<_bz_VecWhere<Range,
5372
_bz_VecExprConstant<double> > >
5377
typedef _bz_VecWhere<Range,
5379
_bz_VecExprConstant<double> > T_expr;
5381
return _bz_VecExpr<T_expr>(T_expr(d1,
5383
_bz_VecExprConstant<double>(d3)));
5386
// where(Range, Range, long double)
5389
_bz_VecExpr<_bz_VecWhere<Range,
5391
_bz_VecExprConstant<long double> > >
5396
typedef _bz_VecWhere<Range,
5398
_bz_VecExprConstant<long double> > T_expr;
5400
return _bz_VecExpr<T_expr>(T_expr(d1,
5402
_bz_VecExprConstant<long double>(d3)));
5405
// where(Range, Range, complex<T3>)
5406
#ifdef BZ_HAVE_COMPLEX
5409
_bz_VecExpr<_bz_VecWhere<Range,
5411
_bz_VecExprConstant<complex<T3> > > >
5416
typedef _bz_VecWhere<Range,
5418
_bz_VecExprConstant<complex<T3> > > T_expr;
5420
return _bz_VecExpr<T_expr>(T_expr(d1,
5422
_bz_VecExprConstant<complex<T3> > (d3)));
5424
#endif // BZ_HAVE_COMPLEX
5426
// where(Range, TinyVector<P_numtype2, N_length2>, Vector<P_numtype3>)
5427
template<class P_numtype2, int N_length2, class P_numtype3>
5429
_bz_VecExpr<_bz_VecWhere<Range,
5430
TinyVectorIterConst<P_numtype2, N_length2>,
5431
VectorIterConst<P_numtype3> > >
5433
const TinyVector<P_numtype2, N_length2>& d2,
5434
const Vector<P_numtype3>& d3)
5436
typedef _bz_VecWhere<Range,
5437
TinyVectorIterConst<P_numtype2, N_length2>,
5438
VectorIterConst<P_numtype3> > T_expr;
5440
return _bz_VecExpr<T_expr>(T_expr(d1,
5445
// where(Range, TinyVector<P_numtype2, N_length2>, _bz_VecExpr<P_expr3>)
5446
template<class P_numtype2, int N_length2, class P_expr3>
5448
_bz_VecExpr<_bz_VecWhere<Range,
5449
TinyVectorIterConst<P_numtype2, N_length2>,
5450
_bz_VecExpr<P_expr3> > >
5452
const TinyVector<P_numtype2, N_length2>& d2,
5453
_bz_VecExpr<P_expr3> d3)
5455
typedef _bz_VecWhere<Range,
5456
TinyVectorIterConst<P_numtype2, N_length2>,
5457
_bz_VecExpr<P_expr3> > T_expr;
5459
return _bz_VecExpr<T_expr>(T_expr(d1,
5464
// where(Range, TinyVector<P_numtype2, N_length2>, VectorPick<P_numtype3>)
5465
template<class P_numtype2, int N_length2, class P_numtype3>
5467
_bz_VecExpr<_bz_VecWhere<Range,
5468
TinyVectorIterConst<P_numtype2, N_length2>,
5469
VectorPickIterConst<P_numtype3> > >
5471
const TinyVector<P_numtype2, N_length2>& d2,
5472
const VectorPick<P_numtype3>& d3)
5474
typedef _bz_VecWhere<Range,
5475
TinyVectorIterConst<P_numtype2, N_length2>,
5476
VectorPickIterConst<P_numtype3> > T_expr;
5478
return _bz_VecExpr<T_expr>(T_expr(d1,
5483
// where(Range, TinyVector<P_numtype2, N_length2>, Range)
5484
template<class P_numtype2, int N_length2>
5486
_bz_VecExpr<_bz_VecWhere<Range,
5487
TinyVectorIterConst<P_numtype2, N_length2>,
5490
const TinyVector<P_numtype2, N_length2>& d2,
5493
typedef _bz_VecWhere<Range,
5494
TinyVectorIterConst<P_numtype2, N_length2>,
5497
return _bz_VecExpr<T_expr>(T_expr(d1,
5502
// where(Range, TinyVector<P_numtype2, N_length2>, TinyVector<P_numtype3, N_length3>)
5503
template<class P_numtype2, int N_length2, class P_numtype3, int N_length3>
5505
_bz_VecExpr<_bz_VecWhere<Range,
5506
TinyVectorIterConst<P_numtype2, N_length2>,
5507
TinyVectorIterConst<P_numtype3, N_length3> > >
5509
const TinyVector<P_numtype2, N_length2>& d2,
5510
const TinyVector<P_numtype3, N_length3>& d3)
5512
typedef _bz_VecWhere<Range,
5513
TinyVectorIterConst<P_numtype2, N_length2>,
5514
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
5516
return _bz_VecExpr<T_expr>(T_expr(d1,
5521
// where(Range, TinyVector<P_numtype2, N_length2>, int)
5522
template<class P_numtype2, int N_length2>
5524
_bz_VecExpr<_bz_VecWhere<Range,
5525
TinyVectorIterConst<P_numtype2, N_length2>,
5526
_bz_VecExprConstant<int> > >
5528
const TinyVector<P_numtype2, N_length2>& d2,
5531
typedef _bz_VecWhere<Range,
5532
TinyVectorIterConst<P_numtype2, N_length2>,
5533
_bz_VecExprConstant<int> > T_expr;
5535
return _bz_VecExpr<T_expr>(T_expr(d1,
5537
_bz_VecExprConstant<int>(d3)));
5540
// where(Range, TinyVector<P_numtype2, N_length2>, float)
5541
template<class P_numtype2, int N_length2>
5543
_bz_VecExpr<_bz_VecWhere<Range,
5544
TinyVectorIterConst<P_numtype2, N_length2>,
5545
_bz_VecExprConstant<float> > >
5547
const TinyVector<P_numtype2, N_length2>& d2,
5550
typedef _bz_VecWhere<Range,
5551
TinyVectorIterConst<P_numtype2, N_length2>,
5552
_bz_VecExprConstant<float> > T_expr;
5554
return _bz_VecExpr<T_expr>(T_expr(d1,
5556
_bz_VecExprConstant<float>(d3)));
5559
// where(Range, TinyVector<P_numtype2, N_length2>, double)
5560
template<class P_numtype2, int N_length2>
5562
_bz_VecExpr<_bz_VecWhere<Range,
5563
TinyVectorIterConst<P_numtype2, N_length2>,
5564
_bz_VecExprConstant<double> > >
5566
const TinyVector<P_numtype2, N_length2>& d2,
5569
typedef _bz_VecWhere<Range,
5570
TinyVectorIterConst<P_numtype2, N_length2>,
5571
_bz_VecExprConstant<double> > T_expr;
5573
return _bz_VecExpr<T_expr>(T_expr(d1,
5575
_bz_VecExprConstant<double>(d3)));
5578
// where(Range, TinyVector<P_numtype2, N_length2>, long double)
5579
template<class P_numtype2, int N_length2>
5581
_bz_VecExpr<_bz_VecWhere<Range,
5582
TinyVectorIterConst<P_numtype2, N_length2>,
5583
_bz_VecExprConstant<long double> > >
5585
const TinyVector<P_numtype2, N_length2>& d2,
5588
typedef _bz_VecWhere<Range,
5589
TinyVectorIterConst<P_numtype2, N_length2>,
5590
_bz_VecExprConstant<long double> > T_expr;
5592
return _bz_VecExpr<T_expr>(T_expr(d1,
5594
_bz_VecExprConstant<long double>(d3)));
5597
// where(Range, TinyVector<P_numtype2, N_length2>, complex<T3>)
5598
#ifdef BZ_HAVE_COMPLEX
5599
template<class P_numtype2, int N_length2, class T3>
5601
_bz_VecExpr<_bz_VecWhere<Range,
5602
TinyVectorIterConst<P_numtype2, N_length2>,
5603
_bz_VecExprConstant<complex<T3> > > >
5605
const TinyVector<P_numtype2, N_length2>& d2,
5608
typedef _bz_VecWhere<Range,
5609
TinyVectorIterConst<P_numtype2, N_length2>,
5610
_bz_VecExprConstant<complex<T3> > > T_expr;
5612
return _bz_VecExpr<T_expr>(T_expr(d1,
5614
_bz_VecExprConstant<complex<T3> > (d3)));
5616
#endif // BZ_HAVE_COMPLEX
5618
// where(Range, int, Vector<P_numtype3>)
5619
template<class P_numtype3>
5621
_bz_VecExpr<_bz_VecWhere<Range,
5622
_bz_VecExprConstant<int>,
5623
VectorIterConst<P_numtype3> > >
5626
const Vector<P_numtype3>& d3)
5628
typedef _bz_VecWhere<Range,
5629
_bz_VecExprConstant<int>,
5630
VectorIterConst<P_numtype3> > T_expr;
5632
return _bz_VecExpr<T_expr>(T_expr(d1,
5633
_bz_VecExprConstant<int>(d2),
5637
// where(Range, int, _bz_VecExpr<P_expr3>)
5638
template<class P_expr3>
5640
_bz_VecExpr<_bz_VecWhere<Range,
5641
_bz_VecExprConstant<int>,
5642
_bz_VecExpr<P_expr3> > >
5645
_bz_VecExpr<P_expr3> d3)
5647
typedef _bz_VecWhere<Range,
5648
_bz_VecExprConstant<int>,
5649
_bz_VecExpr<P_expr3> > T_expr;
5651
return _bz_VecExpr<T_expr>(T_expr(d1,
5652
_bz_VecExprConstant<int>(d2),
5656
// where(Range, int, VectorPick<P_numtype3>)
5657
template<class P_numtype3>
5659
_bz_VecExpr<_bz_VecWhere<Range,
5660
_bz_VecExprConstant<int>,
5661
VectorPickIterConst<P_numtype3> > >
5664
const VectorPick<P_numtype3>& d3)
5666
typedef _bz_VecWhere<Range,
5667
_bz_VecExprConstant<int>,
5668
VectorPickIterConst<P_numtype3> > T_expr;
5670
return _bz_VecExpr<T_expr>(T_expr(d1,
5671
_bz_VecExprConstant<int>(d2),
5675
// where(Range, int, Range)
5678
_bz_VecExpr<_bz_VecWhere<Range,
5679
_bz_VecExprConstant<int>,
5685
typedef _bz_VecWhere<Range,
5686
_bz_VecExprConstant<int>,
5689
return _bz_VecExpr<T_expr>(T_expr(d1,
5690
_bz_VecExprConstant<int>(d2),
5694
// where(Range, int, TinyVector<P_numtype3, N_length3>)
5695
template<class P_numtype3, int N_length3>
5697
_bz_VecExpr<_bz_VecWhere<Range,
5698
_bz_VecExprConstant<int>,
5699
TinyVectorIterConst<P_numtype3, N_length3> > >
5702
const TinyVector<P_numtype3, N_length3>& d3)
5704
typedef _bz_VecWhere<Range,
5705
_bz_VecExprConstant<int>,
5706
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
5708
return _bz_VecExpr<T_expr>(T_expr(d1,
5709
_bz_VecExprConstant<int>(d2),
5713
// where(Range, int, int)
5716
_bz_VecExpr<_bz_VecWhere<Range,
5717
_bz_VecExprConstant<int>,
5718
_bz_VecExprConstant<int> > >
5723
typedef _bz_VecWhere<Range,
5724
_bz_VecExprConstant<int>,
5725
_bz_VecExprConstant<int> > T_expr;
5727
return _bz_VecExpr<T_expr>(T_expr(d1,
5728
_bz_VecExprConstant<int>(d2),
5729
_bz_VecExprConstant<int>(d3)));
5732
// where(Range, float, Vector<P_numtype3>)
5733
template<class P_numtype3>
5735
_bz_VecExpr<_bz_VecWhere<Range,
5736
_bz_VecExprConstant<float>,
5737
VectorIterConst<P_numtype3> > >
5740
const Vector<P_numtype3>& d3)
5742
typedef _bz_VecWhere<Range,
5743
_bz_VecExprConstant<float>,
5744
VectorIterConst<P_numtype3> > T_expr;
5746
return _bz_VecExpr<T_expr>(T_expr(d1,
5747
_bz_VecExprConstant<float>(d2),
5751
// where(Range, float, _bz_VecExpr<P_expr3>)
5752
template<class P_expr3>
5754
_bz_VecExpr<_bz_VecWhere<Range,
5755
_bz_VecExprConstant<float>,
5756
_bz_VecExpr<P_expr3> > >
5759
_bz_VecExpr<P_expr3> d3)
5761
typedef _bz_VecWhere<Range,
5762
_bz_VecExprConstant<float>,
5763
_bz_VecExpr<P_expr3> > T_expr;
5765
return _bz_VecExpr<T_expr>(T_expr(d1,
5766
_bz_VecExprConstant<float>(d2),
5770
// where(Range, float, VectorPick<P_numtype3>)
5771
template<class P_numtype3>
5773
_bz_VecExpr<_bz_VecWhere<Range,
5774
_bz_VecExprConstant<float>,
5775
VectorPickIterConst<P_numtype3> > >
5778
const VectorPick<P_numtype3>& d3)
5780
typedef _bz_VecWhere<Range,
5781
_bz_VecExprConstant<float>,
5782
VectorPickIterConst<P_numtype3> > T_expr;
5784
return _bz_VecExpr<T_expr>(T_expr(d1,
5785
_bz_VecExprConstant<float>(d2),
5789
// where(Range, float, Range)
5792
_bz_VecExpr<_bz_VecWhere<Range,
5793
_bz_VecExprConstant<float>,
5799
typedef _bz_VecWhere<Range,
5800
_bz_VecExprConstant<float>,
5803
return _bz_VecExpr<T_expr>(T_expr(d1,
5804
_bz_VecExprConstant<float>(d2),
5808
// where(Range, float, TinyVector<P_numtype3, N_length3>)
5809
template<class P_numtype3, int N_length3>
5811
_bz_VecExpr<_bz_VecWhere<Range,
5812
_bz_VecExprConstant<float>,
5813
TinyVectorIterConst<P_numtype3, N_length3> > >
5816
const TinyVector<P_numtype3, N_length3>& d3)
5818
typedef _bz_VecWhere<Range,
5819
_bz_VecExprConstant<float>,
5820
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
5822
return _bz_VecExpr<T_expr>(T_expr(d1,
5823
_bz_VecExprConstant<float>(d2),
5827
// where(Range, float, float)
5830
_bz_VecExpr<_bz_VecWhere<Range,
5831
_bz_VecExprConstant<float>,
5832
_bz_VecExprConstant<float> > >
5837
typedef _bz_VecWhere<Range,
5838
_bz_VecExprConstant<float>,
5839
_bz_VecExprConstant<float> > T_expr;
5841
return _bz_VecExpr<T_expr>(T_expr(d1,
5842
_bz_VecExprConstant<float>(d2),
5843
_bz_VecExprConstant<float>(d3)));
5846
// where(Range, double, Vector<P_numtype3>)
5847
template<class P_numtype3>
5849
_bz_VecExpr<_bz_VecWhere<Range,
5850
_bz_VecExprConstant<double>,
5851
VectorIterConst<P_numtype3> > >
5854
const Vector<P_numtype3>& d3)
5856
typedef _bz_VecWhere<Range,
5857
_bz_VecExprConstant<double>,
5858
VectorIterConst<P_numtype3> > T_expr;
5860
return _bz_VecExpr<T_expr>(T_expr(d1,
5861
_bz_VecExprConstant<double>(d2),
5865
// where(Range, double, _bz_VecExpr<P_expr3>)
5866
template<class P_expr3>
5868
_bz_VecExpr<_bz_VecWhere<Range,
5869
_bz_VecExprConstant<double>,
5870
_bz_VecExpr<P_expr3> > >
5873
_bz_VecExpr<P_expr3> d3)
5875
typedef _bz_VecWhere<Range,
5876
_bz_VecExprConstant<double>,
5877
_bz_VecExpr<P_expr3> > T_expr;
5879
return _bz_VecExpr<T_expr>(T_expr(d1,
5880
_bz_VecExprConstant<double>(d2),
5884
// where(Range, double, VectorPick<P_numtype3>)
5885
template<class P_numtype3>
5887
_bz_VecExpr<_bz_VecWhere<Range,
5888
_bz_VecExprConstant<double>,
5889
VectorPickIterConst<P_numtype3> > >
5892
const VectorPick<P_numtype3>& d3)
5894
typedef _bz_VecWhere<Range,
5895
_bz_VecExprConstant<double>,
5896
VectorPickIterConst<P_numtype3> > T_expr;
5898
return _bz_VecExpr<T_expr>(T_expr(d1,
5899
_bz_VecExprConstant<double>(d2),
5903
// where(Range, double, Range)
5906
_bz_VecExpr<_bz_VecWhere<Range,
5907
_bz_VecExprConstant<double>,
5913
typedef _bz_VecWhere<Range,
5914
_bz_VecExprConstant<double>,
5917
return _bz_VecExpr<T_expr>(T_expr(d1,
5918
_bz_VecExprConstant<double>(d2),
5922
// where(Range, double, TinyVector<P_numtype3, N_length3>)
5923
template<class P_numtype3, int N_length3>
5925
_bz_VecExpr<_bz_VecWhere<Range,
5926
_bz_VecExprConstant<double>,
5927
TinyVectorIterConst<P_numtype3, N_length3> > >
5930
const TinyVector<P_numtype3, N_length3>& d3)
5932
typedef _bz_VecWhere<Range,
5933
_bz_VecExprConstant<double>,
5934
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
5936
return _bz_VecExpr<T_expr>(T_expr(d1,
5937
_bz_VecExprConstant<double>(d2),
5941
// where(Range, double, double)
5944
_bz_VecExpr<_bz_VecWhere<Range,
5945
_bz_VecExprConstant<double>,
5946
_bz_VecExprConstant<double> > >
5951
typedef _bz_VecWhere<Range,
5952
_bz_VecExprConstant<double>,
5953
_bz_VecExprConstant<double> > T_expr;
5955
return _bz_VecExpr<T_expr>(T_expr(d1,
5956
_bz_VecExprConstant<double>(d2),
5957
_bz_VecExprConstant<double>(d3)));
5960
// where(Range, long double, Vector<P_numtype3>)
5961
template<class P_numtype3>
5963
_bz_VecExpr<_bz_VecWhere<Range,
5964
_bz_VecExprConstant<long double>,
5965
VectorIterConst<P_numtype3> > >
5968
const Vector<P_numtype3>& d3)
5970
typedef _bz_VecWhere<Range,
5971
_bz_VecExprConstant<long double>,
5972
VectorIterConst<P_numtype3> > T_expr;
5974
return _bz_VecExpr<T_expr>(T_expr(d1,
5975
_bz_VecExprConstant<long double>(d2),
5979
// where(Range, long double, _bz_VecExpr<P_expr3>)
5980
template<class P_expr3>
5982
_bz_VecExpr<_bz_VecWhere<Range,
5983
_bz_VecExprConstant<long double>,
5984
_bz_VecExpr<P_expr3> > >
5987
_bz_VecExpr<P_expr3> d3)
5989
typedef _bz_VecWhere<Range,
5990
_bz_VecExprConstant<long double>,
5991
_bz_VecExpr<P_expr3> > T_expr;
5993
return _bz_VecExpr<T_expr>(T_expr(d1,
5994
_bz_VecExprConstant<long double>(d2),
5998
// where(Range, long double, VectorPick<P_numtype3>)
5999
template<class P_numtype3>
6001
_bz_VecExpr<_bz_VecWhere<Range,
6002
_bz_VecExprConstant<long double>,
6003
VectorPickIterConst<P_numtype3> > >
6006
const VectorPick<P_numtype3>& d3)
6008
typedef _bz_VecWhere<Range,
6009
_bz_VecExprConstant<long double>,
6010
VectorPickIterConst<P_numtype3> > T_expr;
6012
return _bz_VecExpr<T_expr>(T_expr(d1,
6013
_bz_VecExprConstant<long double>(d2),
6017
// where(Range, long double, Range)
6020
_bz_VecExpr<_bz_VecWhere<Range,
6021
_bz_VecExprConstant<long double>,
6027
typedef _bz_VecWhere<Range,
6028
_bz_VecExprConstant<long double>,
6031
return _bz_VecExpr<T_expr>(T_expr(d1,
6032
_bz_VecExprConstant<long double>(d2),
6036
// where(Range, long double, TinyVector<P_numtype3, N_length3>)
6037
template<class P_numtype3, int N_length3>
6039
_bz_VecExpr<_bz_VecWhere<Range,
6040
_bz_VecExprConstant<long double>,
6041
TinyVectorIterConst<P_numtype3, N_length3> > >
6044
const TinyVector<P_numtype3, N_length3>& d3)
6046
typedef _bz_VecWhere<Range,
6047
_bz_VecExprConstant<long double>,
6048
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
6050
return _bz_VecExpr<T_expr>(T_expr(d1,
6051
_bz_VecExprConstant<long double>(d2),
6055
// where(Range, long double, long double)
6058
_bz_VecExpr<_bz_VecWhere<Range,
6059
_bz_VecExprConstant<long double>,
6060
_bz_VecExprConstant<long double> > >
6065
typedef _bz_VecWhere<Range,
6066
_bz_VecExprConstant<long double>,
6067
_bz_VecExprConstant<long double> > T_expr;
6069
return _bz_VecExpr<T_expr>(T_expr(d1,
6070
_bz_VecExprConstant<long double>(d2),
6071
_bz_VecExprConstant<long double>(d3)));
6074
// where(Range, complex<T2>, Vector<P_numtype3>)
6075
#ifdef BZ_HAVE_COMPLEX
6076
template<class T2, class P_numtype3>
6078
_bz_VecExpr<_bz_VecWhere<Range,
6079
_bz_VecExprConstant<complex<T2> > ,
6080
VectorIterConst<P_numtype3> > >
6083
const Vector<P_numtype3>& d3)
6085
typedef _bz_VecWhere<Range,
6086
_bz_VecExprConstant<complex<T2> > ,
6087
VectorIterConst<P_numtype3> > T_expr;
6089
return _bz_VecExpr<T_expr>(T_expr(d1,
6090
_bz_VecExprConstant<complex<T2> > (d2),
6093
#endif // BZ_HAVE_COMPLEX
6095
// where(Range, complex<T2>, _bz_VecExpr<P_expr3>)
6096
#ifdef BZ_HAVE_COMPLEX
6097
template<class T2, class P_expr3>
6099
_bz_VecExpr<_bz_VecWhere<Range,
6100
_bz_VecExprConstant<complex<T2> > ,
6101
_bz_VecExpr<P_expr3> > >
6104
_bz_VecExpr<P_expr3> d3)
6106
typedef _bz_VecWhere<Range,
6107
_bz_VecExprConstant<complex<T2> > ,
6108
_bz_VecExpr<P_expr3> > T_expr;
6110
return _bz_VecExpr<T_expr>(T_expr(d1,
6111
_bz_VecExprConstant<complex<T2> > (d2),
6114
#endif // BZ_HAVE_COMPLEX
6116
// where(Range, complex<T2>, VectorPick<P_numtype3>)
6117
#ifdef BZ_HAVE_COMPLEX
6118
template<class T2, class P_numtype3>
6120
_bz_VecExpr<_bz_VecWhere<Range,
6121
_bz_VecExprConstant<complex<T2> > ,
6122
VectorPickIterConst<P_numtype3> > >
6125
const VectorPick<P_numtype3>& d3)
6127
typedef _bz_VecWhere<Range,
6128
_bz_VecExprConstant<complex<T2> > ,
6129
VectorPickIterConst<P_numtype3> > T_expr;
6131
return _bz_VecExpr<T_expr>(T_expr(d1,
6132
_bz_VecExprConstant<complex<T2> > (d2),
6135
#endif // BZ_HAVE_COMPLEX
6137
// where(Range, complex<T2>, Range)
6138
#ifdef BZ_HAVE_COMPLEX
6141
_bz_VecExpr<_bz_VecWhere<Range,
6142
_bz_VecExprConstant<complex<T2> > ,
6148
typedef _bz_VecWhere<Range,
6149
_bz_VecExprConstant<complex<T2> > ,
6152
return _bz_VecExpr<T_expr>(T_expr(d1,
6153
_bz_VecExprConstant<complex<T2> > (d2),
6156
#endif // BZ_HAVE_COMPLEX
6158
// where(Range, complex<T2>, TinyVector<P_numtype3, N_length3>)
6159
#ifdef BZ_HAVE_COMPLEX
6160
template<class T2, class P_numtype3, int N_length3>
6162
_bz_VecExpr<_bz_VecWhere<Range,
6163
_bz_VecExprConstant<complex<T2> > ,
6164
TinyVectorIterConst<P_numtype3, N_length3> > >
6167
const TinyVector<P_numtype3, N_length3>& d3)
6169
typedef _bz_VecWhere<Range,
6170
_bz_VecExprConstant<complex<T2> > ,
6171
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
6173
return _bz_VecExpr<T_expr>(T_expr(d1,
6174
_bz_VecExprConstant<complex<T2> > (d2),
6177
#endif // BZ_HAVE_COMPLEX
6179
// where(Range, complex<T2>, complex<T3>)
6180
#ifdef BZ_HAVE_COMPLEX
6181
template<class T2, class T3>
6183
_bz_VecExpr<_bz_VecWhere<Range,
6184
_bz_VecExprConstant<complex<T2> > ,
6185
_bz_VecExprConstant<complex<T3> > > >
6190
typedef _bz_VecWhere<Range,
6191
_bz_VecExprConstant<complex<T2> > ,
6192
_bz_VecExprConstant<complex<T3> > > T_expr;
6194
return _bz_VecExpr<T_expr>(T_expr(d1,
6195
_bz_VecExprConstant<complex<T2> > (d2),
6196
_bz_VecExprConstant<complex<T3> > (d3)));
6198
#endif // BZ_HAVE_COMPLEX
6200
// where(TinyVector<P_numtype1, N_length1>, Vector<P_numtype2>, Vector<P_numtype3>)
6201
template<class P_numtype1, int N_length1, class P_numtype2, class P_numtype3>
6203
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6204
VectorIterConst<P_numtype2>,
6205
VectorIterConst<P_numtype3> > >
6206
where(const TinyVector<P_numtype1, N_length1>& d1,
6207
const Vector<P_numtype2>& d2,
6208
const Vector<P_numtype3>& d3)
6210
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6211
VectorIterConst<P_numtype2>,
6212
VectorIterConst<P_numtype3> > T_expr;
6214
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6219
// where(TinyVector<P_numtype1, N_length1>, Vector<P_numtype2>, _bz_VecExpr<P_expr3>)
6220
template<class P_numtype1, int N_length1, class P_numtype2, class P_expr3>
6222
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6223
VectorIterConst<P_numtype2>,
6224
_bz_VecExpr<P_expr3> > >
6225
where(const TinyVector<P_numtype1, N_length1>& d1,
6226
const Vector<P_numtype2>& d2,
6227
_bz_VecExpr<P_expr3> d3)
6229
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6230
VectorIterConst<P_numtype2>,
6231
_bz_VecExpr<P_expr3> > T_expr;
6233
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6238
// where(TinyVector<P_numtype1, N_length1>, Vector<P_numtype2>, VectorPick<P_numtype3>)
6239
template<class P_numtype1, int N_length1, class P_numtype2, class P_numtype3>
6241
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6242
VectorIterConst<P_numtype2>,
6243
VectorPickIterConst<P_numtype3> > >
6244
where(const TinyVector<P_numtype1, N_length1>& d1,
6245
const Vector<P_numtype2>& d2,
6246
const VectorPick<P_numtype3>& d3)
6248
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6249
VectorIterConst<P_numtype2>,
6250
VectorPickIterConst<P_numtype3> > T_expr;
6252
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6257
// where(TinyVector<P_numtype1, N_length1>, Vector<P_numtype2>, Range)
6258
template<class P_numtype1, int N_length1, class P_numtype2>
6260
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6261
VectorIterConst<P_numtype2>,
6263
where(const TinyVector<P_numtype1, N_length1>& d1,
6264
const Vector<P_numtype2>& d2,
6267
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6268
VectorIterConst<P_numtype2>,
6271
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6276
// where(TinyVector<P_numtype1, N_length1>, Vector<P_numtype2>, TinyVector<P_numtype3, N_length3>)
6277
template<class P_numtype1, int N_length1, class P_numtype2, class P_numtype3, int N_length3>
6279
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6280
VectorIterConst<P_numtype2>,
6281
TinyVectorIterConst<P_numtype3, N_length3> > >
6282
where(const TinyVector<P_numtype1, N_length1>& d1,
6283
const Vector<P_numtype2>& d2,
6284
const TinyVector<P_numtype3, N_length3>& d3)
6286
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6287
VectorIterConst<P_numtype2>,
6288
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
6290
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6295
// where(TinyVector<P_numtype1, N_length1>, Vector<P_numtype2>, int)
6296
template<class P_numtype1, int N_length1, class P_numtype2>
6298
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6299
VectorIterConst<P_numtype2>,
6300
_bz_VecExprConstant<int> > >
6301
where(const TinyVector<P_numtype1, N_length1>& d1,
6302
const Vector<P_numtype2>& d2,
6305
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6306
VectorIterConst<P_numtype2>,
6307
_bz_VecExprConstant<int> > T_expr;
6309
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6311
_bz_VecExprConstant<int>(d3)));
6314
// where(TinyVector<P_numtype1, N_length1>, Vector<P_numtype2>, float)
6315
template<class P_numtype1, int N_length1, class P_numtype2>
6317
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6318
VectorIterConst<P_numtype2>,
6319
_bz_VecExprConstant<float> > >
6320
where(const TinyVector<P_numtype1, N_length1>& d1,
6321
const Vector<P_numtype2>& d2,
6324
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6325
VectorIterConst<P_numtype2>,
6326
_bz_VecExprConstant<float> > T_expr;
6328
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6330
_bz_VecExprConstant<float>(d3)));
6333
// where(TinyVector<P_numtype1, N_length1>, Vector<P_numtype2>, double)
6334
template<class P_numtype1, int N_length1, class P_numtype2>
6336
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6337
VectorIterConst<P_numtype2>,
6338
_bz_VecExprConstant<double> > >
6339
where(const TinyVector<P_numtype1, N_length1>& d1,
6340
const Vector<P_numtype2>& d2,
6343
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6344
VectorIterConst<P_numtype2>,
6345
_bz_VecExprConstant<double> > T_expr;
6347
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6349
_bz_VecExprConstant<double>(d3)));
6352
// where(TinyVector<P_numtype1, N_length1>, Vector<P_numtype2>, long double)
6353
template<class P_numtype1, int N_length1, class P_numtype2>
6355
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6356
VectorIterConst<P_numtype2>,
6357
_bz_VecExprConstant<long double> > >
6358
where(const TinyVector<P_numtype1, N_length1>& d1,
6359
const Vector<P_numtype2>& d2,
6362
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6363
VectorIterConst<P_numtype2>,
6364
_bz_VecExprConstant<long double> > T_expr;
6366
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6368
_bz_VecExprConstant<long double>(d3)));
6371
// where(TinyVector<P_numtype1, N_length1>, Vector<P_numtype2>, complex<T3>)
6372
#ifdef BZ_HAVE_COMPLEX
6373
template<class P_numtype1, int N_length1, class P_numtype2, class T3>
6375
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6376
VectorIterConst<P_numtype2>,
6377
_bz_VecExprConstant<complex<T3> > > >
6378
where(const TinyVector<P_numtype1, N_length1>& d1,
6379
const Vector<P_numtype2>& d2,
6382
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6383
VectorIterConst<P_numtype2>,
6384
_bz_VecExprConstant<complex<T3> > > T_expr;
6386
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6388
_bz_VecExprConstant<complex<T3> > (d3)));
6390
#endif // BZ_HAVE_COMPLEX
6392
// where(TinyVector<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>, Vector<P_numtype3>)
6393
template<class P_numtype1, int N_length1, class P_expr2, class P_numtype3>
6395
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6396
_bz_VecExpr<P_expr2>,
6397
VectorIterConst<P_numtype3> > >
6398
where(const TinyVector<P_numtype1, N_length1>& d1,
6399
_bz_VecExpr<P_expr2> d2,
6400
const Vector<P_numtype3>& d3)
6402
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6403
_bz_VecExpr<P_expr2>,
6404
VectorIterConst<P_numtype3> > T_expr;
6406
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6411
// where(TinyVector<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>, _bz_VecExpr<P_expr3>)
6412
template<class P_numtype1, int N_length1, class P_expr2, class P_expr3>
6414
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6415
_bz_VecExpr<P_expr2>,
6416
_bz_VecExpr<P_expr3> > >
6417
where(const TinyVector<P_numtype1, N_length1>& d1,
6418
_bz_VecExpr<P_expr2> d2,
6419
_bz_VecExpr<P_expr3> d3)
6421
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6422
_bz_VecExpr<P_expr2>,
6423
_bz_VecExpr<P_expr3> > T_expr;
6425
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6430
// where(TinyVector<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>, VectorPick<P_numtype3>)
6431
template<class P_numtype1, int N_length1, class P_expr2, class P_numtype3>
6433
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6434
_bz_VecExpr<P_expr2>,
6435
VectorPickIterConst<P_numtype3> > >
6436
where(const TinyVector<P_numtype1, N_length1>& d1,
6437
_bz_VecExpr<P_expr2> d2,
6438
const VectorPick<P_numtype3>& d3)
6440
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6441
_bz_VecExpr<P_expr2>,
6442
VectorPickIterConst<P_numtype3> > T_expr;
6444
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6449
// where(TinyVector<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>, Range)
6450
template<class P_numtype1, int N_length1, class P_expr2>
6452
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6453
_bz_VecExpr<P_expr2>,
6455
where(const TinyVector<P_numtype1, N_length1>& d1,
6456
_bz_VecExpr<P_expr2> d2,
6459
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6460
_bz_VecExpr<P_expr2>,
6463
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6468
// where(TinyVector<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>, TinyVector<P_numtype3, N_length3>)
6469
template<class P_numtype1, int N_length1, class P_expr2, class P_numtype3, int N_length3>
6471
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6472
_bz_VecExpr<P_expr2>,
6473
TinyVectorIterConst<P_numtype3, N_length3> > >
6474
where(const TinyVector<P_numtype1, N_length1>& d1,
6475
_bz_VecExpr<P_expr2> d2,
6476
const TinyVector<P_numtype3, N_length3>& d3)
6478
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6479
_bz_VecExpr<P_expr2>,
6480
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
6482
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6487
// where(TinyVector<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>, int)
6488
template<class P_numtype1, int N_length1, class P_expr2>
6490
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6491
_bz_VecExpr<P_expr2>,
6492
_bz_VecExprConstant<int> > >
6493
where(const TinyVector<P_numtype1, N_length1>& d1,
6494
_bz_VecExpr<P_expr2> d2,
6497
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6498
_bz_VecExpr<P_expr2>,
6499
_bz_VecExprConstant<int> > T_expr;
6501
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6503
_bz_VecExprConstant<int>(d3)));
6506
// where(TinyVector<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>, float)
6507
template<class P_numtype1, int N_length1, class P_expr2>
6509
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6510
_bz_VecExpr<P_expr2>,
6511
_bz_VecExprConstant<float> > >
6512
where(const TinyVector<P_numtype1, N_length1>& d1,
6513
_bz_VecExpr<P_expr2> d2,
6516
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6517
_bz_VecExpr<P_expr2>,
6518
_bz_VecExprConstant<float> > T_expr;
6520
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6522
_bz_VecExprConstant<float>(d3)));
6525
// where(TinyVector<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>, double)
6526
template<class P_numtype1, int N_length1, class P_expr2>
6528
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6529
_bz_VecExpr<P_expr2>,
6530
_bz_VecExprConstant<double> > >
6531
where(const TinyVector<P_numtype1, N_length1>& d1,
6532
_bz_VecExpr<P_expr2> d2,
6535
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6536
_bz_VecExpr<P_expr2>,
6537
_bz_VecExprConstant<double> > T_expr;
6539
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6541
_bz_VecExprConstant<double>(d3)));
6544
// where(TinyVector<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>, long double)
6545
template<class P_numtype1, int N_length1, class P_expr2>
6547
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6548
_bz_VecExpr<P_expr2>,
6549
_bz_VecExprConstant<long double> > >
6550
where(const TinyVector<P_numtype1, N_length1>& d1,
6551
_bz_VecExpr<P_expr2> d2,
6554
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6555
_bz_VecExpr<P_expr2>,
6556
_bz_VecExprConstant<long double> > T_expr;
6558
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6560
_bz_VecExprConstant<long double>(d3)));
6563
// where(TinyVector<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>, complex<T3>)
6564
#ifdef BZ_HAVE_COMPLEX
6565
template<class P_numtype1, int N_length1, class P_expr2, class T3>
6567
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6568
_bz_VecExpr<P_expr2>,
6569
_bz_VecExprConstant<complex<T3> > > >
6570
where(const TinyVector<P_numtype1, N_length1>& d1,
6571
_bz_VecExpr<P_expr2> d2,
6574
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6575
_bz_VecExpr<P_expr2>,
6576
_bz_VecExprConstant<complex<T3> > > T_expr;
6578
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6580
_bz_VecExprConstant<complex<T3> > (d3)));
6582
#endif // BZ_HAVE_COMPLEX
6584
// where(TinyVector<P_numtype1, N_length1>, VectorPick<P_numtype2>, Vector<P_numtype3>)
6585
template<class P_numtype1, int N_length1, class P_numtype2, class P_numtype3>
6587
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6588
VectorPickIterConst<P_numtype2>,
6589
VectorIterConst<P_numtype3> > >
6590
where(const TinyVector<P_numtype1, N_length1>& d1,
6591
const VectorPick<P_numtype2>& d2,
6592
const Vector<P_numtype3>& d3)
6594
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6595
VectorPickIterConst<P_numtype2>,
6596
VectorIterConst<P_numtype3> > T_expr;
6598
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6603
// where(TinyVector<P_numtype1, N_length1>, VectorPick<P_numtype2>, _bz_VecExpr<P_expr3>)
6604
template<class P_numtype1, int N_length1, class P_numtype2, class P_expr3>
6606
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6607
VectorPickIterConst<P_numtype2>,
6608
_bz_VecExpr<P_expr3> > >
6609
where(const TinyVector<P_numtype1, N_length1>& d1,
6610
const VectorPick<P_numtype2>& d2,
6611
_bz_VecExpr<P_expr3> d3)
6613
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6614
VectorPickIterConst<P_numtype2>,
6615
_bz_VecExpr<P_expr3> > T_expr;
6617
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6622
// where(TinyVector<P_numtype1, N_length1>, VectorPick<P_numtype2>, VectorPick<P_numtype3>)
6623
template<class P_numtype1, int N_length1, class P_numtype2, class P_numtype3>
6625
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6626
VectorPickIterConst<P_numtype2>,
6627
VectorPickIterConst<P_numtype3> > >
6628
where(const TinyVector<P_numtype1, N_length1>& d1,
6629
const VectorPick<P_numtype2>& d2,
6630
const VectorPick<P_numtype3>& d3)
6632
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6633
VectorPickIterConst<P_numtype2>,
6634
VectorPickIterConst<P_numtype3> > T_expr;
6636
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6641
// where(TinyVector<P_numtype1, N_length1>, VectorPick<P_numtype2>, Range)
6642
template<class P_numtype1, int N_length1, class P_numtype2>
6644
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6645
VectorPickIterConst<P_numtype2>,
6647
where(const TinyVector<P_numtype1, N_length1>& d1,
6648
const VectorPick<P_numtype2>& d2,
6651
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6652
VectorPickIterConst<P_numtype2>,
6655
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6660
// where(TinyVector<P_numtype1, N_length1>, VectorPick<P_numtype2>, TinyVector<P_numtype3, N_length3>)
6661
template<class P_numtype1, int N_length1, class P_numtype2, class P_numtype3, int N_length3>
6663
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6664
VectorPickIterConst<P_numtype2>,
6665
TinyVectorIterConst<P_numtype3, N_length3> > >
6666
where(const TinyVector<P_numtype1, N_length1>& d1,
6667
const VectorPick<P_numtype2>& d2,
6668
const TinyVector<P_numtype3, N_length3>& d3)
6670
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6671
VectorPickIterConst<P_numtype2>,
6672
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
6674
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6679
// where(TinyVector<P_numtype1, N_length1>, VectorPick<P_numtype2>, int)
6680
template<class P_numtype1, int N_length1, class P_numtype2>
6682
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6683
VectorPickIterConst<P_numtype2>,
6684
_bz_VecExprConstant<int> > >
6685
where(const TinyVector<P_numtype1, N_length1>& d1,
6686
const VectorPick<P_numtype2>& d2,
6689
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6690
VectorPickIterConst<P_numtype2>,
6691
_bz_VecExprConstant<int> > T_expr;
6693
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6695
_bz_VecExprConstant<int>(d3)));
6698
// where(TinyVector<P_numtype1, N_length1>, VectorPick<P_numtype2>, float)
6699
template<class P_numtype1, int N_length1, class P_numtype2>
6701
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6702
VectorPickIterConst<P_numtype2>,
6703
_bz_VecExprConstant<float> > >
6704
where(const TinyVector<P_numtype1, N_length1>& d1,
6705
const VectorPick<P_numtype2>& d2,
6708
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6709
VectorPickIterConst<P_numtype2>,
6710
_bz_VecExprConstant<float> > T_expr;
6712
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6714
_bz_VecExprConstant<float>(d3)));
6717
// where(TinyVector<P_numtype1, N_length1>, VectorPick<P_numtype2>, double)
6718
template<class P_numtype1, int N_length1, class P_numtype2>
6720
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6721
VectorPickIterConst<P_numtype2>,
6722
_bz_VecExprConstant<double> > >
6723
where(const TinyVector<P_numtype1, N_length1>& d1,
6724
const VectorPick<P_numtype2>& d2,
6727
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6728
VectorPickIterConst<P_numtype2>,
6729
_bz_VecExprConstant<double> > T_expr;
6731
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6733
_bz_VecExprConstant<double>(d3)));
6736
// where(TinyVector<P_numtype1, N_length1>, VectorPick<P_numtype2>, long double)
6737
template<class P_numtype1, int N_length1, class P_numtype2>
6739
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6740
VectorPickIterConst<P_numtype2>,
6741
_bz_VecExprConstant<long double> > >
6742
where(const TinyVector<P_numtype1, N_length1>& d1,
6743
const VectorPick<P_numtype2>& d2,
6746
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6747
VectorPickIterConst<P_numtype2>,
6748
_bz_VecExprConstant<long double> > T_expr;
6750
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6752
_bz_VecExprConstant<long double>(d3)));
6755
// where(TinyVector<P_numtype1, N_length1>, VectorPick<P_numtype2>, complex<T3>)
6756
#ifdef BZ_HAVE_COMPLEX
6757
template<class P_numtype1, int N_length1, class P_numtype2, class T3>
6759
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6760
VectorPickIterConst<P_numtype2>,
6761
_bz_VecExprConstant<complex<T3> > > >
6762
where(const TinyVector<P_numtype1, N_length1>& d1,
6763
const VectorPick<P_numtype2>& d2,
6766
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6767
VectorPickIterConst<P_numtype2>,
6768
_bz_VecExprConstant<complex<T3> > > T_expr;
6770
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6772
_bz_VecExprConstant<complex<T3> > (d3)));
6774
#endif // BZ_HAVE_COMPLEX
6776
// where(TinyVector<P_numtype1, N_length1>, Range, Vector<P_numtype3>)
6777
template<class P_numtype1, int N_length1, class P_numtype3>
6779
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6781
VectorIterConst<P_numtype3> > >
6782
where(const TinyVector<P_numtype1, N_length1>& d1,
6784
const Vector<P_numtype3>& d3)
6786
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6788
VectorIterConst<P_numtype3> > T_expr;
6790
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6795
// where(TinyVector<P_numtype1, N_length1>, Range, _bz_VecExpr<P_expr3>)
6796
template<class P_numtype1, int N_length1, class P_expr3>
6798
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6800
_bz_VecExpr<P_expr3> > >
6801
where(const TinyVector<P_numtype1, N_length1>& d1,
6803
_bz_VecExpr<P_expr3> d3)
6805
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6807
_bz_VecExpr<P_expr3> > T_expr;
6809
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6814
// where(TinyVector<P_numtype1, N_length1>, Range, VectorPick<P_numtype3>)
6815
template<class P_numtype1, int N_length1, class P_numtype3>
6817
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6819
VectorPickIterConst<P_numtype3> > >
6820
where(const TinyVector<P_numtype1, N_length1>& d1,
6822
const VectorPick<P_numtype3>& d3)
6824
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6826
VectorPickIterConst<P_numtype3> > T_expr;
6828
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6833
// where(TinyVector<P_numtype1, N_length1>, Range, Range)
6834
template<class P_numtype1, int N_length1>
6836
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6839
where(const TinyVector<P_numtype1, N_length1>& d1,
6843
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6847
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6852
// where(TinyVector<P_numtype1, N_length1>, Range, TinyVector<P_numtype3, N_length3>)
6853
template<class P_numtype1, int N_length1, class P_numtype3, int N_length3>
6855
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6857
TinyVectorIterConst<P_numtype3, N_length3> > >
6858
where(const TinyVector<P_numtype1, N_length1>& d1,
6860
const TinyVector<P_numtype3, N_length3>& d3)
6862
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6864
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
6866
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6871
// where(TinyVector<P_numtype1, N_length1>, Range, int)
6872
template<class P_numtype1, int N_length1>
6874
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6876
_bz_VecExprConstant<int> > >
6877
where(const TinyVector<P_numtype1, N_length1>& d1,
6881
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6883
_bz_VecExprConstant<int> > T_expr;
6885
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6887
_bz_VecExprConstant<int>(d3)));
6890
// where(TinyVector<P_numtype1, N_length1>, Range, float)
6891
template<class P_numtype1, int N_length1>
6893
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6895
_bz_VecExprConstant<float> > >
6896
where(const TinyVector<P_numtype1, N_length1>& d1,
6900
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6902
_bz_VecExprConstant<float> > T_expr;
6904
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6906
_bz_VecExprConstant<float>(d3)));
6909
// where(TinyVector<P_numtype1, N_length1>, Range, double)
6910
template<class P_numtype1, int N_length1>
6912
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6914
_bz_VecExprConstant<double> > >
6915
where(const TinyVector<P_numtype1, N_length1>& d1,
6919
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6921
_bz_VecExprConstant<double> > T_expr;
6923
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6925
_bz_VecExprConstant<double>(d3)));
6928
// where(TinyVector<P_numtype1, N_length1>, Range, long double)
6929
template<class P_numtype1, int N_length1>
6931
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6933
_bz_VecExprConstant<long double> > >
6934
where(const TinyVector<P_numtype1, N_length1>& d1,
6938
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6940
_bz_VecExprConstant<long double> > T_expr;
6942
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6944
_bz_VecExprConstant<long double>(d3)));
6947
// where(TinyVector<P_numtype1, N_length1>, Range, complex<T3>)
6948
#ifdef BZ_HAVE_COMPLEX
6949
template<class P_numtype1, int N_length1, class T3>
6951
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6953
_bz_VecExprConstant<complex<T3> > > >
6954
where(const TinyVector<P_numtype1, N_length1>& d1,
6958
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6960
_bz_VecExprConstant<complex<T3> > > T_expr;
6962
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6964
_bz_VecExprConstant<complex<T3> > (d3)));
6966
#endif // BZ_HAVE_COMPLEX
6968
// where(TinyVector<P_numtype1, N_length1>, TinyVector<P_numtype2, N_length2>, Vector<P_numtype3>)
6969
template<class P_numtype1, int N_length1, class P_numtype2, int N_length2, class P_numtype3>
6971
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6972
TinyVectorIterConst<P_numtype2, N_length2>,
6973
VectorIterConst<P_numtype3> > >
6974
where(const TinyVector<P_numtype1, N_length1>& d1,
6975
const TinyVector<P_numtype2, N_length2>& d2,
6976
const Vector<P_numtype3>& d3)
6978
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6979
TinyVectorIterConst<P_numtype2, N_length2>,
6980
VectorIterConst<P_numtype3> > T_expr;
6982
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
6987
// where(TinyVector<P_numtype1, N_length1>, TinyVector<P_numtype2, N_length2>, _bz_VecExpr<P_expr3>)
6988
template<class P_numtype1, int N_length1, class P_numtype2, int N_length2, class P_expr3>
6990
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6991
TinyVectorIterConst<P_numtype2, N_length2>,
6992
_bz_VecExpr<P_expr3> > >
6993
where(const TinyVector<P_numtype1, N_length1>& d1,
6994
const TinyVector<P_numtype2, N_length2>& d2,
6995
_bz_VecExpr<P_expr3> d3)
6997
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
6998
TinyVectorIterConst<P_numtype2, N_length2>,
6999
_bz_VecExpr<P_expr3> > T_expr;
7001
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7006
// where(TinyVector<P_numtype1, N_length1>, TinyVector<P_numtype2, N_length2>, VectorPick<P_numtype3>)
7007
template<class P_numtype1, int N_length1, class P_numtype2, int N_length2, class P_numtype3>
7009
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7010
TinyVectorIterConst<P_numtype2, N_length2>,
7011
VectorPickIterConst<P_numtype3> > >
7012
where(const TinyVector<P_numtype1, N_length1>& d1,
7013
const TinyVector<P_numtype2, N_length2>& d2,
7014
const VectorPick<P_numtype3>& d3)
7016
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7017
TinyVectorIterConst<P_numtype2, N_length2>,
7018
VectorPickIterConst<P_numtype3> > T_expr;
7020
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7025
// where(TinyVector<P_numtype1, N_length1>, TinyVector<P_numtype2, N_length2>, Range)
7026
template<class P_numtype1, int N_length1, class P_numtype2, int N_length2>
7028
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7029
TinyVectorIterConst<P_numtype2, N_length2>,
7031
where(const TinyVector<P_numtype1, N_length1>& d1,
7032
const TinyVector<P_numtype2, N_length2>& d2,
7035
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7036
TinyVectorIterConst<P_numtype2, N_length2>,
7039
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7044
// where(TinyVector<P_numtype1, N_length1>, TinyVector<P_numtype2, N_length2>, TinyVector<P_numtype3, N_length3>)
7045
template<class P_numtype1, int N_length1, class P_numtype2, int N_length2, class P_numtype3, int N_length3>
7047
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7048
TinyVectorIterConst<P_numtype2, N_length2>,
7049
TinyVectorIterConst<P_numtype3, N_length3> > >
7050
where(const TinyVector<P_numtype1, N_length1>& d1,
7051
const TinyVector<P_numtype2, N_length2>& d2,
7052
const TinyVector<P_numtype3, N_length3>& d3)
7054
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7055
TinyVectorIterConst<P_numtype2, N_length2>,
7056
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
7058
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7063
// where(TinyVector<P_numtype1, N_length1>, TinyVector<P_numtype2, N_length2>, int)
7064
template<class P_numtype1, int N_length1, class P_numtype2, int N_length2>
7066
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7067
TinyVectorIterConst<P_numtype2, N_length2>,
7068
_bz_VecExprConstant<int> > >
7069
where(const TinyVector<P_numtype1, N_length1>& d1,
7070
const TinyVector<P_numtype2, N_length2>& d2,
7073
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7074
TinyVectorIterConst<P_numtype2, N_length2>,
7075
_bz_VecExprConstant<int> > T_expr;
7077
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7079
_bz_VecExprConstant<int>(d3)));
7082
// where(TinyVector<P_numtype1, N_length1>, TinyVector<P_numtype2, N_length2>, float)
7083
template<class P_numtype1, int N_length1, class P_numtype2, int N_length2>
7085
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7086
TinyVectorIterConst<P_numtype2, N_length2>,
7087
_bz_VecExprConstant<float> > >
7088
where(const TinyVector<P_numtype1, N_length1>& d1,
7089
const TinyVector<P_numtype2, N_length2>& d2,
7092
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7093
TinyVectorIterConst<P_numtype2, N_length2>,
7094
_bz_VecExprConstant<float> > T_expr;
7096
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7098
_bz_VecExprConstant<float>(d3)));
7101
// where(TinyVector<P_numtype1, N_length1>, TinyVector<P_numtype2, N_length2>, double)
7102
template<class P_numtype1, int N_length1, class P_numtype2, int N_length2>
7104
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7105
TinyVectorIterConst<P_numtype2, N_length2>,
7106
_bz_VecExprConstant<double> > >
7107
where(const TinyVector<P_numtype1, N_length1>& d1,
7108
const TinyVector<P_numtype2, N_length2>& d2,
7111
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7112
TinyVectorIterConst<P_numtype2, N_length2>,
7113
_bz_VecExprConstant<double> > T_expr;
7115
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7117
_bz_VecExprConstant<double>(d3)));
7120
// where(TinyVector<P_numtype1, N_length1>, TinyVector<P_numtype2, N_length2>, long double)
7121
template<class P_numtype1, int N_length1, class P_numtype2, int N_length2>
7123
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7124
TinyVectorIterConst<P_numtype2, N_length2>,
7125
_bz_VecExprConstant<long double> > >
7126
where(const TinyVector<P_numtype1, N_length1>& d1,
7127
const TinyVector<P_numtype2, N_length2>& d2,
7130
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7131
TinyVectorIterConst<P_numtype2, N_length2>,
7132
_bz_VecExprConstant<long double> > T_expr;
7134
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7136
_bz_VecExprConstant<long double>(d3)));
7139
// where(TinyVector<P_numtype1, N_length1>, TinyVector<P_numtype2, N_length2>, complex<T3>)
7140
#ifdef BZ_HAVE_COMPLEX
7141
template<class P_numtype1, int N_length1, class P_numtype2, int N_length2, class T3>
7143
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7144
TinyVectorIterConst<P_numtype2, N_length2>,
7145
_bz_VecExprConstant<complex<T3> > > >
7146
where(const TinyVector<P_numtype1, N_length1>& d1,
7147
const TinyVector<P_numtype2, N_length2>& d2,
7150
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7151
TinyVectorIterConst<P_numtype2, N_length2>,
7152
_bz_VecExprConstant<complex<T3> > > T_expr;
7154
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7156
_bz_VecExprConstant<complex<T3> > (d3)));
7158
#endif // BZ_HAVE_COMPLEX
7160
// where(TinyVector<P_numtype1, N_length1>, int, Vector<P_numtype3>)
7161
template<class P_numtype1, int N_length1, class P_numtype3>
7163
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7164
_bz_VecExprConstant<int>,
7165
VectorIterConst<P_numtype3> > >
7166
where(const TinyVector<P_numtype1, N_length1>& d1,
7168
const Vector<P_numtype3>& d3)
7170
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7171
_bz_VecExprConstant<int>,
7172
VectorIterConst<P_numtype3> > T_expr;
7174
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7175
_bz_VecExprConstant<int>(d2),
7179
// where(TinyVector<P_numtype1, N_length1>, int, _bz_VecExpr<P_expr3>)
7180
template<class P_numtype1, int N_length1, class P_expr3>
7182
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7183
_bz_VecExprConstant<int>,
7184
_bz_VecExpr<P_expr3> > >
7185
where(const TinyVector<P_numtype1, N_length1>& d1,
7187
_bz_VecExpr<P_expr3> d3)
7189
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7190
_bz_VecExprConstant<int>,
7191
_bz_VecExpr<P_expr3> > T_expr;
7193
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7194
_bz_VecExprConstant<int>(d2),
7198
// where(TinyVector<P_numtype1, N_length1>, int, VectorPick<P_numtype3>)
7199
template<class P_numtype1, int N_length1, class P_numtype3>
7201
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7202
_bz_VecExprConstant<int>,
7203
VectorPickIterConst<P_numtype3> > >
7204
where(const TinyVector<P_numtype1, N_length1>& d1,
7206
const VectorPick<P_numtype3>& d3)
7208
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7209
_bz_VecExprConstant<int>,
7210
VectorPickIterConst<P_numtype3> > T_expr;
7212
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7213
_bz_VecExprConstant<int>(d2),
7217
// where(TinyVector<P_numtype1, N_length1>, int, Range)
7218
template<class P_numtype1, int N_length1>
7220
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7221
_bz_VecExprConstant<int>,
7223
where(const TinyVector<P_numtype1, N_length1>& d1,
7227
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7228
_bz_VecExprConstant<int>,
7231
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7232
_bz_VecExprConstant<int>(d2),
7236
// where(TinyVector<P_numtype1, N_length1>, int, TinyVector<P_numtype3, N_length3>)
7237
template<class P_numtype1, int N_length1, class P_numtype3, int N_length3>
7239
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7240
_bz_VecExprConstant<int>,
7241
TinyVectorIterConst<P_numtype3, N_length3> > >
7242
where(const TinyVector<P_numtype1, N_length1>& d1,
7244
const TinyVector<P_numtype3, N_length3>& d3)
7246
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7247
_bz_VecExprConstant<int>,
7248
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
7250
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7251
_bz_VecExprConstant<int>(d2),
7255
// where(TinyVector<P_numtype1, N_length1>, int, int)
7256
template<class P_numtype1, int N_length1>
7258
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7259
_bz_VecExprConstant<int>,
7260
_bz_VecExprConstant<int> > >
7261
where(const TinyVector<P_numtype1, N_length1>& d1,
7265
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7266
_bz_VecExprConstant<int>,
7267
_bz_VecExprConstant<int> > T_expr;
7269
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7270
_bz_VecExprConstant<int>(d2),
7271
_bz_VecExprConstant<int>(d3)));
7274
// where(TinyVector<P_numtype1, N_length1>, float, Vector<P_numtype3>)
7275
template<class P_numtype1, int N_length1, class P_numtype3>
7277
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7278
_bz_VecExprConstant<float>,
7279
VectorIterConst<P_numtype3> > >
7280
where(const TinyVector<P_numtype1, N_length1>& d1,
7282
const Vector<P_numtype3>& d3)
7284
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7285
_bz_VecExprConstant<float>,
7286
VectorIterConst<P_numtype3> > T_expr;
7288
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7289
_bz_VecExprConstant<float>(d2),
7293
// where(TinyVector<P_numtype1, N_length1>, float, _bz_VecExpr<P_expr3>)
7294
template<class P_numtype1, int N_length1, class P_expr3>
7296
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7297
_bz_VecExprConstant<float>,
7298
_bz_VecExpr<P_expr3> > >
7299
where(const TinyVector<P_numtype1, N_length1>& d1,
7301
_bz_VecExpr<P_expr3> d3)
7303
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7304
_bz_VecExprConstant<float>,
7305
_bz_VecExpr<P_expr3> > T_expr;
7307
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7308
_bz_VecExprConstant<float>(d2),
7312
// where(TinyVector<P_numtype1, N_length1>, float, VectorPick<P_numtype3>)
7313
template<class P_numtype1, int N_length1, class P_numtype3>
7315
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7316
_bz_VecExprConstant<float>,
7317
VectorPickIterConst<P_numtype3> > >
7318
where(const TinyVector<P_numtype1, N_length1>& d1,
7320
const VectorPick<P_numtype3>& d3)
7322
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7323
_bz_VecExprConstant<float>,
7324
VectorPickIterConst<P_numtype3> > T_expr;
7326
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7327
_bz_VecExprConstant<float>(d2),
7331
// where(TinyVector<P_numtype1, N_length1>, float, Range)
7332
template<class P_numtype1, int N_length1>
7334
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7335
_bz_VecExprConstant<float>,
7337
where(const TinyVector<P_numtype1, N_length1>& d1,
7341
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7342
_bz_VecExprConstant<float>,
7345
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7346
_bz_VecExprConstant<float>(d2),
7350
// where(TinyVector<P_numtype1, N_length1>, float, TinyVector<P_numtype3, N_length3>)
7351
template<class P_numtype1, int N_length1, class P_numtype3, int N_length3>
7353
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7354
_bz_VecExprConstant<float>,
7355
TinyVectorIterConst<P_numtype3, N_length3> > >
7356
where(const TinyVector<P_numtype1, N_length1>& d1,
7358
const TinyVector<P_numtype3, N_length3>& d3)
7360
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7361
_bz_VecExprConstant<float>,
7362
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
7364
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7365
_bz_VecExprConstant<float>(d2),
7369
// where(TinyVector<P_numtype1, N_length1>, float, float)
7370
template<class P_numtype1, int N_length1>
7372
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7373
_bz_VecExprConstant<float>,
7374
_bz_VecExprConstant<float> > >
7375
where(const TinyVector<P_numtype1, N_length1>& d1,
7379
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7380
_bz_VecExprConstant<float>,
7381
_bz_VecExprConstant<float> > T_expr;
7383
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7384
_bz_VecExprConstant<float>(d2),
7385
_bz_VecExprConstant<float>(d3)));
7388
// where(TinyVector<P_numtype1, N_length1>, double, Vector<P_numtype3>)
7389
template<class P_numtype1, int N_length1, class P_numtype3>
7391
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7392
_bz_VecExprConstant<double>,
7393
VectorIterConst<P_numtype3> > >
7394
where(const TinyVector<P_numtype1, N_length1>& d1,
7396
const Vector<P_numtype3>& d3)
7398
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7399
_bz_VecExprConstant<double>,
7400
VectorIterConst<P_numtype3> > T_expr;
7402
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7403
_bz_VecExprConstant<double>(d2),
7407
// where(TinyVector<P_numtype1, N_length1>, double, _bz_VecExpr<P_expr3>)
7408
template<class P_numtype1, int N_length1, class P_expr3>
7410
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7411
_bz_VecExprConstant<double>,
7412
_bz_VecExpr<P_expr3> > >
7413
where(const TinyVector<P_numtype1, N_length1>& d1,
7415
_bz_VecExpr<P_expr3> d3)
7417
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7418
_bz_VecExprConstant<double>,
7419
_bz_VecExpr<P_expr3> > T_expr;
7421
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7422
_bz_VecExprConstant<double>(d2),
7426
// where(TinyVector<P_numtype1, N_length1>, double, VectorPick<P_numtype3>)
7427
template<class P_numtype1, int N_length1, class P_numtype3>
7429
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7430
_bz_VecExprConstant<double>,
7431
VectorPickIterConst<P_numtype3> > >
7432
where(const TinyVector<P_numtype1, N_length1>& d1,
7434
const VectorPick<P_numtype3>& d3)
7436
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7437
_bz_VecExprConstant<double>,
7438
VectorPickIterConst<P_numtype3> > T_expr;
7440
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7441
_bz_VecExprConstant<double>(d2),
7445
// where(TinyVector<P_numtype1, N_length1>, double, Range)
7446
template<class P_numtype1, int N_length1>
7448
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7449
_bz_VecExprConstant<double>,
7451
where(const TinyVector<P_numtype1, N_length1>& d1,
7455
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7456
_bz_VecExprConstant<double>,
7459
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7460
_bz_VecExprConstant<double>(d2),
7464
// where(TinyVector<P_numtype1, N_length1>, double, TinyVector<P_numtype3, N_length3>)
7465
template<class P_numtype1, int N_length1, class P_numtype3, int N_length3>
7467
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7468
_bz_VecExprConstant<double>,
7469
TinyVectorIterConst<P_numtype3, N_length3> > >
7470
where(const TinyVector<P_numtype1, N_length1>& d1,
7472
const TinyVector<P_numtype3, N_length3>& d3)
7474
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7475
_bz_VecExprConstant<double>,
7476
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
7478
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7479
_bz_VecExprConstant<double>(d2),
7483
// where(TinyVector<P_numtype1, N_length1>, double, double)
7484
template<class P_numtype1, int N_length1>
7486
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7487
_bz_VecExprConstant<double>,
7488
_bz_VecExprConstant<double> > >
7489
where(const TinyVector<P_numtype1, N_length1>& d1,
7493
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7494
_bz_VecExprConstant<double>,
7495
_bz_VecExprConstant<double> > T_expr;
7497
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7498
_bz_VecExprConstant<double>(d2),
7499
_bz_VecExprConstant<double>(d3)));
7502
// where(TinyVector<P_numtype1, N_length1>, long double, Vector<P_numtype3>)
7503
template<class P_numtype1, int N_length1, class P_numtype3>
7505
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7506
_bz_VecExprConstant<long double>,
7507
VectorIterConst<P_numtype3> > >
7508
where(const TinyVector<P_numtype1, N_length1>& d1,
7510
const Vector<P_numtype3>& d3)
7512
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7513
_bz_VecExprConstant<long double>,
7514
VectorIterConst<P_numtype3> > T_expr;
7516
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7517
_bz_VecExprConstant<long double>(d2),
7521
// where(TinyVector<P_numtype1, N_length1>, long double, _bz_VecExpr<P_expr3>)
7522
template<class P_numtype1, int N_length1, class P_expr3>
7524
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7525
_bz_VecExprConstant<long double>,
7526
_bz_VecExpr<P_expr3> > >
7527
where(const TinyVector<P_numtype1, N_length1>& d1,
7529
_bz_VecExpr<P_expr3> d3)
7531
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7532
_bz_VecExprConstant<long double>,
7533
_bz_VecExpr<P_expr3> > T_expr;
7535
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7536
_bz_VecExprConstant<long double>(d2),
7540
// where(TinyVector<P_numtype1, N_length1>, long double, VectorPick<P_numtype3>)
7541
template<class P_numtype1, int N_length1, class P_numtype3>
7543
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7544
_bz_VecExprConstant<long double>,
7545
VectorPickIterConst<P_numtype3> > >
7546
where(const TinyVector<P_numtype1, N_length1>& d1,
7548
const VectorPick<P_numtype3>& d3)
7550
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7551
_bz_VecExprConstant<long double>,
7552
VectorPickIterConst<P_numtype3> > T_expr;
7554
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7555
_bz_VecExprConstant<long double>(d2),
7559
// where(TinyVector<P_numtype1, N_length1>, long double, Range)
7560
template<class P_numtype1, int N_length1>
7562
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7563
_bz_VecExprConstant<long double>,
7565
where(const TinyVector<P_numtype1, N_length1>& d1,
7569
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7570
_bz_VecExprConstant<long double>,
7573
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7574
_bz_VecExprConstant<long double>(d2),
7578
// where(TinyVector<P_numtype1, N_length1>, long double, TinyVector<P_numtype3, N_length3>)
7579
template<class P_numtype1, int N_length1, class P_numtype3, int N_length3>
7581
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7582
_bz_VecExprConstant<long double>,
7583
TinyVectorIterConst<P_numtype3, N_length3> > >
7584
where(const TinyVector<P_numtype1, N_length1>& d1,
7586
const TinyVector<P_numtype3, N_length3>& d3)
7588
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7589
_bz_VecExprConstant<long double>,
7590
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
7592
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7593
_bz_VecExprConstant<long double>(d2),
7597
// where(TinyVector<P_numtype1, N_length1>, long double, long double)
7598
template<class P_numtype1, int N_length1>
7600
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7601
_bz_VecExprConstant<long double>,
7602
_bz_VecExprConstant<long double> > >
7603
where(const TinyVector<P_numtype1, N_length1>& d1,
7607
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7608
_bz_VecExprConstant<long double>,
7609
_bz_VecExprConstant<long double> > T_expr;
7611
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7612
_bz_VecExprConstant<long double>(d2),
7613
_bz_VecExprConstant<long double>(d3)));
7616
// where(TinyVector<P_numtype1, N_length1>, complex<T2>, Vector<P_numtype3>)
7617
#ifdef BZ_HAVE_COMPLEX
7618
template<class P_numtype1, int N_length1, class T2, class P_numtype3>
7620
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7621
_bz_VecExprConstant<complex<T2> > ,
7622
VectorIterConst<P_numtype3> > >
7623
where(const TinyVector<P_numtype1, N_length1>& d1,
7625
const Vector<P_numtype3>& d3)
7627
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7628
_bz_VecExprConstant<complex<T2> > ,
7629
VectorIterConst<P_numtype3> > T_expr;
7631
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7632
_bz_VecExprConstant<complex<T2> > (d2),
7635
#endif // BZ_HAVE_COMPLEX
7637
// where(TinyVector<P_numtype1, N_length1>, complex<T2>, _bz_VecExpr<P_expr3>)
7638
#ifdef BZ_HAVE_COMPLEX
7639
template<class P_numtype1, int N_length1, class T2, class P_expr3>
7641
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7642
_bz_VecExprConstant<complex<T2> > ,
7643
_bz_VecExpr<P_expr3> > >
7644
where(const TinyVector<P_numtype1, N_length1>& d1,
7646
_bz_VecExpr<P_expr3> d3)
7648
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7649
_bz_VecExprConstant<complex<T2> > ,
7650
_bz_VecExpr<P_expr3> > T_expr;
7652
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7653
_bz_VecExprConstant<complex<T2> > (d2),
7656
#endif // BZ_HAVE_COMPLEX
7658
// where(TinyVector<P_numtype1, N_length1>, complex<T2>, VectorPick<P_numtype3>)
7659
#ifdef BZ_HAVE_COMPLEX
7660
template<class P_numtype1, int N_length1, class T2, class P_numtype3>
7662
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7663
_bz_VecExprConstant<complex<T2> > ,
7664
VectorPickIterConst<P_numtype3> > >
7665
where(const TinyVector<P_numtype1, N_length1>& d1,
7667
const VectorPick<P_numtype3>& d3)
7669
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7670
_bz_VecExprConstant<complex<T2> > ,
7671
VectorPickIterConst<P_numtype3> > T_expr;
7673
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7674
_bz_VecExprConstant<complex<T2> > (d2),
7677
#endif // BZ_HAVE_COMPLEX
7679
// where(TinyVector<P_numtype1, N_length1>, complex<T2>, Range)
7680
#ifdef BZ_HAVE_COMPLEX
7681
template<class P_numtype1, int N_length1, class T2>
7683
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7684
_bz_VecExprConstant<complex<T2> > ,
7686
where(const TinyVector<P_numtype1, N_length1>& d1,
7690
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7691
_bz_VecExprConstant<complex<T2> > ,
7694
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7695
_bz_VecExprConstant<complex<T2> > (d2),
7698
#endif // BZ_HAVE_COMPLEX
7700
// where(TinyVector<P_numtype1, N_length1>, complex<T2>, TinyVector<P_numtype3, N_length3>)
7701
#ifdef BZ_HAVE_COMPLEX
7702
template<class P_numtype1, int N_length1, class T2, class P_numtype3, int N_length3>
7704
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7705
_bz_VecExprConstant<complex<T2> > ,
7706
TinyVectorIterConst<P_numtype3, N_length3> > >
7707
where(const TinyVector<P_numtype1, N_length1>& d1,
7709
const TinyVector<P_numtype3, N_length3>& d3)
7711
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7712
_bz_VecExprConstant<complex<T2> > ,
7713
TinyVectorIterConst<P_numtype3, N_length3> > T_expr;
7715
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7716
_bz_VecExprConstant<complex<T2> > (d2),
7719
#endif // BZ_HAVE_COMPLEX
7721
// where(TinyVector<P_numtype1, N_length1>, complex<T2>, complex<T3>)
7722
#ifdef BZ_HAVE_COMPLEX
7723
template<class P_numtype1, int N_length1, class T2, class T3>
7725
_bz_VecExpr<_bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7726
_bz_VecExprConstant<complex<T2> > ,
7727
_bz_VecExprConstant<complex<T3> > > >
7728
where(const TinyVector<P_numtype1, N_length1>& d1,
7732
typedef _bz_VecWhere<TinyVectorIterConst<P_numtype1, N_length1>,
7733
_bz_VecExprConstant<complex<T2> > ,
7734
_bz_VecExprConstant<complex<T3> > > T_expr;
7736
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(),
7737
_bz_VecExprConstant<complex<T2> > (d2),
7738
_bz_VecExprConstant<complex<T3> > (d3)));
7740
#endif // BZ_HAVE_COMPLEX