QMCPACK
OperatorTags.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 // ACL:license
3 // ----------------------------------------------------------------------
4 // This software and ancillary information (herein called "SOFTWARE")
5 // called PETE (Portable Expression Template Engine) is
6 // made available under the terms described here. The SOFTWARE has been
7 // approved for release with associated LA-CC Number LA-CC-99-5.
8 //
9 // Unless otherwise indicated, this SOFTWARE has been authored by an
10 // employee or employees of the University of California, operator of the
11 // Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with
12 // the U.S. Department of Energy. The U.S. Government has rights to use,
13 // reproduce, and distribute this SOFTWARE. The public may copy, distribute,
14 // prepare derivative works and publicly display this SOFTWARE without
15 // charge, provided that this Notice and any statement of authorship are
16 // reproduced on all copies. Neither the Government nor the University
17 // makes any warranty, express or implied, or assumes any liability or
18 // responsibility for the use of this SOFTWARE.
19 //
20 // If SOFTWARE is modified to produce derivative works, such modified
21 // SOFTWARE should be clearly marked, so as not to confuse it with the
22 // version available from LANL.
23 //
24 // For more information about PETE, send e-mail to pete@acl.lanl.gov,
25 // or visit the PETE web page at http://www.acl.lanl.gov/pete/.
26 // ----------------------------------------------------------------------
27 // ACL:license
28 
29 #include <cstdlib>
30 #include <cmath>
31 
32 #ifndef PETE_PETE_OPERATORTAGS_H
33 #define PETE_PETE_OPERATORTAGS_H
34 
35 namespace qmcplusplus
36 {
37 ///////////////////////////////////////////////////////////////////////////////
38 //
39 // WARNING: THIS FILE WAS GENERATED AUTOMATICALLY!
40 // YOU SHOULD MODIFY THE INPUT FILES INSTEAD OF CHANGING THIS FILE DIRECTLY!
41 //
42 // THE FOLLOWING INPUT FILES WERE USED TO MAKE THIS FILE:
43 //
44 // MakeOperators
45 // PeteOps.in
46 //
47 ///////////////////////////////////////////////////////////////////////////////
48 
49 
50 struct FnArcCos
51 {
53  template<class T>
54  inline typename UnaryReturn<T, FnArcCos>::Type_t operator()(const T& a) const
55  {
56  return (acos(a));
57  }
58 };
59 
60 struct FnArcSin
61 {
63  template<class T>
64  inline typename UnaryReturn<T, FnArcSin>::Type_t operator()(const T& a) const
65  {
66  return (asin(a));
67  }
68 };
69 
70 struct FnArcTan
71 {
73  template<class T>
74  inline typename UnaryReturn<T, FnArcTan>::Type_t operator()(const T& a) const
75  {
76  return (atan(a));
77  }
78 };
79 
80 struct FnCeil
81 {
83  template<class T>
84  inline typename UnaryReturn<T, FnCeil>::Type_t operator()(const T& a) const
85  {
86  return (ceil(a));
87  }
88 };
89 
90 struct FnCos
91 {
93  template<class T>
94  inline typename UnaryReturn<T, FnCos>::Type_t operator()(const T& a) const
95  {
96  return (cos(a));
97  }
98 };
99 
100 struct FnHypCos
101 {
103  template<class T>
104  inline typename UnaryReturn<T, FnHypCos>::Type_t operator()(const T& a) const
105  {
106  return (cosh(a));
107  }
108 };
109 
110 struct FnExp
111 {
113  template<class T>
114  inline typename UnaryReturn<T, FnExp>::Type_t operator()(const T& a) const
115  {
116  return (exp(a));
117  }
118 };
119 
120 struct FnFabs
121 {
123  template<class T>
124  inline typename UnaryReturn<T, FnFabs>::Type_t operator()(const T& a) const
125  {
126  return (std::abs(a));
127  }
128 };
129 
130 struct FnFloor
131 {
133  template<class T>
134  inline typename UnaryReturn<T, FnFloor>::Type_t operator()(const T& a) const
135  {
136  return (floor(a));
137  }
138 };
139 
140 struct FnLog
141 {
143  template<class T>
144  inline typename UnaryReturn<T, FnLog>::Type_t operator()(const T& a) const
145  {
146  return (log(a));
147  }
148 };
149 
150 struct FnLog10
151 {
153  template<class T>
154  inline typename UnaryReturn<T, FnLog10>::Type_t operator()(const T& a) const
155  {
156  return (log10(a));
157  }
158 };
159 
160 struct FnSin
161 {
163  template<class T>
164  inline typename UnaryReturn<T, FnSin>::Type_t operator()(const T& a) const
165  {
166  return (sin(a));
167  }
168 };
169 
170 struct FnHypSin
171 {
173  template<class T>
174  inline typename UnaryReturn<T, FnHypSin>::Type_t operator()(const T& a) const
175  {
176  return (sinh(a));
177  }
178 };
179 
180 struct FnSqrt
181 {
183  template<class T>
184  inline typename UnaryReturn<T, FnSqrt>::Type_t operator()(const T& a) const
185  {
186  return (sqrt(a));
187  }
188 };
189 
190 struct FnTan
191 {
193  template<class T>
194  inline typename UnaryReturn<T, FnTan>::Type_t operator()(const T& a) const
195  {
196  return (tan(a));
197  }
198 };
199 
200 struct FnHypTan
201 {
203  template<class T>
204  inline typename UnaryReturn<T, FnHypTan>::Type_t operator()(const T& a) const
205  {
206  return (tanh(a));
207  }
208 };
209 
211 {
213  template<class T>
214  inline typename UnaryReturn<T, OpUnaryMinus>::Type_t operator()(const T& a) const
215  {
216  return (-a);
217  }
218 };
219 
221 {
223  template<class T>
224  inline typename UnaryReturn<T, OpUnaryPlus>::Type_t operator()(const T& a) const
225  {
226  return (+a);
227  }
228 };
229 
231 {
233  template<class T>
234  inline typename UnaryReturn<T, OpBitwiseNot>::Type_t operator()(const T& a) const
235  {
236  return (~a);
237  }
238 };
239 
241 {
243  template<class T>
244  inline typename UnaryReturn<T, OpIdentity>::Type_t operator()(const T& a) const
245  {
246  return (a);
247  }
248 };
249 
250 struct OpNot
251 {
253  template<class T>
254  inline typename UnaryReturn<T, OpNot>::Type_t operator()(const T& a) const
255  {
256  return (!a);
257  }
258 };
259 
260 template<class T>
261 struct UnaryReturn<T, OpNot>
262 {
263  using Type_t = bool;
264 };
265 
266 template<class T1>
267 struct OpCast
268 {
270  template<class T2>
271  inline UnaryReturn<T2, OpCast<T1>> operator()(const T2& a) const
272  {
273  return T1(a);
274  }
275 };
276 
277 template<class T1, class T2>
278 struct UnaryReturn<T2, OpCast<T1>>
279 {
280  using Type_t = T1;
281 };
282 
283 struct OpAdd
284 {
286  template<class T1, class T2>
287  inline typename BinaryReturn<T1, T2, OpAdd>::Type_t operator()(const T1& a, const T2& b) const
288  {
289  return (a + b);
290  }
291 };
292 
294 {
296  template<class T1, class T2>
297  inline typename BinaryReturn<T1, T2, OpSubtract>::Type_t operator()(const T1& a, const T2& b) const
298  {
299  return (a - b);
300  }
301 };
302 
304 {
306  template<class T1, class T2>
307  inline typename BinaryReturn<T1, T2, OpMultiply>::Type_t operator()(const T1& a, const T2& b) const
308  {
309  return (a * b);
310  }
311 };
312 
313 struct OpDivide
314 {
316  template<class T1, class T2>
317  inline typename BinaryReturn<T1, T2, OpDivide>::Type_t operator()(const T1& a, const T2& b) const
318  {
319  return (a / b);
320  }
321 };
322 
323 struct OpMod
324 {
326  template<class T1, class T2>
327  inline typename BinaryReturn<T1, T2, OpMod>::Type_t operator()(const T1& a, const T2& b) const
328  {
329  return (a % b);
330  }
331 };
332 
334 {
336  template<class T1, class T2>
337  inline typename BinaryReturn<T1, T2, OpBitwiseAnd>::Type_t operator()(const T1& a, const T2& b) const
338  {
339  return (a & b);
340  }
341 };
342 
344 {
346  template<class T1, class T2>
347  inline typename BinaryReturn<T1, T2, OpBitwiseOr>::Type_t operator()(const T1& a, const T2& b) const
348  {
349  return (a | b);
350  }
351 };
352 
354 {
356  template<class T1, class T2>
357  inline typename BinaryReturn<T1, T2, OpBitwiseXor>::Type_t operator()(const T1& a, const T2& b) const
358  {
359  return (a ^ b);
360  }
361 };
362 
363 struct FnLdexp
364 {
366  template<class T1, class T2>
367  inline typename BinaryReturn<T1, T2, FnLdexp>::Type_t operator()(const T1& a, const T2& b) const
368  {
369  return (ldexp(a, b));
370  }
371 };
372 
373 struct FnPow
374 {
376  template<class T1, class T2>
377  inline typename BinaryReturn<T1, T2, FnPow>::Type_t operator()(const T1& a, const T2& b) const
378  {
379  return (pow(a, b));
380  }
381 };
382 
383 struct FnFmod
384 {
386  template<class T1, class T2>
387  inline typename BinaryReturn<T1, T2, FnFmod>::Type_t operator()(const T1& a, const T2& b) const
388  {
389  return (fmod(a, b));
390  }
391 };
392 
393 struct FnArcTan2
394 {
396  template<class T1, class T2>
397  inline typename BinaryReturn<T1, T2, FnArcTan2>::Type_t operator()(const T1& a, const T2& b) const
398  {
399  return (atan2(a, b));
400  }
401 };
402 
403 struct OpLT
404 {
406  template<class T1, class T2>
407  inline typename BinaryReturn<T1, T2, OpLT>::Type_t operator()(const T1& a, const T2& b) const
408  {
409  return (a < b);
410  }
411 };
412 
413 template<class T1, class T2>
414 struct BinaryReturn<T1, T2, OpLT>
415 {
416  using Type_t = bool;
417 };
418 
419 struct OpLE
420 {
422  template<class T1, class T2>
423  inline typename BinaryReturn<T1, T2, OpLE>::Type_t operator()(const T1& a, const T2& b) const
424  {
425  return (a <= b);
426  }
427 };
428 
429 template<class T1, class T2>
430 struct BinaryReturn<T1, T2, OpLE>
431 {
432  using Type_t = bool;
433 };
434 
435 struct OpGT
436 {
438  template<class T1, class T2>
439  inline typename BinaryReturn<T1, T2, OpGT>::Type_t operator()(const T1& a, const T2& b) const
440  {
441  return (a > b);
442  }
443 };
444 
445 template<class T1, class T2>
446 struct BinaryReturn<T1, T2, OpGT>
447 {
448  using Type_t = bool;
449 };
450 
451 struct OpGE
452 {
454  template<class T1, class T2>
455  inline typename BinaryReturn<T1, T2, OpGE>::Type_t operator()(const T1& a, const T2& b) const
456  {
457  return (a >= b);
458  }
459 };
460 
461 template<class T1, class T2>
462 struct BinaryReturn<T1, T2, OpGE>
463 {
464  using Type_t = bool;
465 };
466 
467 struct OpEQ
468 {
470  template<class T1, class T2>
471  inline typename BinaryReturn<T1, T2, OpEQ>::Type_t operator()(const T1& a, const T2& b) const
472  {
473  return (a == b);
474  }
475 };
476 
477 template<class T1, class T2>
478 struct BinaryReturn<T1, T2, OpEQ>
479 {
480  using Type_t = bool;
481 };
482 
483 struct OpNE
484 {
486  template<class T1, class T2>
487  inline typename BinaryReturn<T1, T2, OpNE>::Type_t operator()(const T1& a, const T2& b) const
488  {
489  return (a != b);
490  }
491 };
492 
493 template<class T1, class T2>
494 struct BinaryReturn<T1, T2, OpNE>
495 {
496  using Type_t = bool;
497 };
498 
499 struct OpAnd
500 {
502  template<class T1, class T2>
503  inline typename BinaryReturn<T1, T2, OpAnd>::Type_t operator()(const T1& a, const T2& b) const
504  {
505  return (a && b);
506  }
507 };
508 
509 template<class T1, class T2>
510 struct BinaryReturn<T1, T2, OpAnd>
511 {
512  using Type_t = bool;
513 };
514 
515 struct OpOr
516 {
518  template<class T1, class T2>
519  inline typename BinaryReturn<T1, T2, OpOr>::Type_t operator()(const T1& a, const T2& b) const
520  {
521  return (a || b);
522  }
523 };
524 
525 template<class T1, class T2>
526 struct BinaryReturn<T1, T2, OpOr>
527 {
528  using Type_t = bool;
529 };
530 
532 {
534  template<class T1, class T2>
535  inline typename BinaryReturn<T1, T2, OpLeftShift>::Type_t operator()(const T1& a, const T2& b) const
536  {
537  return (a << b);
538  }
539 };
540 
541 template<class T1, class T2>
542 struct BinaryReturn<T1, T2, OpLeftShift>
543 {
544  using Type_t = T1;
545 };
546 
548 {
550  template<class T1, class T2>
551  inline typename BinaryReturn<T1, T2, OpRightShift>::Type_t operator()(const T1& a, const T2& b) const
552  {
553  return (a >> b);
554  }
555 };
556 
557 template<class T1, class T2>
558 struct BinaryReturn<T1, T2, OpRightShift>
559 {
560  using Type_t = T1;
561 };
562 
564 {
566  template<class T1, class T2>
567  inline typename BinaryReturn<T1, T2, OpAddAssign>::Type_t operator()(const T1& a, const T2& b) const
568  {
569  (const_cast<T1&>(a) += b);
570  return const_cast<T1&>(a);
571  }
572 };
573 
574 template<class T1, class T2>
575 struct BinaryReturn<T1, T2, OpAddAssign>
576 {
577  using Type_t = T1&;
578 };
579 
581 {
583  template<class T1, class T2>
584  inline typename BinaryReturn<T1, T2, OpSubtractAssign>::Type_t operator()(const T1& a, const T2& b) const
585  {
586  (const_cast<T1&>(a) -= b);
587  return const_cast<T1&>(a);
588  }
589 };
590 
591 template<class T1, class T2>
593 {
594  using Type_t = T1&;
595 };
596 
598 {
600  template<class T1, class T2>
601  inline typename BinaryReturn<T1, T2, OpMultiplyAssign>::Type_t operator()(const T1& a, const T2& b) const
602  {
603  (const_cast<T1&>(a) *= b);
604  return const_cast<T1&>(a);
605  }
606 };
607 
608 template<class T1, class T2>
610 {
611  using Type_t = T1&;
612 };
613 
615 {
617  template<class T1, class T2>
618  inline typename BinaryReturn<T1, T2, OpDivideAssign>::Type_t operator()(const T1& a, const T2& b) const
619  {
620  (const_cast<T1&>(a) /= b);
621  return const_cast<T1&>(a);
622  }
623 };
624 
625 template<class T1, class T2>
627 {
628  using Type_t = T1&;
629 };
630 
632 {
634  template<class T1, class T2>
635  inline typename BinaryReturn<T1, T2, OpModAssign>::Type_t operator()(const T1& a, const T2& b) const
636  {
637  (const_cast<T1&>(a) %= b);
638  return const_cast<T1&>(a);
639  }
640 };
641 
642 template<class T1, class T2>
643 struct BinaryReturn<T1, T2, OpModAssign>
644 {
645  using Type_t = T1&;
646 };
647 
649 {
651  template<class T1, class T2>
652  inline typename BinaryReturn<T1, T2, OpBitwiseOrAssign>::Type_t operator()(const T1& a, const T2& b) const
653  {
654  (const_cast<T1&>(a) |= b);
655  return const_cast<T1&>(a);
656  }
657 };
658 
659 template<class T1, class T2>
661 {
662  using Type_t = T1&;
663 };
664 
666 {
668  template<class T1, class T2>
669  inline typename BinaryReturn<T1, T2, OpBitwiseAndAssign>::Type_t operator()(const T1& a, const T2& b) const
670  {
671  (const_cast<T1&>(a) &= b);
672  return const_cast<T1&>(a);
673  }
674 };
675 
676 template<class T1, class T2>
678 {
679  using Type_t = T1&;
680 };
681 
683 {
685  template<class T1, class T2>
686  inline typename BinaryReturn<T1, T2, OpBitwiseXorAssign>::Type_t operator()(const T1& a, const T2& b) const
687  {
688  (const_cast<T1&>(a) ^= b);
689  return const_cast<T1&>(a);
690  }
691 };
692 
693 template<class T1, class T2>
695 {
696  using Type_t = T1&;
697 };
698 
700 {
702  template<class T1, class T2>
703  inline typename BinaryReturn<T1, T2, OpLeftShiftAssign>::Type_t operator()(const T1& a, const T2& b) const
704  {
705  (const_cast<T1&>(a) <<= b);
706  return const_cast<T1&>(a);
707  }
708 };
709 
710 template<class T1, class T2>
712 {
713  using Type_t = T1&;
714 };
715 
717 {
719  template<class T1, class T2>
720  inline typename BinaryReturn<T1, T2, OpRightShiftAssign>::Type_t operator()(const T1& a, const T2& b) const
721  {
722  (const_cast<T1&>(a) >>= b);
723  return const_cast<T1&>(a);
724  }
725 };
726 
727 template<class T1, class T2>
729 {
730  using Type_t = T1&;
731 };
732 
733 struct OpAssign
734 {
736  template<class T1, class T2>
737  inline typename BinaryReturn<T1, T2, OpAssign>::Type_t operator()(const T1& a, const T2& b) const
738  {
739  return (const_cast<T1&>(a) = b);
740  }
741 };
742 
743 template<class T1, class T2>
744 struct BinaryReturn<T1, T2, OpAssign>
745 {
746  using Type_t = T1&;
747 };
748 
749 struct FnWhere
750 {
752  template<class T1, class T2, class T3>
753  inline typename TrinaryReturn<T1, T2, T3, FnWhere>::Type_t operator()(T1& a, const T2& b, const T3& c) const
754  {
755  if (a)
756  return b;
757  else
758  return c;
759  }
760 };
761 
762 } // namespace qmcplusplus
763 #endif // PETE_PETE_OPERATORTAGS_H
764 
765 // ACL:rcsinfo
typename Promote< T1, T2 >::Type_t Type_t
BinaryReturn< T1, T2, OpSubtract >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:297
UnaryReturn< T, FnFabs >::Type_t operator()(const T &a) const
Definition: OperatorTags.h:124
BinaryReturn< T1, T2, OpSubtractAssign >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:584
UnaryReturn< T, OpUnaryMinus >::Type_t operator()(const T &a) const
Definition: OperatorTags.h:214
BinaryReturn< T1, T2, OpAnd >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:503
BinaryReturn< T1, T2, OpGE >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:455
BinaryReturn< T1, T2, OpEQ >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:471
BinaryReturn< T1, T2, OpMultiplyAssign >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:601
UnaryReturn< T, FnCeil >::Type_t operator()(const T &a) const
Definition: OperatorTags.h:84
helper functions for EinsplineSetBuilder
Definition: Configuration.h:43
MakeReturn< UnaryNode< FnHypSin, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t sinh(const Vector< T1, C1 > &l)
UnaryReturn< T, OpIdentity >::Type_t operator()(const T &a) const
Definition: OperatorTags.h:244
BinaryReturn< T1, T2, OpBitwiseAndAssign >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:669
MakeReturn< BinaryNode< FnFmod, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t, typename CreateLeaf< Vector< T2, C2 > >::Leaf_t > >::Expression_t fmod(const Vector< T1, C1 > &l, const Vector< T2, C2 > &r)
MakeReturn< UnaryNode< FnFabs, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t abs(const Vector< T1, C1 > &l)
BinaryReturn< T1, T2, OpModAssign >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:635
BinaryReturn< T1, T2, FnArcTan2 >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:397
MakeReturn< BinaryNode< FnLdexp, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t, typename CreateLeaf< Vector< T2, C2 > >::Leaf_t > >::Expression_t ldexp(const Vector< T1, C1 > &l, const Vector< T2, C2 > &r)
MakeReturn< UnaryNode< FnSin, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t sin(const Vector< T1, C1 > &l)
UnaryReturn< T, FnArcCos >::Type_t operator()(const T &a) const
Definition: OperatorTags.h:54
BinaryReturn< T1, T2, OpBitwiseOrAssign >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:652
BinaryReturn< T1, T2, OpNE >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:487
TrinaryReturn< T1, T2, T3, FnWhere >::Type_t operator()(T1 &a, const T2 &b, const T3 &c) const
Definition: OperatorTags.h:753
UnaryReturn< T, FnTan >::Type_t operator()(const T &a) const
Definition: OperatorTags.h:194
typename BinaryReturn< T2, T3, Op >::Type_t Type_t
BinaryReturn< T1, T2, OpBitwiseXorAssign >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:686
BinaryReturn< T1, T2, OpAddAssign >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:567
BinaryReturn< T1, T2, OpLeftShiftAssign >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:703
MakeReturn< UnaryNode< FnHypCos, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t cosh(const Vector< T1, C1 > &l)
UnaryReturn< T, FnArcTan >::Type_t operator()(const T &a) const
Definition: OperatorTags.h:74
BinaryReturn< T1, T2, OpBitwiseAnd >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:337
#define PETE_EMPTY_CONSTRUCTORS(CLASS)
Definition: PETE.h:58
BinaryReturn< T1, T2, OpRightShift >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:551
BinaryReturn< T1, T2, OpDivideAssign >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:618
MakeReturn< BinaryNode< FnPow, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t, typename CreateLeaf< Vector< T2, C2 > >::Leaf_t > >::Expression_t pow(const Vector< T1, C1 > &l, const Vector< T2, C2 > &r)
MakeReturn< UnaryNode< FnHypTan, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t tanh(const Vector< T1, C1 > &l)
MakeReturn< UnaryNode< FnCos, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t cos(const Vector< T1, C1 > &l)
BinaryReturn< T1, T2, OpOr >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:519
BinaryReturn< T1, T2, OpMod >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:327
MakeReturn< UnaryNode< FnCeil, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t ceil(const Vector< T1, C1 > &l)
BinaryReturn< T1, T2, OpBitwiseOr >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:347
UnaryReturn< T, FnSqrt >::Type_t operator()(const T &a) const
Definition: OperatorTags.h:184
MakeReturn< UnaryNode< FnArcCos, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t acos(const Vector< T1, C1 > &l)
BinaryReturn< T1, T2, OpDivide >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:317
MakeReturn< BinaryNode< FnArcTan2, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t, typename CreateLeaf< Vector< T2, C2 > >::Leaf_t > >::Expression_t atan2(const Vector< T1, C1 > &l, const Vector< T2, C2 > &r)
BinaryReturn< T1, T2, OpLT >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:407
MakeReturn< UnaryNode< FnArcTan, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t atan(const Vector< T1, C1 > &l)
UnaryReturn< T, FnHypTan >::Type_t operator()(const T &a) const
Definition: OperatorTags.h:204
UnaryReturn< T, FnHypSin >::Type_t operator()(const T &a) const
Definition: OperatorTags.h:174
#define PETE_EMPTY_CONSTRUCTORS_TEMPLATE(CLASS, ARG)
Definition: PETE.h:59
MakeReturn< UnaryNode< FnExp, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t exp(const Vector< T1, C1 > &l)
UnaryReturn< T, FnLog >::Type_t operator()(const T &a) const
Definition: OperatorTags.h:144
UnaryReturn< T, OpNot >::Type_t operator()(const T &a) const
Definition: OperatorTags.h:254
MakeReturn< UnaryNode< FnTan, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t tan(const Vector< T1, C1 > &l)
MakeReturn< UnaryNode< FnLog10, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t log10(const Vector< T1, C1 > &l)
BinaryReturn< T1, T2, FnPow >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:377
UnaryReturn< T, FnFloor >::Type_t operator()(const T &a) const
Definition: OperatorTags.h:134
MakeReturn< UnaryNode< FnLog, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t log(const Vector< T1, C1 > &l)
BinaryReturn< T1, T2, OpRightShiftAssign >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:720
BinaryReturn< T1, T2, OpAdd >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:287
MakeReturn< UnaryNode< FnSqrt, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t sqrt(const Vector< T1, C1 > &l)
BinaryReturn< T1, T2, OpLeftShift >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:535
BinaryReturn< T1, T2, OpAssign >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:737
UnaryReturn< T, FnHypCos >::Type_t operator()(const T &a) const
Definition: OperatorTags.h:104
UnaryReturn< T, FnCos >::Type_t operator()(const T &a) const
Definition: OperatorTags.h:94
UnaryReturn< T, FnArcSin >::Type_t operator()(const T &a) const
Definition: OperatorTags.h:64
UnaryReturn< T, OpBitwiseNot >::Type_t operator()(const T &a) const
Definition: OperatorTags.h:234
BinaryReturn< T1, T2, OpGT >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:439
BinaryReturn< T1, T2, FnLdexp >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:367
BinaryReturn< T1, T2, FnFmod >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:387
BinaryReturn< T1, T2, OpMultiply >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:307
UnaryReturn< T, FnExp >::Type_t operator()(const T &a) const
Definition: OperatorTags.h:114
BinaryReturn< T1, T2, OpBitwiseXor >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:357
UnaryReturn< T2, OpCast< T1 > > operator()(const T2 &a) const
Definition: OperatorTags.h:271
UnaryReturn< T, FnLog10 >::Type_t operator()(const T &a) const
Definition: OperatorTags.h:154
UnaryReturn< T, FnSin >::Type_t operator()(const T &a) const
Definition: OperatorTags.h:164
UnaryReturn< T, OpUnaryPlus >::Type_t operator()(const T &a) const
Definition: OperatorTags.h:224
BinaryReturn< T1, T2, OpLE >::Type_t operator()(const T1 &a, const T2 &b) const
Definition: OperatorTags.h:423
MakeReturn< UnaryNode< FnArcSin, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t asin(const Vector< T1, C1 > &l)
MakeReturn< UnaryNode< FnFloor, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t floor(const Vector< T1, C1 > &l)