| 
    Theoretica
    
   Mathematical Library 
   | 
 
Mathematical constants and default algorithm parameters. More...
#include <limits>#include <cstdint>Go to the source code of this file.
Namespaces | |
| namespace | theoretica | 
| Main namespace of the library which contains all functions and objects.  | |
| namespace | th | 
| Alias for the theoretica namespace.  | |
Macros | |
| #define | THEORETICA_ALGEBRA_ELEMENT_TOL (10*MACH_EPSILON) | 
| THEORETICA_DISABLE_X86 Define this macro to disable Assembly x86 optimizations.   | |
| #define | THEORETICA_ALGEBRA_EIGEN_TOL 1E-08 | 
| Tolerance for eigensolvers.  | |
| #define | THEORETICA_ALGEBRA_EIGEN_ITER 100 | 
| Maximum number of iterations for eigensolvers.  | |
| #define | THEORETICA_CORE_TAYLOR_ORDER 12 | 
| Order of Taylor series approximations.  | |
| #define | THEORETICA_CALCULUS_INTEGRAL_STEPS 100 | 
| Default number of steps for integral approximation.  | |
| #define | THEORETICA_OPTIMIZATION_TOL 1E-08 | 
| Approximation tolerance for root finding.  | |
| #define | THEORETICA_OPTIMIZATION_BISECTION_ITER 100 | 
| Maximum number of iterations for bisection.  | |
| #define | THEORETICA_OPTIMIZATION_GOLDENSECTION_ITER 100 | 
| Maximum number of iterations for golden section search.  | |
| #define | THEORETICA_OPTIMIZATION_HALLEY_ITER 100 | 
| Maximum number of iterations for Halley's method.  | |
| #define | THEORETICA_OPTIMIZATION_NEWTON_ITER 100 | 
| Maximum number of iterations for Newton-Raphson root finding.  | |
| #define | THEORETICA_OPTIMIZATION_STEFFENSEN_ITER 100 | 
| Maximum number of iterations for Steffensen root finding.  | |
| #define | THEORETICA_OPTIMIZATION_CHEBYSHEV_ITER 100 | 
| Maximum number of iterations for Chebyshev root finding.  | |
| #define | THEORETICA_OPTIMIZATION_OSTROWSKI_ITER 100 | 
| Maximum number of iterations for Ostrowski root finding.  | |
| #define | THEORETICA_OPTIMIZATION_JARRAT_ITER 100 | 
| Maximum number of iterations for Jarrat root finding.  | |
| #define | THEORETICA_STATISTICS_TRYANDCATCH_ITER 100 | 
| Maximum number of failed iterations for the Try-and-Catch algorithm.  | |
| #define | THEORETICA_CALCULUS_DERIV_STEP 1E-3 | 
| Default variation for derivative approximation.  | |
| #define | THEORETICA_OPTIMIZATION_MINGRAD_GAMMA -0.005 | 
| Default step size for gradient descent minimization.  | |
| #define | THEORETICA_OPTIMIZATION_MINGRAD_TOLERANCE 1E-3 | 
| Default tolerance for gradient descent minimization.  | |
| #define | THEORETICA_OPTIMIZATION_MINGRAD_ITER 50000 | 
| Maximum number of iterations for gradient descent minimization.  | |
| #define | THEORETICA_STATISTICS_RAND_PREC (uint64_t(1) << 31) | 
| Default precision for random number generation using rand_uniform()  | |
| #define | THEORETICA_STATISTICS_METROPOLIS_DEPTH 16 | 
| Default depth of the Metropolis algorithm.  | |
| #define | TH_CONSTEXPR | 
| Enable constexpr in function declarations if C++14 is supported.  | |
| #define | TH_CONSTIF | 
| Enable constexpr in if statements if C++17 is supported.  | |
Typedefs | |
| using | theoretica::real = double | 
| A real number, defined as a floating point type.   | |
Variables | |
| constexpr real | theoretica::MACH_EPSILON = std::numeric_limits<real>::epsilon() | 
| Machine epsilon for the real type.  | |
| constexpr real | theoretica::PHI = 1.6180339887498948482045868 | 
| The Phi (Golden Section) mathematical constant.  | |
| constexpr real | theoretica::INVPHI = 0.6180339887498948482045868 | 
| The inverse of the Golden Section mathematical constant.  | |
| constexpr real | theoretica::PI = 3.141592653589793238462643 | 
| The Pi mathematical constant.  | |
| constexpr real | theoretica::PI2 = 1.57079632679489655799898 | 
| Half of Pi.  | |
| constexpr real | theoretica::PI4 = PI / 4.0 | 
| A quarter of Pi.  | |
| constexpr real | theoretica::PIDOUBLE = PI * 2 | 
| Pi multiplied by 2.  | |
| constexpr real | theoretica::TAU = PI * 2 | 
| The Tau mathematical constant (Pi times 2)  | |
| constexpr real | theoretica::INVPI = 1.0 / PI | 
| The inverse of Pi.  | |
| constexpr real | theoretica::SQRTPI = 1.7724538509055159927 | 
| The square root of Pi.  | |
| constexpr real | theoretica::E = 2.718281828459045235360287 | 
| The Euler mathematical constant (e)  | |
| constexpr real | theoretica::LOG2E = 1.44269504088896338700465094 | 
| The binary logarithm of e.  | |
| constexpr real | theoretica::LOG210 = 3.32192809488736218170856773213 | 
| The binary logarithm of 10.  | |
| constexpr real | theoretica::LOG10E = 0.434294481903 | 
| The base-10 logarithm of e.  | |
| constexpr real | theoretica::LN2 = 0.69314718056 | 
| The natural logarithm of 2.  | |
| constexpr real | theoretica::LN10 = 2.30258509299 | 
| The natural logarithm of 10.  | |
| constexpr real | theoretica::DEG2RAD = 0.017453292519943295474371680598 | 
| The scalar conversion factor from degrees to radians.  | |
| constexpr real | theoretica::RAD2DEG = 57.2957795130823228646477218717 | 
| The scalar conversion factor from radians to degrees.  | |
| constexpr real | theoretica::SQRT2 = 1.4142135623730950488 | 
| The square root of 2.  | |
| constexpr real | theoretica::INVSQR2 = 0.7071067811865475 | 
| The inverse of the square root of 2.  | |
| constexpr real | theoretica::SQRT3 = 1.732050807568877 | 
| The square root of 3.  | |
| constexpr real | theoretica::ALGEBRA_ELEMENT_TOL = THEORETICA_ALGEBRA_ELEMENT_TOL | 
| Tolerance for the elements of matrices.  | |
| constexpr real | theoretica::ALGEBRA_EIGEN_TOL = THEORETICA_ALGEBRA_EIGEN_TOL | 
| Tolerance for eigensolvers.  | |
| constexpr real | theoretica::ALGEBRA_EIGEN_ITER = THEORETICA_ALGEBRA_EIGEN_ITER | 
| Maximum number of iterations for eigensolvers.  | |
| constexpr int | theoretica::CORE_TAYLOR_ORDER = THEORETICA_CORE_TAYLOR_ORDER | 
| Order of Taylor series approximations.  | |
| constexpr int | theoretica::CALCULUS_INTEGRAL_STEPS = THEORETICA_CALCULUS_INTEGRAL_STEPS | 
| Default number of steps for integral approximation.  | |
| constexpr real | theoretica::OPTIMIZATION_TOL = THEORETICA_OPTIMIZATION_TOL | 
| Approximation tolerance for root finding.  | |
| constexpr unsigned int | theoretica::OPTIMIZATION_BISECTION_ITER = THEORETICA_OPTIMIZATION_BISECTION_ITER | 
| Maximum number of iterations for the bisection algorithm.  | |
| constexpr unsigned int | theoretica::OPTIMIZATION_GOLDENSECTION_ITER = THEORETICA_OPTIMIZATION_GOLDENSECTION_ITER | 
| Maximum number of iterations for the golden section search algorithm.  | |
| constexpr unsigned int | theoretica::OPTIMIZATION_HALLEY_ITER = THEORETICA_OPTIMIZATION_HALLEY_ITER | 
| Maximum number of iterations for Halley's method.  | |
| constexpr unsigned int | theoretica::OPTIMIZATION_NEWTON_ITER = THEORETICA_OPTIMIZATION_NEWTON_ITER | 
| Maximum number of iterations for the Newton-Raphson algorithm.  | |
| constexpr unsigned int | theoretica::OPTIMIZATION_STEFFENSEN_ITER = THEORETICA_OPTIMIZATION_STEFFENSEN_ITER | 
| Maximum number of iterations for the Steffensen algorithm.  | |
| constexpr unsigned int | theoretica::OPTIMIZATION_CHEBYSHEV_ITER = THEORETICA_OPTIMIZATION_CHEBYSHEV_ITER | 
| Maximum number of iterations for the Chebyshev algorithm.  | |
| constexpr unsigned int | theoretica::OPTIMIZATION_OSTROWSKI_ITER = THEORETICA_OPTIMIZATION_OSTROWSKI_ITER | 
| Maximum number of iterations for the Ostrowski algorithm.  | |
| constexpr unsigned int | theoretica::OPTIMIZATION_JARRAT_ITER = THEORETICA_OPTIMIZATION_JARRAT_ITER | 
| Maximum number of iterations for the Jarrat algorithm.  | |
| constexpr unsigned int | theoretica::STATISTICS_TRYANDCATCH_ITER = THEORETICA_STATISTICS_TRYANDCATCH_ITER | 
| Maximum number of failed iterations for the Try-and-Catch algorithm.  | |
| constexpr real | theoretica::CALCULUS_DERIV_STEP = THEORETICA_CALCULUS_DERIV_STEP | 
| Default variation for derivative approximation.  | |
| constexpr real | theoretica::OPTIMIZATION_MINGRAD_GAMMA = THEORETICA_OPTIMIZATION_MINGRAD_GAMMA | 
| Default step size for gradient descent minimization.  | |
| constexpr real | theoretica::OPTIMIZATION_MINGRAD_TOLERANCE = THEORETICA_OPTIMIZATION_MINGRAD_TOLERANCE | 
| Default tolerance for gradient descent minimization.  | |
| constexpr unsigned int | theoretica::OPTIMIZATION_MINGRAD_ITER = THEORETICA_OPTIMIZATION_MINGRAD_ITER | 
| Maximum number of iterations for gradient descent minimization.  | |
| constexpr uint64_t | theoretica::STATISTICS_RAND_PREC = THEORETICA_STATISTICS_RAND_PREC | 
| Default precision for random number generation using rand_uniform()  | |
| constexpr unsigned int | theoretica::STATISTICS_METROPOLIS_DEPTH = THEORETICA_STATISTICS_METROPOLIS_DEPTH | 
| Default depth of the Metropolis algorithm.  | |
Mathematical constants and default algorithm parameters.
You may change the library's default behavior by redefining the macros starting with THEORETICA_
| #define THEORETICA_ALGEBRA_ELEMENT_TOL (10*MACH_EPSILON) | 
THEORETICA_DISABLE_X86 Define this macro to disable Assembly x86 optimizations.
Tolerance for checking the elements of a matrix (such as algebra::is_square)