From 330101e0b38b95337818a27b29300f1637c1cce5 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Mon, 11 Dec 2023 21:52:00 +0100 Subject: [PATCH 1/4] Add complex type definitions for MSVC --- lapack-netlib/LAPACKE/include/lapack.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lapack-netlib/LAPACKE/include/lapack.h b/lapack-netlib/LAPACKE/include/lapack.h index 28f8ad655..dac6b22be 100644 --- a/lapack-netlib/LAPACKE/include/lapack.h +++ b/lapack-netlib/LAPACKE/include/lapack.h @@ -37,7 +37,15 @@ */ #ifndef LAPACK_COMPLEX_CUSTOM +#if defined(_MSC_VER) + #define _CRT_USE_C_COMPLEX_H + #include + #define LAPACK_COMPLEX_CUSTOM + #define lapack_complex_float _Fcomplex + #define lapack_complex_double _Dcomplex +#endif +#else /* Complex type (single precision) */ #ifndef lapack_complex_float #ifndef __cplusplus @@ -74,6 +82,7 @@ #define lapack_complex_double_imag(z) (cimag(z)) #endif +#endif #endif /* LAPACK_COMPLEX_CUSTOM */ From dcf6999c4e3b6af70d2822b9c2629e2df91378e4 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Tue, 12 Dec 2023 11:27:17 +0100 Subject: [PATCH 2/4] remove extraneous endif --- lapack-netlib/LAPACKE/include/lapack.h | 1 - 1 file changed, 1 deletion(-) diff --git a/lapack-netlib/LAPACKE/include/lapack.h b/lapack-netlib/LAPACKE/include/lapack.h index dac6b22be..b9f81792d 100644 --- a/lapack-netlib/LAPACKE/include/lapack.h +++ b/lapack-netlib/LAPACKE/include/lapack.h @@ -43,7 +43,6 @@ #define LAPACK_COMPLEX_CUSTOM #define lapack_complex_float _Fcomplex #define lapack_complex_double _Dcomplex -#endif #else /* Complex type (single precision) */ From dcdc35127276b4a261292bf03ca8570e89ee105a Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Tue, 12 Dec 2023 23:06:22 +0100 Subject: [PATCH 3/4] Add MSVC-compatible complex types --- lapack-netlib/LAPACKE/include/lapacke_config.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lapack-netlib/LAPACKE/include/lapacke_config.h b/lapack-netlib/LAPACKE/include/lapacke_config.h index c64fc4416..798a5eb2e 100644 --- a/lapack-netlib/LAPACKE/include/lapacke_config.h +++ b/lapack-netlib/LAPACKE/include/lapacke_config.h @@ -68,6 +68,17 @@ extern "C" { #endif #ifndef LAPACK_COMPLEX_CUSTOM +#if defined(_MSC_VER) + #define _CRT_USE_C_COMPLEX_H + #include + #define LAPACK_COMPLEX_CUSTOM + #define lapack_complex_float _Fcomplex + #define lapack_complex_double _Dcomplex + #define lapack_complex_float_real(z) (creal(z)) + #define lapack_complex_float_imag(z) (cimag(z)) + #define lapack_complex_double_real(z) (creal(z)) + #define lapack_complex_double_imag(z) (cimag(z)) +#else #if defined(LAPACK_COMPLEX_STRUCTURE) @@ -109,6 +120,7 @@ typedef struct { double real, imag; } _lapack_complex_double; #define lapack_complex_double_real(z) (creal(z)) #define lapack_complex_double_imag(z) (cimag(z)) +#endif #endif lapack_complex_float lapack_make_complex_float( float re, float im ); From aa46f1e4e721550a13524ee890c0d26077c0a9eb Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Tue, 12 Dec 2023 23:07:48 +0100 Subject: [PATCH 4/4] revert addition of MSVC-compatible complex (moved to lapacke_config.h) --- lapack-netlib/LAPACKE/include/lapack.h | 8 -------- 1 file changed, 8 deletions(-) diff --git a/lapack-netlib/LAPACKE/include/lapack.h b/lapack-netlib/LAPACKE/include/lapack.h index b9f81792d..28f8ad655 100644 --- a/lapack-netlib/LAPACKE/include/lapack.h +++ b/lapack-netlib/LAPACKE/include/lapack.h @@ -37,14 +37,7 @@ */ #ifndef LAPACK_COMPLEX_CUSTOM -#if defined(_MSC_VER) - #define _CRT_USE_C_COMPLEX_H - #include - #define LAPACK_COMPLEX_CUSTOM - #define lapack_complex_float _Fcomplex - #define lapack_complex_double _Dcomplex -#else /* Complex type (single precision) */ #ifndef lapack_complex_float #ifndef __cplusplus @@ -81,7 +74,6 @@ #define lapack_complex_double_imag(z) (cimag(z)) #endif -#endif #endif /* LAPACK_COMPLEX_CUSTOM */