36 lines
1.2 KiB
C++
36 lines
1.2 KiB
C++
/* -*- c++ -*- ----------------------------------------------------------
|
|
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
|
https://www.lammps.org/, Sandia National Laboratories
|
|
LAMMPS development team: developers@lammps.org
|
|
|
|
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
|
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
|
certain rights in this software. This software is distributed under
|
|
the GNU General Public License.
|
|
|
|
See the README file in the top-level LAMMPS directory.
|
|
------------------------------------------------------------------------- */
|
|
|
|
#ifndef LMP_MATH_EIGEN_H
|
|
#define LMP_MATH_EIGEN_H
|
|
|
|
namespace MathEigen {
|
|
|
|
/** A specialized function which finds the eigenvalues and eigenvectors
|
|
* of a 3x3 matrix (in double ** format).
|
|
*
|
|
* \param mat the 3x3 matrix you wish to diagonalize
|
|
* \param eval store the eigenvalues here
|
|
* \param evec store the eigenvectors here...
|
|
* \return 0 if eigenvalue calculation converged, 1 if it failed */
|
|
|
|
int jacobi3(double const *const *mat, double *eval, double **evec);
|
|
|
|
/** \overload */
|
|
|
|
int jacobi3(double const mat[3][3], double *eval, double evec[3][3]);
|
|
|
|
} // namespace MathEigen
|
|
|
|
#endif //#ifndef LMP_MATH_EIGEN_H
|