psi::extrema::math_tools Class Reference

A general mathematics routine class. More...

#include <math_tools.h>

Inheritance diagram for psi::extrema::math_tools:

psi::extrema::coord_base psi::extrema::internals psi::extrema::deloc psi::extrema::zmat

List of all members.

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.


Detailed Description

A general mathematics routine class.

General implementations of basic mathematical algorithms. The only dependency other than standard libraries is the PSI 3.0 library libciomr.


Member Function Documentation

double * math_tools::newton_step ( int  dim,
double **  _Hi,
double *  g 
) [protected]

Computes the Newton-Raphson optimization step.

Parameters:
dim number of variables
**_Hi inverse hessian matrix
*g gradient vector
Returns:
*_s displacement 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.

Parameters:
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
Returns:
**_Hi_new updated hessian inverse

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.

Parameters:
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
Returns:
**_Hi_new = updated hessian inverse

double ** math_tools::rep_reduce ( char *  label,
double **  rep_matrix,
int  num_reps 
) [protected]

Reduces a set of representation vectors.

Parameters:
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.

Parameters:
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.

Parameters:
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 /*------------------------------------------------------------------------


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

Generated on Mon Dec 21 14:14:49 2009 for PSI by  doxygen 1.5.6