From db850d40ced27286fb6cfae766bf86e6ee567a62 Mon Sep 17 00:00:00 2001 From: James Osborn Date: Tue, 12 Nov 2024 20:18:09 -0600 Subject: [PATCH 1/2] fix lapack tests on mac --- src/eigens/lapack.h | 12 ++++++++++++ src/eigens/lapack.nim | 17 ++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/eigens/lapack.h b/src/eigens/lapack.h index 5524d35f..ba0781a5 100644 --- a/src/eigens/lapack.h +++ b/src/eigens/lapack.h @@ -7,6 +7,18 @@ typedef double doublereal; r f a; \ r U(f) a +L(void, cgemm, (const char *transa, const char *transb, + const int *m, const int *n, const int *k, + const float *alpha, const float *a, + const int *lda, const float *b, const int *ldb, + const float *beta, float *c, const int *ldc)); + +L(void, dgemm, (const char *transa, const char *transb, + const int *m, const int *n, const int *k, + const double *alpha, const double *a, + const int *lda, const double *b, const int *ldb, + const double *beta, double *c, const int *ldc)); + L(void, dsterf, (integer *n, doublereal *d, doublereal *e, integer *info)); L(void, dgetrf, (integer *m, integer *n, doublereal *a, integer * lda, integer *ipiv, integer *info)); diff --git a/src/eigens/lapack.nim b/src/eigens/lapack.nim index baf0d0c9..3a32ef93 100644 --- a/src/eigens/lapack.nim +++ b/src/eigens/lapack.nim @@ -3,7 +3,8 @@ const lapackLib {.strdefine.} = "-llapack -lblas" #const lapackLib {.strdefine.} = "/usr/lib/lapack/liblapack.a -lblas -lgfortran" #const lapackLib {.strdefine.} = "-L/usr/lib/lapack -llapack" {.passL: lapackLib.} -{.pragma: lapack, header: hdr.} +#{.pragma: lapack, header: hdr.} +{.pragma: lapack.} type fint* = cint @@ -102,3 +103,17 @@ proc dbdsvdx*(uplo: cstring, jobz: cstring, range: cstring, n: ptr fint, proc dlasq1*(n: ptr fint; d: ptr float64; e: ptr float64; work: ptr float64; info: ptr fint) {.lapack, importc: "dlasq1_".} + +when isMainModule: + template toPtrInt32(x: int): ptr int32 = + var t = x.int32 + addr t + template toPtrScomplex(x: int): ptr scomplex = + var t = scomplex(re: x.float32, im: 0'f32) + addr t + template `&`(x: int): untyped = toPtrInt32(x) + template `&&`(x: int): untyped = toPtrScomplex(x) + var c,a,b: ptr scomplex + var cr,cc,bc: int + + cgemm("C","N", &cc,&cr,&bc, &&1, b,&bc, a,&bc, &&0, c,&cc) From b81fec058fbad6df39781c16c3dc6c58dd02a91b Mon Sep 17 00:00:00 2001 From: James Osborn Date: Thu, 14 Nov 2024 11:01:18 -0600 Subject: [PATCH 2/2] update Nim versions in CI --- .github/workflows/test.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8cd40fd0..b2ea5d71 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,16 +2,16 @@ name: test on: pull_request: push: - branches: - - 'devel' - - 'master' +# branches: +# - 'devel' +# - 'master' jobs: build: strategy: matrix: mpi-impl: [openmpi, mpich] - nim-branch: [version-1-6, version-2-0, devel] + nim-branch: [version-2-0, version-2-2, devel] fuel-compat: [0, 1] fail-fast: false name: nim-${{ matrix.nim-branch }}-${{ matrix.mpi-impl }}-FUELCompat:${{ matrix.fuel-compat }}