Functions | |
int | allocateMatrix (std::vector< std::vector< double > > &A, int m, int n) |
Allocates a matrix of size m x n. | |
int | allocateVector (std::vector< double > &x, int n) |
Allocates a vector of size n. | |
int | cholBackSolve (const std::vector< std::vector< double > > &L, std::vector< double > &x, const std::vector< double > &b) |
Solves the equation LL'x = b where L is lower triangular matrix. | |
int | cholFactor (std::vector< std::vector< double > > &A) |
The subroutine which does cholesky factorization of a given Symmetric positive definite matrix (say) A. | |
int | eye (std::vector< std::vector< double > > &M, int n) |
Creates an n x n identity matrix for M. | |
double | gammln (double xx) |
Calculates natural log of a gamma function. | |
double | gammq (double a, double x) |
Calculates Q, the probability that the chi2 should exceed a particilar chi2 (input) by chance. | |
void | gcf (double *gammcf, double a, double x, double *gln) |
Calculates Q, the probability that the chi2 should exceed a particilar chi2 (input) by chance, by using continued fractions. | |
void | gser (double *gamser, double a, double x, double *gln) |
Calculates Q, the probability that the chi2 should exceed a particilar chi2 (input) by chance, by using series approximation. | |
double | innerProduct (const std::vector< double > &a, const std::vector< double > &b) |
Computes the dot or the inner product of two vectors(i.e. | |
int | invertMatrix (const std::vector< std::vector< double > > &A, std::vector< std::vector< double > > &Ainv) |
Inverts a SPD matrix a to get inverse Ainv using the cholesky factorization. | |
double | norm (const std::vector< double > &a) |
Computes the two norm of the vector. | |
std::vector< vector< double > > | operator * (const std::vector< std::vector< double > > &A, const std::vector< std::vector< double > > &B) |
Computes Matrix Matrix Product C=A*B. | |
std::vector< double > | operator * (const std::vector< double > &x, const std::vector< std::vector< double > > &A) |
Computes the vector matrix product y = x'A. | |
std::vector< double > | operator * (const std::vector< std::vector< double > > &A, const std::vector< double > &x) |
Computes the Matrix vector product y = Ax. | |
std::vector< std::vector< double > > | operator * (double a, const std::vector< std::vector< double > > &A) |
Computes the scalar matrix product B = aA. | |
std::vector< double > | operator * (double a, const std::vector< double > &x) |
Given a scalar a and a vector x this function performs operation y = ax. | |
std::vector< vector< double > > | operator+ (const std::vector< std::vector< double > > &A, const std::vector< std::vector< double > > &B) |
Given two matrices A and B this function performs operation C = A + B. | |
std::vector< double > | operator+ (const std::vector< double > &x, const std::vector< double > &y) |
Given two vectors x and y this function performs operation z = x + y. | |
std::vector< vector< double > > | operator- (const std::vector< std::vector< double > > &A, const std::vector< std::vector< double > > &B) |
Given two matrices A and B this function performs operation C = A - B. | |
std::vector< double > | operator- (const std::vector< double > &y) |
Given a vector y this function performs operation z = - y. | |
std::vector< double > | operator- (const std::vector< double > &x, const std::vector< double > &y) |
Given two vectors x and y this function performs operation z = x - y. | |
std::vector< std::vector< double > > | operator/ (const std::vector< std::vector< double > > &A, double a) |
Computes the scalar matrix product B = A/a. | |
std::vector< double > | operator/ (const std::vector< double > &x, double a) |
Given a scalar and a vector x this function performs operation y = x/a. | |
vector< vector< double > > | outerProduct (const std::vector< double > &a, const std::vector< double > &b) |
Computes the outer product of two vectors (i.e. | |
double | quadraticProduct (const std::vector< std::vector< double > > &A, const std::vector< double > x) |
Calculates the vector-matrix-vector product x'*A*x. | |
int | write (const std::vector< std::vector< double > > &A) |
Given the matrix it writes it to std stream. | |
int | write (const std::vector< double > &x) |
Given the vector it writes it to std stream. |
int allocateMatrix | ( | std::vector< std::vector< double > > & | A, | |
int | m, | |||
int | n | |||
) |
int allocateVector | ( | std::vector< double > & | x, | |
int | n | |||
) |
int cholBackSolve | ( | const std::vector< std::vector< double > > & | L, | |
std::vector< double > & | x, | |||
const std::vector< double > & | b | |||
) |
Solves the equation LL'x = b where L is lower triangular matrix.
Definition at line 323 of file NumLinAlg.cxx.
Referenced by invertMatrix().
int cholFactor | ( | std::vector< std::vector< double > > & | A | ) |
The subroutine which does cholesky factorization of a given Symmetric positive definite matrix (say) A.
It over-writes A by resulting lower triangular matrix
Definition at line 290 of file NumLinAlg.cxx.
Referenced by BFGSFitter::calcCovariance(), and invertMatrix().
int eye | ( | std::vector< std::vector< double > > & | I, | |
int | n | |||
) |
Creates an n x n identity matrix for M.
Definition at line 403 of file NumLinAlg.cxx.
Referenced by BFGSFitter::calcBestFit().
double gammln | ( | double | xx | ) |
double gammq | ( | double | a, | |
double | x | |||
) |
Calculates Q, the probability that the chi2 should exceed a particilar chi2 (input) by chance.
It internally calls gser and gcf depending on the input range.
Definition at line 116 of file Gammaq.cxx.
Referenced by FunctionController::ellipsoidNTuple().
void gcf | ( | double * | gammcf, | |
double | a, | |||
double | x, | |||
double * | gln | |||
) |
void gser | ( | double * | gamser, | |
double | a, | |||
double | x, | |||
double * | gln | |||
) |
double innerProduct | ( | const std::vector< double > & | a, | |
const std::vector< double > & | b | |||
) |
Computes the dot or the inner product of two vectors(i.e.
a'b)
Definition at line 237 of file NumLinAlg.cxx.
Referenced by BFGSFitter::calcBestFit(), and norm().
int invertMatrix | ( | const std::vector< std::vector< double > > & | A, | |
std::vector< std::vector< double > > & | Ainv | |||
) |
Inverts a SPD matrix a to get inverse Ainv using the cholesky factorization.
It inverts the matrix by repeatedly solving Ax = ei
Definition at line 354 of file NumLinAlg.cxx.
References cholBackSolve(), and cholFactor().
Referenced by LMFitter::calcCovariance(), and FunctionController::ellipsoidNTuple().
double norm | ( | const std::vector< double > & | a | ) |
Computes the two norm of the vector.
Definition at line 283 of file NumLinAlg.cxx.
References innerProduct().
std::vector< std::vector< double > > operator * | ( | const std::vector< std::vector< double > > & | A, | |
const std::vector< std::vector< double > > & | B | |||
) |
std::vector< double > operator * | ( | const std::vector< double > & | x, | |
const std::vector< std::vector< double > > & | A | |||
) |
std::vector< double > operator * | ( | const std::vector< std::vector< double > > & | A, | |
const std::vector< double > & | x | |||
) |
std::vector< std::vector< double > > operator * | ( | double | a, | |
const std::vector< std::vector< double > > & | A | |||
) |
std::vector< double > operator * | ( | double | a, | |
const std::vector< double > & | x | |||
) |
Given a scalar a and a vector x this function performs operation y = ax.
Definition at line 117 of file NumLinAlg.cxx.
std::vector< std::vector< double > > operator+ | ( | const std::vector< std::vector< double > > & | A, | |
const std::vector< std::vector< double > > & | B | |||
) |
Given two matrices A and B this function performs operation C = A + B.
Definition at line 80 of file NumLinAlg.cxx.
std::vector< double > operator+ | ( | const std::vector< double > & | x, | |
const std::vector< double > & | y | |||
) |
Given two vectors x and y this function performs operation z = x + y.
Definition at line 36 of file NumLinAlg.cxx.
std::vector< std::vector< double > > operator- | ( | const std::vector< std::vector< double > > & | A, | |
const std::vector< std::vector< double > > & | B | |||
) |
Given two matrices A and B this function performs operation C = A - B.
Definition at line 98 of file NumLinAlg.cxx.
std::vector< double > operator- | ( | const std::vector< double > & | y | ) |
Given a vector y this function performs operation z = - y.
Definition at line 66 of file NumLinAlg.cxx.
std::vector< double > operator- | ( | const std::vector< double > & | x, | |
const std::vector< double > & | y | |||
) |
Given two vectors x and y this function performs operation z = x - y.
Definition at line 51 of file NumLinAlg.cxx.
std::vector< std::vector< double > > operator/ | ( | const std::vector< std::vector< double > > & | A, | |
double | a | |||
) |
std::vector< double > operator/ | ( | const std::vector< double > & | x, | |
double | a | |||
) |
Given a scalar and a vector x this function performs operation y = x/a.
Definition at line 131 of file NumLinAlg.cxx.
std::vector< std::vector< double > > outerProduct | ( | const std::vector< double > & | a, | |
const std::vector< double > & | b | |||
) |
Computes the outer product of two vectors (i.e.
C = ab')
Definition at line 250 of file NumLinAlg.cxx.
Referenced by BFGSFitter::calcBestFit().
double quadraticProduct | ( | const std::vector< std::vector< double > > & | A, | |
const std::vector< double > | x | |||
) |
Calculates the vector-matrix-vector product x'*A*x.
Definition at line 266 of file NumLinAlg.cxx.
Referenced by FunctionController::ellipsoidNTuple().
int write | ( | const std::vector< std::vector< double > > & | A | ) |
int write | ( | const std::vector< double > & | a | ) |