diff --git a/lapack/src/main/java/dev/ludovic/netlib/lapack/AbstractLAPACK.java b/lapack/src/main/java/dev/ludovic/netlib/lapack/AbstractLAPACK.java index b0ea934..c428986 100644 --- a/lapack/src/main/java/dev/ludovic/netlib/lapack/AbstractLAPACK.java +++ b/lapack/src/main/java/dev/ludovic/netlib/lapack/AbstractLAPACK.java @@ -325,9 +325,9 @@ public void dgeev(String jobvl, String jobvr, int n, double[] a, int offseta, in requireNonNull(a); requireNonNull(wr); requireNonNull(wi); - if (lsame("N", jobvl)) + if (lsame("V", jobvl)) requireNonNull(vl); - if (lsame("N", jobvr)) + if (lsame("V", jobvr)) requireNonNull(vr); requireNonNull(work); requireNonNull(info); @@ -335,9 +335,9 @@ public void dgeev(String jobvl, String jobvr, int n, double[] a, int offseta, in checkIndex(offseta + n * lda - 1, a.length); checkIndex(offsetwr + n - 1, wr.length); checkIndex(offsetwi + n - 1, wi.length); - if (lsame("N", jobvl)) + if (lsame("V", jobvl)) checkIndex(offsetvl + n * ldvl - 1, vl.length); - if (lsame("N", jobvr)) + if (lsame("V", jobvr)) checkIndex(offsetvr + n * ldvr - 1, vr.length); } checkIndex(offsetwork + Math.max(1, lwork) - 1, work.length); @@ -4959,9 +4959,9 @@ public void sgeev(String jobvl, String jobvr, int n, float[] a, int offseta, int requireNonNull(a); requireNonNull(wr); requireNonNull(wi); - if (lsame("N", jobvl)) + if (lsame("V", jobvl)) requireNonNull(vl); - if (lsame("N", jobvr)) + if (lsame("V", jobvr)) requireNonNull(vr); requireNonNull(work); requireNonNull(info); @@ -4969,9 +4969,9 @@ public void sgeev(String jobvl, String jobvr, int n, float[] a, int offseta, int checkIndex(offseta + n * lda - 1, a.length); checkIndex(offsetwr + n - 1, wr.length); checkIndex(offsetwi + n - 1, wi.length); - if (lsame("N", jobvl)) + if (lsame("V", jobvl)) checkIndex(offsetvl + n * ldvl - 1, vl.length); - if (lsame("N", jobvr)) + if (lsame("V", jobvr)) checkIndex(offsetvr + n * ldvr - 1, vr.length); } checkIndex(offsetwork + Math.max(1, lwork) - 1, work.length); diff --git a/lapack/src/test/java/dev/ludovic/netlib/lapack/DgeevTest.java b/lapack/src/test/java/dev/ludovic/netlib/lapack/DgeevTest.java index 79988fa..96acb08 100644 --- a/lapack/src/test/java/dev/ludovic/netlib/lapack/DgeevTest.java +++ b/lapack/src/test/java/dev/ludovic/netlib/lapack/DgeevTest.java @@ -30,11 +30,21 @@ import org.junit.jupiter.params.provider.MethodSource; import static org.junit.jupiter.api.Assertions.*; +import org.netlib.util.intW; + public class DgeevTest extends LAPACKTest { @ParameterizedTest @MethodSource("LAPACKImplementations") void testSanity(LAPACK lapack) { - org.junit.jupiter.api.Assumptions.assumeTrue(false); + int n = 2; + double[] a = {1.0, 0.75, 0.5, 1.0}; + double[] wr = new double[2]; + double[] wi = new double[2]; + int lwork = 68; // optimal size from previous query + double[] work = new double[lwork]; + intW info = new intW(2); + + lapack.dgeev("N", "N", n, a, n, wr, wi, new double[1], 1, new double[1], 1, work, lwork, info); } } diff --git a/lapack/src/test/java/dev/ludovic/netlib/lapack/SgeevTest.java b/lapack/src/test/java/dev/ludovic/netlib/lapack/SgeevTest.java index 286b6db..a05c278 100644 --- a/lapack/src/test/java/dev/ludovic/netlib/lapack/SgeevTest.java +++ b/lapack/src/test/java/dev/ludovic/netlib/lapack/SgeevTest.java @@ -30,11 +30,21 @@ import org.junit.jupiter.params.provider.MethodSource; import static org.junit.jupiter.api.Assertions.*; +import org.netlib.util.intW; + public class SgeevTest extends LAPACKTest { @ParameterizedTest @MethodSource("LAPACKImplementations") void testSanity(LAPACK lapack) { - org.junit.jupiter.api.Assumptions.assumeTrue(false); + int n = 2; + float[] a = {1.0f, 0.75f, 0.5f, 1.0f}; + float[] wr = new float[2]; + float[] wi = new float[2]; + int lwork = 68; // optimal size from previous query + float[] work = new float[lwork]; + intW info = new intW(2); + + lapack.sgeev("N", "N", n, a, n, wr, wi, new float[1], 1, new float[1], 1, work, lwork, info); } }