BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
MathFunctions Namespace Reference

Various mathematical functions. More...

Enumerations

enum  EFFTDirection { FORWARD_FFT , BACKWARD_FFT }
 

Functions

complex_t Bessel_J0_PowSer (const complex_t z)
 Computes complex Bessel function J0(z), using power series and asymptotic expansion. More...
 
complex_t Bessel_J1_PowSer (const complex_t z)
 Computes complex Bessel function J0(z), using power series and asymptotic expansion. More...
 
double StandardNormal (double x)
 
double Gaussian (double x, double average, double std_dev)
 
double IntegratedGaussian (double x, double average, double std_dev)
 
double cot (double x)
 cotangent function: $cot(x)\equiv1/tan(x)$
 
double Si (double x)
 Sine integral function: $Si(x)\equiv\int_0^x du \sin(u)/u$.
 
double sinc (double x)
 sinc function: $sinc(x)\equiv\sin(x)/x$
 
complex_t sinc (const complex_t z)
 Complex sinc function: $sinc(x)\equiv\sin(x)/x$.
 
complex_t tanhc (const complex_t z)
 Complex tanhc function: $tanhc(x)\equiv\tanh(x)/x$.
 
double Laue (const double x, size_t N)
 Real Laue function: $Laue(x,N)\equiv\sin(Nx)/sin(x)$.
 
double erf (double arg)
 Error function of real-valued argument.
 
double Bessel_J0 (double x)
 Bessel function of the first kind and order 0.
 
double Bessel_J1 (double x)
 Bessel function of the first kind and order 1.
 
double Bessel_J1c (double x)
 Bessel function Bessel_J1(x)/x.
 
double Bessel_I0 (double x)
 Modified Bessel function of the first kind and order 0.
 
complex_t Bessel_J0 (const complex_t z)
 Complex Bessel function of the first kind and order 0.
 
complex_t Bessel_J1 (const complex_t z)
 Complex Bessel function of the first kind and order 1.
 
complex_t Bessel_J1c (const complex_t z)
 Complex Bessel function Bessel_J1(x)/x.
 
std::vector< complex_t > FastFourierTransform (const std::vector< complex_t > &data, EFFTDirection tcase)
 simple (and unoptimized) wrapper function for the discrete fast Fourier transformation library (fftw3)
 
std::vector< complex_t > FastFourierTransform (const std::vector< double > &data, EFFTDirection tcase)
 simple (and unoptimized) wrapper function for the discrete fast Fourier transformation library (fftw3); transforms real to complex
 
std::vector< complex_t > ConvolveFFT (const std::vector< double > &signal, const std::vector< double > &resfunc)
 convolution of two real vectors of equal size
 
double GenerateUniformRandom ()
 
double GenerateStandardNormalRandom ()
 
double GenerateNormalRandom (double average, double std_dev)
 
double GeneratePoissonRandom (double average)
 

Detailed Description

Various mathematical functions.

Function Documentation

◆ Bessel_J0_PowSer()

complex_t MathFunctions::Bessel_J0_PowSer ( const complex_t  z)

Computes complex Bessel function J0(z), using power series and asymptotic expansion.

Computes the complex Bessel function J0(z), using power series and asymptotic expansion.

Forked from unoptimized code at http://www.crbond.com/math.htm, who refers to "Computation of Special Functions", Zhang and Jin, John Wiley and Sons, 1996.

Definition at line 163 of file MathFunctions.cpp.

◆ Bessel_J1_PowSer()

complex_t MathFunctions::Bessel_J1_PowSer ( const complex_t  z)

Computes complex Bessel function J0(z), using power series and asymptotic expansion.

Computes the complex Bessel function J1(z), using power series and asymptotic expansion.

Forked from same source as for Bessel_J0_PowSer

Definition at line 223 of file MathFunctions.cpp.