45 template <
typename V,
typename V2>
46 KOKKOS_INLINE_FUNCTION
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 59 #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 72 #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));
83 template <
typename V,
typename V2>
84 KOKKOS_INLINE_FUNCTION
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 97 #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));
121 template <
typename V,
typename V2>
122 KOKKOS_INLINE_FUNCTION
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));
159 template <
typename V,
typename V2>
160 KOKKOS_INLINE_FUNCTION
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));
197 template <
typename V>
198 KOKKOS_INLINE_FUNCTION
203 const V& v1 = a1.derived();
205 #ifdef STOKHOS_HAVE_PRAGMA_IVDEP 208 #ifdef STOKHOS_HAVE_PRAGMA_VECTOR_ALIGNED 209 #pragma vector aligned 211 #ifdef STOKHOS_HAVE_PRAGMA_UNROLL 214 for(std::size_t i=0; i<mask.
size; ++i)
215 mask.
set(i, v1.fastAccessCoeff(i)
OPNAME a2);
219 template <
typename V>
220 KOKKOS_INLINE_FUNCTION
225 const volatile V& v1 = a1.derived();
227 #ifdef STOKHOS_HAVE_PRAGMA_IVDEP 230 #ifdef STOKHOS_HAVE_PRAGMA_VECTOR_ALIGNED 231 #pragma vector aligned 233 #ifdef STOKHOS_HAVE_PRAGMA_UNROLL 236 for(std::size_t i=0; i<mask.
size; ++i)
237 mask.
set(i, v1.fastAccessCoeff(i)
OPNAME a2);
241 template <
typename V>
242 KOKKOS_INLINE_FUNCTION
247 const V& v2 = a2.derived();
249 #ifdef STOKHOS_HAVE_PRAGMA_IVDEP 252 #ifdef STOKHOS_HAVE_PRAGMA_VECTOR_ALIGNED 253 #pragma vector aligned 255 #ifdef STOKHOS_HAVE_PRAGMA_UNROLL 258 for(std::size_t i=0; i<mask.
size; ++i)
259 mask.
set(i, a1
OPNAME v2.fastAccessCoeff(i));
263 template <
typename V>
264 KOKKOS_INLINE_FUNCTION
269 const volatile V& v2 = a2.derived();
271 #ifdef STOKHOS_HAVE_PRAGMA_IVDEP 274 #ifdef STOKHOS_HAVE_PRAGMA_VECTOR_ALIGNED 275 #pragma vector aligned 277 #ifdef STOKHOS_HAVE_PRAGMA_UNROLL 280 for(std::size_t i=0; i<mask.
size; ++i)
281 mask.
set(i, a1
OPNAME v2.fastAccessCoeff(i));
static const std::size_t size
KOKKOS_INLINE_FUNCTION void set(int i, bool b)
KOKKOS_INLINE_FUNCTION Vector< Stokhos::StaticFixedStorage< O, T, N, D > > OPNAME(const Vector< Stokhos::StaticFixedStorage< O, T, N, D > > &a, const Vector< Stokhos::StaticFixedStorage< O, T, N, D > > &b)