32double Tan(
double a)
noexcept
37double Cot(
double a)
noexcept
42double Cos(
double x)
noexcept
47double Sin(
double x)
noexcept
52double Sec(
double x)
noexcept
57double Csc(
double x)
noexcept
67bool IsClose(
double a,
double b,
double eps)
noexcept
69 return std::abs(a - b) < eps;
79 return std::isfinite(x);
82bool IsFinite(
const std::complex<double>& x)
noexcept
84 return std::isfinite(x.real()) && std::isfinite(x.imag());
92double Log(
double a)
noexcept
99 return fast_log(std::complex<double>(a,0.));
102std::complex<double>
ComplexLog(
const std::complex<double>& z)
noexcept
109 const double l = std::log(a);
110 return std::isfinite(l) ? l : 0.;
125 const double max = std::max(std::abs(a), std::abs(b));
131 return std::abs((a - b) / max);
134double MaxRelDiff(
const std::complex<double>& a,
const std::complex<double>& b)
noexcept
136 const double max = std::max(std::abs(a), std::abs(b));
142 return std::abs((a - b) / max);
148 case 1:
return -std::log(1.0 - z);
149 case 2:
return Li2(z);
150 case 3:
return Li3(z);
151 case 4:
return Li4(z);
155 return std::real(
PolyLog(n, std::complex<double>(z, 0.0)));
158std::complex<double>
PolyLog(
int n,
const std::complex<double>& z)
noexcept
163double Re(
double x)
noexcept
168double Re(
const std::complex<double>& x)
noexcept
175 return static_cast<int>(a >= 0. ? a + 0.5 : a - 0.5);
178double Im(
double)
noexcept
183double Im(
const std::complex<double>& x)
noexcept
190 return (x >= 0.0 ? 1 : -1);
195 return (x >= 0 ? 1 : -1);
203#define DEFINE_ToString(type) \
204 std::string ToString(type a) \
206 return flexiblesusy::to_string(a); \
228std::complex<double>
Total(
const std::complex<double>& a)
noexcept
236 Eigen::VectorXd v = Eigen::VectorXd::Zero(N);
245 Eigen::MatrixXd m = Eigen::MatrixXd::Zero(
M,N);
253 return (x > 0.0 ? std::sqrt(x) : 0.0);
double Cos(double x) noexcept
std::complex< double > Li(int64_t n, const std::complex< double > &z) noexcept
Complex polylogarithm .
int Sign(double x) noexcept
double FiniteLog(double a) noexcept
constexpr auto UnitVector() noexcept -> Eigen::Matrix< Scalar, N, 1 >
unit vector of length N into direction i
double AbsSqrt(double x) noexcept
bool IsCloseRel(double a, double b, double eps) noexcept
double ZeroSqrt(double x) noexcept
sqrt(x) for x >= 0; 0 for x < 0
bool IsClose(double a, double b, double eps) noexcept
double PolyLog(int n, double z) noexcept
real polylogarithm
double Li4(double x) noexcept
Real 4-th order polylogarithm .
float Li2(float x) noexcept
Real dilogarithm .
int Delta(int i, int j) noexcept
double Cot(double a) noexcept
double Sin(double x) noexcept
std::complex< double > ComplexLog(double a) noexcept
double MaxRelDiff(double a, double b) noexcept
double SignedAbsSqrt(double a) noexcept
signed square root of absolute
double Total(double a) noexcept
sum of all arguments
int KroneckerDelta(int i, int j) noexcept
double Csc(double x) noexcept
double Li3(double x) noexcept
Real trilogarithm .
std::complex< T > fast_log(const std::complex< T > &z) noexcept
fast implementation of complex logarithm
double Sec(double x) noexcept
int Round(double a) noexcept
bool IsFinite(double x) noexcept
bool is_equal_rel(const Eigen::PlainObjectBase< Derived > &a, const Eigen::PlainObjectBase< Derived > &b, double eps)
double Tan(double a) noexcept
auto MatrixProjector() noexcept -> Eigen::Matrix< Scalar, M, N >
matrix projector of size MxN into direction i, j
double MaxAbsValue(double x) noexcept
#define DEFINE_ToString(type)