org.jmol.util
Class Eigen

java.lang.Object
  extended by org.jmol.util.Eigen

public class Eigen
extends java.lang.Object

Eigenvalues and eigenvectors of a real 3x3 symmetric matrix. adapted by Bob Hanson from http://math.nist.gov/javanumerics/jama/ (public domain)

If A is symmetric, then A = V*D*V' where the eigenvalue matrix D is diagonal and the eigenvector matrix V is orthogonal. I.e. A = V.times(D.times(V.transpose())) and V.times(V.transpose()) equals the identity matrix. In this implementation, output is as a set of double[3] ROWS


Field Summary
private  double[] d
           
private  double[] e
           
private  double[][] Vo
           
private  double[][] Vx
           
 
Constructor Summary
Eigen(double[][] A)
           
 
Method Summary
 void dump()
           
private  void dump(int i)
           
 double[] getEigenvalues()
           
 double[][] getEigenvectors()
           
private static double hypot(double a, double b)
           
static float[] toFloat(double[] d)
           
static float[][] toFloat3x3(double[][] d)
           
private  void tql2()
           
private  void tred2()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

d

private double[] d

e

private double[] e

Vx

private double[][] Vx

Vo

private double[][] Vo
Constructor Detail

Eigen

public Eigen(double[][] A)
Method Detail

getEigenvectors

public double[][] getEigenvectors()

getEigenvalues

public double[] getEigenvalues()

tred2

private void tred2()

tql2

private void tql2()

hypot

private static double hypot(double a,
                            double b)

dump

public void dump()

dump

private void dump(int i)

toFloat3x3

public static float[][] toFloat3x3(double[][] d)

toFloat

public static float[] toFloat(double[] d)