Functions | |
template<typename T > | |
bool | isNaN (T x) |
double | linearInterpolation (double x, double x0, double x1, double y0, double y1) |
double | exp (double x) |
int | getExponentPowerTen (const double x) |
constexpr double | radToDeg (const double alpha) |
constexpr double | degToRad (const double alpha) |
constexpr double | macauly (double scalar) |
constexpr int | heaviside (double scalar) |
template<typename T > | |
constexpr T | sgn (T val) |
double | makeReal (const double &value) |
double | makeReal (const std::complex< double > &value) |
double | makeReal (const autodiff::real &value) |
template<typename T , typename G > | |
double | makeReal (const autodiff::detail::Dual< T, G > &number) |
template<int nRows, int nCols> | |
Eigen::Matrix< double, nRows, nCols > | macaulyMatrix (const Eigen::Matrix< double, nRows, nCols > &mat) |
template<typename functionType , typename yType , typename... Args> | |
yType | explicitEuler (yType yN, const double dt, functionType fRate, Args &&... fRateArgs) |
template<int ySize, typename functionType , typename... Args> | |
Eigen::Matrix< double, ySize, 1 > | semiImplicitEuler (Eigen::Matrix< double, ySize, 1 > yN, const double dt, functionType fRate, Args &&... fRateArgs) |
template<int nRows, int nCols, typename functionType > | |
Eigen::Matrix< double, nRows, nCols > | centralDiff (functionType f, const Eigen::Matrix< double, nCols, 1 > &X) |
template<typename functionType , typename yType , typename... Args> | |
yType | explicitEulerRichardson (yType yN, const double dt, functionType fRate, Args &&... fRateArgs) |
template<int ySize, typename functionType , typename... Args> | |
std::tuple< Eigen::Matrix< double, ySize, 1 >, double > | explicitEulerRichardsonWithErrorEstimator (Eigen::Matrix< double, ySize, 1 > yN, const double dt, const double TOL, functionType fRate, Args &&... fRateArgs) |
Matrix3d | directionCosines (const Matrix3d &transformedCoordinateSystem) |
Matrix3d | orthonormalCoordinateSystem (Vector3d &normalVector) |
double | makeReal (const autodiff::dual &value) |
bool Marmot::Math::isNaN | ( | T | x | ) |
Check if value x is a valid floating point number
double Marmot::Math::linearInterpolation | ( | double | x, |
double | x0, | ||
double | x1, | ||
double | y0, | ||
double | y1 | ||
) |
Linear interpolation at location x between two points (x0|y0) and (x1|y1)
double Marmot::Math::exp | ( | double | x | ) |
exponential of value x with numerical limits check
int Marmot::Math::getExponentPowerTen | ( | const double | x | ) |
compute the exponent to the power of ten of an expression, e.g., 5*10^5 --> return 5
|
constexpr |
convert angle alpha in radiant to degree
|
constexpr |
convert angle alpha in degree to radiant
|
constexpr |
Macaulay function applied to scalar
|
constexpr |
Heaviside function applied to scalar
|
constexpr |
Extract sign of value val
double Marmot::Math::makeReal | ( | const double & | value | ) |
double Marmot::Math::makeReal | ( | const std::complex< double > & | value | ) |
double Marmot::Math::makeReal | ( | const autodiff::real & | value | ) |
double Marmot::Math::makeReal | ( | const autodiff::detail::Dual< T, G > & | number | ) |
Eigen::Matrix< double, nRows, nCols > Marmot::Math::macaulyMatrix | ( | const Eigen::Matrix< double, nRows, nCols > & | mat | ) |
apply Macaulay function to a matrix
yType Marmot::Math::explicitEuler | ( | yType | yN, |
const double | dt, | ||
functionType | fRate, | ||
Args &&... | fRateArgs | ||
) |
Explicit Euler integration of function fRate taking arguments fRateArgs and initial value a yN
Eigen::Matrix< double, ySize, 1 > Marmot::Math::semiImplicitEuler | ( | Eigen::Matrix< double, ySize, 1 > | yN, |
const double | dt, | ||
functionType | fRate, | ||
Args &&... | fRateArgs | ||
) |
Semi-implicit Euler integration of function fRate taking arguments fRateArgs and initial value yN using central difference scheme for computing
: Replace inverse bei solving equation system?
: Use external central difference function?
Eigen::Matrix< double, nRows, nCols > Marmot::Math::centralDiff | ( | functionType | f, |
const Eigen::Matrix< double, nCols, 1 > & | X | ||
) |
returns central numerical differentiation of a vector-valued function f with respect to vector X --> use std::bind to create function f(x) from function with multiple arguments
yType Marmot::Math::explicitEulerRichardson | ( | yType | yN, |
const double | dt, | ||
functionType | fRate, | ||
Args &&... | fRateArgs | ||
) |
Explicit Euler integration with Richardson extrapolation of function fRate taking arguments fRateArgs and initial value yN
std::tuple< Eigen::Matrix< double, ySize, 1 >, double > Marmot::Math::explicitEulerRichardsonWithErrorEstimator | ( | Eigen::Matrix< double, ySize, 1 > | yN, |
const double | dt, | ||
const double | TOL, | ||
functionType | fRate, | ||
Args &&... | fRateArgs | ||
) |
Explicit Euler integration with error estimation based on Richardson extrapolation of function fRate taking arguments fRateArgs and initial value yN .
Computes the directional cosines between a transformed and the global cartesian coordinate system.
Computes an orthonormal coordinate system from an unit normal vector as \( x_1 \) - axis.
double Marmot::Math::makeReal | ( | const autodiff::dual & | value | ) |