package org.freehep.math.minuit; /** * Calculates and the eigenvalues of the user covariance matrix MnUserCovariance. * @version $Id: MnEigen.java 8584 2006-08-10 23:06:37Z duns $ */ public class MnEigen { /* Calculate eigenvalues of the covariance matrix. * Will perform the calculation of the eigenvalues of the covariance matrix * and return the result in the form of a double array. * The eigenvalues are ordered from the smallest to the largest eigenvalue. */ public static double[] eigenvalues(MnUserCovariance covar) { MnAlgebraicSymMatrix cov = new MnAlgebraicSymMatrix(covar.nrow()); for(int i = 0; i < covar.nrow(); i++) for(int j = i; j < covar.nrow(); j++) cov.set(i,j,covar.get(i,j)); MnAlgebraicVector eigen = cov.eigenvalues(); return eigen.data(); } }