struct JAdd
forward declaration for negate of function. More...
struct JAdd< JF1_t, double >
Addition of constant value. More...
struct JAverage
Auxiliary class to determine average of set of values. More...
struct JAverage< JQuaternion3D >
Template spacialisation for averaging quaternions. More...
struct JCalculator
Auxiliary class for arithmetic operations on objects. More...
struct JCalculus
Auxiliary base class for mathematical operations on parameters of function. More...
struct JCos
Cosine of function. More...
struct JDiv
forward declaration for multiplication of fuction. More...
struct JDiv< JF1_t, double >
Division of constant value. More...
struct JExp
Exponent of function. More...
struct JExp< JPolynome< ID_t, 0 > >
Exponent of zero degree polynomial function. More...
struct JFn
forward declaration for division of fuction. More...
struct JGauss
Gauss function object. More...
struct JGauss2D
2D correlated Gauss function. More...
struct JGauss3D
3D correlated Gauss function. More...
struct JGauss< ID_t, true >
Gauss function. More...
struct JGauss_t
Gauss model. More...
struct JLegendre
Template definition for function evaluation of Legendre polynome. More...
struct JLegendre< JOrdinate_t,(size_t) -1 >
Template specialisation for function evaluation of of Legendre polynome for undefined number of degrees. More...
struct JLegendre< JQuaternion3D, N >
Template specialisation for function evaluation of Legendre polynome of quaternions for defined number of degrees. More...
struct JLegendre< JQuaternion3D,(size_t) -1 >
Template specialisation for function evaluation of Legendre polynome of quaternions for undefined number of degrees. More...
struct JLegendre_t
Base class for Legendre polynome. More...
struct JLimits
Auxiliary class for minimum and maximum values for any class. More...
struct JLimits< T, false >
Template spacialisation of JMATH::JRandom for other data types. More...
struct JLimits< T, true >
Template spacialisation of JMATH::JLimits for numerical values. More...
struct JLog
Logarithm of function. More...
struct JMake2X
Make 2D function of x from 1D function. More...
struct JMake2Y
Make 2D function of y from 1D function. More...
struct JMake3X
Make 3D function of x from 1D function. More...
struct JMake3Y
Make 3D function of y from 1D function. More...
struct JMake3Z
Make 3D function of z from 1D function. More...
struct JMath
Auxiliary base class for aritmetic operations of derived class types. More...
struct JMath< T, JNullType >
Template base class for data structures with arithmetic capabilities. More...
struct JMath_t
Auxiliary class to hide data type specific methods. More...
struct JMathlib
forward declaration for fixed power of function. More...
class JMatrix1D
1 x 1 matrix More...
class JMatrix1S
1 x 1 symmetric matrix More...
class JMatrix2D
2 x 2 matrix More...
class JMatrix2S
2 x 2 symmetric matrix More...
class JMatrix3D
3 x 3 matrix More...
class JMatrix3S
3 x 3 symmetric matrix More...
class JMatrix4D
4 x 4 matrix More...
class JMatrix4S
4 x 4 symmetric matrix More...
class JMatrix5D
5 x 5 matrix More...
class JMatrix5S
5 x 5 symmetric matrix More...
struct JMatrixND
NxN matrix. More...
struct JMatrixND_t
Basic NxN matrix. More...
struct JMatrixNS
N x N symmetric matrix. More...
struct JModel_t
Fit model. More...
struct JMul
forward declaration for subtraction of fuction. More...
struct JMul< JF1_t, double >
Multiplication of constant value. More...
struct JNegate
Negate of function. More...
struct JNumber
Simple wrapper around template data type to ensure that zero is the default value. More...
struct JPair
Auxiliary data structure for pair of functions. More...
struct JPolynome
Recursive template class for polynomial function. More...
struct JPolynome< ID_t, 0 >
Termination class for polynomial function. More...
struct JPolynome_t
Polynome model. More...
struct JPow
Power of function. More...
struct JPow< ID_t, _vF >
Power of x. More...
class JPower
Power law function object. More...
struct JQuantile_t
Auxiliary data structure for average. More...
struct JRandom
Template definition of random value generator. More...
struct JRandom< T, false >
Template spacialisation of JMATH::JRandom for non-numerical data types. More...
struct JRandom< T, true >
Template spacialisation of JMATH::JRandom for numerical values. More...
struct JSin
Sine of function. More...
struct JSqrt
Square root of function. More...
struct JSqrt< _vF >
Square root of x. More...
struct JSub
forward declaration for addition of fuction. More...
struct JSub< JF1_t, double >
Subtraction of constant value. More...
class JSVD3D
Singular value decomposition. More...
class JTrigonometric
Trigonometric function object for sin
and cos
. More...
struct JVectorND
Nx1 matrix. More...
struct JXn
Fixed power of x. More...
struct JZero
Auxiliary class to assign zero value. More...
struct make_carray
void function More...
struct parameter_list
Auxiliary data structure for list of parameters. More...
template<int ID_t>
using JP0 = JPolynome <ID_t, 0>
short hand for 0th degree polynome
template<int ID_t>
using JP1 = JPolynome <ID_t, 1>
short hand for 1st degree polynome
template<int ID_t>
using JP2 = JPolynome <ID_t, 2>
short hand for 2nd degree polynome
template<int ID_t>
using JP3 = JPolynome <ID_t, 3>
short hand for 3rd degree polynome
template<int ID_t, size_t N>
using JPolynome2X = JMake2X < JPolynome <ID_t, N> >
2D polynomial function of x.
template<int ID_t, size_t N>
using JPolynome2Y = JMake2Y < JPolynome <ID_t, N> >
2D polynomial function of y.
template<int ID_t, bool normalise = false>
using JGauss2X = JMake2X < JGauss <ID_t, normalise> >
2D Gauss function of x.
template<int ID_t, bool normalise = false>
using JGauss2Y = JMake2Y < JGauss <ID_t, normalise> >
2D Gauss function of y.
template<int ID_t, class JF1_t = _vF>
using JPow2X = JMake2X < JPow <ID_t, JF1_t> >
2D power of function of x.
template<int ID_t, class JF1_t = _vF>
using JPow2Y = JMake2Y < JPow <ID_t, JF1_t> >
2D power of function of y.
template<int N>
using JXn2X = JMake2X < JXn <N> >
2D fixed power of x.
template<int N>
using JXn2Y = JMake2Y < JXn <N> >
2D fixed power of y.
template<class JF1_t = _vF>
using JSqrt2X = JMake2X < JSqrt <JF1_t> >
2D square root of function of x.
template<class JF1_t = _vF>
using JSqrt2Y = JMake2Y < JSqrt <JF1_t> >
2D square root of function of y.
template<class JF1_t >
using JSin2X = JMake2X < JSin <JF1_t> >
2D sine of function of x.
template<class JF1_t >
using JSin2Y = JMake2Y < JSin <JF1_t> >
2D sine of function of y.
template<class JF1_t >
using JCos2X = JMake2X < JCos <JF1_t> >
2D cosine of function of x.
template<class JF1_t >
using JCos2Y = JMake2Y < JCos <JF1_t> >
2D cosine of function of y.
template<class JF1_t >
using JExp2X = JMake2X < JExp <JF1_t> >
2D exponent of function of x.
template<class JF1_t >
using JExp2Y = JMake2Y < JExp <JF1_t> >
2D exponent of function of y.
template<class JF1_t >
using JLog2X = JMake2X < JLog <JF1_t> >
2D logarithm of function of x.
template<class JF1_t >
using JLog2Y = JMake2Y < JLog <JF1_t> >
2D logarithm of function of y.
template<int ID_t, size_t N>
using JPolynome3X = JMake3X < JPolynome <ID_t, N> >
3D polynomial function of x.
template<int ID_t, size_t N>
using JPolynome3Y = JMake3Y < JPolynome <ID_t, N> >
3D polynomial function of y.
template<int ID_t, size_t N>
using JPolynome3Z = JMake3Z < JPolynome <ID_t, N> >
3D polynomial function of z.
template<int ID_t, bool normalise = false>
using JGauss3X = JMake3X < JGauss <ID_t, normalise> >
3D Gauss function of x.
template<int ID_t, bool normalise = false>
using JGauss3Y = JMake3Y < JGauss <ID_t, normalise> >
3D Gauss function of y.
template<int ID_t, bool normalise = false>
using JGauss3Z = JMake3Z < JGauss <ID_t, normalise> >
3D Gauss function of z.
template<int ID_t, class JF1_t = _vF>
using JPow3X = JMake3X < JPow <ID_t, JF1_t> >
3D power of function of x.
template<int ID_t, class JF1_t = _vF>
using JPow3Y = JMake3Y < JPow <ID_t, JF1_t> >
3D power of function of y.
template<int ID_t, class JF1_t = _vF>
using JPow3Z = JMake3Z < JPow <ID_t, JF1_t> >
3D power of function of z.
template<int N>
using JXn3X = JMake3X < JXn <N> >
3D fixed power of x.
template<int N>
using JXn3Y = JMake3Y < JXn <N> >
3D fixed power of y.
template<int N>
using JXn3Z = JMake3Z < JXn <N> >
3D fixed power of z.
template<class JF1_t = _vF>
using JSqrt3X = JMake3X < JSqrt <JF1_t> >
3D square root of function of x.
template<class JF1_t = _vF>
using JSqrt3Y = JMake3Y < JSqrt <JF1_t> >
3D square root of function of y.
template<class JF1_t = _vF>
using JSqrt3Z = JMake3Z < JSqrt <JF1_t> >
3D square root of function of z.
template<class JF1_t >
using JSin3X = JMake3X < JSin <JF1_t> >
3D sine of function of x.
template<class JF1_t >
using JSin3Y = JMake3Y < JSin <JF1_t> >
3D sine of function of y.
template<class JF1_t >
using JSin3Z = JMake3Z < JSin <JF1_t> >
3D sine of function of z.
template<class JF1_t >
using JCos3X = JMake3X < JCos <JF1_t> >
3D cosine of function of x.
template<class JF1_t >
using JCos3Y = JMake3Y < JCos <JF1_t> >
3D cosine of function of y.
template<class JF1_t >
using JCos3Z = JMake3Z < JCos <JF1_t> >
3D cosine of function of z.
template<class JF1_t >
using JExp3X = JMake3X < JExp <JF1_t> >
3D exponent of function of x.
template<class JF1_t >
using JExp3Y = JMake3Y < JExp <JF1_t> >
3D exponent of function of y.
template<class JF1_t >
using JExp3Z = JMake3Z < JExp <JF1_t> >
3D exponent of function of z.
template<class JF1_t >
using JLog3X = JMake3X < JLog <JF1_t> >
3D logarithm of function of x.
template<class JF1_t >
using JLog3Y = JMake3Y < JLog <JF1_t> >
3D logarithm of function of y.
template<class JF1_t >
using JLog3Z = JMake3Z < JLog <JF1_t> >
3D logarithm of function of z.
template<class T >
const JCalculator < T, 1 > & operator* (const T &first, const T &second)
Product evaluation of objects.
template<class T , int N>
const JCalculator < T, N+1 > & operator* (const T &first, const JCalculator < T, N > &second)
Recursive product evaluation of objects.
template<class T , int N>
const JCalculator < T, N+1 > & operator* (const JCalculator < T, N > &first, const T &second)
Recursive product evaluation of objects.
template<class T >
T pow (const T &x, const double y)
Power .
template<class T >
T interpolate (const T &first, const T &second, const double alpha)
Interpolation between objects.
template<class T >
std::iterator_traits< T >::value_type getAverage (T __begin, T __end)
Get average.
template<class JValue_t , size_t N>
JValue_t getAverage (const JValue_t(&array)[N])
Get average.
template<class JElement_t , class JAllocator_t >
JElement_t getAverage (const array_type < JElement_t, JAllocator_t > &buffer)
Get average.
template<class T >
std::iterator_traits< T >::value_type getAverage (T __begin, T __end, typename std::iterator_traits< T >::value_type value)
Get average.
template<class JValue_t , size_t N>
JValue_t getAverage (const JValue_t(&array)[N], typename JLANG::JClass < JValue_t >::argument_type value)
Get average.
template<class JElement_t , class JAllocator_t >
JElement_t getAverage (const array_type < JElement_t, JAllocator_t > &buffer, typename JLANG::JClass < JElement_t >::argument_type value)
Get average.
template<class JF1_t >
size_t getNumberOfParameters ()
Get number of parameters.
template<class JF1_t >
double getParameter (const JF1_t &f1, const size_t i)
Get value of parameter at given index.
template<class JF1_t >
void setParameters (JF1_t *f1, const double *values)
Set values of all parameters.
template<class JF1_t >
JPow < JF1_t::ID, JF1_t > Pow (const JF1_t &f1, const double alpha)
Power of function.
template<class JF1_t >
JSqrt < JF1_t > Sqrt (const JF1_t &f1)
Square root of function.
JSqrt Sqrt ()
Square root of x.
template<class JF1_t >
JSin < JF1_t > Sin (const JF1_t &f1)
Sine of function.
template<class JF1_t >
JCos < JF1_t > Cos (const JF1_t &f1)
Cosine function.
template<class JF1_t >
JExp < JF1_t > Exp (const JF1_t &f1)
Exponent of function.
template<class JF1_t >
JLog < JF1_t > Log (const JF1_t &f1)
Logarithm of function.
double gauss (const double x, const double sigma)
Gauss function (normalised to 1 at x = 0).
double gauss (const double x, const double x0, const double sigma)
Gauss function (normalised to 1 at x = x0).
double Gauss (const double x, const double sigma)
Normalised Gauss function.
double Gauss (const double x, const double x0, const double sigma)
Normalised Gauss function.
double Gamma (const double a, const double x)
Incomplete gamma function.
double legendre (const size_t n, const double x)
Legendre polynome.
double binomial (const size_t n, const size_t k)
Binomial function.
double poisson (const size_t n, const double mu)
Poisson probability density distribition.
double Poisson (const size_t n, const double mu)
Poisson cumulative density distribition.
void randomize (JMatrix1D *p)
Randomize matrix.
void randomize (JMatrix2D *p)
Randomize matrix.
void randomize (JMatrix3D *p)
Randomize matrix.
void randomize (JMatrix4D *p)
Randomize matrix.
void randomize (JMatrix5D *p)
Randomize matrix.
void randomize (JMatrix1S *p)
Randomize matrix.
void randomize (JMatrix2S *p)
Randomize matrix.
void randomize (JMatrix3S *p)
Randomize matrix.
void randomize (JMatrix4S *p)
Randomize matrix.
void randomize (JMatrix5S *p)
Randomize matrix.
long long int factorial (const long long int n)
Determine factorial.
long long int factorial (const long long int n, const long long int m)
Determine combinatorics.
template<class JFirst_t , class JSecond_t >
bool equals (const JFirst_t &first, const JSecond_t &second, const double precision=std::numeric_limits< double >::min())
Check equality.
template<class JFirst_t , class JSecond_t >
double getDistanceSquared (const JFirst_t &first, const JSecond_t &second)
Get square of distance between objects.
template<class JFirst_t , class JSecond_t >
double getDistance (const JFirst_t &first, const JSecond_t &second)
Get distance between objects.
template<class JFirst_t , class JSecond_t >
double getDot (const JFirst_t &first, const JSecond_t &second)
Get dot product of objects.
template<class JFirst_t , class JSecond_t >
double getAngle (const JFirst_t &first, const JSecond_t &second)
Get space angle between objects.
template<class JFirst_t , class JSecond_t >
double getPerpDot (const JFirst_t &first, const JSecond_t &second)
Get perpendicular dot product of objects.
template<class T >
T getCross (const T &first, const T &second)
Get cross product of objects.
template<class T >
std::vector < T > convolve (const std::vector < T > &input, const std::vector < T > &kernel)
Convolute data with given kernel.
template<class T >
T getRandom ()
Get random value.
template<class T >
T getRandom (const T min, const T max)
Get uniformly distributed random value between given limits.
template<class T >
T getRandom (const T min, const T max, const T precision)
Get uniformly distributed random value between given limits.
template<>
double getRandom (const double min, const double max, const double precision)
Template specialisation for data type double
.
template<class T >
T getZero ()
Get zero value for a given data type.
template<>
bool getZero< bool > ()
Get zero value for bool
.
template<>
float getZero< float > ()
Get zero value for float
.
template<>
double getZero< double > ()
Get zero value for double
.
template<>
long double getZero< long double > ()
Get zero value for long double
.
Auxiliary classes and methods for mathematical operations.
Author mdejong