Loading src/include/magma_calls.h 0 → 100644 +23 −0 Original line number Diff line number Diff line /* Distributed under the terms of GPLv3 or later. See COPYING for details. */ /*! \file magma_calls.h * * \brief C++ interface to MAGMA calls. * */ #ifndef INCLUDE_MAGMA_CALLS_H_ #define INCLUDE_MAGMA_CALLS_H_ /*! \brief Invert a complex matrix with double precision elements. * * Use LAPACKE64 to perform an in-place matrix inversion for a complex * matrix with double precision elements. * * \param mat: Matrix of complex. The matrix to be inverted. * \param n: `np_int` The number of rows and columns of the [n x n] matrix. * \param jer: `int &` Reference to an integer return flag. */ void magma_zinvert(dcomplex **mat, np_int n, int &jer); #endif src/include/types.h +8 −4 Original line number Diff line number Diff line Loading @@ -16,11 +16,15 @@ typedef __complex__ double dcomplex; #ifdef USE_MKL #ifndef MKL_INT #define MKL_INT int64_t #endif #endif // MKL_INT #include <mkl_lapacke.h> #else #include <lapacke.h> #endif #endif // USE_MKL #endif // USE_LAPACK #ifdef USE_MAGMA #include "magma_v2.h" #endif #ifndef np_int Loading @@ -28,8 +32,8 @@ typedef __complex__ double dcomplex; #define np_int lapack_int #else #define np_int int64_t #endif #endif #endif // lapack_int #endif // np_int /*! \brief Get the real part of a complex number. * Loading src/libnptm/Makefile +3 −3 Original line number Diff line number Diff line Loading @@ -19,11 +19,11 @@ endif include ../make.inc CXX_NPTM_OBJS=$(OBJDIR)/Commons.o $(OBJDIR)/Configuration.o $(OBJDIR)/file_io.o $(OBJDIR)/Parsers.o $(OBJDIR)/sph_subs.o $(OBJDIR)/clu_subs.o $(OBJDIR)/tfrfme.o $(OBJDIR)/tra_subs.o $(OBJDIR)/TransitionMatrix.o $(OBJDIR)/lapack_calls.o $(OBJDIR)/algebraic.o $(OBJDIR)/types.o $(OBJDIR)/logging.o CXX_NPTM_OBJS=$(OBJDIR)/Commons.o $(OBJDIR)/Configuration.o $(OBJDIR)/file_io.o $(OBJDIR)/Parsers.o $(OBJDIR)/sph_subs.o $(OBJDIR)/clu_subs.o $(OBJDIR)/tfrfme.o $(OBJDIR)/tra_subs.o $(OBJDIR)/TransitionMatrix.o $(OBJDIR)/lapack_calls.o $(OBJDIR)/magma_calls.o $(OBJDIR)/algebraic.o $(OBJDIR)/types.o $(OBJDIR)/logging.o CXX_NPTM_DYNOBJS=$(DYNOBJDIR)/Commons.o $(DYNOBJDIR)/Configuration.o $(DYNOBJDIR)/file_io.o $(DYNOBJDIR)/Parsers.o $(DYNOBJDIR)/sph_subs.o $(DYNOBJDIR)/clu_subs.o $(DYNOBJDIR)/tfrfme.o $(DYNOBJDIR)/tra_subs.o $(DYNOBJDIR)/TransitionMatrix.o $(DYNOBJDIR)/lapack_calls.o $(DYNOBJDIR)/algebraic.o $(DYNOBJDIR)/types.o $(DYNOBJDIR)/logging.o CXX_NPTM_DYNOBJS=$(DYNOBJDIR)/Commons.o $(DYNOBJDIR)/Configuration.o $(DYNOBJDIR)/file_io.o $(DYNOBJDIR)/Parsers.o $(DYNOBJDIR)/sph_subs.o $(DYNOBJDIR)/clu_subs.o $(DYNOBJDIR)/tfrfme.o $(DYNOBJDIR)/tra_subs.o $(DYNOBJDIR)/TransitionMatrix.o $(DYNOBJDIR)/lapack_calls.o $(DYNOBJDIR)/magma_calls.o $(DYNOBJDIR)/algebraic.o $(DYNOBJDIR)/types.o $(DYNOBJDIR)/logging.o CXX_NPTM_DEBUG=$(OBJDIR)/Commons.g* $(OBJDIR)/Configuration.g* $(OBJDIR)/file_io.g* $(OBJDIR)/Parsers.g* $(OBJDIR)/sph_subs.g* $(OBJDIR)/clu_subs.g* $(OBJDIR)/tfrfme.g* $(OBJDIR)/tra_subs.g* $(OBJDIR)/TransitionMatrix.g* $(OBJDIR)/lapack_calls.g* $(OBJDIR)/algebraic.g* $(OBJDIR)/types.g* $(OBJDIR)/logging.g* $(DYNOBJDIR)/Commons.g* $(DYNOBJDIR)/Configuration.g* $(DYNOBJDIR)/file_io.g* $(DYNOBJDIR)/Parsers.g* $(DYNOBJDIR)/sph_subs.g* $(DYNOBJDIR)/clu_subs.g* $(DYNOBJDIR)/tfrfme.g* $(DYNOBJDIR)/tra_subs.g* $(DYNOBJDIR)/TransitionMatrix.g* $(DYNOBJDIR)/lapack_calls.g* $(DYNOBJDIR)/algebraic.g* $(DYNOBJDIR)/types.g* $(DYNOBJDIR)/logging.g* CXX_NPTM_DEBUG=$(OBJDIR)/Commons.g* $(OBJDIR)/Configuration.g* $(OBJDIR)/file_io.g* $(OBJDIR)/Parsers.g* $(OBJDIR)/sph_subs.g* $(OBJDIR)/clu_subs.g* $(OBJDIR)/tfrfme.g* $(OBJDIR)/tra_subs.g* $(OBJDIR)/TransitionMatrix.g* $(OBJDIR)/lapack_calls.g* $(OBJDIR)/magma_calls.g* $(OBJDIR)/algebraic.g* $(OBJDIR)/types.g* $(OBJDIR)/logging.g* $(DYNOBJDIR)/Commons.g* $(DYNOBJDIR)/Configuration.g* $(DYNOBJDIR)/file_io.g* $(DYNOBJDIR)/Parsers.g* $(DYNOBJDIR)/sph_subs.g* $(DYNOBJDIR)/clu_subs.g* $(DYNOBJDIR)/tfrfme.g* $(DYNOBJDIR)/tra_subs.g* $(DYNOBJDIR)/TransitionMatrix.g* $(DYNOBJDIR)/lapack_calls.g* $(DYNOBJDIR)/magma_calls.g* $(DYNOBJDIR)/algebraic.g* $(DYNOBJDIR)/types.g* $(DYNOBJDIR)/logging.g* all: $(BUILDDIR_NPTM)/libnptm.a $(BUILDDIR_NPTM)/libnptm.so Loading src/libnptm/algebraic.cpp +9 −1 Original line number Diff line number Diff line Loading @@ -14,6 +14,12 @@ #endif #endif #ifdef USE_MAGMA #ifndef INCLUDE_MAGMA_CALLS_H_ #include "../include/magma_calls.h" #endif #endif #ifndef INCLUDE_ALGEBRAIC_H_ #include "../include/algebraic.h" #endif Loading @@ -26,7 +32,9 @@ using namespace std; void invert_matrix(dcomplex **mat, np_int size, int &ier, np_int max_size) { ier = 0; #ifdef USE_LAPACK #ifdef USE_MAGMA magma_zinvert(mat, size, ier); #elif defined USE_LAPACK zinvert(mat, size, ier); #else lucin(mat, max_size, size, ier); Loading src/libnptm/lapack_calls.cpp +3 −2 Original line number Diff line number Diff line Loading @@ -8,19 +8,20 @@ #include "../include/types.h" #endif /* #ifdef USE_LAPACK #ifdef USE_MKL #include <mkl_lapacke.h> #else #include <lapacke.h> #endif */ #ifdef USE_LAPACK #ifndef INCLUDE_LAPACK_CALLS_H_ #include "../include/lapack_calls.h" #endif #endif #ifdef USE_LAPACK void zinvert(dcomplex **mat, np_int n, int &jer) { jer = 0; dcomplex *arr = &(mat[0][0]); Loading Loading
src/include/magma_calls.h 0 → 100644 +23 −0 Original line number Diff line number Diff line /* Distributed under the terms of GPLv3 or later. See COPYING for details. */ /*! \file magma_calls.h * * \brief C++ interface to MAGMA calls. * */ #ifndef INCLUDE_MAGMA_CALLS_H_ #define INCLUDE_MAGMA_CALLS_H_ /*! \brief Invert a complex matrix with double precision elements. * * Use LAPACKE64 to perform an in-place matrix inversion for a complex * matrix with double precision elements. * * \param mat: Matrix of complex. The matrix to be inverted. * \param n: `np_int` The number of rows and columns of the [n x n] matrix. * \param jer: `int &` Reference to an integer return flag. */ void magma_zinvert(dcomplex **mat, np_int n, int &jer); #endif
src/include/types.h +8 −4 Original line number Diff line number Diff line Loading @@ -16,11 +16,15 @@ typedef __complex__ double dcomplex; #ifdef USE_MKL #ifndef MKL_INT #define MKL_INT int64_t #endif #endif // MKL_INT #include <mkl_lapacke.h> #else #include <lapacke.h> #endif #endif // USE_MKL #endif // USE_LAPACK #ifdef USE_MAGMA #include "magma_v2.h" #endif #ifndef np_int Loading @@ -28,8 +32,8 @@ typedef __complex__ double dcomplex; #define np_int lapack_int #else #define np_int int64_t #endif #endif #endif // lapack_int #endif // np_int /*! \brief Get the real part of a complex number. * Loading
src/libnptm/Makefile +3 −3 Original line number Diff line number Diff line Loading @@ -19,11 +19,11 @@ endif include ../make.inc CXX_NPTM_OBJS=$(OBJDIR)/Commons.o $(OBJDIR)/Configuration.o $(OBJDIR)/file_io.o $(OBJDIR)/Parsers.o $(OBJDIR)/sph_subs.o $(OBJDIR)/clu_subs.o $(OBJDIR)/tfrfme.o $(OBJDIR)/tra_subs.o $(OBJDIR)/TransitionMatrix.o $(OBJDIR)/lapack_calls.o $(OBJDIR)/algebraic.o $(OBJDIR)/types.o $(OBJDIR)/logging.o CXX_NPTM_OBJS=$(OBJDIR)/Commons.o $(OBJDIR)/Configuration.o $(OBJDIR)/file_io.o $(OBJDIR)/Parsers.o $(OBJDIR)/sph_subs.o $(OBJDIR)/clu_subs.o $(OBJDIR)/tfrfme.o $(OBJDIR)/tra_subs.o $(OBJDIR)/TransitionMatrix.o $(OBJDIR)/lapack_calls.o $(OBJDIR)/magma_calls.o $(OBJDIR)/algebraic.o $(OBJDIR)/types.o $(OBJDIR)/logging.o CXX_NPTM_DYNOBJS=$(DYNOBJDIR)/Commons.o $(DYNOBJDIR)/Configuration.o $(DYNOBJDIR)/file_io.o $(DYNOBJDIR)/Parsers.o $(DYNOBJDIR)/sph_subs.o $(DYNOBJDIR)/clu_subs.o $(DYNOBJDIR)/tfrfme.o $(DYNOBJDIR)/tra_subs.o $(DYNOBJDIR)/TransitionMatrix.o $(DYNOBJDIR)/lapack_calls.o $(DYNOBJDIR)/algebraic.o $(DYNOBJDIR)/types.o $(DYNOBJDIR)/logging.o CXX_NPTM_DYNOBJS=$(DYNOBJDIR)/Commons.o $(DYNOBJDIR)/Configuration.o $(DYNOBJDIR)/file_io.o $(DYNOBJDIR)/Parsers.o $(DYNOBJDIR)/sph_subs.o $(DYNOBJDIR)/clu_subs.o $(DYNOBJDIR)/tfrfme.o $(DYNOBJDIR)/tra_subs.o $(DYNOBJDIR)/TransitionMatrix.o $(DYNOBJDIR)/lapack_calls.o $(DYNOBJDIR)/magma_calls.o $(DYNOBJDIR)/algebraic.o $(DYNOBJDIR)/types.o $(DYNOBJDIR)/logging.o CXX_NPTM_DEBUG=$(OBJDIR)/Commons.g* $(OBJDIR)/Configuration.g* $(OBJDIR)/file_io.g* $(OBJDIR)/Parsers.g* $(OBJDIR)/sph_subs.g* $(OBJDIR)/clu_subs.g* $(OBJDIR)/tfrfme.g* $(OBJDIR)/tra_subs.g* $(OBJDIR)/TransitionMatrix.g* $(OBJDIR)/lapack_calls.g* $(OBJDIR)/algebraic.g* $(OBJDIR)/types.g* $(OBJDIR)/logging.g* $(DYNOBJDIR)/Commons.g* $(DYNOBJDIR)/Configuration.g* $(DYNOBJDIR)/file_io.g* $(DYNOBJDIR)/Parsers.g* $(DYNOBJDIR)/sph_subs.g* $(DYNOBJDIR)/clu_subs.g* $(DYNOBJDIR)/tfrfme.g* $(DYNOBJDIR)/tra_subs.g* $(DYNOBJDIR)/TransitionMatrix.g* $(DYNOBJDIR)/lapack_calls.g* $(DYNOBJDIR)/algebraic.g* $(DYNOBJDIR)/types.g* $(DYNOBJDIR)/logging.g* CXX_NPTM_DEBUG=$(OBJDIR)/Commons.g* $(OBJDIR)/Configuration.g* $(OBJDIR)/file_io.g* $(OBJDIR)/Parsers.g* $(OBJDIR)/sph_subs.g* $(OBJDIR)/clu_subs.g* $(OBJDIR)/tfrfme.g* $(OBJDIR)/tra_subs.g* $(OBJDIR)/TransitionMatrix.g* $(OBJDIR)/lapack_calls.g* $(OBJDIR)/magma_calls.g* $(OBJDIR)/algebraic.g* $(OBJDIR)/types.g* $(OBJDIR)/logging.g* $(DYNOBJDIR)/Commons.g* $(DYNOBJDIR)/Configuration.g* $(DYNOBJDIR)/file_io.g* $(DYNOBJDIR)/Parsers.g* $(DYNOBJDIR)/sph_subs.g* $(DYNOBJDIR)/clu_subs.g* $(DYNOBJDIR)/tfrfme.g* $(DYNOBJDIR)/tra_subs.g* $(DYNOBJDIR)/TransitionMatrix.g* $(DYNOBJDIR)/lapack_calls.g* $(DYNOBJDIR)/magma_calls.g* $(DYNOBJDIR)/algebraic.g* $(DYNOBJDIR)/types.g* $(DYNOBJDIR)/logging.g* all: $(BUILDDIR_NPTM)/libnptm.a $(BUILDDIR_NPTM)/libnptm.so Loading
src/libnptm/algebraic.cpp +9 −1 Original line number Diff line number Diff line Loading @@ -14,6 +14,12 @@ #endif #endif #ifdef USE_MAGMA #ifndef INCLUDE_MAGMA_CALLS_H_ #include "../include/magma_calls.h" #endif #endif #ifndef INCLUDE_ALGEBRAIC_H_ #include "../include/algebraic.h" #endif Loading @@ -26,7 +32,9 @@ using namespace std; void invert_matrix(dcomplex **mat, np_int size, int &ier, np_int max_size) { ier = 0; #ifdef USE_LAPACK #ifdef USE_MAGMA magma_zinvert(mat, size, ier); #elif defined USE_LAPACK zinvert(mat, size, ier); #else lucin(mat, max_size, size, ier); Loading
src/libnptm/lapack_calls.cpp +3 −2 Original line number Diff line number Diff line Loading @@ -8,19 +8,20 @@ #include "../include/types.h" #endif /* #ifdef USE_LAPACK #ifdef USE_MKL #include <mkl_lapacke.h> #else #include <lapacke.h> #endif */ #ifdef USE_LAPACK #ifndef INCLUDE_LAPACK_CALLS_H_ #include "../include/lapack_calls.h" #endif #endif #ifdef USE_LAPACK void zinvert(dcomplex **mat, np_int n, int &jer) { jer = 0; dcomplex *arr = &(mat[0][0]); Loading