molecular
Functions
molecular::util::Math Namespace Reference

Common math functions and constants. More...

Functions

template<typename T >
Sqr (T x)
 
template<typename T >
Newton1 (const T a[3], T x)
 
int QuadraticPolynomialRoot (const double a[2], double x[], int i, int j)
 
int QuadraticPolynomialRoot (const double a[2], const double o[3], double x[], int i, int j)
 
int CubicPolynomialRoot (const double a[4], double x[3])
 
template<typename T >
PositiveCubicPolynomialRoot (T a, T b, T c)
 solve cubic equation x^3 + a*x^2 + b*x + c More...
 
template double PositiveCubicPolynomialRoot (double, double, double)
 
template float PositiveCubicPolynomialRoot (float, float, float)
 
template<typename T >
Clamp (T a, T min, T max)
 Clamp value between minimum and maximum. More...
 
template<typename T >
PositiveQuadraticPolynomialRoot (T a, T b, T c)
 
Vector3 Barycentric (const Vector3 &a, const Vector3 &b, const Vector3 &c, const Vector3 &p)
 Compute barycentric coordinates (u, v, w) for point p with respect to triangle (a, b, c) More...
 

Detailed Description

Common math functions and constants.

Function Documentation

Vector3 molecular::util::Math::Barycentric ( const Vector3 a,
const Vector3 b,
const Vector3 c,
const Vector3 p 
)
inline

Compute barycentric coordinates (u, v, w) for point p with respect to triangle (a, b, c)

template<typename T >
T molecular::util::Math::Clamp ( a,
min,
max 
)

Clamp value between minimum and maximum.

int molecular::util::Math::CubicPolynomialRoot ( const double  a[4],
double  x[3] 
)
template<typename T >
T molecular::util::Math::Newton1 ( const T  a[3],
x 
)
inline
template<typename T >
T molecular::util::Math::PositiveCubicPolynomialRoot ( a,
b,
c 
)

solve cubic equation x^3 + a*x^2 + b*x + c

template double molecular::util::Math::PositiveCubicPolynomialRoot ( double  ,
double  ,
double   
)
template float molecular::util::Math::PositiveCubicPolynomialRoot ( float  ,
float  ,
float   
)
template<typename T >
T molecular::util::Math::PositiveQuadraticPolynomialRoot ( a,
b,
c 
)
int molecular::util::Math::QuadraticPolynomialRoot ( const double  a[2],
double  x[],
int  i,
int  j 
)
inline
int molecular::util::Math::QuadraticPolynomialRoot ( const double  a[2],
const double  o[3],
double  x[],
int  i,
int  j 
)
inline
template<typename T >
T molecular::util::Math::Sqr ( x)