#include <math_tools.h>

Protected Member Functions | |
| math_tools () | |
| Default constructor, does nothing. | |
| ~math_tools () | |
| Default destructor, does nothing. | |
| double * | newton_step (int dim, double **_Hi, double *g) |
| Computes the Newton-Raphson optimization step. | |
| double ** | update_bfgs (int dim, double *_var_dif, double *grad_dif, double **_Hi_old) |
| Performs bfgs update on inverse of hessian matrix. | |
| double ** | update_ms (int dim, double *_var_dif, double *_grad_dif, double **_Hi_old) |
| Performs update on inverse of hessian matrix attributed to Murtah and Sargent among many others. | |
| double ** | rep_reduce (char *label, double **rep_matrix, int reps) |
| Reduces a set of representation vectors. | |
| double ** | rep_project (char *label, int dim_vec, double **result_vecs, int *irrep_proj) |
| Projects out irrep components from a reducible representation. | |
| double ** | orthogonalize (int nvecs, int dimvecs, double **vecs, int normalize, double norm_tol, int *nindep) |
| Othogonalizes a set of vectors. | |
General implementations of basic mathematical algorithms. The only dependency other than standard libraries is the PSI 3.0 library libciomr.
| double * math_tools::newton_step | ( | int | dim, | |
| double ** | _Hi, | |||
| double * | g | |||
| ) | [protected] |
Computes the Newton-Raphson optimization step.
| dim | number of variables | |
| **_Hi | inverse hessian matrix | |
| *g | gradient vector |
| double ** math_tools::update_bfgs | ( | int | dim, | |
| double * | _var_dif, | |||
| double * | _grad_dif, | |||
| double ** | _Hi_old | |||
| ) | [protected] |
Performs bfgs update on inverse of hessian matrix.
| dim | dimension of hessian inverse | |
| *_var_dif | difference of current and previous variable | |
| *grad_dif | difference of current and previous gradient | |
| **_Hi_old | inverse hessian from previous iteration |
| double ** math_tools::update_ms | ( | int | dim, | |
| double * | _var_dif, | |||
| double * | _grad_dif, | |||
| double ** | _Hi_old | |||
| ) | [protected] |
Performs update on inverse of hessian matrix attributed to Murtah and Sargent among many others.
| dim | dimension of hessian inverse | |
| *_var_dif | difference of current and previous variable | |
| *_grad_dif | difference of current and previous gradient | |
| **_Hi_old | inverse hessian from previous iteration |
| double ** math_tools::rep_reduce | ( | char * | label, | |
| double ** | rep_matrix, | |||
| int | num_reps | |||
| ) | [protected] |
Reduces a set of representation vectors.
| label | the point group label | |
| rep_matrix | the matrix of representations, each representation should be a row of this matrix whose length = number of irreps Parses input |
| double ** math_tools::rep_project | ( | char * | label, | |
| int | dim_vec, | |||
| double ** | result_vecs, | |||
| int * | irrep_proj | |||
| ) | [protected] |
Projects out irrep components from a reducible representation.
| label | point group label | |
| num_vars | dimension of the vector | |
| vectors | resulting from each symmetry operation | |
| irrep_proj | 1 if irrep should be projected out and returned |
| double ** math_tools::orthogonalize | ( | int | nvecs, | |
| int | dimvecs, | |||
| double ** | vecs, | |||
| int | normalize, | |||
| double | norm_tol, | |||
| int * | nindep | |||
| ) | [protected] |
Othogonalizes a set of vectors.
| nvecs | number of vectors to orthogonalize | |
| dimvecs | length of each vector | |
| vec | nvec x dimvecs matrix containing vectors | |
| nindep | where number of independent vectors is saved | |
| norm_tol | norm of vectors big enough to keep | |
| normalize | 1 if vectors should be normalized as well /*------------------------------------------------------------------------ |
1.5.6