51 const V& v1 = a1.derived();
52 const V2& v2 = a2.derived();
54 if (v2.hasFastAccess(v1.size())) {
55#ifdef STOKHOS_HAVE_PRAGMA_IVDEP
58#ifdef STOKHOS_HAVE_PRAGMA_VECTOR_ALIGNED
61#ifdef STOKHOS_HAVE_PRAGMA_UNROLL
64 for(std::size_t i=0; i<mask.size; ++i)
65 mask.set(i, v1.fastAccessCoeff(i)
OPNAME v2.fastAccessCoeff(i));
68#ifdef STOKHOS_HAVE_PRAGMA_IVDEP
71#ifdef STOKHOS_HAVE_PRAGMA_VECTOR_ALIGNED
74#ifdef STOKHOS_HAVE_PRAGMA_UNROLL
77 for(std::size_t i=0; i<mask.size; ++i)
78 mask.set(i, v1.fastAccessCoeff(i)
OPNAME v2.coeff(i));
86 operator OPNAME (
const volatile Expr<V> &a1,
87 const volatile Expr<V2> &a2)
89 const volatile V& v1 = a1.derived();
90 const volatile V2& v2 = a2.derived();
92 if (v2.hasFastAccess(v1.size())) {
93#ifdef STOKHOS_HAVE_PRAGMA_IVDEP
96#ifdef STOKHOS_HAVE_PRAGMA_VECTOR_ALIGNED
99#ifdef STOKHOS_HAVE_PRAGMA_UNROLL
102 for(std::size_t i=0; i<mask.size; ++i)
103 mask.set(i, v1.fastAccessCoeff(i)
OPNAME v2.fastAccessCoeff(i));
106#ifdef STOKHOS_HAVE_PRAGMA_IVDEP
109#ifdef STOKHOS_HAVE_PRAGMA_VECTOR_ALIGNED
110#pragma vector aligned
112#ifdef STOKHOS_HAVE_PRAGMA_UNROLL
115 for(std::size_t i=0; i<mask.size; ++i)
116 mask.set(i, v1.fastAccessCoeff(i)
OPNAME v2.coeff(i));
125 const volatile Expr<V2> &a2)
127 const V& v1 = a1.derived();
128 const volatile V2& v2 = a2.derived();
130 if (v2.hasFastAccess(v1.size())) {
131#ifdef STOKHOS_HAVE_PRAGMA_IVDEP
134#ifdef STOKHOS_HAVE_PRAGMA_VECTOR_ALIGNED
135#pragma vector aligned
137#ifdef STOKHOS_HAVE_PRAGMA_UNROLL
140 for(std::size_t i=0; i<mask.size; ++i)
141 mask.set(i, v1.fastAccessCoeff(i)
OPNAME v2.fastAccessCoeff(i));
144#ifdef STOKHOS_HAVE_PRAGMA_IVDEP
147#ifdef STOKHOS_HAVE_PRAGMA_VECTOR_ALIGNED
148#pragma vector aligned
150#ifdef STOKHOS_HAVE_PRAGMA_UNROLL
153 for(std::size_t i=0; i<mask.size; ++i)
154 mask.set(i, v1.fastAccessCoeff(i)
OPNAME v2.coeff(i));
162 operator OPNAME (
const volatile Expr<V> &a1,
165 const volatile V& v1 = a1.derived();
166 const V2& v2 = a2.derived();
168 if (v2.hasFastAccess(v1.size())) {
169#ifdef STOKHOS_HAVE_PRAGMA_IVDEP
172#ifdef STOKHOS_HAVE_PRAGMA_VECTOR_ALIGNED
173#pragma vector aligned
175#ifdef STOKHOS_HAVE_PRAGMA_UNROLL
178 for(std::size_t i=0; i<mask.size; ++i)
179 mask.set(i, v1.fastAccessCoeff(i)
OPNAME v2.fastAccessCoeff(i));
182#ifdef STOKHOS_HAVE_PRAGMA_IVDEP
185#ifdef STOKHOS_HAVE_PRAGMA_VECTOR_ALIGNED
186#pragma vector aligned
188#ifdef STOKHOS_HAVE_PRAGMA_UNROLL
191 for(std::size_t i=0; i<mask.size; ++i)
192 mask.set(i, v1.fastAccessCoeff(i)
OPNAME v2.coeff(i));