diff --git a/.gitignore b/.gitignore index e97d968..66799be 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.idea/ **/target **/.classpath **/.project diff --git a/arpack/src/main/java/dev/ludovic/netlib/arpack/ARPACK.java b/arpack/src/main/java/dev/ludovic/netlib/arpack/ARPACK.java index 519024d..78dffa5 100644 --- a/arpack/src/main/java/dev/ludovic/netlib/arpack/ARPACK.java +++ b/arpack/src/main/java/dev/ludovic/netlib/arpack/ARPACK.java @@ -27,6 +27,8 @@ public interface ARPACK { + public static final String ALLOW_NATIVE_ARPACK = "dev.ludovic.netlib.arpack.allowNative"; + public static ARPACK getInstance() { return InstanceBuilder.arpack(); } diff --git a/arpack/src/main/java/dev/ludovic/netlib/arpack/InstanceBuilder.java b/arpack/src/main/java/dev/ludovic/netlib/arpack/InstanceBuilder.java index b591a4b..92a7d0a 100644 --- a/arpack/src/main/java/dev/ludovic/netlib/arpack/InstanceBuilder.java +++ b/arpack/src/main/java/dev/ludovic/netlib/arpack/InstanceBuilder.java @@ -37,7 +37,14 @@ final class InstanceBuilder { private static final JavaARPACK javaArpack; static { - nativeArpack = initializeNative(); + String allowNativeArpack = System.getProperty(ARPACK.ALLOW_NATIVE_ARPACK, "true"); + if (Boolean.parseBoolean(allowNativeArpack)) { + nativeArpack = initializeNative(); + } else { + log.info("Skip trying to load native BLAS implementation because system property " + + ARPACK.ALLOW_NATIVE_ARPACK + " is " + allowNativeArpack); + nativeArpack = null; + } javaArpack = initializeJava(); arpack = nativeArpack != null ? nativeArpack : javaArpack; @@ -52,7 +59,7 @@ private static NativeARPACK initializeNative() { try { return JNIARPACK.getInstance(); } catch (Throwable t) { - log.log(Level.FINE, "Failed to load implementation from:" + JNIARPACK.class.getName(), t); + log.log(Level.FINE, "Failed to load implementation from: " + JNIARPACK.class.getName(), t); return null; } } diff --git a/blas/src/main/java/dev/ludovic/netlib/blas/BLAS.java b/blas/src/main/java/dev/ludovic/netlib/blas/BLAS.java index 4479d57..20e21e4 100644 --- a/blas/src/main/java/dev/ludovic/netlib/blas/BLAS.java +++ b/blas/src/main/java/dev/ludovic/netlib/blas/BLAS.java @@ -27,6 +27,8 @@ public interface BLAS { + public static final String ALLOW_NATIVE_BLAS = "dev.ludovic.netlib.blas.allowNative"; + public static BLAS getInstance() { return InstanceBuilder.blas(); } diff --git a/blas/src/main/java/dev/ludovic/netlib/blas/InstanceBuilder.java b/blas/src/main/java/dev/ludovic/netlib/blas/InstanceBuilder.java index 236fd84..e6a5507 100644 --- a/blas/src/main/java/dev/ludovic/netlib/blas/InstanceBuilder.java +++ b/blas/src/main/java/dev/ludovic/netlib/blas/InstanceBuilder.java @@ -37,7 +37,14 @@ final class InstanceBuilder { private static final JavaBLAS javaBlas; static { - nativeBlas = initializeNative(); + String allowNativeBlas = System.getProperty(BLAS.ALLOW_NATIVE_BLAS, "true"); + if (Boolean.parseBoolean(allowNativeBlas)) { + nativeBlas = initializeNative(); + } else { + log.info("Skip trying to load native BLAS implementation because system property " + + BLAS.ALLOW_NATIVE_BLAS + " is " + allowNativeBlas); + nativeBlas = null; + } javaBlas = initializeJava(); blas = nativeBlas != null ? nativeBlas : javaBlas; @@ -52,7 +59,7 @@ private static NativeBLAS initializeNative() { try { return JNIBLAS.getInstance(); } catch (Throwable t) { - log.log(Level.FINE, "Failed to load implementation from:" + JNIBLAS.class.getName(), t); + log.log(Level.FINE, "Failed to load implementation from: " + JNIBLAS.class.getName(), t); return null; } } diff --git a/lapack/src/main/java/dev/ludovic/netlib/lapack/InstanceBuilder.java b/lapack/src/main/java/dev/ludovic/netlib/lapack/InstanceBuilder.java index bb0c5ef..ed7deaf 100644 --- a/lapack/src/main/java/dev/ludovic/netlib/lapack/InstanceBuilder.java +++ b/lapack/src/main/java/dev/ludovic/netlib/lapack/InstanceBuilder.java @@ -37,7 +37,14 @@ final class InstanceBuilder { private static final JavaLAPACK javaLapack; static { - nativeLapack = initializeNative(); + String allowNativeLapack = System.getProperty(LAPACK.ALLOW_NATIVE_LAPACK, "true"); + if (Boolean.parseBoolean(allowNativeLapack)) { + nativeLapack = initializeNative(); + } else { + log.info("Skip trying to load native LAPACK implementation because system property " + + LAPACK.ALLOW_NATIVE_LAPACK + " is " + allowNativeLapack); + nativeLapack = null; + } javaLapack = initializeJava(); lapack = nativeLapack != null ? nativeLapack : javaLapack; @@ -52,7 +59,7 @@ private static NativeLAPACK initializeNative() { try { return JNILAPACK.getInstance(); } catch (Throwable t) { - log.log(Level.FINE, "Failed to load implementation from:" + JNILAPACK.class.getName(), t); + log.log(Level.FINE, "Failed to load implementation from: " + JNILAPACK.class.getName(), t); return null; } } diff --git a/lapack/src/main/java/dev/ludovic/netlib/lapack/LAPACK.java b/lapack/src/main/java/dev/ludovic/netlib/lapack/LAPACK.java index 38afdcc..b3b96b1 100644 --- a/lapack/src/main/java/dev/ludovic/netlib/lapack/LAPACK.java +++ b/lapack/src/main/java/dev/ludovic/netlib/lapack/LAPACK.java @@ -27,6 +27,8 @@ public interface LAPACK { + public static final String ALLOW_NATIVE_LAPACK = "dev.ludovic.netlib.lapack.allowNative"; + public static LAPACK getInstance() { return InstanceBuilder.lapack(); }