15template<
typename ValueType>
18template<
typename ValueType>
20 requires requires(ValueType a,
scalar b) { a* b; };
25template<
typename ValueType,
typename BinaryOp>
32template<
typename ValueType>
35template<
typename ValueType>
38template<
typename ValueType>
41template<
typename ValueType>
44template<
typename ValueType>
46 requires requires(ValueType a, ValueType b) { a* b; };
48template<
typename ValueType>
50 requires requires(ValueType a, ValueType b) { a* b; };
56template<
unsigned int I>
63template<
unsigned int I>
69template<
typename ValueType>
A class to contain the data and executors for a field and define some basic operations.
void fieldBinaryOp(Vector< ValueType > &vect1, const Vector< std::type_identity_t< ValueType > > &vect2, BinaryOp op)
Integer types used throughout NeoN.
void sub(Vector< ValueType > &vect, const std::type_identity_t< ValueType > &value)
void add(Vector< ValueType > &vect, const std::type_identity_t< ValueType > &value)
void mul(Vector< ValueType > &vect, const std::type_identity_t< ValueType > &value)
void scalarMul(Vector< ValueType > &vect, const scalar value)
Vector< ValueType > take(const Vector< ValueType > &in, std::pair< localIdx, localIdx > range)
Given a Vector and an index range [first, first+length] a subvector is created.
Vector< scalar > getComponent(const Vector< Vec3 > &in)
Given a Vector of Vec3 this function extracts a single component.
void setComponent(const Vector< scalar > &in, Vector< Vec3 > &out)
Given a Vector of Vec3 this function sets a single component.