/Users/bernard/b20/bsoft/src/util/matrix.cpp(3)

NAME
/Users/bernard/b20/bsoft/src/util/matrix.cpp - Matrix manipulation functions.

SYNOPSIS

#include 'Matrix.h'
#include 'matrix_linear.h'
#include 'math_util.h'
#include 'random_numbers.h'
#include 'utilities.h'

  Macros
#define SQR(x) ((x)*(x))

  Functions
ostream & operator<< (ostream &output, Matrix &mat)
Vector3< double > principal_axes (Vector3< double > avg, Vector3< double > avg2, Vector3< double > avgx, Vector3< double > *eigenvec)
Calculates the principal axes of 3D coordinates.
void dsytrd3 (Matrix &A, vector< double > &d, vector< double > &e)
Reduces a symmetric 3x3 matrix to tridiagonal form.
vector< double > dsyevq3 (Matrix &A)
Calculates the eigenvalues and normalized eigenvectors of a symmetric 3x3 matrix.

  Variables
int verbose

Detailed Description

Matrix manipulation functions.

Author:
    Bernard Heymann

Date:
    Created: 20000501

    Modified: 20180723

Definition in file matrix.cpp.

Macro Definition Documentation

  #define SQR(x) ((x)*(x))

Definition at line 745 of file matrix.cpp.

Function Documentation

  vector<double> dsyevq3 (Matrix & A)

Calculates the eigenvalues and normalized eigenvectors of a symmetric 3x3 matrix.

Parameters:
    A matrix, replaced by normalized eigenvectors.

Returns:
    double* eigenvalues.

    Calculates the eigenvalues and normalized eigenvectors of a symmetric 3x3
    matrix A using the QL algorithm with implicit shifts, preceded by a
    Householder reduction to tridiagonal form.
    The function accesses only the diagonal and upper triangular parts of A.

Reference: Kopp (2008).

Definition at line 850 of file matrix.cpp.

  void dsytrd3 (Matrix & A, vector< double > & d, vector< double > & e)

Reduces a symmetric 3x3 matrix to tridiagonal form.

Parameters:
    A matrix, replaced by tridiagonal matrix.
    d diagonal.
    e off-diagonal.

Returns:
    void .

    Reduces a symmetric 3x3 matrix to tridiagonal form by applying
    (unitary) Householder transformations:
                [ d[0]  e[0]       ]
        A = Q . [ e[0]  d[1]  e[1] ] . Q^T
                [       e[1]  d[2] ]
    The function accesses only the diagonal and upper triangular parts of A.

Reference: Kopp (2008).

Definition at line 764 of file matrix.cpp.

  ostream& operator<< (ostream & output, Matrix & mat)

Definition at line 18 of file matrix.cpp.

  Vector3<double> principal_axes (Vector3< double > avg, Vector3< double > avg2, Vector3< double > avgx, Vector3< double > * eigenvec)

Calculates the principal axes of 3D coordinates.

Parameters:
    avg average of vectors.
    avg2 average of squared vectors.
    avgx average of cross products {xy, xz, yz}.
    *eigenvec 3 return eigen vectors (can be NULL).

Returns:
    Vector3<double> principal axes.

Reference: Press W.H. et al (1992) Numerical Recipes in C.

Definition at line 706 of file matrix.cpp.

Variable Documentation

  int verbose

Author

Generated automatically by Doxygen for Bsoft from the source code.