fisx: fisx::Math Class Reference

fisx

Static Public Member Functions | List of all members
fisx::Math Class Reference

Common fluorescence spectroscopy math functions. More...

`#include <fisx_math.h>`

## Static Public Member Functions
static double | E1 (const double &x)
static double | En (const int &n, const double &x)
static double | deBoerD (const double &x)
static double | deBoerL0 (const double &mu1, const double &mu2, const double &muj, const double &density, const double &thickness)
static double | deBoerX (const double &p, const double &q, const double &d1, const double &d2, const double &mu_1_j, const double &mu_2_j, const double &mu_b_j_d_t=0.0)
static double | deBoerV (const double &p, const double &q, const double &d1, const double &d2, const double &mu_1_j, const double &mu_2_j, const double &mu_b_j_d_t)
static bool | isNumber (const double &x)
static bool | isFiniteNumber (const double &x)
static double | deBoerY (const double &a, const double &b, const double &c, const double &d)
static double | deBoerW (const double &a, const double &b, const double &d)
static double | AS_5_1_53 (const double &x)
static double | AS_5_1_56 (const double &x)
static double | getFWHM (const double &energy, const double &noise, const double &fano, const double &quantumEnergy=0.00385)
static double | erf (const double &x)
static double | erfc (const double &x)

## Detailed Description

Common fluorescence spectroscopy math functions.

De Boer Formulae for secondary excitation corrections

This class implements the formulae contained in the article: D.K.G. de Boer, X-Ray Spectrometry, Vol. 19, (1990) 145 - 154.

## Member Function Documentation

## § AS_5_1_53()

double fisx::Math::AS_5_1_53 | ( | const double & | x | ) |
| static

Abramowitz and Stegun formula 5.1.53 Returns E1(x) + log(x) Formula is valid for 0 <= x <= 1

## § AS_5_1_56()

double fisx::Math::AS_5_1_56 | ( | const double & | x | ) |
| static

Abramowitz and Stegun formula 5.1.56 Returns x * exp(x) * E1(x) Formula is valid for 1 <= x < +inf

## § deBoerD()

double fisx::Math::deBoerD | ( | const double & | x | ) |
| static

Calculates exp(x) * E1(x) Used in D.K.G. de Boer, X-Ray Spectrometry, Vol. 19, (1990) 145 - 154 and needed to calculate secondary excitation.

Implemented following Abramowitz and Stegun

## § deBoerL0()

double fisx::Math::deBoerL0 | ( | const double & | mu1,
|  | const double & | mu2,
|  | const double & | muj,
|  | const double & | density,
|  | const double & | thickness
| ) |  |
| static

Calculates the integral part of expression 6 of the article D.K.G. de Boer, X-Ray Spectrometry, Vol. 19, (1990) 145 - 154 and needed to calculate secondary excitation. muj is the matrix mass attenuation coefficient at the matrix emitted line j mui is the matrix mass attenuation coefficient at the fluorescent line i mul is the matrix mass attenuation coefficient at the incident energy

## § deBoerW()

static double fisx::Math::deBoerW | ( | const double & | a,
|  | const double & | b,
|  | const double & | d
| ) |  |
| static

Help function, see formula A2b appendix

## § deBoerX()

double fisx::Math::deBoerX | ( | const double & | p,
|  | const double & | q,
|  | const double & | d1,
|  | const double & | d2,
|  | const double & | mu_1_j,
|  | const double & | mu_2_j,
|  | const double & | mu_b_j_d_t = `0.0`
| ) |  |
| static

For multilayers p and q following article d1 is the product density * thickness of fluorescing layer d2 is the product density * thickness of layer j originating the secondary excitation mu_1_j is the mass attenuation coefficient of fluorescing layer at j excitation energy mu_2_j is the mass attenuation coefficient of layer j at j excitation energy mu_b_d_t is the sum of the products mu * density * thickness of layers between layer i and j

## § deBoerY()

static double fisx::Math::deBoerY | ( | const double & | a,
|  | const double & | b,
|  | const double & | c,
|  | const double & | d
| ) |  |
| static

Help function, see formula A2a appendix

## § E1()

double fisx::Math::E1 | ( | const double & | x | ) |
| static

Calculate the exponential integral of order 1 on x.

           |inf
          |          dy

E1(x) = | exp(y) -— |x y

Only the real part is calculated

## § En()

double fisx::Math::En | ( | const int & | n,
|  | const double & | x
| ) |  |
| static

Calculate the exponential integral of order n on x

           |inf
          |          dy

En(x) = | exp(y) -— |x y^n

Only the real part is calculated

## § erf()

double fisx::Math::erf | ( | const double & | x | ) |
| static

Error function

## § erfc()

double fisx::Math::erfc | ( | const double & | x | ) |
| static

Complementary error function

## § getFWHM()

double fisx::Math::getFWHM | ( | const double & | energy,
|  | const double & | noise,
|  | const double & | fano,
|  | const double & | quantumEnergy = `0.00385`
| ) |  |
| static

Get FWHM from energy, noise, fano and average energy needed to create a signal

## § isFiniteNumber()

bool fisx::Math::isFiniteNumber | ( | const double & | x | ) |
| static

Returns false is x is NaN or an infinite number

## § isNumber()

bool fisx::Math::isNumber | ( | const double & | x | ) |
| static

Returns false is x is NaN

The documentation for this class was generated from the following files:

- fisx_math.h
- fisx_math.cpp