public static Matrix.EVD eigen(IMatrix A, int k) {
        return eigen(A, k, 1.0E-8, 10 * A.nrow());
    }
@Test
    public void testEigen1() {
        System.out.println("eigen1");
        Matrix a = Matrix.of(A);
        a.uplo(UPLO.LOWER);
        Matrix.EVD result = Lanczos.eigen(a, 1);
        assertEquals(eigenValues[0], result.wr[0], 1E-4);

        for (int i = 0; i < 3; i++) {
            assertEquals(Math.abs(eigenVectors[i][0]), Math.abs(result.Vr.get(i, 0)), 1E-4);
        }
    }