19 namespace JPP {
using namespace JMATH; }
69 const double __a10,
const double __a11,
70 const double __a20,
const double __a21,
const double __a22) :
93 if (fabs(
a10) > fabs(val)) {
98 if (fabs(
a20) > fabs(val)) {
132 if (fabs(
a21) > fabs(val)) {
184 a00 += a01 * a10 + a02 *
a20;
237 const double q = (
a00 +
a11 +
a22) / 3.0;
239 const double p = sqrt(p2 / 6.0);
247 const double phi = (r < -1.0 ?
PI / 3.0 : (r > 1.0 ? 0.0 : acos(r) / 3.0));
249 eigenvalues[0] = q + 2*p*cos(phi);
250 eigenvalues[2] = q + 2*p*cos(phi + 2*
PI/3.0);
251 eigenvalues[1] = 3 * q - eigenvalues[0] - eigenvalues[2];
260 if (fabs(eigenvalues[0]) < fabs(eigenvalues[1])) {
261 swap(eigenvalues[0], eigenvalues[1]);
264 if (fabs(eigenvalues[1]) < fabs(eigenvalues[2])) {
266 swap(eigenvalues[1], eigenvalues[2]);
268 if (fabs(eigenvalues[0]) < fabs(eigenvalues[1])) {
269 swap(eigenvalues[0], eigenvalues[1]);
eigen_values getEigenValues(const double epsilon=1e-6) const
Get eigen values.
JMatrix3S(const double __a00, const double __a10, const double __a11, const double __a20, const double __a21, const double __a22)
Contructor.
static const JMatrix3D & getIdentity()
Get reference to unique instance of this class object.
JMatrix3D & sub(const JMatrix3D &A)
Matrix subtraction.
void invert()
Invert matrix.
JMatrix3S()
Default constructor.
static const double PI
Mathematical constants.
std::array< double, 3 > eigen_values
Type definition of Eigen vakues.
JMatrix3D & div(const double factor)
Scale matrix.
Exception for division by zero.
double getDeterminant() const
Get determinant of matrix.
source $JPP_DIR setenv csh $JPP_DIR &dev null eval JShellParser o a A
JMatrix3S(const JMatrix3D &A)
Contructor.