19#ifndef GM2_NUMERICS_HPP
20#define GM2_NUMERICS_HPP
29template <
typename T>
T sqr(
T x)
noexcept {
return x*
x; }
32template <
typename T>
T cube(
T x)
noexcept {
return x*
x*
x; }
44int sign(
double)
noexcept;
55 return std::fabs(
a) <
eps;
67 const T max = std::max(std::abs(
a), std::abs(
b));
T pow4(T x) noexcept
returns number to the 4th power
double abs_sqrt(double x) noexcept
returns square root of absolute of number
T sqr(T x) noexcept
returns number squared
void svd_eigen(const Eigen::Matrix< Scalar, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s, Eigen::Matrix< Scalar, M, M > *u, Eigen::Matrix< Scalar, N, N > *vh)
bool is_zero(const Eigen::ArrayBase< Derived > &a, double eps)
T pow3(T x) noexcept
returns number to the third power
T cube(T x) noexcept
returns number to the third power
int sign(double x) noexcept
returns sign of real number
bool is_equal_rel(T a, T b, T eps) noexcept
double signed_abs_sqrt(double x) noexcept
returns square root of absolute of number, times sign
bool is_equal(const Eigen::ArrayBase< Derived > &a, const Eigen::ArrayBase< Derived > &b, double precision_goal)
double signed_sqr(double x) noexcept
returns square of number, times sign