Package org.ejml.data

Examples of org.ejml.data.Complex64F


        SimpleEVD evd = a.eig();

        assertEquals(4,evd.getNumberOfEigenvalues());

        for( int i = 0; i < 4; i++ ) {
            Complex64F c = evd.getEigenvalue(i);
            assertTrue(c != null );
            evd.getEigenVector(i);
        }
    }
View Full Code Here


        return helper.getMatrixSize();
    }

    @Override
    public Complex64F getEigenvalue(int index) {
        return new Complex64F(values[index],0);
    }
View Full Code Here

            }
        }

        eigenvalues = new Complex64F[ A.numRows ];
        for( int i = 0; i < eigenvalues.length; i++ ) {
            eigenvalues[i] = new Complex64F();
        }

        numEigen = 0;
        lastExceptional = 0;
        numExceptional = 0;
View Full Code Here

        // extract eigenvectors from the shur matrix
        // start at the top left corner of the matrix
        boolean triangular = true;
        for( int i = 0; i < N; i++ ) {

            Complex64F c = implicit.eigenvalues[N-i-1];

            if( triangular && !c.isReal() )
                triangular = false;

            if( c.isReal() && eigenvectors[N-i-1] == null) {
                solveEigenvectorDuplicateEigenvalue(c.real,i,triangular);
            }
        }

        // translate the eigenvectors into the frame of the original matrix
View Full Code Here

        }

        eigenvectorTemp.reshape(N,1, false);

        for( int i = first; i < N; i++ ) {
            Complex64F c = implicit.eigenvalues[N-i-1];

            if( c.isReal() && Math.abs(c.real-real)/scale < 100.0*UtilEjml.EPS ) {
                eigenvectorTemp.data[i] = 1;

                DenseMatrix64F v = new DenseMatrix64F(N,1);
                CommonOps.multTransA(Q,eigenvectorTemp,v);
                eigenvectors[N-i-1] = v;
View Full Code Here

        // first try using known eigenvalues in the same order they were originally found
        if( onscript) {
            if( implicit.steps > implicit.exceptionalThreshold/) {
                onscript = false;
            } else {
                Complex64F a = origEigenvalues[indexVal];

                // if no splits are found perform an implicit step
                if( a.isReal() ) {
                    implicit.performImplicitSingleStep(x1,x2, a.getReal());
                } else if( x2 < N-2 ) {
                    implicit.performImplicitDoubleStep(x1,x2, a.real,a.imaginary);
                } else {
                    onscript = false;
                }
View Full Code Here

     * If the eigenvalues are all known, real, and the same this can be used to check them.
     */
    public void testEigenvalues( EigenDecomposition alg , double expected ) {

        for( int i = 0; i < alg.getNumberOfEigenvalues(); i++ ) {
            Complex64F c = alg.getEigenvalue(i);

            assertTrue(c.isReal());

            assertEquals(expected,c.real,1e-8);
        }
    }
View Full Code Here

        // basic sanity tests
        assertEquals(A.numRows,alg.getNumberOfEigenvalues());

        if( numReal >= 0 ) {
            for( int i = 0; i < A.numRows; i++ ) {
                Complex64F v = alg.getEigenvalue(i);

                assertFalse( Double.isNaN(v.getReal() ));
                if( v.isReal() )
                    numReal--;
                else if( Math.abs(v.getImaginary()) < 10*UtilEjml.EPS)
                    numReal--;
            }

            // if there are more than the expected number of real eigenvalues this will
            // be negative
View Full Code Here

        DenseMatrix64F tempA = new DenseMatrix64F(N,1);
        DenseMatrix64F tempB = new DenseMatrix64F(N,1);
       
        for( int i = 0; i < N; i++ ) {
            Complex64F c = alg.getEigenvalue(i);
            DenseMatrix64F v = alg.getEigenVector(i);

            if( Double.isInfinite(c.real) || Double.isNaN(c.real) ||
                    Double.isInfinite(c.imaginary) || Double.isNaN(c.imaginary))
                fail("Uncountable eigenvalue");

            if( !c.isReal() ) {
                assertTrue(v==null);
            } else {
                assertTrue(v != null );
//                if( MatrixFeatures.hasUncountable(v)) {
//                    throw new RuntimeException("Egads");
View Full Code Here

        DenseMatrix64F AV = new DenseMatrix64F(N,1);
        DenseMatrix64F LV = new DenseMatrix64F(N,1);

        for( int i = 0; i < N; i++ ) {
            Complex64F c = alg.getEigenvalue(i);

            if( c.isReal() ) {
                Eigenpair p = EigenOps.computeEigenVector(A,c.getReal());

                if( p != null ) {
                    CommonOps.mult(A,p.vector,AV);
                    CommonOps.scale(c.getReal(),p.vector,LV);
                    double error = SpecializedOps.diffNormF(AV,LV);
//                    System.out.println("error = "+error);
                    assertTrue(error<1e-12);
                }
            }
View Full Code Here

TOP

Related Classes of org.ejml.data.Complex64F

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.