mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
Fix DLL builds and c++ lapack declarations.
This commit is contained in:
committed by
Rasmus Munk Larsen
parent
3abaabb999
commit
e1f1a608be
@@ -19,9 +19,10 @@ add_library(eigen_blas_static STATIC ${EigenBlas_SRCS})
|
||||
list(APPEND EIGEN_BLAS_TARGETS eigen_blas_static)
|
||||
|
||||
if (EIGEN_BUILD_SHARED_LIBS)
|
||||
add_library(eigen_blas SHARED ${EigenBlas_SRCS})
|
||||
add_library(eigen_blas SHARED ${EigenBlas_SRCS} "eigen_blas.def")
|
||||
target_compile_definitions(eigen_blas PUBLIC "EIGEN_BLAS_BUILD_DLL")
|
||||
set_target_properties(eigen_blas PROPERTIES CXX_VISIBILITY_PRESET hidden)
|
||||
list(APPEND EIGEN_BLAS_TARGETS eigen_blas)
|
||||
target_compile_definitions(eigen_blas PUBLIC "EIGEN_BUILD_DLL")
|
||||
endif()
|
||||
|
||||
foreach(target IN LISTS EIGEN_BLAS_TARGETS)
|
||||
|
||||
12
blas/blas.h
12
blas/blas.h
@@ -2,13 +2,15 @@
|
||||
#define BLAS_H
|
||||
|
||||
#if defined(_WIN32)
|
||||
#if defined(EIGEN_BUILD_DLL)
|
||||
#if defined(EIGEN_BLAS_BUILD_DLL)
|
||||
#define EIGEN_BLAS_API __declspec(dllexport)
|
||||
#elif defined(EIGEN_LINK_DLL)
|
||||
#elif defined(EIGEN_BLAS_LINK_DLL)
|
||||
#define EIGEN_BLAS_API __declspec(dllimport)
|
||||
#else
|
||||
#define EIGEN_BLAS_API
|
||||
#endif
|
||||
#elif ((defined(__GNUC__) && __GNUC__ >= 4) || defined(__clang__)) && defined(EIGEN_BLAS_BUILD_DLL)
|
||||
#define EIGEN_BLAS_API __attribute__((visibility("default")))
|
||||
#else
|
||||
#define EIGEN_BLAS_API
|
||||
#endif
|
||||
@@ -27,6 +29,7 @@ typedef long BLASLONG;
|
||||
typedef unsigned long BLASULONG;
|
||||
#endif
|
||||
|
||||
EIGEN_BLAS_API int BLASFUNC(lsame)(const char *, const char *);
|
||||
EIGEN_BLAS_API void BLASFUNC(xerbla)(const char *, int *info);
|
||||
|
||||
EIGEN_BLAS_API float BLASFUNC(sdot)(int *, float *, int *, float *, int *);
|
||||
@@ -36,6 +39,11 @@ EIGEN_BLAS_API double BLASFUNC(dsdot)(int *, float *, int *, float *, int *);
|
||||
EIGEN_BLAS_API double BLASFUNC(ddot)(int *, double *, int *, double *, int *);
|
||||
EIGEN_BLAS_API double BLASFUNC(qdot)(int *, double *, int *, double *, int *);
|
||||
|
||||
EIGEN_BLAS_API void BLASFUNC(cdotu)(int *, float *, int *, float *, int *);
|
||||
EIGEN_BLAS_API void BLASFUNC(cdotc)(int *, float *, int *, float *, int *);
|
||||
EIGEN_BLAS_API void BLASFUNC(zdotu)(int *, double *, int *, double *, int *);
|
||||
EIGEN_BLAS_API void BLASFUNC(zdotc)(int *, double *, int *, double *, int *);
|
||||
|
||||
EIGEN_BLAS_API void BLASFUNC(cdotuw)(int *, float *, int *, float *, int *, float *);
|
||||
EIGEN_BLAS_API void BLASFUNC(cdotcw)(int *, float *, int *, float *, int *, float *);
|
||||
EIGEN_BLAS_API void BLASFUNC(zdotuw)(int *, double *, int *, double *, int *, double *);
|
||||
|
||||
222
blas/eigen_blas.def
Normal file
222
blas/eigen_blas.def
Normal file
@@ -0,0 +1,222 @@
|
||||
; Definition file for eigen_blas.dll.
|
||||
|
||||
LIBRARY eigen_blas
|
||||
EXPORTS
|
||||
; Utilities
|
||||
lsame_
|
||||
xerbla_
|
||||
|
||||
; Level 1
|
||||
saxpy_
|
||||
daxpy_
|
||||
caxpy_
|
||||
zaxpy_
|
||||
; caxpyc_
|
||||
; zaxpyc_
|
||||
scopy_
|
||||
dcopy_
|
||||
ccopy_
|
||||
zcopy_
|
||||
sdot_
|
||||
sdsdot_
|
||||
dsdot_
|
||||
ddot_
|
||||
cdotc_
|
||||
zdotc_
|
||||
cdotu_
|
||||
zdotu_
|
||||
cdotcw_
|
||||
zdotcw_
|
||||
cdotuw_
|
||||
zdotuw_
|
||||
snrm2_
|
||||
dnrm2_
|
||||
scnrm2_
|
||||
dznrm2_
|
||||
srot_
|
||||
drot_
|
||||
csrot_
|
||||
zdrot_
|
||||
srotg_
|
||||
drotg_
|
||||
crotg_
|
||||
zrotg_
|
||||
srotm_
|
||||
drotm_
|
||||
srotmg_
|
||||
drotmg_
|
||||
sscal_
|
||||
dscal_
|
||||
cscal_
|
||||
zscal_
|
||||
csscal_
|
||||
zdscal_
|
||||
sswap_
|
||||
dswap_
|
||||
cswap_
|
||||
zswap_
|
||||
sasum_
|
||||
scasum_
|
||||
dasum_
|
||||
dzasum_
|
||||
; ismax_
|
||||
; idmax_
|
||||
; icmax_
|
||||
; izmax_
|
||||
isamax_
|
||||
idamax_
|
||||
icamax_
|
||||
izamax_
|
||||
isamin_
|
||||
idamin_
|
||||
icamin_
|
||||
izamin_
|
||||
; ismin_
|
||||
; idmin_
|
||||
; icmin_
|
||||
; izmin_
|
||||
; samax_
|
||||
; damax_
|
||||
; scamax_
|
||||
; dzamax_
|
||||
; samin_
|
||||
; damin_
|
||||
; scamin_
|
||||
; dzamin_
|
||||
; smax_
|
||||
; dmax_
|
||||
; cmax_
|
||||
; zmax_
|
||||
; smin_
|
||||
; dmin_
|
||||
; cmin_
|
||||
; zmin_
|
||||
|
||||
|
||||
; Level 2
|
||||
sgemv_
|
||||
dgemv_
|
||||
cgemv_
|
||||
zgemv_
|
||||
sger_
|
||||
dger_
|
||||
cgerc_
|
||||
zgerc_
|
||||
cgeru_
|
||||
zgeru_
|
||||
ssymv_
|
||||
dsymv_
|
||||
ssyr_
|
||||
dsyr_
|
||||
ssyr2_
|
||||
dsyr2_
|
||||
; csyr2_
|
||||
; zsyr2_
|
||||
strmv_
|
||||
dtrmv_
|
||||
ctrmv_
|
||||
ztrmv_
|
||||
strsv_
|
||||
dtrsv_
|
||||
ctrsv_
|
||||
ztrsv_
|
||||
stpsv_
|
||||
dtpsv_
|
||||
ctpsv_
|
||||
ztpsv_
|
||||
stpmv_
|
||||
dtpmv_
|
||||
ctpmv_
|
||||
ztpmv_
|
||||
stbmv_
|
||||
dtbmv_
|
||||
ctbmv_
|
||||
ztbmv_
|
||||
stbsv_
|
||||
dtbsv_
|
||||
ctbsv_
|
||||
ztbsv_
|
||||
sspmv_
|
||||
dspmv_
|
||||
sspr_
|
||||
dspr_
|
||||
; cspr_
|
||||
; zspr_
|
||||
sspr2_
|
||||
dspr2_
|
||||
; cspr2_
|
||||
; zspr2_
|
||||
cher_
|
||||
zher_
|
||||
chpr_
|
||||
zhpr_
|
||||
cher2_
|
||||
zher2_
|
||||
chpr2_
|
||||
zhpr2_
|
||||
chemv_
|
||||
zhemv_
|
||||
chpmv_
|
||||
zhpmv_
|
||||
; snorm_
|
||||
; dnorm_
|
||||
; cnorm_
|
||||
; znorm_
|
||||
sgbmv_
|
||||
dgbmv_
|
||||
cgbmv_
|
||||
zgbmv_
|
||||
ssbmv_
|
||||
dsbmv_
|
||||
; csbmv_
|
||||
; zsbmv_
|
||||
chbmv_
|
||||
zhbmv_
|
||||
|
||||
; Level 3 BLAS
|
||||
sgemm_
|
||||
dgemm_
|
||||
cgemm_
|
||||
zgemm_
|
||||
; cgemm3m_
|
||||
; zgemm3m_
|
||||
; sge2mm_
|
||||
; dge2mm_
|
||||
; cge2mm_
|
||||
; zge2mm_
|
||||
ssymm_
|
||||
dsymm_
|
||||
csymm_
|
||||
zsymm_
|
||||
; csymm3m_
|
||||
; zsymm3m_
|
||||
ssyrk_
|
||||
dsyrk_
|
||||
csyrk_
|
||||
zsyrk_
|
||||
ssyr2k_
|
||||
dsyr2k_
|
||||
csyr2k_
|
||||
zsyr2k_
|
||||
strmm_
|
||||
dtrmm_
|
||||
ctrmm_
|
||||
ztrmm_
|
||||
strsm_
|
||||
dtrsm_
|
||||
ctrsm_
|
||||
ztrsm_
|
||||
chemm_
|
||||
zhemm_
|
||||
; chemm3m_
|
||||
; zhemm3m_
|
||||
cherk_
|
||||
zherk_
|
||||
cher2k_
|
||||
zher2k_
|
||||
; cher2m_
|
||||
; zher2m_
|
||||
sgemmtr_
|
||||
dgemmtr_
|
||||
cgemmtr_
|
||||
zgemmtr_
|
||||
@@ -1,6 +1,8 @@
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include "blas.h"
|
||||
|
||||
#if (defined __GNUC__) && (!defined __MINGW32__) && (!defined __CYGWIN__)
|
||||
#define EIGEN_WEAK_LINKING __attribute__((weak))
|
||||
#else
|
||||
|
||||
Reference in New Issue
Block a user