15 #ifndef OHMMS_PARTICLEATTRIB_PEPE_OPERATORS_H 16 #define OHMMS_PARTICLEATTRIB_PEPE_OPERATORS_H 36 inline typename MakeReturn<UnaryNode<OpUnaryMinus, typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t>>::Expression_t
44 inline typename MakeReturn<UnaryNode<OpUnaryPlus, typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t>>::Expression_t
52 inline typename MakeReturn<UnaryNode<OpBitwiseNot, typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t>>::Expression_t
60 inline typename MakeReturn<UnaryNode<OpIdentity, typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t>>::Expression_t
67 template<
class T1,
class T2>
68 inline typename MakeReturn<UnaryNode<OpCast<T1>,
typename CreateLeaf<ParticleAttrib<T2>>::Leaf_t>>::Expression_t
75 template<
class T1,
class T2>
76 inline typename MakeReturn<BinaryNode<OpAdd,
77 typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t,
78 typename CreateLeaf<ParticleAttrib<T2>>::Leaf_t>>::Expression_t
88 template<
class T1,
class T2>
89 inline typename MakeReturn<BinaryNode<OpSubtract,
90 typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t,
91 typename CreateLeaf<ParticleAttrib<T2>>::Leaf_t>>::Expression_t
101 template<
class T1,
class T2>
102 inline typename MakeReturn<BinaryNode<OpMultiply,
103 typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t,
104 typename CreateLeaf<ParticleAttrib<T2>>::Leaf_t>>::Expression_t
114 template<
class T1,
class T2>
115 inline typename MakeReturn<BinaryNode<OpMod,
116 typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t,
117 typename CreateLeaf<ParticleAttrib<T2>>::Leaf_t>>::Expression_t
127 template<
class T1,
class T2>
128 inline typename MakeReturn<BinaryNode<OpBitwiseAnd,
129 typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t,
130 typename CreateLeaf<ParticleAttrib<T2>>::Leaf_t>>::Expression_t
140 template<
class T1,
class T2>
141 inline typename MakeReturn<BinaryNode<OpBitwiseOr,
142 typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t,
143 typename CreateLeaf<ParticleAttrib<T2>>::Leaf_t>>::Expression_t
153 template<
class T1,
class T2>
154 inline typename MakeReturn<BinaryNode<OpBitwiseXor,
155 typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t,
156 typename CreateLeaf<ParticleAttrib<T2>>::Leaf_t>>::Expression_t
166 template<
class T1,
class T2>
167 inline typename MakeReturn<
168 BinaryNode<OpAdd, typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t,
typename CreateLeaf<Expression<T2>>::Leaf_t>>::
178 template<
class T1,
class T2>
179 inline typename MakeReturn<BinaryNode<OpSubtract,
180 typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t,
181 typename CreateLeaf<Expression<T2>>::Leaf_t>>::Expression_t
190 template<
class T1,
class T2>
191 inline typename MakeReturn<BinaryNode<OpMultiply,
192 typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t,
193 typename CreateLeaf<Expression<T2>>::Leaf_t>>::Expression_t
202 template<
class T1,
class T2>
203 inline typename MakeReturn<
204 BinaryNode<OpMod, typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t,
typename CreateLeaf<Expression<T2>>::Leaf_t>>::
214 template<
class T1,
class T2>
215 inline typename MakeReturn<BinaryNode<OpBitwiseAnd,
216 typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t,
217 typename CreateLeaf<Expression<T2>>::Leaf_t>>::Expression_t
226 template<
class T1,
class T2>
227 inline typename MakeReturn<BinaryNode<OpBitwiseOr,
228 typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t,
229 typename CreateLeaf<Expression<T2>>::Leaf_t>>::Expression_t
238 template<
class T1,
class T2>
239 inline typename MakeReturn<BinaryNode<OpBitwiseXor,
240 typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t,
241 typename CreateLeaf<Expression<T2>>::Leaf_t>>::Expression_t
250 template<
class T1,
class T2>
251 inline typename MakeReturn<
252 BinaryNode<OpAdd, typename CreateLeaf<Expression<T1>>::Leaf_t,
typename CreateLeaf<ParticleAttrib<T2>>::Leaf_t>>::
262 template<
class T1,
class T2>
263 inline typename MakeReturn<BinaryNode<OpSubtract,
264 typename CreateLeaf<Expression<T1>>::Leaf_t,
265 typename CreateLeaf<ParticleAttrib<T2>>::Leaf_t>>::Expression_t
274 template<
class T1,
class T2>
275 inline typename MakeReturn<BinaryNode<OpMultiply,
276 typename CreateLeaf<Expression<T1>>::Leaf_t,
277 typename CreateLeaf<ParticleAttrib<T2>>::Leaf_t>>::Expression_t
286 template<
class T1,
class T2>
287 inline typename MakeReturn<
288 BinaryNode<OpMod, typename CreateLeaf<Expression<T1>>::Leaf_t,
typename CreateLeaf<ParticleAttrib<T2>>::Leaf_t>>::
298 template<
class T1,
class T2>
299 inline typename MakeReturn<BinaryNode<OpBitwiseAnd,
300 typename CreateLeaf<Expression<T1>>::Leaf_t,
301 typename CreateLeaf<ParticleAttrib<T2>>::Leaf_t>>::Expression_t
310 template<
class T1,
class T2>
311 inline typename MakeReturn<BinaryNode<OpBitwiseOr,
312 typename CreateLeaf<Expression<T1>>::Leaf_t,
313 typename CreateLeaf<ParticleAttrib<T2>>::Leaf_t>>::Expression_t
322 template<
class T1,
class T2>
323 inline typename MakeReturn<BinaryNode<OpBitwiseXor,
324 typename CreateLeaf<Expression<T1>>::Leaf_t,
325 typename CreateLeaf<ParticleAttrib<T2>>::Leaf_t>>::Expression_t
334 template<
class T1,
class T2>
335 inline typename MakeReturn<
336 BinaryNode<OpAdd, typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t,
typename CreateLeaf<T2>::Leaf_t>>::Expression_t
343 template<
class T1,
class T2>
344 inline typename MakeReturn<
345 BinaryNode<OpSubtract, typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t,
typename CreateLeaf<T2>::Leaf_t>>::
354 template<
class T1,
class T2>
355 inline typename MakeReturn<
356 BinaryNode<OpMultiply, typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t,
typename CreateLeaf<T2>::Leaf_t>>::
365 template<
class T1,
class T2>
366 inline typename MakeReturn<
367 BinaryNode<OpMod, typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t,
typename CreateLeaf<T2>::Leaf_t>>::Expression_t
374 template<
class T1,
class T2>
375 inline typename MakeReturn<
376 BinaryNode<OpBitwiseAnd, typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t,
typename CreateLeaf<T2>::Leaf_t>>::
385 template<
class T1,
class T2>
386 inline typename MakeReturn<
387 BinaryNode<OpBitwiseOr, typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t,
typename CreateLeaf<T2>::Leaf_t>>::
396 template<
class T1,
class T2>
397 inline typename MakeReturn<
398 BinaryNode<OpBitwiseXor, typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t,
typename CreateLeaf<T2>::Leaf_t>>::
407 template<
class T1,
class T2>
408 inline typename MakeReturn<
409 BinaryNode<OpAdd, typename CreateLeaf<T1>::Leaf_t,
typename CreateLeaf<ParticleAttrib<T2>>::Leaf_t>>::Expression_t
416 template<
class T1,
class T2>
417 inline typename MakeReturn<
418 BinaryNode<OpSubtract, typename CreateLeaf<T1>::Leaf_t,
typename CreateLeaf<ParticleAttrib<T2>>::Leaf_t>>::
427 template<
class T1,
class T2>
428 inline typename MakeReturn<
429 BinaryNode<OpMultiply, typename CreateLeaf<T1>::Leaf_t,
typename CreateLeaf<ParticleAttrib<T2>>::Leaf_t>>::
438 template<
class T1,
class T2>
439 inline typename MakeReturn<
440 BinaryNode<OpMod, typename CreateLeaf<T1>::Leaf_t,
typename CreateLeaf<ParticleAttrib<T2>>::Leaf_t>>::Expression_t
447 template<
class T1,
class T2>
448 inline typename MakeReturn<
449 BinaryNode<OpBitwiseAnd, typename CreateLeaf<T1>::Leaf_t,
typename CreateLeaf<ParticleAttrib<T2>>::Leaf_t>>::
458 template<
class T1,
class T2>
459 inline typename MakeReturn<
460 BinaryNode<OpBitwiseOr, typename CreateLeaf<T1>::Leaf_t,
typename CreateLeaf<ParticleAttrib<T2>>::Leaf_t>>::
469 template<
class T1,
class T2>
470 inline typename MakeReturn<
471 BinaryNode<OpBitwiseXor, typename CreateLeaf<T1>::Leaf_t,
typename CreateLeaf<ParticleAttrib<T2>>::Leaf_t>>::
479 #ifdef PETE_ALLOW_SCALAR_SHIFT 480 #endif // PETE_ALLOW_SCALAR_SHIFT 482 template<
class T1,
class T2,
class T3>
483 inline typename MakeReturn<TrinaryNode<FnWhere,
484 typename CreateLeaf<ParticleAttrib<T1>>::Leaf_t,
495 #ifndef PETE_EXPRESSION_OPERATORS 496 #define PETE_EXPRESSION_OPERATORS 499 inline typename MakeReturn<UnaryNode<OpUnaryMinus, typename CreateLeaf<Expression<T1>>::Leaf_t>>::Expression_t
502 using Tree_t = UnaryNode<OpUnaryMinus, typename CreateLeaf<Expression<T1>>::Leaf_t>;
507 inline typename MakeReturn<UnaryNode<OpUnaryPlus, typename CreateLeaf<Expression<T1>>::Leaf_t>>::Expression_t
operator+(
508 const Expression<T1>& l)
510 using Tree_t = UnaryNode<OpUnaryPlus, typename CreateLeaf<Expression<T1>>::Leaf_t>;
515 inline typename MakeReturn<UnaryNode<OpBitwiseNot, typename CreateLeaf<Expression<T1>>::Leaf_t>>::Expression_t
518 using Tree_t = UnaryNode<OpBitwiseNot, typename CreateLeaf<Expression<T1>>::Leaf_t>;
523 inline typename MakeReturn<UnaryNode<OpIdentity, typename CreateLeaf<Expression<T1>>::Leaf_t>>::Expression_t
526 using Tree_t = UnaryNode<OpIdentity, typename CreateLeaf<Expression<T1>>::Leaf_t>;
530 template<
class T1,
class T2>
531 inline typename MakeReturn<UnaryNode<OpCast<T1>,
typename CreateLeaf<Expression<T2>>::Leaf_t>>::Expression_t
peteCast(
533 const Expression<T2>& l)
535 using Tree_t = UnaryNode<OpCast<T1>,
typename CreateLeaf<Expression<T2>>::Leaf_t>;
539 template<
class T1,
class T2>
540 inline typename MakeReturn<
541 BinaryNode<OpAdd, typename CreateLeaf<Expression<T1>>::Leaf_t,
typename CreateLeaf<Expression<T2>>::Leaf_t>>::
543 operator+(
const Expression<T1>& l,
const Expression<T2>& r)
545 typedef BinaryNode<OpAdd, typename CreateLeaf<Expression<T1>>::Leaf_t,
typename CreateLeaf<Expression<T2>>::Leaf_t>
550 template<
class T1,
class T2>
551 inline typename MakeReturn<
552 BinaryNode<OpSubtract, typename CreateLeaf<Expression<T1>>::Leaf_t,
typename CreateLeaf<Expression<T2>>::Leaf_t>>::
554 operator-(
const Expression<T1>& l,
const Expression<T2>& r)
556 typedef BinaryNode<OpSubtract, typename CreateLeaf<Expression<T1>>::Leaf_t,
557 typename CreateLeaf<Expression<T2>>::Leaf_t>
562 template<
class T1,
class T2>
563 inline typename MakeReturn<
564 BinaryNode<OpMultiply, typename CreateLeaf<Expression<T1>>::Leaf_t,
typename CreateLeaf<Expression<T2>>::Leaf_t>>::
566 operator*(
const Expression<T1>& l,
const Expression<T2>& r)
568 typedef BinaryNode<OpMultiply, typename CreateLeaf<Expression<T1>>::Leaf_t,
569 typename CreateLeaf<Expression<T2>>::Leaf_t>
574 template<
class T1,
class T2>
575 inline typename MakeReturn<
576 BinaryNode<OpMod, typename CreateLeaf<Expression<T1>>::Leaf_t,
typename CreateLeaf<Expression<T2>>::Leaf_t>>::
578 operator%(
const Expression<T1>& l,
const Expression<T2>& r)
580 typedef BinaryNode<OpMod, typename CreateLeaf<Expression<T1>>::Leaf_t,
typename CreateLeaf<Expression<T2>>::Leaf_t>
585 template<
class T1,
class T2>
586 inline typename MakeReturn<BinaryNode<OpBitwiseAnd,
587 typename CreateLeaf<Expression<T1>>::Leaf_t,
588 typename CreateLeaf<Expression<T2>>::Leaf_t>>::Expression_t
597 template<
class T1,
class T2>
598 inline typename MakeReturn<
599 BinaryNode<OpBitwiseOr, typename CreateLeaf<Expression<T1>>::Leaf_t,
typename CreateLeaf<Expression<T2>>::Leaf_t>>::
601 operator|(
const Expression<T1>& l,
const Expression<T2>& r)
603 typedef BinaryNode<OpBitwiseOr, typename CreateLeaf<Expression<T1>>::Leaf_t,
604 typename CreateLeaf<Expression<T2>>::Leaf_t>
609 template<
class T1,
class T2>
610 inline typename MakeReturn<BinaryNode<OpBitwiseXor,
611 typename CreateLeaf<Expression<T1>>::Leaf_t,
612 typename CreateLeaf<Expression<T2>>::Leaf_t>>::Expression_t
613 operator^(
const Expression<T1>& l,
const Expression<T2>& r)
615 typedef BinaryNode<OpBitwiseXor, typename CreateLeaf<Expression<T1>>::Leaf_t,
616 typename CreateLeaf<Expression<T2>>::Leaf_t>
621 template<
class T1,
class T2>
622 inline typename MakeReturn<
623 BinaryNode<OpAdd, typename CreateLeaf<Expression<T1>>::Leaf_t,
typename CreateLeaf<T2>::Leaf_t>>::Expression_t
624 operator+(
const Expression<T1>& l,
const T2& r)
626 using Tree_t = BinaryNode<OpAdd, typename CreateLeaf<Expression<T1>>::Leaf_t,
typename CreateLeaf<T2>::Leaf_t>;
630 template<
class T1,
class T2>
631 inline typename MakeReturn<
632 BinaryNode<OpSubtract, typename CreateLeaf<Expression<T1>>::Leaf_t,
typename CreateLeaf<T2>::Leaf_t>>::Expression_t
633 operator-(
const Expression<T1>& l,
const T2& r)
635 using Tree_t = BinaryNode<OpSubtract, typename CreateLeaf<Expression<T1>>::Leaf_t,
typename CreateLeaf<T2>::Leaf_t>;
639 template<
class T1,
class T2>
640 inline typename MakeReturn<
641 BinaryNode<OpMultiply, typename CreateLeaf<Expression<T1>>::Leaf_t,
typename CreateLeaf<T2>::Leaf_t>>::Expression_t
642 operator*(
const Expression<T1>& l,
const T2& r)
644 using Tree_t = BinaryNode<OpMultiply, typename CreateLeaf<Expression<T1>>::Leaf_t,
typename CreateLeaf<T2>::Leaf_t>;
648 template<
class T1,
class T2>
649 inline typename MakeReturn<
650 BinaryNode<OpMod, typename CreateLeaf<Expression<T1>>::Leaf_t,
typename CreateLeaf<T2>::Leaf_t>>::Expression_t
651 operator%(
const Expression<T1>& l,
const T2& r)
653 using Tree_t = BinaryNode<OpMod, typename CreateLeaf<Expression<T1>>::Leaf_t,
typename CreateLeaf<T2>::Leaf_t>;
657 template<
class T1,
class T2>
658 inline typename MakeReturn<
667 template<
class T1,
class T2>
668 inline typename MakeReturn<
669 BinaryNode<OpBitwiseOr, typename CreateLeaf<Expression<T1>>::Leaf_t,
typename CreateLeaf<T2>::Leaf_t>>::Expression_t
670 operator|(
const Expression<T1>& l,
const T2& r)
672 using Tree_t = BinaryNode<OpBitwiseOr, typename CreateLeaf<Expression<T1>>::Leaf_t,
typename CreateLeaf<T2>::Leaf_t>;
676 template<
class T1,
class T2>
677 inline typename MakeReturn<
680 operator^(
const Expression<T1>& l,
const T2& r)
682 using Tree_t = BinaryNode<OpBitwiseXor, typename CreateLeaf<Expression<T1>>::Leaf_t,
typename CreateLeaf<T2>::Leaf_t>;
686 template<
class T1,
class T2>
687 inline typename MakeReturn<
688 BinaryNode<OpAdd, typename CreateLeaf<T1>::Leaf_t,
typename CreateLeaf<Expression<T2>>::Leaf_t>>::Expression_t
689 operator+(
const T1& l,
const Expression<T2>& r)
691 using Tree_t = BinaryNode<OpAdd, typename CreateLeaf<T1>::Leaf_t,
typename CreateLeaf<Expression<T2>>::Leaf_t>;
695 template<
class T1,
class T2>
696 inline typename MakeReturn<
697 BinaryNode<OpSubtract, typename CreateLeaf<T1>::Leaf_t,
typename CreateLeaf<Expression<T2>>::Leaf_t>>::Expression_t
698 operator-(
const T1& l,
const Expression<T2>& r)
700 using Tree_t = BinaryNode<OpSubtract, typename CreateLeaf<T1>::Leaf_t,
typename CreateLeaf<Expression<T2>>::Leaf_t>;
704 template<
class T1,
class T2>
705 inline typename MakeReturn<
706 BinaryNode<OpMultiply, typename CreateLeaf<T1>::Leaf_t,
typename CreateLeaf<Expression<T2>>::Leaf_t>>::Expression_t
707 operator*(
const T1& l,
const Expression<T2>& r)
709 using Tree_t = BinaryNode<OpMultiply, typename CreateLeaf<T1>::Leaf_t,
typename CreateLeaf<Expression<T2>>::Leaf_t>;
713 template<
class T1,
class T2>
714 inline typename MakeReturn<
715 BinaryNode<OpMod, typename CreateLeaf<T1>::Leaf_t,
typename CreateLeaf<Expression<T2>>::Leaf_t>>::Expression_t
716 operator%(
const T1& l,
const Expression<T2>& r)
718 using Tree_t = BinaryNode<OpMod, typename CreateLeaf<T1>::Leaf_t,
typename CreateLeaf<Expression<T2>>::Leaf_t>;
722 template<
class T1,
class T2>
723 inline typename MakeReturn<
724 BinaryNode<OpBitwiseAnd, typename CreateLeaf<T1>::Leaf_t,
typename CreateLeaf<Expression<T2>>::Leaf_t>>::
732 template<
class T1,
class T2>
733 inline typename MakeReturn<
734 BinaryNode<OpBitwiseOr, typename CreateLeaf<T1>::Leaf_t,
typename CreateLeaf<Expression<T2>>::Leaf_t>>::Expression_t
735 operator|(
const T1& l,
const Expression<T2>& r)
737 using Tree_t = BinaryNode<OpBitwiseOr, typename CreateLeaf<T1>::Leaf_t,
typename CreateLeaf<Expression<T2>>::Leaf_t>;
741 template<
class T1,
class T2>
742 inline typename MakeReturn<
743 BinaryNode<OpBitwiseXor, typename CreateLeaf<T1>::Leaf_t,
typename CreateLeaf<Expression<T2>>::Leaf_t>>::
745 operator^(
const T1& l,
const Expression<T2>& r)
747 using Tree_t = BinaryNode<OpBitwiseXor, typename CreateLeaf<T1>::Leaf_t,
typename CreateLeaf<Expression<T2>>::Leaf_t>;
750 #ifdef PETE_ALLOW_SCALAR_SHIFT 751 #endif // PETE_ALLOW_SCALAR_SHIFT 753 template<
class T1,
class T2,
class T3>
754 inline typename MakeReturn<TrinaryNode<FnWhere,
755 typename CreateLeaf<Expression<T1>>::Leaf_t,
758 where(
const Expression<T1>& c,
const T2& t,
const T3& f)
760 typedef TrinaryNode<FnWhere, typename CreateLeaf<Expression<T1>>::Leaf_t,
typename CreateLeaf<T2>::Leaf_t,
766 #endif // PETE_EXPRESSION_OPERATORS 768 template<
class T1,
class RHS>
776 template<
class T1,
class RHS>
784 template<
class T1,
class RHS>
792 template<
class T1,
class RHS>
800 template<
class T1,
class RHS>
808 template<
class T1,
class RHS>
816 template<
class T1,
class RHS>
824 template<
class T1,
class RHS>
895 template<
class T,
class Op,
class RHS>
902 for (
int i = 0; i < lhs.
size(); ++i)
916 throw std::runtime_error(
"Error in evaluate: LHS and RHS don't conform in ParticleAttrib.");
922 std::ostream& operator<<(std::ostream& out, const ParticleAttrib<T>& rhs)
924 for (
int i = 0; i < rhs.size(); i++)
925 out << rhs[i] << std::endl;
930 #endif // OHMMS_PARTICLEATTRIB_PEPE_OPERATORS_H MakeReturn< BinaryNode< OpMultiply, typename CreateLeaf< Matrix< T1, C1 > >::Leaf_t, typename CreateLeaf< Matrix< T2, C2 > >::Leaf_t > >::Expression_t operator*(const Matrix< T1, C1 > &l, const Matrix< T2, C2 > &r)
Matrix< T1, C1 > & operator%=(Matrix< T1, C1 > &lhs, const RHS &rhs)
Matrix< T1, C1 > & operator|=(Matrix< T1, C1 > &lhs, const RHS &rhs)
MakeReturn< BinaryNode< OpMod, typename CreateLeaf< Matrix< T1, C1 > >::Leaf_t, typename CreateLeaf< Matrix< T2, C2 > >::Leaf_t > >::Expression_t operator%(const Matrix< T1, C1 > &l, const Matrix< T2, C2 > &r)
helper functions for EinsplineSetBuilder
MakeReturn< UnaryNode< OpBitwiseNot, typename CreateLeaf< Matrix< T1, C1 > >::Leaf_t > >::Expression_t operator~(const Matrix< T1, C1 > &l)
ForEach< Expr, FTag, CTag >::Type_t forEach(const Expr &e, const FTag &f, const CTag &c)
static bool apply(const Scalar< T > &, const SizeLeafPA &)
MakeReturn< UnaryNode< OpUnaryMinus, typename CreateLeaf< Matrix< T1, C1 > >::Leaf_t > >::Expression_t operator-(const Matrix< T1, C1 > &l)
Attaches a unit to a Vector for IO.
MakeReturn< TrinaryNode< FnWhere, typename CreateLeaf< Matrix< T1, C1 > >::Leaf_t, typename CreateLeaf< T2 >::Leaf_t, typename CreateLeaf< T3 >::Leaf_t > >::Expression_t where(const Matrix< T1, C1 > &c, const T2 &t, const T3 &f)
const AntiSymTensor< T, D > & operator+(const AntiSymTensor< T, D > &op)
Matrix< T1, C1 > & operator+=(Matrix< T1, C1 > &lhs, const RHS &rhs)
static Expression_t make(const T &a)
Matrix< T1, C1 > & operator &=(Matrix< T1, C1 > &lhs, const RHS &rhs)
static Leaf_t make(const T &a)
size_type size() const
return the current size
MakeReturn< BinaryNode< OpBitwiseAnd, typename CreateLeaf< Matrix< T1, C1 > >::Leaf_t, typename CreateLeaf< Matrix< T2, C2 > >::Leaf_t > >::Expression_t operator &(const Matrix< T1, C1 > &l, const Matrix< T2, C2 > &r)
Matrix< T1, C1 > & operator^=(Matrix< T1, C1 > &lhs, const RHS &rhs)
Matrix< T1, C1 > & assign(Matrix< T1, C1 > &lhs, const RHS &rhs)
MakeReturn< BinaryNode< OpBitwiseXor, typename CreateLeaf< Matrix< T1, C1 > >::Leaf_t, typename CreateLeaf< Matrix< T2, C2 > >::Leaf_t > >::Expression_t operator^(const Matrix< T1, C1 > &l, const Matrix< T2, C2 > &r)
MakeReturn< UnaryNode< OpCast< T1 >, typename CreateLeaf< Matrix< T2, C2 > >::Leaf_t > >::Expression_t peteCast(const T1 &, const Matrix< T2, C2 > &l)
bool operator()(int s) const
SizeLeafPA(const SizeLeafPA &model)
Matrix< T1, C1 > & operator*=(Matrix< T1, C1 > &lhs, const RHS &rhs)
static Leaf_t make(const ParticleAttrib< T > &a)
Matrix< T1, C1 > & operator-=(Matrix< T1, C1 > &lhs, const RHS &rhs)
static Type_t apply(const ParticleAttrib< T > &vec, const EvalLeaf1 &f)
void evaluate(Matrix< T, Alloc > &lhs, const Op &op, const Expression< RHS > &rhs)
MakeReturn< UnaryNode< OpIdentity, typename CreateLeaf< Matrix< T1, C1 > >::Leaf_t > >::Expression_t PETE_identity(const Matrix< T1, C1 > &l)
static bool apply(const ParticleAttrib< T > &v, const SizeLeafPA &s)
MakeReturn< BinaryNode< OpBitwiseOr, typename CreateLeaf< Matrix< T1, C1 > >::Leaf_t, typename CreateLeaf< Matrix< T2, C2 > >::Leaf_t > >::Expression_t operator|(const Matrix< T1, C1 > &l, const Matrix< T2, C2 > &r)