MercuryDPM  Beta
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ExtendedMath.h File Reference
#include <iostream>
#include <fstream>
#include <cmath>
#include <limits>
#include "Vector.h"

Go to the source code of this file.

Namespaces

 constants
 
 mathsFunc
 Namespace for some extra maths function that are often needed.
 
 besselFunc
 Namespace for evaluating the zeroth modified Bessel function of the first kind, I0(x), required in StatisticsPoint.hcc.
 

Functions

Mdouble mathsFunc::gamma (Mdouble gamma_in)
 This is the gamma function returns the true value for the half integer value. More...
 
Mdouble mathsFunc::chi_squared (const Mdouble x, const unsigned int k)
 This is a chi_squared function return the value x and degrees of freedom k. More...
 
Mdouble mathsFunc::chi_squared_prob (const Mdouble x, const unsigned int k)
 This is the function which actually gives the probability back using a chi squared test. More...
 
double mathsFunc::goldenSectionSearch (double(*function)(const double), double min, double cur, double max, double endCondition, double curVal=std::numeric_limits< Mdouble >::quiet_NaN())
 This function performs a golden section search to find the location of the minimum of a function. More...
 
template<typename T >
int mathsFunc::sign (T val)
 This is a sign function, it returns -1 for negative numbers, 1 for positive numbers and 0 for 0. More...
 
template<typename T >
mathsFunc::square (T val)
 squares a number More...
 
template<typename T >
mathsFunc::cubic (T val)
 calculates the cube of a number More...
 
bool mathsFunc::isEqual (Mdouble v1, Mdouble v2, double absError)
 Compares the difference of two Mdouble with an absolute error, useful in UnitTests. More...
 
bool mathsFunc::isEqual (Vec3D v1, Vec3D v2, double absError)
 Compares the difference of two Vec3D with an absolute error, useful in UnitTests. More...
 
template<typename T >
constexpr T mathsFunc::factorial (const T t)
 factorial function More...
 
Mdouble besselFunc::chebyshev (Mdouble x, const Mdouble coef[], int N)
 
Mdouble besselFunc::I0_exp (Mdouble x)
 
Mdouble besselFunc::I0 (Mdouble x)
 

Variables

const Mdouble constants::pi = 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068
 
const Mdouble constants::sqrt_pi = 1.772453850905516027298167483341145182797549456122387128213807789852911284591032181374950656738544665
 
const Mdouble constants::sqr_pi = 9.869604401089358618834490999876151135313699407240790626413349376220044822419205243001773403718552232
 
const Mdouble constants::sqrt_2 = 1.414213562373095048801688724209698078569671875376948073176679737990732478462107038850387534327641573
 
const Mdouble constants::sqrt_3 = 1.732050807568877293527446341505872366942805253810380628055806979451933016908800037081146186757248576