1
/***************************************************************************
2
* blitz/../vecuops.cc Expression templates for vectors, unary functions
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
// genvecuops.cpp Oct 6 2005 15:58:48
31
#error <blitz/vecuops.cc> must be included via <blitz/vecexpr.h>
32
#endif // BZ_VECEXPR_H
36
/****************************************************************************
38
****************************************************************************/
40
template<class P_numtype1>
42
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
43
_bz_abs<P_numtype1> > >
44
abs(const Vector<P_numtype1>& d1)
46
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
47
_bz_abs<P_numtype1> > T_expr;
49
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
52
template<class P_expr1>
54
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
55
_bz_abs<typename P_expr1::T_numtype> > >
56
abs(_bz_VecExpr<P_expr1> d1)
58
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
59
_bz_abs<typename P_expr1::T_numtype> > T_expr;
61
return _bz_VecExpr<T_expr>(T_expr(d1));
64
template<class P_numtype1>
66
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
67
_bz_abs<P_numtype1> > >
68
abs(const VectorPick<P_numtype1>& d1)
70
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
71
_bz_abs<P_numtype1> > T_expr;
73
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
78
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
82
typedef _bz_VecExprUnaryOp<Range,
83
_bz_abs<int> > T_expr;
85
return _bz_VecExpr<T_expr>(T_expr(d1));
88
template<class P_numtype1, int N_length1>
90
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
91
_bz_abs<P_numtype1> > >
92
abs(const TinyVector<P_numtype1, N_length1>& d1)
94
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
95
_bz_abs<P_numtype1> > T_expr;
97
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
101
/****************************************************************************
103
****************************************************************************/
105
template<class P_numtype1>
107
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
108
_bz_acos<P_numtype1> > >
109
acos(const Vector<P_numtype1>& d1)
111
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
112
_bz_acos<P_numtype1> > T_expr;
114
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
117
template<class P_expr1>
119
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
120
_bz_acos<typename P_expr1::T_numtype> > >
121
acos(_bz_VecExpr<P_expr1> d1)
123
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
124
_bz_acos<typename P_expr1::T_numtype> > T_expr;
126
return _bz_VecExpr<T_expr>(T_expr(d1));
129
template<class P_numtype1>
131
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
132
_bz_acos<P_numtype1> > >
133
acos(const VectorPick<P_numtype1>& d1)
135
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
136
_bz_acos<P_numtype1> > T_expr;
138
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
143
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
147
typedef _bz_VecExprUnaryOp<Range,
148
_bz_acos<int> > T_expr;
150
return _bz_VecExpr<T_expr>(T_expr(d1));
153
template<class P_numtype1, int N_length1>
155
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
156
_bz_acos<P_numtype1> > >
157
acos(const TinyVector<P_numtype1, N_length1>& d1)
159
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
160
_bz_acos<P_numtype1> > T_expr;
162
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
166
/****************************************************************************
168
****************************************************************************/
170
#ifdef BZ_HAVE_IEEE_MATH
171
template<class P_numtype1>
173
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
174
_bz_acosh<P_numtype1> > >
175
acosh(const Vector<P_numtype1>& d1)
177
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
178
_bz_acosh<P_numtype1> > T_expr;
180
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
183
template<class P_expr1>
185
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
186
_bz_acosh<typename P_expr1::T_numtype> > >
187
acosh(_bz_VecExpr<P_expr1> d1)
189
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
190
_bz_acosh<typename P_expr1::T_numtype> > T_expr;
192
return _bz_VecExpr<T_expr>(T_expr(d1));
195
template<class P_numtype1>
197
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
198
_bz_acosh<P_numtype1> > >
199
acosh(const VectorPick<P_numtype1>& d1)
201
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
202
_bz_acosh<P_numtype1> > T_expr;
204
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
209
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
213
typedef _bz_VecExprUnaryOp<Range,
214
_bz_acosh<int> > T_expr;
216
return _bz_VecExpr<T_expr>(T_expr(d1));
219
template<class P_numtype1, int N_length1>
221
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
222
_bz_acosh<P_numtype1> > >
223
acosh(const TinyVector<P_numtype1, N_length1>& d1)
225
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
226
_bz_acosh<P_numtype1> > T_expr;
228
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
233
/****************************************************************************
235
****************************************************************************/
237
template<class P_numtype1>
239
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
240
_bz_asin<P_numtype1> > >
241
asin(const Vector<P_numtype1>& d1)
243
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
244
_bz_asin<P_numtype1> > T_expr;
246
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
249
template<class P_expr1>
251
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
252
_bz_asin<typename P_expr1::T_numtype> > >
253
asin(_bz_VecExpr<P_expr1> d1)
255
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
256
_bz_asin<typename P_expr1::T_numtype> > T_expr;
258
return _bz_VecExpr<T_expr>(T_expr(d1));
261
template<class P_numtype1>
263
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
264
_bz_asin<P_numtype1> > >
265
asin(const VectorPick<P_numtype1>& d1)
267
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
268
_bz_asin<P_numtype1> > T_expr;
270
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
275
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
279
typedef _bz_VecExprUnaryOp<Range,
280
_bz_asin<int> > T_expr;
282
return _bz_VecExpr<T_expr>(T_expr(d1));
285
template<class P_numtype1, int N_length1>
287
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
288
_bz_asin<P_numtype1> > >
289
asin(const TinyVector<P_numtype1, N_length1>& d1)
291
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
292
_bz_asin<P_numtype1> > T_expr;
294
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
298
/****************************************************************************
300
****************************************************************************/
302
#ifdef BZ_HAVE_IEEE_MATH
303
template<class P_numtype1>
305
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
306
_bz_asinh<P_numtype1> > >
307
asinh(const Vector<P_numtype1>& d1)
309
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
310
_bz_asinh<P_numtype1> > T_expr;
312
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
315
template<class P_expr1>
317
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
318
_bz_asinh<typename P_expr1::T_numtype> > >
319
asinh(_bz_VecExpr<P_expr1> d1)
321
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
322
_bz_asinh<typename P_expr1::T_numtype> > T_expr;
324
return _bz_VecExpr<T_expr>(T_expr(d1));
327
template<class P_numtype1>
329
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
330
_bz_asinh<P_numtype1> > >
331
asinh(const VectorPick<P_numtype1>& d1)
333
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
334
_bz_asinh<P_numtype1> > T_expr;
336
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
341
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
345
typedef _bz_VecExprUnaryOp<Range,
346
_bz_asinh<int> > T_expr;
348
return _bz_VecExpr<T_expr>(T_expr(d1));
351
template<class P_numtype1, int N_length1>
353
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
354
_bz_asinh<P_numtype1> > >
355
asinh(const TinyVector<P_numtype1, N_length1>& d1)
357
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
358
_bz_asinh<P_numtype1> > T_expr;
360
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
365
/****************************************************************************
367
****************************************************************************/
369
template<class P_numtype1>
371
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
372
_bz_atan<P_numtype1> > >
373
atan(const Vector<P_numtype1>& d1)
375
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
376
_bz_atan<P_numtype1> > T_expr;
378
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
381
template<class P_expr1>
383
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
384
_bz_atan<typename P_expr1::T_numtype> > >
385
atan(_bz_VecExpr<P_expr1> d1)
387
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
388
_bz_atan<typename P_expr1::T_numtype> > T_expr;
390
return _bz_VecExpr<T_expr>(T_expr(d1));
393
template<class P_numtype1>
395
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
396
_bz_atan<P_numtype1> > >
397
atan(const VectorPick<P_numtype1>& d1)
399
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
400
_bz_atan<P_numtype1> > T_expr;
402
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
407
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
411
typedef _bz_VecExprUnaryOp<Range,
412
_bz_atan<int> > T_expr;
414
return _bz_VecExpr<T_expr>(T_expr(d1));
417
template<class P_numtype1, int N_length1>
419
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
420
_bz_atan<P_numtype1> > >
421
atan(const TinyVector<P_numtype1, N_length1>& d1)
423
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
424
_bz_atan<P_numtype1> > T_expr;
426
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
430
/****************************************************************************
432
****************************************************************************/
434
template<class P_numtype1, class P_numtype2>
436
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
437
_bz_atan2<P_numtype1,P_numtype2> > >
438
atan2(const Vector<P_numtype1>& d1, const Vector<P_numtype2>& d2)
440
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
441
_bz_atan2<P_numtype1,P_numtype2> > T_expr;
443
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
446
template<class P_numtype1, class P_expr2>
448
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
449
_bz_atan2<P_numtype1,typename P_expr2::T_numtype> > >
450
atan2(const Vector<P_numtype1>& d1, _bz_VecExpr<P_expr2> d2)
452
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
453
_bz_atan2<P_numtype1,typename P_expr2::T_numtype> > T_expr;
455
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
458
template<class P_numtype1, class P_numtype2>
460
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
461
_bz_atan2<P_numtype1,P_numtype2> > >
462
atan2(const Vector<P_numtype1>& d1, const VectorPick<P_numtype2>& d2)
464
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
465
_bz_atan2<P_numtype1,P_numtype2> > T_expr;
467
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
470
template<class P_numtype1>
472
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, Range,
473
_bz_atan2<P_numtype1,int> > >
474
atan2(const Vector<P_numtype1>& d1, Range d2)
476
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, Range,
477
_bz_atan2<P_numtype1,int> > T_expr;
479
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
482
template<class P_numtype1, class P_numtype2, int N_length2>
484
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
485
_bz_atan2<P_numtype1,P_numtype2> > >
486
atan2(const Vector<P_numtype1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
488
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
489
_bz_atan2<P_numtype1,P_numtype2> > T_expr;
491
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
494
template<class P_numtype1>
496
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<int>,
497
_bz_atan2<P_numtype1,int> > >
498
atan2(const Vector<P_numtype1>& d1, int d2)
500
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<int>,
501
_bz_atan2<P_numtype1,int> > T_expr;
503
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
506
template<class P_numtype1>
508
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<float>,
509
_bz_atan2<P_numtype1,float> > >
510
atan2(const Vector<P_numtype1>& d1, float d2)
512
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<float>,
513
_bz_atan2<P_numtype1,float> > T_expr;
515
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
518
template<class P_numtype1>
520
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<double>,
521
_bz_atan2<P_numtype1,double> > >
522
atan2(const Vector<P_numtype1>& d1, double d2)
524
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<double>,
525
_bz_atan2<P_numtype1,double> > T_expr;
527
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
530
template<class P_numtype1>
532
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
533
_bz_atan2<P_numtype1,long double> > >
534
atan2(const Vector<P_numtype1>& d1, long double d2)
536
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
537
_bz_atan2<P_numtype1,long double> > T_expr;
539
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
542
template<class P_numtype1, class T2>
544
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
545
_bz_atan2<P_numtype1,complex<T2> > > >
546
atan2(const Vector<P_numtype1>& d1, complex<T2> d2)
548
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
549
_bz_atan2<P_numtype1,complex<T2> > > T_expr;
551
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
554
template<class P_expr1, class P_numtype2>
556
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorIterConst<P_numtype2>,
557
_bz_atan2<typename P_expr1::T_numtype,P_numtype2> > >
558
atan2(_bz_VecExpr<P_expr1> d1, const Vector<P_numtype2>& d2)
560
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorIterConst<P_numtype2>,
561
_bz_atan2<typename P_expr1::T_numtype,P_numtype2> > T_expr;
563
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
566
template<class P_expr1, class P_expr2>
568
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>,
569
_bz_atan2<typename P_expr1::T_numtype,typename P_expr2::T_numtype> > >
570
atan2(_bz_VecExpr<P_expr1> d1, _bz_VecExpr<P_expr2> d2)
572
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>,
573
_bz_atan2<typename P_expr1::T_numtype,typename P_expr2::T_numtype> > T_expr;
575
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
578
template<class P_expr1, class P_numtype2>
580
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorPickIterConst<P_numtype2>,
581
_bz_atan2<typename P_expr1::T_numtype,P_numtype2> > >
582
atan2(_bz_VecExpr<P_expr1> d1, const VectorPick<P_numtype2>& d2)
584
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorPickIterConst<P_numtype2>,
585
_bz_atan2<typename P_expr1::T_numtype,P_numtype2> > T_expr;
587
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
590
template<class P_expr1>
592
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, Range,
593
_bz_atan2<typename P_expr1::T_numtype,int> > >
594
atan2(_bz_VecExpr<P_expr1> d1, Range d2)
596
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, Range,
597
_bz_atan2<typename P_expr1::T_numtype,int> > T_expr;
599
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
602
template<class P_expr1, class P_numtype2, int N_length2>
604
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, TinyVectorIterConst<P_numtype2, N_length2>,
605
_bz_atan2<typename P_expr1::T_numtype,P_numtype2> > >
606
atan2(_bz_VecExpr<P_expr1> d1, const TinyVector<P_numtype2, N_length2>& d2)
608
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, TinyVectorIterConst<P_numtype2, N_length2>,
609
_bz_atan2<typename P_expr1::T_numtype,P_numtype2> > T_expr;
611
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
614
template<class P_expr1>
616
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<int>,
617
_bz_atan2<typename P_expr1::T_numtype,int> > >
618
atan2(_bz_VecExpr<P_expr1> d1, int d2)
620
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<int>,
621
_bz_atan2<typename P_expr1::T_numtype,int> > T_expr;
623
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<int>(d2)));
626
template<class P_expr1>
628
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<float>,
629
_bz_atan2<typename P_expr1::T_numtype,float> > >
630
atan2(_bz_VecExpr<P_expr1> d1, float d2)
632
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<float>,
633
_bz_atan2<typename P_expr1::T_numtype,float> > T_expr;
635
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<float>(d2)));
638
template<class P_expr1>
640
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<double>,
641
_bz_atan2<typename P_expr1::T_numtype,double> > >
642
atan2(_bz_VecExpr<P_expr1> d1, double d2)
644
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<double>,
645
_bz_atan2<typename P_expr1::T_numtype,double> > T_expr;
647
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<double>(d2)));
650
template<class P_expr1>
652
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<long double>,
653
_bz_atan2<typename P_expr1::T_numtype,long double> > >
654
atan2(_bz_VecExpr<P_expr1> d1, long double d2)
656
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<long double>,
657
_bz_atan2<typename P_expr1::T_numtype,long double> > T_expr;
659
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<long double>(d2)));
662
template<class P_expr1, class T2>
664
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<complex<T2> > ,
665
_bz_atan2<typename P_expr1::T_numtype,complex<T2> > > >
666
atan2(_bz_VecExpr<P_expr1> d1, complex<T2> d2)
668
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<complex<T2> > ,
669
_bz_atan2<typename P_expr1::T_numtype,complex<T2> > > T_expr;
671
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<complex<T2> > (d2)));
674
template<class P_numtype1, class P_numtype2>
676
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
677
_bz_atan2<P_numtype1,P_numtype2> > >
678
atan2(const VectorPick<P_numtype1>& d1, const Vector<P_numtype2>& d2)
680
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
681
_bz_atan2<P_numtype1,P_numtype2> > T_expr;
683
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
686
template<class P_numtype1, class P_expr2>
688
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
689
_bz_atan2<P_numtype1,typename P_expr2::T_numtype> > >
690
atan2(const VectorPick<P_numtype1>& d1, _bz_VecExpr<P_expr2> d2)
692
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
693
_bz_atan2<P_numtype1,typename P_expr2::T_numtype> > T_expr;
695
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
698
template<class P_numtype1, class P_numtype2>
700
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
701
_bz_atan2<P_numtype1,P_numtype2> > >
702
atan2(const VectorPick<P_numtype1>& d1, const VectorPick<P_numtype2>& d2)
704
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
705
_bz_atan2<P_numtype1,P_numtype2> > T_expr;
707
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
710
template<class P_numtype1>
712
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, Range,
713
_bz_atan2<P_numtype1,int> > >
714
atan2(const VectorPick<P_numtype1>& d1, Range d2)
716
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, Range,
717
_bz_atan2<P_numtype1,int> > T_expr;
719
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
722
template<class P_numtype1, class P_numtype2, int N_length2>
724
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
725
_bz_atan2<P_numtype1,P_numtype2> > >
726
atan2(const VectorPick<P_numtype1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
728
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
729
_bz_atan2<P_numtype1,P_numtype2> > T_expr;
731
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
734
template<class P_numtype1>
736
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<int>,
737
_bz_atan2<P_numtype1,int> > >
738
atan2(const VectorPick<P_numtype1>& d1, int d2)
740
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<int>,
741
_bz_atan2<P_numtype1,int> > T_expr;
743
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
746
template<class P_numtype1>
748
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<float>,
749
_bz_atan2<P_numtype1,float> > >
750
atan2(const VectorPick<P_numtype1>& d1, float d2)
752
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<float>,
753
_bz_atan2<P_numtype1,float> > T_expr;
755
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
758
template<class P_numtype1>
760
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<double>,
761
_bz_atan2<P_numtype1,double> > >
762
atan2(const VectorPick<P_numtype1>& d1, double d2)
764
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<double>,
765
_bz_atan2<P_numtype1,double> > T_expr;
767
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
770
template<class P_numtype1>
772
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
773
_bz_atan2<P_numtype1,long double> > >
774
atan2(const VectorPick<P_numtype1>& d1, long double d2)
776
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
777
_bz_atan2<P_numtype1,long double> > T_expr;
779
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
782
template<class P_numtype1, class T2>
784
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
785
_bz_atan2<P_numtype1,complex<T2> > > >
786
atan2(const VectorPick<P_numtype1>& d1, complex<T2> d2)
788
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
789
_bz_atan2<P_numtype1,complex<T2> > > T_expr;
791
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
794
template<class P_numtype2>
796
_bz_VecExpr<_bz_VecExprOp<Range, VectorIterConst<P_numtype2>,
797
_bz_atan2<int,P_numtype2> > >
798
atan2(Range d1, const Vector<P_numtype2>& d2)
800
typedef _bz_VecExprOp<Range, VectorIterConst<P_numtype2>,
801
_bz_atan2<int,P_numtype2> > T_expr;
803
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
806
template<class P_expr2>
808
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExpr<P_expr2>,
809
_bz_atan2<int,typename P_expr2::T_numtype> > >
810
atan2(Range d1, _bz_VecExpr<P_expr2> d2)
812
typedef _bz_VecExprOp<Range, _bz_VecExpr<P_expr2>,
813
_bz_atan2<int,typename P_expr2::T_numtype> > T_expr;
815
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
818
template<class P_numtype2>
820
_bz_VecExpr<_bz_VecExprOp<Range, VectorPickIterConst<P_numtype2>,
821
_bz_atan2<int,P_numtype2> > >
822
atan2(Range d1, const VectorPick<P_numtype2>& d2)
824
typedef _bz_VecExprOp<Range, VectorPickIterConst<P_numtype2>,
825
_bz_atan2<int,P_numtype2> > T_expr;
827
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
832
_bz_VecExpr<_bz_VecExprOp<Range, Range,
833
_bz_atan2<int,int> > >
834
atan2(Range d1, Range d2)
836
typedef _bz_VecExprOp<Range, Range,
837
_bz_atan2<int,int> > T_expr;
839
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
842
template<class P_numtype2, int N_length2>
844
_bz_VecExpr<_bz_VecExprOp<Range, TinyVectorIterConst<P_numtype2, N_length2>,
845
_bz_atan2<int,P_numtype2> > >
846
atan2(Range d1, const TinyVector<P_numtype2, N_length2>& d2)
848
typedef _bz_VecExprOp<Range, TinyVectorIterConst<P_numtype2, N_length2>,
849
_bz_atan2<int,P_numtype2> > T_expr;
851
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
856
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<int>,
857
_bz_atan2<int,int> > >
858
atan2(Range d1, int d2)
860
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<int>,
861
_bz_atan2<int,int> > T_expr;
863
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<int>(d2)));
868
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<float>,
869
_bz_atan2<int,float> > >
870
atan2(Range d1, float d2)
872
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<float>,
873
_bz_atan2<int,float> > T_expr;
875
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<float>(d2)));
880
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<double>,
881
_bz_atan2<int,double> > >
882
atan2(Range d1, double d2)
884
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<double>,
885
_bz_atan2<int,double> > T_expr;
887
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<double>(d2)));
892
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<long double>,
893
_bz_atan2<int,long double> > >
894
atan2(Range d1, long double d2)
896
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<long double>,
897
_bz_atan2<int,long double> > T_expr;
899
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<long double>(d2)));
904
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<complex<T2> > ,
905
_bz_atan2<int,complex<T2> > > >
906
atan2(Range d1, complex<T2> d2)
908
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<complex<T2> > ,
909
_bz_atan2<int,complex<T2> > > T_expr;
911
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<complex<T2> > (d2)));
914
template<class P_numtype1, int N_length1, class P_numtype2>
916
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorIterConst<P_numtype2>,
917
_bz_atan2<P_numtype1,P_numtype2> > >
918
atan2(const TinyVector<P_numtype1, N_length1>& d1, const Vector<P_numtype2>& d2)
920
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorIterConst<P_numtype2>,
921
_bz_atan2<P_numtype1,P_numtype2> > T_expr;
923
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
926
template<class P_numtype1, int N_length1, class P_expr2>
928
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>,
929
_bz_atan2<P_numtype1,typename P_expr2::T_numtype> > >
930
atan2(const TinyVector<P_numtype1, N_length1>& d1, _bz_VecExpr<P_expr2> d2)
932
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>,
933
_bz_atan2<P_numtype1,typename P_expr2::T_numtype> > T_expr;
935
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
938
template<class P_numtype1, int N_length1, class P_numtype2>
940
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorPickIterConst<P_numtype2>,
941
_bz_atan2<P_numtype1,P_numtype2> > >
942
atan2(const TinyVector<P_numtype1, N_length1>& d1, const VectorPick<P_numtype2>& d2)
944
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorPickIterConst<P_numtype2>,
945
_bz_atan2<P_numtype1,P_numtype2> > T_expr;
947
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
950
template<class P_numtype1, int N_length1>
952
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, Range,
953
_bz_atan2<P_numtype1,int> > >
954
atan2(const TinyVector<P_numtype1, N_length1>& d1, Range d2)
956
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, Range,
957
_bz_atan2<P_numtype1,int> > T_expr;
959
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
962
template<class P_numtype1, int N_length1, class P_numtype2, int N_length2>
964
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, TinyVectorIterConst<P_numtype2, N_length2>,
965
_bz_atan2<P_numtype1,P_numtype2> > >
966
atan2(const TinyVector<P_numtype1, N_length1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
968
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, TinyVectorIterConst<P_numtype2, N_length2>,
969
_bz_atan2<P_numtype1,P_numtype2> > T_expr;
971
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
974
template<class P_numtype1, int N_length1>
976
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<int>,
977
_bz_atan2<P_numtype1,int> > >
978
atan2(const TinyVector<P_numtype1, N_length1>& d1, int d2)
980
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<int>,
981
_bz_atan2<P_numtype1,int> > T_expr;
983
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
986
template<class P_numtype1, int N_length1>
988
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<float>,
989
_bz_atan2<P_numtype1,float> > >
990
atan2(const TinyVector<P_numtype1, N_length1>& d1, float d2)
992
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<float>,
993
_bz_atan2<P_numtype1,float> > T_expr;
995
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
998
template<class P_numtype1, int N_length1>
1000
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<double>,
1001
_bz_atan2<P_numtype1,double> > >
1002
atan2(const TinyVector<P_numtype1, N_length1>& d1, double d2)
1004
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<double>,
1005
_bz_atan2<P_numtype1,double> > T_expr;
1007
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
1010
template<class P_numtype1, int N_length1>
1012
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<long double>,
1013
_bz_atan2<P_numtype1,long double> > >
1014
atan2(const TinyVector<P_numtype1, N_length1>& d1, long double d2)
1016
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<long double>,
1017
_bz_atan2<P_numtype1,long double> > T_expr;
1019
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
1022
template<class P_numtype1, int N_length1, class T2>
1024
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<complex<T2> > ,
1025
_bz_atan2<P_numtype1,complex<T2> > > >
1026
atan2(const TinyVector<P_numtype1, N_length1>& d1, complex<T2> d2)
1028
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<complex<T2> > ,
1029
_bz_atan2<P_numtype1,complex<T2> > > T_expr;
1031
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
1034
template<class P_numtype2>
1036
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, VectorIterConst<P_numtype2>,
1037
_bz_atan2<int,P_numtype2> > >
1038
atan2(int d1, const Vector<P_numtype2>& d2)
1040
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, VectorIterConst<P_numtype2>,
1041
_bz_atan2<int,P_numtype2> > T_expr;
1043
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
1046
template<class P_expr2>
1048
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, _bz_VecExpr<P_expr2>,
1049
_bz_atan2<int,typename P_expr2::T_numtype> > >
1050
atan2(int d1, _bz_VecExpr<P_expr2> d2)
1052
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, _bz_VecExpr<P_expr2>,
1053
_bz_atan2<int,typename P_expr2::T_numtype> > T_expr;
1055
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2));
1058
template<class P_numtype2>
1060
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, VectorPickIterConst<P_numtype2>,
1061
_bz_atan2<int,P_numtype2> > >
1062
atan2(int d1, const VectorPick<P_numtype2>& d2)
1064
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, VectorPickIterConst<P_numtype2>,
1065
_bz_atan2<int,P_numtype2> > T_expr;
1067
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
1072
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, Range,
1073
_bz_atan2<int,int> > >
1074
atan2(int d1, Range d2)
1076
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, Range,
1077
_bz_atan2<int,int> > T_expr;
1079
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2));
1082
template<class P_numtype2, int N_length2>
1084
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, TinyVectorIterConst<P_numtype2, N_length2>,
1085
_bz_atan2<int,P_numtype2> > >
1086
atan2(int d1, const TinyVector<P_numtype2, N_length2>& d2)
1088
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, TinyVectorIterConst<P_numtype2, N_length2>,
1089
_bz_atan2<int,P_numtype2> > T_expr;
1091
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
1094
template<class P_numtype2>
1096
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, VectorIterConst<P_numtype2>,
1097
_bz_atan2<float,P_numtype2> > >
1098
atan2(float d1, const Vector<P_numtype2>& d2)
1100
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, VectorIterConst<P_numtype2>,
1101
_bz_atan2<float,P_numtype2> > T_expr;
1103
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
1106
template<class P_expr2>
1108
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, _bz_VecExpr<P_expr2>,
1109
_bz_atan2<float,typename P_expr2::T_numtype> > >
1110
atan2(float d1, _bz_VecExpr<P_expr2> d2)
1112
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, _bz_VecExpr<P_expr2>,
1113
_bz_atan2<float,typename P_expr2::T_numtype> > T_expr;
1115
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2));
1118
template<class P_numtype2>
1120
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, VectorPickIterConst<P_numtype2>,
1121
_bz_atan2<float,P_numtype2> > >
1122
atan2(float d1, const VectorPick<P_numtype2>& d2)
1124
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, VectorPickIterConst<P_numtype2>,
1125
_bz_atan2<float,P_numtype2> > T_expr;
1127
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
1132
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, Range,
1133
_bz_atan2<float,int> > >
1134
atan2(float d1, Range d2)
1136
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, Range,
1137
_bz_atan2<float,int> > T_expr;
1139
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2));
1142
template<class P_numtype2, int N_length2>
1144
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, TinyVectorIterConst<P_numtype2, N_length2>,
1145
_bz_atan2<float,P_numtype2> > >
1146
atan2(float d1, const TinyVector<P_numtype2, N_length2>& d2)
1148
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, TinyVectorIterConst<P_numtype2, N_length2>,
1149
_bz_atan2<float,P_numtype2> > T_expr;
1151
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
1154
template<class P_numtype2>
1156
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, VectorIterConst<P_numtype2>,
1157
_bz_atan2<double,P_numtype2> > >
1158
atan2(double d1, const Vector<P_numtype2>& d2)
1160
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, VectorIterConst<P_numtype2>,
1161
_bz_atan2<double,P_numtype2> > T_expr;
1163
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
1166
template<class P_expr2>
1168
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, _bz_VecExpr<P_expr2>,
1169
_bz_atan2<double,typename P_expr2::T_numtype> > >
1170
atan2(double d1, _bz_VecExpr<P_expr2> d2)
1172
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, _bz_VecExpr<P_expr2>,
1173
_bz_atan2<double,typename P_expr2::T_numtype> > T_expr;
1175
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2));
1178
template<class P_numtype2>
1180
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, VectorPickIterConst<P_numtype2>,
1181
_bz_atan2<double,P_numtype2> > >
1182
atan2(double d1, const VectorPick<P_numtype2>& d2)
1184
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, VectorPickIterConst<P_numtype2>,
1185
_bz_atan2<double,P_numtype2> > T_expr;
1187
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
1192
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, Range,
1193
_bz_atan2<double,int> > >
1194
atan2(double d1, Range d2)
1196
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, Range,
1197
_bz_atan2<double,int> > T_expr;
1199
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2));
1202
template<class P_numtype2, int N_length2>
1204
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, TinyVectorIterConst<P_numtype2, N_length2>,
1205
_bz_atan2<double,P_numtype2> > >
1206
atan2(double d1, const TinyVector<P_numtype2, N_length2>& d2)
1208
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, TinyVectorIterConst<P_numtype2, N_length2>,
1209
_bz_atan2<double,P_numtype2> > T_expr;
1211
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
1214
template<class P_numtype2>
1216
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, VectorIterConst<P_numtype2>,
1217
_bz_atan2<long double,P_numtype2> > >
1218
atan2(long double d1, const Vector<P_numtype2>& d2)
1220
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, VectorIterConst<P_numtype2>,
1221
_bz_atan2<long double,P_numtype2> > T_expr;
1223
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
1226
template<class P_expr2>
1228
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, _bz_VecExpr<P_expr2>,
1229
_bz_atan2<long double,typename P_expr2::T_numtype> > >
1230
atan2(long double d1, _bz_VecExpr<P_expr2> d2)
1232
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, _bz_VecExpr<P_expr2>,
1233
_bz_atan2<long double,typename P_expr2::T_numtype> > T_expr;
1235
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2));
1238
template<class P_numtype2>
1240
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, VectorPickIterConst<P_numtype2>,
1241
_bz_atan2<long double,P_numtype2> > >
1242
atan2(long double d1, const VectorPick<P_numtype2>& d2)
1244
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, VectorPickIterConst<P_numtype2>,
1245
_bz_atan2<long double,P_numtype2> > T_expr;
1247
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
1252
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, Range,
1253
_bz_atan2<long double,int> > >
1254
atan2(long double d1, Range d2)
1256
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, Range,
1257
_bz_atan2<long double,int> > T_expr;
1259
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2));
1262
template<class P_numtype2, int N_length2>
1264
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, TinyVectorIterConst<P_numtype2, N_length2>,
1265
_bz_atan2<long double,P_numtype2> > >
1266
atan2(long double d1, const TinyVector<P_numtype2, N_length2>& d2)
1268
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, TinyVectorIterConst<P_numtype2, N_length2>,
1269
_bz_atan2<long double,P_numtype2> > T_expr;
1271
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
1274
template<class T1, class P_numtype2>
1276
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorIterConst<P_numtype2>,
1277
_bz_atan2<complex<T1> ,P_numtype2> > >
1278
atan2(complex<T1> d1, const Vector<P_numtype2>& d2)
1280
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorIterConst<P_numtype2>,
1281
_bz_atan2<complex<T1> ,P_numtype2> > T_expr;
1283
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
1286
template<class T1, class P_expr2>
1288
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , _bz_VecExpr<P_expr2>,
1289
_bz_atan2<complex<T1> ,typename P_expr2::T_numtype> > >
1290
atan2(complex<T1> d1, _bz_VecExpr<P_expr2> d2)
1292
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , _bz_VecExpr<P_expr2>,
1293
_bz_atan2<complex<T1> ,typename P_expr2::T_numtype> > T_expr;
1295
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2));
1298
template<class T1, class P_numtype2>
1300
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorPickIterConst<P_numtype2>,
1301
_bz_atan2<complex<T1> ,P_numtype2> > >
1302
atan2(complex<T1> d1, const VectorPick<P_numtype2>& d2)
1304
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorPickIterConst<P_numtype2>,
1305
_bz_atan2<complex<T1> ,P_numtype2> > T_expr;
1307
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
1312
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , Range,
1313
_bz_atan2<complex<T1> ,int> > >
1314
atan2(complex<T1> d1, Range d2)
1316
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , Range,
1317
_bz_atan2<complex<T1> ,int> > T_expr;
1319
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2));
1322
template<class T1, class P_numtype2, int N_length2>
1324
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , TinyVectorIterConst<P_numtype2, N_length2>,
1325
_bz_atan2<complex<T1> ,P_numtype2> > >
1326
atan2(complex<T1> d1, const TinyVector<P_numtype2, N_length2>& d2)
1328
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , TinyVectorIterConst<P_numtype2, N_length2>,
1329
_bz_atan2<complex<T1> ,P_numtype2> > T_expr;
1331
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
1335
/****************************************************************************
1337
****************************************************************************/
1339
#ifdef BZ_HAVE_IEEE_MATH
1340
template<class P_numtype1>
1342
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
1343
_bz_atanh<P_numtype1> > >
1344
atanh(const Vector<P_numtype1>& d1)
1346
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
1347
_bz_atanh<P_numtype1> > T_expr;
1349
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
1352
template<class P_expr1>
1354
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
1355
_bz_atanh<typename P_expr1::T_numtype> > >
1356
atanh(_bz_VecExpr<P_expr1> d1)
1358
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
1359
_bz_atanh<typename P_expr1::T_numtype> > T_expr;
1361
return _bz_VecExpr<T_expr>(T_expr(d1));
1364
template<class P_numtype1>
1366
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
1367
_bz_atanh<P_numtype1> > >
1368
atanh(const VectorPick<P_numtype1>& d1)
1370
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
1371
_bz_atanh<P_numtype1> > T_expr;
1373
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
1378
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
1382
typedef _bz_VecExprUnaryOp<Range,
1383
_bz_atanh<int> > T_expr;
1385
return _bz_VecExpr<T_expr>(T_expr(d1));
1388
template<class P_numtype1, int N_length1>
1390
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
1391
_bz_atanh<P_numtype1> > >
1392
atanh(const TinyVector<P_numtype1, N_length1>& d1)
1394
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
1395
_bz_atanh<P_numtype1> > T_expr;
1397
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
1402
/****************************************************************************
1404
****************************************************************************/
1406
#ifdef BZ_HAVE_SYSTEM_V_MATH
1407
template<class P_numtype1>
1409
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
1410
_bz__class<P_numtype1> > >
1411
_class(const Vector<P_numtype1>& d1)
1413
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
1414
_bz__class<P_numtype1> > T_expr;
1416
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
1419
template<class P_expr1>
1421
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
1422
_bz__class<typename P_expr1::T_numtype> > >
1423
_class(_bz_VecExpr<P_expr1> d1)
1425
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
1426
_bz__class<typename P_expr1::T_numtype> > T_expr;
1428
return _bz_VecExpr<T_expr>(T_expr(d1));
1431
template<class P_numtype1>
1433
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
1434
_bz__class<P_numtype1> > >
1435
_class(const VectorPick<P_numtype1>& d1)
1437
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
1438
_bz__class<P_numtype1> > T_expr;
1440
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
1445
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
1449
typedef _bz_VecExprUnaryOp<Range,
1450
_bz__class<int> > T_expr;
1452
return _bz_VecExpr<T_expr>(T_expr(d1));
1455
template<class P_numtype1, int N_length1>
1457
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
1458
_bz__class<P_numtype1> > >
1459
_class(const TinyVector<P_numtype1, N_length1>& d1)
1461
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
1462
_bz__class<P_numtype1> > T_expr;
1464
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
1469
/****************************************************************************
1471
****************************************************************************/
1473
#ifdef BZ_HAVE_IEEE_MATH
1474
template<class P_numtype1>
1476
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
1477
_bz_cbrt<P_numtype1> > >
1478
cbrt(const Vector<P_numtype1>& d1)
1480
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
1481
_bz_cbrt<P_numtype1> > T_expr;
1483
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
1486
template<class P_expr1>
1488
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
1489
_bz_cbrt<typename P_expr1::T_numtype> > >
1490
cbrt(_bz_VecExpr<P_expr1> d1)
1492
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
1493
_bz_cbrt<typename P_expr1::T_numtype> > T_expr;
1495
return _bz_VecExpr<T_expr>(T_expr(d1));
1498
template<class P_numtype1>
1500
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
1501
_bz_cbrt<P_numtype1> > >
1502
cbrt(const VectorPick<P_numtype1>& d1)
1504
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
1505
_bz_cbrt<P_numtype1> > T_expr;
1507
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
1512
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
1516
typedef _bz_VecExprUnaryOp<Range,
1517
_bz_cbrt<int> > T_expr;
1519
return _bz_VecExpr<T_expr>(T_expr(d1));
1522
template<class P_numtype1, int N_length1>
1524
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
1525
_bz_cbrt<P_numtype1> > >
1526
cbrt(const TinyVector<P_numtype1, N_length1>& d1)
1528
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
1529
_bz_cbrt<P_numtype1> > T_expr;
1531
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
1536
/****************************************************************************
1538
****************************************************************************/
1540
template<class P_numtype1>
1542
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
1543
_bz_ceil<P_numtype1> > >
1544
ceil(const Vector<P_numtype1>& d1)
1546
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
1547
_bz_ceil<P_numtype1> > T_expr;
1549
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
1552
template<class P_expr1>
1554
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
1555
_bz_ceil<typename P_expr1::T_numtype> > >
1556
ceil(_bz_VecExpr<P_expr1> d1)
1558
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
1559
_bz_ceil<typename P_expr1::T_numtype> > T_expr;
1561
return _bz_VecExpr<T_expr>(T_expr(d1));
1564
template<class P_numtype1>
1566
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
1567
_bz_ceil<P_numtype1> > >
1568
ceil(const VectorPick<P_numtype1>& d1)
1570
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
1571
_bz_ceil<P_numtype1> > T_expr;
1573
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
1578
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
1582
typedef _bz_VecExprUnaryOp<Range,
1583
_bz_ceil<int> > T_expr;
1585
return _bz_VecExpr<T_expr>(T_expr(d1));
1588
template<class P_numtype1, int N_length1>
1590
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
1591
_bz_ceil<P_numtype1> > >
1592
ceil(const TinyVector<P_numtype1, N_length1>& d1)
1594
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
1595
_bz_ceil<P_numtype1> > T_expr;
1597
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
1601
/****************************************************************************
1603
****************************************************************************/
1605
#ifdef BZ_HAVE_COMPLEX_FCNS
1606
template<class P_numtype1>
1608
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
1609
_bz_conj<P_numtype1> > >
1610
conj(const Vector<P_numtype1>& d1)
1612
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
1613
_bz_conj<P_numtype1> > T_expr;
1615
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
1618
template<class P_expr1>
1620
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
1621
_bz_conj<typename P_expr1::T_numtype> > >
1622
conj(_bz_VecExpr<P_expr1> d1)
1624
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
1625
_bz_conj<typename P_expr1::T_numtype> > T_expr;
1627
return _bz_VecExpr<T_expr>(T_expr(d1));
1630
template<class P_numtype1>
1632
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
1633
_bz_conj<P_numtype1> > >
1634
conj(const VectorPick<P_numtype1>& d1)
1636
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
1637
_bz_conj<P_numtype1> > T_expr;
1639
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
1644
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
1648
typedef _bz_VecExprUnaryOp<Range,
1649
_bz_conj<int> > T_expr;
1651
return _bz_VecExpr<T_expr>(T_expr(d1));
1654
template<class P_numtype1, int N_length1>
1656
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
1657
_bz_conj<P_numtype1> > >
1658
conj(const TinyVector<P_numtype1, N_length1>& d1)
1660
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
1661
_bz_conj<P_numtype1> > T_expr;
1663
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
1668
/****************************************************************************
1670
****************************************************************************/
1672
#ifdef BZ_HAVE_SYSTEM_V_MATH
1673
template<class P_numtype1, class P_numtype2>
1675
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
1676
_bz_copysign<P_numtype1,P_numtype2> > >
1677
copysign(const Vector<P_numtype1>& d1, const Vector<P_numtype2>& d2)
1679
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
1680
_bz_copysign<P_numtype1,P_numtype2> > T_expr;
1682
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
1685
template<class P_numtype1, class P_expr2>
1687
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
1688
_bz_copysign<P_numtype1,typename P_expr2::T_numtype> > >
1689
copysign(const Vector<P_numtype1>& d1, _bz_VecExpr<P_expr2> d2)
1691
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
1692
_bz_copysign<P_numtype1,typename P_expr2::T_numtype> > T_expr;
1694
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
1697
template<class P_numtype1, class P_numtype2>
1699
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
1700
_bz_copysign<P_numtype1,P_numtype2> > >
1701
copysign(const Vector<P_numtype1>& d1, const VectorPick<P_numtype2>& d2)
1703
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
1704
_bz_copysign<P_numtype1,P_numtype2> > T_expr;
1706
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
1709
template<class P_numtype1>
1711
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, Range,
1712
_bz_copysign<P_numtype1,int> > >
1713
copysign(const Vector<P_numtype1>& d1, Range d2)
1715
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, Range,
1716
_bz_copysign<P_numtype1,int> > T_expr;
1718
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
1721
template<class P_numtype1, class P_numtype2, int N_length2>
1723
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
1724
_bz_copysign<P_numtype1,P_numtype2> > >
1725
copysign(const Vector<P_numtype1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
1727
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
1728
_bz_copysign<P_numtype1,P_numtype2> > T_expr;
1730
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
1733
template<class P_numtype1>
1735
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<int>,
1736
_bz_copysign<P_numtype1,int> > >
1737
copysign(const Vector<P_numtype1>& d1, int d2)
1739
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<int>,
1740
_bz_copysign<P_numtype1,int> > T_expr;
1742
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
1745
template<class P_numtype1>
1747
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<float>,
1748
_bz_copysign<P_numtype1,float> > >
1749
copysign(const Vector<P_numtype1>& d1, float d2)
1751
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<float>,
1752
_bz_copysign<P_numtype1,float> > T_expr;
1754
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
1757
template<class P_numtype1>
1759
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<double>,
1760
_bz_copysign<P_numtype1,double> > >
1761
copysign(const Vector<P_numtype1>& d1, double d2)
1763
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<double>,
1764
_bz_copysign<P_numtype1,double> > T_expr;
1766
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
1769
template<class P_numtype1>
1771
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
1772
_bz_copysign<P_numtype1,long double> > >
1773
copysign(const Vector<P_numtype1>& d1, long double d2)
1775
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
1776
_bz_copysign<P_numtype1,long double> > T_expr;
1778
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
1781
template<class P_numtype1, class T2>
1783
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
1784
_bz_copysign<P_numtype1,complex<T2> > > >
1785
copysign(const Vector<P_numtype1>& d1, complex<T2> d2)
1787
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
1788
_bz_copysign<P_numtype1,complex<T2> > > T_expr;
1790
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
1793
template<class P_expr1, class P_numtype2>
1795
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorIterConst<P_numtype2>,
1796
_bz_copysign<typename P_expr1::T_numtype,P_numtype2> > >
1797
copysign(_bz_VecExpr<P_expr1> d1, const Vector<P_numtype2>& d2)
1799
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorIterConst<P_numtype2>,
1800
_bz_copysign<typename P_expr1::T_numtype,P_numtype2> > T_expr;
1802
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
1805
template<class P_expr1, class P_expr2>
1807
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>,
1808
_bz_copysign<typename P_expr1::T_numtype,typename P_expr2::T_numtype> > >
1809
copysign(_bz_VecExpr<P_expr1> d1, _bz_VecExpr<P_expr2> d2)
1811
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>,
1812
_bz_copysign<typename P_expr1::T_numtype,typename P_expr2::T_numtype> > T_expr;
1814
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
1817
template<class P_expr1, class P_numtype2>
1819
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorPickIterConst<P_numtype2>,
1820
_bz_copysign<typename P_expr1::T_numtype,P_numtype2> > >
1821
copysign(_bz_VecExpr<P_expr1> d1, const VectorPick<P_numtype2>& d2)
1823
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorPickIterConst<P_numtype2>,
1824
_bz_copysign<typename P_expr1::T_numtype,P_numtype2> > T_expr;
1826
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
1829
template<class P_expr1>
1831
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, Range,
1832
_bz_copysign<typename P_expr1::T_numtype,int> > >
1833
copysign(_bz_VecExpr<P_expr1> d1, Range d2)
1835
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, Range,
1836
_bz_copysign<typename P_expr1::T_numtype,int> > T_expr;
1838
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
1841
template<class P_expr1, class P_numtype2, int N_length2>
1843
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, TinyVectorIterConst<P_numtype2, N_length2>,
1844
_bz_copysign<typename P_expr1::T_numtype,P_numtype2> > >
1845
copysign(_bz_VecExpr<P_expr1> d1, const TinyVector<P_numtype2, N_length2>& d2)
1847
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, TinyVectorIterConst<P_numtype2, N_length2>,
1848
_bz_copysign<typename P_expr1::T_numtype,P_numtype2> > T_expr;
1850
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
1853
template<class P_expr1>
1855
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<int>,
1856
_bz_copysign<typename P_expr1::T_numtype,int> > >
1857
copysign(_bz_VecExpr<P_expr1> d1, int d2)
1859
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<int>,
1860
_bz_copysign<typename P_expr1::T_numtype,int> > T_expr;
1862
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<int>(d2)));
1865
template<class P_expr1>
1867
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<float>,
1868
_bz_copysign<typename P_expr1::T_numtype,float> > >
1869
copysign(_bz_VecExpr<P_expr1> d1, float d2)
1871
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<float>,
1872
_bz_copysign<typename P_expr1::T_numtype,float> > T_expr;
1874
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<float>(d2)));
1877
template<class P_expr1>
1879
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<double>,
1880
_bz_copysign<typename P_expr1::T_numtype,double> > >
1881
copysign(_bz_VecExpr<P_expr1> d1, double d2)
1883
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<double>,
1884
_bz_copysign<typename P_expr1::T_numtype,double> > T_expr;
1886
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<double>(d2)));
1889
template<class P_expr1>
1891
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<long double>,
1892
_bz_copysign<typename P_expr1::T_numtype,long double> > >
1893
copysign(_bz_VecExpr<P_expr1> d1, long double d2)
1895
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<long double>,
1896
_bz_copysign<typename P_expr1::T_numtype,long double> > T_expr;
1898
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<long double>(d2)));
1901
template<class P_expr1, class T2>
1903
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<complex<T2> > ,
1904
_bz_copysign<typename P_expr1::T_numtype,complex<T2> > > >
1905
copysign(_bz_VecExpr<P_expr1> d1, complex<T2> d2)
1907
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<complex<T2> > ,
1908
_bz_copysign<typename P_expr1::T_numtype,complex<T2> > > T_expr;
1910
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<complex<T2> > (d2)));
1913
template<class P_numtype1, class P_numtype2>
1915
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
1916
_bz_copysign<P_numtype1,P_numtype2> > >
1917
copysign(const VectorPick<P_numtype1>& d1, const Vector<P_numtype2>& d2)
1919
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
1920
_bz_copysign<P_numtype1,P_numtype2> > T_expr;
1922
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
1925
template<class P_numtype1, class P_expr2>
1927
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
1928
_bz_copysign<P_numtype1,typename P_expr2::T_numtype> > >
1929
copysign(const VectorPick<P_numtype1>& d1, _bz_VecExpr<P_expr2> d2)
1931
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
1932
_bz_copysign<P_numtype1,typename P_expr2::T_numtype> > T_expr;
1934
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
1937
template<class P_numtype1, class P_numtype2>
1939
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
1940
_bz_copysign<P_numtype1,P_numtype2> > >
1941
copysign(const VectorPick<P_numtype1>& d1, const VectorPick<P_numtype2>& d2)
1943
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
1944
_bz_copysign<P_numtype1,P_numtype2> > T_expr;
1946
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
1949
template<class P_numtype1>
1951
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, Range,
1952
_bz_copysign<P_numtype1,int> > >
1953
copysign(const VectorPick<P_numtype1>& d1, Range d2)
1955
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, Range,
1956
_bz_copysign<P_numtype1,int> > T_expr;
1958
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
1961
template<class P_numtype1, class P_numtype2, int N_length2>
1963
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
1964
_bz_copysign<P_numtype1,P_numtype2> > >
1965
copysign(const VectorPick<P_numtype1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
1967
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
1968
_bz_copysign<P_numtype1,P_numtype2> > T_expr;
1970
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
1973
template<class P_numtype1>
1975
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<int>,
1976
_bz_copysign<P_numtype1,int> > >
1977
copysign(const VectorPick<P_numtype1>& d1, int d2)
1979
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<int>,
1980
_bz_copysign<P_numtype1,int> > T_expr;
1982
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
1985
template<class P_numtype1>
1987
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<float>,
1988
_bz_copysign<P_numtype1,float> > >
1989
copysign(const VectorPick<P_numtype1>& d1, float d2)
1991
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<float>,
1992
_bz_copysign<P_numtype1,float> > T_expr;
1994
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
1997
template<class P_numtype1>
1999
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<double>,
2000
_bz_copysign<P_numtype1,double> > >
2001
copysign(const VectorPick<P_numtype1>& d1, double d2)
2003
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<double>,
2004
_bz_copysign<P_numtype1,double> > T_expr;
2006
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
2009
template<class P_numtype1>
2011
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
2012
_bz_copysign<P_numtype1,long double> > >
2013
copysign(const VectorPick<P_numtype1>& d1, long double d2)
2015
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
2016
_bz_copysign<P_numtype1,long double> > T_expr;
2018
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
2021
template<class P_numtype1, class T2>
2023
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
2024
_bz_copysign<P_numtype1,complex<T2> > > >
2025
copysign(const VectorPick<P_numtype1>& d1, complex<T2> d2)
2027
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
2028
_bz_copysign<P_numtype1,complex<T2> > > T_expr;
2030
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
2033
template<class P_numtype2>
2035
_bz_VecExpr<_bz_VecExprOp<Range, VectorIterConst<P_numtype2>,
2036
_bz_copysign<int,P_numtype2> > >
2037
copysign(Range d1, const Vector<P_numtype2>& d2)
2039
typedef _bz_VecExprOp<Range, VectorIterConst<P_numtype2>,
2040
_bz_copysign<int,P_numtype2> > T_expr;
2042
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
2045
template<class P_expr2>
2047
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExpr<P_expr2>,
2048
_bz_copysign<int,typename P_expr2::T_numtype> > >
2049
copysign(Range d1, _bz_VecExpr<P_expr2> d2)
2051
typedef _bz_VecExprOp<Range, _bz_VecExpr<P_expr2>,
2052
_bz_copysign<int,typename P_expr2::T_numtype> > T_expr;
2054
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
2057
template<class P_numtype2>
2059
_bz_VecExpr<_bz_VecExprOp<Range, VectorPickIterConst<P_numtype2>,
2060
_bz_copysign<int,P_numtype2> > >
2061
copysign(Range d1, const VectorPick<P_numtype2>& d2)
2063
typedef _bz_VecExprOp<Range, VectorPickIterConst<P_numtype2>,
2064
_bz_copysign<int,P_numtype2> > T_expr;
2066
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
2071
_bz_VecExpr<_bz_VecExprOp<Range, Range,
2072
_bz_copysign<int,int> > >
2073
copysign(Range d1, Range d2)
2075
typedef _bz_VecExprOp<Range, Range,
2076
_bz_copysign<int,int> > T_expr;
2078
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
2081
template<class P_numtype2, int N_length2>
2083
_bz_VecExpr<_bz_VecExprOp<Range, TinyVectorIterConst<P_numtype2, N_length2>,
2084
_bz_copysign<int,P_numtype2> > >
2085
copysign(Range d1, const TinyVector<P_numtype2, N_length2>& d2)
2087
typedef _bz_VecExprOp<Range, TinyVectorIterConst<P_numtype2, N_length2>,
2088
_bz_copysign<int,P_numtype2> > T_expr;
2090
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
2095
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<int>,
2096
_bz_copysign<int,int> > >
2097
copysign(Range d1, int d2)
2099
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<int>,
2100
_bz_copysign<int,int> > T_expr;
2102
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<int>(d2)));
2107
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<float>,
2108
_bz_copysign<int,float> > >
2109
copysign(Range d1, float d2)
2111
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<float>,
2112
_bz_copysign<int,float> > T_expr;
2114
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<float>(d2)));
2119
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<double>,
2120
_bz_copysign<int,double> > >
2121
copysign(Range d1, double d2)
2123
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<double>,
2124
_bz_copysign<int,double> > T_expr;
2126
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<double>(d2)));
2131
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<long double>,
2132
_bz_copysign<int,long double> > >
2133
copysign(Range d1, long double d2)
2135
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<long double>,
2136
_bz_copysign<int,long double> > T_expr;
2138
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<long double>(d2)));
2143
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<complex<T2> > ,
2144
_bz_copysign<int,complex<T2> > > >
2145
copysign(Range d1, complex<T2> d2)
2147
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<complex<T2> > ,
2148
_bz_copysign<int,complex<T2> > > T_expr;
2150
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<complex<T2> > (d2)));
2153
template<class P_numtype1, int N_length1, class P_numtype2>
2155
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorIterConst<P_numtype2>,
2156
_bz_copysign<P_numtype1,P_numtype2> > >
2157
copysign(const TinyVector<P_numtype1, N_length1>& d1, const Vector<P_numtype2>& d2)
2159
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorIterConst<P_numtype2>,
2160
_bz_copysign<P_numtype1,P_numtype2> > T_expr;
2162
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
2165
template<class P_numtype1, int N_length1, class P_expr2>
2167
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>,
2168
_bz_copysign<P_numtype1,typename P_expr2::T_numtype> > >
2169
copysign(const TinyVector<P_numtype1, N_length1>& d1, _bz_VecExpr<P_expr2> d2)
2171
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>,
2172
_bz_copysign<P_numtype1,typename P_expr2::T_numtype> > T_expr;
2174
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
2177
template<class P_numtype1, int N_length1, class P_numtype2>
2179
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorPickIterConst<P_numtype2>,
2180
_bz_copysign<P_numtype1,P_numtype2> > >
2181
copysign(const TinyVector<P_numtype1, N_length1>& d1, const VectorPick<P_numtype2>& d2)
2183
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorPickIterConst<P_numtype2>,
2184
_bz_copysign<P_numtype1,P_numtype2> > T_expr;
2186
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
2189
template<class P_numtype1, int N_length1>
2191
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, Range,
2192
_bz_copysign<P_numtype1,int> > >
2193
copysign(const TinyVector<P_numtype1, N_length1>& d1, Range d2)
2195
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, Range,
2196
_bz_copysign<P_numtype1,int> > T_expr;
2198
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
2201
template<class P_numtype1, int N_length1, class P_numtype2, int N_length2>
2203
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, TinyVectorIterConst<P_numtype2, N_length2>,
2204
_bz_copysign<P_numtype1,P_numtype2> > >
2205
copysign(const TinyVector<P_numtype1, N_length1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
2207
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, TinyVectorIterConst<P_numtype2, N_length2>,
2208
_bz_copysign<P_numtype1,P_numtype2> > T_expr;
2210
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
2213
template<class P_numtype1, int N_length1>
2215
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<int>,
2216
_bz_copysign<P_numtype1,int> > >
2217
copysign(const TinyVector<P_numtype1, N_length1>& d1, int d2)
2219
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<int>,
2220
_bz_copysign<P_numtype1,int> > T_expr;
2222
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
2225
template<class P_numtype1, int N_length1>
2227
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<float>,
2228
_bz_copysign<P_numtype1,float> > >
2229
copysign(const TinyVector<P_numtype1, N_length1>& d1, float d2)
2231
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<float>,
2232
_bz_copysign<P_numtype1,float> > T_expr;
2234
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
2237
template<class P_numtype1, int N_length1>
2239
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<double>,
2240
_bz_copysign<P_numtype1,double> > >
2241
copysign(const TinyVector<P_numtype1, N_length1>& d1, double d2)
2243
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<double>,
2244
_bz_copysign<P_numtype1,double> > T_expr;
2246
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
2249
template<class P_numtype1, int N_length1>
2251
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<long double>,
2252
_bz_copysign<P_numtype1,long double> > >
2253
copysign(const TinyVector<P_numtype1, N_length1>& d1, long double d2)
2255
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<long double>,
2256
_bz_copysign<P_numtype1,long double> > T_expr;
2258
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
2261
template<class P_numtype1, int N_length1, class T2>
2263
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<complex<T2> > ,
2264
_bz_copysign<P_numtype1,complex<T2> > > >
2265
copysign(const TinyVector<P_numtype1, N_length1>& d1, complex<T2> d2)
2267
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<complex<T2> > ,
2268
_bz_copysign<P_numtype1,complex<T2> > > T_expr;
2270
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
2273
template<class P_numtype2>
2275
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, VectorIterConst<P_numtype2>,
2276
_bz_copysign<int,P_numtype2> > >
2277
copysign(int d1, const Vector<P_numtype2>& d2)
2279
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, VectorIterConst<P_numtype2>,
2280
_bz_copysign<int,P_numtype2> > T_expr;
2282
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
2285
template<class P_expr2>
2287
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, _bz_VecExpr<P_expr2>,
2288
_bz_copysign<int,typename P_expr2::T_numtype> > >
2289
copysign(int d1, _bz_VecExpr<P_expr2> d2)
2291
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, _bz_VecExpr<P_expr2>,
2292
_bz_copysign<int,typename P_expr2::T_numtype> > T_expr;
2294
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2));
2297
template<class P_numtype2>
2299
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, VectorPickIterConst<P_numtype2>,
2300
_bz_copysign<int,P_numtype2> > >
2301
copysign(int d1, const VectorPick<P_numtype2>& d2)
2303
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, VectorPickIterConst<P_numtype2>,
2304
_bz_copysign<int,P_numtype2> > T_expr;
2306
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
2311
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, Range,
2312
_bz_copysign<int,int> > >
2313
copysign(int d1, Range d2)
2315
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, Range,
2316
_bz_copysign<int,int> > T_expr;
2318
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2));
2321
template<class P_numtype2, int N_length2>
2323
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, TinyVectorIterConst<P_numtype2, N_length2>,
2324
_bz_copysign<int,P_numtype2> > >
2325
copysign(int d1, const TinyVector<P_numtype2, N_length2>& d2)
2327
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, TinyVectorIterConst<P_numtype2, N_length2>,
2328
_bz_copysign<int,P_numtype2> > T_expr;
2330
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
2333
template<class P_numtype2>
2335
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, VectorIterConst<P_numtype2>,
2336
_bz_copysign<float,P_numtype2> > >
2337
copysign(float d1, const Vector<P_numtype2>& d2)
2339
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, VectorIterConst<P_numtype2>,
2340
_bz_copysign<float,P_numtype2> > T_expr;
2342
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
2345
template<class P_expr2>
2347
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, _bz_VecExpr<P_expr2>,
2348
_bz_copysign<float,typename P_expr2::T_numtype> > >
2349
copysign(float d1, _bz_VecExpr<P_expr2> d2)
2351
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, _bz_VecExpr<P_expr2>,
2352
_bz_copysign<float,typename P_expr2::T_numtype> > T_expr;
2354
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2));
2357
template<class P_numtype2>
2359
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, VectorPickIterConst<P_numtype2>,
2360
_bz_copysign<float,P_numtype2> > >
2361
copysign(float d1, const VectorPick<P_numtype2>& d2)
2363
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, VectorPickIterConst<P_numtype2>,
2364
_bz_copysign<float,P_numtype2> > T_expr;
2366
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
2371
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, Range,
2372
_bz_copysign<float,int> > >
2373
copysign(float d1, Range d2)
2375
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, Range,
2376
_bz_copysign<float,int> > T_expr;
2378
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2));
2381
template<class P_numtype2, int N_length2>
2383
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, TinyVectorIterConst<P_numtype2, N_length2>,
2384
_bz_copysign<float,P_numtype2> > >
2385
copysign(float d1, const TinyVector<P_numtype2, N_length2>& d2)
2387
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, TinyVectorIterConst<P_numtype2, N_length2>,
2388
_bz_copysign<float,P_numtype2> > T_expr;
2390
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
2393
template<class P_numtype2>
2395
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, VectorIterConst<P_numtype2>,
2396
_bz_copysign<double,P_numtype2> > >
2397
copysign(double d1, const Vector<P_numtype2>& d2)
2399
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, VectorIterConst<P_numtype2>,
2400
_bz_copysign<double,P_numtype2> > T_expr;
2402
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
2405
template<class P_expr2>
2407
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, _bz_VecExpr<P_expr2>,
2408
_bz_copysign<double,typename P_expr2::T_numtype> > >
2409
copysign(double d1, _bz_VecExpr<P_expr2> d2)
2411
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, _bz_VecExpr<P_expr2>,
2412
_bz_copysign<double,typename P_expr2::T_numtype> > T_expr;
2414
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2));
2417
template<class P_numtype2>
2419
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, VectorPickIterConst<P_numtype2>,
2420
_bz_copysign<double,P_numtype2> > >
2421
copysign(double d1, const VectorPick<P_numtype2>& d2)
2423
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, VectorPickIterConst<P_numtype2>,
2424
_bz_copysign<double,P_numtype2> > T_expr;
2426
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
2431
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, Range,
2432
_bz_copysign<double,int> > >
2433
copysign(double d1, Range d2)
2435
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, Range,
2436
_bz_copysign<double,int> > T_expr;
2438
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2));
2441
template<class P_numtype2, int N_length2>
2443
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, TinyVectorIterConst<P_numtype2, N_length2>,
2444
_bz_copysign<double,P_numtype2> > >
2445
copysign(double d1, const TinyVector<P_numtype2, N_length2>& d2)
2447
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, TinyVectorIterConst<P_numtype2, N_length2>,
2448
_bz_copysign<double,P_numtype2> > T_expr;
2450
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
2453
template<class P_numtype2>
2455
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, VectorIterConst<P_numtype2>,
2456
_bz_copysign<long double,P_numtype2> > >
2457
copysign(long double d1, const Vector<P_numtype2>& d2)
2459
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, VectorIterConst<P_numtype2>,
2460
_bz_copysign<long double,P_numtype2> > T_expr;
2462
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
2465
template<class P_expr2>
2467
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, _bz_VecExpr<P_expr2>,
2468
_bz_copysign<long double,typename P_expr2::T_numtype> > >
2469
copysign(long double d1, _bz_VecExpr<P_expr2> d2)
2471
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, _bz_VecExpr<P_expr2>,
2472
_bz_copysign<long double,typename P_expr2::T_numtype> > T_expr;
2474
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2));
2477
template<class P_numtype2>
2479
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, VectorPickIterConst<P_numtype2>,
2480
_bz_copysign<long double,P_numtype2> > >
2481
copysign(long double d1, const VectorPick<P_numtype2>& d2)
2483
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, VectorPickIterConst<P_numtype2>,
2484
_bz_copysign<long double,P_numtype2> > T_expr;
2486
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
2491
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, Range,
2492
_bz_copysign<long double,int> > >
2493
copysign(long double d1, Range d2)
2495
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, Range,
2496
_bz_copysign<long double,int> > T_expr;
2498
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2));
2501
template<class P_numtype2, int N_length2>
2503
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, TinyVectorIterConst<P_numtype2, N_length2>,
2504
_bz_copysign<long double,P_numtype2> > >
2505
copysign(long double d1, const TinyVector<P_numtype2, N_length2>& d2)
2507
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, TinyVectorIterConst<P_numtype2, N_length2>,
2508
_bz_copysign<long double,P_numtype2> > T_expr;
2510
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
2513
template<class T1, class P_numtype2>
2515
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorIterConst<P_numtype2>,
2516
_bz_copysign<complex<T1> ,P_numtype2> > >
2517
copysign(complex<T1> d1, const Vector<P_numtype2>& d2)
2519
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorIterConst<P_numtype2>,
2520
_bz_copysign<complex<T1> ,P_numtype2> > T_expr;
2522
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
2525
template<class T1, class P_expr2>
2527
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , _bz_VecExpr<P_expr2>,
2528
_bz_copysign<complex<T1> ,typename P_expr2::T_numtype> > >
2529
copysign(complex<T1> d1, _bz_VecExpr<P_expr2> d2)
2531
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , _bz_VecExpr<P_expr2>,
2532
_bz_copysign<complex<T1> ,typename P_expr2::T_numtype> > T_expr;
2534
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2));
2537
template<class T1, class P_numtype2>
2539
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorPickIterConst<P_numtype2>,
2540
_bz_copysign<complex<T1> ,P_numtype2> > >
2541
copysign(complex<T1> d1, const VectorPick<P_numtype2>& d2)
2543
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorPickIterConst<P_numtype2>,
2544
_bz_copysign<complex<T1> ,P_numtype2> > T_expr;
2546
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
2551
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , Range,
2552
_bz_copysign<complex<T1> ,int> > >
2553
copysign(complex<T1> d1, Range d2)
2555
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , Range,
2556
_bz_copysign<complex<T1> ,int> > T_expr;
2558
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2));
2561
template<class T1, class P_numtype2, int N_length2>
2563
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , TinyVectorIterConst<P_numtype2, N_length2>,
2564
_bz_copysign<complex<T1> ,P_numtype2> > >
2565
copysign(complex<T1> d1, const TinyVector<P_numtype2, N_length2>& d2)
2567
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , TinyVectorIterConst<P_numtype2, N_length2>,
2568
_bz_copysign<complex<T1> ,P_numtype2> > T_expr;
2570
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
2575
/****************************************************************************
2577
****************************************************************************/
2579
template<class P_numtype1>
2581
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
2582
_bz_cos<P_numtype1> > >
2583
cos(const Vector<P_numtype1>& d1)
2585
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
2586
_bz_cos<P_numtype1> > T_expr;
2588
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
2591
template<class P_expr1>
2593
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
2594
_bz_cos<typename P_expr1::T_numtype> > >
2595
cos(_bz_VecExpr<P_expr1> d1)
2597
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
2598
_bz_cos<typename P_expr1::T_numtype> > T_expr;
2600
return _bz_VecExpr<T_expr>(T_expr(d1));
2603
template<class P_numtype1>
2605
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
2606
_bz_cos<P_numtype1> > >
2607
cos(const VectorPick<P_numtype1>& d1)
2609
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
2610
_bz_cos<P_numtype1> > T_expr;
2612
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
2617
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
2621
typedef _bz_VecExprUnaryOp<Range,
2622
_bz_cos<int> > T_expr;
2624
return _bz_VecExpr<T_expr>(T_expr(d1));
2627
template<class P_numtype1, int N_length1>
2629
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
2630
_bz_cos<P_numtype1> > >
2631
cos(const TinyVector<P_numtype1, N_length1>& d1)
2633
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
2634
_bz_cos<P_numtype1> > T_expr;
2636
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
2640
/****************************************************************************
2642
****************************************************************************/
2644
template<class P_numtype1>
2646
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
2647
_bz_cosh<P_numtype1> > >
2648
cosh(const Vector<P_numtype1>& d1)
2650
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
2651
_bz_cosh<P_numtype1> > T_expr;
2653
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
2656
template<class P_expr1>
2658
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
2659
_bz_cosh<typename P_expr1::T_numtype> > >
2660
cosh(_bz_VecExpr<P_expr1> d1)
2662
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
2663
_bz_cosh<typename P_expr1::T_numtype> > T_expr;
2665
return _bz_VecExpr<T_expr>(T_expr(d1));
2668
template<class P_numtype1>
2670
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
2671
_bz_cosh<P_numtype1> > >
2672
cosh(const VectorPick<P_numtype1>& d1)
2674
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
2675
_bz_cosh<P_numtype1> > T_expr;
2677
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
2682
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
2686
typedef _bz_VecExprUnaryOp<Range,
2687
_bz_cosh<int> > T_expr;
2689
return _bz_VecExpr<T_expr>(T_expr(d1));
2692
template<class P_numtype1, int N_length1>
2694
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
2695
_bz_cosh<P_numtype1> > >
2696
cosh(const TinyVector<P_numtype1, N_length1>& d1)
2698
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
2699
_bz_cosh<P_numtype1> > T_expr;
2701
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
2705
/****************************************************************************
2707
****************************************************************************/
2709
#ifdef BZ_HAVE_SYSTEM_V_MATH
2710
template<class P_numtype1, class P_numtype2>
2712
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
2713
_bz_drem<P_numtype1,P_numtype2> > >
2714
drem(const Vector<P_numtype1>& d1, const Vector<P_numtype2>& d2)
2716
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
2717
_bz_drem<P_numtype1,P_numtype2> > T_expr;
2719
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
2722
template<class P_numtype1, class P_expr2>
2724
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
2725
_bz_drem<P_numtype1,typename P_expr2::T_numtype> > >
2726
drem(const Vector<P_numtype1>& d1, _bz_VecExpr<P_expr2> d2)
2728
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
2729
_bz_drem<P_numtype1,typename P_expr2::T_numtype> > T_expr;
2731
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
2734
template<class P_numtype1, class P_numtype2>
2736
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
2737
_bz_drem<P_numtype1,P_numtype2> > >
2738
drem(const Vector<P_numtype1>& d1, const VectorPick<P_numtype2>& d2)
2740
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
2741
_bz_drem<P_numtype1,P_numtype2> > T_expr;
2743
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
2746
template<class P_numtype1>
2748
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, Range,
2749
_bz_drem<P_numtype1,int> > >
2750
drem(const Vector<P_numtype1>& d1, Range d2)
2752
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, Range,
2753
_bz_drem<P_numtype1,int> > T_expr;
2755
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
2758
template<class P_numtype1, class P_numtype2, int N_length2>
2760
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
2761
_bz_drem<P_numtype1,P_numtype2> > >
2762
drem(const Vector<P_numtype1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
2764
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
2765
_bz_drem<P_numtype1,P_numtype2> > T_expr;
2767
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
2770
template<class P_numtype1>
2772
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<int>,
2773
_bz_drem<P_numtype1,int> > >
2774
drem(const Vector<P_numtype1>& d1, int d2)
2776
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<int>,
2777
_bz_drem<P_numtype1,int> > T_expr;
2779
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
2782
template<class P_numtype1>
2784
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<float>,
2785
_bz_drem<P_numtype1,float> > >
2786
drem(const Vector<P_numtype1>& d1, float d2)
2788
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<float>,
2789
_bz_drem<P_numtype1,float> > T_expr;
2791
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
2794
template<class P_numtype1>
2796
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<double>,
2797
_bz_drem<P_numtype1,double> > >
2798
drem(const Vector<P_numtype1>& d1, double d2)
2800
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<double>,
2801
_bz_drem<P_numtype1,double> > T_expr;
2803
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
2806
template<class P_numtype1>
2808
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
2809
_bz_drem<P_numtype1,long double> > >
2810
drem(const Vector<P_numtype1>& d1, long double d2)
2812
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
2813
_bz_drem<P_numtype1,long double> > T_expr;
2815
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
2818
template<class P_numtype1, class T2>
2820
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
2821
_bz_drem<P_numtype1,complex<T2> > > >
2822
drem(const Vector<P_numtype1>& d1, complex<T2> d2)
2824
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
2825
_bz_drem<P_numtype1,complex<T2> > > T_expr;
2827
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
2830
template<class P_expr1, class P_numtype2>
2832
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorIterConst<P_numtype2>,
2833
_bz_drem<typename P_expr1::T_numtype,P_numtype2> > >
2834
drem(_bz_VecExpr<P_expr1> d1, const Vector<P_numtype2>& d2)
2836
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorIterConst<P_numtype2>,
2837
_bz_drem<typename P_expr1::T_numtype,P_numtype2> > T_expr;
2839
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
2842
template<class P_expr1, class P_expr2>
2844
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>,
2845
_bz_drem<typename P_expr1::T_numtype,typename P_expr2::T_numtype> > >
2846
drem(_bz_VecExpr<P_expr1> d1, _bz_VecExpr<P_expr2> d2)
2848
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>,
2849
_bz_drem<typename P_expr1::T_numtype,typename P_expr2::T_numtype> > T_expr;
2851
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
2854
template<class P_expr1, class P_numtype2>
2856
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorPickIterConst<P_numtype2>,
2857
_bz_drem<typename P_expr1::T_numtype,P_numtype2> > >
2858
drem(_bz_VecExpr<P_expr1> d1, const VectorPick<P_numtype2>& d2)
2860
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorPickIterConst<P_numtype2>,
2861
_bz_drem<typename P_expr1::T_numtype,P_numtype2> > T_expr;
2863
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
2866
template<class P_expr1>
2868
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, Range,
2869
_bz_drem<typename P_expr1::T_numtype,int> > >
2870
drem(_bz_VecExpr<P_expr1> d1, Range d2)
2872
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, Range,
2873
_bz_drem<typename P_expr1::T_numtype,int> > T_expr;
2875
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
2878
template<class P_expr1, class P_numtype2, int N_length2>
2880
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, TinyVectorIterConst<P_numtype2, N_length2>,
2881
_bz_drem<typename P_expr1::T_numtype,P_numtype2> > >
2882
drem(_bz_VecExpr<P_expr1> d1, const TinyVector<P_numtype2, N_length2>& d2)
2884
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, TinyVectorIterConst<P_numtype2, N_length2>,
2885
_bz_drem<typename P_expr1::T_numtype,P_numtype2> > T_expr;
2887
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
2890
template<class P_expr1>
2892
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<int>,
2893
_bz_drem<typename P_expr1::T_numtype,int> > >
2894
drem(_bz_VecExpr<P_expr1> d1, int d2)
2896
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<int>,
2897
_bz_drem<typename P_expr1::T_numtype,int> > T_expr;
2899
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<int>(d2)));
2902
template<class P_expr1>
2904
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<float>,
2905
_bz_drem<typename P_expr1::T_numtype,float> > >
2906
drem(_bz_VecExpr<P_expr1> d1, float d2)
2908
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<float>,
2909
_bz_drem<typename P_expr1::T_numtype,float> > T_expr;
2911
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<float>(d2)));
2914
template<class P_expr1>
2916
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<double>,
2917
_bz_drem<typename P_expr1::T_numtype,double> > >
2918
drem(_bz_VecExpr<P_expr1> d1, double d2)
2920
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<double>,
2921
_bz_drem<typename P_expr1::T_numtype,double> > T_expr;
2923
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<double>(d2)));
2926
template<class P_expr1>
2928
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<long double>,
2929
_bz_drem<typename P_expr1::T_numtype,long double> > >
2930
drem(_bz_VecExpr<P_expr1> d1, long double d2)
2932
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<long double>,
2933
_bz_drem<typename P_expr1::T_numtype,long double> > T_expr;
2935
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<long double>(d2)));
2938
template<class P_expr1, class T2>
2940
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<complex<T2> > ,
2941
_bz_drem<typename P_expr1::T_numtype,complex<T2> > > >
2942
drem(_bz_VecExpr<P_expr1> d1, complex<T2> d2)
2944
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<complex<T2> > ,
2945
_bz_drem<typename P_expr1::T_numtype,complex<T2> > > T_expr;
2947
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<complex<T2> > (d2)));
2950
template<class P_numtype1, class P_numtype2>
2952
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
2953
_bz_drem<P_numtype1,P_numtype2> > >
2954
drem(const VectorPick<P_numtype1>& d1, const Vector<P_numtype2>& d2)
2956
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
2957
_bz_drem<P_numtype1,P_numtype2> > T_expr;
2959
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
2962
template<class P_numtype1, class P_expr2>
2964
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
2965
_bz_drem<P_numtype1,typename P_expr2::T_numtype> > >
2966
drem(const VectorPick<P_numtype1>& d1, _bz_VecExpr<P_expr2> d2)
2968
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
2969
_bz_drem<P_numtype1,typename P_expr2::T_numtype> > T_expr;
2971
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
2974
template<class P_numtype1, class P_numtype2>
2976
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
2977
_bz_drem<P_numtype1,P_numtype2> > >
2978
drem(const VectorPick<P_numtype1>& d1, const VectorPick<P_numtype2>& d2)
2980
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
2981
_bz_drem<P_numtype1,P_numtype2> > T_expr;
2983
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
2986
template<class P_numtype1>
2988
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, Range,
2989
_bz_drem<P_numtype1,int> > >
2990
drem(const VectorPick<P_numtype1>& d1, Range d2)
2992
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, Range,
2993
_bz_drem<P_numtype1,int> > T_expr;
2995
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
2998
template<class P_numtype1, class P_numtype2, int N_length2>
3000
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
3001
_bz_drem<P_numtype1,P_numtype2> > >
3002
drem(const VectorPick<P_numtype1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
3004
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
3005
_bz_drem<P_numtype1,P_numtype2> > T_expr;
3007
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
3010
template<class P_numtype1>
3012
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<int>,
3013
_bz_drem<P_numtype1,int> > >
3014
drem(const VectorPick<P_numtype1>& d1, int d2)
3016
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<int>,
3017
_bz_drem<P_numtype1,int> > T_expr;
3019
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
3022
template<class P_numtype1>
3024
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<float>,
3025
_bz_drem<P_numtype1,float> > >
3026
drem(const VectorPick<P_numtype1>& d1, float d2)
3028
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<float>,
3029
_bz_drem<P_numtype1,float> > T_expr;
3031
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
3034
template<class P_numtype1>
3036
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<double>,
3037
_bz_drem<P_numtype1,double> > >
3038
drem(const VectorPick<P_numtype1>& d1, double d2)
3040
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<double>,
3041
_bz_drem<P_numtype1,double> > T_expr;
3043
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
3046
template<class P_numtype1>
3048
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
3049
_bz_drem<P_numtype1,long double> > >
3050
drem(const VectorPick<P_numtype1>& d1, long double d2)
3052
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
3053
_bz_drem<P_numtype1,long double> > T_expr;
3055
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
3058
template<class P_numtype1, class T2>
3060
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
3061
_bz_drem<P_numtype1,complex<T2> > > >
3062
drem(const VectorPick<P_numtype1>& d1, complex<T2> d2)
3064
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
3065
_bz_drem<P_numtype1,complex<T2> > > T_expr;
3067
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
3070
template<class P_numtype2>
3072
_bz_VecExpr<_bz_VecExprOp<Range, VectorIterConst<P_numtype2>,
3073
_bz_drem<int,P_numtype2> > >
3074
drem(Range d1, const Vector<P_numtype2>& d2)
3076
typedef _bz_VecExprOp<Range, VectorIterConst<P_numtype2>,
3077
_bz_drem<int,P_numtype2> > T_expr;
3079
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
3082
template<class P_expr2>
3084
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExpr<P_expr2>,
3085
_bz_drem<int,typename P_expr2::T_numtype> > >
3086
drem(Range d1, _bz_VecExpr<P_expr2> d2)
3088
typedef _bz_VecExprOp<Range, _bz_VecExpr<P_expr2>,
3089
_bz_drem<int,typename P_expr2::T_numtype> > T_expr;
3091
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
3094
template<class P_numtype2>
3096
_bz_VecExpr<_bz_VecExprOp<Range, VectorPickIterConst<P_numtype2>,
3097
_bz_drem<int,P_numtype2> > >
3098
drem(Range d1, const VectorPick<P_numtype2>& d2)
3100
typedef _bz_VecExprOp<Range, VectorPickIterConst<P_numtype2>,
3101
_bz_drem<int,P_numtype2> > T_expr;
3103
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
3108
_bz_VecExpr<_bz_VecExprOp<Range, Range,
3109
_bz_drem<int,int> > >
3110
drem(Range d1, Range d2)
3112
typedef _bz_VecExprOp<Range, Range,
3113
_bz_drem<int,int> > T_expr;
3115
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
3118
template<class P_numtype2, int N_length2>
3120
_bz_VecExpr<_bz_VecExprOp<Range, TinyVectorIterConst<P_numtype2, N_length2>,
3121
_bz_drem<int,P_numtype2> > >
3122
drem(Range d1, const TinyVector<P_numtype2, N_length2>& d2)
3124
typedef _bz_VecExprOp<Range, TinyVectorIterConst<P_numtype2, N_length2>,
3125
_bz_drem<int,P_numtype2> > T_expr;
3127
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
3132
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<int>,
3133
_bz_drem<int,int> > >
3134
drem(Range d1, int d2)
3136
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<int>,
3137
_bz_drem<int,int> > T_expr;
3139
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<int>(d2)));
3144
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<float>,
3145
_bz_drem<int,float> > >
3146
drem(Range d1, float d2)
3148
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<float>,
3149
_bz_drem<int,float> > T_expr;
3151
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<float>(d2)));
3156
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<double>,
3157
_bz_drem<int,double> > >
3158
drem(Range d1, double d2)
3160
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<double>,
3161
_bz_drem<int,double> > T_expr;
3163
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<double>(d2)));
3168
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<long double>,
3169
_bz_drem<int,long double> > >
3170
drem(Range d1, long double d2)
3172
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<long double>,
3173
_bz_drem<int,long double> > T_expr;
3175
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<long double>(d2)));
3180
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<complex<T2> > ,
3181
_bz_drem<int,complex<T2> > > >
3182
drem(Range d1, complex<T2> d2)
3184
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<complex<T2> > ,
3185
_bz_drem<int,complex<T2> > > T_expr;
3187
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<complex<T2> > (d2)));
3190
template<class P_numtype1, int N_length1, class P_numtype2>
3192
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorIterConst<P_numtype2>,
3193
_bz_drem<P_numtype1,P_numtype2> > >
3194
drem(const TinyVector<P_numtype1, N_length1>& d1, const Vector<P_numtype2>& d2)
3196
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorIterConst<P_numtype2>,
3197
_bz_drem<P_numtype1,P_numtype2> > T_expr;
3199
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
3202
template<class P_numtype1, int N_length1, class P_expr2>
3204
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>,
3205
_bz_drem<P_numtype1,typename P_expr2::T_numtype> > >
3206
drem(const TinyVector<P_numtype1, N_length1>& d1, _bz_VecExpr<P_expr2> d2)
3208
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>,
3209
_bz_drem<P_numtype1,typename P_expr2::T_numtype> > T_expr;
3211
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
3214
template<class P_numtype1, int N_length1, class P_numtype2>
3216
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorPickIterConst<P_numtype2>,
3217
_bz_drem<P_numtype1,P_numtype2> > >
3218
drem(const TinyVector<P_numtype1, N_length1>& d1, const VectorPick<P_numtype2>& d2)
3220
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorPickIterConst<P_numtype2>,
3221
_bz_drem<P_numtype1,P_numtype2> > T_expr;
3223
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
3226
template<class P_numtype1, int N_length1>
3228
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, Range,
3229
_bz_drem<P_numtype1,int> > >
3230
drem(const TinyVector<P_numtype1, N_length1>& d1, Range d2)
3232
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, Range,
3233
_bz_drem<P_numtype1,int> > T_expr;
3235
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
3238
template<class P_numtype1, int N_length1, class P_numtype2, int N_length2>
3240
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, TinyVectorIterConst<P_numtype2, N_length2>,
3241
_bz_drem<P_numtype1,P_numtype2> > >
3242
drem(const TinyVector<P_numtype1, N_length1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
3244
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, TinyVectorIterConst<P_numtype2, N_length2>,
3245
_bz_drem<P_numtype1,P_numtype2> > T_expr;
3247
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
3250
template<class P_numtype1, int N_length1>
3252
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<int>,
3253
_bz_drem<P_numtype1,int> > >
3254
drem(const TinyVector<P_numtype1, N_length1>& d1, int d2)
3256
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<int>,
3257
_bz_drem<P_numtype1,int> > T_expr;
3259
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
3262
template<class P_numtype1, int N_length1>
3264
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<float>,
3265
_bz_drem<P_numtype1,float> > >
3266
drem(const TinyVector<P_numtype1, N_length1>& d1, float d2)
3268
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<float>,
3269
_bz_drem<P_numtype1,float> > T_expr;
3271
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
3274
template<class P_numtype1, int N_length1>
3276
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<double>,
3277
_bz_drem<P_numtype1,double> > >
3278
drem(const TinyVector<P_numtype1, N_length1>& d1, double d2)
3280
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<double>,
3281
_bz_drem<P_numtype1,double> > T_expr;
3283
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
3286
template<class P_numtype1, int N_length1>
3288
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<long double>,
3289
_bz_drem<P_numtype1,long double> > >
3290
drem(const TinyVector<P_numtype1, N_length1>& d1, long double d2)
3292
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<long double>,
3293
_bz_drem<P_numtype1,long double> > T_expr;
3295
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
3298
template<class P_numtype1, int N_length1, class T2>
3300
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<complex<T2> > ,
3301
_bz_drem<P_numtype1,complex<T2> > > >
3302
drem(const TinyVector<P_numtype1, N_length1>& d1, complex<T2> d2)
3304
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<complex<T2> > ,
3305
_bz_drem<P_numtype1,complex<T2> > > T_expr;
3307
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
3310
template<class P_numtype2>
3312
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, VectorIterConst<P_numtype2>,
3313
_bz_drem<int,P_numtype2> > >
3314
drem(int d1, const Vector<P_numtype2>& d2)
3316
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, VectorIterConst<P_numtype2>,
3317
_bz_drem<int,P_numtype2> > T_expr;
3319
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
3322
template<class P_expr2>
3324
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, _bz_VecExpr<P_expr2>,
3325
_bz_drem<int,typename P_expr2::T_numtype> > >
3326
drem(int d1, _bz_VecExpr<P_expr2> d2)
3328
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, _bz_VecExpr<P_expr2>,
3329
_bz_drem<int,typename P_expr2::T_numtype> > T_expr;
3331
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2));
3334
template<class P_numtype2>
3336
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, VectorPickIterConst<P_numtype2>,
3337
_bz_drem<int,P_numtype2> > >
3338
drem(int d1, const VectorPick<P_numtype2>& d2)
3340
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, VectorPickIterConst<P_numtype2>,
3341
_bz_drem<int,P_numtype2> > T_expr;
3343
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
3348
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, Range,
3349
_bz_drem<int,int> > >
3350
drem(int d1, Range d2)
3352
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, Range,
3353
_bz_drem<int,int> > T_expr;
3355
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2));
3358
template<class P_numtype2, int N_length2>
3360
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, TinyVectorIterConst<P_numtype2, N_length2>,
3361
_bz_drem<int,P_numtype2> > >
3362
drem(int d1, const TinyVector<P_numtype2, N_length2>& d2)
3364
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, TinyVectorIterConst<P_numtype2, N_length2>,
3365
_bz_drem<int,P_numtype2> > T_expr;
3367
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
3370
template<class P_numtype2>
3372
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, VectorIterConst<P_numtype2>,
3373
_bz_drem<float,P_numtype2> > >
3374
drem(float d1, const Vector<P_numtype2>& d2)
3376
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, VectorIterConst<P_numtype2>,
3377
_bz_drem<float,P_numtype2> > T_expr;
3379
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
3382
template<class P_expr2>
3384
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, _bz_VecExpr<P_expr2>,
3385
_bz_drem<float,typename P_expr2::T_numtype> > >
3386
drem(float d1, _bz_VecExpr<P_expr2> d2)
3388
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, _bz_VecExpr<P_expr2>,
3389
_bz_drem<float,typename P_expr2::T_numtype> > T_expr;
3391
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2));
3394
template<class P_numtype2>
3396
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, VectorPickIterConst<P_numtype2>,
3397
_bz_drem<float,P_numtype2> > >
3398
drem(float d1, const VectorPick<P_numtype2>& d2)
3400
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, VectorPickIterConst<P_numtype2>,
3401
_bz_drem<float,P_numtype2> > T_expr;
3403
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
3408
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, Range,
3409
_bz_drem<float,int> > >
3410
drem(float d1, Range d2)
3412
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, Range,
3413
_bz_drem<float,int> > T_expr;
3415
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2));
3418
template<class P_numtype2, int N_length2>
3420
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, TinyVectorIterConst<P_numtype2, N_length2>,
3421
_bz_drem<float,P_numtype2> > >
3422
drem(float d1, const TinyVector<P_numtype2, N_length2>& d2)
3424
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, TinyVectorIterConst<P_numtype2, N_length2>,
3425
_bz_drem<float,P_numtype2> > T_expr;
3427
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
3430
template<class P_numtype2>
3432
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, VectorIterConst<P_numtype2>,
3433
_bz_drem<double,P_numtype2> > >
3434
drem(double d1, const Vector<P_numtype2>& d2)
3436
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, VectorIterConst<P_numtype2>,
3437
_bz_drem<double,P_numtype2> > T_expr;
3439
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
3442
template<class P_expr2>
3444
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, _bz_VecExpr<P_expr2>,
3445
_bz_drem<double,typename P_expr2::T_numtype> > >
3446
drem(double d1, _bz_VecExpr<P_expr2> d2)
3448
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, _bz_VecExpr<P_expr2>,
3449
_bz_drem<double,typename P_expr2::T_numtype> > T_expr;
3451
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2));
3454
template<class P_numtype2>
3456
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, VectorPickIterConst<P_numtype2>,
3457
_bz_drem<double,P_numtype2> > >
3458
drem(double d1, const VectorPick<P_numtype2>& d2)
3460
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, VectorPickIterConst<P_numtype2>,
3461
_bz_drem<double,P_numtype2> > T_expr;
3463
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
3468
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, Range,
3469
_bz_drem<double,int> > >
3470
drem(double d1, Range d2)
3472
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, Range,
3473
_bz_drem<double,int> > T_expr;
3475
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2));
3478
template<class P_numtype2, int N_length2>
3480
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, TinyVectorIterConst<P_numtype2, N_length2>,
3481
_bz_drem<double,P_numtype2> > >
3482
drem(double d1, const TinyVector<P_numtype2, N_length2>& d2)
3484
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, TinyVectorIterConst<P_numtype2, N_length2>,
3485
_bz_drem<double,P_numtype2> > T_expr;
3487
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
3490
template<class P_numtype2>
3492
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, VectorIterConst<P_numtype2>,
3493
_bz_drem<long double,P_numtype2> > >
3494
drem(long double d1, const Vector<P_numtype2>& d2)
3496
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, VectorIterConst<P_numtype2>,
3497
_bz_drem<long double,P_numtype2> > T_expr;
3499
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
3502
template<class P_expr2>
3504
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, _bz_VecExpr<P_expr2>,
3505
_bz_drem<long double,typename P_expr2::T_numtype> > >
3506
drem(long double d1, _bz_VecExpr<P_expr2> d2)
3508
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, _bz_VecExpr<P_expr2>,
3509
_bz_drem<long double,typename P_expr2::T_numtype> > T_expr;
3511
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2));
3514
template<class P_numtype2>
3516
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, VectorPickIterConst<P_numtype2>,
3517
_bz_drem<long double,P_numtype2> > >
3518
drem(long double d1, const VectorPick<P_numtype2>& d2)
3520
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, VectorPickIterConst<P_numtype2>,
3521
_bz_drem<long double,P_numtype2> > T_expr;
3523
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
3528
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, Range,
3529
_bz_drem<long double,int> > >
3530
drem(long double d1, Range d2)
3532
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, Range,
3533
_bz_drem<long double,int> > T_expr;
3535
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2));
3538
template<class P_numtype2, int N_length2>
3540
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, TinyVectorIterConst<P_numtype2, N_length2>,
3541
_bz_drem<long double,P_numtype2> > >
3542
drem(long double d1, const TinyVector<P_numtype2, N_length2>& d2)
3544
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, TinyVectorIterConst<P_numtype2, N_length2>,
3545
_bz_drem<long double,P_numtype2> > T_expr;
3547
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
3550
template<class T1, class P_numtype2>
3552
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorIterConst<P_numtype2>,
3553
_bz_drem<complex<T1> ,P_numtype2> > >
3554
drem(complex<T1> d1, const Vector<P_numtype2>& d2)
3556
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorIterConst<P_numtype2>,
3557
_bz_drem<complex<T1> ,P_numtype2> > T_expr;
3559
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
3562
template<class T1, class P_expr2>
3564
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , _bz_VecExpr<P_expr2>,
3565
_bz_drem<complex<T1> ,typename P_expr2::T_numtype> > >
3566
drem(complex<T1> d1, _bz_VecExpr<P_expr2> d2)
3568
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , _bz_VecExpr<P_expr2>,
3569
_bz_drem<complex<T1> ,typename P_expr2::T_numtype> > T_expr;
3571
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2));
3574
template<class T1, class P_numtype2>
3576
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorPickIterConst<P_numtype2>,
3577
_bz_drem<complex<T1> ,P_numtype2> > >
3578
drem(complex<T1> d1, const VectorPick<P_numtype2>& d2)
3580
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorPickIterConst<P_numtype2>,
3581
_bz_drem<complex<T1> ,P_numtype2> > T_expr;
3583
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
3588
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , Range,
3589
_bz_drem<complex<T1> ,int> > >
3590
drem(complex<T1> d1, Range d2)
3592
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , Range,
3593
_bz_drem<complex<T1> ,int> > T_expr;
3595
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2));
3598
template<class T1, class P_numtype2, int N_length2>
3600
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , TinyVectorIterConst<P_numtype2, N_length2>,
3601
_bz_drem<complex<T1> ,P_numtype2> > >
3602
drem(complex<T1> d1, const TinyVector<P_numtype2, N_length2>& d2)
3604
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , TinyVectorIterConst<P_numtype2, N_length2>,
3605
_bz_drem<complex<T1> ,P_numtype2> > T_expr;
3607
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
3612
/****************************************************************************
3614
****************************************************************************/
3616
template<class P_numtype1>
3618
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
3619
_bz_exp<P_numtype1> > >
3620
exp(const Vector<P_numtype1>& d1)
3622
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
3623
_bz_exp<P_numtype1> > T_expr;
3625
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
3628
template<class P_expr1>
3630
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
3631
_bz_exp<typename P_expr1::T_numtype> > >
3632
exp(_bz_VecExpr<P_expr1> d1)
3634
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
3635
_bz_exp<typename P_expr1::T_numtype> > T_expr;
3637
return _bz_VecExpr<T_expr>(T_expr(d1));
3640
template<class P_numtype1>
3642
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
3643
_bz_exp<P_numtype1> > >
3644
exp(const VectorPick<P_numtype1>& d1)
3646
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
3647
_bz_exp<P_numtype1> > T_expr;
3649
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
3654
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
3658
typedef _bz_VecExprUnaryOp<Range,
3659
_bz_exp<int> > T_expr;
3661
return _bz_VecExpr<T_expr>(T_expr(d1));
3664
template<class P_numtype1, int N_length1>
3666
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
3667
_bz_exp<P_numtype1> > >
3668
exp(const TinyVector<P_numtype1, N_length1>& d1)
3670
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
3671
_bz_exp<P_numtype1> > T_expr;
3673
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
3677
/****************************************************************************
3679
****************************************************************************/
3681
#ifdef BZ_HAVE_IEEE_MATH
3682
template<class P_numtype1>
3684
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
3685
_bz_expm1<P_numtype1> > >
3686
expm1(const Vector<P_numtype1>& d1)
3688
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
3689
_bz_expm1<P_numtype1> > T_expr;
3691
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
3694
template<class P_expr1>
3696
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
3697
_bz_expm1<typename P_expr1::T_numtype> > >
3698
expm1(_bz_VecExpr<P_expr1> d1)
3700
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
3701
_bz_expm1<typename P_expr1::T_numtype> > T_expr;
3703
return _bz_VecExpr<T_expr>(T_expr(d1));
3706
template<class P_numtype1>
3708
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
3709
_bz_expm1<P_numtype1> > >
3710
expm1(const VectorPick<P_numtype1>& d1)
3712
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
3713
_bz_expm1<P_numtype1> > T_expr;
3715
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
3720
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
3724
typedef _bz_VecExprUnaryOp<Range,
3725
_bz_expm1<int> > T_expr;
3727
return _bz_VecExpr<T_expr>(T_expr(d1));
3730
template<class P_numtype1, int N_length1>
3732
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
3733
_bz_expm1<P_numtype1> > >
3734
expm1(const TinyVector<P_numtype1, N_length1>& d1)
3736
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
3737
_bz_expm1<P_numtype1> > T_expr;
3739
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
3744
/****************************************************************************
3746
****************************************************************************/
3748
#ifdef BZ_HAVE_IEEE_MATH
3749
template<class P_numtype1>
3751
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
3752
_bz_erf<P_numtype1> > >
3753
erf(const Vector<P_numtype1>& d1)
3755
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
3756
_bz_erf<P_numtype1> > T_expr;
3758
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
3761
template<class P_expr1>
3763
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
3764
_bz_erf<typename P_expr1::T_numtype> > >
3765
erf(_bz_VecExpr<P_expr1> d1)
3767
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
3768
_bz_erf<typename P_expr1::T_numtype> > T_expr;
3770
return _bz_VecExpr<T_expr>(T_expr(d1));
3773
template<class P_numtype1>
3775
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
3776
_bz_erf<P_numtype1> > >
3777
erf(const VectorPick<P_numtype1>& d1)
3779
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
3780
_bz_erf<P_numtype1> > T_expr;
3782
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
3787
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
3791
typedef _bz_VecExprUnaryOp<Range,
3792
_bz_erf<int> > T_expr;
3794
return _bz_VecExpr<T_expr>(T_expr(d1));
3797
template<class P_numtype1, int N_length1>
3799
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
3800
_bz_erf<P_numtype1> > >
3801
erf(const TinyVector<P_numtype1, N_length1>& d1)
3803
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
3804
_bz_erf<P_numtype1> > T_expr;
3806
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
3811
/****************************************************************************
3813
****************************************************************************/
3815
#ifdef BZ_HAVE_IEEE_MATH
3816
template<class P_numtype1>
3818
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
3819
_bz_erfc<P_numtype1> > >
3820
erfc(const Vector<P_numtype1>& d1)
3822
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
3823
_bz_erfc<P_numtype1> > T_expr;
3825
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
3828
template<class P_expr1>
3830
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
3831
_bz_erfc<typename P_expr1::T_numtype> > >
3832
erfc(_bz_VecExpr<P_expr1> d1)
3834
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
3835
_bz_erfc<typename P_expr1::T_numtype> > T_expr;
3837
return _bz_VecExpr<T_expr>(T_expr(d1));
3840
template<class P_numtype1>
3842
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
3843
_bz_erfc<P_numtype1> > >
3844
erfc(const VectorPick<P_numtype1>& d1)
3846
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
3847
_bz_erfc<P_numtype1> > T_expr;
3849
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
3854
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
3858
typedef _bz_VecExprUnaryOp<Range,
3859
_bz_erfc<int> > T_expr;
3861
return _bz_VecExpr<T_expr>(T_expr(d1));
3864
template<class P_numtype1, int N_length1>
3866
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
3867
_bz_erfc<P_numtype1> > >
3868
erfc(const TinyVector<P_numtype1, N_length1>& d1)
3870
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
3871
_bz_erfc<P_numtype1> > T_expr;
3873
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
3878
/****************************************************************************
3880
****************************************************************************/
3882
template<class P_numtype1>
3884
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
3885
_bz_abs<P_numtype1> > >
3886
fabs(const Vector<P_numtype1>& d1)
3888
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
3889
_bz_abs<P_numtype1> > T_expr;
3891
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
3894
template<class P_expr1>
3896
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
3897
_bz_abs<typename P_expr1::T_numtype> > >
3898
fabs(_bz_VecExpr<P_expr1> d1)
3900
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
3901
_bz_abs<typename P_expr1::T_numtype> > T_expr;
3903
return _bz_VecExpr<T_expr>(T_expr(d1));
3906
template<class P_numtype1>
3908
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
3909
_bz_abs<P_numtype1> > >
3910
fabs(const VectorPick<P_numtype1>& d1)
3912
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
3913
_bz_abs<P_numtype1> > T_expr;
3915
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
3920
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
3924
typedef _bz_VecExprUnaryOp<Range,
3925
_bz_abs<int> > T_expr;
3927
return _bz_VecExpr<T_expr>(T_expr(d1));
3930
template<class P_numtype1, int N_length1>
3932
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
3933
_bz_abs<P_numtype1> > >
3934
fabs(const TinyVector<P_numtype1, N_length1>& d1)
3936
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
3937
_bz_abs<P_numtype1> > T_expr;
3939
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
3943
/****************************************************************************
3945
****************************************************************************/
3947
template<class P_numtype1>
3949
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
3950
_bz_floor<P_numtype1> > >
3951
floor(const Vector<P_numtype1>& d1)
3953
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
3954
_bz_floor<P_numtype1> > T_expr;
3956
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
3959
template<class P_expr1>
3961
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
3962
_bz_floor<typename P_expr1::T_numtype> > >
3963
floor(_bz_VecExpr<P_expr1> d1)
3965
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
3966
_bz_floor<typename P_expr1::T_numtype> > T_expr;
3968
return _bz_VecExpr<T_expr>(T_expr(d1));
3971
template<class P_numtype1>
3973
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
3974
_bz_floor<P_numtype1> > >
3975
floor(const VectorPick<P_numtype1>& d1)
3977
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
3978
_bz_floor<P_numtype1> > T_expr;
3980
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
3985
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
3989
typedef _bz_VecExprUnaryOp<Range,
3990
_bz_floor<int> > T_expr;
3992
return _bz_VecExpr<T_expr>(T_expr(d1));
3995
template<class P_numtype1, int N_length1>
3997
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
3998
_bz_floor<P_numtype1> > >
3999
floor(const TinyVector<P_numtype1, N_length1>& d1)
4001
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
4002
_bz_floor<P_numtype1> > T_expr;
4004
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
4008
/****************************************************************************
4010
****************************************************************************/
4012
template<class P_numtype1, class P_numtype2>
4014
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
4015
_bz_fmod<P_numtype1,P_numtype2> > >
4016
fmod(const Vector<P_numtype1>& d1, const Vector<P_numtype2>& d2)
4018
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
4019
_bz_fmod<P_numtype1,P_numtype2> > T_expr;
4021
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
4024
template<class P_numtype1, class P_expr2>
4026
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
4027
_bz_fmod<P_numtype1,typename P_expr2::T_numtype> > >
4028
fmod(const Vector<P_numtype1>& d1, _bz_VecExpr<P_expr2> d2)
4030
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
4031
_bz_fmod<P_numtype1,typename P_expr2::T_numtype> > T_expr;
4033
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
4036
template<class P_numtype1, class P_numtype2>
4038
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
4039
_bz_fmod<P_numtype1,P_numtype2> > >
4040
fmod(const Vector<P_numtype1>& d1, const VectorPick<P_numtype2>& d2)
4042
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
4043
_bz_fmod<P_numtype1,P_numtype2> > T_expr;
4045
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
4048
template<class P_numtype1>
4050
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, Range,
4051
_bz_fmod<P_numtype1,int> > >
4052
fmod(const Vector<P_numtype1>& d1, Range d2)
4054
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, Range,
4055
_bz_fmod<P_numtype1,int> > T_expr;
4057
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
4060
template<class P_numtype1, class P_numtype2, int N_length2>
4062
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
4063
_bz_fmod<P_numtype1,P_numtype2> > >
4064
fmod(const Vector<P_numtype1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
4066
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
4067
_bz_fmod<P_numtype1,P_numtype2> > T_expr;
4069
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
4072
template<class P_numtype1>
4074
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<int>,
4075
_bz_fmod<P_numtype1,int> > >
4076
fmod(const Vector<P_numtype1>& d1, int d2)
4078
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<int>,
4079
_bz_fmod<P_numtype1,int> > T_expr;
4081
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
4084
template<class P_numtype1>
4086
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<float>,
4087
_bz_fmod<P_numtype1,float> > >
4088
fmod(const Vector<P_numtype1>& d1, float d2)
4090
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<float>,
4091
_bz_fmod<P_numtype1,float> > T_expr;
4093
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
4096
template<class P_numtype1>
4098
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<double>,
4099
_bz_fmod<P_numtype1,double> > >
4100
fmod(const Vector<P_numtype1>& d1, double d2)
4102
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<double>,
4103
_bz_fmod<P_numtype1,double> > T_expr;
4105
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
4108
template<class P_numtype1>
4110
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
4111
_bz_fmod<P_numtype1,long double> > >
4112
fmod(const Vector<P_numtype1>& d1, long double d2)
4114
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
4115
_bz_fmod<P_numtype1,long double> > T_expr;
4117
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
4120
template<class P_numtype1, class T2>
4122
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
4123
_bz_fmod<P_numtype1,complex<T2> > > >
4124
fmod(const Vector<P_numtype1>& d1, complex<T2> d2)
4126
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
4127
_bz_fmod<P_numtype1,complex<T2> > > T_expr;
4129
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
4132
template<class P_expr1, class P_numtype2>
4134
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorIterConst<P_numtype2>,
4135
_bz_fmod<typename P_expr1::T_numtype,P_numtype2> > >
4136
fmod(_bz_VecExpr<P_expr1> d1, const Vector<P_numtype2>& d2)
4138
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorIterConst<P_numtype2>,
4139
_bz_fmod<typename P_expr1::T_numtype,P_numtype2> > T_expr;
4141
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
4144
template<class P_expr1, class P_expr2>
4146
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>,
4147
_bz_fmod<typename P_expr1::T_numtype,typename P_expr2::T_numtype> > >
4148
fmod(_bz_VecExpr<P_expr1> d1, _bz_VecExpr<P_expr2> d2)
4150
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>,
4151
_bz_fmod<typename P_expr1::T_numtype,typename P_expr2::T_numtype> > T_expr;
4153
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
4156
template<class P_expr1, class P_numtype2>
4158
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorPickIterConst<P_numtype2>,
4159
_bz_fmod<typename P_expr1::T_numtype,P_numtype2> > >
4160
fmod(_bz_VecExpr<P_expr1> d1, const VectorPick<P_numtype2>& d2)
4162
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorPickIterConst<P_numtype2>,
4163
_bz_fmod<typename P_expr1::T_numtype,P_numtype2> > T_expr;
4165
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
4168
template<class P_expr1>
4170
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, Range,
4171
_bz_fmod<typename P_expr1::T_numtype,int> > >
4172
fmod(_bz_VecExpr<P_expr1> d1, Range d2)
4174
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, Range,
4175
_bz_fmod<typename P_expr1::T_numtype,int> > T_expr;
4177
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
4180
template<class P_expr1, class P_numtype2, int N_length2>
4182
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, TinyVectorIterConst<P_numtype2, N_length2>,
4183
_bz_fmod<typename P_expr1::T_numtype,P_numtype2> > >
4184
fmod(_bz_VecExpr<P_expr1> d1, const TinyVector<P_numtype2, N_length2>& d2)
4186
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, TinyVectorIterConst<P_numtype2, N_length2>,
4187
_bz_fmod<typename P_expr1::T_numtype,P_numtype2> > T_expr;
4189
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
4192
template<class P_expr1>
4194
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<int>,
4195
_bz_fmod<typename P_expr1::T_numtype,int> > >
4196
fmod(_bz_VecExpr<P_expr1> d1, int d2)
4198
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<int>,
4199
_bz_fmod<typename P_expr1::T_numtype,int> > T_expr;
4201
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<int>(d2)));
4204
template<class P_expr1>
4206
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<float>,
4207
_bz_fmod<typename P_expr1::T_numtype,float> > >
4208
fmod(_bz_VecExpr<P_expr1> d1, float d2)
4210
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<float>,
4211
_bz_fmod<typename P_expr1::T_numtype,float> > T_expr;
4213
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<float>(d2)));
4216
template<class P_expr1>
4218
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<double>,
4219
_bz_fmod<typename P_expr1::T_numtype,double> > >
4220
fmod(_bz_VecExpr<P_expr1> d1, double d2)
4222
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<double>,
4223
_bz_fmod<typename P_expr1::T_numtype,double> > T_expr;
4225
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<double>(d2)));
4228
template<class P_expr1>
4230
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<long double>,
4231
_bz_fmod<typename P_expr1::T_numtype,long double> > >
4232
fmod(_bz_VecExpr<P_expr1> d1, long double d2)
4234
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<long double>,
4235
_bz_fmod<typename P_expr1::T_numtype,long double> > T_expr;
4237
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<long double>(d2)));
4240
template<class P_expr1, class T2>
4242
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<complex<T2> > ,
4243
_bz_fmod<typename P_expr1::T_numtype,complex<T2> > > >
4244
fmod(_bz_VecExpr<P_expr1> d1, complex<T2> d2)
4246
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<complex<T2> > ,
4247
_bz_fmod<typename P_expr1::T_numtype,complex<T2> > > T_expr;
4249
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<complex<T2> > (d2)));
4252
template<class P_numtype1, class P_numtype2>
4254
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
4255
_bz_fmod<P_numtype1,P_numtype2> > >
4256
fmod(const VectorPick<P_numtype1>& d1, const Vector<P_numtype2>& d2)
4258
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
4259
_bz_fmod<P_numtype1,P_numtype2> > T_expr;
4261
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
4264
template<class P_numtype1, class P_expr2>
4266
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
4267
_bz_fmod<P_numtype1,typename P_expr2::T_numtype> > >
4268
fmod(const VectorPick<P_numtype1>& d1, _bz_VecExpr<P_expr2> d2)
4270
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
4271
_bz_fmod<P_numtype1,typename P_expr2::T_numtype> > T_expr;
4273
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
4276
template<class P_numtype1, class P_numtype2>
4278
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
4279
_bz_fmod<P_numtype1,P_numtype2> > >
4280
fmod(const VectorPick<P_numtype1>& d1, const VectorPick<P_numtype2>& d2)
4282
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
4283
_bz_fmod<P_numtype1,P_numtype2> > T_expr;
4285
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
4288
template<class P_numtype1>
4290
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, Range,
4291
_bz_fmod<P_numtype1,int> > >
4292
fmod(const VectorPick<P_numtype1>& d1, Range d2)
4294
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, Range,
4295
_bz_fmod<P_numtype1,int> > T_expr;
4297
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
4300
template<class P_numtype1, class P_numtype2, int N_length2>
4302
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
4303
_bz_fmod<P_numtype1,P_numtype2> > >
4304
fmod(const VectorPick<P_numtype1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
4306
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
4307
_bz_fmod<P_numtype1,P_numtype2> > T_expr;
4309
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
4312
template<class P_numtype1>
4314
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<int>,
4315
_bz_fmod<P_numtype1,int> > >
4316
fmod(const VectorPick<P_numtype1>& d1, int d2)
4318
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<int>,
4319
_bz_fmod<P_numtype1,int> > T_expr;
4321
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
4324
template<class P_numtype1>
4326
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<float>,
4327
_bz_fmod<P_numtype1,float> > >
4328
fmod(const VectorPick<P_numtype1>& d1, float d2)
4330
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<float>,
4331
_bz_fmod<P_numtype1,float> > T_expr;
4333
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
4336
template<class P_numtype1>
4338
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<double>,
4339
_bz_fmod<P_numtype1,double> > >
4340
fmod(const VectorPick<P_numtype1>& d1, double d2)
4342
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<double>,
4343
_bz_fmod<P_numtype1,double> > T_expr;
4345
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
4348
template<class P_numtype1>
4350
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
4351
_bz_fmod<P_numtype1,long double> > >
4352
fmod(const VectorPick<P_numtype1>& d1, long double d2)
4354
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
4355
_bz_fmod<P_numtype1,long double> > T_expr;
4357
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
4360
template<class P_numtype1, class T2>
4362
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
4363
_bz_fmod<P_numtype1,complex<T2> > > >
4364
fmod(const VectorPick<P_numtype1>& d1, complex<T2> d2)
4366
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
4367
_bz_fmod<P_numtype1,complex<T2> > > T_expr;
4369
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
4372
template<class P_numtype2>
4374
_bz_VecExpr<_bz_VecExprOp<Range, VectorIterConst<P_numtype2>,
4375
_bz_fmod<int,P_numtype2> > >
4376
fmod(Range d1, const Vector<P_numtype2>& d2)
4378
typedef _bz_VecExprOp<Range, VectorIterConst<P_numtype2>,
4379
_bz_fmod<int,P_numtype2> > T_expr;
4381
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
4384
template<class P_expr2>
4386
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExpr<P_expr2>,
4387
_bz_fmod<int,typename P_expr2::T_numtype> > >
4388
fmod(Range d1, _bz_VecExpr<P_expr2> d2)
4390
typedef _bz_VecExprOp<Range, _bz_VecExpr<P_expr2>,
4391
_bz_fmod<int,typename P_expr2::T_numtype> > T_expr;
4393
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
4396
template<class P_numtype2>
4398
_bz_VecExpr<_bz_VecExprOp<Range, VectorPickIterConst<P_numtype2>,
4399
_bz_fmod<int,P_numtype2> > >
4400
fmod(Range d1, const VectorPick<P_numtype2>& d2)
4402
typedef _bz_VecExprOp<Range, VectorPickIterConst<P_numtype2>,
4403
_bz_fmod<int,P_numtype2> > T_expr;
4405
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
4410
_bz_VecExpr<_bz_VecExprOp<Range, Range,
4411
_bz_fmod<int,int> > >
4412
fmod(Range d1, Range d2)
4414
typedef _bz_VecExprOp<Range, Range,
4415
_bz_fmod<int,int> > T_expr;
4417
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
4420
template<class P_numtype2, int N_length2>
4422
_bz_VecExpr<_bz_VecExprOp<Range, TinyVectorIterConst<P_numtype2, N_length2>,
4423
_bz_fmod<int,P_numtype2> > >
4424
fmod(Range d1, const TinyVector<P_numtype2, N_length2>& d2)
4426
typedef _bz_VecExprOp<Range, TinyVectorIterConst<P_numtype2, N_length2>,
4427
_bz_fmod<int,P_numtype2> > T_expr;
4429
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
4434
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<int>,
4435
_bz_fmod<int,int> > >
4436
fmod(Range d1, int d2)
4438
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<int>,
4439
_bz_fmod<int,int> > T_expr;
4441
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<int>(d2)));
4446
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<float>,
4447
_bz_fmod<int,float> > >
4448
fmod(Range d1, float d2)
4450
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<float>,
4451
_bz_fmod<int,float> > T_expr;
4453
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<float>(d2)));
4458
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<double>,
4459
_bz_fmod<int,double> > >
4460
fmod(Range d1, double d2)
4462
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<double>,
4463
_bz_fmod<int,double> > T_expr;
4465
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<double>(d2)));
4470
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<long double>,
4471
_bz_fmod<int,long double> > >
4472
fmod(Range d1, long double d2)
4474
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<long double>,
4475
_bz_fmod<int,long double> > T_expr;
4477
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<long double>(d2)));
4482
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<complex<T2> > ,
4483
_bz_fmod<int,complex<T2> > > >
4484
fmod(Range d1, complex<T2> d2)
4486
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<complex<T2> > ,
4487
_bz_fmod<int,complex<T2> > > T_expr;
4489
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<complex<T2> > (d2)));
4492
template<class P_numtype1, int N_length1, class P_numtype2>
4494
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorIterConst<P_numtype2>,
4495
_bz_fmod<P_numtype1,P_numtype2> > >
4496
fmod(const TinyVector<P_numtype1, N_length1>& d1, const Vector<P_numtype2>& d2)
4498
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorIterConst<P_numtype2>,
4499
_bz_fmod<P_numtype1,P_numtype2> > T_expr;
4501
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
4504
template<class P_numtype1, int N_length1, class P_expr2>
4506
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>,
4507
_bz_fmod<P_numtype1,typename P_expr2::T_numtype> > >
4508
fmod(const TinyVector<P_numtype1, N_length1>& d1, _bz_VecExpr<P_expr2> d2)
4510
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>,
4511
_bz_fmod<P_numtype1,typename P_expr2::T_numtype> > T_expr;
4513
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
4516
template<class P_numtype1, int N_length1, class P_numtype2>
4518
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorPickIterConst<P_numtype2>,
4519
_bz_fmod<P_numtype1,P_numtype2> > >
4520
fmod(const TinyVector<P_numtype1, N_length1>& d1, const VectorPick<P_numtype2>& d2)
4522
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorPickIterConst<P_numtype2>,
4523
_bz_fmod<P_numtype1,P_numtype2> > T_expr;
4525
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
4528
template<class P_numtype1, int N_length1>
4530
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, Range,
4531
_bz_fmod<P_numtype1,int> > >
4532
fmod(const TinyVector<P_numtype1, N_length1>& d1, Range d2)
4534
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, Range,
4535
_bz_fmod<P_numtype1,int> > T_expr;
4537
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
4540
template<class P_numtype1, int N_length1, class P_numtype2, int N_length2>
4542
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, TinyVectorIterConst<P_numtype2, N_length2>,
4543
_bz_fmod<P_numtype1,P_numtype2> > >
4544
fmod(const TinyVector<P_numtype1, N_length1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
4546
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, TinyVectorIterConst<P_numtype2, N_length2>,
4547
_bz_fmod<P_numtype1,P_numtype2> > T_expr;
4549
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
4552
template<class P_numtype1, int N_length1>
4554
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<int>,
4555
_bz_fmod<P_numtype1,int> > >
4556
fmod(const TinyVector<P_numtype1, N_length1>& d1, int d2)
4558
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<int>,
4559
_bz_fmod<P_numtype1,int> > T_expr;
4561
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
4564
template<class P_numtype1, int N_length1>
4566
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<float>,
4567
_bz_fmod<P_numtype1,float> > >
4568
fmod(const TinyVector<P_numtype1, N_length1>& d1, float d2)
4570
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<float>,
4571
_bz_fmod<P_numtype1,float> > T_expr;
4573
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
4576
template<class P_numtype1, int N_length1>
4578
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<double>,
4579
_bz_fmod<P_numtype1,double> > >
4580
fmod(const TinyVector<P_numtype1, N_length1>& d1, double d2)
4582
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<double>,
4583
_bz_fmod<P_numtype1,double> > T_expr;
4585
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
4588
template<class P_numtype1, int N_length1>
4590
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<long double>,
4591
_bz_fmod<P_numtype1,long double> > >
4592
fmod(const TinyVector<P_numtype1, N_length1>& d1, long double d2)
4594
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<long double>,
4595
_bz_fmod<P_numtype1,long double> > T_expr;
4597
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
4600
template<class P_numtype1, int N_length1, class T2>
4602
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<complex<T2> > ,
4603
_bz_fmod<P_numtype1,complex<T2> > > >
4604
fmod(const TinyVector<P_numtype1, N_length1>& d1, complex<T2> d2)
4606
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<complex<T2> > ,
4607
_bz_fmod<P_numtype1,complex<T2> > > T_expr;
4609
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
4612
template<class P_numtype2>
4614
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, VectorIterConst<P_numtype2>,
4615
_bz_fmod<int,P_numtype2> > >
4616
fmod(int d1, const Vector<P_numtype2>& d2)
4618
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, VectorIterConst<P_numtype2>,
4619
_bz_fmod<int,P_numtype2> > T_expr;
4621
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
4624
template<class P_expr2>
4626
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, _bz_VecExpr<P_expr2>,
4627
_bz_fmod<int,typename P_expr2::T_numtype> > >
4628
fmod(int d1, _bz_VecExpr<P_expr2> d2)
4630
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, _bz_VecExpr<P_expr2>,
4631
_bz_fmod<int,typename P_expr2::T_numtype> > T_expr;
4633
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2));
4636
template<class P_numtype2>
4638
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, VectorPickIterConst<P_numtype2>,
4639
_bz_fmod<int,P_numtype2> > >
4640
fmod(int d1, const VectorPick<P_numtype2>& d2)
4642
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, VectorPickIterConst<P_numtype2>,
4643
_bz_fmod<int,P_numtype2> > T_expr;
4645
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
4650
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, Range,
4651
_bz_fmod<int,int> > >
4652
fmod(int d1, Range d2)
4654
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, Range,
4655
_bz_fmod<int,int> > T_expr;
4657
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2));
4660
template<class P_numtype2, int N_length2>
4662
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, TinyVectorIterConst<P_numtype2, N_length2>,
4663
_bz_fmod<int,P_numtype2> > >
4664
fmod(int d1, const TinyVector<P_numtype2, N_length2>& d2)
4666
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, TinyVectorIterConst<P_numtype2, N_length2>,
4667
_bz_fmod<int,P_numtype2> > T_expr;
4669
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
4672
template<class P_numtype2>
4674
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, VectorIterConst<P_numtype2>,
4675
_bz_fmod<float,P_numtype2> > >
4676
fmod(float d1, const Vector<P_numtype2>& d2)
4678
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, VectorIterConst<P_numtype2>,
4679
_bz_fmod<float,P_numtype2> > T_expr;
4681
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
4684
template<class P_expr2>
4686
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, _bz_VecExpr<P_expr2>,
4687
_bz_fmod<float,typename P_expr2::T_numtype> > >
4688
fmod(float d1, _bz_VecExpr<P_expr2> d2)
4690
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, _bz_VecExpr<P_expr2>,
4691
_bz_fmod<float,typename P_expr2::T_numtype> > T_expr;
4693
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2));
4696
template<class P_numtype2>
4698
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, VectorPickIterConst<P_numtype2>,
4699
_bz_fmod<float,P_numtype2> > >
4700
fmod(float d1, const VectorPick<P_numtype2>& d2)
4702
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, VectorPickIterConst<P_numtype2>,
4703
_bz_fmod<float,P_numtype2> > T_expr;
4705
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
4710
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, Range,
4711
_bz_fmod<float,int> > >
4712
fmod(float d1, Range d2)
4714
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, Range,
4715
_bz_fmod<float,int> > T_expr;
4717
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2));
4720
template<class P_numtype2, int N_length2>
4722
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, TinyVectorIterConst<P_numtype2, N_length2>,
4723
_bz_fmod<float,P_numtype2> > >
4724
fmod(float d1, const TinyVector<P_numtype2, N_length2>& d2)
4726
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, TinyVectorIterConst<P_numtype2, N_length2>,
4727
_bz_fmod<float,P_numtype2> > T_expr;
4729
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
4732
template<class P_numtype2>
4734
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, VectorIterConst<P_numtype2>,
4735
_bz_fmod<double,P_numtype2> > >
4736
fmod(double d1, const Vector<P_numtype2>& d2)
4738
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, VectorIterConst<P_numtype2>,
4739
_bz_fmod<double,P_numtype2> > T_expr;
4741
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
4744
template<class P_expr2>
4746
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, _bz_VecExpr<P_expr2>,
4747
_bz_fmod<double,typename P_expr2::T_numtype> > >
4748
fmod(double d1, _bz_VecExpr<P_expr2> d2)
4750
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, _bz_VecExpr<P_expr2>,
4751
_bz_fmod<double,typename P_expr2::T_numtype> > T_expr;
4753
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2));
4756
template<class P_numtype2>
4758
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, VectorPickIterConst<P_numtype2>,
4759
_bz_fmod<double,P_numtype2> > >
4760
fmod(double d1, const VectorPick<P_numtype2>& d2)
4762
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, VectorPickIterConst<P_numtype2>,
4763
_bz_fmod<double,P_numtype2> > T_expr;
4765
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
4770
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, Range,
4771
_bz_fmod<double,int> > >
4772
fmod(double d1, Range d2)
4774
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, Range,
4775
_bz_fmod<double,int> > T_expr;
4777
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2));
4780
template<class P_numtype2, int N_length2>
4782
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, TinyVectorIterConst<P_numtype2, N_length2>,
4783
_bz_fmod<double,P_numtype2> > >
4784
fmod(double d1, const TinyVector<P_numtype2, N_length2>& d2)
4786
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, TinyVectorIterConst<P_numtype2, N_length2>,
4787
_bz_fmod<double,P_numtype2> > T_expr;
4789
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
4792
template<class P_numtype2>
4794
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, VectorIterConst<P_numtype2>,
4795
_bz_fmod<long double,P_numtype2> > >
4796
fmod(long double d1, const Vector<P_numtype2>& d2)
4798
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, VectorIterConst<P_numtype2>,
4799
_bz_fmod<long double,P_numtype2> > T_expr;
4801
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
4804
template<class P_expr2>
4806
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, _bz_VecExpr<P_expr2>,
4807
_bz_fmod<long double,typename P_expr2::T_numtype> > >
4808
fmod(long double d1, _bz_VecExpr<P_expr2> d2)
4810
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, _bz_VecExpr<P_expr2>,
4811
_bz_fmod<long double,typename P_expr2::T_numtype> > T_expr;
4813
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2));
4816
template<class P_numtype2>
4818
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, VectorPickIterConst<P_numtype2>,
4819
_bz_fmod<long double,P_numtype2> > >
4820
fmod(long double d1, const VectorPick<P_numtype2>& d2)
4822
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, VectorPickIterConst<P_numtype2>,
4823
_bz_fmod<long double,P_numtype2> > T_expr;
4825
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
4830
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, Range,
4831
_bz_fmod<long double,int> > >
4832
fmod(long double d1, Range d2)
4834
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, Range,
4835
_bz_fmod<long double,int> > T_expr;
4837
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2));
4840
template<class P_numtype2, int N_length2>
4842
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, TinyVectorIterConst<P_numtype2, N_length2>,
4843
_bz_fmod<long double,P_numtype2> > >
4844
fmod(long double d1, const TinyVector<P_numtype2, N_length2>& d2)
4846
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, TinyVectorIterConst<P_numtype2, N_length2>,
4847
_bz_fmod<long double,P_numtype2> > T_expr;
4849
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
4852
template<class T1, class P_numtype2>
4854
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorIterConst<P_numtype2>,
4855
_bz_fmod<complex<T1> ,P_numtype2> > >
4856
fmod(complex<T1> d1, const Vector<P_numtype2>& d2)
4858
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorIterConst<P_numtype2>,
4859
_bz_fmod<complex<T1> ,P_numtype2> > T_expr;
4861
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
4864
template<class T1, class P_expr2>
4866
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , _bz_VecExpr<P_expr2>,
4867
_bz_fmod<complex<T1> ,typename P_expr2::T_numtype> > >
4868
fmod(complex<T1> d1, _bz_VecExpr<P_expr2> d2)
4870
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , _bz_VecExpr<P_expr2>,
4871
_bz_fmod<complex<T1> ,typename P_expr2::T_numtype> > T_expr;
4873
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2));
4876
template<class T1, class P_numtype2>
4878
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorPickIterConst<P_numtype2>,
4879
_bz_fmod<complex<T1> ,P_numtype2> > >
4880
fmod(complex<T1> d1, const VectorPick<P_numtype2>& d2)
4882
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorPickIterConst<P_numtype2>,
4883
_bz_fmod<complex<T1> ,P_numtype2> > T_expr;
4885
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
4890
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , Range,
4891
_bz_fmod<complex<T1> ,int> > >
4892
fmod(complex<T1> d1, Range d2)
4894
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , Range,
4895
_bz_fmod<complex<T1> ,int> > T_expr;
4897
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2));
4900
template<class T1, class P_numtype2, int N_length2>
4902
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , TinyVectorIterConst<P_numtype2, N_length2>,
4903
_bz_fmod<complex<T1> ,P_numtype2> > >
4904
fmod(complex<T1> d1, const TinyVector<P_numtype2, N_length2>& d2)
4906
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , TinyVectorIterConst<P_numtype2, N_length2>,
4907
_bz_fmod<complex<T1> ,P_numtype2> > T_expr;
4909
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
4913
/****************************************************************************
4915
****************************************************************************/
4917
#ifdef BZ_HAVE_SYSTEM_V_MATH
4918
template<class P_numtype1, class P_numtype2>
4920
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
4921
_bz_hypot<P_numtype1,P_numtype2> > >
4922
hypot(const Vector<P_numtype1>& d1, const Vector<P_numtype2>& d2)
4924
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
4925
_bz_hypot<P_numtype1,P_numtype2> > T_expr;
4927
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
4930
template<class P_numtype1, class P_expr2>
4932
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
4933
_bz_hypot<P_numtype1,typename P_expr2::T_numtype> > >
4934
hypot(const Vector<P_numtype1>& d1, _bz_VecExpr<P_expr2> d2)
4936
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
4937
_bz_hypot<P_numtype1,typename P_expr2::T_numtype> > T_expr;
4939
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
4942
template<class P_numtype1, class P_numtype2>
4944
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
4945
_bz_hypot<P_numtype1,P_numtype2> > >
4946
hypot(const Vector<P_numtype1>& d1, const VectorPick<P_numtype2>& d2)
4948
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
4949
_bz_hypot<P_numtype1,P_numtype2> > T_expr;
4951
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
4954
template<class P_numtype1>
4956
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, Range,
4957
_bz_hypot<P_numtype1,int> > >
4958
hypot(const Vector<P_numtype1>& d1, Range d2)
4960
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, Range,
4961
_bz_hypot<P_numtype1,int> > T_expr;
4963
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
4966
template<class P_numtype1, class P_numtype2, int N_length2>
4968
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
4969
_bz_hypot<P_numtype1,P_numtype2> > >
4970
hypot(const Vector<P_numtype1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
4972
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
4973
_bz_hypot<P_numtype1,P_numtype2> > T_expr;
4975
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
4978
template<class P_numtype1>
4980
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<int>,
4981
_bz_hypot<P_numtype1,int> > >
4982
hypot(const Vector<P_numtype1>& d1, int d2)
4984
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<int>,
4985
_bz_hypot<P_numtype1,int> > T_expr;
4987
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
4990
template<class P_numtype1>
4992
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<float>,
4993
_bz_hypot<P_numtype1,float> > >
4994
hypot(const Vector<P_numtype1>& d1, float d2)
4996
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<float>,
4997
_bz_hypot<P_numtype1,float> > T_expr;
4999
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
5002
template<class P_numtype1>
5004
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<double>,
5005
_bz_hypot<P_numtype1,double> > >
5006
hypot(const Vector<P_numtype1>& d1, double d2)
5008
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<double>,
5009
_bz_hypot<P_numtype1,double> > T_expr;
5011
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
5014
template<class P_numtype1>
5016
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
5017
_bz_hypot<P_numtype1,long double> > >
5018
hypot(const Vector<P_numtype1>& d1, long double d2)
5020
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
5021
_bz_hypot<P_numtype1,long double> > T_expr;
5023
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
5026
template<class P_numtype1, class T2>
5028
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
5029
_bz_hypot<P_numtype1,complex<T2> > > >
5030
hypot(const Vector<P_numtype1>& d1, complex<T2> d2)
5032
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
5033
_bz_hypot<P_numtype1,complex<T2> > > T_expr;
5035
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
5038
template<class P_expr1, class P_numtype2>
5040
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorIterConst<P_numtype2>,
5041
_bz_hypot<typename P_expr1::T_numtype,P_numtype2> > >
5042
hypot(_bz_VecExpr<P_expr1> d1, const Vector<P_numtype2>& d2)
5044
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorIterConst<P_numtype2>,
5045
_bz_hypot<typename P_expr1::T_numtype,P_numtype2> > T_expr;
5047
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
5050
template<class P_expr1, class P_expr2>
5052
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>,
5053
_bz_hypot<typename P_expr1::T_numtype,typename P_expr2::T_numtype> > >
5054
hypot(_bz_VecExpr<P_expr1> d1, _bz_VecExpr<P_expr2> d2)
5056
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>,
5057
_bz_hypot<typename P_expr1::T_numtype,typename P_expr2::T_numtype> > T_expr;
5059
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
5062
template<class P_expr1, class P_numtype2>
5064
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorPickIterConst<P_numtype2>,
5065
_bz_hypot<typename P_expr1::T_numtype,P_numtype2> > >
5066
hypot(_bz_VecExpr<P_expr1> d1, const VectorPick<P_numtype2>& d2)
5068
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorPickIterConst<P_numtype2>,
5069
_bz_hypot<typename P_expr1::T_numtype,P_numtype2> > T_expr;
5071
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
5074
template<class P_expr1>
5076
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, Range,
5077
_bz_hypot<typename P_expr1::T_numtype,int> > >
5078
hypot(_bz_VecExpr<P_expr1> d1, Range d2)
5080
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, Range,
5081
_bz_hypot<typename P_expr1::T_numtype,int> > T_expr;
5083
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
5086
template<class P_expr1, class P_numtype2, int N_length2>
5088
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, TinyVectorIterConst<P_numtype2, N_length2>,
5089
_bz_hypot<typename P_expr1::T_numtype,P_numtype2> > >
5090
hypot(_bz_VecExpr<P_expr1> d1, const TinyVector<P_numtype2, N_length2>& d2)
5092
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, TinyVectorIterConst<P_numtype2, N_length2>,
5093
_bz_hypot<typename P_expr1::T_numtype,P_numtype2> > T_expr;
5095
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
5098
template<class P_expr1>
5100
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<int>,
5101
_bz_hypot<typename P_expr1::T_numtype,int> > >
5102
hypot(_bz_VecExpr<P_expr1> d1, int d2)
5104
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<int>,
5105
_bz_hypot<typename P_expr1::T_numtype,int> > T_expr;
5107
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<int>(d2)));
5110
template<class P_expr1>
5112
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<float>,
5113
_bz_hypot<typename P_expr1::T_numtype,float> > >
5114
hypot(_bz_VecExpr<P_expr1> d1, float d2)
5116
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<float>,
5117
_bz_hypot<typename P_expr1::T_numtype,float> > T_expr;
5119
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<float>(d2)));
5122
template<class P_expr1>
5124
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<double>,
5125
_bz_hypot<typename P_expr1::T_numtype,double> > >
5126
hypot(_bz_VecExpr<P_expr1> d1, double d2)
5128
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<double>,
5129
_bz_hypot<typename P_expr1::T_numtype,double> > T_expr;
5131
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<double>(d2)));
5134
template<class P_expr1>
5136
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<long double>,
5137
_bz_hypot<typename P_expr1::T_numtype,long double> > >
5138
hypot(_bz_VecExpr<P_expr1> d1, long double d2)
5140
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<long double>,
5141
_bz_hypot<typename P_expr1::T_numtype,long double> > T_expr;
5143
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<long double>(d2)));
5146
template<class P_expr1, class T2>
5148
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<complex<T2> > ,
5149
_bz_hypot<typename P_expr1::T_numtype,complex<T2> > > >
5150
hypot(_bz_VecExpr<P_expr1> d1, complex<T2> d2)
5152
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<complex<T2> > ,
5153
_bz_hypot<typename P_expr1::T_numtype,complex<T2> > > T_expr;
5155
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<complex<T2> > (d2)));
5158
template<class P_numtype1, class P_numtype2>
5160
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
5161
_bz_hypot<P_numtype1,P_numtype2> > >
5162
hypot(const VectorPick<P_numtype1>& d1, const Vector<P_numtype2>& d2)
5164
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
5165
_bz_hypot<P_numtype1,P_numtype2> > T_expr;
5167
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
5170
template<class P_numtype1, class P_expr2>
5172
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
5173
_bz_hypot<P_numtype1,typename P_expr2::T_numtype> > >
5174
hypot(const VectorPick<P_numtype1>& d1, _bz_VecExpr<P_expr2> d2)
5176
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
5177
_bz_hypot<P_numtype1,typename P_expr2::T_numtype> > T_expr;
5179
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
5182
template<class P_numtype1, class P_numtype2>
5184
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
5185
_bz_hypot<P_numtype1,P_numtype2> > >
5186
hypot(const VectorPick<P_numtype1>& d1, const VectorPick<P_numtype2>& d2)
5188
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
5189
_bz_hypot<P_numtype1,P_numtype2> > T_expr;
5191
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
5194
template<class P_numtype1>
5196
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, Range,
5197
_bz_hypot<P_numtype1,int> > >
5198
hypot(const VectorPick<P_numtype1>& d1, Range d2)
5200
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, Range,
5201
_bz_hypot<P_numtype1,int> > T_expr;
5203
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
5206
template<class P_numtype1, class P_numtype2, int N_length2>
5208
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
5209
_bz_hypot<P_numtype1,P_numtype2> > >
5210
hypot(const VectorPick<P_numtype1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
5212
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
5213
_bz_hypot<P_numtype1,P_numtype2> > T_expr;
5215
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
5218
template<class P_numtype1>
5220
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<int>,
5221
_bz_hypot<P_numtype1,int> > >
5222
hypot(const VectorPick<P_numtype1>& d1, int d2)
5224
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<int>,
5225
_bz_hypot<P_numtype1,int> > T_expr;
5227
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
5230
template<class P_numtype1>
5232
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<float>,
5233
_bz_hypot<P_numtype1,float> > >
5234
hypot(const VectorPick<P_numtype1>& d1, float d2)
5236
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<float>,
5237
_bz_hypot<P_numtype1,float> > T_expr;
5239
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
5242
template<class P_numtype1>
5244
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<double>,
5245
_bz_hypot<P_numtype1,double> > >
5246
hypot(const VectorPick<P_numtype1>& d1, double d2)
5248
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<double>,
5249
_bz_hypot<P_numtype1,double> > T_expr;
5251
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
5254
template<class P_numtype1>
5256
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
5257
_bz_hypot<P_numtype1,long double> > >
5258
hypot(const VectorPick<P_numtype1>& d1, long double d2)
5260
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
5261
_bz_hypot<P_numtype1,long double> > T_expr;
5263
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
5266
template<class P_numtype1, class T2>
5268
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
5269
_bz_hypot<P_numtype1,complex<T2> > > >
5270
hypot(const VectorPick<P_numtype1>& d1, complex<T2> d2)
5272
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
5273
_bz_hypot<P_numtype1,complex<T2> > > T_expr;
5275
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
5278
template<class P_numtype2>
5280
_bz_VecExpr<_bz_VecExprOp<Range, VectorIterConst<P_numtype2>,
5281
_bz_hypot<int,P_numtype2> > >
5282
hypot(Range d1, const Vector<P_numtype2>& d2)
5284
typedef _bz_VecExprOp<Range, VectorIterConst<P_numtype2>,
5285
_bz_hypot<int,P_numtype2> > T_expr;
5287
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
5290
template<class P_expr2>
5292
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExpr<P_expr2>,
5293
_bz_hypot<int,typename P_expr2::T_numtype> > >
5294
hypot(Range d1, _bz_VecExpr<P_expr2> d2)
5296
typedef _bz_VecExprOp<Range, _bz_VecExpr<P_expr2>,
5297
_bz_hypot<int,typename P_expr2::T_numtype> > T_expr;
5299
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
5302
template<class P_numtype2>
5304
_bz_VecExpr<_bz_VecExprOp<Range, VectorPickIterConst<P_numtype2>,
5305
_bz_hypot<int,P_numtype2> > >
5306
hypot(Range d1, const VectorPick<P_numtype2>& d2)
5308
typedef _bz_VecExprOp<Range, VectorPickIterConst<P_numtype2>,
5309
_bz_hypot<int,P_numtype2> > T_expr;
5311
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
5316
_bz_VecExpr<_bz_VecExprOp<Range, Range,
5317
_bz_hypot<int,int> > >
5318
hypot(Range d1, Range d2)
5320
typedef _bz_VecExprOp<Range, Range,
5321
_bz_hypot<int,int> > T_expr;
5323
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
5326
template<class P_numtype2, int N_length2>
5328
_bz_VecExpr<_bz_VecExprOp<Range, TinyVectorIterConst<P_numtype2, N_length2>,
5329
_bz_hypot<int,P_numtype2> > >
5330
hypot(Range d1, const TinyVector<P_numtype2, N_length2>& d2)
5332
typedef _bz_VecExprOp<Range, TinyVectorIterConst<P_numtype2, N_length2>,
5333
_bz_hypot<int,P_numtype2> > T_expr;
5335
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
5340
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<int>,
5341
_bz_hypot<int,int> > >
5342
hypot(Range d1, int d2)
5344
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<int>,
5345
_bz_hypot<int,int> > T_expr;
5347
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<int>(d2)));
5352
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<float>,
5353
_bz_hypot<int,float> > >
5354
hypot(Range d1, float d2)
5356
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<float>,
5357
_bz_hypot<int,float> > T_expr;
5359
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<float>(d2)));
5364
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<double>,
5365
_bz_hypot<int,double> > >
5366
hypot(Range d1, double d2)
5368
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<double>,
5369
_bz_hypot<int,double> > T_expr;
5371
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<double>(d2)));
5376
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<long double>,
5377
_bz_hypot<int,long double> > >
5378
hypot(Range d1, long double d2)
5380
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<long double>,
5381
_bz_hypot<int,long double> > T_expr;
5383
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<long double>(d2)));
5388
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<complex<T2> > ,
5389
_bz_hypot<int,complex<T2> > > >
5390
hypot(Range d1, complex<T2> d2)
5392
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<complex<T2> > ,
5393
_bz_hypot<int,complex<T2> > > T_expr;
5395
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<complex<T2> > (d2)));
5398
template<class P_numtype1, int N_length1, class P_numtype2>
5400
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorIterConst<P_numtype2>,
5401
_bz_hypot<P_numtype1,P_numtype2> > >
5402
hypot(const TinyVector<P_numtype1, N_length1>& d1, const Vector<P_numtype2>& d2)
5404
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorIterConst<P_numtype2>,
5405
_bz_hypot<P_numtype1,P_numtype2> > T_expr;
5407
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
5410
template<class P_numtype1, int N_length1, class P_expr2>
5412
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>,
5413
_bz_hypot<P_numtype1,typename P_expr2::T_numtype> > >
5414
hypot(const TinyVector<P_numtype1, N_length1>& d1, _bz_VecExpr<P_expr2> d2)
5416
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>,
5417
_bz_hypot<P_numtype1,typename P_expr2::T_numtype> > T_expr;
5419
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
5422
template<class P_numtype1, int N_length1, class P_numtype2>
5424
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorPickIterConst<P_numtype2>,
5425
_bz_hypot<P_numtype1,P_numtype2> > >
5426
hypot(const TinyVector<P_numtype1, N_length1>& d1, const VectorPick<P_numtype2>& d2)
5428
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorPickIterConst<P_numtype2>,
5429
_bz_hypot<P_numtype1,P_numtype2> > T_expr;
5431
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
5434
template<class P_numtype1, int N_length1>
5436
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, Range,
5437
_bz_hypot<P_numtype1,int> > >
5438
hypot(const TinyVector<P_numtype1, N_length1>& d1, Range d2)
5440
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, Range,
5441
_bz_hypot<P_numtype1,int> > T_expr;
5443
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
5446
template<class P_numtype1, int N_length1, class P_numtype2, int N_length2>
5448
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, TinyVectorIterConst<P_numtype2, N_length2>,
5449
_bz_hypot<P_numtype1,P_numtype2> > >
5450
hypot(const TinyVector<P_numtype1, N_length1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
5452
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, TinyVectorIterConst<P_numtype2, N_length2>,
5453
_bz_hypot<P_numtype1,P_numtype2> > T_expr;
5455
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
5458
template<class P_numtype1, int N_length1>
5460
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<int>,
5461
_bz_hypot<P_numtype1,int> > >
5462
hypot(const TinyVector<P_numtype1, N_length1>& d1, int d2)
5464
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<int>,
5465
_bz_hypot<P_numtype1,int> > T_expr;
5467
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
5470
template<class P_numtype1, int N_length1>
5472
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<float>,
5473
_bz_hypot<P_numtype1,float> > >
5474
hypot(const TinyVector<P_numtype1, N_length1>& d1, float d2)
5476
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<float>,
5477
_bz_hypot<P_numtype1,float> > T_expr;
5479
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
5482
template<class P_numtype1, int N_length1>
5484
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<double>,
5485
_bz_hypot<P_numtype1,double> > >
5486
hypot(const TinyVector<P_numtype1, N_length1>& d1, double d2)
5488
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<double>,
5489
_bz_hypot<P_numtype1,double> > T_expr;
5491
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
5494
template<class P_numtype1, int N_length1>
5496
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<long double>,
5497
_bz_hypot<P_numtype1,long double> > >
5498
hypot(const TinyVector<P_numtype1, N_length1>& d1, long double d2)
5500
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<long double>,
5501
_bz_hypot<P_numtype1,long double> > T_expr;
5503
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
5506
template<class P_numtype1, int N_length1, class T2>
5508
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<complex<T2> > ,
5509
_bz_hypot<P_numtype1,complex<T2> > > >
5510
hypot(const TinyVector<P_numtype1, N_length1>& d1, complex<T2> d2)
5512
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<complex<T2> > ,
5513
_bz_hypot<P_numtype1,complex<T2> > > T_expr;
5515
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
5518
template<class P_numtype2>
5520
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, VectorIterConst<P_numtype2>,
5521
_bz_hypot<int,P_numtype2> > >
5522
hypot(int d1, const Vector<P_numtype2>& d2)
5524
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, VectorIterConst<P_numtype2>,
5525
_bz_hypot<int,P_numtype2> > T_expr;
5527
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
5530
template<class P_expr2>
5532
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, _bz_VecExpr<P_expr2>,
5533
_bz_hypot<int,typename P_expr2::T_numtype> > >
5534
hypot(int d1, _bz_VecExpr<P_expr2> d2)
5536
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, _bz_VecExpr<P_expr2>,
5537
_bz_hypot<int,typename P_expr2::T_numtype> > T_expr;
5539
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2));
5542
template<class P_numtype2>
5544
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, VectorPickIterConst<P_numtype2>,
5545
_bz_hypot<int,P_numtype2> > >
5546
hypot(int d1, const VectorPick<P_numtype2>& d2)
5548
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, VectorPickIterConst<P_numtype2>,
5549
_bz_hypot<int,P_numtype2> > T_expr;
5551
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
5556
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, Range,
5557
_bz_hypot<int,int> > >
5558
hypot(int d1, Range d2)
5560
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, Range,
5561
_bz_hypot<int,int> > T_expr;
5563
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2));
5566
template<class P_numtype2, int N_length2>
5568
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, TinyVectorIterConst<P_numtype2, N_length2>,
5569
_bz_hypot<int,P_numtype2> > >
5570
hypot(int d1, const TinyVector<P_numtype2, N_length2>& d2)
5572
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, TinyVectorIterConst<P_numtype2, N_length2>,
5573
_bz_hypot<int,P_numtype2> > T_expr;
5575
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
5578
template<class P_numtype2>
5580
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, VectorIterConst<P_numtype2>,
5581
_bz_hypot<float,P_numtype2> > >
5582
hypot(float d1, const Vector<P_numtype2>& d2)
5584
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, VectorIterConst<P_numtype2>,
5585
_bz_hypot<float,P_numtype2> > T_expr;
5587
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
5590
template<class P_expr2>
5592
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, _bz_VecExpr<P_expr2>,
5593
_bz_hypot<float,typename P_expr2::T_numtype> > >
5594
hypot(float d1, _bz_VecExpr<P_expr2> d2)
5596
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, _bz_VecExpr<P_expr2>,
5597
_bz_hypot<float,typename P_expr2::T_numtype> > T_expr;
5599
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2));
5602
template<class P_numtype2>
5604
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, VectorPickIterConst<P_numtype2>,
5605
_bz_hypot<float,P_numtype2> > >
5606
hypot(float d1, const VectorPick<P_numtype2>& d2)
5608
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, VectorPickIterConst<P_numtype2>,
5609
_bz_hypot<float,P_numtype2> > T_expr;
5611
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
5616
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, Range,
5617
_bz_hypot<float,int> > >
5618
hypot(float d1, Range d2)
5620
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, Range,
5621
_bz_hypot<float,int> > T_expr;
5623
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2));
5626
template<class P_numtype2, int N_length2>
5628
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, TinyVectorIterConst<P_numtype2, N_length2>,
5629
_bz_hypot<float,P_numtype2> > >
5630
hypot(float d1, const TinyVector<P_numtype2, N_length2>& d2)
5632
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, TinyVectorIterConst<P_numtype2, N_length2>,
5633
_bz_hypot<float,P_numtype2> > T_expr;
5635
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
5638
template<class P_numtype2>
5640
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, VectorIterConst<P_numtype2>,
5641
_bz_hypot<double,P_numtype2> > >
5642
hypot(double d1, const Vector<P_numtype2>& d2)
5644
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, VectorIterConst<P_numtype2>,
5645
_bz_hypot<double,P_numtype2> > T_expr;
5647
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
5650
template<class P_expr2>
5652
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, _bz_VecExpr<P_expr2>,
5653
_bz_hypot<double,typename P_expr2::T_numtype> > >
5654
hypot(double d1, _bz_VecExpr<P_expr2> d2)
5656
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, _bz_VecExpr<P_expr2>,
5657
_bz_hypot<double,typename P_expr2::T_numtype> > T_expr;
5659
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2));
5662
template<class P_numtype2>
5664
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, VectorPickIterConst<P_numtype2>,
5665
_bz_hypot<double,P_numtype2> > >
5666
hypot(double d1, const VectorPick<P_numtype2>& d2)
5668
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, VectorPickIterConst<P_numtype2>,
5669
_bz_hypot<double,P_numtype2> > T_expr;
5671
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
5676
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, Range,
5677
_bz_hypot<double,int> > >
5678
hypot(double d1, Range d2)
5680
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, Range,
5681
_bz_hypot<double,int> > T_expr;
5683
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2));
5686
template<class P_numtype2, int N_length2>
5688
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, TinyVectorIterConst<P_numtype2, N_length2>,
5689
_bz_hypot<double,P_numtype2> > >
5690
hypot(double d1, const TinyVector<P_numtype2, N_length2>& d2)
5692
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, TinyVectorIterConst<P_numtype2, N_length2>,
5693
_bz_hypot<double,P_numtype2> > T_expr;
5695
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
5698
template<class P_numtype2>
5700
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, VectorIterConst<P_numtype2>,
5701
_bz_hypot<long double,P_numtype2> > >
5702
hypot(long double d1, const Vector<P_numtype2>& d2)
5704
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, VectorIterConst<P_numtype2>,
5705
_bz_hypot<long double,P_numtype2> > T_expr;
5707
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
5710
template<class P_expr2>
5712
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, _bz_VecExpr<P_expr2>,
5713
_bz_hypot<long double,typename P_expr2::T_numtype> > >
5714
hypot(long double d1, _bz_VecExpr<P_expr2> d2)
5716
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, _bz_VecExpr<P_expr2>,
5717
_bz_hypot<long double,typename P_expr2::T_numtype> > T_expr;
5719
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2));
5722
template<class P_numtype2>
5724
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, VectorPickIterConst<P_numtype2>,
5725
_bz_hypot<long double,P_numtype2> > >
5726
hypot(long double d1, const VectorPick<P_numtype2>& d2)
5728
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, VectorPickIterConst<P_numtype2>,
5729
_bz_hypot<long double,P_numtype2> > T_expr;
5731
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
5736
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, Range,
5737
_bz_hypot<long double,int> > >
5738
hypot(long double d1, Range d2)
5740
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, Range,
5741
_bz_hypot<long double,int> > T_expr;
5743
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2));
5746
template<class P_numtype2, int N_length2>
5748
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, TinyVectorIterConst<P_numtype2, N_length2>,
5749
_bz_hypot<long double,P_numtype2> > >
5750
hypot(long double d1, const TinyVector<P_numtype2, N_length2>& d2)
5752
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, TinyVectorIterConst<P_numtype2, N_length2>,
5753
_bz_hypot<long double,P_numtype2> > T_expr;
5755
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
5758
template<class T1, class P_numtype2>
5760
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorIterConst<P_numtype2>,
5761
_bz_hypot<complex<T1> ,P_numtype2> > >
5762
hypot(complex<T1> d1, const Vector<P_numtype2>& d2)
5764
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorIterConst<P_numtype2>,
5765
_bz_hypot<complex<T1> ,P_numtype2> > T_expr;
5767
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
5770
template<class T1, class P_expr2>
5772
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , _bz_VecExpr<P_expr2>,
5773
_bz_hypot<complex<T1> ,typename P_expr2::T_numtype> > >
5774
hypot(complex<T1> d1, _bz_VecExpr<P_expr2> d2)
5776
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , _bz_VecExpr<P_expr2>,
5777
_bz_hypot<complex<T1> ,typename P_expr2::T_numtype> > T_expr;
5779
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2));
5782
template<class T1, class P_numtype2>
5784
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorPickIterConst<P_numtype2>,
5785
_bz_hypot<complex<T1> ,P_numtype2> > >
5786
hypot(complex<T1> d1, const VectorPick<P_numtype2>& d2)
5788
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorPickIterConst<P_numtype2>,
5789
_bz_hypot<complex<T1> ,P_numtype2> > T_expr;
5791
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
5796
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , Range,
5797
_bz_hypot<complex<T1> ,int> > >
5798
hypot(complex<T1> d1, Range d2)
5800
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , Range,
5801
_bz_hypot<complex<T1> ,int> > T_expr;
5803
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2));
5806
template<class T1, class P_numtype2, int N_length2>
5808
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , TinyVectorIterConst<P_numtype2, N_length2>,
5809
_bz_hypot<complex<T1> ,P_numtype2> > >
5810
hypot(complex<T1> d1, const TinyVector<P_numtype2, N_length2>& d2)
5812
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , TinyVectorIterConst<P_numtype2, N_length2>,
5813
_bz_hypot<complex<T1> ,P_numtype2> > T_expr;
5815
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
5820
/****************************************************************************
5822
****************************************************************************/
5824
#ifdef BZ_HAVE_IEEE_MATH
5825
template<class P_numtype1>
5827
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
5828
_bz_ilogb<P_numtype1> > >
5829
ilogb(const Vector<P_numtype1>& d1)
5831
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
5832
_bz_ilogb<P_numtype1> > T_expr;
5834
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
5837
template<class P_expr1>
5839
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
5840
_bz_ilogb<typename P_expr1::T_numtype> > >
5841
ilogb(_bz_VecExpr<P_expr1> d1)
5843
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
5844
_bz_ilogb<typename P_expr1::T_numtype> > T_expr;
5846
return _bz_VecExpr<T_expr>(T_expr(d1));
5849
template<class P_numtype1>
5851
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
5852
_bz_ilogb<P_numtype1> > >
5853
ilogb(const VectorPick<P_numtype1>& d1)
5855
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
5856
_bz_ilogb<P_numtype1> > T_expr;
5858
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
5863
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
5867
typedef _bz_VecExprUnaryOp<Range,
5868
_bz_ilogb<int> > T_expr;
5870
return _bz_VecExpr<T_expr>(T_expr(d1));
5873
template<class P_numtype1, int N_length1>
5875
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
5876
_bz_ilogb<P_numtype1> > >
5877
ilogb(const TinyVector<P_numtype1, N_length1>& d1)
5879
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
5880
_bz_ilogb<P_numtype1> > T_expr;
5882
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
5887
/****************************************************************************
5889
****************************************************************************/
5891
#ifdef BZ_HAVE_IEEE_MATH
5892
template<class P_numtype1>
5894
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
5895
_bz_blitz_isnan<P_numtype1> > >
5896
blitz_isnan(const Vector<P_numtype1>& d1)
5898
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
5899
_bz_blitz_isnan<P_numtype1> > T_expr;
5901
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
5904
template<class P_expr1>
5906
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
5907
_bz_blitz_isnan<typename P_expr1::T_numtype> > >
5908
blitz_isnan(_bz_VecExpr<P_expr1> d1)
5910
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
5911
_bz_blitz_isnan<typename P_expr1::T_numtype> > T_expr;
5913
return _bz_VecExpr<T_expr>(T_expr(d1));
5916
template<class P_numtype1>
5918
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
5919
_bz_blitz_isnan<P_numtype1> > >
5920
blitz_isnan(const VectorPick<P_numtype1>& d1)
5922
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
5923
_bz_blitz_isnan<P_numtype1> > T_expr;
5925
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
5930
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
5931
_bz_blitz_isnan<int> > >
5932
blitz_isnan(Range d1)
5934
typedef _bz_VecExprUnaryOp<Range,
5935
_bz_blitz_isnan<int> > T_expr;
5937
return _bz_VecExpr<T_expr>(T_expr(d1));
5940
template<class P_numtype1, int N_length1>
5942
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
5943
_bz_blitz_isnan<P_numtype1> > >
5944
blitz_isnan(const TinyVector<P_numtype1, N_length1>& d1)
5946
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
5947
_bz_blitz_isnan<P_numtype1> > T_expr;
5949
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
5954
/****************************************************************************
5956
****************************************************************************/
5958
#ifdef BZ_HAVE_SYSTEM_V_MATH
5959
template<class P_numtype1>
5961
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
5962
_bz_itrunc<P_numtype1> > >
5963
itrunc(const Vector<P_numtype1>& d1)
5965
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
5966
_bz_itrunc<P_numtype1> > T_expr;
5968
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
5971
template<class P_expr1>
5973
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
5974
_bz_itrunc<typename P_expr1::T_numtype> > >
5975
itrunc(_bz_VecExpr<P_expr1> d1)
5977
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
5978
_bz_itrunc<typename P_expr1::T_numtype> > T_expr;
5980
return _bz_VecExpr<T_expr>(T_expr(d1));
5983
template<class P_numtype1>
5985
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
5986
_bz_itrunc<P_numtype1> > >
5987
itrunc(const VectorPick<P_numtype1>& d1)
5989
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
5990
_bz_itrunc<P_numtype1> > T_expr;
5992
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
5997
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
6001
typedef _bz_VecExprUnaryOp<Range,
6002
_bz_itrunc<int> > T_expr;
6004
return _bz_VecExpr<T_expr>(T_expr(d1));
6007
template<class P_numtype1, int N_length1>
6009
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
6010
_bz_itrunc<P_numtype1> > >
6011
itrunc(const TinyVector<P_numtype1, N_length1>& d1)
6013
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
6014
_bz_itrunc<P_numtype1> > T_expr;
6016
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6021
/****************************************************************************
6023
****************************************************************************/
6025
#ifdef BZ_HAVE_IEEE_MATH
6026
template<class P_numtype1>
6028
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
6029
_bz_j0<P_numtype1> > >
6030
j0(const Vector<P_numtype1>& d1)
6032
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
6033
_bz_j0<P_numtype1> > T_expr;
6035
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6038
template<class P_expr1>
6040
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
6041
_bz_j0<typename P_expr1::T_numtype> > >
6042
j0(_bz_VecExpr<P_expr1> d1)
6044
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
6045
_bz_j0<typename P_expr1::T_numtype> > T_expr;
6047
return _bz_VecExpr<T_expr>(T_expr(d1));
6050
template<class P_numtype1>
6052
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
6053
_bz_j0<P_numtype1> > >
6054
j0(const VectorPick<P_numtype1>& d1)
6056
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
6057
_bz_j0<P_numtype1> > T_expr;
6059
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6064
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
6068
typedef _bz_VecExprUnaryOp<Range,
6069
_bz_j0<int> > T_expr;
6071
return _bz_VecExpr<T_expr>(T_expr(d1));
6074
template<class P_numtype1, int N_length1>
6076
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
6077
_bz_j0<P_numtype1> > >
6078
j0(const TinyVector<P_numtype1, N_length1>& d1)
6080
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
6081
_bz_j0<P_numtype1> > T_expr;
6083
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6088
/****************************************************************************
6090
****************************************************************************/
6092
#ifdef BZ_HAVE_IEEE_MATH
6093
template<class P_numtype1>
6095
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
6096
_bz_j1<P_numtype1> > >
6097
j1(const Vector<P_numtype1>& d1)
6099
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
6100
_bz_j1<P_numtype1> > T_expr;
6102
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6105
template<class P_expr1>
6107
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
6108
_bz_j1<typename P_expr1::T_numtype> > >
6109
j1(_bz_VecExpr<P_expr1> d1)
6111
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
6112
_bz_j1<typename P_expr1::T_numtype> > T_expr;
6114
return _bz_VecExpr<T_expr>(T_expr(d1));
6117
template<class P_numtype1>
6119
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
6120
_bz_j1<P_numtype1> > >
6121
j1(const VectorPick<P_numtype1>& d1)
6123
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
6124
_bz_j1<P_numtype1> > T_expr;
6126
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6131
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
6135
typedef _bz_VecExprUnaryOp<Range,
6136
_bz_j1<int> > T_expr;
6138
return _bz_VecExpr<T_expr>(T_expr(d1));
6141
template<class P_numtype1, int N_length1>
6143
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
6144
_bz_j1<P_numtype1> > >
6145
j1(const TinyVector<P_numtype1, N_length1>& d1)
6147
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
6148
_bz_j1<P_numtype1> > T_expr;
6150
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6155
/****************************************************************************
6157
****************************************************************************/
6159
#ifdef BZ_HAVE_IEEE_MATH
6160
template<class P_numtype1>
6162
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
6163
_bz_lgamma<P_numtype1> > >
6164
lgamma(const Vector<P_numtype1>& d1)
6166
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
6167
_bz_lgamma<P_numtype1> > T_expr;
6169
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6172
template<class P_expr1>
6174
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
6175
_bz_lgamma<typename P_expr1::T_numtype> > >
6176
lgamma(_bz_VecExpr<P_expr1> d1)
6178
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
6179
_bz_lgamma<typename P_expr1::T_numtype> > T_expr;
6181
return _bz_VecExpr<T_expr>(T_expr(d1));
6184
template<class P_numtype1>
6186
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
6187
_bz_lgamma<P_numtype1> > >
6188
lgamma(const VectorPick<P_numtype1>& d1)
6190
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
6191
_bz_lgamma<P_numtype1> > T_expr;
6193
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6198
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
6202
typedef _bz_VecExprUnaryOp<Range,
6203
_bz_lgamma<int> > T_expr;
6205
return _bz_VecExpr<T_expr>(T_expr(d1));
6208
template<class P_numtype1, int N_length1>
6210
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
6211
_bz_lgamma<P_numtype1> > >
6212
lgamma(const TinyVector<P_numtype1, N_length1>& d1)
6214
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
6215
_bz_lgamma<P_numtype1> > T_expr;
6217
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6222
/****************************************************************************
6224
****************************************************************************/
6226
template<class P_numtype1>
6228
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
6229
_bz_log<P_numtype1> > >
6230
log(const Vector<P_numtype1>& d1)
6232
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
6233
_bz_log<P_numtype1> > T_expr;
6235
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6238
template<class P_expr1>
6240
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
6241
_bz_log<typename P_expr1::T_numtype> > >
6242
log(_bz_VecExpr<P_expr1> d1)
6244
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
6245
_bz_log<typename P_expr1::T_numtype> > T_expr;
6247
return _bz_VecExpr<T_expr>(T_expr(d1));
6250
template<class P_numtype1>
6252
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
6253
_bz_log<P_numtype1> > >
6254
log(const VectorPick<P_numtype1>& d1)
6256
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
6257
_bz_log<P_numtype1> > T_expr;
6259
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6264
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
6268
typedef _bz_VecExprUnaryOp<Range,
6269
_bz_log<int> > T_expr;
6271
return _bz_VecExpr<T_expr>(T_expr(d1));
6274
template<class P_numtype1, int N_length1>
6276
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
6277
_bz_log<P_numtype1> > >
6278
log(const TinyVector<P_numtype1, N_length1>& d1)
6280
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
6281
_bz_log<P_numtype1> > T_expr;
6283
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6287
/****************************************************************************
6289
****************************************************************************/
6291
#ifdef BZ_HAVE_IEEE_MATH
6292
template<class P_numtype1>
6294
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
6295
_bz_logb<P_numtype1> > >
6296
logb(const Vector<P_numtype1>& d1)
6298
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
6299
_bz_logb<P_numtype1> > T_expr;
6301
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6304
template<class P_expr1>
6306
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
6307
_bz_logb<typename P_expr1::T_numtype> > >
6308
logb(_bz_VecExpr<P_expr1> d1)
6310
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
6311
_bz_logb<typename P_expr1::T_numtype> > T_expr;
6313
return _bz_VecExpr<T_expr>(T_expr(d1));
6316
template<class P_numtype1>
6318
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
6319
_bz_logb<P_numtype1> > >
6320
logb(const VectorPick<P_numtype1>& d1)
6322
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
6323
_bz_logb<P_numtype1> > T_expr;
6325
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6330
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
6334
typedef _bz_VecExprUnaryOp<Range,
6335
_bz_logb<int> > T_expr;
6337
return _bz_VecExpr<T_expr>(T_expr(d1));
6340
template<class P_numtype1, int N_length1>
6342
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
6343
_bz_logb<P_numtype1> > >
6344
logb(const TinyVector<P_numtype1, N_length1>& d1)
6346
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
6347
_bz_logb<P_numtype1> > T_expr;
6349
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6354
/****************************************************************************
6356
****************************************************************************/
6358
#ifdef BZ_HAVE_IEEE_MATH
6359
template<class P_numtype1>
6361
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
6362
_bz_log1p<P_numtype1> > >
6363
log1p(const Vector<P_numtype1>& d1)
6365
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
6366
_bz_log1p<P_numtype1> > T_expr;
6368
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6371
template<class P_expr1>
6373
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
6374
_bz_log1p<typename P_expr1::T_numtype> > >
6375
log1p(_bz_VecExpr<P_expr1> d1)
6377
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
6378
_bz_log1p<typename P_expr1::T_numtype> > T_expr;
6380
return _bz_VecExpr<T_expr>(T_expr(d1));
6383
template<class P_numtype1>
6385
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
6386
_bz_log1p<P_numtype1> > >
6387
log1p(const VectorPick<P_numtype1>& d1)
6389
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
6390
_bz_log1p<P_numtype1> > T_expr;
6392
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6397
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
6401
typedef _bz_VecExprUnaryOp<Range,
6402
_bz_log1p<int> > T_expr;
6404
return _bz_VecExpr<T_expr>(T_expr(d1));
6407
template<class P_numtype1, int N_length1>
6409
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
6410
_bz_log1p<P_numtype1> > >
6411
log1p(const TinyVector<P_numtype1, N_length1>& d1)
6413
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
6414
_bz_log1p<P_numtype1> > T_expr;
6416
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6421
/****************************************************************************
6423
****************************************************************************/
6425
template<class P_numtype1>
6427
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
6428
_bz_log10<P_numtype1> > >
6429
log10(const Vector<P_numtype1>& d1)
6431
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
6432
_bz_log10<P_numtype1> > T_expr;
6434
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6437
template<class P_expr1>
6439
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
6440
_bz_log10<typename P_expr1::T_numtype> > >
6441
log10(_bz_VecExpr<P_expr1> d1)
6443
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
6444
_bz_log10<typename P_expr1::T_numtype> > T_expr;
6446
return _bz_VecExpr<T_expr>(T_expr(d1));
6449
template<class P_numtype1>
6451
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
6452
_bz_log10<P_numtype1> > >
6453
log10(const VectorPick<P_numtype1>& d1)
6455
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
6456
_bz_log10<P_numtype1> > T_expr;
6458
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6463
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
6467
typedef _bz_VecExprUnaryOp<Range,
6468
_bz_log10<int> > T_expr;
6470
return _bz_VecExpr<T_expr>(T_expr(d1));
6473
template<class P_numtype1, int N_length1>
6475
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
6476
_bz_log10<P_numtype1> > >
6477
log10(const TinyVector<P_numtype1, N_length1>& d1)
6479
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
6480
_bz_log10<P_numtype1> > T_expr;
6482
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6486
/****************************************************************************
6488
****************************************************************************/
6490
#ifdef BZ_HAVE_SYSTEM_V_MATH
6491
template<class P_numtype1>
6493
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
6494
_bz_nearest<P_numtype1> > >
6495
nearest(const Vector<P_numtype1>& d1)
6497
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
6498
_bz_nearest<P_numtype1> > T_expr;
6500
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6503
template<class P_expr1>
6505
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
6506
_bz_nearest<typename P_expr1::T_numtype> > >
6507
nearest(_bz_VecExpr<P_expr1> d1)
6509
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
6510
_bz_nearest<typename P_expr1::T_numtype> > T_expr;
6512
return _bz_VecExpr<T_expr>(T_expr(d1));
6515
template<class P_numtype1>
6517
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
6518
_bz_nearest<P_numtype1> > >
6519
nearest(const VectorPick<P_numtype1>& d1)
6521
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
6522
_bz_nearest<P_numtype1> > T_expr;
6524
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6529
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
6530
_bz_nearest<int> > >
6533
typedef _bz_VecExprUnaryOp<Range,
6534
_bz_nearest<int> > T_expr;
6536
return _bz_VecExpr<T_expr>(T_expr(d1));
6539
template<class P_numtype1, int N_length1>
6541
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
6542
_bz_nearest<P_numtype1> > >
6543
nearest(const TinyVector<P_numtype1, N_length1>& d1)
6545
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
6546
_bz_nearest<P_numtype1> > T_expr;
6548
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
6553
/****************************************************************************
6555
****************************************************************************/
6557
#ifdef BZ_HAVE_SYSTEM_V_MATH
6558
template<class P_numtype1, class P_numtype2>
6560
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
6561
_bz_nextafter<P_numtype1,P_numtype2> > >
6562
nextafter(const Vector<P_numtype1>& d1, const Vector<P_numtype2>& d2)
6564
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
6565
_bz_nextafter<P_numtype1,P_numtype2> > T_expr;
6567
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
6570
template<class P_numtype1, class P_expr2>
6572
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
6573
_bz_nextafter<P_numtype1,typename P_expr2::T_numtype> > >
6574
nextafter(const Vector<P_numtype1>& d1, _bz_VecExpr<P_expr2> d2)
6576
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
6577
_bz_nextafter<P_numtype1,typename P_expr2::T_numtype> > T_expr;
6579
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
6582
template<class P_numtype1, class P_numtype2>
6584
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
6585
_bz_nextafter<P_numtype1,P_numtype2> > >
6586
nextafter(const Vector<P_numtype1>& d1, const VectorPick<P_numtype2>& d2)
6588
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
6589
_bz_nextafter<P_numtype1,P_numtype2> > T_expr;
6591
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
6594
template<class P_numtype1>
6596
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, Range,
6597
_bz_nextafter<P_numtype1,int> > >
6598
nextafter(const Vector<P_numtype1>& d1, Range d2)
6600
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, Range,
6601
_bz_nextafter<P_numtype1,int> > T_expr;
6603
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
6606
template<class P_numtype1, class P_numtype2, int N_length2>
6608
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
6609
_bz_nextafter<P_numtype1,P_numtype2> > >
6610
nextafter(const Vector<P_numtype1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
6612
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
6613
_bz_nextafter<P_numtype1,P_numtype2> > T_expr;
6615
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
6618
template<class P_numtype1>
6620
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<int>,
6621
_bz_nextafter<P_numtype1,int> > >
6622
nextafter(const Vector<P_numtype1>& d1, int d2)
6624
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<int>,
6625
_bz_nextafter<P_numtype1,int> > T_expr;
6627
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
6630
template<class P_numtype1>
6632
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<float>,
6633
_bz_nextafter<P_numtype1,float> > >
6634
nextafter(const Vector<P_numtype1>& d1, float d2)
6636
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<float>,
6637
_bz_nextafter<P_numtype1,float> > T_expr;
6639
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
6642
template<class P_numtype1>
6644
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<double>,
6645
_bz_nextafter<P_numtype1,double> > >
6646
nextafter(const Vector<P_numtype1>& d1, double d2)
6648
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<double>,
6649
_bz_nextafter<P_numtype1,double> > T_expr;
6651
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
6654
template<class P_numtype1>
6656
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
6657
_bz_nextafter<P_numtype1,long double> > >
6658
nextafter(const Vector<P_numtype1>& d1, long double d2)
6660
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
6661
_bz_nextafter<P_numtype1,long double> > T_expr;
6663
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
6666
template<class P_numtype1, class T2>
6668
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
6669
_bz_nextafter<P_numtype1,complex<T2> > > >
6670
nextafter(const Vector<P_numtype1>& d1, complex<T2> d2)
6672
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
6673
_bz_nextafter<P_numtype1,complex<T2> > > T_expr;
6675
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
6678
template<class P_expr1, class P_numtype2>
6680
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorIterConst<P_numtype2>,
6681
_bz_nextafter<typename P_expr1::T_numtype,P_numtype2> > >
6682
nextafter(_bz_VecExpr<P_expr1> d1, const Vector<P_numtype2>& d2)
6684
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorIterConst<P_numtype2>,
6685
_bz_nextafter<typename P_expr1::T_numtype,P_numtype2> > T_expr;
6687
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
6690
template<class P_expr1, class P_expr2>
6692
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>,
6693
_bz_nextafter<typename P_expr1::T_numtype,typename P_expr2::T_numtype> > >
6694
nextafter(_bz_VecExpr<P_expr1> d1, _bz_VecExpr<P_expr2> d2)
6696
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>,
6697
_bz_nextafter<typename P_expr1::T_numtype,typename P_expr2::T_numtype> > T_expr;
6699
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
6702
template<class P_expr1, class P_numtype2>
6704
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorPickIterConst<P_numtype2>,
6705
_bz_nextafter<typename P_expr1::T_numtype,P_numtype2> > >
6706
nextafter(_bz_VecExpr<P_expr1> d1, const VectorPick<P_numtype2>& d2)
6708
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorPickIterConst<P_numtype2>,
6709
_bz_nextafter<typename P_expr1::T_numtype,P_numtype2> > T_expr;
6711
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
6714
template<class P_expr1>
6716
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, Range,
6717
_bz_nextafter<typename P_expr1::T_numtype,int> > >
6718
nextafter(_bz_VecExpr<P_expr1> d1, Range d2)
6720
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, Range,
6721
_bz_nextafter<typename P_expr1::T_numtype,int> > T_expr;
6723
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
6726
template<class P_expr1, class P_numtype2, int N_length2>
6728
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, TinyVectorIterConst<P_numtype2, N_length2>,
6729
_bz_nextafter<typename P_expr1::T_numtype,P_numtype2> > >
6730
nextafter(_bz_VecExpr<P_expr1> d1, const TinyVector<P_numtype2, N_length2>& d2)
6732
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, TinyVectorIterConst<P_numtype2, N_length2>,
6733
_bz_nextafter<typename P_expr1::T_numtype,P_numtype2> > T_expr;
6735
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
6738
template<class P_expr1>
6740
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<int>,
6741
_bz_nextafter<typename P_expr1::T_numtype,int> > >
6742
nextafter(_bz_VecExpr<P_expr1> d1, int d2)
6744
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<int>,
6745
_bz_nextafter<typename P_expr1::T_numtype,int> > T_expr;
6747
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<int>(d2)));
6750
template<class P_expr1>
6752
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<float>,
6753
_bz_nextafter<typename P_expr1::T_numtype,float> > >
6754
nextafter(_bz_VecExpr<P_expr1> d1, float d2)
6756
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<float>,
6757
_bz_nextafter<typename P_expr1::T_numtype,float> > T_expr;
6759
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<float>(d2)));
6762
template<class P_expr1>
6764
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<double>,
6765
_bz_nextafter<typename P_expr1::T_numtype,double> > >
6766
nextafter(_bz_VecExpr<P_expr1> d1, double d2)
6768
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<double>,
6769
_bz_nextafter<typename P_expr1::T_numtype,double> > T_expr;
6771
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<double>(d2)));
6774
template<class P_expr1>
6776
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<long double>,
6777
_bz_nextafter<typename P_expr1::T_numtype,long double> > >
6778
nextafter(_bz_VecExpr<P_expr1> d1, long double d2)
6780
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<long double>,
6781
_bz_nextafter<typename P_expr1::T_numtype,long double> > T_expr;
6783
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<long double>(d2)));
6786
template<class P_expr1, class T2>
6788
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<complex<T2> > ,
6789
_bz_nextafter<typename P_expr1::T_numtype,complex<T2> > > >
6790
nextafter(_bz_VecExpr<P_expr1> d1, complex<T2> d2)
6792
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<complex<T2> > ,
6793
_bz_nextafter<typename P_expr1::T_numtype,complex<T2> > > T_expr;
6795
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<complex<T2> > (d2)));
6798
template<class P_numtype1, class P_numtype2>
6800
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
6801
_bz_nextafter<P_numtype1,P_numtype2> > >
6802
nextafter(const VectorPick<P_numtype1>& d1, const Vector<P_numtype2>& d2)
6804
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
6805
_bz_nextafter<P_numtype1,P_numtype2> > T_expr;
6807
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
6810
template<class P_numtype1, class P_expr2>
6812
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
6813
_bz_nextafter<P_numtype1,typename P_expr2::T_numtype> > >
6814
nextafter(const VectorPick<P_numtype1>& d1, _bz_VecExpr<P_expr2> d2)
6816
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
6817
_bz_nextafter<P_numtype1,typename P_expr2::T_numtype> > T_expr;
6819
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
6822
template<class P_numtype1, class P_numtype2>
6824
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
6825
_bz_nextafter<P_numtype1,P_numtype2> > >
6826
nextafter(const VectorPick<P_numtype1>& d1, const VectorPick<P_numtype2>& d2)
6828
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
6829
_bz_nextafter<P_numtype1,P_numtype2> > T_expr;
6831
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
6834
template<class P_numtype1>
6836
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, Range,
6837
_bz_nextafter<P_numtype1,int> > >
6838
nextafter(const VectorPick<P_numtype1>& d1, Range d2)
6840
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, Range,
6841
_bz_nextafter<P_numtype1,int> > T_expr;
6843
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
6846
template<class P_numtype1, class P_numtype2, int N_length2>
6848
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
6849
_bz_nextafter<P_numtype1,P_numtype2> > >
6850
nextafter(const VectorPick<P_numtype1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
6852
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
6853
_bz_nextafter<P_numtype1,P_numtype2> > T_expr;
6855
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
6858
template<class P_numtype1>
6860
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<int>,
6861
_bz_nextafter<P_numtype1,int> > >
6862
nextafter(const VectorPick<P_numtype1>& d1, int d2)
6864
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<int>,
6865
_bz_nextafter<P_numtype1,int> > T_expr;
6867
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
6870
template<class P_numtype1>
6872
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<float>,
6873
_bz_nextafter<P_numtype1,float> > >
6874
nextafter(const VectorPick<P_numtype1>& d1, float d2)
6876
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<float>,
6877
_bz_nextafter<P_numtype1,float> > T_expr;
6879
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
6882
template<class P_numtype1>
6884
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<double>,
6885
_bz_nextafter<P_numtype1,double> > >
6886
nextafter(const VectorPick<P_numtype1>& d1, double d2)
6888
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<double>,
6889
_bz_nextafter<P_numtype1,double> > T_expr;
6891
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
6894
template<class P_numtype1>
6896
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
6897
_bz_nextafter<P_numtype1,long double> > >
6898
nextafter(const VectorPick<P_numtype1>& d1, long double d2)
6900
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
6901
_bz_nextafter<P_numtype1,long double> > T_expr;
6903
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
6906
template<class P_numtype1, class T2>
6908
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
6909
_bz_nextafter<P_numtype1,complex<T2> > > >
6910
nextafter(const VectorPick<P_numtype1>& d1, complex<T2> d2)
6912
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
6913
_bz_nextafter<P_numtype1,complex<T2> > > T_expr;
6915
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
6918
template<class P_numtype2>
6920
_bz_VecExpr<_bz_VecExprOp<Range, VectorIterConst<P_numtype2>,
6921
_bz_nextafter<int,P_numtype2> > >
6922
nextafter(Range d1, const Vector<P_numtype2>& d2)
6924
typedef _bz_VecExprOp<Range, VectorIterConst<P_numtype2>,
6925
_bz_nextafter<int,P_numtype2> > T_expr;
6927
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
6930
template<class P_expr2>
6932
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExpr<P_expr2>,
6933
_bz_nextafter<int,typename P_expr2::T_numtype> > >
6934
nextafter(Range d1, _bz_VecExpr<P_expr2> d2)
6936
typedef _bz_VecExprOp<Range, _bz_VecExpr<P_expr2>,
6937
_bz_nextafter<int,typename P_expr2::T_numtype> > T_expr;
6939
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
6942
template<class P_numtype2>
6944
_bz_VecExpr<_bz_VecExprOp<Range, VectorPickIterConst<P_numtype2>,
6945
_bz_nextafter<int,P_numtype2> > >
6946
nextafter(Range d1, const VectorPick<P_numtype2>& d2)
6948
typedef _bz_VecExprOp<Range, VectorPickIterConst<P_numtype2>,
6949
_bz_nextafter<int,P_numtype2> > T_expr;
6951
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
6956
_bz_VecExpr<_bz_VecExprOp<Range, Range,
6957
_bz_nextafter<int,int> > >
6958
nextafter(Range d1, Range d2)
6960
typedef _bz_VecExprOp<Range, Range,
6961
_bz_nextafter<int,int> > T_expr;
6963
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
6966
template<class P_numtype2, int N_length2>
6968
_bz_VecExpr<_bz_VecExprOp<Range, TinyVectorIterConst<P_numtype2, N_length2>,
6969
_bz_nextafter<int,P_numtype2> > >
6970
nextafter(Range d1, const TinyVector<P_numtype2, N_length2>& d2)
6972
typedef _bz_VecExprOp<Range, TinyVectorIterConst<P_numtype2, N_length2>,
6973
_bz_nextafter<int,P_numtype2> > T_expr;
6975
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
6980
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<int>,
6981
_bz_nextafter<int,int> > >
6982
nextafter(Range d1, int d2)
6984
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<int>,
6985
_bz_nextafter<int,int> > T_expr;
6987
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<int>(d2)));
6992
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<float>,
6993
_bz_nextafter<int,float> > >
6994
nextafter(Range d1, float d2)
6996
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<float>,
6997
_bz_nextafter<int,float> > T_expr;
6999
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<float>(d2)));
7004
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<double>,
7005
_bz_nextafter<int,double> > >
7006
nextafter(Range d1, double d2)
7008
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<double>,
7009
_bz_nextafter<int,double> > T_expr;
7011
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<double>(d2)));
7016
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<long double>,
7017
_bz_nextafter<int,long double> > >
7018
nextafter(Range d1, long double d2)
7020
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<long double>,
7021
_bz_nextafter<int,long double> > T_expr;
7023
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<long double>(d2)));
7028
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<complex<T2> > ,
7029
_bz_nextafter<int,complex<T2> > > >
7030
nextafter(Range d1, complex<T2> d2)
7032
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<complex<T2> > ,
7033
_bz_nextafter<int,complex<T2> > > T_expr;
7035
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<complex<T2> > (d2)));
7038
template<class P_numtype1, int N_length1, class P_numtype2>
7040
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorIterConst<P_numtype2>,
7041
_bz_nextafter<P_numtype1,P_numtype2> > >
7042
nextafter(const TinyVector<P_numtype1, N_length1>& d1, const Vector<P_numtype2>& d2)
7044
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorIterConst<P_numtype2>,
7045
_bz_nextafter<P_numtype1,P_numtype2> > T_expr;
7047
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
7050
template<class P_numtype1, int N_length1, class P_expr2>
7052
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>,
7053
_bz_nextafter<P_numtype1,typename P_expr2::T_numtype> > >
7054
nextafter(const TinyVector<P_numtype1, N_length1>& d1, _bz_VecExpr<P_expr2> d2)
7056
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>,
7057
_bz_nextafter<P_numtype1,typename P_expr2::T_numtype> > T_expr;
7059
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
7062
template<class P_numtype1, int N_length1, class P_numtype2>
7064
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorPickIterConst<P_numtype2>,
7065
_bz_nextafter<P_numtype1,P_numtype2> > >
7066
nextafter(const TinyVector<P_numtype1, N_length1>& d1, const VectorPick<P_numtype2>& d2)
7068
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorPickIterConst<P_numtype2>,
7069
_bz_nextafter<P_numtype1,P_numtype2> > T_expr;
7071
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
7074
template<class P_numtype1, int N_length1>
7076
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, Range,
7077
_bz_nextafter<P_numtype1,int> > >
7078
nextafter(const TinyVector<P_numtype1, N_length1>& d1, Range d2)
7080
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, Range,
7081
_bz_nextafter<P_numtype1,int> > T_expr;
7083
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
7086
template<class P_numtype1, int N_length1, class P_numtype2, int N_length2>
7088
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, TinyVectorIterConst<P_numtype2, N_length2>,
7089
_bz_nextafter<P_numtype1,P_numtype2> > >
7090
nextafter(const TinyVector<P_numtype1, N_length1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
7092
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, TinyVectorIterConst<P_numtype2, N_length2>,
7093
_bz_nextafter<P_numtype1,P_numtype2> > T_expr;
7095
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
7098
template<class P_numtype1, int N_length1>
7100
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<int>,
7101
_bz_nextafter<P_numtype1,int> > >
7102
nextafter(const TinyVector<P_numtype1, N_length1>& d1, int d2)
7104
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<int>,
7105
_bz_nextafter<P_numtype1,int> > T_expr;
7107
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
7110
template<class P_numtype1, int N_length1>
7112
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<float>,
7113
_bz_nextafter<P_numtype1,float> > >
7114
nextafter(const TinyVector<P_numtype1, N_length1>& d1, float d2)
7116
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<float>,
7117
_bz_nextafter<P_numtype1,float> > T_expr;
7119
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
7122
template<class P_numtype1, int N_length1>
7124
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<double>,
7125
_bz_nextafter<P_numtype1,double> > >
7126
nextafter(const TinyVector<P_numtype1, N_length1>& d1, double d2)
7128
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<double>,
7129
_bz_nextafter<P_numtype1,double> > T_expr;
7131
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
7134
template<class P_numtype1, int N_length1>
7136
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<long double>,
7137
_bz_nextafter<P_numtype1,long double> > >
7138
nextafter(const TinyVector<P_numtype1, N_length1>& d1, long double d2)
7140
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<long double>,
7141
_bz_nextafter<P_numtype1,long double> > T_expr;
7143
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
7146
template<class P_numtype1, int N_length1, class T2>
7148
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<complex<T2> > ,
7149
_bz_nextafter<P_numtype1,complex<T2> > > >
7150
nextafter(const TinyVector<P_numtype1, N_length1>& d1, complex<T2> d2)
7152
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<complex<T2> > ,
7153
_bz_nextafter<P_numtype1,complex<T2> > > T_expr;
7155
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
7158
template<class P_numtype2>
7160
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, VectorIterConst<P_numtype2>,
7161
_bz_nextafter<int,P_numtype2> > >
7162
nextafter(int d1, const Vector<P_numtype2>& d2)
7164
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, VectorIterConst<P_numtype2>,
7165
_bz_nextafter<int,P_numtype2> > T_expr;
7167
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
7170
template<class P_expr2>
7172
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, _bz_VecExpr<P_expr2>,
7173
_bz_nextafter<int,typename P_expr2::T_numtype> > >
7174
nextafter(int d1, _bz_VecExpr<P_expr2> d2)
7176
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, _bz_VecExpr<P_expr2>,
7177
_bz_nextafter<int,typename P_expr2::T_numtype> > T_expr;
7179
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2));
7182
template<class P_numtype2>
7184
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, VectorPickIterConst<P_numtype2>,
7185
_bz_nextafter<int,P_numtype2> > >
7186
nextafter(int d1, const VectorPick<P_numtype2>& d2)
7188
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, VectorPickIterConst<P_numtype2>,
7189
_bz_nextafter<int,P_numtype2> > T_expr;
7191
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
7196
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, Range,
7197
_bz_nextafter<int,int> > >
7198
nextafter(int d1, Range d2)
7200
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, Range,
7201
_bz_nextafter<int,int> > T_expr;
7203
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2));
7206
template<class P_numtype2, int N_length2>
7208
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, TinyVectorIterConst<P_numtype2, N_length2>,
7209
_bz_nextafter<int,P_numtype2> > >
7210
nextafter(int d1, const TinyVector<P_numtype2, N_length2>& d2)
7212
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, TinyVectorIterConst<P_numtype2, N_length2>,
7213
_bz_nextafter<int,P_numtype2> > T_expr;
7215
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
7218
template<class P_numtype2>
7220
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, VectorIterConst<P_numtype2>,
7221
_bz_nextafter<float,P_numtype2> > >
7222
nextafter(float d1, const Vector<P_numtype2>& d2)
7224
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, VectorIterConst<P_numtype2>,
7225
_bz_nextafter<float,P_numtype2> > T_expr;
7227
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
7230
template<class P_expr2>
7232
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, _bz_VecExpr<P_expr2>,
7233
_bz_nextafter<float,typename P_expr2::T_numtype> > >
7234
nextafter(float d1, _bz_VecExpr<P_expr2> d2)
7236
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, _bz_VecExpr<P_expr2>,
7237
_bz_nextafter<float,typename P_expr2::T_numtype> > T_expr;
7239
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2));
7242
template<class P_numtype2>
7244
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, VectorPickIterConst<P_numtype2>,
7245
_bz_nextafter<float,P_numtype2> > >
7246
nextafter(float d1, const VectorPick<P_numtype2>& d2)
7248
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, VectorPickIterConst<P_numtype2>,
7249
_bz_nextafter<float,P_numtype2> > T_expr;
7251
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
7256
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, Range,
7257
_bz_nextafter<float,int> > >
7258
nextafter(float d1, Range d2)
7260
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, Range,
7261
_bz_nextafter<float,int> > T_expr;
7263
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2));
7266
template<class P_numtype2, int N_length2>
7268
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, TinyVectorIterConst<P_numtype2, N_length2>,
7269
_bz_nextafter<float,P_numtype2> > >
7270
nextafter(float d1, const TinyVector<P_numtype2, N_length2>& d2)
7272
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, TinyVectorIterConst<P_numtype2, N_length2>,
7273
_bz_nextafter<float,P_numtype2> > T_expr;
7275
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
7278
template<class P_numtype2>
7280
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, VectorIterConst<P_numtype2>,
7281
_bz_nextafter<double,P_numtype2> > >
7282
nextafter(double d1, const Vector<P_numtype2>& d2)
7284
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, VectorIterConst<P_numtype2>,
7285
_bz_nextafter<double,P_numtype2> > T_expr;
7287
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
7290
template<class P_expr2>
7292
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, _bz_VecExpr<P_expr2>,
7293
_bz_nextafter<double,typename P_expr2::T_numtype> > >
7294
nextafter(double d1, _bz_VecExpr<P_expr2> d2)
7296
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, _bz_VecExpr<P_expr2>,
7297
_bz_nextafter<double,typename P_expr2::T_numtype> > T_expr;
7299
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2));
7302
template<class P_numtype2>
7304
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, VectorPickIterConst<P_numtype2>,
7305
_bz_nextafter<double,P_numtype2> > >
7306
nextafter(double d1, const VectorPick<P_numtype2>& d2)
7308
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, VectorPickIterConst<P_numtype2>,
7309
_bz_nextafter<double,P_numtype2> > T_expr;
7311
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
7316
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, Range,
7317
_bz_nextafter<double,int> > >
7318
nextafter(double d1, Range d2)
7320
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, Range,
7321
_bz_nextafter<double,int> > T_expr;
7323
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2));
7326
template<class P_numtype2, int N_length2>
7328
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, TinyVectorIterConst<P_numtype2, N_length2>,
7329
_bz_nextafter<double,P_numtype2> > >
7330
nextafter(double d1, const TinyVector<P_numtype2, N_length2>& d2)
7332
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, TinyVectorIterConst<P_numtype2, N_length2>,
7333
_bz_nextafter<double,P_numtype2> > T_expr;
7335
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
7338
template<class P_numtype2>
7340
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, VectorIterConst<P_numtype2>,
7341
_bz_nextafter<long double,P_numtype2> > >
7342
nextafter(long double d1, const Vector<P_numtype2>& d2)
7344
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, VectorIterConst<P_numtype2>,
7345
_bz_nextafter<long double,P_numtype2> > T_expr;
7347
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
7350
template<class P_expr2>
7352
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, _bz_VecExpr<P_expr2>,
7353
_bz_nextafter<long double,typename P_expr2::T_numtype> > >
7354
nextafter(long double d1, _bz_VecExpr<P_expr2> d2)
7356
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, _bz_VecExpr<P_expr2>,
7357
_bz_nextafter<long double,typename P_expr2::T_numtype> > T_expr;
7359
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2));
7362
template<class P_numtype2>
7364
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, VectorPickIterConst<P_numtype2>,
7365
_bz_nextafter<long double,P_numtype2> > >
7366
nextafter(long double d1, const VectorPick<P_numtype2>& d2)
7368
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, VectorPickIterConst<P_numtype2>,
7369
_bz_nextafter<long double,P_numtype2> > T_expr;
7371
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
7376
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, Range,
7377
_bz_nextafter<long double,int> > >
7378
nextafter(long double d1, Range d2)
7380
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, Range,
7381
_bz_nextafter<long double,int> > T_expr;
7383
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2));
7386
template<class P_numtype2, int N_length2>
7388
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, TinyVectorIterConst<P_numtype2, N_length2>,
7389
_bz_nextafter<long double,P_numtype2> > >
7390
nextafter(long double d1, const TinyVector<P_numtype2, N_length2>& d2)
7392
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, TinyVectorIterConst<P_numtype2, N_length2>,
7393
_bz_nextafter<long double,P_numtype2> > T_expr;
7395
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
7398
template<class T1, class P_numtype2>
7400
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorIterConst<P_numtype2>,
7401
_bz_nextafter<complex<T1> ,P_numtype2> > >
7402
nextafter(complex<T1> d1, const Vector<P_numtype2>& d2)
7404
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorIterConst<P_numtype2>,
7405
_bz_nextafter<complex<T1> ,P_numtype2> > T_expr;
7407
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
7410
template<class T1, class P_expr2>
7412
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , _bz_VecExpr<P_expr2>,
7413
_bz_nextafter<complex<T1> ,typename P_expr2::T_numtype> > >
7414
nextafter(complex<T1> d1, _bz_VecExpr<P_expr2> d2)
7416
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , _bz_VecExpr<P_expr2>,
7417
_bz_nextafter<complex<T1> ,typename P_expr2::T_numtype> > T_expr;
7419
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2));
7422
template<class T1, class P_numtype2>
7424
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorPickIterConst<P_numtype2>,
7425
_bz_nextafter<complex<T1> ,P_numtype2> > >
7426
nextafter(complex<T1> d1, const VectorPick<P_numtype2>& d2)
7428
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorPickIterConst<P_numtype2>,
7429
_bz_nextafter<complex<T1> ,P_numtype2> > T_expr;
7431
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
7436
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , Range,
7437
_bz_nextafter<complex<T1> ,int> > >
7438
nextafter(complex<T1> d1, Range d2)
7440
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , Range,
7441
_bz_nextafter<complex<T1> ,int> > T_expr;
7443
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2));
7446
template<class T1, class P_numtype2, int N_length2>
7448
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , TinyVectorIterConst<P_numtype2, N_length2>,
7449
_bz_nextafter<complex<T1> ,P_numtype2> > >
7450
nextafter(complex<T1> d1, const TinyVector<P_numtype2, N_length2>& d2)
7452
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , TinyVectorIterConst<P_numtype2, N_length2>,
7453
_bz_nextafter<complex<T1> ,P_numtype2> > T_expr;
7455
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
7460
/****************************************************************************
7462
****************************************************************************/
7464
template<class P_numtype1, class P_numtype2>
7466
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
7467
_bz_pow<P_numtype1,P_numtype2> > >
7468
pow(const Vector<P_numtype1>& d1, const Vector<P_numtype2>& d2)
7470
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
7471
_bz_pow<P_numtype1,P_numtype2> > T_expr;
7473
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
7476
template<class P_numtype1, class P_expr2>
7478
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
7479
_bz_pow<P_numtype1,typename P_expr2::T_numtype> > >
7480
pow(const Vector<P_numtype1>& d1, _bz_VecExpr<P_expr2> d2)
7482
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
7483
_bz_pow<P_numtype1,typename P_expr2::T_numtype> > T_expr;
7485
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
7488
template<class P_numtype1, class P_numtype2>
7490
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
7491
_bz_pow<P_numtype1,P_numtype2> > >
7492
pow(const Vector<P_numtype1>& d1, const VectorPick<P_numtype2>& d2)
7494
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
7495
_bz_pow<P_numtype1,P_numtype2> > T_expr;
7497
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
7500
template<class P_numtype1>
7502
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, Range,
7503
_bz_pow<P_numtype1,int> > >
7504
pow(const Vector<P_numtype1>& d1, Range d2)
7506
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, Range,
7507
_bz_pow<P_numtype1,int> > T_expr;
7509
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
7512
template<class P_numtype1, class P_numtype2, int N_length2>
7514
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
7515
_bz_pow<P_numtype1,P_numtype2> > >
7516
pow(const Vector<P_numtype1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
7518
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
7519
_bz_pow<P_numtype1,P_numtype2> > T_expr;
7521
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
7524
template<class P_numtype1>
7526
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<int>,
7527
_bz_pow<P_numtype1,int> > >
7528
pow(const Vector<P_numtype1>& d1, int d2)
7530
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<int>,
7531
_bz_pow<P_numtype1,int> > T_expr;
7533
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
7536
template<class P_numtype1>
7538
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<float>,
7539
_bz_pow<P_numtype1,float> > >
7540
pow(const Vector<P_numtype1>& d1, float d2)
7542
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<float>,
7543
_bz_pow<P_numtype1,float> > T_expr;
7545
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
7548
template<class P_numtype1>
7550
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<double>,
7551
_bz_pow<P_numtype1,double> > >
7552
pow(const Vector<P_numtype1>& d1, double d2)
7554
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<double>,
7555
_bz_pow<P_numtype1,double> > T_expr;
7557
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
7560
template<class P_numtype1>
7562
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
7563
_bz_pow<P_numtype1,long double> > >
7564
pow(const Vector<P_numtype1>& d1, long double d2)
7566
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
7567
_bz_pow<P_numtype1,long double> > T_expr;
7569
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
7572
template<class P_numtype1, class T2>
7574
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
7575
_bz_pow<P_numtype1,complex<T2> > > >
7576
pow(const Vector<P_numtype1>& d1, complex<T2> d2)
7578
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
7579
_bz_pow<P_numtype1,complex<T2> > > T_expr;
7581
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
7584
template<class P_expr1, class P_numtype2>
7586
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorIterConst<P_numtype2>,
7587
_bz_pow<typename P_expr1::T_numtype,P_numtype2> > >
7588
pow(_bz_VecExpr<P_expr1> d1, const Vector<P_numtype2>& d2)
7590
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorIterConst<P_numtype2>,
7591
_bz_pow<typename P_expr1::T_numtype,P_numtype2> > T_expr;
7593
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
7596
template<class P_expr1, class P_expr2>
7598
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>,
7599
_bz_pow<typename P_expr1::T_numtype,typename P_expr2::T_numtype> > >
7600
pow(_bz_VecExpr<P_expr1> d1, _bz_VecExpr<P_expr2> d2)
7602
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>,
7603
_bz_pow<typename P_expr1::T_numtype,typename P_expr2::T_numtype> > T_expr;
7605
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
7608
template<class P_expr1, class P_numtype2>
7610
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorPickIterConst<P_numtype2>,
7611
_bz_pow<typename P_expr1::T_numtype,P_numtype2> > >
7612
pow(_bz_VecExpr<P_expr1> d1, const VectorPick<P_numtype2>& d2)
7614
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorPickIterConst<P_numtype2>,
7615
_bz_pow<typename P_expr1::T_numtype,P_numtype2> > T_expr;
7617
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
7620
template<class P_expr1>
7622
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, Range,
7623
_bz_pow<typename P_expr1::T_numtype,int> > >
7624
pow(_bz_VecExpr<P_expr1> d1, Range d2)
7626
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, Range,
7627
_bz_pow<typename P_expr1::T_numtype,int> > T_expr;
7629
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
7632
template<class P_expr1, class P_numtype2, int N_length2>
7634
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, TinyVectorIterConst<P_numtype2, N_length2>,
7635
_bz_pow<typename P_expr1::T_numtype,P_numtype2> > >
7636
pow(_bz_VecExpr<P_expr1> d1, const TinyVector<P_numtype2, N_length2>& d2)
7638
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, TinyVectorIterConst<P_numtype2, N_length2>,
7639
_bz_pow<typename P_expr1::T_numtype,P_numtype2> > T_expr;
7641
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
7644
template<class P_expr1>
7646
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<int>,
7647
_bz_pow<typename P_expr1::T_numtype,int> > >
7648
pow(_bz_VecExpr<P_expr1> d1, int d2)
7650
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<int>,
7651
_bz_pow<typename P_expr1::T_numtype,int> > T_expr;
7653
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<int>(d2)));
7656
template<class P_expr1>
7658
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<float>,
7659
_bz_pow<typename P_expr1::T_numtype,float> > >
7660
pow(_bz_VecExpr<P_expr1> d1, float d2)
7662
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<float>,
7663
_bz_pow<typename P_expr1::T_numtype,float> > T_expr;
7665
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<float>(d2)));
7668
template<class P_expr1>
7670
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<double>,
7671
_bz_pow<typename P_expr1::T_numtype,double> > >
7672
pow(_bz_VecExpr<P_expr1> d1, double d2)
7674
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<double>,
7675
_bz_pow<typename P_expr1::T_numtype,double> > T_expr;
7677
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<double>(d2)));
7680
template<class P_expr1>
7682
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<long double>,
7683
_bz_pow<typename P_expr1::T_numtype,long double> > >
7684
pow(_bz_VecExpr<P_expr1> d1, long double d2)
7686
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<long double>,
7687
_bz_pow<typename P_expr1::T_numtype,long double> > T_expr;
7689
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<long double>(d2)));
7692
template<class P_expr1, class T2>
7694
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<complex<T2> > ,
7695
_bz_pow<typename P_expr1::T_numtype,complex<T2> > > >
7696
pow(_bz_VecExpr<P_expr1> d1, complex<T2> d2)
7698
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<complex<T2> > ,
7699
_bz_pow<typename P_expr1::T_numtype,complex<T2> > > T_expr;
7701
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<complex<T2> > (d2)));
7704
template<class P_numtype1, class P_numtype2>
7706
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
7707
_bz_pow<P_numtype1,P_numtype2> > >
7708
pow(const VectorPick<P_numtype1>& d1, const Vector<P_numtype2>& d2)
7710
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
7711
_bz_pow<P_numtype1,P_numtype2> > T_expr;
7713
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
7716
template<class P_numtype1, class P_expr2>
7718
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
7719
_bz_pow<P_numtype1,typename P_expr2::T_numtype> > >
7720
pow(const VectorPick<P_numtype1>& d1, _bz_VecExpr<P_expr2> d2)
7722
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
7723
_bz_pow<P_numtype1,typename P_expr2::T_numtype> > T_expr;
7725
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
7728
template<class P_numtype1, class P_numtype2>
7730
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
7731
_bz_pow<P_numtype1,P_numtype2> > >
7732
pow(const VectorPick<P_numtype1>& d1, const VectorPick<P_numtype2>& d2)
7734
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
7735
_bz_pow<P_numtype1,P_numtype2> > T_expr;
7737
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
7740
template<class P_numtype1>
7742
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, Range,
7743
_bz_pow<P_numtype1,int> > >
7744
pow(const VectorPick<P_numtype1>& d1, Range d2)
7746
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, Range,
7747
_bz_pow<P_numtype1,int> > T_expr;
7749
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
7752
template<class P_numtype1, class P_numtype2, int N_length2>
7754
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
7755
_bz_pow<P_numtype1,P_numtype2> > >
7756
pow(const VectorPick<P_numtype1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
7758
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
7759
_bz_pow<P_numtype1,P_numtype2> > T_expr;
7761
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
7764
template<class P_numtype1>
7766
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<int>,
7767
_bz_pow<P_numtype1,int> > >
7768
pow(const VectorPick<P_numtype1>& d1, int d2)
7770
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<int>,
7771
_bz_pow<P_numtype1,int> > T_expr;
7773
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
7776
template<class P_numtype1>
7778
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<float>,
7779
_bz_pow<P_numtype1,float> > >
7780
pow(const VectorPick<P_numtype1>& d1, float d2)
7782
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<float>,
7783
_bz_pow<P_numtype1,float> > T_expr;
7785
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
7788
template<class P_numtype1>
7790
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<double>,
7791
_bz_pow<P_numtype1,double> > >
7792
pow(const VectorPick<P_numtype1>& d1, double d2)
7794
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<double>,
7795
_bz_pow<P_numtype1,double> > T_expr;
7797
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
7800
template<class P_numtype1>
7802
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
7803
_bz_pow<P_numtype1,long double> > >
7804
pow(const VectorPick<P_numtype1>& d1, long double d2)
7806
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
7807
_bz_pow<P_numtype1,long double> > T_expr;
7809
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
7812
template<class P_numtype1, class T2>
7814
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
7815
_bz_pow<P_numtype1,complex<T2> > > >
7816
pow(const VectorPick<P_numtype1>& d1, complex<T2> d2)
7818
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
7819
_bz_pow<P_numtype1,complex<T2> > > T_expr;
7821
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
7824
template<class P_numtype2>
7826
_bz_VecExpr<_bz_VecExprOp<Range, VectorIterConst<P_numtype2>,
7827
_bz_pow<int,P_numtype2> > >
7828
pow(Range d1, const Vector<P_numtype2>& d2)
7830
typedef _bz_VecExprOp<Range, VectorIterConst<P_numtype2>,
7831
_bz_pow<int,P_numtype2> > T_expr;
7833
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
7836
template<class P_expr2>
7838
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExpr<P_expr2>,
7839
_bz_pow<int,typename P_expr2::T_numtype> > >
7840
pow(Range d1, _bz_VecExpr<P_expr2> d2)
7842
typedef _bz_VecExprOp<Range, _bz_VecExpr<P_expr2>,
7843
_bz_pow<int,typename P_expr2::T_numtype> > T_expr;
7845
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
7848
template<class P_numtype2>
7850
_bz_VecExpr<_bz_VecExprOp<Range, VectorPickIterConst<P_numtype2>,
7851
_bz_pow<int,P_numtype2> > >
7852
pow(Range d1, const VectorPick<P_numtype2>& d2)
7854
typedef _bz_VecExprOp<Range, VectorPickIterConst<P_numtype2>,
7855
_bz_pow<int,P_numtype2> > T_expr;
7857
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
7862
_bz_VecExpr<_bz_VecExprOp<Range, Range,
7863
_bz_pow<int,int> > >
7864
pow(Range d1, Range d2)
7866
typedef _bz_VecExprOp<Range, Range,
7867
_bz_pow<int,int> > T_expr;
7869
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
7872
template<class P_numtype2, int N_length2>
7874
_bz_VecExpr<_bz_VecExprOp<Range, TinyVectorIterConst<P_numtype2, N_length2>,
7875
_bz_pow<int,P_numtype2> > >
7876
pow(Range d1, const TinyVector<P_numtype2, N_length2>& d2)
7878
typedef _bz_VecExprOp<Range, TinyVectorIterConst<P_numtype2, N_length2>,
7879
_bz_pow<int,P_numtype2> > T_expr;
7881
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
7886
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<int>,
7887
_bz_pow<int,int> > >
7888
pow(Range d1, int d2)
7890
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<int>,
7891
_bz_pow<int,int> > T_expr;
7893
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<int>(d2)));
7898
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<float>,
7899
_bz_pow<int,float> > >
7900
pow(Range d1, float d2)
7902
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<float>,
7903
_bz_pow<int,float> > T_expr;
7905
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<float>(d2)));
7910
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<double>,
7911
_bz_pow<int,double> > >
7912
pow(Range d1, double d2)
7914
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<double>,
7915
_bz_pow<int,double> > T_expr;
7917
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<double>(d2)));
7922
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<long double>,
7923
_bz_pow<int,long double> > >
7924
pow(Range d1, long double d2)
7926
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<long double>,
7927
_bz_pow<int,long double> > T_expr;
7929
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<long double>(d2)));
7934
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<complex<T2> > ,
7935
_bz_pow<int,complex<T2> > > >
7936
pow(Range d1, complex<T2> d2)
7938
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<complex<T2> > ,
7939
_bz_pow<int,complex<T2> > > T_expr;
7941
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<complex<T2> > (d2)));
7944
template<class P_numtype1, int N_length1, class P_numtype2>
7946
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorIterConst<P_numtype2>,
7947
_bz_pow<P_numtype1,P_numtype2> > >
7948
pow(const TinyVector<P_numtype1, N_length1>& d1, const Vector<P_numtype2>& d2)
7950
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorIterConst<P_numtype2>,
7951
_bz_pow<P_numtype1,P_numtype2> > T_expr;
7953
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
7956
template<class P_numtype1, int N_length1, class P_expr2>
7958
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>,
7959
_bz_pow<P_numtype1,typename P_expr2::T_numtype> > >
7960
pow(const TinyVector<P_numtype1, N_length1>& d1, _bz_VecExpr<P_expr2> d2)
7962
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>,
7963
_bz_pow<P_numtype1,typename P_expr2::T_numtype> > T_expr;
7965
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
7968
template<class P_numtype1, int N_length1, class P_numtype2>
7970
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorPickIterConst<P_numtype2>,
7971
_bz_pow<P_numtype1,P_numtype2> > >
7972
pow(const TinyVector<P_numtype1, N_length1>& d1, const VectorPick<P_numtype2>& d2)
7974
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorPickIterConst<P_numtype2>,
7975
_bz_pow<P_numtype1,P_numtype2> > T_expr;
7977
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
7980
template<class P_numtype1, int N_length1>
7982
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, Range,
7983
_bz_pow<P_numtype1,int> > >
7984
pow(const TinyVector<P_numtype1, N_length1>& d1, Range d2)
7986
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, Range,
7987
_bz_pow<P_numtype1,int> > T_expr;
7989
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
7992
template<class P_numtype1, int N_length1, class P_numtype2, int N_length2>
7994
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, TinyVectorIterConst<P_numtype2, N_length2>,
7995
_bz_pow<P_numtype1,P_numtype2> > >
7996
pow(const TinyVector<P_numtype1, N_length1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
7998
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, TinyVectorIterConst<P_numtype2, N_length2>,
7999
_bz_pow<P_numtype1,P_numtype2> > T_expr;
8001
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
8004
template<class P_numtype1, int N_length1>
8006
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<int>,
8007
_bz_pow<P_numtype1,int> > >
8008
pow(const TinyVector<P_numtype1, N_length1>& d1, int d2)
8010
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<int>,
8011
_bz_pow<P_numtype1,int> > T_expr;
8013
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
8016
template<class P_numtype1, int N_length1>
8018
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<float>,
8019
_bz_pow<P_numtype1,float> > >
8020
pow(const TinyVector<P_numtype1, N_length1>& d1, float d2)
8022
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<float>,
8023
_bz_pow<P_numtype1,float> > T_expr;
8025
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
8028
template<class P_numtype1, int N_length1>
8030
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<double>,
8031
_bz_pow<P_numtype1,double> > >
8032
pow(const TinyVector<P_numtype1, N_length1>& d1, double d2)
8034
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<double>,
8035
_bz_pow<P_numtype1,double> > T_expr;
8037
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
8040
template<class P_numtype1, int N_length1>
8042
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<long double>,
8043
_bz_pow<P_numtype1,long double> > >
8044
pow(const TinyVector<P_numtype1, N_length1>& d1, long double d2)
8046
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<long double>,
8047
_bz_pow<P_numtype1,long double> > T_expr;
8049
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
8052
template<class P_numtype1, int N_length1, class T2>
8054
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<complex<T2> > ,
8055
_bz_pow<P_numtype1,complex<T2> > > >
8056
pow(const TinyVector<P_numtype1, N_length1>& d1, complex<T2> d2)
8058
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<complex<T2> > ,
8059
_bz_pow<P_numtype1,complex<T2> > > T_expr;
8061
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
8064
template<class P_numtype2>
8066
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, VectorIterConst<P_numtype2>,
8067
_bz_pow<int,P_numtype2> > >
8068
pow(int d1, const Vector<P_numtype2>& d2)
8070
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, VectorIterConst<P_numtype2>,
8071
_bz_pow<int,P_numtype2> > T_expr;
8073
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
8076
template<class P_expr2>
8078
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, _bz_VecExpr<P_expr2>,
8079
_bz_pow<int,typename P_expr2::T_numtype> > >
8080
pow(int d1, _bz_VecExpr<P_expr2> d2)
8082
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, _bz_VecExpr<P_expr2>,
8083
_bz_pow<int,typename P_expr2::T_numtype> > T_expr;
8085
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2));
8088
template<class P_numtype2>
8090
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, VectorPickIterConst<P_numtype2>,
8091
_bz_pow<int,P_numtype2> > >
8092
pow(int d1, const VectorPick<P_numtype2>& d2)
8094
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, VectorPickIterConst<P_numtype2>,
8095
_bz_pow<int,P_numtype2> > T_expr;
8097
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
8102
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, Range,
8103
_bz_pow<int,int> > >
8104
pow(int d1, Range d2)
8106
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, Range,
8107
_bz_pow<int,int> > T_expr;
8109
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2));
8112
template<class P_numtype2, int N_length2>
8114
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, TinyVectorIterConst<P_numtype2, N_length2>,
8115
_bz_pow<int,P_numtype2> > >
8116
pow(int d1, const TinyVector<P_numtype2, N_length2>& d2)
8118
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, TinyVectorIterConst<P_numtype2, N_length2>,
8119
_bz_pow<int,P_numtype2> > T_expr;
8121
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
8124
template<class P_numtype2>
8126
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, VectorIterConst<P_numtype2>,
8127
_bz_pow<float,P_numtype2> > >
8128
pow(float d1, const Vector<P_numtype2>& d2)
8130
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, VectorIterConst<P_numtype2>,
8131
_bz_pow<float,P_numtype2> > T_expr;
8133
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
8136
template<class P_expr2>
8138
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, _bz_VecExpr<P_expr2>,
8139
_bz_pow<float,typename P_expr2::T_numtype> > >
8140
pow(float d1, _bz_VecExpr<P_expr2> d2)
8142
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, _bz_VecExpr<P_expr2>,
8143
_bz_pow<float,typename P_expr2::T_numtype> > T_expr;
8145
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2));
8148
template<class P_numtype2>
8150
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, VectorPickIterConst<P_numtype2>,
8151
_bz_pow<float,P_numtype2> > >
8152
pow(float d1, const VectorPick<P_numtype2>& d2)
8154
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, VectorPickIterConst<P_numtype2>,
8155
_bz_pow<float,P_numtype2> > T_expr;
8157
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
8162
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, Range,
8163
_bz_pow<float,int> > >
8164
pow(float d1, Range d2)
8166
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, Range,
8167
_bz_pow<float,int> > T_expr;
8169
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2));
8172
template<class P_numtype2, int N_length2>
8174
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, TinyVectorIterConst<P_numtype2, N_length2>,
8175
_bz_pow<float,P_numtype2> > >
8176
pow(float d1, const TinyVector<P_numtype2, N_length2>& d2)
8178
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, TinyVectorIterConst<P_numtype2, N_length2>,
8179
_bz_pow<float,P_numtype2> > T_expr;
8181
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
8184
template<class P_numtype2>
8186
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, VectorIterConst<P_numtype2>,
8187
_bz_pow<double,P_numtype2> > >
8188
pow(double d1, const Vector<P_numtype2>& d2)
8190
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, VectorIterConst<P_numtype2>,
8191
_bz_pow<double,P_numtype2> > T_expr;
8193
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
8196
template<class P_expr2>
8198
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, _bz_VecExpr<P_expr2>,
8199
_bz_pow<double,typename P_expr2::T_numtype> > >
8200
pow(double d1, _bz_VecExpr<P_expr2> d2)
8202
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, _bz_VecExpr<P_expr2>,
8203
_bz_pow<double,typename P_expr2::T_numtype> > T_expr;
8205
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2));
8208
template<class P_numtype2>
8210
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, VectorPickIterConst<P_numtype2>,
8211
_bz_pow<double,P_numtype2> > >
8212
pow(double d1, const VectorPick<P_numtype2>& d2)
8214
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, VectorPickIterConst<P_numtype2>,
8215
_bz_pow<double,P_numtype2> > T_expr;
8217
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
8222
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, Range,
8223
_bz_pow<double,int> > >
8224
pow(double d1, Range d2)
8226
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, Range,
8227
_bz_pow<double,int> > T_expr;
8229
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2));
8232
template<class P_numtype2, int N_length2>
8234
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, TinyVectorIterConst<P_numtype2, N_length2>,
8235
_bz_pow<double,P_numtype2> > >
8236
pow(double d1, const TinyVector<P_numtype2, N_length2>& d2)
8238
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, TinyVectorIterConst<P_numtype2, N_length2>,
8239
_bz_pow<double,P_numtype2> > T_expr;
8241
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
8244
template<class P_numtype2>
8246
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, VectorIterConst<P_numtype2>,
8247
_bz_pow<long double,P_numtype2> > >
8248
pow(long double d1, const Vector<P_numtype2>& d2)
8250
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, VectorIterConst<P_numtype2>,
8251
_bz_pow<long double,P_numtype2> > T_expr;
8253
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
8256
template<class P_expr2>
8258
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, _bz_VecExpr<P_expr2>,
8259
_bz_pow<long double,typename P_expr2::T_numtype> > >
8260
pow(long double d1, _bz_VecExpr<P_expr2> d2)
8262
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, _bz_VecExpr<P_expr2>,
8263
_bz_pow<long double,typename P_expr2::T_numtype> > T_expr;
8265
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2));
8268
template<class P_numtype2>
8270
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, VectorPickIterConst<P_numtype2>,
8271
_bz_pow<long double,P_numtype2> > >
8272
pow(long double d1, const VectorPick<P_numtype2>& d2)
8274
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, VectorPickIterConst<P_numtype2>,
8275
_bz_pow<long double,P_numtype2> > T_expr;
8277
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
8282
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, Range,
8283
_bz_pow<long double,int> > >
8284
pow(long double d1, Range d2)
8286
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, Range,
8287
_bz_pow<long double,int> > T_expr;
8289
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2));
8292
template<class P_numtype2, int N_length2>
8294
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, TinyVectorIterConst<P_numtype2, N_length2>,
8295
_bz_pow<long double,P_numtype2> > >
8296
pow(long double d1, const TinyVector<P_numtype2, N_length2>& d2)
8298
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, TinyVectorIterConst<P_numtype2, N_length2>,
8299
_bz_pow<long double,P_numtype2> > T_expr;
8301
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
8304
template<class T1, class P_numtype2>
8306
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorIterConst<P_numtype2>,
8307
_bz_pow<complex<T1> ,P_numtype2> > >
8308
pow(complex<T1> d1, const Vector<P_numtype2>& d2)
8310
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorIterConst<P_numtype2>,
8311
_bz_pow<complex<T1> ,P_numtype2> > T_expr;
8313
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
8316
template<class T1, class P_expr2>
8318
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , _bz_VecExpr<P_expr2>,
8319
_bz_pow<complex<T1> ,typename P_expr2::T_numtype> > >
8320
pow(complex<T1> d1, _bz_VecExpr<P_expr2> d2)
8322
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , _bz_VecExpr<P_expr2>,
8323
_bz_pow<complex<T1> ,typename P_expr2::T_numtype> > T_expr;
8325
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2));
8328
template<class T1, class P_numtype2>
8330
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorPickIterConst<P_numtype2>,
8331
_bz_pow<complex<T1> ,P_numtype2> > >
8332
pow(complex<T1> d1, const VectorPick<P_numtype2>& d2)
8334
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorPickIterConst<P_numtype2>,
8335
_bz_pow<complex<T1> ,P_numtype2> > T_expr;
8337
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
8342
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , Range,
8343
_bz_pow<complex<T1> ,int> > >
8344
pow(complex<T1> d1, Range d2)
8346
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , Range,
8347
_bz_pow<complex<T1> ,int> > T_expr;
8349
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2));
8352
template<class T1, class P_numtype2, int N_length2>
8354
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , TinyVectorIterConst<P_numtype2, N_length2>,
8355
_bz_pow<complex<T1> ,P_numtype2> > >
8356
pow(complex<T1> d1, const TinyVector<P_numtype2, N_length2>& d2)
8358
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , TinyVectorIterConst<P_numtype2, N_length2>,
8359
_bz_pow<complex<T1> ,P_numtype2> > T_expr;
8361
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
8365
/****************************************************************************
8367
****************************************************************************/
8369
#ifdef BZ_HAVE_SYSTEM_V_MATH
8370
template<class P_numtype1, class P_numtype2>
8372
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
8373
_bz_remainder<P_numtype1,P_numtype2> > >
8374
remainder(const Vector<P_numtype1>& d1, const Vector<P_numtype2>& d2)
8376
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
8377
_bz_remainder<P_numtype1,P_numtype2> > T_expr;
8379
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
8382
template<class P_numtype1, class P_expr2>
8384
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
8385
_bz_remainder<P_numtype1,typename P_expr2::T_numtype> > >
8386
remainder(const Vector<P_numtype1>& d1, _bz_VecExpr<P_expr2> d2)
8388
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
8389
_bz_remainder<P_numtype1,typename P_expr2::T_numtype> > T_expr;
8391
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
8394
template<class P_numtype1, class P_numtype2>
8396
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
8397
_bz_remainder<P_numtype1,P_numtype2> > >
8398
remainder(const Vector<P_numtype1>& d1, const VectorPick<P_numtype2>& d2)
8400
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
8401
_bz_remainder<P_numtype1,P_numtype2> > T_expr;
8403
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
8406
template<class P_numtype1>
8408
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, Range,
8409
_bz_remainder<P_numtype1,int> > >
8410
remainder(const Vector<P_numtype1>& d1, Range d2)
8412
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, Range,
8413
_bz_remainder<P_numtype1,int> > T_expr;
8415
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
8418
template<class P_numtype1, class P_numtype2, int N_length2>
8420
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
8421
_bz_remainder<P_numtype1,P_numtype2> > >
8422
remainder(const Vector<P_numtype1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
8424
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
8425
_bz_remainder<P_numtype1,P_numtype2> > T_expr;
8427
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
8430
template<class P_numtype1>
8432
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<int>,
8433
_bz_remainder<P_numtype1,int> > >
8434
remainder(const Vector<P_numtype1>& d1, int d2)
8436
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<int>,
8437
_bz_remainder<P_numtype1,int> > T_expr;
8439
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
8442
template<class P_numtype1>
8444
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<float>,
8445
_bz_remainder<P_numtype1,float> > >
8446
remainder(const Vector<P_numtype1>& d1, float d2)
8448
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<float>,
8449
_bz_remainder<P_numtype1,float> > T_expr;
8451
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
8454
template<class P_numtype1>
8456
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<double>,
8457
_bz_remainder<P_numtype1,double> > >
8458
remainder(const Vector<P_numtype1>& d1, double d2)
8460
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<double>,
8461
_bz_remainder<P_numtype1,double> > T_expr;
8463
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
8466
template<class P_numtype1>
8468
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
8469
_bz_remainder<P_numtype1,long double> > >
8470
remainder(const Vector<P_numtype1>& d1, long double d2)
8472
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
8473
_bz_remainder<P_numtype1,long double> > T_expr;
8475
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
8478
template<class P_numtype1, class T2>
8480
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
8481
_bz_remainder<P_numtype1,complex<T2> > > >
8482
remainder(const Vector<P_numtype1>& d1, complex<T2> d2)
8484
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
8485
_bz_remainder<P_numtype1,complex<T2> > > T_expr;
8487
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
8490
template<class P_expr1, class P_numtype2>
8492
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorIterConst<P_numtype2>,
8493
_bz_remainder<typename P_expr1::T_numtype,P_numtype2> > >
8494
remainder(_bz_VecExpr<P_expr1> d1, const Vector<P_numtype2>& d2)
8496
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorIterConst<P_numtype2>,
8497
_bz_remainder<typename P_expr1::T_numtype,P_numtype2> > T_expr;
8499
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
8502
template<class P_expr1, class P_expr2>
8504
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>,
8505
_bz_remainder<typename P_expr1::T_numtype,typename P_expr2::T_numtype> > >
8506
remainder(_bz_VecExpr<P_expr1> d1, _bz_VecExpr<P_expr2> d2)
8508
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>,
8509
_bz_remainder<typename P_expr1::T_numtype,typename P_expr2::T_numtype> > T_expr;
8511
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
8514
template<class P_expr1, class P_numtype2>
8516
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorPickIterConst<P_numtype2>,
8517
_bz_remainder<typename P_expr1::T_numtype,P_numtype2> > >
8518
remainder(_bz_VecExpr<P_expr1> d1, const VectorPick<P_numtype2>& d2)
8520
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorPickIterConst<P_numtype2>,
8521
_bz_remainder<typename P_expr1::T_numtype,P_numtype2> > T_expr;
8523
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
8526
template<class P_expr1>
8528
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, Range,
8529
_bz_remainder<typename P_expr1::T_numtype,int> > >
8530
remainder(_bz_VecExpr<P_expr1> d1, Range d2)
8532
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, Range,
8533
_bz_remainder<typename P_expr1::T_numtype,int> > T_expr;
8535
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
8538
template<class P_expr1, class P_numtype2, int N_length2>
8540
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, TinyVectorIterConst<P_numtype2, N_length2>,
8541
_bz_remainder<typename P_expr1::T_numtype,P_numtype2> > >
8542
remainder(_bz_VecExpr<P_expr1> d1, const TinyVector<P_numtype2, N_length2>& d2)
8544
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, TinyVectorIterConst<P_numtype2, N_length2>,
8545
_bz_remainder<typename P_expr1::T_numtype,P_numtype2> > T_expr;
8547
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
8550
template<class P_expr1>
8552
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<int>,
8553
_bz_remainder<typename P_expr1::T_numtype,int> > >
8554
remainder(_bz_VecExpr<P_expr1> d1, int d2)
8556
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<int>,
8557
_bz_remainder<typename P_expr1::T_numtype,int> > T_expr;
8559
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<int>(d2)));
8562
template<class P_expr1>
8564
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<float>,
8565
_bz_remainder<typename P_expr1::T_numtype,float> > >
8566
remainder(_bz_VecExpr<P_expr1> d1, float d2)
8568
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<float>,
8569
_bz_remainder<typename P_expr1::T_numtype,float> > T_expr;
8571
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<float>(d2)));
8574
template<class P_expr1>
8576
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<double>,
8577
_bz_remainder<typename P_expr1::T_numtype,double> > >
8578
remainder(_bz_VecExpr<P_expr1> d1, double d2)
8580
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<double>,
8581
_bz_remainder<typename P_expr1::T_numtype,double> > T_expr;
8583
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<double>(d2)));
8586
template<class P_expr1>
8588
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<long double>,
8589
_bz_remainder<typename P_expr1::T_numtype,long double> > >
8590
remainder(_bz_VecExpr<P_expr1> d1, long double d2)
8592
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<long double>,
8593
_bz_remainder<typename P_expr1::T_numtype,long double> > T_expr;
8595
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<long double>(d2)));
8598
template<class P_expr1, class T2>
8600
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<complex<T2> > ,
8601
_bz_remainder<typename P_expr1::T_numtype,complex<T2> > > >
8602
remainder(_bz_VecExpr<P_expr1> d1, complex<T2> d2)
8604
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<complex<T2> > ,
8605
_bz_remainder<typename P_expr1::T_numtype,complex<T2> > > T_expr;
8607
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<complex<T2> > (d2)));
8610
template<class P_numtype1, class P_numtype2>
8612
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
8613
_bz_remainder<P_numtype1,P_numtype2> > >
8614
remainder(const VectorPick<P_numtype1>& d1, const Vector<P_numtype2>& d2)
8616
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
8617
_bz_remainder<P_numtype1,P_numtype2> > T_expr;
8619
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
8622
template<class P_numtype1, class P_expr2>
8624
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
8625
_bz_remainder<P_numtype1,typename P_expr2::T_numtype> > >
8626
remainder(const VectorPick<P_numtype1>& d1, _bz_VecExpr<P_expr2> d2)
8628
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
8629
_bz_remainder<P_numtype1,typename P_expr2::T_numtype> > T_expr;
8631
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
8634
template<class P_numtype1, class P_numtype2>
8636
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
8637
_bz_remainder<P_numtype1,P_numtype2> > >
8638
remainder(const VectorPick<P_numtype1>& d1, const VectorPick<P_numtype2>& d2)
8640
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
8641
_bz_remainder<P_numtype1,P_numtype2> > T_expr;
8643
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
8646
template<class P_numtype1>
8648
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, Range,
8649
_bz_remainder<P_numtype1,int> > >
8650
remainder(const VectorPick<P_numtype1>& d1, Range d2)
8652
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, Range,
8653
_bz_remainder<P_numtype1,int> > T_expr;
8655
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
8658
template<class P_numtype1, class P_numtype2, int N_length2>
8660
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
8661
_bz_remainder<P_numtype1,P_numtype2> > >
8662
remainder(const VectorPick<P_numtype1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
8664
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
8665
_bz_remainder<P_numtype1,P_numtype2> > T_expr;
8667
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
8670
template<class P_numtype1>
8672
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<int>,
8673
_bz_remainder<P_numtype1,int> > >
8674
remainder(const VectorPick<P_numtype1>& d1, int d2)
8676
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<int>,
8677
_bz_remainder<P_numtype1,int> > T_expr;
8679
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
8682
template<class P_numtype1>
8684
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<float>,
8685
_bz_remainder<P_numtype1,float> > >
8686
remainder(const VectorPick<P_numtype1>& d1, float d2)
8688
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<float>,
8689
_bz_remainder<P_numtype1,float> > T_expr;
8691
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
8694
template<class P_numtype1>
8696
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<double>,
8697
_bz_remainder<P_numtype1,double> > >
8698
remainder(const VectorPick<P_numtype1>& d1, double d2)
8700
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<double>,
8701
_bz_remainder<P_numtype1,double> > T_expr;
8703
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
8706
template<class P_numtype1>
8708
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
8709
_bz_remainder<P_numtype1,long double> > >
8710
remainder(const VectorPick<P_numtype1>& d1, long double d2)
8712
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
8713
_bz_remainder<P_numtype1,long double> > T_expr;
8715
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
8718
template<class P_numtype1, class T2>
8720
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
8721
_bz_remainder<P_numtype1,complex<T2> > > >
8722
remainder(const VectorPick<P_numtype1>& d1, complex<T2> d2)
8724
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
8725
_bz_remainder<P_numtype1,complex<T2> > > T_expr;
8727
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
8730
template<class P_numtype2>
8732
_bz_VecExpr<_bz_VecExprOp<Range, VectorIterConst<P_numtype2>,
8733
_bz_remainder<int,P_numtype2> > >
8734
remainder(Range d1, const Vector<P_numtype2>& d2)
8736
typedef _bz_VecExprOp<Range, VectorIterConst<P_numtype2>,
8737
_bz_remainder<int,P_numtype2> > T_expr;
8739
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
8742
template<class P_expr2>
8744
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExpr<P_expr2>,
8745
_bz_remainder<int,typename P_expr2::T_numtype> > >
8746
remainder(Range d1, _bz_VecExpr<P_expr2> d2)
8748
typedef _bz_VecExprOp<Range, _bz_VecExpr<P_expr2>,
8749
_bz_remainder<int,typename P_expr2::T_numtype> > T_expr;
8751
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
8754
template<class P_numtype2>
8756
_bz_VecExpr<_bz_VecExprOp<Range, VectorPickIterConst<P_numtype2>,
8757
_bz_remainder<int,P_numtype2> > >
8758
remainder(Range d1, const VectorPick<P_numtype2>& d2)
8760
typedef _bz_VecExprOp<Range, VectorPickIterConst<P_numtype2>,
8761
_bz_remainder<int,P_numtype2> > T_expr;
8763
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
8768
_bz_VecExpr<_bz_VecExprOp<Range, Range,
8769
_bz_remainder<int,int> > >
8770
remainder(Range d1, Range d2)
8772
typedef _bz_VecExprOp<Range, Range,
8773
_bz_remainder<int,int> > T_expr;
8775
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
8778
template<class P_numtype2, int N_length2>
8780
_bz_VecExpr<_bz_VecExprOp<Range, TinyVectorIterConst<P_numtype2, N_length2>,
8781
_bz_remainder<int,P_numtype2> > >
8782
remainder(Range d1, const TinyVector<P_numtype2, N_length2>& d2)
8784
typedef _bz_VecExprOp<Range, TinyVectorIterConst<P_numtype2, N_length2>,
8785
_bz_remainder<int,P_numtype2> > T_expr;
8787
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
8792
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<int>,
8793
_bz_remainder<int,int> > >
8794
remainder(Range d1, int d2)
8796
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<int>,
8797
_bz_remainder<int,int> > T_expr;
8799
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<int>(d2)));
8804
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<float>,
8805
_bz_remainder<int,float> > >
8806
remainder(Range d1, float d2)
8808
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<float>,
8809
_bz_remainder<int,float> > T_expr;
8811
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<float>(d2)));
8816
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<double>,
8817
_bz_remainder<int,double> > >
8818
remainder(Range d1, double d2)
8820
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<double>,
8821
_bz_remainder<int,double> > T_expr;
8823
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<double>(d2)));
8828
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<long double>,
8829
_bz_remainder<int,long double> > >
8830
remainder(Range d1, long double d2)
8832
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<long double>,
8833
_bz_remainder<int,long double> > T_expr;
8835
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<long double>(d2)));
8840
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<complex<T2> > ,
8841
_bz_remainder<int,complex<T2> > > >
8842
remainder(Range d1, complex<T2> d2)
8844
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<complex<T2> > ,
8845
_bz_remainder<int,complex<T2> > > T_expr;
8847
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<complex<T2> > (d2)));
8850
template<class P_numtype1, int N_length1, class P_numtype2>
8852
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorIterConst<P_numtype2>,
8853
_bz_remainder<P_numtype1,P_numtype2> > >
8854
remainder(const TinyVector<P_numtype1, N_length1>& d1, const Vector<P_numtype2>& d2)
8856
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorIterConst<P_numtype2>,
8857
_bz_remainder<P_numtype1,P_numtype2> > T_expr;
8859
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
8862
template<class P_numtype1, int N_length1, class P_expr2>
8864
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>,
8865
_bz_remainder<P_numtype1,typename P_expr2::T_numtype> > >
8866
remainder(const TinyVector<P_numtype1, N_length1>& d1, _bz_VecExpr<P_expr2> d2)
8868
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>,
8869
_bz_remainder<P_numtype1,typename P_expr2::T_numtype> > T_expr;
8871
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
8874
template<class P_numtype1, int N_length1, class P_numtype2>
8876
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorPickIterConst<P_numtype2>,
8877
_bz_remainder<P_numtype1,P_numtype2> > >
8878
remainder(const TinyVector<P_numtype1, N_length1>& d1, const VectorPick<P_numtype2>& d2)
8880
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorPickIterConst<P_numtype2>,
8881
_bz_remainder<P_numtype1,P_numtype2> > T_expr;
8883
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
8886
template<class P_numtype1, int N_length1>
8888
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, Range,
8889
_bz_remainder<P_numtype1,int> > >
8890
remainder(const TinyVector<P_numtype1, N_length1>& d1, Range d2)
8892
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, Range,
8893
_bz_remainder<P_numtype1,int> > T_expr;
8895
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
8898
template<class P_numtype1, int N_length1, class P_numtype2, int N_length2>
8900
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, TinyVectorIterConst<P_numtype2, N_length2>,
8901
_bz_remainder<P_numtype1,P_numtype2> > >
8902
remainder(const TinyVector<P_numtype1, N_length1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
8904
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, TinyVectorIterConst<P_numtype2, N_length2>,
8905
_bz_remainder<P_numtype1,P_numtype2> > T_expr;
8907
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
8910
template<class P_numtype1, int N_length1>
8912
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<int>,
8913
_bz_remainder<P_numtype1,int> > >
8914
remainder(const TinyVector<P_numtype1, N_length1>& d1, int d2)
8916
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<int>,
8917
_bz_remainder<P_numtype1,int> > T_expr;
8919
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
8922
template<class P_numtype1, int N_length1>
8924
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<float>,
8925
_bz_remainder<P_numtype1,float> > >
8926
remainder(const TinyVector<P_numtype1, N_length1>& d1, float d2)
8928
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<float>,
8929
_bz_remainder<P_numtype1,float> > T_expr;
8931
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
8934
template<class P_numtype1, int N_length1>
8936
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<double>,
8937
_bz_remainder<P_numtype1,double> > >
8938
remainder(const TinyVector<P_numtype1, N_length1>& d1, double d2)
8940
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<double>,
8941
_bz_remainder<P_numtype1,double> > T_expr;
8943
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
8946
template<class P_numtype1, int N_length1>
8948
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<long double>,
8949
_bz_remainder<P_numtype1,long double> > >
8950
remainder(const TinyVector<P_numtype1, N_length1>& d1, long double d2)
8952
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<long double>,
8953
_bz_remainder<P_numtype1,long double> > T_expr;
8955
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
8958
template<class P_numtype1, int N_length1, class T2>
8960
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<complex<T2> > ,
8961
_bz_remainder<P_numtype1,complex<T2> > > >
8962
remainder(const TinyVector<P_numtype1, N_length1>& d1, complex<T2> d2)
8964
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<complex<T2> > ,
8965
_bz_remainder<P_numtype1,complex<T2> > > T_expr;
8967
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
8970
template<class P_numtype2>
8972
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, VectorIterConst<P_numtype2>,
8973
_bz_remainder<int,P_numtype2> > >
8974
remainder(int d1, const Vector<P_numtype2>& d2)
8976
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, VectorIterConst<P_numtype2>,
8977
_bz_remainder<int,P_numtype2> > T_expr;
8979
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
8982
template<class P_expr2>
8984
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, _bz_VecExpr<P_expr2>,
8985
_bz_remainder<int,typename P_expr2::T_numtype> > >
8986
remainder(int d1, _bz_VecExpr<P_expr2> d2)
8988
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, _bz_VecExpr<P_expr2>,
8989
_bz_remainder<int,typename P_expr2::T_numtype> > T_expr;
8991
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2));
8994
template<class P_numtype2>
8996
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, VectorPickIterConst<P_numtype2>,
8997
_bz_remainder<int,P_numtype2> > >
8998
remainder(int d1, const VectorPick<P_numtype2>& d2)
9000
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, VectorPickIterConst<P_numtype2>,
9001
_bz_remainder<int,P_numtype2> > T_expr;
9003
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
9008
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, Range,
9009
_bz_remainder<int,int> > >
9010
remainder(int d1, Range d2)
9012
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, Range,
9013
_bz_remainder<int,int> > T_expr;
9015
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2));
9018
template<class P_numtype2, int N_length2>
9020
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, TinyVectorIterConst<P_numtype2, N_length2>,
9021
_bz_remainder<int,P_numtype2> > >
9022
remainder(int d1, const TinyVector<P_numtype2, N_length2>& d2)
9024
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, TinyVectorIterConst<P_numtype2, N_length2>,
9025
_bz_remainder<int,P_numtype2> > T_expr;
9027
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
9030
template<class P_numtype2>
9032
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, VectorIterConst<P_numtype2>,
9033
_bz_remainder<float,P_numtype2> > >
9034
remainder(float d1, const Vector<P_numtype2>& d2)
9036
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, VectorIterConst<P_numtype2>,
9037
_bz_remainder<float,P_numtype2> > T_expr;
9039
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
9042
template<class P_expr2>
9044
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, _bz_VecExpr<P_expr2>,
9045
_bz_remainder<float,typename P_expr2::T_numtype> > >
9046
remainder(float d1, _bz_VecExpr<P_expr2> d2)
9048
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, _bz_VecExpr<P_expr2>,
9049
_bz_remainder<float,typename P_expr2::T_numtype> > T_expr;
9051
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2));
9054
template<class P_numtype2>
9056
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, VectorPickIterConst<P_numtype2>,
9057
_bz_remainder<float,P_numtype2> > >
9058
remainder(float d1, const VectorPick<P_numtype2>& d2)
9060
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, VectorPickIterConst<P_numtype2>,
9061
_bz_remainder<float,P_numtype2> > T_expr;
9063
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
9068
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, Range,
9069
_bz_remainder<float,int> > >
9070
remainder(float d1, Range d2)
9072
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, Range,
9073
_bz_remainder<float,int> > T_expr;
9075
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2));
9078
template<class P_numtype2, int N_length2>
9080
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, TinyVectorIterConst<P_numtype2, N_length2>,
9081
_bz_remainder<float,P_numtype2> > >
9082
remainder(float d1, const TinyVector<P_numtype2, N_length2>& d2)
9084
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, TinyVectorIterConst<P_numtype2, N_length2>,
9085
_bz_remainder<float,P_numtype2> > T_expr;
9087
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
9090
template<class P_numtype2>
9092
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, VectorIterConst<P_numtype2>,
9093
_bz_remainder<double,P_numtype2> > >
9094
remainder(double d1, const Vector<P_numtype2>& d2)
9096
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, VectorIterConst<P_numtype2>,
9097
_bz_remainder<double,P_numtype2> > T_expr;
9099
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
9102
template<class P_expr2>
9104
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, _bz_VecExpr<P_expr2>,
9105
_bz_remainder<double,typename P_expr2::T_numtype> > >
9106
remainder(double d1, _bz_VecExpr<P_expr2> d2)
9108
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, _bz_VecExpr<P_expr2>,
9109
_bz_remainder<double,typename P_expr2::T_numtype> > T_expr;
9111
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2));
9114
template<class P_numtype2>
9116
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, VectorPickIterConst<P_numtype2>,
9117
_bz_remainder<double,P_numtype2> > >
9118
remainder(double d1, const VectorPick<P_numtype2>& d2)
9120
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, VectorPickIterConst<P_numtype2>,
9121
_bz_remainder<double,P_numtype2> > T_expr;
9123
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
9128
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, Range,
9129
_bz_remainder<double,int> > >
9130
remainder(double d1, Range d2)
9132
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, Range,
9133
_bz_remainder<double,int> > T_expr;
9135
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2));
9138
template<class P_numtype2, int N_length2>
9140
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, TinyVectorIterConst<P_numtype2, N_length2>,
9141
_bz_remainder<double,P_numtype2> > >
9142
remainder(double d1, const TinyVector<P_numtype2, N_length2>& d2)
9144
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, TinyVectorIterConst<P_numtype2, N_length2>,
9145
_bz_remainder<double,P_numtype2> > T_expr;
9147
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
9150
template<class P_numtype2>
9152
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, VectorIterConst<P_numtype2>,
9153
_bz_remainder<long double,P_numtype2> > >
9154
remainder(long double d1, const Vector<P_numtype2>& d2)
9156
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, VectorIterConst<P_numtype2>,
9157
_bz_remainder<long double,P_numtype2> > T_expr;
9159
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
9162
template<class P_expr2>
9164
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, _bz_VecExpr<P_expr2>,
9165
_bz_remainder<long double,typename P_expr2::T_numtype> > >
9166
remainder(long double d1, _bz_VecExpr<P_expr2> d2)
9168
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, _bz_VecExpr<P_expr2>,
9169
_bz_remainder<long double,typename P_expr2::T_numtype> > T_expr;
9171
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2));
9174
template<class P_numtype2>
9176
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, VectorPickIterConst<P_numtype2>,
9177
_bz_remainder<long double,P_numtype2> > >
9178
remainder(long double d1, const VectorPick<P_numtype2>& d2)
9180
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, VectorPickIterConst<P_numtype2>,
9181
_bz_remainder<long double,P_numtype2> > T_expr;
9183
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
9188
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, Range,
9189
_bz_remainder<long double,int> > >
9190
remainder(long double d1, Range d2)
9192
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, Range,
9193
_bz_remainder<long double,int> > T_expr;
9195
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2));
9198
template<class P_numtype2, int N_length2>
9200
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, TinyVectorIterConst<P_numtype2, N_length2>,
9201
_bz_remainder<long double,P_numtype2> > >
9202
remainder(long double d1, const TinyVector<P_numtype2, N_length2>& d2)
9204
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, TinyVectorIterConst<P_numtype2, N_length2>,
9205
_bz_remainder<long double,P_numtype2> > T_expr;
9207
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
9210
template<class T1, class P_numtype2>
9212
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorIterConst<P_numtype2>,
9213
_bz_remainder<complex<T1> ,P_numtype2> > >
9214
remainder(complex<T1> d1, const Vector<P_numtype2>& d2)
9216
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorIterConst<P_numtype2>,
9217
_bz_remainder<complex<T1> ,P_numtype2> > T_expr;
9219
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
9222
template<class T1, class P_expr2>
9224
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , _bz_VecExpr<P_expr2>,
9225
_bz_remainder<complex<T1> ,typename P_expr2::T_numtype> > >
9226
remainder(complex<T1> d1, _bz_VecExpr<P_expr2> d2)
9228
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , _bz_VecExpr<P_expr2>,
9229
_bz_remainder<complex<T1> ,typename P_expr2::T_numtype> > T_expr;
9231
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2));
9234
template<class T1, class P_numtype2>
9236
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorPickIterConst<P_numtype2>,
9237
_bz_remainder<complex<T1> ,P_numtype2> > >
9238
remainder(complex<T1> d1, const VectorPick<P_numtype2>& d2)
9240
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorPickIterConst<P_numtype2>,
9241
_bz_remainder<complex<T1> ,P_numtype2> > T_expr;
9243
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
9248
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , Range,
9249
_bz_remainder<complex<T1> ,int> > >
9250
remainder(complex<T1> d1, Range d2)
9252
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , Range,
9253
_bz_remainder<complex<T1> ,int> > T_expr;
9255
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2));
9258
template<class T1, class P_numtype2, int N_length2>
9260
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , TinyVectorIterConst<P_numtype2, N_length2>,
9261
_bz_remainder<complex<T1> ,P_numtype2> > >
9262
remainder(complex<T1> d1, const TinyVector<P_numtype2, N_length2>& d2)
9264
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , TinyVectorIterConst<P_numtype2, N_length2>,
9265
_bz_remainder<complex<T1> ,P_numtype2> > T_expr;
9267
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
9272
/****************************************************************************
9274
****************************************************************************/
9276
#ifdef BZ_HAVE_IEEE_MATH
9277
template<class P_numtype1>
9279
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
9280
_bz_rint<P_numtype1> > >
9281
rint(const Vector<P_numtype1>& d1)
9283
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
9284
_bz_rint<P_numtype1> > T_expr;
9286
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
9289
template<class P_expr1>
9291
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
9292
_bz_rint<typename P_expr1::T_numtype> > >
9293
rint(_bz_VecExpr<P_expr1> d1)
9295
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
9296
_bz_rint<typename P_expr1::T_numtype> > T_expr;
9298
return _bz_VecExpr<T_expr>(T_expr(d1));
9301
template<class P_numtype1>
9303
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
9304
_bz_rint<P_numtype1> > >
9305
rint(const VectorPick<P_numtype1>& d1)
9307
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
9308
_bz_rint<P_numtype1> > T_expr;
9310
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
9315
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
9319
typedef _bz_VecExprUnaryOp<Range,
9320
_bz_rint<int> > T_expr;
9322
return _bz_VecExpr<T_expr>(T_expr(d1));
9325
template<class P_numtype1, int N_length1>
9327
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
9328
_bz_rint<P_numtype1> > >
9329
rint(const TinyVector<P_numtype1, N_length1>& d1)
9331
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
9332
_bz_rint<P_numtype1> > T_expr;
9334
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
9339
/****************************************************************************
9341
****************************************************************************/
9343
#ifdef BZ_HAVE_SYSTEM_V_MATH
9344
template<class P_numtype1>
9346
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
9347
_bz_rsqrt<P_numtype1> > >
9348
rsqrt(const Vector<P_numtype1>& d1)
9350
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
9351
_bz_rsqrt<P_numtype1> > T_expr;
9353
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
9356
template<class P_expr1>
9358
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
9359
_bz_rsqrt<typename P_expr1::T_numtype> > >
9360
rsqrt(_bz_VecExpr<P_expr1> d1)
9362
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
9363
_bz_rsqrt<typename P_expr1::T_numtype> > T_expr;
9365
return _bz_VecExpr<T_expr>(T_expr(d1));
9368
template<class P_numtype1>
9370
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
9371
_bz_rsqrt<P_numtype1> > >
9372
rsqrt(const VectorPick<P_numtype1>& d1)
9374
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
9375
_bz_rsqrt<P_numtype1> > T_expr;
9377
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
9382
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
9386
typedef _bz_VecExprUnaryOp<Range,
9387
_bz_rsqrt<int> > T_expr;
9389
return _bz_VecExpr<T_expr>(T_expr(d1));
9392
template<class P_numtype1, int N_length1>
9394
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
9395
_bz_rsqrt<P_numtype1> > >
9396
rsqrt(const TinyVector<P_numtype1, N_length1>& d1)
9398
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
9399
_bz_rsqrt<P_numtype1> > T_expr;
9401
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
9406
/****************************************************************************
9408
****************************************************************************/
9410
#ifdef BZ_HAVE_SYSTEM_V_MATH
9411
template<class P_numtype1, class P_numtype2>
9413
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
9414
_bz_scalb<P_numtype1,P_numtype2> > >
9415
scalb(const Vector<P_numtype1>& d1, const Vector<P_numtype2>& d2)
9417
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
9418
_bz_scalb<P_numtype1,P_numtype2> > T_expr;
9420
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
9423
template<class P_numtype1, class P_expr2>
9425
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
9426
_bz_scalb<P_numtype1,typename P_expr2::T_numtype> > >
9427
scalb(const Vector<P_numtype1>& d1, _bz_VecExpr<P_expr2> d2)
9429
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
9430
_bz_scalb<P_numtype1,typename P_expr2::T_numtype> > T_expr;
9432
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
9435
template<class P_numtype1, class P_numtype2>
9437
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
9438
_bz_scalb<P_numtype1,P_numtype2> > >
9439
scalb(const Vector<P_numtype1>& d1, const VectorPick<P_numtype2>& d2)
9441
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
9442
_bz_scalb<P_numtype1,P_numtype2> > T_expr;
9444
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
9447
template<class P_numtype1>
9449
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, Range,
9450
_bz_scalb<P_numtype1,int> > >
9451
scalb(const Vector<P_numtype1>& d1, Range d2)
9453
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, Range,
9454
_bz_scalb<P_numtype1,int> > T_expr;
9456
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
9459
template<class P_numtype1, class P_numtype2, int N_length2>
9461
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
9462
_bz_scalb<P_numtype1,P_numtype2> > >
9463
scalb(const Vector<P_numtype1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
9465
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
9466
_bz_scalb<P_numtype1,P_numtype2> > T_expr;
9468
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
9471
template<class P_numtype1>
9473
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<int>,
9474
_bz_scalb<P_numtype1,int> > >
9475
scalb(const Vector<P_numtype1>& d1, int d2)
9477
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<int>,
9478
_bz_scalb<P_numtype1,int> > T_expr;
9480
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
9483
template<class P_numtype1>
9485
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<float>,
9486
_bz_scalb<P_numtype1,float> > >
9487
scalb(const Vector<P_numtype1>& d1, float d2)
9489
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<float>,
9490
_bz_scalb<P_numtype1,float> > T_expr;
9492
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
9495
template<class P_numtype1>
9497
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<double>,
9498
_bz_scalb<P_numtype1,double> > >
9499
scalb(const Vector<P_numtype1>& d1, double d2)
9501
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<double>,
9502
_bz_scalb<P_numtype1,double> > T_expr;
9504
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
9507
template<class P_numtype1>
9509
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
9510
_bz_scalb<P_numtype1,long double> > >
9511
scalb(const Vector<P_numtype1>& d1, long double d2)
9513
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
9514
_bz_scalb<P_numtype1,long double> > T_expr;
9516
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
9519
template<class P_numtype1, class T2>
9521
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
9522
_bz_scalb<P_numtype1,complex<T2> > > >
9523
scalb(const Vector<P_numtype1>& d1, complex<T2> d2)
9525
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
9526
_bz_scalb<P_numtype1,complex<T2> > > T_expr;
9528
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
9531
template<class P_expr1, class P_numtype2>
9533
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorIterConst<P_numtype2>,
9534
_bz_scalb<typename P_expr1::T_numtype,P_numtype2> > >
9535
scalb(_bz_VecExpr<P_expr1> d1, const Vector<P_numtype2>& d2)
9537
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorIterConst<P_numtype2>,
9538
_bz_scalb<typename P_expr1::T_numtype,P_numtype2> > T_expr;
9540
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
9543
template<class P_expr1, class P_expr2>
9545
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>,
9546
_bz_scalb<typename P_expr1::T_numtype,typename P_expr2::T_numtype> > >
9547
scalb(_bz_VecExpr<P_expr1> d1, _bz_VecExpr<P_expr2> d2)
9549
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>,
9550
_bz_scalb<typename P_expr1::T_numtype,typename P_expr2::T_numtype> > T_expr;
9552
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
9555
template<class P_expr1, class P_numtype2>
9557
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorPickIterConst<P_numtype2>,
9558
_bz_scalb<typename P_expr1::T_numtype,P_numtype2> > >
9559
scalb(_bz_VecExpr<P_expr1> d1, const VectorPick<P_numtype2>& d2)
9561
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorPickIterConst<P_numtype2>,
9562
_bz_scalb<typename P_expr1::T_numtype,P_numtype2> > T_expr;
9564
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
9567
template<class P_expr1>
9569
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, Range,
9570
_bz_scalb<typename P_expr1::T_numtype,int> > >
9571
scalb(_bz_VecExpr<P_expr1> d1, Range d2)
9573
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, Range,
9574
_bz_scalb<typename P_expr1::T_numtype,int> > T_expr;
9576
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
9579
template<class P_expr1, class P_numtype2, int N_length2>
9581
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, TinyVectorIterConst<P_numtype2, N_length2>,
9582
_bz_scalb<typename P_expr1::T_numtype,P_numtype2> > >
9583
scalb(_bz_VecExpr<P_expr1> d1, const TinyVector<P_numtype2, N_length2>& d2)
9585
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, TinyVectorIterConst<P_numtype2, N_length2>,
9586
_bz_scalb<typename P_expr1::T_numtype,P_numtype2> > T_expr;
9588
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
9591
template<class P_expr1>
9593
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<int>,
9594
_bz_scalb<typename P_expr1::T_numtype,int> > >
9595
scalb(_bz_VecExpr<P_expr1> d1, int d2)
9597
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<int>,
9598
_bz_scalb<typename P_expr1::T_numtype,int> > T_expr;
9600
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<int>(d2)));
9603
template<class P_expr1>
9605
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<float>,
9606
_bz_scalb<typename P_expr1::T_numtype,float> > >
9607
scalb(_bz_VecExpr<P_expr1> d1, float d2)
9609
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<float>,
9610
_bz_scalb<typename P_expr1::T_numtype,float> > T_expr;
9612
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<float>(d2)));
9615
template<class P_expr1>
9617
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<double>,
9618
_bz_scalb<typename P_expr1::T_numtype,double> > >
9619
scalb(_bz_VecExpr<P_expr1> d1, double d2)
9621
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<double>,
9622
_bz_scalb<typename P_expr1::T_numtype,double> > T_expr;
9624
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<double>(d2)));
9627
template<class P_expr1>
9629
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<long double>,
9630
_bz_scalb<typename P_expr1::T_numtype,long double> > >
9631
scalb(_bz_VecExpr<P_expr1> d1, long double d2)
9633
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<long double>,
9634
_bz_scalb<typename P_expr1::T_numtype,long double> > T_expr;
9636
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<long double>(d2)));
9639
template<class P_expr1, class T2>
9641
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<complex<T2> > ,
9642
_bz_scalb<typename P_expr1::T_numtype,complex<T2> > > >
9643
scalb(_bz_VecExpr<P_expr1> d1, complex<T2> d2)
9645
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<complex<T2> > ,
9646
_bz_scalb<typename P_expr1::T_numtype,complex<T2> > > T_expr;
9648
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<complex<T2> > (d2)));
9651
template<class P_numtype1, class P_numtype2>
9653
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
9654
_bz_scalb<P_numtype1,P_numtype2> > >
9655
scalb(const VectorPick<P_numtype1>& d1, const Vector<P_numtype2>& d2)
9657
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
9658
_bz_scalb<P_numtype1,P_numtype2> > T_expr;
9660
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
9663
template<class P_numtype1, class P_expr2>
9665
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
9666
_bz_scalb<P_numtype1,typename P_expr2::T_numtype> > >
9667
scalb(const VectorPick<P_numtype1>& d1, _bz_VecExpr<P_expr2> d2)
9669
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
9670
_bz_scalb<P_numtype1,typename P_expr2::T_numtype> > T_expr;
9672
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
9675
template<class P_numtype1, class P_numtype2>
9677
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
9678
_bz_scalb<P_numtype1,P_numtype2> > >
9679
scalb(const VectorPick<P_numtype1>& d1, const VectorPick<P_numtype2>& d2)
9681
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
9682
_bz_scalb<P_numtype1,P_numtype2> > T_expr;
9684
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
9687
template<class P_numtype1>
9689
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, Range,
9690
_bz_scalb<P_numtype1,int> > >
9691
scalb(const VectorPick<P_numtype1>& d1, Range d2)
9693
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, Range,
9694
_bz_scalb<P_numtype1,int> > T_expr;
9696
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
9699
template<class P_numtype1, class P_numtype2, int N_length2>
9701
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
9702
_bz_scalb<P_numtype1,P_numtype2> > >
9703
scalb(const VectorPick<P_numtype1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
9705
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
9706
_bz_scalb<P_numtype1,P_numtype2> > T_expr;
9708
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
9711
template<class P_numtype1>
9713
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<int>,
9714
_bz_scalb<P_numtype1,int> > >
9715
scalb(const VectorPick<P_numtype1>& d1, int d2)
9717
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<int>,
9718
_bz_scalb<P_numtype1,int> > T_expr;
9720
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
9723
template<class P_numtype1>
9725
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<float>,
9726
_bz_scalb<P_numtype1,float> > >
9727
scalb(const VectorPick<P_numtype1>& d1, float d2)
9729
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<float>,
9730
_bz_scalb<P_numtype1,float> > T_expr;
9732
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
9735
template<class P_numtype1>
9737
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<double>,
9738
_bz_scalb<P_numtype1,double> > >
9739
scalb(const VectorPick<P_numtype1>& d1, double d2)
9741
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<double>,
9742
_bz_scalb<P_numtype1,double> > T_expr;
9744
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
9747
template<class P_numtype1>
9749
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
9750
_bz_scalb<P_numtype1,long double> > >
9751
scalb(const VectorPick<P_numtype1>& d1, long double d2)
9753
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
9754
_bz_scalb<P_numtype1,long double> > T_expr;
9756
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
9759
template<class P_numtype1, class T2>
9761
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
9762
_bz_scalb<P_numtype1,complex<T2> > > >
9763
scalb(const VectorPick<P_numtype1>& d1, complex<T2> d2)
9765
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
9766
_bz_scalb<P_numtype1,complex<T2> > > T_expr;
9768
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
9771
template<class P_numtype2>
9773
_bz_VecExpr<_bz_VecExprOp<Range, VectorIterConst<P_numtype2>,
9774
_bz_scalb<int,P_numtype2> > >
9775
scalb(Range d1, const Vector<P_numtype2>& d2)
9777
typedef _bz_VecExprOp<Range, VectorIterConst<P_numtype2>,
9778
_bz_scalb<int,P_numtype2> > T_expr;
9780
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
9783
template<class P_expr2>
9785
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExpr<P_expr2>,
9786
_bz_scalb<int,typename P_expr2::T_numtype> > >
9787
scalb(Range d1, _bz_VecExpr<P_expr2> d2)
9789
typedef _bz_VecExprOp<Range, _bz_VecExpr<P_expr2>,
9790
_bz_scalb<int,typename P_expr2::T_numtype> > T_expr;
9792
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
9795
template<class P_numtype2>
9797
_bz_VecExpr<_bz_VecExprOp<Range, VectorPickIterConst<P_numtype2>,
9798
_bz_scalb<int,P_numtype2> > >
9799
scalb(Range d1, const VectorPick<P_numtype2>& d2)
9801
typedef _bz_VecExprOp<Range, VectorPickIterConst<P_numtype2>,
9802
_bz_scalb<int,P_numtype2> > T_expr;
9804
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
9809
_bz_VecExpr<_bz_VecExprOp<Range, Range,
9810
_bz_scalb<int,int> > >
9811
scalb(Range d1, Range d2)
9813
typedef _bz_VecExprOp<Range, Range,
9814
_bz_scalb<int,int> > T_expr;
9816
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
9819
template<class P_numtype2, int N_length2>
9821
_bz_VecExpr<_bz_VecExprOp<Range, TinyVectorIterConst<P_numtype2, N_length2>,
9822
_bz_scalb<int,P_numtype2> > >
9823
scalb(Range d1, const TinyVector<P_numtype2, N_length2>& d2)
9825
typedef _bz_VecExprOp<Range, TinyVectorIterConst<P_numtype2, N_length2>,
9826
_bz_scalb<int,P_numtype2> > T_expr;
9828
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
9833
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<int>,
9834
_bz_scalb<int,int> > >
9835
scalb(Range d1, int d2)
9837
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<int>,
9838
_bz_scalb<int,int> > T_expr;
9840
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<int>(d2)));
9845
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<float>,
9846
_bz_scalb<int,float> > >
9847
scalb(Range d1, float d2)
9849
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<float>,
9850
_bz_scalb<int,float> > T_expr;
9852
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<float>(d2)));
9857
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<double>,
9858
_bz_scalb<int,double> > >
9859
scalb(Range d1, double d2)
9861
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<double>,
9862
_bz_scalb<int,double> > T_expr;
9864
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<double>(d2)));
9869
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<long double>,
9870
_bz_scalb<int,long double> > >
9871
scalb(Range d1, long double d2)
9873
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<long double>,
9874
_bz_scalb<int,long double> > T_expr;
9876
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<long double>(d2)));
9881
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<complex<T2> > ,
9882
_bz_scalb<int,complex<T2> > > >
9883
scalb(Range d1, complex<T2> d2)
9885
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<complex<T2> > ,
9886
_bz_scalb<int,complex<T2> > > T_expr;
9888
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<complex<T2> > (d2)));
9891
template<class P_numtype1, int N_length1, class P_numtype2>
9893
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorIterConst<P_numtype2>,
9894
_bz_scalb<P_numtype1,P_numtype2> > >
9895
scalb(const TinyVector<P_numtype1, N_length1>& d1, const Vector<P_numtype2>& d2)
9897
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorIterConst<P_numtype2>,
9898
_bz_scalb<P_numtype1,P_numtype2> > T_expr;
9900
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
9903
template<class P_numtype1, int N_length1, class P_expr2>
9905
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>,
9906
_bz_scalb<P_numtype1,typename P_expr2::T_numtype> > >
9907
scalb(const TinyVector<P_numtype1, N_length1>& d1, _bz_VecExpr<P_expr2> d2)
9909
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>,
9910
_bz_scalb<P_numtype1,typename P_expr2::T_numtype> > T_expr;
9912
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
9915
template<class P_numtype1, int N_length1, class P_numtype2>
9917
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorPickIterConst<P_numtype2>,
9918
_bz_scalb<P_numtype1,P_numtype2> > >
9919
scalb(const TinyVector<P_numtype1, N_length1>& d1, const VectorPick<P_numtype2>& d2)
9921
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorPickIterConst<P_numtype2>,
9922
_bz_scalb<P_numtype1,P_numtype2> > T_expr;
9924
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
9927
template<class P_numtype1, int N_length1>
9929
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, Range,
9930
_bz_scalb<P_numtype1,int> > >
9931
scalb(const TinyVector<P_numtype1, N_length1>& d1, Range d2)
9933
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, Range,
9934
_bz_scalb<P_numtype1,int> > T_expr;
9936
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
9939
template<class P_numtype1, int N_length1, class P_numtype2, int N_length2>
9941
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, TinyVectorIterConst<P_numtype2, N_length2>,
9942
_bz_scalb<P_numtype1,P_numtype2> > >
9943
scalb(const TinyVector<P_numtype1, N_length1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
9945
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, TinyVectorIterConst<P_numtype2, N_length2>,
9946
_bz_scalb<P_numtype1,P_numtype2> > T_expr;
9948
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
9951
template<class P_numtype1, int N_length1>
9953
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<int>,
9954
_bz_scalb<P_numtype1,int> > >
9955
scalb(const TinyVector<P_numtype1, N_length1>& d1, int d2)
9957
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<int>,
9958
_bz_scalb<P_numtype1,int> > T_expr;
9960
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
9963
template<class P_numtype1, int N_length1>
9965
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<float>,
9966
_bz_scalb<P_numtype1,float> > >
9967
scalb(const TinyVector<P_numtype1, N_length1>& d1, float d2)
9969
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<float>,
9970
_bz_scalb<P_numtype1,float> > T_expr;
9972
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
9975
template<class P_numtype1, int N_length1>
9977
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<double>,
9978
_bz_scalb<P_numtype1,double> > >
9979
scalb(const TinyVector<P_numtype1, N_length1>& d1, double d2)
9981
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<double>,
9982
_bz_scalb<P_numtype1,double> > T_expr;
9984
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
9987
template<class P_numtype1, int N_length1>
9989
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<long double>,
9990
_bz_scalb<P_numtype1,long double> > >
9991
scalb(const TinyVector<P_numtype1, N_length1>& d1, long double d2)
9993
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<long double>,
9994
_bz_scalb<P_numtype1,long double> > T_expr;
9996
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
9999
template<class P_numtype1, int N_length1, class T2>
10001
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<complex<T2> > ,
10002
_bz_scalb<P_numtype1,complex<T2> > > >
10003
scalb(const TinyVector<P_numtype1, N_length1>& d1, complex<T2> d2)
10005
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<complex<T2> > ,
10006
_bz_scalb<P_numtype1,complex<T2> > > T_expr;
10008
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
10011
template<class P_numtype2>
10013
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, VectorIterConst<P_numtype2>,
10014
_bz_scalb<int,P_numtype2> > >
10015
scalb(int d1, const Vector<P_numtype2>& d2)
10017
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, VectorIterConst<P_numtype2>,
10018
_bz_scalb<int,P_numtype2> > T_expr;
10020
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
10023
template<class P_expr2>
10025
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, _bz_VecExpr<P_expr2>,
10026
_bz_scalb<int,typename P_expr2::T_numtype> > >
10027
scalb(int d1, _bz_VecExpr<P_expr2> d2)
10029
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, _bz_VecExpr<P_expr2>,
10030
_bz_scalb<int,typename P_expr2::T_numtype> > T_expr;
10032
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2));
10035
template<class P_numtype2>
10037
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, VectorPickIterConst<P_numtype2>,
10038
_bz_scalb<int,P_numtype2> > >
10039
scalb(int d1, const VectorPick<P_numtype2>& d2)
10041
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, VectorPickIterConst<P_numtype2>,
10042
_bz_scalb<int,P_numtype2> > T_expr;
10044
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
10049
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, Range,
10050
_bz_scalb<int,int> > >
10051
scalb(int d1, Range d2)
10053
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, Range,
10054
_bz_scalb<int,int> > T_expr;
10056
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2));
10059
template<class P_numtype2, int N_length2>
10061
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, TinyVectorIterConst<P_numtype2, N_length2>,
10062
_bz_scalb<int,P_numtype2> > >
10063
scalb(int d1, const TinyVector<P_numtype2, N_length2>& d2)
10065
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, TinyVectorIterConst<P_numtype2, N_length2>,
10066
_bz_scalb<int,P_numtype2> > T_expr;
10068
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
10071
template<class P_numtype2>
10073
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, VectorIterConst<P_numtype2>,
10074
_bz_scalb<float,P_numtype2> > >
10075
scalb(float d1, const Vector<P_numtype2>& d2)
10077
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, VectorIterConst<P_numtype2>,
10078
_bz_scalb<float,P_numtype2> > T_expr;
10080
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
10083
template<class P_expr2>
10085
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, _bz_VecExpr<P_expr2>,
10086
_bz_scalb<float,typename P_expr2::T_numtype> > >
10087
scalb(float d1, _bz_VecExpr<P_expr2> d2)
10089
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, _bz_VecExpr<P_expr2>,
10090
_bz_scalb<float,typename P_expr2::T_numtype> > T_expr;
10092
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2));
10095
template<class P_numtype2>
10097
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, VectorPickIterConst<P_numtype2>,
10098
_bz_scalb<float,P_numtype2> > >
10099
scalb(float d1, const VectorPick<P_numtype2>& d2)
10101
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, VectorPickIterConst<P_numtype2>,
10102
_bz_scalb<float,P_numtype2> > T_expr;
10104
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
10109
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, Range,
10110
_bz_scalb<float,int> > >
10111
scalb(float d1, Range d2)
10113
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, Range,
10114
_bz_scalb<float,int> > T_expr;
10116
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2));
10119
template<class P_numtype2, int N_length2>
10121
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, TinyVectorIterConst<P_numtype2, N_length2>,
10122
_bz_scalb<float,P_numtype2> > >
10123
scalb(float d1, const TinyVector<P_numtype2, N_length2>& d2)
10125
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, TinyVectorIterConst<P_numtype2, N_length2>,
10126
_bz_scalb<float,P_numtype2> > T_expr;
10128
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
10131
template<class P_numtype2>
10133
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, VectorIterConst<P_numtype2>,
10134
_bz_scalb<double,P_numtype2> > >
10135
scalb(double d1, const Vector<P_numtype2>& d2)
10137
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, VectorIterConst<P_numtype2>,
10138
_bz_scalb<double,P_numtype2> > T_expr;
10140
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
10143
template<class P_expr2>
10145
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, _bz_VecExpr<P_expr2>,
10146
_bz_scalb<double,typename P_expr2::T_numtype> > >
10147
scalb(double d1, _bz_VecExpr<P_expr2> d2)
10149
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, _bz_VecExpr<P_expr2>,
10150
_bz_scalb<double,typename P_expr2::T_numtype> > T_expr;
10152
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2));
10155
template<class P_numtype2>
10157
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, VectorPickIterConst<P_numtype2>,
10158
_bz_scalb<double,P_numtype2> > >
10159
scalb(double d1, const VectorPick<P_numtype2>& d2)
10161
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, VectorPickIterConst<P_numtype2>,
10162
_bz_scalb<double,P_numtype2> > T_expr;
10164
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
10169
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, Range,
10170
_bz_scalb<double,int> > >
10171
scalb(double d1, Range d2)
10173
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, Range,
10174
_bz_scalb<double,int> > T_expr;
10176
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2));
10179
template<class P_numtype2, int N_length2>
10181
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, TinyVectorIterConst<P_numtype2, N_length2>,
10182
_bz_scalb<double,P_numtype2> > >
10183
scalb(double d1, const TinyVector<P_numtype2, N_length2>& d2)
10185
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, TinyVectorIterConst<P_numtype2, N_length2>,
10186
_bz_scalb<double,P_numtype2> > T_expr;
10188
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
10191
template<class P_numtype2>
10193
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, VectorIterConst<P_numtype2>,
10194
_bz_scalb<long double,P_numtype2> > >
10195
scalb(long double d1, const Vector<P_numtype2>& d2)
10197
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, VectorIterConst<P_numtype2>,
10198
_bz_scalb<long double,P_numtype2> > T_expr;
10200
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
10203
template<class P_expr2>
10205
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, _bz_VecExpr<P_expr2>,
10206
_bz_scalb<long double,typename P_expr2::T_numtype> > >
10207
scalb(long double d1, _bz_VecExpr<P_expr2> d2)
10209
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, _bz_VecExpr<P_expr2>,
10210
_bz_scalb<long double,typename P_expr2::T_numtype> > T_expr;
10212
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2));
10215
template<class P_numtype2>
10217
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, VectorPickIterConst<P_numtype2>,
10218
_bz_scalb<long double,P_numtype2> > >
10219
scalb(long double d1, const VectorPick<P_numtype2>& d2)
10221
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, VectorPickIterConst<P_numtype2>,
10222
_bz_scalb<long double,P_numtype2> > T_expr;
10224
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
10229
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, Range,
10230
_bz_scalb<long double,int> > >
10231
scalb(long double d1, Range d2)
10233
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, Range,
10234
_bz_scalb<long double,int> > T_expr;
10236
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2));
10239
template<class P_numtype2, int N_length2>
10241
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, TinyVectorIterConst<P_numtype2, N_length2>,
10242
_bz_scalb<long double,P_numtype2> > >
10243
scalb(long double d1, const TinyVector<P_numtype2, N_length2>& d2)
10245
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, TinyVectorIterConst<P_numtype2, N_length2>,
10246
_bz_scalb<long double,P_numtype2> > T_expr;
10248
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
10251
template<class T1, class P_numtype2>
10253
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorIterConst<P_numtype2>,
10254
_bz_scalb<complex<T1> ,P_numtype2> > >
10255
scalb(complex<T1> d1, const Vector<P_numtype2>& d2)
10257
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorIterConst<P_numtype2>,
10258
_bz_scalb<complex<T1> ,P_numtype2> > T_expr;
10260
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
10263
template<class T1, class P_expr2>
10265
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , _bz_VecExpr<P_expr2>,
10266
_bz_scalb<complex<T1> ,typename P_expr2::T_numtype> > >
10267
scalb(complex<T1> d1, _bz_VecExpr<P_expr2> d2)
10269
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , _bz_VecExpr<P_expr2>,
10270
_bz_scalb<complex<T1> ,typename P_expr2::T_numtype> > T_expr;
10272
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2));
10275
template<class T1, class P_numtype2>
10277
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorPickIterConst<P_numtype2>,
10278
_bz_scalb<complex<T1> ,P_numtype2> > >
10279
scalb(complex<T1> d1, const VectorPick<P_numtype2>& d2)
10281
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorPickIterConst<P_numtype2>,
10282
_bz_scalb<complex<T1> ,P_numtype2> > T_expr;
10284
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
10289
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , Range,
10290
_bz_scalb<complex<T1> ,int> > >
10291
scalb(complex<T1> d1, Range d2)
10293
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , Range,
10294
_bz_scalb<complex<T1> ,int> > T_expr;
10296
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2));
10299
template<class T1, class P_numtype2, int N_length2>
10301
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , TinyVectorIterConst<P_numtype2, N_length2>,
10302
_bz_scalb<complex<T1> ,P_numtype2> > >
10303
scalb(complex<T1> d1, const TinyVector<P_numtype2, N_length2>& d2)
10305
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , TinyVectorIterConst<P_numtype2, N_length2>,
10306
_bz_scalb<complex<T1> ,P_numtype2> > T_expr;
10308
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
10313
/****************************************************************************
10315
****************************************************************************/
10317
template<class P_numtype1>
10319
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
10320
_bz_sin<P_numtype1> > >
10321
sin(const Vector<P_numtype1>& d1)
10323
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
10324
_bz_sin<P_numtype1> > T_expr;
10326
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
10329
template<class P_expr1>
10331
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
10332
_bz_sin<typename P_expr1::T_numtype> > >
10333
sin(_bz_VecExpr<P_expr1> d1)
10335
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
10336
_bz_sin<typename P_expr1::T_numtype> > T_expr;
10338
return _bz_VecExpr<T_expr>(T_expr(d1));
10341
template<class P_numtype1>
10343
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
10344
_bz_sin<P_numtype1> > >
10345
sin(const VectorPick<P_numtype1>& d1)
10347
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
10348
_bz_sin<P_numtype1> > T_expr;
10350
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
10355
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
10359
typedef _bz_VecExprUnaryOp<Range,
10360
_bz_sin<int> > T_expr;
10362
return _bz_VecExpr<T_expr>(T_expr(d1));
10365
template<class P_numtype1, int N_length1>
10367
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
10368
_bz_sin<P_numtype1> > >
10369
sin(const TinyVector<P_numtype1, N_length1>& d1)
10371
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
10372
_bz_sin<P_numtype1> > T_expr;
10374
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
10378
/****************************************************************************
10380
****************************************************************************/
10382
template<class P_numtype1>
10384
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
10385
_bz_sinh<P_numtype1> > >
10386
sinh(const Vector<P_numtype1>& d1)
10388
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
10389
_bz_sinh<P_numtype1> > T_expr;
10391
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
10394
template<class P_expr1>
10396
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
10397
_bz_sinh<typename P_expr1::T_numtype> > >
10398
sinh(_bz_VecExpr<P_expr1> d1)
10400
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
10401
_bz_sinh<typename P_expr1::T_numtype> > T_expr;
10403
return _bz_VecExpr<T_expr>(T_expr(d1));
10406
template<class P_numtype1>
10408
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
10409
_bz_sinh<P_numtype1> > >
10410
sinh(const VectorPick<P_numtype1>& d1)
10412
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
10413
_bz_sinh<P_numtype1> > T_expr;
10415
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
10420
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
10424
typedef _bz_VecExprUnaryOp<Range,
10425
_bz_sinh<int> > T_expr;
10427
return _bz_VecExpr<T_expr>(T_expr(d1));
10430
template<class P_numtype1, int N_length1>
10432
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
10433
_bz_sinh<P_numtype1> > >
10434
sinh(const TinyVector<P_numtype1, N_length1>& d1)
10436
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
10437
_bz_sinh<P_numtype1> > T_expr;
10439
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
10443
/****************************************************************************
10445
****************************************************************************/
10447
template<class P_numtype1>
10449
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
10450
_bz_sqr<P_numtype1> > >
10451
sqr(const Vector<P_numtype1>& d1)
10453
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
10454
_bz_sqr<P_numtype1> > T_expr;
10456
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
10459
template<class P_expr1>
10461
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
10462
_bz_sqr<typename P_expr1::T_numtype> > >
10463
sqr(_bz_VecExpr<P_expr1> d1)
10465
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
10466
_bz_sqr<typename P_expr1::T_numtype> > T_expr;
10468
return _bz_VecExpr<T_expr>(T_expr(d1));
10471
template<class P_numtype1>
10473
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
10474
_bz_sqr<P_numtype1> > >
10475
sqr(const VectorPick<P_numtype1>& d1)
10477
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
10478
_bz_sqr<P_numtype1> > T_expr;
10480
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
10485
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
10489
typedef _bz_VecExprUnaryOp<Range,
10490
_bz_sqr<int> > T_expr;
10492
return _bz_VecExpr<T_expr>(T_expr(d1));
10495
template<class P_numtype1, int N_length1>
10497
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
10498
_bz_sqr<P_numtype1> > >
10499
sqr(const TinyVector<P_numtype1, N_length1>& d1)
10501
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
10502
_bz_sqr<P_numtype1> > T_expr;
10504
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
10508
/****************************************************************************
10510
****************************************************************************/
10512
template<class P_numtype1>
10514
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
10515
_bz_sqrt<P_numtype1> > >
10516
sqrt(const Vector<P_numtype1>& d1)
10518
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
10519
_bz_sqrt<P_numtype1> > T_expr;
10521
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
10524
template<class P_expr1>
10526
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
10527
_bz_sqrt<typename P_expr1::T_numtype> > >
10528
sqrt(_bz_VecExpr<P_expr1> d1)
10530
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
10531
_bz_sqrt<typename P_expr1::T_numtype> > T_expr;
10533
return _bz_VecExpr<T_expr>(T_expr(d1));
10536
template<class P_numtype1>
10538
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
10539
_bz_sqrt<P_numtype1> > >
10540
sqrt(const VectorPick<P_numtype1>& d1)
10542
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
10543
_bz_sqrt<P_numtype1> > T_expr;
10545
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
10550
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
10554
typedef _bz_VecExprUnaryOp<Range,
10555
_bz_sqrt<int> > T_expr;
10557
return _bz_VecExpr<T_expr>(T_expr(d1));
10560
template<class P_numtype1, int N_length1>
10562
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
10563
_bz_sqrt<P_numtype1> > >
10564
sqrt(const TinyVector<P_numtype1, N_length1>& d1)
10566
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
10567
_bz_sqrt<P_numtype1> > T_expr;
10569
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
10573
/****************************************************************************
10575
****************************************************************************/
10577
template<class P_numtype1>
10579
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
10580
_bz_tan<P_numtype1> > >
10581
tan(const Vector<P_numtype1>& d1)
10583
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
10584
_bz_tan<P_numtype1> > T_expr;
10586
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
10589
template<class P_expr1>
10591
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
10592
_bz_tan<typename P_expr1::T_numtype> > >
10593
tan(_bz_VecExpr<P_expr1> d1)
10595
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
10596
_bz_tan<typename P_expr1::T_numtype> > T_expr;
10598
return _bz_VecExpr<T_expr>(T_expr(d1));
10601
template<class P_numtype1>
10603
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
10604
_bz_tan<P_numtype1> > >
10605
tan(const VectorPick<P_numtype1>& d1)
10607
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
10608
_bz_tan<P_numtype1> > T_expr;
10610
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
10615
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
10619
typedef _bz_VecExprUnaryOp<Range,
10620
_bz_tan<int> > T_expr;
10622
return _bz_VecExpr<T_expr>(T_expr(d1));
10625
template<class P_numtype1, int N_length1>
10627
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
10628
_bz_tan<P_numtype1> > >
10629
tan(const TinyVector<P_numtype1, N_length1>& d1)
10631
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
10632
_bz_tan<P_numtype1> > T_expr;
10634
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
10638
/****************************************************************************
10640
****************************************************************************/
10642
template<class P_numtype1>
10644
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
10645
_bz_tanh<P_numtype1> > >
10646
tanh(const Vector<P_numtype1>& d1)
10648
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
10649
_bz_tanh<P_numtype1> > T_expr;
10651
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
10654
template<class P_expr1>
10656
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
10657
_bz_tanh<typename P_expr1::T_numtype> > >
10658
tanh(_bz_VecExpr<P_expr1> d1)
10660
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
10661
_bz_tanh<typename P_expr1::T_numtype> > T_expr;
10663
return _bz_VecExpr<T_expr>(T_expr(d1));
10666
template<class P_numtype1>
10668
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
10669
_bz_tanh<P_numtype1> > >
10670
tanh(const VectorPick<P_numtype1>& d1)
10672
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
10673
_bz_tanh<P_numtype1> > T_expr;
10675
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
10680
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
10684
typedef _bz_VecExprUnaryOp<Range,
10685
_bz_tanh<int> > T_expr;
10687
return _bz_VecExpr<T_expr>(T_expr(d1));
10690
template<class P_numtype1, int N_length1>
10692
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
10693
_bz_tanh<P_numtype1> > >
10694
tanh(const TinyVector<P_numtype1, N_length1>& d1)
10696
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
10697
_bz_tanh<P_numtype1> > T_expr;
10699
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
10703
/****************************************************************************
10705
****************************************************************************/
10707
#ifdef BZ_HAVE_SYSTEM_V_MATH
10708
template<class P_numtype1>
10710
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
10711
_bz_uitrunc<P_numtype1> > >
10712
uitrunc(const Vector<P_numtype1>& d1)
10714
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
10715
_bz_uitrunc<P_numtype1> > T_expr;
10717
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
10720
template<class P_expr1>
10722
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
10723
_bz_uitrunc<typename P_expr1::T_numtype> > >
10724
uitrunc(_bz_VecExpr<P_expr1> d1)
10726
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
10727
_bz_uitrunc<typename P_expr1::T_numtype> > T_expr;
10729
return _bz_VecExpr<T_expr>(T_expr(d1));
10732
template<class P_numtype1>
10734
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
10735
_bz_uitrunc<P_numtype1> > >
10736
uitrunc(const VectorPick<P_numtype1>& d1)
10738
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
10739
_bz_uitrunc<P_numtype1> > T_expr;
10741
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
10746
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
10747
_bz_uitrunc<int> > >
10750
typedef _bz_VecExprUnaryOp<Range,
10751
_bz_uitrunc<int> > T_expr;
10753
return _bz_VecExpr<T_expr>(T_expr(d1));
10756
template<class P_numtype1, int N_length1>
10758
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
10759
_bz_uitrunc<P_numtype1> > >
10760
uitrunc(const TinyVector<P_numtype1, N_length1>& d1)
10762
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
10763
_bz_uitrunc<P_numtype1> > T_expr;
10765
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
10770
/****************************************************************************
10772
****************************************************************************/
10774
#ifdef BZ_HAVE_SYSTEM_V_MATH
10775
template<class P_numtype1, class P_numtype2>
10777
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
10778
_bz_unordered<P_numtype1,P_numtype2> > >
10779
unordered(const Vector<P_numtype1>& d1, const Vector<P_numtype2>& d2)
10781
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
10782
_bz_unordered<P_numtype1,P_numtype2> > T_expr;
10784
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
10787
template<class P_numtype1, class P_expr2>
10789
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
10790
_bz_unordered<P_numtype1,typename P_expr2::T_numtype> > >
10791
unordered(const Vector<P_numtype1>& d1, _bz_VecExpr<P_expr2> d2)
10793
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
10794
_bz_unordered<P_numtype1,typename P_expr2::T_numtype> > T_expr;
10796
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
10799
template<class P_numtype1, class P_numtype2>
10801
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
10802
_bz_unordered<P_numtype1,P_numtype2> > >
10803
unordered(const Vector<P_numtype1>& d1, const VectorPick<P_numtype2>& d2)
10805
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
10806
_bz_unordered<P_numtype1,P_numtype2> > T_expr;
10808
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
10811
template<class P_numtype1>
10813
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, Range,
10814
_bz_unordered<P_numtype1,int> > >
10815
unordered(const Vector<P_numtype1>& d1, Range d2)
10817
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, Range,
10818
_bz_unordered<P_numtype1,int> > T_expr;
10820
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
10823
template<class P_numtype1, class P_numtype2, int N_length2>
10825
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
10826
_bz_unordered<P_numtype1,P_numtype2> > >
10827
unordered(const Vector<P_numtype1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
10829
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
10830
_bz_unordered<P_numtype1,P_numtype2> > T_expr;
10832
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
10835
template<class P_numtype1>
10837
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<int>,
10838
_bz_unordered<P_numtype1,int> > >
10839
unordered(const Vector<P_numtype1>& d1, int d2)
10841
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<int>,
10842
_bz_unordered<P_numtype1,int> > T_expr;
10844
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
10847
template<class P_numtype1>
10849
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<float>,
10850
_bz_unordered<P_numtype1,float> > >
10851
unordered(const Vector<P_numtype1>& d1, float d2)
10853
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<float>,
10854
_bz_unordered<P_numtype1,float> > T_expr;
10856
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
10859
template<class P_numtype1>
10861
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<double>,
10862
_bz_unordered<P_numtype1,double> > >
10863
unordered(const Vector<P_numtype1>& d1, double d2)
10865
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<double>,
10866
_bz_unordered<P_numtype1,double> > T_expr;
10868
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
10871
template<class P_numtype1>
10873
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
10874
_bz_unordered<P_numtype1,long double> > >
10875
unordered(const Vector<P_numtype1>& d1, long double d2)
10877
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
10878
_bz_unordered<P_numtype1,long double> > T_expr;
10880
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
10883
template<class P_numtype1, class T2>
10885
_bz_VecExpr<_bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
10886
_bz_unordered<P_numtype1,complex<T2> > > >
10887
unordered(const Vector<P_numtype1>& d1, complex<T2> d2)
10889
typedef _bz_VecExprOp<VectorIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
10890
_bz_unordered<P_numtype1,complex<T2> > > T_expr;
10892
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
10895
template<class P_expr1, class P_numtype2>
10897
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorIterConst<P_numtype2>,
10898
_bz_unordered<typename P_expr1::T_numtype,P_numtype2> > >
10899
unordered(_bz_VecExpr<P_expr1> d1, const Vector<P_numtype2>& d2)
10901
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorIterConst<P_numtype2>,
10902
_bz_unordered<typename P_expr1::T_numtype,P_numtype2> > T_expr;
10904
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
10907
template<class P_expr1, class P_expr2>
10909
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>,
10910
_bz_unordered<typename P_expr1::T_numtype,typename P_expr2::T_numtype> > >
10911
unordered(_bz_VecExpr<P_expr1> d1, _bz_VecExpr<P_expr2> d2)
10913
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExpr<P_expr2>,
10914
_bz_unordered<typename P_expr1::T_numtype,typename P_expr2::T_numtype> > T_expr;
10916
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
10919
template<class P_expr1, class P_numtype2>
10921
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorPickIterConst<P_numtype2>,
10922
_bz_unordered<typename P_expr1::T_numtype,P_numtype2> > >
10923
unordered(_bz_VecExpr<P_expr1> d1, const VectorPick<P_numtype2>& d2)
10925
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, VectorPickIterConst<P_numtype2>,
10926
_bz_unordered<typename P_expr1::T_numtype,P_numtype2> > T_expr;
10928
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
10931
template<class P_expr1>
10933
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, Range,
10934
_bz_unordered<typename P_expr1::T_numtype,int> > >
10935
unordered(_bz_VecExpr<P_expr1> d1, Range d2)
10937
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, Range,
10938
_bz_unordered<typename P_expr1::T_numtype,int> > T_expr;
10940
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
10943
template<class P_expr1, class P_numtype2, int N_length2>
10945
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, TinyVectorIterConst<P_numtype2, N_length2>,
10946
_bz_unordered<typename P_expr1::T_numtype,P_numtype2> > >
10947
unordered(_bz_VecExpr<P_expr1> d1, const TinyVector<P_numtype2, N_length2>& d2)
10949
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, TinyVectorIterConst<P_numtype2, N_length2>,
10950
_bz_unordered<typename P_expr1::T_numtype,P_numtype2> > T_expr;
10952
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
10955
template<class P_expr1>
10957
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<int>,
10958
_bz_unordered<typename P_expr1::T_numtype,int> > >
10959
unordered(_bz_VecExpr<P_expr1> d1, int d2)
10961
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<int>,
10962
_bz_unordered<typename P_expr1::T_numtype,int> > T_expr;
10964
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<int>(d2)));
10967
template<class P_expr1>
10969
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<float>,
10970
_bz_unordered<typename P_expr1::T_numtype,float> > >
10971
unordered(_bz_VecExpr<P_expr1> d1, float d2)
10973
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<float>,
10974
_bz_unordered<typename P_expr1::T_numtype,float> > T_expr;
10976
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<float>(d2)));
10979
template<class P_expr1>
10981
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<double>,
10982
_bz_unordered<typename P_expr1::T_numtype,double> > >
10983
unordered(_bz_VecExpr<P_expr1> d1, double d2)
10985
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<double>,
10986
_bz_unordered<typename P_expr1::T_numtype,double> > T_expr;
10988
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<double>(d2)));
10991
template<class P_expr1>
10993
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<long double>,
10994
_bz_unordered<typename P_expr1::T_numtype,long double> > >
10995
unordered(_bz_VecExpr<P_expr1> d1, long double d2)
10997
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<long double>,
10998
_bz_unordered<typename P_expr1::T_numtype,long double> > T_expr;
11000
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<long double>(d2)));
11003
template<class P_expr1, class T2>
11005
_bz_VecExpr<_bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<complex<T2> > ,
11006
_bz_unordered<typename P_expr1::T_numtype,complex<T2> > > >
11007
unordered(_bz_VecExpr<P_expr1> d1, complex<T2> d2)
11009
typedef _bz_VecExprOp<_bz_VecExpr<P_expr1>, _bz_VecExprConstant<complex<T2> > ,
11010
_bz_unordered<typename P_expr1::T_numtype,complex<T2> > > T_expr;
11012
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<complex<T2> > (d2)));
11015
template<class P_numtype1, class P_numtype2>
11017
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
11018
_bz_unordered<P_numtype1,P_numtype2> > >
11019
unordered(const VectorPick<P_numtype1>& d1, const Vector<P_numtype2>& d2)
11021
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorIterConst<P_numtype2>,
11022
_bz_unordered<P_numtype1,P_numtype2> > T_expr;
11024
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
11027
template<class P_numtype1, class P_expr2>
11029
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
11030
_bz_unordered<P_numtype1,typename P_expr2::T_numtype> > >
11031
unordered(const VectorPick<P_numtype1>& d1, _bz_VecExpr<P_expr2> d2)
11033
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExpr<P_expr2>,
11034
_bz_unordered<P_numtype1,typename P_expr2::T_numtype> > T_expr;
11036
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
11039
template<class P_numtype1, class P_numtype2>
11041
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
11042
_bz_unordered<P_numtype1,P_numtype2> > >
11043
unordered(const VectorPick<P_numtype1>& d1, const VectorPick<P_numtype2>& d2)
11045
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, VectorPickIterConst<P_numtype2>,
11046
_bz_unordered<P_numtype1,P_numtype2> > T_expr;
11048
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
11051
template<class P_numtype1>
11053
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, Range,
11054
_bz_unordered<P_numtype1,int> > >
11055
unordered(const VectorPick<P_numtype1>& d1, Range d2)
11057
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, Range,
11058
_bz_unordered<P_numtype1,int> > T_expr;
11060
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
11063
template<class P_numtype1, class P_numtype2, int N_length2>
11065
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
11066
_bz_unordered<P_numtype1,P_numtype2> > >
11067
unordered(const VectorPick<P_numtype1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
11069
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, TinyVectorIterConst<P_numtype2, N_length2>,
11070
_bz_unordered<P_numtype1,P_numtype2> > T_expr;
11072
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
11075
template<class P_numtype1>
11077
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<int>,
11078
_bz_unordered<P_numtype1,int> > >
11079
unordered(const VectorPick<P_numtype1>& d1, int d2)
11081
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<int>,
11082
_bz_unordered<P_numtype1,int> > T_expr;
11084
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
11087
template<class P_numtype1>
11089
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<float>,
11090
_bz_unordered<P_numtype1,float> > >
11091
unordered(const VectorPick<P_numtype1>& d1, float d2)
11093
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<float>,
11094
_bz_unordered<P_numtype1,float> > T_expr;
11096
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
11099
template<class P_numtype1>
11101
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<double>,
11102
_bz_unordered<P_numtype1,double> > >
11103
unordered(const VectorPick<P_numtype1>& d1, double d2)
11105
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<double>,
11106
_bz_unordered<P_numtype1,double> > T_expr;
11108
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
11111
template<class P_numtype1>
11113
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
11114
_bz_unordered<P_numtype1,long double> > >
11115
unordered(const VectorPick<P_numtype1>& d1, long double d2)
11117
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<long double>,
11118
_bz_unordered<P_numtype1,long double> > T_expr;
11120
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
11123
template<class P_numtype1, class T2>
11125
_bz_VecExpr<_bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
11126
_bz_unordered<P_numtype1,complex<T2> > > >
11127
unordered(const VectorPick<P_numtype1>& d1, complex<T2> d2)
11129
typedef _bz_VecExprOp<VectorPickIterConst<P_numtype1>, _bz_VecExprConstant<complex<T2> > ,
11130
_bz_unordered<P_numtype1,complex<T2> > > T_expr;
11132
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
11135
template<class P_numtype2>
11137
_bz_VecExpr<_bz_VecExprOp<Range, VectorIterConst<P_numtype2>,
11138
_bz_unordered<int,P_numtype2> > >
11139
unordered(Range d1, const Vector<P_numtype2>& d2)
11141
typedef _bz_VecExprOp<Range, VectorIterConst<P_numtype2>,
11142
_bz_unordered<int,P_numtype2> > T_expr;
11144
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
11147
template<class P_expr2>
11149
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExpr<P_expr2>,
11150
_bz_unordered<int,typename P_expr2::T_numtype> > >
11151
unordered(Range d1, _bz_VecExpr<P_expr2> d2)
11153
typedef _bz_VecExprOp<Range, _bz_VecExpr<P_expr2>,
11154
_bz_unordered<int,typename P_expr2::T_numtype> > T_expr;
11156
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
11159
template<class P_numtype2>
11161
_bz_VecExpr<_bz_VecExprOp<Range, VectorPickIterConst<P_numtype2>,
11162
_bz_unordered<int,P_numtype2> > >
11163
unordered(Range d1, const VectorPick<P_numtype2>& d2)
11165
typedef _bz_VecExprOp<Range, VectorPickIterConst<P_numtype2>,
11166
_bz_unordered<int,P_numtype2> > T_expr;
11168
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
11173
_bz_VecExpr<_bz_VecExprOp<Range, Range,
11174
_bz_unordered<int,int> > >
11175
unordered(Range d1, Range d2)
11177
typedef _bz_VecExprOp<Range, Range,
11178
_bz_unordered<int,int> > T_expr;
11180
return _bz_VecExpr<T_expr>(T_expr(d1, d2));
11183
template<class P_numtype2, int N_length2>
11185
_bz_VecExpr<_bz_VecExprOp<Range, TinyVectorIterConst<P_numtype2, N_length2>,
11186
_bz_unordered<int,P_numtype2> > >
11187
unordered(Range d1, const TinyVector<P_numtype2, N_length2>& d2)
11189
typedef _bz_VecExprOp<Range, TinyVectorIterConst<P_numtype2, N_length2>,
11190
_bz_unordered<int,P_numtype2> > T_expr;
11192
return _bz_VecExpr<T_expr>(T_expr(d1, d2.beginFast()));
11197
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<int>,
11198
_bz_unordered<int,int> > >
11199
unordered(Range d1, int d2)
11201
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<int>,
11202
_bz_unordered<int,int> > T_expr;
11204
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<int>(d2)));
11209
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<float>,
11210
_bz_unordered<int,float> > >
11211
unordered(Range d1, float d2)
11213
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<float>,
11214
_bz_unordered<int,float> > T_expr;
11216
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<float>(d2)));
11221
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<double>,
11222
_bz_unordered<int,double> > >
11223
unordered(Range d1, double d2)
11225
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<double>,
11226
_bz_unordered<int,double> > T_expr;
11228
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<double>(d2)));
11233
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<long double>,
11234
_bz_unordered<int,long double> > >
11235
unordered(Range d1, long double d2)
11237
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<long double>,
11238
_bz_unordered<int,long double> > T_expr;
11240
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<long double>(d2)));
11245
_bz_VecExpr<_bz_VecExprOp<Range, _bz_VecExprConstant<complex<T2> > ,
11246
_bz_unordered<int,complex<T2> > > >
11247
unordered(Range d1, complex<T2> d2)
11249
typedef _bz_VecExprOp<Range, _bz_VecExprConstant<complex<T2> > ,
11250
_bz_unordered<int,complex<T2> > > T_expr;
11252
return _bz_VecExpr<T_expr>(T_expr(d1, _bz_VecExprConstant<complex<T2> > (d2)));
11255
template<class P_numtype1, int N_length1, class P_numtype2>
11257
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorIterConst<P_numtype2>,
11258
_bz_unordered<P_numtype1,P_numtype2> > >
11259
unordered(const TinyVector<P_numtype1, N_length1>& d1, const Vector<P_numtype2>& d2)
11261
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorIterConst<P_numtype2>,
11262
_bz_unordered<P_numtype1,P_numtype2> > T_expr;
11264
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
11267
template<class P_numtype1, int N_length1, class P_expr2>
11269
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>,
11270
_bz_unordered<P_numtype1,typename P_expr2::T_numtype> > >
11271
unordered(const TinyVector<P_numtype1, N_length1>& d1, _bz_VecExpr<P_expr2> d2)
11273
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExpr<P_expr2>,
11274
_bz_unordered<P_numtype1,typename P_expr2::T_numtype> > T_expr;
11276
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
11279
template<class P_numtype1, int N_length1, class P_numtype2>
11281
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorPickIterConst<P_numtype2>,
11282
_bz_unordered<P_numtype1,P_numtype2> > >
11283
unordered(const TinyVector<P_numtype1, N_length1>& d1, const VectorPick<P_numtype2>& d2)
11285
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, VectorPickIterConst<P_numtype2>,
11286
_bz_unordered<P_numtype1,P_numtype2> > T_expr;
11288
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
11291
template<class P_numtype1, int N_length1>
11293
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, Range,
11294
_bz_unordered<P_numtype1,int> > >
11295
unordered(const TinyVector<P_numtype1, N_length1>& d1, Range d2)
11297
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, Range,
11298
_bz_unordered<P_numtype1,int> > T_expr;
11300
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2));
11303
template<class P_numtype1, int N_length1, class P_numtype2, int N_length2>
11305
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, TinyVectorIterConst<P_numtype2, N_length2>,
11306
_bz_unordered<P_numtype1,P_numtype2> > >
11307
unordered(const TinyVector<P_numtype1, N_length1>& d1, const TinyVector<P_numtype2, N_length2>& d2)
11309
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, TinyVectorIterConst<P_numtype2, N_length2>,
11310
_bz_unordered<P_numtype1,P_numtype2> > T_expr;
11312
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), d2.beginFast()));
11315
template<class P_numtype1, int N_length1>
11317
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<int>,
11318
_bz_unordered<P_numtype1,int> > >
11319
unordered(const TinyVector<P_numtype1, N_length1>& d1, int d2)
11321
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<int>,
11322
_bz_unordered<P_numtype1,int> > T_expr;
11324
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<int>(d2)));
11327
template<class P_numtype1, int N_length1>
11329
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<float>,
11330
_bz_unordered<P_numtype1,float> > >
11331
unordered(const TinyVector<P_numtype1, N_length1>& d1, float d2)
11333
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<float>,
11334
_bz_unordered<P_numtype1,float> > T_expr;
11336
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<float>(d2)));
11339
template<class P_numtype1, int N_length1>
11341
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<double>,
11342
_bz_unordered<P_numtype1,double> > >
11343
unordered(const TinyVector<P_numtype1, N_length1>& d1, double d2)
11345
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<double>,
11346
_bz_unordered<P_numtype1,double> > T_expr;
11348
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<double>(d2)));
11351
template<class P_numtype1, int N_length1>
11353
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<long double>,
11354
_bz_unordered<P_numtype1,long double> > >
11355
unordered(const TinyVector<P_numtype1, N_length1>& d1, long double d2)
11357
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<long double>,
11358
_bz_unordered<P_numtype1,long double> > T_expr;
11360
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<long double>(d2)));
11363
template<class P_numtype1, int N_length1, class T2>
11365
_bz_VecExpr<_bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<complex<T2> > ,
11366
_bz_unordered<P_numtype1,complex<T2> > > >
11367
unordered(const TinyVector<P_numtype1, N_length1>& d1, complex<T2> d2)
11369
typedef _bz_VecExprOp<TinyVectorIterConst<P_numtype1, N_length1>, _bz_VecExprConstant<complex<T2> > ,
11370
_bz_unordered<P_numtype1,complex<T2> > > T_expr;
11372
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast(), _bz_VecExprConstant<complex<T2> > (d2)));
11375
template<class P_numtype2>
11377
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, VectorIterConst<P_numtype2>,
11378
_bz_unordered<int,P_numtype2> > >
11379
unordered(int d1, const Vector<P_numtype2>& d2)
11381
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, VectorIterConst<P_numtype2>,
11382
_bz_unordered<int,P_numtype2> > T_expr;
11384
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
11387
template<class P_expr2>
11389
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, _bz_VecExpr<P_expr2>,
11390
_bz_unordered<int,typename P_expr2::T_numtype> > >
11391
unordered(int d1, _bz_VecExpr<P_expr2> d2)
11393
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, _bz_VecExpr<P_expr2>,
11394
_bz_unordered<int,typename P_expr2::T_numtype> > T_expr;
11396
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2));
11399
template<class P_numtype2>
11401
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, VectorPickIterConst<P_numtype2>,
11402
_bz_unordered<int,P_numtype2> > >
11403
unordered(int d1, const VectorPick<P_numtype2>& d2)
11405
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, VectorPickIterConst<P_numtype2>,
11406
_bz_unordered<int,P_numtype2> > T_expr;
11408
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
11413
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, Range,
11414
_bz_unordered<int,int> > >
11415
unordered(int d1, Range d2)
11417
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, Range,
11418
_bz_unordered<int,int> > T_expr;
11420
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2));
11423
template<class P_numtype2, int N_length2>
11425
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<int>, TinyVectorIterConst<P_numtype2, N_length2>,
11426
_bz_unordered<int,P_numtype2> > >
11427
unordered(int d1, const TinyVector<P_numtype2, N_length2>& d2)
11429
typedef _bz_VecExprOp<_bz_VecExprConstant<int>, TinyVectorIterConst<P_numtype2, N_length2>,
11430
_bz_unordered<int,P_numtype2> > T_expr;
11432
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<int>(d1), d2.beginFast()));
11435
template<class P_numtype2>
11437
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, VectorIterConst<P_numtype2>,
11438
_bz_unordered<float,P_numtype2> > >
11439
unordered(float d1, const Vector<P_numtype2>& d2)
11441
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, VectorIterConst<P_numtype2>,
11442
_bz_unordered<float,P_numtype2> > T_expr;
11444
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
11447
template<class P_expr2>
11449
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, _bz_VecExpr<P_expr2>,
11450
_bz_unordered<float,typename P_expr2::T_numtype> > >
11451
unordered(float d1, _bz_VecExpr<P_expr2> d2)
11453
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, _bz_VecExpr<P_expr2>,
11454
_bz_unordered<float,typename P_expr2::T_numtype> > T_expr;
11456
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2));
11459
template<class P_numtype2>
11461
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, VectorPickIterConst<P_numtype2>,
11462
_bz_unordered<float,P_numtype2> > >
11463
unordered(float d1, const VectorPick<P_numtype2>& d2)
11465
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, VectorPickIterConst<P_numtype2>,
11466
_bz_unordered<float,P_numtype2> > T_expr;
11468
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
11473
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, Range,
11474
_bz_unordered<float,int> > >
11475
unordered(float d1, Range d2)
11477
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, Range,
11478
_bz_unordered<float,int> > T_expr;
11480
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2));
11483
template<class P_numtype2, int N_length2>
11485
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<float>, TinyVectorIterConst<P_numtype2, N_length2>,
11486
_bz_unordered<float,P_numtype2> > >
11487
unordered(float d1, const TinyVector<P_numtype2, N_length2>& d2)
11489
typedef _bz_VecExprOp<_bz_VecExprConstant<float>, TinyVectorIterConst<P_numtype2, N_length2>,
11490
_bz_unordered<float,P_numtype2> > T_expr;
11492
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<float>(d1), d2.beginFast()));
11495
template<class P_numtype2>
11497
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, VectorIterConst<P_numtype2>,
11498
_bz_unordered<double,P_numtype2> > >
11499
unordered(double d1, const Vector<P_numtype2>& d2)
11501
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, VectorIterConst<P_numtype2>,
11502
_bz_unordered<double,P_numtype2> > T_expr;
11504
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
11507
template<class P_expr2>
11509
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, _bz_VecExpr<P_expr2>,
11510
_bz_unordered<double,typename P_expr2::T_numtype> > >
11511
unordered(double d1, _bz_VecExpr<P_expr2> d2)
11513
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, _bz_VecExpr<P_expr2>,
11514
_bz_unordered<double,typename P_expr2::T_numtype> > T_expr;
11516
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2));
11519
template<class P_numtype2>
11521
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, VectorPickIterConst<P_numtype2>,
11522
_bz_unordered<double,P_numtype2> > >
11523
unordered(double d1, const VectorPick<P_numtype2>& d2)
11525
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, VectorPickIterConst<P_numtype2>,
11526
_bz_unordered<double,P_numtype2> > T_expr;
11528
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
11533
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, Range,
11534
_bz_unordered<double,int> > >
11535
unordered(double d1, Range d2)
11537
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, Range,
11538
_bz_unordered<double,int> > T_expr;
11540
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2));
11543
template<class P_numtype2, int N_length2>
11545
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<double>, TinyVectorIterConst<P_numtype2, N_length2>,
11546
_bz_unordered<double,P_numtype2> > >
11547
unordered(double d1, const TinyVector<P_numtype2, N_length2>& d2)
11549
typedef _bz_VecExprOp<_bz_VecExprConstant<double>, TinyVectorIterConst<P_numtype2, N_length2>,
11550
_bz_unordered<double,P_numtype2> > T_expr;
11552
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<double>(d1), d2.beginFast()));
11555
template<class P_numtype2>
11557
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, VectorIterConst<P_numtype2>,
11558
_bz_unordered<long double,P_numtype2> > >
11559
unordered(long double d1, const Vector<P_numtype2>& d2)
11561
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, VectorIterConst<P_numtype2>,
11562
_bz_unordered<long double,P_numtype2> > T_expr;
11564
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
11567
template<class P_expr2>
11569
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, _bz_VecExpr<P_expr2>,
11570
_bz_unordered<long double,typename P_expr2::T_numtype> > >
11571
unordered(long double d1, _bz_VecExpr<P_expr2> d2)
11573
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, _bz_VecExpr<P_expr2>,
11574
_bz_unordered<long double,typename P_expr2::T_numtype> > T_expr;
11576
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2));
11579
template<class P_numtype2>
11581
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, VectorPickIterConst<P_numtype2>,
11582
_bz_unordered<long double,P_numtype2> > >
11583
unordered(long double d1, const VectorPick<P_numtype2>& d2)
11585
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, VectorPickIterConst<P_numtype2>,
11586
_bz_unordered<long double,P_numtype2> > T_expr;
11588
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
11593
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, Range,
11594
_bz_unordered<long double,int> > >
11595
unordered(long double d1, Range d2)
11597
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, Range,
11598
_bz_unordered<long double,int> > T_expr;
11600
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2));
11603
template<class P_numtype2, int N_length2>
11605
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<long double>, TinyVectorIterConst<P_numtype2, N_length2>,
11606
_bz_unordered<long double,P_numtype2> > >
11607
unordered(long double d1, const TinyVector<P_numtype2, N_length2>& d2)
11609
typedef _bz_VecExprOp<_bz_VecExprConstant<long double>, TinyVectorIterConst<P_numtype2, N_length2>,
11610
_bz_unordered<long double,P_numtype2> > T_expr;
11612
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<long double>(d1), d2.beginFast()));
11615
template<class T1, class P_numtype2>
11617
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorIterConst<P_numtype2>,
11618
_bz_unordered<complex<T1> ,P_numtype2> > >
11619
unordered(complex<T1> d1, const Vector<P_numtype2>& d2)
11621
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorIterConst<P_numtype2>,
11622
_bz_unordered<complex<T1> ,P_numtype2> > T_expr;
11624
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
11627
template<class T1, class P_expr2>
11629
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , _bz_VecExpr<P_expr2>,
11630
_bz_unordered<complex<T1> ,typename P_expr2::T_numtype> > >
11631
unordered(complex<T1> d1, _bz_VecExpr<P_expr2> d2)
11633
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , _bz_VecExpr<P_expr2>,
11634
_bz_unordered<complex<T1> ,typename P_expr2::T_numtype> > T_expr;
11636
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2));
11639
template<class T1, class P_numtype2>
11641
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorPickIterConst<P_numtype2>,
11642
_bz_unordered<complex<T1> ,P_numtype2> > >
11643
unordered(complex<T1> d1, const VectorPick<P_numtype2>& d2)
11645
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , VectorPickIterConst<P_numtype2>,
11646
_bz_unordered<complex<T1> ,P_numtype2> > T_expr;
11648
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
11653
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , Range,
11654
_bz_unordered<complex<T1> ,int> > >
11655
unordered(complex<T1> d1, Range d2)
11657
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , Range,
11658
_bz_unordered<complex<T1> ,int> > T_expr;
11660
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2));
11663
template<class T1, class P_numtype2, int N_length2>
11665
_bz_VecExpr<_bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , TinyVectorIterConst<P_numtype2, N_length2>,
11666
_bz_unordered<complex<T1> ,P_numtype2> > >
11667
unordered(complex<T1> d1, const TinyVector<P_numtype2, N_length2>& d2)
11669
typedef _bz_VecExprOp<_bz_VecExprConstant<complex<T1> > , TinyVectorIterConst<P_numtype2, N_length2>,
11670
_bz_unordered<complex<T1> ,P_numtype2> > T_expr;
11672
return _bz_VecExpr<T_expr>(T_expr(_bz_VecExprConstant<complex<T1> > (d1), d2.beginFast()));
11677
/****************************************************************************
11679
****************************************************************************/
11681
#ifdef BZ_HAVE_IEEE_MATH
11682
template<class P_numtype1>
11684
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
11685
_bz_y0<P_numtype1> > >
11686
y0(const Vector<P_numtype1>& d1)
11688
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
11689
_bz_y0<P_numtype1> > T_expr;
11691
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
11694
template<class P_expr1>
11696
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
11697
_bz_y0<typename P_expr1::T_numtype> > >
11698
y0(_bz_VecExpr<P_expr1> d1)
11700
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
11701
_bz_y0<typename P_expr1::T_numtype> > T_expr;
11703
return _bz_VecExpr<T_expr>(T_expr(d1));
11706
template<class P_numtype1>
11708
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
11709
_bz_y0<P_numtype1> > >
11710
y0(const VectorPick<P_numtype1>& d1)
11712
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
11713
_bz_y0<P_numtype1> > T_expr;
11715
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
11720
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
11724
typedef _bz_VecExprUnaryOp<Range,
11725
_bz_y0<int> > T_expr;
11727
return _bz_VecExpr<T_expr>(T_expr(d1));
11730
template<class P_numtype1, int N_length1>
11732
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
11733
_bz_y0<P_numtype1> > >
11734
y0(const TinyVector<P_numtype1, N_length1>& d1)
11736
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
11737
_bz_y0<P_numtype1> > T_expr;
11739
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
11744
/****************************************************************************
11746
****************************************************************************/
11748
#ifdef BZ_HAVE_IEEE_MATH
11749
template<class P_numtype1>
11751
_bz_VecExpr<_bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
11752
_bz_y1<P_numtype1> > >
11753
y1(const Vector<P_numtype1>& d1)
11755
typedef _bz_VecExprUnaryOp<VectorIterConst<P_numtype1>,
11756
_bz_y1<P_numtype1> > T_expr;
11758
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
11761
template<class P_expr1>
11763
_bz_VecExpr<_bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
11764
_bz_y1<typename P_expr1::T_numtype> > >
11765
y1(_bz_VecExpr<P_expr1> d1)
11767
typedef _bz_VecExprUnaryOp<_bz_VecExpr<P_expr1>,
11768
_bz_y1<typename P_expr1::T_numtype> > T_expr;
11770
return _bz_VecExpr<T_expr>(T_expr(d1));
11773
template<class P_numtype1>
11775
_bz_VecExpr<_bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
11776
_bz_y1<P_numtype1> > >
11777
y1(const VectorPick<P_numtype1>& d1)
11779
typedef _bz_VecExprUnaryOp<VectorPickIterConst<P_numtype1>,
11780
_bz_y1<P_numtype1> > T_expr;
11782
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));
11787
_bz_VecExpr<_bz_VecExprUnaryOp<Range,
11791
typedef _bz_VecExprUnaryOp<Range,
11792
_bz_y1<int> > T_expr;
11794
return _bz_VecExpr<T_expr>(T_expr(d1));
11797
template<class P_numtype1, int N_length1>
11799
_bz_VecExpr<_bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
11800
_bz_y1<P_numtype1> > >
11801
y1(const TinyVector<P_numtype1, N_length1>& d1)
11803
typedef _bz_VecExprUnaryOp<TinyVectorIterConst<P_numtype1, N_length1>,
11804
_bz_y1<P_numtype1> > T_expr;
11806
return _bz_VecExpr<T_expr>(T_expr(d1.beginFast()));