|
| Expr | sqrt (Expr x) |
| |
| Expr | fabs (Expr x) |
| |
| Expr | pow (Expr base, Expr exp) |
| |
| Expr | exp (Expr x) |
| |
| Expr | max (Expr a, Expr b) |
| |
| Expr | min (Expr a, Expr b) |
| |
| template<std::floating_point T> |
| cpu::simd::Pack< T > | sqrt (cpu::simd::Pack< T > value) |
| |
| template<std::floating_point T> |
| cpu::simd::Pack< T > | fabs (cpu::simd::Pack< T > value) |
| |
| template<std::floating_point T> |
| cpu::simd::Pack< T > | pow (cpu::simd::Pack< T > base, cpu::simd::Pack< T > exp) |
| |
| template<std::floating_point T, cpu::simd::concepts::convertible_to_pack S> |
| cpu::simd::Pack< T > | pow (cpu::simd::Pack< T > base, S exp) |
| |
| template<std::floating_point T> |
| cpu::simd::Pack< T > | min (cpu::simd::Pack< T > rhs, cpu::simd::Pack< T > lhs) |
| |
| template<std::floating_point 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) any_platform |
| |
| 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 > |
| any_platform T | sqr (T arg) any_platform |
| |
| template<typename T > |
| any_platform T | cube (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) any_platform |
| |
| 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 Vector< T, d > &u1, const Vector< T, d > &u2) any_platform |
| |
| 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 > |
| any_platform T | densityFromPressure (T latticePressure) |
| | compute lattice density from lattice pressure
|
| |
| template<typename T , typename DESCRIPTOR > |
| any_platform T | pressureFromDensity (T latticeDensity) |
| | compute lattice pressure from lattice density
|
| |
| template<typename T > |
| bool | nearZero (T a) any_platform |
| | return true if a is close to zero
|
| |
| template<typename T > |
| bool | nearZero (T a, T epsilon) any_platform |
| |
| template<typename T , typename U = T, typename W = T> |
| bool | approxEqual (T a, U b, W epsilon) any_platform |
| |
| template<typename T , typename U = T> |
| bool | approxEqual (T a, U b) any_platform |
| |
| template<unsigned D, typename F > |
| void | forEachOffset (F fn) any_platform |
| |
| 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<class TAPE > |
| auto | sqrt (const util::ADtape::ActiveType< TAPE > &a) |
| |
| template<typename T , typename S > |
| auto | fmod_pos (T a, S b) |
| | Variant of fmod (floating point modulo) that always returns positive values.
|
| |
| template<typename T > |
| void | kahanSum (T output[2], T summand) |
| | Accurate summation of floating point numbers with the Kahan algorithm.
|
| |
| template<typename T > |
| void | kahanSum (T &output0, T &output1, T summand) |
| |
| template<typename K > |
| K | crossSum (K k) |
| | Compute cross sum of an integer.
|
| |
| 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) any_platform |
| |
| template<typename T > |
| Vector< T, 4 > | inverseRotation (const Vector< T, 4 > &m) any_platform |
| |
| template<typename T > |
| Vector< T, 9 > | inverseRotation (const Vector< T, 9 > &m) any_platform |
| |
| template<typename T , unsigned D> |
| Vector< T, D > | matrixVectorProduct (const Vector< T, utilities::dimensions::convert< D >::matrix > &M, const Vector< T, D > &b) any_platform |
| | Compute v=M b.
|
| |
| template<typename T , unsigned D> |
| Vector< T, utilities::dimensions::convert< D >::matrix > | matrixMatrixProduct (const Vector< T, utilities::dimensions::convert< D >::matrix > &A, const Vector< T, utilities::dimensions::convert< D >::matrix > &B) any_platform |
| | Compute C=AB for square matrices.
|
| |
| 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 > |
| constexpr auto | determinant (const Matrix< T, 2, 2 > &m) |
| |
| template<typename T > |
| constexpr auto | determinant (const Matrix< T, 3, 3 > &m) |
| |
| template<typename T > |
| auto | solveLinearSystem (const Matrix< T, 2, 2 > &a, const Vector< T, 2 > &rhs) |
| | Solve a * x = rhs.
|
| |
| template<typename T > |
| auto | solveLinearSystem (const Matrix< T, 3, 3 > &a, const Vector< T, 3 > &rhs) |
| | Solve (a0 a1 a2) x = rhs.
|
| |
| 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 > |
| any_platform constexpr T | max (T a, meta::id_t< T > b) |
| |
| template<typename T > |
| constexpr T | max (std::initializer_list< T > ilist) |
| |
| template<typename T > |
| any_platform constexpr T | min (T a, meta::id_t< T > b) |
| |
| template<typename T > |
| constexpr T | min (std::initializer_list< T > ilist) |
| |
| template<typename T , typename S > |
| any_platform auto | pow (T x, S y) -> std::enable_if_t< std::is_floating_point_v< T > &&std::is_floating_point_v< S >, decltype(std::pow(x, y))> |
| |
| template<typename T , typename S > |
| any_platform std::enable_if_t< std::is_integral_v< T > &&std::is_integral_v< S >, double > | pow (T x, S y) |
| |
| any_platform float | powf (float base, float exp) |
| |
| any_platform float | powf (int base, int exp) |
| |
| long double | powl (long double base, long double exp) |
| |
| template<typename T , typename S > |
| any_platform auto | fmod (T x, S y) -> std::enable_if_t< std::is_floating_point_v< T > &&std::is_floating_point_v< S >, decltype(std::fmod(x, y))> |
| |
| template<typename T , typename S > |
| any_platform std::enable_if_t< std::is_integral_v< S > &&std::is_floating_point_v< T >, T > | fmod (T x, S y) |
| |
| template<typename T , typename S > |
| any_platform std::enable_if_t< std::is_integral_v< T > &&std::is_floating_point_v< S >, S > | fmod (T x, S y) |
| |
| any_platform float | fmodf (float x, float y) |
| |
| any_platform float | fmodf (int x, int y) |
| |
| long double | fmodl (long double x, long double y) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_floating_point_v< T >, T > | exp (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_integral_v< T >, double > | exp (T arg) |
| |
| any_platform float | expf (float arg) |
| |
| any_platform float | expf (int arg) |
| |
| long double | expl (long double arg) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_floating_point_v< T >, T > | log (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_integral_v< T >, double > | log (T arg) |
| |
| any_platform float | logf (float arg) |
| |
| any_platform float | logf (int arg) |
| |
| long double | logl (long double arg) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_floating_point_v< T >, T > | log10 (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_integral_v< T >, double > | log10 (T arg) |
| |
| any_platform float | log10f (float arg) |
| |
| any_platform float | log10f (int arg) |
| |
| long double | log10l (long double arg) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_floating_point_v< T >, T > | log2 (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_integral_v< T >, double > | log2 (T arg) |
| |
| any_platform float | log2f (float arg) |
| |
| any_platform float | log2f (int arg) |
| |
| long double | log2l (long double arg) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_floating_point_v< T >, T > | log1p (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_integral_v< T >, double > | log1p (T arg) |
| |
| any_platform float | log1pf (float arg) |
| |
| any_platform float | log1pf (int arg) |
| |
| long double | log1pl (long double arg) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_floating_point_v< T >, T > | sqrt (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_integral_v< T >, double > | sqrt (T arg) |
| |
| any_platform float | sqrtf (float arg) |
| |
| any_platform float | sqrtf (int arg) |
| |
| long double | sqrtl (long double arg) |
| |
| any_platform float | sinf (float x) |
| |
| any_platform float | sinf (int x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_floating_point_v< T >, T > | sin (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_integral_v< T >, double > | sin (T x) |
| |
| long double | sinl (long double arg) |
| |
| any_platform float | sinhf (float x) |
| |
| any_platform float | sinhf (int x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_floating_point_v< T >, T > | sinh (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_integral_v< T >, double > | sinh (T x) |
| |
| long double | sinhl (long double arg) |
| |
| any_platform float | cosf (float x) |
| |
| any_platform float | cosf (int x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_floating_point_v< T >, T > | cos (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_integral_v< T >, double > | cos (T x) |
| |
| long double | cosl (long double arg) |
| |
| any_platform float | coshf (float x) |
| |
| any_platform float | coshf (int x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_floating_point_v< T >, T > | cosh (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_integral_v< T >, double > | cosh (T x) |
| |
| long double | coshl (long double arg) |
| |
| any_platform float | tanf (float x) |
| |
| any_platform float | tanf (int x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_floating_point_v< T >, T > | tan (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_integral_v< T >, double > | tan (T x) |
| |
| long double | tanl (long double arg) |
| |
| any_platform float | tanhf (float x) |
| |
| any_platform float | tanhf (int x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_floating_point_v< T >, T > | tanh (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_integral_v< T >, double > | tanh (T x) |
| |
| long double | tanhl (long double arg) |
| |
| any_platform float | asinf (float x) |
| |
| any_platform float | asinf (int x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_floating_point_v< T >, T > | asin (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_integral_v< T >, double > | asin (T x) |
| |
| long double | asinl (long double arg) |
| |
| any_platform float | asinhf (float x) |
| |
| any_platform float | asinhf (int x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_floating_point_v< T >, T > | asinh (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_integral_v< T >, double > | asinh (T x) |
| |
| long double | asinhl (long double arg) |
| |
| any_platform float | acosf (float x) |
| |
| any_platform float | acosf (int x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_floating_point_v< T >, T > | acos (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_integral_v< T >, double > | acos (T x) |
| |
| long double | acosl (long double arg) |
| |
| any_platform float | acoshf (float x) |
| |
| any_platform float | acoshf (int x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_floating_point_v< T >, T > | acosh (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_integral_v< T >, double > | acosh (T x) |
| |
| long double | acoshl (long double arg) |
| |
| any_platform float | atanf (float x) |
| |
| any_platform float | atanf (int x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_floating_point_v< T >, T > | atan (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_integral_v< T >, double > | atan (T x) |
| |
| long double | atanl (long double arg) |
| |
| template<typename T , typename S > |
| any_platform auto | atan2 (T x, S y) -> std::enable_if_t< std::is_floating_point_v< T > &&std::is_floating_point_v< S >, decltype(std::atan2(x, y))> |
| |
| template<typename T , typename S > |
| any_platform std::enable_if_t< std::is_integral_v< S > &&std::is_floating_point_v< T >, T > | atan2 (T x, S y) |
| |
| template<typename T , typename S > |
| any_platform std::enable_if_t< std::is_integral_v< T > &&std::is_floating_point_v< S >, S > | atan2 (T x, S y) |
| |
| template<typename T , typename S > |
| any_platform std::enable_if_t< std::is_integral_v< T > &&std::is_integral_v< S >, double > | atan2 (T x, S y) |
| |
| any_platform float | atan2f (float base, float exp) |
| |
| any_platform float | atan2f (int base, int exp) |
| |
| any_platform float | atanhf (float x) |
| |
| any_platform float | atanhf (int x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_floating_point_v< T >, T > | atanh (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_integral_v< T >, double > | atanh (T x) |
| |
| long double | atanhl (long double arg) |
| |
| any_platform float | floorf (float x) |
| |
| any_platform float | floorf (int x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_floating_point_v< T >, T > | floor (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_integral_v< T >, double > | floor (T x) |
| |
| long double | floorl (long double arg) |
| |
| any_platform float | ceilf (float x) |
| |
| any_platform float | ceilf (int x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_floating_point_v< T >, T > | ceil (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_integral_v< T >, double > | ceil (T x) |
| |
| long double | ceill (long double arg) |
| |
| any_platform float | truncf (float x) |
| |
| any_platform float | truncf (int x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_floating_point_v< T >, T > | trunc (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_integral_v< T >, double > | trunc (T x) |
| |
| long double | truncl (long double arg) |
| |
| any_platform float | roundf (float x) |
| |
| any_platform float | roundf (int x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_floating_point_v< T >, T > | round (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_integral_v< T >, double > | round (T x) |
| |
| 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) |
| |
| any_platform float | fabsf (float x) |
| |
| any_platform float | fabsf (int x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_floating_point_v< T >, T > | fabs (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_integral_v< T >, double > | fabs (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_floating_point_v< T >, T > | abs (T x) |
| |
| template<typename T > |
| any_platform std::enable_if_t< std::is_integral_v< T >, T > | abs (T x) |
| |
| long double | fabs (long double arg) |
| |
| template<std::integral T> |
| any_platform bool | closeToZero (T x) |
| |
| template<typename T > |
| any_platform bool | isnan (T arg) |
| |
| template<typename T , typename DESCRIPTOR > |
| Timer< T > * | createTimer (XMLreader ¶m, const UnitConverter< T, DESCRIPTOR > &converter, size_t numLatticePoints) |
| |
| 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 T *a, unsigned size) |
| | l2 norm to the power of 2 of a vector of arbitrary length
|
| |
| 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 | norm (const T *a, unsigned size) |
| | l2 norm 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) any_platform |
| | applies floor to each component of a vector
|
| |
| template<typename T , unsigned Size> |
| Vector< T, Size > | ceil (const Vector< T, Size > &a) any_platform |
| | 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 > |
| constexpr T | determinant (const Vector< T, 2 > &v0, const Vector< T, 2 > &v1) |
| |
| template<typename T > |
| constexpr T | determinant (const Vector< T, 3 > &v0, const Vector< T, 3 > &v1, const Vector< T, 3 > &v2) |
| |
| template<typename T > |
| Vector< T, 2 > | solveLinearSystem (const Vector< T, 2 > &a0, const Vector< T, 2 > &a1, const Vector< T, 2 > &rhs) |
| | Solve (a0 a1) x = rhs.
|
| |
| template<typename T > |
| Vector< T, 3 > | solveLinearSystem_help (const Vector< T, 3 > &a0, const Vector< T, 3 > &a1, const Vector< T, 3 > &a2, const Vector< T, 3 > &rhs, T det) |
| |
| template<typename T > |
| Vector< T, 3 > | solveLinearSystem (const Vector< T, 3 > &a0, const Vector< T, 3 > &a1, const Vector< T, 3 > &a2, const Vector< T, 3 > &rhs) |
| | Solve (a0 a1 a2) x = rhs.
|
| |
| 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.
|
| |
| template<unsigned DIM> |
| unsigned | serialSymmetricTensorIndex (unsigned i, unsigned j) any_platform |
| | Compute serial index of symmetric tensor.
|
| |