|
template<typename T > |
cpu::simd::Pack< T > | sqrt (cpu::simd::Pack< T > value) |
|
template<typename T > |
cpu::simd::Pack< T > | fabs (cpu::simd::Pack< T > value) |
|
template<typename T > |
cpu::simd::Pack< T > | pow (cpu::simd::Pack< T > base, cpu::simd::Pack< T > exp) |
|
template<typename T , typename S > |
cpu::simd::Pack< T > | pow (cpu::simd::Pack< T > base, S exp) |
|
template<typename T > |
cpu::simd::Pack< T > | min (cpu::simd::Pack< T > rhs, cpu::simd::Pack< T > lhs) |
|
template<typename T > |
cpu::simd::Pack< T > | max (cpu::simd::Pack< T > rhs, cpu::simd::Pack< T > lhs) |
|
template<typename T > |
T | norm (const std::vector< T > &a) |
| l2 norm of a vector of arbitrary length
|
|
template<typename T > |
int | sign (T val) |
|
template<typename T > |
bool | aligned_to_x (const std::vector< T > &vec) |
|
template<typename T > |
bool | aligned_to_y (const std::vector< T > &vec) |
|
template<typename T > |
bool | aligned_to_z (const std::vector< T > &vec) |
|
template<typename T > |
bool | aligned_to_grid (const std::vector< T > &vec) |
|
bool | intersect (int x0, int x1, int y0, int y1, int x0_, int x1_, int y0_, int y1_, int &newX0, int &newX1, int &newY0, int &newY1) |
|
bool | intersect (int x0, int x1, int y0, int y1, int z0, int z1, int x0_, int x1_, int y0_, int y1_, int z0_, int z1_, int &newX0, int &newX1, int &newY0, int &newY1, int &newZ0, int &newZ1) |
|
bool | contained (int x, int y, int x0, int x1, int y0, int y1) |
|
bool | contained (int x, int y, int z, int x0, int x1, int y0, int y1, int z0, int z1) |
|
template<typename T > |
T | sqr (T arg) |
|
template<typename ARRAY_LIKE , unsigned D> |
auto | normSqr (const ARRAY_LIKE &u) any_platform |
| Compute norm square of a d-dimensional vector.
|
|
template<unsigned D, typename ARRAY_LIKE > |
auto | norm (const ARRAY_LIKE &u) |
|
template<typename T , unsigned D> |
T | normSqr (const T *u) any_platform |
|
template<typename T > |
T | normSqr (std::initializer_list< T > data) |
|
template<typename T , unsigned D, typename IMPL > |
T | normSqr (const ScalarVector< T, D, IMPL > &u) any_platform |
| Compute norm square of a d-dimensional vector.
|
|
template<typename T , int d> |
T | scalarProduct (const T u1[d], const T u2[d]) |
|
template<typename T > |
T | scalarProduct (const std::vector< T > &u1, const std::vector< T > &u2) |
|
template<typename DESCRIPTOR , unsigned iVel, int value> |
constexpr auto | populationsContributingToVelocity () any_platform |
| Return array of population indices where c[iVel] == value.
|
|
template<typename DESCRIPTOR , int... NORMAL> |
constexpr auto | populationsContributingToDirection () any_platform |
| Return array of population indices where c[iPop][iD] == NORMAL[iD].
|
|
template<typename DESCRIPTORBASE > |
int | findVelocity (const int v[DESCRIPTORBASE::d]) any_platform |
|
template<typename DESCRIPTOR , int direction, int orientation> |
constexpr auto | subIndexOutgoing () any_platform |
| Compute opposites of wall-incoming population indices.
|
|
template<typename DESCRIPTOR , int direction, int orientation> |
constexpr auto | subIndexOutgoingRemaining () any_platform |
|
template<typename DESCRIPTOR , int plane, int normal1, int normal2> |
constexpr auto | subIndexOutgoing3DonEdges () any_platform |
|
template<typename DESCRIPTOR , int normalX, int normalY> |
constexpr auto | subIndexOutgoing2DonCorners () any_platform |
|
template<typename DESCRIPTOR , int normalX, int normalY, int normalZ> |
constexpr auto | subIndexOutgoing3DonCorners () any_platform |
|
template<typename DESCRIPTORBASE > |
std::vector< int > | remainingIndexes (const std::vector< int > &indices) |
| finds all the remaining indexes of a lattice given some other indexes
|
|
template<typename T , typename DESCRIPTOR > |
int | get_nearest_link (const std::vector< T > &vec) |
| Util Function for Wall Model of Malaspinas get link with smallest angle to a vector.
|
|
template<typename T , typename DESCRIPTOR > |
T | densityFromPressure (T latticePressure) |
| compute lattice density from lattice pressure
|
|
template<typename T , typename DESCRIPTOR > |
T | pressureFromDensity (T latticeDensity) |
| compute lattice pressure from lattice density
|
|
template<typename S , unsigned D, typename F1 , typename F2 > |
bool | distance (S &distance, const Vector< S, D > &origin, const Vector< S, D > &direction, S precision, S pitch, F1 isInside, F2 isInsideBoundingBox) |
|
template<typename S , unsigned D, typename F1 , typename F2 > |
bool | distance (S &distance, const Vector< S, D > &origin, const Vector< S, D > &direction, S precision, F1 sdf, F2 isInsideBoundingBox, const unsigned maxIt=1e6) |
|
template<typename S , unsigned D, bool normalizeDirection = true> |
bool | distance (S &distance, const Vector< S, D > &origin, const Vector< S, D > &direction, S precision, std::function< S(const Vector< S, D > &)> sdf, S maxDistance, const unsigned maxIt=1e6) |
|
template<typename S , unsigned D, typename F1 , typename F2 > |
bool | bisectDistance (S &distance, const Vector< S, D > &origin, const Vector< S, D > &direction, S pitch, S precision, F1 isInside, F2 isInsideBoundingBox) |
| Using a bisect to find the unsigned distance (false if distance was not found, true if distance was found)
|
|
template<typename S , unsigned D, typename F1 > |
Vector< S, D > | surfaceNormal (const Vector< S, D > &pos, const S meshSize, F1 sdf) |
|
template<typename SAD > |
void | iniDiagonal (SAD *a, int dim) |
| The variables of an array are set to be the differential variables.
|
|
template<typename C > |
void | iniDiagonal (C &a) |
|
template<typename T , typename TAD > |
void | copyDerivatives (T *target, const TAD *source, int length) |
| Copy the derivatives from an ADf array into an array.
|
|
template<typename T , typename S , template< typename > typename C> |
C< T > | copyAs (const C< S > &input) |
| copy vector with specified typecast
|
|
template<typename S > |
ADf< S, 1 > | iniAD (const S source) |
| copy value and initialize derivative
|
|
template<unsigned n, typename S > |
ADf< S, n > * | iniAD (const S *source) |
| copy array values and initialize derivatives
|
|
template<unsigned n, typename S , template< typename > typename C> |
C< ADf< S, n > > | iniAD (const C< S > &source) |
| copy values and initialize derivatives
|
|
template<typename S , typename F > |
auto | derivativeFAD (F f, const S input) |
| Compute derivatives of a function f: S -> T via forward AD Signature is "V f(U)" so f is expected to accept and return a single value.
|
|
template<unsigned sourceDIM, typename S , typename F > |
auto | derivativeFAD (F f, const S *input) |
| Compute derivatives of a function f: S^sourceDIM -> T via forward AD Signature is "V f(U*)" so f is expected to return a single value.
|
|
template<unsigned sourceDIM, typename T , typename S , typename F > |
void | derivativeFAD (F f, T *output, const S *input, unsigned targetDIM) |
| Compute derivatives of a function f: S^sourceDIM -> T^targetDIM via forward AD Signature of f is "void f(V*, U*)", it is expected to modify the first argument in-place.
|
|
template<class T , unsigned DIM> |
std::ostream & | operator<< (std::ostream &os, const ADf< T, DIM > &o) |
|
template<class T , unsigned DIM> |
std::istream & | operator>> (std::istream &is, ADf< T, DIM > &in) |
|
template<class T , unsigned DIM, typename U , typename std::enable_if< std::is_integral< U >::value|std::is_floating_point< U >::value, int >::type = 0> |
constexpr ADf< T, DIM > | operator+ (const U &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM, typename U , typename std::enable_if< std::is_integral< U >::value|std::is_floating_point< U >::value, int >::type = 0> |
constexpr ADf< T, DIM > | operator+ (const ADf< T, DIM > &a, const U &b) |
|
template<class T , unsigned DIM> |
constexpr ADf< T, DIM > | operator+ (const ADf< T, DIM > &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM, typename U , typename std::enable_if< std::is_integral< U >::value|std::is_floating_point< U >::value, int >::type = 0> |
constexpr ADf< T, DIM > | operator- (const U &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM, typename U , typename std::enable_if< std::is_integral< U >::value|std::is_floating_point< U >::value, int >::type = 0> |
constexpr ADf< T, DIM > | operator- (const ADf< T, DIM > &a, const U &b) |
|
template<class T , unsigned DIM> |
constexpr ADf< T, DIM > | operator- (const ADf< T, DIM > &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM, typename U , typename std::enable_if< std::is_integral< U >::value|std::is_floating_point< U >::value, int >::type = 0> |
constexpr ADf< T, DIM > | operator* (const U &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM, typename U , typename std::enable_if< std::is_integral< U >::value|std::is_floating_point< U >::value, int >::type = 0> |
constexpr ADf< T, DIM > | operator* (const ADf< T, DIM > &a, const U &b) |
|
template<class T , unsigned DIM> |
constexpr ADf< T, DIM > | operator* (const ADf< T, DIM > &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM, typename U , typename std::enable_if< std::is_integral< U >::value|std::is_floating_point< U >::value, int >::type = 0> |
constexpr ADf< T, DIM > | operator/ (const U &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM, typename U , typename std::enable_if< std::is_integral< U >::value|std::is_floating_point< U >::value, int >::type = 0> |
constexpr ADf< T, DIM > | operator/ (const ADf< T, DIM > &a, const U &b) |
|
template<class T , unsigned DIM> |
constexpr ADf< T, DIM > | operator/ (const ADf< T, DIM > &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM> |
constexpr ADf< T, DIM > | operator+ (const ADf< T, DIM > &a) |
|
template<class T , unsigned DIM> |
constexpr ADf< T, DIM > | operator- (const ADf< T, DIM > &a) |
|
template<class T , unsigned DIM, typename U , typename std::enable_if< std::is_integral< U >::value|std::is_floating_point< U >::value, int >::type = 0> |
ADf< T, DIM > | pow (const U &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM, typename U , typename std::enable_if< std::is_integral< U >::value|std::is_floating_point< U >::value, int >::type = 0> |
ADf< T, DIM > | pow (const ADf< T, DIM > &a, const U &b) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | pow (const ADf< T, DIM > &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | pow (const ADf< T, DIM > &a, int b) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | sqr (const ADf< T, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | exp (const ADf< T, DIM > &a) |
|
template<unsigned DIM> |
ADf< float, DIM > | expf (const ADf< float, DIM > &a) |
|
template<unsigned DIM> |
ADf< long double, DIM > | expl (const ADf< long double, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | log (const ADf< T, DIM > &a) |
|
template<unsigned DIM> |
ADf< float, DIM > | logf (const ADf< float, DIM > &a) |
|
template<unsigned DIM> |
ADf< long double, DIM > | logl (const ADf< long double, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | log10 (const ADf< T, DIM > &a) |
|
template<unsigned DIM> |
ADf< float, DIM > | log10f (const ADf< float, DIM > &a) |
|
template<unsigned DIM> |
ADf< long double, DIM > | log10l (const ADf< long double, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | log2 (const ADf< T, DIM > &a) |
|
template<unsigned DIM> |
ADf< float, DIM > | log2f (const ADf< float, DIM > &a) |
|
template<unsigned DIM> |
ADf< long double, DIM > | log2l (const ADf< long double, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | log1p (const ADf< T, DIM > &a) |
|
template<unsigned DIM> |
ADf< float, DIM > | log1pf (const ADf< float, DIM > &a) |
|
template<unsigned DIM> |
ADf< long double, DIM > | log1pl (const ADf< long double, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | sqrt (const ADf< T, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | sin (const ADf< T, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | cos (const ADf< T, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | tan (const ADf< T, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | asin (const ADf< T, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | acos (const ADf< T, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | atan (const ADf< T, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | atan2 (const T &y, const ADf< T, DIM > &x) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | atan2 (const ADf< T, DIM > &y, const T &x) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | atan2 (const ADf< T, DIM > &y, const ADf< T, DIM > &x) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | sinh (const ADf< T, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | cosh (const ADf< T, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | tanh (const ADf< T, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | asinh (const ADf< T, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | acosh (const ADf< T, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | atanh (const ADf< T, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | fmod (const ADf< T, DIM > &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM, typename U , typename std::enable_if< std::is_integral< U >::value|std::is_floating_point< U >::value, int >::type = 0> |
ADf< T, DIM > | fmod (const ADf< T, DIM > &a, const U &b) |
|
template<class T , unsigned DIM, typename U , typename std::enable_if< std::is_integral< U >::value|std::is_floating_point< U >::value, int >::type = 0> |
ADf< T, DIM > | fmod (const U &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM> |
constexpr bool | operator== (const ADf< T, DIM > &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM, typename U , typename std::enable_if< std::is_integral< U >::value|std::is_floating_point< U >::value, int >::type = 0> |
constexpr bool | operator== (const ADf< T, DIM > &a, const U &b) |
|
template<class T , unsigned DIM, typename U , typename std::enable_if< std::is_integral< U >::value|std::is_floating_point< U >::value, int >::type = 0> |
constexpr bool | operator== (const U &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM> |
constexpr bool | operator!= (const ADf< T, DIM > &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM, typename U , typename std::enable_if< std::is_integral< U >::value|std::is_floating_point< U >::value, int >::type = 0> |
constexpr bool | operator!= (const ADf< T, DIM > &a, const U &b) |
|
template<class T , unsigned DIM, typename U , typename std::enable_if< std::is_integral< U >::value|std::is_floating_point< U >::value, int >::type = 0> |
constexpr bool | operator!= (const U &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM> |
constexpr bool | operator> (const ADf< T, DIM > &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM, typename U , typename std::enable_if< std::is_integral< U >::value|std::is_floating_point< U >::value, int >::type = 0> |
constexpr bool | operator> (const ADf< T, DIM > &a, const U &b) |
|
template<class T , unsigned DIM, typename U , typename std::enable_if< std::is_integral< U >::value|std::is_floating_point< U >::value, int >::type = 0> |
constexpr bool | operator> (const U &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM> |
constexpr bool | operator>= (const ADf< T, DIM > &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM, typename U , typename std::enable_if< std::is_integral< U >::value|std::is_floating_point< U >::value, int >::type = 0> |
constexpr bool | operator>= (const ADf< T, DIM > &a, const U &b) |
|
template<class T , unsigned DIM, typename U , typename std::enable_if< std::is_integral< U >::value|std::is_floating_point< U >::value, int >::type = 0> |
constexpr bool | operator>= (const U &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM> |
constexpr bool | operator< (const ADf< T, DIM > &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM, typename U , typename std::enable_if< std::is_integral< U >::value|std::is_floating_point< U >::value, int >::type = 0> |
constexpr bool | operator< (const ADf< T, DIM > &a, const U &b) |
|
template<class T , unsigned DIM, typename U , typename std::enable_if< std::is_integral< U >::value|std::is_floating_point< U >::value, int >::type = 0> |
constexpr bool | operator< (const U &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM> |
constexpr bool | operator<= (const ADf< T, DIM > &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM, typename U , typename std::enable_if< std::is_integral< U >::value|std::is_floating_point< U >::value, int >::type = 0> |
constexpr bool | operator<= (const ADf< T, DIM > &a, const U &b) |
|
template<class T , unsigned DIM, typename U , typename std::enable_if< std::is_integral< U >::value|std::is_floating_point< U >::value, int >::type = 0> |
constexpr bool | operator<= (const U &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | floor (const ADf< T, DIM > &a) |
|
template<unsigned DIM> |
ADf< float, DIM > | floorf (const ADf< float, DIM > &a) |
|
template<unsigned DIM> |
ADf< long double, DIM > | floorl (const ADf< long double, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | ceil (const ADf< T, DIM > &a) |
|
template<unsigned DIM> |
ADf< float, DIM > | ceilf (const ADf< float, DIM > &a) |
|
template<unsigned DIM> |
ADf< long double, DIM > | ceill (const ADf< long double, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | round (const ADf< T, DIM > &a) |
|
template<unsigned DIM> |
ADf< float, DIM > | roundf (const ADf< float, DIM > &a) |
|
template<unsigned DIM> |
ADf< long double, DIM > | roundl (const ADf< long double, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | lround (const ADf< T, DIM > &a) |
|
template<unsigned DIM> |
ADf< float, DIM > | lroundf (const ADf< float, DIM > &a) |
|
template<unsigned DIM> |
ADf< long double, DIM > | lroundl (const ADf< long double, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | llround (const ADf< T, DIM > &a) |
|
template<unsigned DIM> |
ADf< float, DIM > | llroundf (const ADf< float, DIM > &a) |
|
template<unsigned DIM> |
ADf< long double, DIM > | llroundl (const ADf< long double, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | fabs (const ADf< T, DIM > &a) |
|
template<unsigned DIM> |
ADf< float, DIM > | fabsf (const ADf< float, DIM > &a) |
|
template<unsigned DIM> |
ADf< long double, DIM > | fabsl (const ADf< long double, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | abs (const ADf< T, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | labs (const ADf< T, DIM > &a) |
|
template<class T , unsigned DIM> |
ADf< T, DIM > | llabs (const ADf< T, DIM > &a) |
|
template<class T , unsigned DIM> |
constexpr ADf< T, DIM > | max (const olb::BaseType< ADf< T, DIM > > &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM> |
constexpr ADf< T, DIM > | max (const ADf< T, DIM > &a, const olb::BaseType< ADf< T, DIM > > &b) |
|
template<class T , unsigned DIM> |
constexpr ADf< T, DIM > | max (const ADf< T, DIM > &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM> |
constexpr ADf< T, DIM > | min (const olb::BaseType< ADf< T, DIM > > &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM> |
constexpr ADf< T, DIM > | min (const ADf< T, DIM > &a, const olb::BaseType< ADf< T, DIM > > &b) |
|
template<class T , unsigned DIM> |
constexpr ADf< T, DIM > | min (const ADf< T, DIM > &a, const ADf< T, DIM > &b) |
|
template<class T , unsigned DIM> |
bool | nearZero (const ADf< T, DIM > &a) |
|
template<typename T > |
constexpr void | throwADfException (T arg) |
|
template<typename T , typename S > |
auto | fmod_pos (T a, S b) |
| Variant of fmod (floating point modulo) that always returns positive values.
|
|
Expr | sqrt (Expr x) |
|
Expr | fabs (Expr x) |
|
Expr | pow (Expr base, Expr exp) |
|
Expr | exp (Expr x) |
|
template<typename T , unsigned D> |
decltype(Vector< decltype(util::sqrt(T())), D >()) | degreeToRadian (const Vector< T, D > &angle) |
|
template<typename T > |
decltype(util::sqrt(T())) | degreeToRadian (T angle) |
|
template<typename T , unsigned D> |
decltype(Vector< decltype(util::sqrt(T())), D >()) | radianToDegree (const Vector< T, D > &angle) |
|
template<typename T > |
decltype(util::sqrt(T())) | radianToDegree (T angle) |
|
template<typename T , unsigned D> |
Vector< T, utilities::dimensions::convert< D >::matrix > | calculateRotationMatrix (const Vector< T, utilities::dimensions::convert< D >::rotation > &angle) |
|
template<typename T , unsigned D> |
Vector< T, utilities::dimensions::convert< D >::matrix > | invertRotationMatrix (const Vector< T, utilities::dimensions::convert< D >::matrix > &rotationMatrix) |
|
template<typename T , unsigned D> |
Vector< T, utilities::dimensions::convert< D >::matrix > | calculateInverseRotationMatrix (const Vector< T, utilities::dimensions::convert< D >::rotation > &angle) |
|
template<typename T , unsigned D, bool OUTPUT_USES_ROTATION_CENTER_AS_ORIGIN = false> |
Vector< T, D > | executeRotation (const Vector< T, D > &input, const Vector< T, utilities::dimensions::convert< D >::matrix > &rotationMatrix, const Vector< T, D > &rotationCenter=Vector< T, D >(0.)) |
| Rotates the input around the rotationCenter with a given rotationMatrix.
|
|
template<typename T , unsigned D, bool OUTPUT_USES_ROTATION_CENTER_AS_ORIGIN = false> |
Vector< T, D > | invertRotation (const Vector< T, D > &input, const Vector< T, utilities::dimensions::convert< D >::matrix > &rotationMatrix, const Vector< T, D > &rotationCenter=Vector< T, D >(0.)) |
| Rotates the input around the rotationCenter with a given rotationMatrix in the opposite direction.
|
|
template<typename T , unsigned D> |
constexpr Vector< T, D > | calculateLocalVelocity (const Vector< T, D > &rotationCenter, const Vector< T, D > &velocity, const Vector< T, utilities::dimensions::convert< D >::rotation > &angularVelocity, const Vector< T, D > &position) |
| Calculate local velocity.
|
|
template<typename T > |
constexpr Matrix< T, 3, 3 > | rotateMofi (const Vector< T, 3 > &mofi, const Vector< T, 9 > &rotationMatrix) |
| Rotate moment of inertia (mofi)
|
|
template<typename T > |
int | evaluateIntegration (std::vector< T > &testValues, bool print=false) |
|
template<typename T > |
T | euklidN2 (const T x[], int dim) |
| Squared Euclidean norm of an array.
|
|
template<typename T > |
T | euklidDistance2 (const T x[], const T y[], int dim) |
| Squared Euclidean distance between two arrays.
|
|
template<typename T > |
T | euklidN (const T x[], int dim) |
| Euclidean norm of an array.
|
|
template<typename T > |
T | euklidDistance (const T x[], const T y[], int dim) |
| Euclidean distance between two arrays.
|
|
template<typename C > |
auto | euklidN2 (const C &x) |
| Squared Euclidean norm for Container-type array.
|
|
template<typename C > |
auto | euklidDistance2 (const C &x, const C &y) |
| Squared Euclidean distance for Container-type array.
|
|
template<typename C > |
auto | euklidN (const C &x) |
| Euclidean norm for Container-type array.
|
|
template<typename C > |
auto | euklidDistance (const C &x, const C &y) |
| Euclidean distance for Container-type array.
|
|
template<typename T > |
constexpr T | max (T a, meta::id_t< T > b) |
|
template<typename T , class Compare > |
constexpr T | max (T a, meta::id_t< T > b, Compare comp) |
|
template<typename T > |
constexpr T | max (std::initializer_list< T > ilist) |
|
template<typename T , class Compare > |
constexpr T | max (std::initializer_list< T > ilist, Compare comp) |
|
template<> |
float | max< float > (float x, float y) any_platform |
|
template<> |
double | max< double > (double x, double y) any_platform |
|
template<typename T > |
constexpr T | min (T a, meta::id_t< T > b) |
|
template<typename T , class Compare > |
constexpr T | min (T a, meta::id_t< T > b, Compare comp) |
|
template<typename T > |
constexpr T | min (std::initializer_list< T > ilist) |
|
template<typename T , class Compare > |
constexpr T | min (std::initializer_list< T > ilist, Compare comp) |
|
template<> |
float | min< float > (float x, float y) any_platform |
|
template<> |
double | min< double > (double x, double y) any_platform |
|
template<typename T , typename S > |
any_platform auto | pow (T base, S exp) -> std::enable_if_t< std::is_arithmetic_v< T >, decltype(std::pow(base, exp))> |
|
any_platform float | powf (float base, float exp) |
|
long double | powl (long double base, long double exp) |
|
float | fmod (float x, float y) |
|
float | fmodf (float x, float y) |
|
double | fmod (double x, double y) |
|
long double | fmod (long double x, long double y) |
|
long double | fmodl (long double x, long double y) |
|
float | fmod (float x, int y) |
|
double | fmod (double x, int y) |
|
long double | fmod (long double x, int y) |
|
template<typename T , typename S > |
auto | fmod (T x, S y) |
|
template<typename T > |
std::enable_if_t< std::is_floating_point_v< T >, T > | exp (T arg) any_platform |
|
template<typename T > |
std::enable_if_t< std::is_integral_v< T >, double > | exp (T arg) any_platform |
|
float | expf (float arg) |
|
long double | expl (long double arg) |
|
float | log (float arg) |
|
float | logf (float arg) |
|
double | log (double arg) |
|
long double | log (long double arg) |
|
long double | logl (long double arg) |
|
template<typename T > |
std::enable_if_t< std::is_integral_v< T >, double > | log (T arg) |
|
float | log10 (float arg) |
|
float | log10f (float arg) |
|
double | log10 (double arg) |
|
long double | log10 (long double arg) |
|
long double | log10l (long double arg) |
|
template<typename T > |
std::enable_if_t< std::is_integral_v< T >, double > | log10 (T arg) |
|
float | log2 (float arg) |
|
float | log2f (float arg) |
|
double | log2 (double arg) |
|
long double | log2 (long double arg) |
|
long double | log2l (long double arg) |
|
template<typename T > |
std::enable_if_t< std::is_integral_v< T >, double > | log2 (T arg) |
|
float | log1p (float arg) |
|
float | log1pf (float arg) |
|
double | log1p (double arg) |
|
long double | log1p (long double arg) |
|
long double | log1pl (long double arg) |
|
template<typename T > |
std::enable_if_t< std::is_integral_v< T >, double > | log1p (T arg) |
|
any_platform float | sqrtf (float arg) |
|
long double | sqrtl (long double arg) |
|
template<typename T > |
std::enable_if_t< std::is_floating_point_v< T >, T > | sqrt (T arg) any_platform |
|
template<typename T > |
std::enable_if_t< std::is_integral_v< T >, double > | sqrt (T arg) any_platform |
|
float | sin (float arg) |
|
float | sinf (float arg) |
|
double | sin (double arg) |
|
long double | sin (long double arg) |
|
long double | sinl (long double arg) |
|
template<typename T > |
std::enable_if_t< std::is_integral_v< T >, double > | sin (T arg) |
|
float | sinh (float arg) |
|
float | sinhf (float arg) |
|
double | sinh (double arg) |
|
long double | sinh (long double arg) |
|
long double | sinhl (long double arg) |
|
template<typename T > |
std::enable_if_t< std::is_integral_v< T >, double > | sinh (T arg) |
|
float | cos (float arg) |
|
float | cosf (float arg) |
|
double | cos (double arg) |
|
long double | cos (long double arg) |
|
long double | cosl (long double arg) |
|
template<typename T > |
std::enable_if_t< std::is_integral_v< T >, double > | cos (T arg) |
|
float | cosh (float arg) |
|
float | coshf (float arg) |
|
double | cosh (double arg) |
|
long double | cosh (long double arg) |
|
long double | coshl (long double arg) |
|
template<typename T > |
std::enable_if_t< std::is_integral_v< T >, double > | cosh (T arg) |
|
float | tan (float arg) |
|
float | tanf (float arg) |
|
double | tan (double arg) |
|
long double | tan (long double arg) |
|
long double | tanl (long double arg) |
|
template<typename T > |
std::enable_if_t< std::is_integral_v< T >, double > | tan (T arg) |
|
float | tanh (float arg) |
|
float | tanhf (float arg) |
|
double | tanh (double arg) |
|
long double | tanh (long double arg) |
|
long double | tanhl (long double arg) |
|
template<typename T > |
std::enable_if_t< std::is_integral_v< T >, double > | tanh (T arg) |
|
float | asin (float arg) |
|
float | asinf (float arg) |
|
double | asin (double arg) |
|
long double | asin (long double arg) |
|
long double | asinl (long double arg) |
|
template<typename T > |
std::enable_if_t< std::is_integral_v< T >, double > | asin (T arg) |
|
float | asinh (float arg) |
|
float | asinhf (float arg) |
|
double | asinh (double arg) |
|
long double | asinh (long double arg) |
|
long double | asinhl (long double arg) |
|
template<typename T > |
std::enable_if_t< std::is_integral_v< T >, double > | asinh (T arg) |
|
float | acos (float arg) |
|
float | acosf (float arg) |
|
double | acos (double arg) |
|
long double | acos (long double arg) |
|
long double | acosl (long double arg) |
|
template<typename T > |
std::enable_if_t< std::is_integral_v< T >, double > | acos (T arg) |
|
float | acosh (float arg) |
|
float | acoshf (float arg) |
|
double | acosh (double arg) |
|
long double | acosh (long double arg) |
|
long double | acoshl (long double arg) |
|
template<typename T > |
std::enable_if_t< std::is_integral_v< T >, double > | acosh (T arg) |
|
float | atan (float arg) |
|
float | atanf (float arg) |
|
double | atan (double arg) |
|
long double | atan (long double arg) |
|
long double | atanl (long double arg) |
|
template<typename T > |
std::enable_if_t< std::is_integral_v< T >, double > | atan (T arg) |
|
float | atan2 (float y, float x) |
|
float | atan2f (float y, float x) |
|
double | atan2 (double y, double x) |
|
long double | atan2 (long double y, long double x) |
|
long double | atan2l (long double y, long double x) |
|
template<typename T > |
std::enable_if_t< std::is_integral_v< T >, double > | atan2 (T y, T x) |
|
float | atanh (float arg) |
|
float | atanhf (float arg) |
|
double | atanh (double arg) |
|
long double | atanh (long double arg) |
|
long double | atanhl (long double arg) |
|
template<typename T > |
std::enable_if_t< std::is_integral_v< T >, double > | atanh (T arg) |
|
float | floor (float arg) |
|
double | floor (double arg) |
|
long double | floor (long double arg) |
|
float | floorf (float arg) |
|
long double | floorl (long double arg) |
|
template<typename T > |
std::enable_if_t< std::is_integral_v< T >, double > | floor (T arg) |
|
float | ceil (float arg) |
|
double | ceil (double arg) |
|
long double | ceil (long double arg) |
|
float | ceilf (float arg) |
|
long double | ceill (long double arg) |
|
template<typename T > |
std::enable_if_t< std::is_integral_v< T >, double > | ceil (T arg) |
|
float | trunc (float arg) |
|
float | truncf (float arg) |
|
double | trunc (double arg) |
|
long double | trunc (long double arg) |
|
long double | truncl (long double arg) |
|
template<typename T > |
std::enable_if_t< std::is_integral_v< T >, double > | trunc (T arg) |
|
template<typename T > |
std::enable_if_t< std::is_integral_v< T >, double > | round (T arg) |
|
float | round (float arg) |
|
double | round (double arg) |
|
long double | round (long double arg) |
|
float | roundf (float arg) |
|
double | roundf (double arg) |
|
long double | roundl (long double arg) |
|
template<typename T > |
std::enable_if_t< std::is_arithmetic_v< T >, long > | lround (T arg) |
|
long | lroundf (float arg) |
|
long | lroundl (long double arg) |
|
template<typename T > |
std::enable_if_t< std::is_arithmetic_v< T >, long long > | llround (T arg) |
|
long long | llroundf (float arg) |
|
long long | llroundl (long double arg) |
|
template<typename T > |
std::enable_if_t< std::is_arithmetic_v< T >, T > | abs (T arg) any_platform |
|
template<typename T > |
std::enable_if_t< std::is_floating_point_v< T >, T > | fabs (T arg) any_platform |
|
template<typename T > |
std::enable_if_t< std::is_integral_v< T >, double > | fabs (T arg) any_platform |
|
long | labs (long arg) |
|
long long | llabs (long long arg) |
|
float | fabsf (float arg) |
|
long double | fabs (long double arg) |
|
long double | fabsl (long double arg) |
|
template<typename T , typename DESCRIPTOR > |
Timer< T > * | createTimer (XMLreader ¶m, const UnitConverter< T, DESCRIPTOR > &converter, size_t numLatticePoints) |
|
template<typename T > |
bool | nearZero (T a) |
| return true if a is close to zero
|
|
template<typename T > |
bool | nearZero (T a, T epsilon) |
|
template<typename T , typename U = T, typename W = T> |
bool | approxEqual (T a, U b, W epsilon) |
|
template<typename T , typename U = T> |
bool | approxEqual (T a, U b) |
|
template<class T > |
void | copyN (T c[], const T a[], const unsigned dim) any_platform |
|
template<class S , class T > |
void | copyN (S c[], const T a[], const unsigned dim) any_platform |
|
template<class T > |
void | copy3 (T c[], const T a[]) |
|
template<typename T > |
std::vector< T > | fromVector3 (const Vector< T, 3 > &vec) |
|
template<typename T > |
std::vector< T > | fromVector2 (const Vector< T, 2 > &vec) |
|
template<typename T > |
T | norm2 (const std::vector< T > &a) |
| l2 norm to the power of 2 of a vector of arbitrary length
|
|
template<typename T > |
T | dotProduct3D (const Vector< T, 3 > &a, const Vector< T, 3 > &b) |
| dot product, only valid in 3d
|
|
template<typename T > |
T | dotProduct2D (const Vector< T, 2 > &a, const Vector< T, 2 > &b) |
| dot product, only valid in 2d
|
|
template<typename T , unsigned D> |
T | dotProduct (const Vector< T, D > &a, const Vector< T, D > &b) |
| dot product
|
|
template<typename T , unsigned D> |
Vector< T, D > | normalize (const Vector< T, D > &a) |
|
template<typename T > |
std::vector< T > | normalize (const std::vector< T > &a) |
| returns a normalized vector, works for arbitrary lengths
|
|
template<typename T , unsigned Size> |
Vector< T, Size > | floor (const Vector< T, Size > &a) |
| applies floor to each component of a vector
|
|
template<typename T , unsigned Size> |
Vector< T, Size > | ceil (const Vector< T, Size > &a) |
| applies ceil to each component of a vector
|
|
template<typename T , typename S , unsigned Size> |
Vector< T, Size > | fmod (const Vector< T, Size > &a, S b) |
| applies fmod to each component of a vector
|
|
template<typename T , unsigned Size> |
T | average (const Vector< T, Size > &a) |
| computes the average of all elements
|
|
template<typename T , unsigned Size> |
T | max_element (const Vector< T, Size > &a) |
| finds maximum element of all elements
|
|
template<typename T , unsigned Size> |
T | min_element (const Vector< T, Size > &a) |
| finds minimum element of all elements
|
|
template<typename T , unsigned Size> |
unsigned | maxElementPos (const Vector< T, Size > &a) |
| finds position of maximum element of all elements
|
|
template<typename T , unsigned Size> |
unsigned | minElementPos (const Vector< T, Size > &a) |
| finds position of minimum element of all elements
|
|
template<typename T , unsigned Size> |
T | maxElementAbs (const Vector< T, Size > &a) |
| finds maximum element of all absolute elements
|
|
template<typename T , unsigned Size> |
unsigned | maxElementAbsPos (const Vector< T, Size > &a) |
| finds position of maximum element of all absolute elements
|
|
template<typename T , bool ensureAngularBounds = true> |
T | angleBetweenVectors (const Vector< T, 2 > &a, const Vector< T, 2 > &b) |
| Calculates angles between two 2D vectors.
|
|
template<typename T , bool ensureAngularBounds = true> |
Vector< T, 3 > | angleBetweenVectors (const Vector< T, 3 > &a, const Vector< T, 3 > &b) |
| Calculates angles between two 3D vectors.
|
|
template<typename T > |
std::vector< T > | assign (T a, T b) |
|
template<typename T > |
std::vector< T > | assign (T a, T b, T c) |
|
template<typename U > |
void | print (U data, const std::string &name="", OstreamManager clout=OstreamManager(std::cout,"print"), const char delimiter=',') |
|
template<typename C , typename U > |
bool | isContained (const C &c, U object) |
| Check, if object is contained in iteratable container c.
|
|