/** * Returns the Eigen Value Decomposition (EVD) of this matrix. */ public SimpleEVD eig() { return new SimpleEVD(mat); }
/** * Returns the index of the eigenvalue which has the largest magnitude. * * @return index of the largest magnitude eigen value. */ public int getIndexMax() { int indexMax = 0; double max = getEigenvalue(0).getMagnitude2(); final int N = getNumberOfEigenvalues(); for( int i = 1; i < N; i++ ) { double m = getEigenvalue(i).getMagnitude2(); if( m > max ) { max = m; indexMax = i; } } return indexMax; }
@Override public long process(BenchmarkMatrix[] inputs, BenchmarkMatrix[] outputs, long numTrials) { SimpleMatrix matA = inputs[0].getOriginal(); SimpleEVD evd = null; long prev = System.nanoTime(); for( long i = 0; i < numTrials; i++ ) { evd = matA.eig(); evd.getEigenvalue(0); evd.getEigenVector(0); } long elapsedTime = System.nanoTime() - prev; if( outputs != null ) { outputs[0] = new EjmlBenchmarkMatrix(EigenOps_DDRM.createMatrixD((EigenDecomposition_F64)evd.getEVD())); outputs[1] = new EjmlBenchmarkMatrix(EigenOps_DDRM.createMatrixV((EigenDecomposition_F64)evd.getEVD())); } return elapsedTime; } }
int maxEVIndex = hessianEVD.getIndexMax(); if(hessianEVD.getEigenvalue(maxEVIndex).getReal() < 0){ gradStep = hessian.invert().mult(gradient); x = xOld.minus(gradStep); if( prob1 <= prob | hessianEVD.getEigenvalue(maxEVIndex).getReal() >= 0) { gradStep = gradient.scale(step); x = xOld.plus(gradStep);
/** * Returns the index of the eigenvalue which has the largest magnitude. * * @return index of the largest magnitude eigen value. */ public int getIndexMax() { int indexMax = 0; double max = getEigenvalue(0).getMagnitude2(); final int N = getNumberOfEigenvalues(); for( int i = 1; i < N; i++ ) { double m = getEigenvalue(i).getMagnitude2(); if( m > max ) { max = m; indexMax = i; } } return indexMax; }
int maxEVIndex = hessianEVD.getIndexMax(); if(hessianEVD.getEigenvalue(maxEVIndex).getReal() < 0){ gradStep = hessian.invert().mult(gradient); x = xOld.minus(gradStep); if( prob1 <= prob | hessianEVD.getEigenvalue(maxEVIndex).getReal() >= 0) { gradStep = gradient.scale(step); x = xOld.plus(gradStep);
/** * Returns the index of the eigenvalue which has the smallest magnitude. * * @return index of the smallest magnitude eigen value. */ public int getIndexMin() { int indexMin = 0; double min = getEigenvalue(0).getMagnitude2(); final int N = getNumberOfEigenvalues(); for( int i = 1; i < N; i++ ) { double m = getEigenvalue(i).getMagnitude2(); if( m < min ) { min = m; indexMin = i; } } return indexMin; } }
/** * Returns the Eigen Value Decomposition (EVD) of this matrix. */ public SimpleEVD eig() { return new SimpleEVD(mat); }
/** * Returns the index of the eigenvalue which has the largest magnitude. * * @return index of the largest magnitude eigen value. */ public int getIndexMax() { int indexMax = 0; double max = getEigenvalue(0).getMagnitude2(); final int N = getNumberOfEigenvalues(); for( int i = 1; i < N; i++ ) { double m = getEigenvalue(i).getMagnitude2(); if( m > max ) { max = m; indexMax = i; } } return indexMax; }
/** * Returns the Eigen Value Decomposition (EVD) of this matrix. */ public SimpleEVD eig() { return new SimpleEVD(mat); }
/** * Returns the index of the eigenvalue which has the smallest magnitude. * * @return index of the smallest magnitude eigen value. */ public int getIndexMin() { int indexMin = 0; double min = getEigenvalue(0).getMagnitude2(); final int N = getNumberOfEigenvalues(); for( int i = 1; i < N; i++ ) { double m = getEigenvalue(i).getMagnitude2(); if( m < min ) { min = m; indexMin = i; } } return indexMin; } }
/** * Returns the index of the eigenvalue which has the smallest magnitude. * * @return index of the smallest magnitude eigen value. */ public int getIndexMin() { int indexMin = 0; double min = getEigenvalue(0).getMagnitude2(); final int N = getNumberOfEigenvalues(); for( int i = 1; i < N; i++ ) { double m = getEigenvalue(i).getMagnitude2(); if( m < min ) { min = m; indexMin = i; } } return indexMin; } }