Fixed #88. Build LAPACKE: C Interface to LAPACK.
authorZaheer Chothia <zaheer.chothia@gmail.com>
Sat, 7 Apr 2012 08:40:46 +0000 (10:40 +0200)
committerXianyi Zhang <xianyi@iscas.ac.cn>
Tue, 10 Apr 2012 08:19:55 +0000 (16:19 +0800)
Makefile
Makefile.install
Makefile.rule
Makefile.system
exports/Makefile
exports/gensymbol
patch.for_lapack-3.4.0

index afa8d2e..6f0a255 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -26,10 +26,10 @@ endif
 
 SUBDIRS_ALL = $(SUBDIRS) test ctest utest exports benchmark ../laswp ../bench
 
-.PHONY : all libs netlib test ctest shared install 
+.PHONY : all libs netlib lapacke test ctest shared install
 .NOTPARALLEL : all libs prof lapack-test install
 
-all :: libs netlib tests shared
+all :: libs netlib lapacke tests shared
        @echo
        @echo " OpenBLAS build complete."
        @echo
@@ -203,31 +203,54 @@ ifeq ($(NO_LAPACK), 1)
 netlib : 
 
 else
-netlib : lapack-3.4.0 patch.for_lapack-3.4.0 lapack-3.4.0/make.inc
+netlib : lapack-3.4.0 patch.for_lapack-3.4.0 $(NETLIB_LAPACK_DIR)/make.inc
 ifndef NOFORTRAN
-       -@$(MAKE) -C lapack-3.4.0 lapacklib
+       -@$(MAKE) -C $(NETLIB_LAPACK_DIR) lapacklib
 endif
 endif
 
-prof_lapack : lapack-3.4.0 lapack-3.4.0/make.inc
-       -@$(MAKE) -C lapack-3.4.0 lapack_prof
+ifeq ($(NO_LAPACKE), 1)
+lapacke :
 
-lapack-3.4.0/make.inc :
+else
+lapacke : lapack-3.4.0 $(NETLIB_LAPACK_DIR)/lapacke/make.inc
+ifndef NOFORTRAN
+       -@$(MAKE) -C $(NETLIB_LAPACK_DIR)/lapacke
+endif
+endif
+
+prof_lapack : lapack-3.4.0 $(NETLIB_LAPACK_DIR)/make.inc
+       -@$(MAKE) -C $(NETLIB_LAPACK_DIR) lapack_prof
+
+$(NETLIB_LAPACK_DIR)/make.inc :
+ifndef NOFORTRAN
+       -@echo "FORTRAN   = $(FC)" > $(NETLIB_LAPACK_DIR)/make.inc
+       -@echo "OPTS      = $(FFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
+       -@echo "POPTS     = $(FPFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
+       -@echo "NOOPT     = $(FFLAGS) -O0" >> $(NETLIB_LAPACK_DIR)/make.inc
+       -@echo "PNOOPT     = $(FPFLAGS) -O0" >> $(NETLIB_LAPACK_DIR)/make.inc
+       -@echo "LOADOPTS  = $(FFLAGS) $(EXTRALIB)" >> $(NETLIB_LAPACK_DIR)/make.inc
+       -@echo "ARCH      = $(AR)" >> $(NETLIB_LAPACK_DIR)/make.inc
+       -@echo "RANLIB    = $(RANLIB)" >> $(NETLIB_LAPACK_DIR)/make.inc
+       -@echo "LAPACKLIB = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc
+       -@echo "LAPACKLIB_P = ../$(LIBNAME_P)" >> $(NETLIB_LAPACK_DIR)/make.inc
+       -@echo "SUFFIX     = $(SUFFIX)" >> $(NETLIB_LAPACK_DIR)/make.inc
+       -@echo "PSUFFIX    = $(PSUFFIX)" >> $(NETLIB_LAPACK_DIR)/make.inc
+#      -@echo "CEXTRALIB  = $(CEXTRALIB)" >> $(NETLIB_LAPACK_DIR)/make.inc
+       -@cat  make.inc >> $(NETLIB_LAPACK_DIR)/make.inc
+endif
+
+$(NETLIB_LAPACK_DIR)/lapacke/make.inc :
 ifndef NOFORTRAN
-       -@echo "FORTRAN   = $(FC)" > lapack-3.4.0/make.inc
-       -@echo "OPTS      = $(FFLAGS)" >> lapack-3.4.0/make.inc
-       -@echo "POPTS     = $(FPFLAGS)" >> lapack-3.4.0/make.inc
-       -@echo "NOOPT     = $(FFLAGS) -O0" >> lapack-3.4.0/make.inc
-       -@echo "PNOOPT     = $(FPFLAGS) -O0" >> lapack-3.4.0/make.inc
-       -@echo "LOADOPTS  = $(FFLAGS) $(EXTRALIB)" >> lapack-3.4.0/make.inc
-       -@echo "ARCH      = $(AR)" >> lapack-3.4.0/make.inc
-       -@echo "RANLIB    = $(RANLIB)" >> lapack-3.4.0/make.inc
-       -@echo "LAPACKLIB = ../$(LIBNAME)" >> lapack-3.4.0/make.inc
-       -@echo "LAPACKLIB_P = ../$(LIBNAME_P)" >> lapack-3.4.0/make.inc
-       -@echo "SUFFIX     = $(SUFFIX)" >> lapack-3.4.0/make.inc
-       -@echo "PSUFFIX    = $(PSUFFIX)" >> lapack-3.4.0/make.inc
-#      -@echo "CEXTRALIB  = $(CEXTRALIB)" >> lapack-3.4.0/make.inc
-       -@cat  make.inc >> lapack-3.4.0/make.inc
+       -@echo "CC        = $(CC)" > $(NETLIB_LAPACK_DIR)/lapacke/make.inc
+       -@echo "CFLAGS    = $(CFLAGS)" >> $(NETLIB_LAPACK_DIR)/lapacke/make.inc
+       -@echo "LINKER    = $(FC)" >> $(NETLIB_LAPACK_DIR)/lapacke/make.inc
+       -@echo "LDFLAGS   = $(FFLAGS) $(EXTRALIB)" >> $(NETLIB_LAPACK_DIR)/lapacke/make.inc
+       -@echo "LAPACKE   = ../../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/lapacke/make.inc
+       -@echo "LIBS      = $(EXTRALIB)" >> $(NETLIB_LAPACK_DIR)/lapacke/make.inc
+       -@echo "ARCH      = $(AR)" >> $(NETLIB_LAPACK_DIR)/lapacke/make.inc
+       -@echo "ARCHFLAGS = -ru" >> $(NETLIB_LAPACK_DIR)/lapacke/make.inc
+       -@echo "RANLIB    = $(RANLIB)" >> $(NETLIB_LAPACK_DIR)/lapacke/make.inc
 endif
 
 lapack-3.4.0 : lapack-3.4.0.tgz
@@ -235,9 +258,9 @@ ifndef NOFORTRAN
 ifndef NO_LAPACK
        @if test `$(MD5SUM) lapack-3.4.0.tgz | $(AWK) '{print $$1}'` = 02d5706ec03ba885fc246e5fa10d8c70; then \
                echo $(TAR) zxf $< ;\
-               $(TAR) zxf $< && (cd lapack-3.4.0; $(PATCH) -p1 < ../patch.for_lapack-3.4.0) ;\
+               $(TAR) zxf $< && (cd $(NETLIB_LAPACK_DIR); $(PATCH) -p1 < ../patch.for_lapack-3.4.0) ;\
        else \
-               rm -rf lapack-3.4.0 ;\
+               rm -rf $(NETLIB_LAPACK_DIR) ;\
                echo "  Cannot download lapack-3.4.0.tgz or the MD5 check sum is wrong (Please use orignal)."; \
                exit 1; \
        fi
@@ -267,19 +290,19 @@ endif
 
 lapack-timing : lapack-3.4.0 large.tgz timing.tgz
 ifndef NOFORTRAN
-       (cd lapack-3.4.0; $(TAR) zxf ../timing.tgz TIMING)
-       (cd lapack-3.4.0/TIMING; $(TAR) zxf ../../large.tgz )
-       make -C lapack-3.4.0 tmglib
-       make -C lapack-3.4.0/TIMING
+       (cd $(NETLIB_LAPACK_DIR); $(TAR) zxf ../timing.tgz TIMING)
+       (cd $(NETLIB_LAPACK_DIR)/TIMING; $(TAR) zxf ../../large.tgz )
+       make -C $(NETLIB_LAPACK_DIR) tmglib
+       make -C $(NETLIB_LAPACK_DIR)/TIMING
 endif
 
 
 lapack-test :
-       $(MAKE) -C lapack-3.4.0 tmglib
-       $(MAKE) -C lapack-3.4.0/TESTING xeigtstc xeigtstd xeigtsts xeigtstz xlintstc xlintstd xlintstds xlintsts xlintstz xlintstzc
-       @rm     -f lapack-3.4.0/TESTING/*.out
-       $(MAKE) -j 1 -C lapack-3.4.0/TESTING
-       $(GREP) failed lapack-3.4.0/TESTING/*.out
+       $(MAKE) -C $(NETLIB_LAPACK_DIR) tmglib
+       $(MAKE) -C $(NETLIB_LAPACK_DIR)/TESTING xeigtstc xeigtstd xeigtsts xeigtstz xlintstc xlintstd xlintstds xlintsts xlintstz xlintstzc
+       @rm     -f $(NETLIB_LAPACK_DIR)/TESTING/*.out
+       $(MAKE) -j 1 -C $(NETLIB_LAPACK_DIR)/TESTING
+       $(GREP) failed $(NETLIB_LAPACK_DIR)/TESTING/*.out
 
 dummy :
 
@@ -298,9 +321,9 @@ clean ::
        @$(MAKE) -C reference clean
        @rm -f *.$(LIBSUFFIX) *.so *~ *.exe getarch getarch_2nd *.dll *.lib *.$(SUFFIX) *.dwf $(LIBPREFIX).$(LIBSUFFIX) $(LIBPREFIX)_p.$(LIBSUFFIX) $(LIBPREFIX).so.$(MAJOR_VERSION) *.lnk myconfig.h
        @rm -f Makefile.conf config.h Makefile_kernel.conf config_kernel.h st* *.dylib
-       @if test -d lapack-3.4.0; then \
-       echo deleting lapack-3.4.0; \
-       rm -rf lapack-3.4.0 ;\
+       @if test -d $(NETLIB_LAPACK_DIR); then \
+       echo deleting $(NETLIB_LAPACK_DIR); \
+       rm -rf $(NETLIB_LAPACK_DIR) ;\
        fi
        @rm -f *.grd Makefile.conf_last config_last.h
        @echo Done.
\ No newline at end of file
index 46105fc..2ba10d0 100644 (file)
@@ -35,6 +35,13 @@ install :    lib.grd
        @echo Generating cblas.h in $(OPENBLAS_INCLUDE_DIR)
        @sed 's/common/openblas_config/g' cblas.h > $(OPENBLAS_INCLUDE_DIR)/cblas.h
 
+ifndef NO_LAPACKE
+       @echo Copying LAPACKE header files to $(OPENBLAS_LIBRARY_DIR)
+       @cp $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke.h $(OPENBLAS_INCLUDE_DIR)/lapacke.h
+       @cp $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke_config.h $(OPENBLAS_INCLUDE_DIR)/lapacke_config.h
+       @cp $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke_utils.h $(OPENBLAS_INCLUDE_DIR)/lapacke_utils.h
+endif
+
 #for install static library 
        @echo Copy the static library to $(OPENBLAS_LIBRARY_DIR)
        @cp $(LIBNAME) $(OPENBLAS_LIBRARY_DIR)
index 650478a..843888b 100644 (file)
@@ -51,6 +51,9 @@ VERSION = 0.1.0
 # If you don't need LAPACK, please comment it in.
 # NO_LAPACK = 1
 
+# If you don't need LAPACKE (C Interface to LAPACK), please comment it in.
+# NO_LAPACKE = 1
+
 # If you want to use legacy threaded Level 3 implementation.
 # USE_SIMPLE_THREADED_LEVEL3 = 1
 
index bbd31e5..bc5b20d 100644 (file)
@@ -9,6 +9,10 @@ ifndef TOPDIR
 TOPDIR = .
 endif
 
+ifndef NETLIB_LAPACK_DIR
+NETLIB_LAPACK_DIR = $(TOPDIR)/lapack-3.4.0
+endif
+
 # Default C compiler
 CC = gcc
 
@@ -536,6 +540,10 @@ ifeq ($(NO_LAPACK), 1)
 CCOMMON_OPT    += -DNO_LAPACK
 endif
 
+ifeq ($(NO_LAPACKE), 1)
+CCOMMON_OPT    += -DNO_LAPACKE
+endif
+
 ifdef SMP
 CCOMMON_OPT    += -DSMP_SERVER
 
index 873e8b2..c4d2abd 100644 (file)
@@ -76,13 +76,13 @@ libgoto2_shared.dll : ../$(LIBNAME) libgoto2_shared.def
        -Wl,--out-implib,libgoto2_shared.lib $(FEXTRALIB)
 
 libopenblas.def : gensymbol
-       perl ./gensymbol win2k    $(ARCH) dummy $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) > $(@F)
+       perl ./gensymbol win2k    $(ARCH) dummy $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) > $(@F)
 
 libgoto2_shared.def : gensymbol
-       perl ./gensymbol win2k    $(ARCH) dummy $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK)  > $(@F)
+       perl ./gensymbol win2k    $(ARCH) dummy $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) > $(@F)
 
 libgoto_hpl.def : gensymbol
-       perl ./gensymbol win2khpl $(ARCH) dummy $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK)  > $(@F)
+       perl ./gensymbol win2khpl $(ARCH) dummy $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) > $(@F)
 
 $(LIBDYNNAME) : ../$(LIBNAME) osx.def
        $(CC) $(CFLAGS) -all_load -headerpad_max_install_names -install_name $(CURDIR)/../$(LIBDYNNAME) -dynamiclib -o ../$(LIBDYNNAME) $< -Wl,-exported_symbols_list,osx.def  $(FEXTRALIB)
@@ -163,23 +163,23 @@ static : ../$(LIBNAME)
        rm -f goto.$(SUFFIX)
 
 linux.def : gensymbol ../Makefile.system ../getarch.c
-       perl ./gensymbol linux $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS)  $(NO_LAPACK) > $(@F)
+       perl ./gensymbol linux $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS)  $(NO_LAPACK) $(NO_LAPACKE) > $(@F)
 
 osx.def : gensymbol ../Makefile.system ../getarch.c
-       perl ./gensymbol osx $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS)  $(NO_LAPACK) > $(@F)
+       perl ./gensymbol osx $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS)  $(NO_LAPACK) $(NO_LAPACKE) > $(@F)
 
 aix.def : gensymbol ../Makefile.system ../getarch.c
-       perl ./gensymbol aix $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS)  $(NO_LAPACK) > $(@F)
+       perl ./gensymbol aix $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS)  $(NO_LAPACK) $(NO_LAPACKE) > $(@F)
 
 symbol.S : gensymbol
-       perl ./gensymbol win2kasm noarch dummy $(EXPRECISION) $(NO_CBLAS)  $(NO_LAPACK) > symbol.S
+       perl ./gensymbol win2kasm noarch dummy $(EXPRECISION) $(NO_CBLAS)  $(NO_LAPACK) $(NO_LAPACKE) > symbol.S
 
 test : linktest.c
        $(CC) $(CFLAGS) -w -o linktest linktest.c ../$(LIBSONAME) -lm && echo OK.
        rm -f linktest
 
 linktest.c : gensymbol ../Makefile.system ../getarch.c
-       perl ./gensymbol linktest  $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) > linktest.c
+       perl ./gensymbol linktest  $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) > linktest.c
 
 clean ::
        @rm -f *.def *.dylib __.SYMDEF*
index edf4632..626827e 100644 (file)
                ztpqrt, ztpqrt2, ztpmqrt, ztprfb,
                );
 
+@lapackeobjs = (
+               lapack_make_complex_double,
+               lapack_make_complex_float,
+               LAPACKE_c_nancheck,
+               LAPACKE_cbbcsd,
+               LAPACKE_cbbcsd_work,
+               LAPACKE_cbdsqr,
+               LAPACKE_cbdsqr_work,
+               LAPACKE_cgb_nancheck,
+               LAPACKE_cgb_trans,
+               LAPACKE_cgbbrd,
+               LAPACKE_cgbbrd_work,
+               LAPACKE_cgbcon,
+               LAPACKE_cgbcon_work,
+               LAPACKE_cgbequ,
+               LAPACKE_cgbequ_work,
+               LAPACKE_cgbequb,
+               LAPACKE_cgbequb_work,
+               LAPACKE_cgbrfs,
+               LAPACKE_cgbrfs_work,
+               LAPACKE_cgbsv,
+               LAPACKE_cgbsv_work,
+               LAPACKE_cgbsvx,
+               LAPACKE_cgbsvx_work,
+               LAPACKE_cgbtrf,
+               LAPACKE_cgbtrf_work,
+               LAPACKE_cgbtrs,
+               LAPACKE_cgbtrs_work,
+               LAPACKE_cge_nancheck,
+               LAPACKE_cge_trans,
+               LAPACKE_cgebak,
+               LAPACKE_cgebak_work,
+               LAPACKE_cgebal,
+               LAPACKE_cgebal_work,
+               LAPACKE_cgebrd,
+               LAPACKE_cgebrd_work,
+               LAPACKE_cgecon,
+               LAPACKE_cgecon_work,
+               LAPACKE_cgeequ,
+               LAPACKE_cgeequ_work,
+               LAPACKE_cgeequb,
+               LAPACKE_cgeequb_work,
+               LAPACKE_cgees,
+               LAPACKE_cgees_work,
+               LAPACKE_cgeesx,
+               LAPACKE_cgeesx_work,
+               LAPACKE_cgeev,
+               LAPACKE_cgeev_work,
+               LAPACKE_cgeevx,
+               LAPACKE_cgeevx_work,
+               LAPACKE_cgehrd,
+               LAPACKE_cgehrd_work,
+               LAPACKE_cgelq2,
+               LAPACKE_cgelq2_work,
+               LAPACKE_cgelqf,
+               LAPACKE_cgelqf_work,
+               LAPACKE_cgels,
+               LAPACKE_cgels_work,
+               LAPACKE_cgelsd,
+               LAPACKE_cgelsd_work,
+               LAPACKE_cgelss,
+               LAPACKE_cgelss_work,
+               LAPACKE_cgelsy,
+               LAPACKE_cgelsy_work,
+               LAPACKE_cgemqrt,
+               LAPACKE_cgemqrt_work,
+               LAPACKE_cgeqlf,
+               LAPACKE_cgeqlf_work,
+               LAPACKE_cgeqp3,
+               LAPACKE_cgeqp3_work,
+               LAPACKE_cgeqpf,
+               LAPACKE_cgeqpf_work,
+               LAPACKE_cgeqr2,
+               LAPACKE_cgeqr2_work,
+               LAPACKE_cgeqrf,
+               LAPACKE_cgeqrf_work,
+               LAPACKE_cgeqrfp,
+               LAPACKE_cgeqrfp_work,
+               LAPACKE_cgeqrt,
+               LAPACKE_cgeqrt2,
+               LAPACKE_cgeqrt2_work,
+               LAPACKE_cgeqrt3,
+               LAPACKE_cgeqrt3_work,
+               LAPACKE_cgeqrt_work,
+               LAPACKE_cgerfs,
+               LAPACKE_cgerfs_work,
+               LAPACKE_cgerqf,
+               LAPACKE_cgerqf_work,
+               LAPACKE_cgesdd,
+               LAPACKE_cgesdd_work,
+               LAPACKE_cgesv,
+               LAPACKE_cgesv_work,
+               LAPACKE_cgesvd,
+               LAPACKE_cgesvd_work,
+               LAPACKE_cgesvx,
+               LAPACKE_cgesvx_work,
+               LAPACKE_cgetf2,
+               LAPACKE_cgetf2_work,
+               LAPACKE_cgetrf,
+               LAPACKE_cgetrf_work,
+               LAPACKE_cgetri,
+               LAPACKE_cgetri_work,
+               LAPACKE_cgetrs,
+               LAPACKE_cgetrs_work,
+               LAPACKE_cgg_nancheck,
+               LAPACKE_cgg_trans,
+               LAPACKE_cggbak,
+               LAPACKE_cggbak_work,
+               LAPACKE_cggbal,
+               LAPACKE_cggbal_work,
+               LAPACKE_cgges,
+               LAPACKE_cgges_work,
+               LAPACKE_cggesx,
+               LAPACKE_cggesx_work,
+               LAPACKE_cggev,
+               LAPACKE_cggev_work,
+               LAPACKE_cggevx,
+               LAPACKE_cggevx_work,
+               LAPACKE_cggglm,
+               LAPACKE_cggglm_work,
+               LAPACKE_cgghrd,
+               LAPACKE_cgghrd_work,
+               LAPACKE_cgglse,
+               LAPACKE_cgglse_work,
+               LAPACKE_cggqrf,
+               LAPACKE_cggqrf_work,
+               LAPACKE_cggrqf,
+               LAPACKE_cggrqf_work,
+               LAPACKE_cggsvd,
+               LAPACKE_cggsvd_work,
+               LAPACKE_cggsvp,
+               LAPACKE_cggsvp_work,
+               LAPACKE_cgt_nancheck,
+               LAPACKE_cgtcon,
+               LAPACKE_cgtcon_work,
+               LAPACKE_cgtrfs,
+               LAPACKE_cgtrfs_work,
+               LAPACKE_cgtsv,
+               LAPACKE_cgtsv_work,
+               LAPACKE_cgtsvx,
+               LAPACKE_cgtsvx_work,
+               LAPACKE_cgttrf,
+               LAPACKE_cgttrf_work,
+               LAPACKE_cgttrs,
+               LAPACKE_cgttrs_work,
+               LAPACKE_chb_nancheck,
+               LAPACKE_chb_trans,
+               LAPACKE_chbev,
+               LAPACKE_chbev_work,
+               LAPACKE_chbevd,
+               LAPACKE_chbevd_work,
+               LAPACKE_chbevx,
+               LAPACKE_chbevx_work,
+               LAPACKE_chbgst,
+               LAPACKE_chbgst_work,
+               LAPACKE_chbgv,
+               LAPACKE_chbgv_work,
+               LAPACKE_chbgvd,
+               LAPACKE_chbgvd_work,
+               LAPACKE_chbgvx,
+               LAPACKE_chbgvx_work,
+               LAPACKE_chbtrd,
+               LAPACKE_chbtrd_work,
+               LAPACKE_che_nancheck,
+               LAPACKE_che_trans,
+               LAPACKE_checon,
+               LAPACKE_checon_work,
+               LAPACKE_cheequb,
+               LAPACKE_cheequb_work,
+               LAPACKE_cheev,
+               LAPACKE_cheev_work,
+               LAPACKE_cheevd,
+               LAPACKE_cheevd_work,
+               LAPACKE_cheevr,
+               LAPACKE_cheevr_work,
+               LAPACKE_cheevx,
+               LAPACKE_cheevx_work,
+               LAPACKE_chegst,
+               LAPACKE_chegst_work,
+               LAPACKE_chegv,
+               LAPACKE_chegv_work,
+               LAPACKE_chegvd,
+               LAPACKE_chegvd_work,
+               LAPACKE_chegvx,
+               LAPACKE_chegvx_work,
+               LAPACKE_cherfs,
+               LAPACKE_cherfs_work,
+               LAPACKE_chesv,
+               LAPACKE_chesv_work,
+               LAPACKE_chesvx,
+               LAPACKE_chesvx_work,
+               LAPACKE_cheswapr,
+               LAPACKE_cheswapr_work,
+               LAPACKE_chetrd,
+               LAPACKE_chetrd_work,
+               LAPACKE_chetrf,
+               LAPACKE_chetrf_work,
+               LAPACKE_chetri,
+               LAPACKE_chetri2,
+               LAPACKE_chetri2_work,
+               LAPACKE_chetri2x,
+               LAPACKE_chetri2x_work,
+               LAPACKE_chetri_work,
+               LAPACKE_chetrs,
+               LAPACKE_chetrs2,
+               LAPACKE_chetrs2_work,
+               LAPACKE_chetrs_work,
+               LAPACKE_chfrk,
+               LAPACKE_chfrk_work,
+               LAPACKE_chgeqz,
+               LAPACKE_chgeqz_work,
+               LAPACKE_chp_nancheck,
+               LAPACKE_chp_trans,
+               LAPACKE_chpcon,
+               LAPACKE_chpcon_work,
+               LAPACKE_chpev,
+               LAPACKE_chpev_work,
+               LAPACKE_chpevd,
+               LAPACKE_chpevd_work,
+               LAPACKE_chpevx,
+               LAPACKE_chpevx_work,
+               LAPACKE_chpgst,
+               LAPACKE_chpgst_work,
+               LAPACKE_chpgv,
+               LAPACKE_chpgv_work,
+               LAPACKE_chpgvd,
+               LAPACKE_chpgvd_work,
+               LAPACKE_chpgvx,
+               LAPACKE_chpgvx_work,
+               LAPACKE_chprfs,
+               LAPACKE_chprfs_work,
+               LAPACKE_chpsv,
+               LAPACKE_chpsv_work,
+               LAPACKE_chpsvx,
+               LAPACKE_chpsvx_work,
+               LAPACKE_chptrd,
+               LAPACKE_chptrd_work,
+               LAPACKE_chptrf,
+               LAPACKE_chptrf_work,
+               LAPACKE_chptri,
+               LAPACKE_chptri_work,
+               LAPACKE_chptrs,
+               LAPACKE_chptrs_work,
+               LAPACKE_chs_nancheck,
+               LAPACKE_chs_trans,
+               LAPACKE_chsein,
+               LAPACKE_chsein_work,
+               LAPACKE_chseqr,
+               LAPACKE_chseqr_work,
+               LAPACKE_clacgv,
+               LAPACKE_clacgv_work,
+               LAPACKE_clacpy,
+               LAPACKE_clacpy_work,
+               LAPACKE_clag2z,
+               LAPACKE_clag2z_work,
+               LAPACKE_clange,
+               LAPACKE_clange_work,
+               LAPACKE_clanhe,
+               LAPACKE_clanhe_work,
+               LAPACKE_clansy,
+               LAPACKE_clansy_work,
+               LAPACKE_clantr,
+               LAPACKE_clantr_work,
+               LAPACKE_clapmr,
+               LAPACKE_clapmr_work,
+               LAPACKE_clarfb,
+               LAPACKE_clarfb_work,
+               LAPACKE_clarfg,
+               LAPACKE_clarfg_work,
+               LAPACKE_clarft,
+               LAPACKE_clarft_work,
+               LAPACKE_clarfx,
+               LAPACKE_clarfx_work,
+               LAPACKE_clarnv,
+               LAPACKE_clarnv_work,
+               LAPACKE_claset,
+               LAPACKE_claset_work,
+               LAPACKE_claswp,
+               LAPACKE_claswp_work,
+               LAPACKE_clauum,
+               LAPACKE_clauum_work,
+               LAPACKE_cpb_nancheck,
+               LAPACKE_cpb_trans,
+               LAPACKE_cpbcon,
+               LAPACKE_cpbcon_work,
+               LAPACKE_cpbequ,
+               LAPACKE_cpbequ_work,
+               LAPACKE_cpbrfs,
+               LAPACKE_cpbrfs_work,
+               LAPACKE_cpbstf,
+               LAPACKE_cpbstf_work,
+               LAPACKE_cpbsv,
+               LAPACKE_cpbsv_work,
+               LAPACKE_cpbsvx,
+               LAPACKE_cpbsvx_work,
+               LAPACKE_cpbtrf,
+               LAPACKE_cpbtrf_work,
+               LAPACKE_cpbtrs,
+               LAPACKE_cpbtrs_work,
+               LAPACKE_cpf_nancheck,
+               LAPACKE_cpf_trans,
+               LAPACKE_cpftrf,
+               LAPACKE_cpftrf_work,
+               LAPACKE_cpftri,
+               LAPACKE_cpftri_work,
+               LAPACKE_cpftrs,
+               LAPACKE_cpftrs_work,
+               LAPACKE_cpo_nancheck,
+               LAPACKE_cpo_trans,
+               LAPACKE_cpocon,
+               LAPACKE_cpocon_work,
+               LAPACKE_cpoequ,
+               LAPACKE_cpoequ_work,
+               LAPACKE_cpoequb,
+               LAPACKE_cpoequb_work,
+               LAPACKE_cporfs,
+               LAPACKE_cporfs_work,
+               LAPACKE_cposv,
+               LAPACKE_cposv_work,
+               LAPACKE_cposvx,
+               LAPACKE_cposvx_work,
+               LAPACKE_cpotrf,
+               LAPACKE_cpotrf_work,
+               LAPACKE_cpotri,
+               LAPACKE_cpotri_work,
+               LAPACKE_cpotrs,
+               LAPACKE_cpotrs_work,
+               LAPACKE_cpp_nancheck,
+               LAPACKE_cpp_trans,
+               LAPACKE_cppcon,
+               LAPACKE_cppcon_work,
+               LAPACKE_cppequ,
+               LAPACKE_cppequ_work,
+               LAPACKE_cpprfs,
+               LAPACKE_cpprfs_work,
+               LAPACKE_cppsv,
+               LAPACKE_cppsv_work,
+               LAPACKE_cppsvx,
+               LAPACKE_cppsvx_work,
+               LAPACKE_cpptrf,
+               LAPACKE_cpptrf_work,
+               LAPACKE_cpptri,
+               LAPACKE_cpptri_work,
+               LAPACKE_cpptrs,
+               LAPACKE_cpptrs_work,
+               LAPACKE_cpstrf,
+               LAPACKE_cpstrf_work,
+               LAPACKE_cpt_nancheck,
+               LAPACKE_cptcon,
+               LAPACKE_cptcon_work,
+               LAPACKE_cpteqr,
+               LAPACKE_cpteqr_work,
+               LAPACKE_cptrfs,
+               LAPACKE_cptrfs_work,
+               LAPACKE_cptsv,
+               LAPACKE_cptsv_work,
+               LAPACKE_cptsvx,
+               LAPACKE_cptsvx_work,
+               LAPACKE_cpttrf,
+               LAPACKE_cpttrf_work,
+               LAPACKE_cpttrs,
+               LAPACKE_cpttrs_work,
+               LAPACKE_csp_nancheck,
+               LAPACKE_csp_trans,
+               LAPACKE_cspcon,
+               LAPACKE_cspcon_work,
+               LAPACKE_csprfs,
+               LAPACKE_csprfs_work,
+               LAPACKE_cspsv,
+               LAPACKE_cspsv_work,
+               LAPACKE_cspsvx,
+               LAPACKE_cspsvx_work,
+               LAPACKE_csptrf,
+               LAPACKE_csptrf_work,
+               LAPACKE_csptri,
+               LAPACKE_csptri_work,
+               LAPACKE_csptrs,
+               LAPACKE_csptrs_work,
+               LAPACKE_cst_nancheck,
+               LAPACKE_cstedc,
+               LAPACKE_cstedc_work,
+               LAPACKE_cstegr,
+               LAPACKE_cstegr_work,
+               LAPACKE_cstein,
+               LAPACKE_cstein_work,
+               LAPACKE_cstemr,
+               LAPACKE_cstemr_work,
+               LAPACKE_csteqr,
+               LAPACKE_csteqr_work,
+               LAPACKE_csy_nancheck,
+               LAPACKE_csy_trans,
+               LAPACKE_csycon,
+               LAPACKE_csycon_work,
+               LAPACKE_csyconv,
+               LAPACKE_csyconv_work,
+               LAPACKE_csyequb,
+               LAPACKE_csyequb_work,
+               LAPACKE_csyrfs,
+               LAPACKE_csyrfs_work,
+               LAPACKE_csysv,
+               LAPACKE_csysv_work,
+               LAPACKE_csysvx,
+               LAPACKE_csysvx_work,
+               LAPACKE_csyswapr,
+               LAPACKE_csyswapr_work,
+               LAPACKE_csytrf,
+               LAPACKE_csytrf_work,
+               LAPACKE_csytri,
+               LAPACKE_csytri2,
+               LAPACKE_csytri2_work,
+               LAPACKE_csytri2x,
+               LAPACKE_csytri2x_work,
+               LAPACKE_csytri_work,
+               LAPACKE_csytrs,
+               LAPACKE_csytrs2,
+               LAPACKE_csytrs2_work,
+               LAPACKE_csytrs_work,
+               LAPACKE_ctb_nancheck,
+               LAPACKE_ctb_trans,
+               LAPACKE_ctbcon,
+               LAPACKE_ctbcon_work,
+               LAPACKE_ctbrfs,
+               LAPACKE_ctbrfs_work,
+               LAPACKE_ctbtrs,
+               LAPACKE_ctbtrs_work,
+               LAPACKE_ctf_nancheck,
+               LAPACKE_ctf_trans,
+               LAPACKE_ctfsm,
+               LAPACKE_ctfsm_work,
+               LAPACKE_ctftri,
+               LAPACKE_ctftri_work,
+               LAPACKE_ctfttp,
+               LAPACKE_ctfttp_work,
+               LAPACKE_ctfttr,
+               LAPACKE_ctfttr_work,
+               LAPACKE_ctgevc,
+               LAPACKE_ctgevc_work,
+               LAPACKE_ctgexc,
+               LAPACKE_ctgexc_work,
+               LAPACKE_ctgsen,
+               LAPACKE_ctgsen_work,
+               LAPACKE_ctgsja,
+               LAPACKE_ctgsja_work,
+               LAPACKE_ctgsna,
+               LAPACKE_ctgsna_work,
+               LAPACKE_ctgsyl,
+               LAPACKE_ctgsyl_work,
+               LAPACKE_ctp_nancheck,
+               LAPACKE_ctp_trans,
+               LAPACKE_ctpcon,
+               LAPACKE_ctpcon_work,
+               LAPACKE_ctpmqrt,
+               LAPACKE_ctpmqrt_work,
+               LAPACKE_ctpqrt,
+               LAPACKE_ctpqrt2,
+               LAPACKE_ctpqrt2_work,
+               LAPACKE_ctpqrt_work,
+               LAPACKE_ctprfb,
+               LAPACKE_ctprfb_work,
+               LAPACKE_ctprfs,
+               LAPACKE_ctprfs_work,
+               LAPACKE_ctptri,
+               LAPACKE_ctptri_work,
+               LAPACKE_ctptrs,
+               LAPACKE_ctptrs_work,
+               LAPACKE_ctpttf,
+               LAPACKE_ctpttf_work,
+               LAPACKE_ctpttr,
+               LAPACKE_ctpttr_work,
+               LAPACKE_ctr_nancheck,
+               LAPACKE_ctr_trans,
+               LAPACKE_ctrcon,
+               LAPACKE_ctrcon_work,
+               LAPACKE_ctrevc,
+               LAPACKE_ctrevc_work,
+               LAPACKE_ctrexc,
+               LAPACKE_ctrexc_work,
+               LAPACKE_ctrrfs,
+               LAPACKE_ctrrfs_work,
+               LAPACKE_ctrsen,
+               LAPACKE_ctrsen_work,
+               LAPACKE_ctrsna,
+               LAPACKE_ctrsna_work,
+               LAPACKE_ctrsyl,
+               LAPACKE_ctrsyl_work,
+               LAPACKE_ctrtri,
+               LAPACKE_ctrtri_work,
+               LAPACKE_ctrtrs,
+               LAPACKE_ctrtrs_work,
+               LAPACKE_ctrttf,
+               LAPACKE_ctrttf_work,
+               LAPACKE_ctrttp,
+               LAPACKE_ctrttp_work,
+               LAPACKE_ctzrzf,
+               LAPACKE_ctzrzf_work,
+               LAPACKE_cunbdb,
+               LAPACKE_cunbdb_work,
+               LAPACKE_cuncsd,
+               LAPACKE_cuncsd_work,
+               LAPACKE_cungbr,
+               LAPACKE_cungbr_work,
+               LAPACKE_cunghr,
+               LAPACKE_cunghr_work,
+               LAPACKE_cunglq,
+               LAPACKE_cunglq_work,
+               LAPACKE_cungql,
+               LAPACKE_cungql_work,
+               LAPACKE_cungqr,
+               LAPACKE_cungqr_work,
+               LAPACKE_cungrq,
+               LAPACKE_cungrq_work,
+               LAPACKE_cungtr,
+               LAPACKE_cungtr_work,
+               LAPACKE_cunmbr,
+               LAPACKE_cunmbr_work,
+               LAPACKE_cunmhr,
+               LAPACKE_cunmhr_work,
+               LAPACKE_cunmlq,
+               LAPACKE_cunmlq_work,
+               LAPACKE_cunmql,
+               LAPACKE_cunmql_work,
+               LAPACKE_cunmqr,
+               LAPACKE_cunmqr_work,
+               LAPACKE_cunmrq,
+               LAPACKE_cunmrq_work,
+               LAPACKE_cunmrz,
+               LAPACKE_cunmrz_work,
+               LAPACKE_cunmtr,
+               LAPACKE_cunmtr_work,
+               LAPACKE_cupgtr,
+               LAPACKE_cupgtr_work,
+               LAPACKE_cupmtr,
+               LAPACKE_cupmtr_work,
+               LAPACKE_d_nancheck,
+               LAPACKE_dbbcsd,
+               LAPACKE_dbbcsd_work,
+               LAPACKE_dbdsdc,
+               LAPACKE_dbdsdc_work,
+               LAPACKE_dbdsqr,
+               LAPACKE_dbdsqr_work,
+               LAPACKE_ddisna,
+               LAPACKE_ddisna_work,
+               LAPACKE_dgb_nancheck,
+               LAPACKE_dgb_trans,
+               LAPACKE_dgbbrd,
+               LAPACKE_dgbbrd_work,
+               LAPACKE_dgbcon,
+               LAPACKE_dgbcon_work,
+               LAPACKE_dgbequ,
+               LAPACKE_dgbequ_work,
+               LAPACKE_dgbequb,
+               LAPACKE_dgbequb_work,
+               LAPACKE_dgbrfs,
+               LAPACKE_dgbrfs_work,
+               LAPACKE_dgbsv,
+               LAPACKE_dgbsv_work,
+               LAPACKE_dgbsvx,
+               LAPACKE_dgbsvx_work,
+               LAPACKE_dgbtrf,
+               LAPACKE_dgbtrf_work,
+               LAPACKE_dgbtrs,
+               LAPACKE_dgbtrs_work,
+               LAPACKE_dge_nancheck,
+               LAPACKE_dge_trans,
+               LAPACKE_dgebak,
+               LAPACKE_dgebak_work,
+               LAPACKE_dgebal,
+               LAPACKE_dgebal_work,
+               LAPACKE_dgebrd,
+               LAPACKE_dgebrd_work,
+               LAPACKE_dgecon,
+               LAPACKE_dgecon_work,
+               LAPACKE_dgeequ,
+               LAPACKE_dgeequ_work,
+               LAPACKE_dgeequb,
+               LAPACKE_dgeequb_work,
+               LAPACKE_dgees,
+               LAPACKE_dgees_work,
+               LAPACKE_dgeesx,
+               LAPACKE_dgeesx_work,
+               LAPACKE_dgeev,
+               LAPACKE_dgeev_work,
+               LAPACKE_dgeevx,
+               LAPACKE_dgeevx_work,
+               LAPACKE_dgehrd,
+               LAPACKE_dgehrd_work,
+               LAPACKE_dgejsv,
+               LAPACKE_dgejsv_work,
+               LAPACKE_dgelq2,
+               LAPACKE_dgelq2_work,
+               LAPACKE_dgelqf,
+               LAPACKE_dgelqf_work,
+               LAPACKE_dgels,
+               LAPACKE_dgels_work,
+               LAPACKE_dgelsd,
+               LAPACKE_dgelsd_work,
+               LAPACKE_dgelss,
+               LAPACKE_dgelss_work,
+               LAPACKE_dgelsy,
+               LAPACKE_dgelsy_work,
+               LAPACKE_dgemqrt,
+               LAPACKE_dgemqrt_work,
+               LAPACKE_dgeqlf,
+               LAPACKE_dgeqlf_work,
+               LAPACKE_dgeqp3,
+               LAPACKE_dgeqp3_work,
+               LAPACKE_dgeqpf,
+               LAPACKE_dgeqpf_work,
+               LAPACKE_dgeqr2,
+               LAPACKE_dgeqr2_work,
+               LAPACKE_dgeqrf,
+               LAPACKE_dgeqrf_work,
+               LAPACKE_dgeqrfp,
+               LAPACKE_dgeqrfp_work,
+               LAPACKE_dgeqrt,
+               LAPACKE_dgeqrt2,
+               LAPACKE_dgeqrt2_work,
+               LAPACKE_dgeqrt3,
+               LAPACKE_dgeqrt3_work,
+               LAPACKE_dgeqrt_work,
+               LAPACKE_dgerfs,
+               LAPACKE_dgerfs_work,
+               LAPACKE_dgerqf,
+               LAPACKE_dgerqf_work,
+               LAPACKE_dgesdd,
+               LAPACKE_dgesdd_work,
+               LAPACKE_dgesv,
+               LAPACKE_dgesv_work,
+               LAPACKE_dgesvd,
+               LAPACKE_dgesvd_work,
+               LAPACKE_dgesvj,
+               LAPACKE_dgesvj_work,
+               LAPACKE_dgesvx,
+               LAPACKE_dgesvx_work,
+               LAPACKE_dgetf2,
+               LAPACKE_dgetf2_work,
+               LAPACKE_dgetrf,
+               LAPACKE_dgetrf_work,
+               LAPACKE_dgetri,
+               LAPACKE_dgetri_work,
+               LAPACKE_dgetrs,
+               LAPACKE_dgetrs_work,
+               LAPACKE_dgg_nancheck,
+               LAPACKE_dgg_trans,
+               LAPACKE_dggbak,
+               LAPACKE_dggbak_work,
+               LAPACKE_dggbal,
+               LAPACKE_dggbal_work,
+               LAPACKE_dgges,
+               LAPACKE_dgges_work,
+               LAPACKE_dggesx,
+               LAPACKE_dggesx_work,
+               LAPACKE_dggev,
+               LAPACKE_dggev_work,
+               LAPACKE_dggevx,
+               LAPACKE_dggevx_work,
+               LAPACKE_dggglm,
+               LAPACKE_dggglm_work,
+               LAPACKE_dgghrd,
+               LAPACKE_dgghrd_work,
+               LAPACKE_dgglse,
+               LAPACKE_dgglse_work,
+               LAPACKE_dggqrf,
+               LAPACKE_dggqrf_work,
+               LAPACKE_dggrqf,
+               LAPACKE_dggrqf_work,
+               LAPACKE_dggsvd,
+               LAPACKE_dggsvd_work,
+               LAPACKE_dggsvp,
+               LAPACKE_dggsvp_work,
+               LAPACKE_dgt_nancheck,
+               LAPACKE_dgtcon,
+               LAPACKE_dgtcon_work,
+               LAPACKE_dgtrfs,
+               LAPACKE_dgtrfs_work,
+               LAPACKE_dgtsv,
+               LAPACKE_dgtsv_work,
+               LAPACKE_dgtsvx,
+               LAPACKE_dgtsvx_work,
+               LAPACKE_dgttrf,
+               LAPACKE_dgttrf_work,
+               LAPACKE_dgttrs,
+               LAPACKE_dgttrs_work,
+               LAPACKE_dhgeqz,
+               LAPACKE_dhgeqz_work,
+               LAPACKE_dhs_nancheck,
+               LAPACKE_dhs_trans,
+               LAPACKE_dhsein,
+               LAPACKE_dhsein_work,
+               LAPACKE_dhseqr,
+               LAPACKE_dhseqr_work,
+               LAPACKE_dlacpy,
+               LAPACKE_dlacpy_work,
+               LAPACKE_dlag2s,
+               LAPACKE_dlag2s_work,
+               LAPACKE_dlamch,
+               LAPACKE_dlamch_work,
+               LAPACKE_dlange,
+               LAPACKE_dlange_work,
+               LAPACKE_dlansy,
+               LAPACKE_dlansy_work,
+               LAPACKE_dlantr,
+               LAPACKE_dlantr_work,
+               LAPACKE_dlapmr,
+               LAPACKE_dlapmr_work,
+               LAPACKE_dlapy2,
+               LAPACKE_dlapy2_work,
+               LAPACKE_dlapy3,
+               LAPACKE_dlapy3_work,
+               LAPACKE_dlarfb,
+               LAPACKE_dlarfb_work,
+               LAPACKE_dlarfg,
+               LAPACKE_dlarfg_work,
+               LAPACKE_dlarft,
+               LAPACKE_dlarft_work,
+               LAPACKE_dlarfx,
+               LAPACKE_dlarfx_work,
+               LAPACKE_dlarnv,
+               LAPACKE_dlarnv_work,
+               LAPACKE_dlartgp,
+               LAPACKE_dlartgp_work,
+               LAPACKE_dlartgs,
+               LAPACKE_dlartgs_work,
+               LAPACKE_dlaset,
+               LAPACKE_dlaset_work,
+               LAPACKE_dlasrt,
+               LAPACKE_dlasrt_work,
+               LAPACKE_dlaswp,
+               LAPACKE_dlaswp_work,
+               LAPACKE_dlauum,
+               LAPACKE_dlauum_work,
+               LAPACKE_dopgtr,
+               LAPACKE_dopgtr_work,
+               LAPACKE_dopmtr,
+               LAPACKE_dopmtr_work,
+               LAPACKE_dorbdb,
+               LAPACKE_dorbdb_work,
+               LAPACKE_dorcsd,
+               LAPACKE_dorcsd_work,
+               LAPACKE_dorgbr,
+               LAPACKE_dorgbr_work,
+               LAPACKE_dorghr,
+               LAPACKE_dorghr_work,
+               LAPACKE_dorglq,
+               LAPACKE_dorglq_work,
+               LAPACKE_dorgql,
+               LAPACKE_dorgql_work,
+               LAPACKE_dorgqr,
+               LAPACKE_dorgqr_work,
+               LAPACKE_dorgrq,
+               LAPACKE_dorgrq_work,
+               LAPACKE_dorgtr,
+               LAPACKE_dorgtr_work,
+               LAPACKE_dormbr,
+               LAPACKE_dormbr_work,
+               LAPACKE_dormhr,
+               LAPACKE_dormhr_work,
+               LAPACKE_dormlq,
+               LAPACKE_dormlq_work,
+               LAPACKE_dormql,
+               LAPACKE_dormql_work,
+               LAPACKE_dormqr,
+               LAPACKE_dormqr_work,
+               LAPACKE_dormrq,
+               LAPACKE_dormrq_work,
+               LAPACKE_dormrz,
+               LAPACKE_dormrz_work,
+               LAPACKE_dormtr,
+               LAPACKE_dormtr_work,
+               LAPACKE_dpb_nancheck,
+               LAPACKE_dpb_trans,
+               LAPACKE_dpbcon,
+               LAPACKE_dpbcon_work,
+               LAPACKE_dpbequ,
+               LAPACKE_dpbequ_work,
+               LAPACKE_dpbrfs,
+               LAPACKE_dpbrfs_work,
+               LAPACKE_dpbstf,
+               LAPACKE_dpbstf_work,
+               LAPACKE_dpbsv,
+               LAPACKE_dpbsv_work,
+               LAPACKE_dpbsvx,
+               LAPACKE_dpbsvx_work,
+               LAPACKE_dpbtrf,
+               LAPACKE_dpbtrf_work,
+               LAPACKE_dpbtrs,
+               LAPACKE_dpbtrs_work,
+               LAPACKE_dpf_nancheck,
+               LAPACKE_dpf_trans,
+               LAPACKE_dpftrf,
+               LAPACKE_dpftrf_work,
+               LAPACKE_dpftri,
+               LAPACKE_dpftri_work,
+               LAPACKE_dpftrs,
+               LAPACKE_dpftrs_work,
+               LAPACKE_dpo_nancheck,
+               LAPACKE_dpo_trans,
+               LAPACKE_dpocon,
+               LAPACKE_dpocon_work,
+               LAPACKE_dpoequ,
+               LAPACKE_dpoequ_work,
+               LAPACKE_dpoequb,
+               LAPACKE_dpoequb_work,
+               LAPACKE_dporfs,
+               LAPACKE_dporfs_work,
+               LAPACKE_dposv,
+               LAPACKE_dposv_work,
+               LAPACKE_dposvx,
+               LAPACKE_dposvx_work,
+               LAPACKE_dpotrf,
+               LAPACKE_dpotrf_work,
+               LAPACKE_dpotri,
+               LAPACKE_dpotri_work,
+               LAPACKE_dpotrs,
+               LAPACKE_dpotrs_work,
+               LAPACKE_dpp_nancheck,
+               LAPACKE_dpp_trans,
+               LAPACKE_dppcon,
+               LAPACKE_dppcon_work,
+               LAPACKE_dppequ,
+               LAPACKE_dppequ_work,
+               LAPACKE_dpprfs,
+               LAPACKE_dpprfs_work,
+               LAPACKE_dppsv,
+               LAPACKE_dppsv_work,
+               LAPACKE_dppsvx,
+               LAPACKE_dppsvx_work,
+               LAPACKE_dpptrf,
+               LAPACKE_dpptrf_work,
+               LAPACKE_dpptri,
+               LAPACKE_dpptri_work,
+               LAPACKE_dpptrs,
+               LAPACKE_dpptrs_work,
+               LAPACKE_dpstrf,
+               LAPACKE_dpstrf_work,
+               LAPACKE_dpt_nancheck,
+               LAPACKE_dptcon,
+               LAPACKE_dptcon_work,
+               LAPACKE_dpteqr,
+               LAPACKE_dpteqr_work,
+               LAPACKE_dptrfs,
+               LAPACKE_dptrfs_work,
+               LAPACKE_dptsv,
+               LAPACKE_dptsv_work,
+               LAPACKE_dptsvx,
+               LAPACKE_dptsvx_work,
+               LAPACKE_dpttrf,
+               LAPACKE_dpttrf_work,
+               LAPACKE_dpttrs,
+               LAPACKE_dpttrs_work,
+               LAPACKE_dsb_nancheck,
+               LAPACKE_dsb_trans,
+               LAPACKE_dsbev,
+               LAPACKE_dsbev_work,
+               LAPACKE_dsbevd,
+               LAPACKE_dsbevd_work,
+               LAPACKE_dsbevx,
+               LAPACKE_dsbevx_work,
+               LAPACKE_dsbgst,
+               LAPACKE_dsbgst_work,
+               LAPACKE_dsbgv,
+               LAPACKE_dsbgv_work,
+               LAPACKE_dsbgvd,
+               LAPACKE_dsbgvd_work,
+               LAPACKE_dsbgvx,
+               LAPACKE_dsbgvx_work,
+               LAPACKE_dsbtrd,
+               LAPACKE_dsbtrd_work,
+               LAPACKE_dsfrk,
+               LAPACKE_dsfrk_work,
+               LAPACKE_dsgesv,
+               LAPACKE_dsgesv_work,
+               LAPACKE_dsp_nancheck,
+               LAPACKE_dsp_trans,
+               LAPACKE_dspcon,
+               LAPACKE_dspcon_work,
+               LAPACKE_dspev,
+               LAPACKE_dspev_work,
+               LAPACKE_dspevd,
+               LAPACKE_dspevd_work,
+               LAPACKE_dspevx,
+               LAPACKE_dspevx_work,
+               LAPACKE_dspgst,
+               LAPACKE_dspgst_work,
+               LAPACKE_dspgv,
+               LAPACKE_dspgv_work,
+               LAPACKE_dspgvd,
+               LAPACKE_dspgvd_work,
+               LAPACKE_dspgvx,
+               LAPACKE_dspgvx_work,
+               LAPACKE_dsposv,
+               LAPACKE_dsposv_work,
+               LAPACKE_dsprfs,
+               LAPACKE_dsprfs_work,
+               LAPACKE_dspsv,
+               LAPACKE_dspsv_work,
+               LAPACKE_dspsvx,
+               LAPACKE_dspsvx_work,
+               LAPACKE_dsptrd,
+               LAPACKE_dsptrd_work,
+               LAPACKE_dsptrf,
+               LAPACKE_dsptrf_work,
+               LAPACKE_dsptri,
+               LAPACKE_dsptri_work,
+               LAPACKE_dsptrs,
+               LAPACKE_dsptrs_work,
+               LAPACKE_dst_nancheck,
+               LAPACKE_dstebz,
+               LAPACKE_dstebz_work,
+               LAPACKE_dstedc,
+               LAPACKE_dstedc_work,
+               LAPACKE_dstegr,
+               LAPACKE_dstegr_work,
+               LAPACKE_dstein,
+               LAPACKE_dstein_work,
+               LAPACKE_dstemr,
+               LAPACKE_dstemr_work,
+               LAPACKE_dsteqr,
+               LAPACKE_dsteqr_work,
+               LAPACKE_dsterf,
+               LAPACKE_dsterf_work,
+               LAPACKE_dstev,
+               LAPACKE_dstev_work,
+               LAPACKE_dstevd,
+               LAPACKE_dstevd_work,
+               LAPACKE_dstevr,
+               LAPACKE_dstevr_work,
+               LAPACKE_dstevx,
+               LAPACKE_dstevx_work,
+               LAPACKE_dsy_nancheck,
+               LAPACKE_dsy_trans,
+               LAPACKE_dsycon,
+               LAPACKE_dsycon_work,
+               LAPACKE_dsyconv,
+               LAPACKE_dsyconv_work,
+               LAPACKE_dsyequb,
+               LAPACKE_dsyequb_work,
+               LAPACKE_dsyev,
+               LAPACKE_dsyev_work,
+               LAPACKE_dsyevd,
+               LAPACKE_dsyevd_work,
+               LAPACKE_dsyevr,
+               LAPACKE_dsyevr_work,
+               LAPACKE_dsyevx,
+               LAPACKE_dsyevx_work,
+               LAPACKE_dsygst,
+               LAPACKE_dsygst_work,
+               LAPACKE_dsygv,
+               LAPACKE_dsygv_work,
+               LAPACKE_dsygvd,
+               LAPACKE_dsygvd_work,
+               LAPACKE_dsygvx,
+               LAPACKE_dsygvx_work,
+               LAPACKE_dsyrfs,
+               LAPACKE_dsyrfs_work,
+               LAPACKE_dsysv,
+               LAPACKE_dsysv_work,
+               LAPACKE_dsysvx,
+               LAPACKE_dsysvx_work,
+               LAPACKE_dsyswapr,
+               LAPACKE_dsyswapr_work,
+               LAPACKE_dsytrd,
+               LAPACKE_dsytrd_work,
+               LAPACKE_dsytrf,
+               LAPACKE_dsytrf_work,
+               LAPACKE_dsytri,
+               LAPACKE_dsytri2,
+               LAPACKE_dsytri2_work,
+               LAPACKE_dsytri2x,
+               LAPACKE_dsytri2x_work,
+               LAPACKE_dsytri_work,
+               LAPACKE_dsytrs,
+               LAPACKE_dsytrs2,
+               LAPACKE_dsytrs2_work,
+               LAPACKE_dsytrs_work,
+               LAPACKE_dtb_nancheck,
+               LAPACKE_dtb_trans,
+               LAPACKE_dtbcon,
+               LAPACKE_dtbcon_work,
+               LAPACKE_dtbrfs,
+               LAPACKE_dtbrfs_work,
+               LAPACKE_dtbtrs,
+               LAPACKE_dtbtrs_work,
+               LAPACKE_dtf_nancheck,
+               LAPACKE_dtf_trans,
+               LAPACKE_dtfsm,
+               LAPACKE_dtfsm_work,
+               LAPACKE_dtftri,
+               LAPACKE_dtftri_work,
+               LAPACKE_dtfttp,
+               LAPACKE_dtfttp_work,
+               LAPACKE_dtfttr,
+               LAPACKE_dtfttr_work,
+               LAPACKE_dtgevc,
+               LAPACKE_dtgevc_work,
+               LAPACKE_dtgexc,
+               LAPACKE_dtgexc_work,
+               LAPACKE_dtgsen,
+               LAPACKE_dtgsen_work,
+               LAPACKE_dtgsja,
+               LAPACKE_dtgsja_work,
+               LAPACKE_dtgsna,
+               LAPACKE_dtgsna_work,
+               LAPACKE_dtgsyl,
+               LAPACKE_dtgsyl_work,
+               LAPACKE_dtp_nancheck,
+               LAPACKE_dtp_trans,
+               LAPACKE_dtpcon,
+               LAPACKE_dtpcon_work,
+               LAPACKE_dtpmqrt,
+               LAPACKE_dtpmqrt_work,
+               LAPACKE_dtpqrt,
+               LAPACKE_dtpqrt2,
+               LAPACKE_dtpqrt2_work,
+               LAPACKE_dtpqrt_work,
+               LAPACKE_dtprfb,
+               LAPACKE_dtprfb_work,
+               LAPACKE_dtprfs,
+               LAPACKE_dtprfs_work,
+               LAPACKE_dtptri,
+               LAPACKE_dtptri_work,
+               LAPACKE_dtptrs,
+               LAPACKE_dtptrs_work,
+               LAPACKE_dtpttf,
+               LAPACKE_dtpttf_work,
+               LAPACKE_dtpttr,
+               LAPACKE_dtpttr_work,
+               LAPACKE_dtr_nancheck,
+               LAPACKE_dtr_trans,
+               LAPACKE_dtrcon,
+               LAPACKE_dtrcon_work,
+               LAPACKE_dtrevc,
+               LAPACKE_dtrevc_work,
+               LAPACKE_dtrexc,
+               LAPACKE_dtrexc_work,
+               LAPACKE_dtrrfs,
+               LAPACKE_dtrrfs_work,
+               LAPACKE_dtrsen,
+               LAPACKE_dtrsen_work,
+               LAPACKE_dtrsna,
+               LAPACKE_dtrsna_work,
+               LAPACKE_dtrsyl,
+               LAPACKE_dtrsyl_work,
+               LAPACKE_dtrtri,
+               LAPACKE_dtrtri_work,
+               LAPACKE_dtrtrs,
+               LAPACKE_dtrtrs_work,
+               LAPACKE_dtrttf,
+               LAPACKE_dtrttf_work,
+               LAPACKE_dtrttp,
+               LAPACKE_dtrttp_work,
+               LAPACKE_dtzrzf,
+               LAPACKE_dtzrzf_work,
+               LAPACKE_lsame,
+               LAPACKE_s_nancheck,
+               LAPACKE_sbbcsd,
+               LAPACKE_sbbcsd_work,
+               LAPACKE_sbdsdc,
+               LAPACKE_sbdsdc_work,
+               LAPACKE_sbdsqr,
+               LAPACKE_sbdsqr_work,
+               LAPACKE_sdisna,
+               LAPACKE_sdisna_work,
+               LAPACKE_sgb_nancheck,
+               LAPACKE_sgb_trans,
+               LAPACKE_sgbbrd,
+               LAPACKE_sgbbrd_work,
+               LAPACKE_sgbcon,
+               LAPACKE_sgbcon_work,
+               LAPACKE_sgbequ,
+               LAPACKE_sgbequ_work,
+               LAPACKE_sgbequb,
+               LAPACKE_sgbequb_work,
+               LAPACKE_sgbrfs,
+               LAPACKE_sgbrfs_work,
+               LAPACKE_sgbsv,
+               LAPACKE_sgbsv_work,
+               LAPACKE_sgbsvx,
+               LAPACKE_sgbsvx_work,
+               LAPACKE_sgbtrf,
+               LAPACKE_sgbtrf_work,
+               LAPACKE_sgbtrs,
+               LAPACKE_sgbtrs_work,
+               LAPACKE_sge_nancheck,
+               LAPACKE_sge_trans,
+               LAPACKE_sgebak,
+               LAPACKE_sgebak_work,
+               LAPACKE_sgebal,
+               LAPACKE_sgebal_work,
+               LAPACKE_sgebrd,
+               LAPACKE_sgebrd_work,
+               LAPACKE_sgecon,
+               LAPACKE_sgecon_work,
+               LAPACKE_sgeequ,
+               LAPACKE_sgeequ_work,
+               LAPACKE_sgeequb,
+               LAPACKE_sgeequb_work,
+               LAPACKE_sgees,
+               LAPACKE_sgees_work,
+               LAPACKE_sgeesx,
+               LAPACKE_sgeesx_work,
+               LAPACKE_sgeev,
+               LAPACKE_sgeev_work,
+               LAPACKE_sgeevx,
+               LAPACKE_sgeevx_work,
+               LAPACKE_sgehrd,
+               LAPACKE_sgehrd_work,
+               LAPACKE_sgejsv,
+               LAPACKE_sgejsv_work,
+               LAPACKE_sgelq2,
+               LAPACKE_sgelq2_work,
+               LAPACKE_sgelqf,
+               LAPACKE_sgelqf_work,
+               LAPACKE_sgels,
+               LAPACKE_sgels_work,
+               LAPACKE_sgelsd,
+               LAPACKE_sgelsd_work,
+               LAPACKE_sgelss,
+               LAPACKE_sgelss_work,
+               LAPACKE_sgelsy,
+               LAPACKE_sgelsy_work,
+               LAPACKE_sgemqrt,
+               LAPACKE_sgemqrt_work,
+               LAPACKE_sgeqlf,
+               LAPACKE_sgeqlf_work,
+               LAPACKE_sgeqp3,
+               LAPACKE_sgeqp3_work,
+               LAPACKE_sgeqpf,
+               LAPACKE_sgeqpf_work,
+               LAPACKE_sgeqr2,
+               LAPACKE_sgeqr2_work,
+               LAPACKE_sgeqrf,
+               LAPACKE_sgeqrf_work,
+               LAPACKE_sgeqrfp,
+               LAPACKE_sgeqrfp_work,
+               LAPACKE_sgeqrt,
+               LAPACKE_sgeqrt2,
+               LAPACKE_sgeqrt2_work,
+               LAPACKE_sgeqrt3,
+               LAPACKE_sgeqrt3_work,
+               LAPACKE_sgeqrt_work,
+               LAPACKE_sgerfs,
+               LAPACKE_sgerfs_work,
+               LAPACKE_sgerqf,
+               LAPACKE_sgerqf_work,
+               LAPACKE_sgesdd,
+               LAPACKE_sgesdd_work,
+               LAPACKE_sgesv,
+               LAPACKE_sgesv_work,
+               LAPACKE_sgesvd,
+               LAPACKE_sgesvd_work,
+               LAPACKE_sgesvj,
+               LAPACKE_sgesvj_work,
+               LAPACKE_sgesvx,
+               LAPACKE_sgesvx_work,
+               LAPACKE_sgetf2,
+               LAPACKE_sgetf2_work,
+               LAPACKE_sgetrf,
+               LAPACKE_sgetrf_work,
+               LAPACKE_sgetri,
+               LAPACKE_sgetri_work,
+               LAPACKE_sgetrs,
+               LAPACKE_sgetrs_work,
+               LAPACKE_sgg_nancheck,
+               LAPACKE_sgg_trans,
+               LAPACKE_sggbak,
+               LAPACKE_sggbak_work,
+               LAPACKE_sggbal,
+               LAPACKE_sggbal_work,
+               LAPACKE_sgges,
+               LAPACKE_sgges_work,
+               LAPACKE_sggesx,
+               LAPACKE_sggesx_work,
+               LAPACKE_sggev,
+               LAPACKE_sggev_work,
+               LAPACKE_sggevx,
+               LAPACKE_sggevx_work,
+               LAPACKE_sggglm,
+               LAPACKE_sggglm_work,
+               LAPACKE_sgghrd,
+               LAPACKE_sgghrd_work,
+               LAPACKE_sgglse,
+               LAPACKE_sgglse_work,
+               LAPACKE_sggqrf,
+               LAPACKE_sggqrf_work,
+               LAPACKE_sggrqf,
+               LAPACKE_sggrqf_work,
+               LAPACKE_sggsvd,
+               LAPACKE_sggsvd_work,
+               LAPACKE_sggsvp,
+               LAPACKE_sggsvp_work,
+               LAPACKE_sgt_nancheck,
+               LAPACKE_sgtcon,
+               LAPACKE_sgtcon_work,
+               LAPACKE_sgtrfs,
+               LAPACKE_sgtrfs_work,
+               LAPACKE_sgtsv,
+               LAPACKE_sgtsv_work,
+               LAPACKE_sgtsvx,
+               LAPACKE_sgtsvx_work,
+               LAPACKE_sgttrf,
+               LAPACKE_sgttrf_work,
+               LAPACKE_sgttrs,
+               LAPACKE_sgttrs_work,
+               LAPACKE_shgeqz,
+               LAPACKE_shgeqz_work,
+               LAPACKE_shs_nancheck,
+               LAPACKE_shs_trans,
+               LAPACKE_shsein,
+               LAPACKE_shsein_work,
+               LAPACKE_shseqr,
+               LAPACKE_shseqr_work,
+               LAPACKE_slacpy,
+               LAPACKE_slacpy_work,
+               LAPACKE_slag2d,
+               LAPACKE_slag2d_work,
+               LAPACKE_slamch,
+               LAPACKE_slamch_work,
+               LAPACKE_slange,
+               LAPACKE_slange_work,
+               LAPACKE_slansy,
+               LAPACKE_slansy_work,
+               LAPACKE_slantr,
+               LAPACKE_slantr_work,
+               LAPACKE_slapmr,
+               LAPACKE_slapmr_work,
+               LAPACKE_slapy2,
+               LAPACKE_slapy2_work,
+               LAPACKE_slapy3,
+               LAPACKE_slapy3_work,
+               LAPACKE_slarfb,
+               LAPACKE_slarfb_work,
+               LAPACKE_slarfg,
+               LAPACKE_slarfg_work,
+               LAPACKE_slarft,
+               LAPACKE_slarft_work,
+               LAPACKE_slarfx,
+               LAPACKE_slarfx_work,
+               LAPACKE_slarnv,
+               LAPACKE_slarnv_work,
+               LAPACKE_slartgp,
+               LAPACKE_slartgp_work,
+               LAPACKE_slartgs,
+               LAPACKE_slartgs_work,
+               LAPACKE_slaset,
+               LAPACKE_slaset_work,
+               LAPACKE_slasrt,
+               LAPACKE_slasrt_work,
+               LAPACKE_slaswp,
+               LAPACKE_slaswp_work,
+               LAPACKE_slauum,
+               LAPACKE_slauum_work,
+               LAPACKE_sopgtr,
+               LAPACKE_sopgtr_work,
+               LAPACKE_sopmtr,
+               LAPACKE_sopmtr_work,
+               LAPACKE_sorbdb,
+               LAPACKE_sorbdb_work,
+               LAPACKE_sorcsd,
+               LAPACKE_sorcsd_work,
+               LAPACKE_sorgbr,
+               LAPACKE_sorgbr_work,
+               LAPACKE_sorghr,
+               LAPACKE_sorghr_work,
+               LAPACKE_sorglq,
+               LAPACKE_sorglq_work,
+               LAPACKE_sorgql,
+               LAPACKE_sorgql_work,
+               LAPACKE_sorgqr,
+               LAPACKE_sorgqr_work,
+               LAPACKE_sorgrq,
+               LAPACKE_sorgrq_work,
+               LAPACKE_sorgtr,
+               LAPACKE_sorgtr_work,
+               LAPACKE_sormbr,
+               LAPACKE_sormbr_work,
+               LAPACKE_sormhr,
+               LAPACKE_sormhr_work,
+               LAPACKE_sormlq,
+               LAPACKE_sormlq_work,
+               LAPACKE_sormql,
+               LAPACKE_sormql_work,
+               LAPACKE_sormqr,
+               LAPACKE_sormqr_work,
+               LAPACKE_sormrq,
+               LAPACKE_sormrq_work,
+               LAPACKE_sormrz,
+               LAPACKE_sormrz_work,
+               LAPACKE_sormtr,
+               LAPACKE_sormtr_work,
+               LAPACKE_spb_nancheck,
+               LAPACKE_spb_trans,
+               LAPACKE_spbcon,
+               LAPACKE_spbcon_work,
+               LAPACKE_spbequ,
+               LAPACKE_spbequ_work,
+               LAPACKE_spbrfs,
+               LAPACKE_spbrfs_work,
+               LAPACKE_spbstf,
+               LAPACKE_spbstf_work,
+               LAPACKE_spbsv,
+               LAPACKE_spbsv_work,
+               LAPACKE_spbsvx,
+               LAPACKE_spbsvx_work,
+               LAPACKE_spbtrf,
+               LAPACKE_spbtrf_work,
+               LAPACKE_spbtrs,
+               LAPACKE_spbtrs_work,
+               LAPACKE_spf_nancheck,
+               LAPACKE_spf_trans,
+               LAPACKE_spftrf,
+               LAPACKE_spftrf_work,
+               LAPACKE_spftri,
+               LAPACKE_spftri_work,
+               LAPACKE_spftrs,
+               LAPACKE_spftrs_work,
+               LAPACKE_spo_nancheck,
+               LAPACKE_spo_trans,
+               LAPACKE_spocon,
+               LAPACKE_spocon_work,
+               LAPACKE_spoequ,
+               LAPACKE_spoequ_work,
+               LAPACKE_spoequb,
+               LAPACKE_spoequb_work,
+               LAPACKE_sporfs,
+               LAPACKE_sporfs_work,
+               LAPACKE_sposv,
+               LAPACKE_sposv_work,
+               LAPACKE_sposvx,
+               LAPACKE_sposvx_work,
+               LAPACKE_spotrf,
+               LAPACKE_spotrf_work,
+               LAPACKE_spotri,
+               LAPACKE_spotri_work,
+               LAPACKE_spotrs,
+               LAPACKE_spotrs_work,
+               LAPACKE_spp_nancheck,
+               LAPACKE_spp_trans,
+               LAPACKE_sppcon,
+               LAPACKE_sppcon_work,
+               LAPACKE_sppequ,
+               LAPACKE_sppequ_work,
+               LAPACKE_spprfs,
+               LAPACKE_spprfs_work,
+               LAPACKE_sppsv,
+               LAPACKE_sppsv_work,
+               LAPACKE_sppsvx,
+               LAPACKE_sppsvx_work,
+               LAPACKE_spptrf,
+               LAPACKE_spptrf_work,
+               LAPACKE_spptri,
+               LAPACKE_spptri_work,
+               LAPACKE_spptrs,
+               LAPACKE_spptrs_work,
+               LAPACKE_spstrf,
+               LAPACKE_spstrf_work,
+               LAPACKE_spt_nancheck,
+               LAPACKE_sptcon,
+               LAPACKE_sptcon_work,
+               LAPACKE_spteqr,
+               LAPACKE_spteqr_work,
+               LAPACKE_sptrfs,
+               LAPACKE_sptrfs_work,
+               LAPACKE_sptsv,
+               LAPACKE_sptsv_work,
+               LAPACKE_sptsvx,
+               LAPACKE_sptsvx_work,
+               LAPACKE_spttrf,
+               LAPACKE_spttrf_work,
+               LAPACKE_spttrs,
+               LAPACKE_spttrs_work,
+               LAPACKE_ssb_nancheck,
+               LAPACKE_ssb_trans,
+               LAPACKE_ssbev,
+               LAPACKE_ssbev_work,
+               LAPACKE_ssbevd,
+               LAPACKE_ssbevd_work,
+               LAPACKE_ssbevx,
+               LAPACKE_ssbevx_work,
+               LAPACKE_ssbgst,
+               LAPACKE_ssbgst_work,
+               LAPACKE_ssbgv,
+               LAPACKE_ssbgv_work,
+               LAPACKE_ssbgvd,
+               LAPACKE_ssbgvd_work,
+               LAPACKE_ssbgvx,
+               LAPACKE_ssbgvx_work,
+               LAPACKE_ssbtrd,
+               LAPACKE_ssbtrd_work,
+               LAPACKE_ssfrk,
+               LAPACKE_ssfrk_work,
+               LAPACKE_ssp_nancheck,
+               LAPACKE_ssp_trans,
+               LAPACKE_sspcon,
+               LAPACKE_sspcon_work,
+               LAPACKE_sspev,
+               LAPACKE_sspev_work,
+               LAPACKE_sspevd,
+               LAPACKE_sspevd_work,
+               LAPACKE_sspevx,
+               LAPACKE_sspevx_work,
+               LAPACKE_sspgst,
+               LAPACKE_sspgst_work,
+               LAPACKE_sspgv,
+               LAPACKE_sspgv_work,
+               LAPACKE_sspgvd,
+               LAPACKE_sspgvd_work,
+               LAPACKE_sspgvx,
+               LAPACKE_sspgvx_work,
+               LAPACKE_ssprfs,
+               LAPACKE_ssprfs_work,
+               LAPACKE_sspsv,
+               LAPACKE_sspsv_work,
+               LAPACKE_sspsvx,
+               LAPACKE_sspsvx_work,
+               LAPACKE_ssptrd,
+               LAPACKE_ssptrd_work,
+               LAPACKE_ssptrf,
+               LAPACKE_ssptrf_work,
+               LAPACKE_ssptri,
+               LAPACKE_ssptri_work,
+               LAPACKE_ssptrs,
+               LAPACKE_ssptrs_work,
+               LAPACKE_sst_nancheck,
+               LAPACKE_sstebz,
+               LAPACKE_sstebz_work,
+               LAPACKE_sstedc,
+               LAPACKE_sstedc_work,
+               LAPACKE_sstegr,
+               LAPACKE_sstegr_work,
+               LAPACKE_sstein,
+               LAPACKE_sstein_work,
+               LAPACKE_sstemr,
+               LAPACKE_sstemr_work,
+               LAPACKE_ssteqr,
+               LAPACKE_ssteqr_work,
+               LAPACKE_ssterf,
+               LAPACKE_ssterf_work,
+               LAPACKE_sstev,
+               LAPACKE_sstev_work,
+               LAPACKE_sstevd,
+               LAPACKE_sstevd_work,
+               LAPACKE_sstevr,
+               LAPACKE_sstevr_work,
+               LAPACKE_sstevx,
+               LAPACKE_sstevx_work,
+               LAPACKE_ssy_nancheck,
+               LAPACKE_ssy_trans,
+               LAPACKE_ssycon,
+               LAPACKE_ssycon_work,
+               LAPACKE_ssyconv,
+               LAPACKE_ssyconv_work,
+               LAPACKE_ssyequb,
+               LAPACKE_ssyequb_work,
+               LAPACKE_ssyev,
+               LAPACKE_ssyev_work,
+               LAPACKE_ssyevd,
+               LAPACKE_ssyevd_work,
+               LAPACKE_ssyevr,
+               LAPACKE_ssyevr_work,
+               LAPACKE_ssyevx,
+               LAPACKE_ssyevx_work,
+               LAPACKE_ssygst,
+               LAPACKE_ssygst_work,
+               LAPACKE_ssygv,
+               LAPACKE_ssygv_work,
+               LAPACKE_ssygvd,
+               LAPACKE_ssygvd_work,
+               LAPACKE_ssygvx,
+               LAPACKE_ssygvx_work,
+               LAPACKE_ssyrfs,
+               LAPACKE_ssyrfs_work,
+               LAPACKE_ssysv,
+               LAPACKE_ssysv_work,
+               LAPACKE_ssysvx,
+               LAPACKE_ssysvx_work,
+               LAPACKE_ssyswapr,
+               LAPACKE_ssyswapr_work,
+               LAPACKE_ssytrd,
+               LAPACKE_ssytrd_work,
+               LAPACKE_ssytrf,
+               LAPACKE_ssytrf_work,
+               LAPACKE_ssytri,
+               LAPACKE_ssytri2,
+               LAPACKE_ssytri2_work,
+               LAPACKE_ssytri2x,
+               LAPACKE_ssytri2x_work,
+               LAPACKE_ssytri_work,
+               LAPACKE_ssytrs,
+               LAPACKE_ssytrs2,
+               LAPACKE_ssytrs2_work,
+               LAPACKE_ssytrs_work,
+               LAPACKE_stb_nancheck,
+               LAPACKE_stb_trans,
+               LAPACKE_stbcon,
+               LAPACKE_stbcon_work,
+               LAPACKE_stbrfs,
+               LAPACKE_stbrfs_work,
+               LAPACKE_stbtrs,
+               LAPACKE_stbtrs_work,
+               LAPACKE_stf_nancheck,
+               LAPACKE_stf_trans,
+               LAPACKE_stfsm,
+               LAPACKE_stfsm_work,
+               LAPACKE_stftri,
+               LAPACKE_stftri_work,
+               LAPACKE_stfttp,
+               LAPACKE_stfttp_work,
+               LAPACKE_stfttr,
+               LAPACKE_stfttr_work,
+               LAPACKE_stgevc,
+               LAPACKE_stgevc_work,
+               LAPACKE_stgexc,
+               LAPACKE_stgexc_work,
+               LAPACKE_stgsen,
+               LAPACKE_stgsen_work,
+               LAPACKE_stgsja,
+               LAPACKE_stgsja_work,
+               LAPACKE_stgsna,
+               LAPACKE_stgsna_work,
+               LAPACKE_stgsyl,
+               LAPACKE_stgsyl_work,
+               LAPACKE_stp_nancheck,
+               LAPACKE_stp_trans,
+               LAPACKE_stpcon,
+               LAPACKE_stpcon_work,
+               LAPACKE_stpmqrt,
+               LAPACKE_stpmqrt_work,
+               LAPACKE_stpqrt2,
+               LAPACKE_stpqrt2_work,
+               LAPACKE_stprfb,
+               LAPACKE_stprfb_work,
+               LAPACKE_stprfs,
+               LAPACKE_stprfs_work,
+               LAPACKE_stptri,
+               LAPACKE_stptri_work,
+               LAPACKE_stptrs,
+               LAPACKE_stptrs_work,
+               LAPACKE_stpttf,
+               LAPACKE_stpttf_work,
+               LAPACKE_stpttr,
+               LAPACKE_stpttr_work,
+               LAPACKE_str_nancheck,
+               LAPACKE_str_trans,
+               LAPACKE_strcon,
+               LAPACKE_strcon_work,
+               LAPACKE_strevc,
+               LAPACKE_strevc_work,
+               LAPACKE_strexc,
+               LAPACKE_strexc_work,
+               LAPACKE_strrfs,
+               LAPACKE_strrfs_work,
+               LAPACKE_strsen,
+               LAPACKE_strsen_work,
+               LAPACKE_strsna,
+               LAPACKE_strsna_work,
+               LAPACKE_strsyl,
+               LAPACKE_strsyl_work,
+               LAPACKE_strtri,
+               LAPACKE_strtri_work,
+               LAPACKE_strtrs,
+               LAPACKE_strtrs_work,
+               LAPACKE_strttf,
+               LAPACKE_strttf_work,
+               LAPACKE_strttp,
+               LAPACKE_strttp_work,
+               LAPACKE_stzrzf,
+               LAPACKE_stzrzf_work,
+               LAPACKE_xerbla,
+               LAPACKE_z_nancheck,
+               LAPACKE_zbbcsd,
+               LAPACKE_zbbcsd_work,
+               LAPACKE_zbdsqr,
+               LAPACKE_zbdsqr_work,
+               LAPACKE_zcgesv,
+               LAPACKE_zcgesv_work,
+               LAPACKE_zcposv,
+               LAPACKE_zcposv_work,
+               LAPACKE_zgb_nancheck,
+               LAPACKE_zgb_trans,
+               LAPACKE_zgbbrd,
+               LAPACKE_zgbbrd_work,
+               LAPACKE_zgbcon,
+               LAPACKE_zgbcon_work,
+               LAPACKE_zgbequ,
+               LAPACKE_zgbequ_work,
+               LAPACKE_zgbequb,
+               LAPACKE_zgbequb_work,
+               LAPACKE_zgbrfs,
+               LAPACKE_zgbrfs_work,
+               LAPACKE_zgbsv,
+               LAPACKE_zgbsv_work,
+               LAPACKE_zgbsvx,
+               LAPACKE_zgbsvx_work,
+               LAPACKE_zgbtrf,
+               LAPACKE_zgbtrf_work,
+               LAPACKE_zgbtrs,
+               LAPACKE_zgbtrs_work,
+               LAPACKE_zge_nancheck,
+               LAPACKE_zge_trans,
+               LAPACKE_zgebak,
+               LAPACKE_zgebak_work,
+               LAPACKE_zgebal,
+               LAPACKE_zgebal_work,
+               LAPACKE_zgebrd,
+               LAPACKE_zgebrd_work,
+               LAPACKE_zgecon,
+               LAPACKE_zgecon_work,
+               LAPACKE_zgeequ,
+               LAPACKE_zgeequ_work,
+               LAPACKE_zgeequb,
+               LAPACKE_zgeequb_work,
+               LAPACKE_zgees,
+               LAPACKE_zgees_work,
+               LAPACKE_zgeesx,
+               LAPACKE_zgeesx_work,
+               LAPACKE_zgeev,
+               LAPACKE_zgeev_work,
+               LAPACKE_zgeevx,
+               LAPACKE_zgeevx_work,
+               LAPACKE_zgehrd,
+               LAPACKE_zgehrd_work,
+               LAPACKE_zgelq2,
+               LAPACKE_zgelq2_work,
+               LAPACKE_zgelqf,
+               LAPACKE_zgelqf_work,
+               LAPACKE_zgels,
+               LAPACKE_zgels_work,
+               LAPACKE_zgelsd,
+               LAPACKE_zgelsd_work,
+               LAPACKE_zgelss,
+               LAPACKE_zgelss_work,
+               LAPACKE_zgelsy,
+               LAPACKE_zgelsy_work,
+               LAPACKE_zgemqrt,
+               LAPACKE_zgemqrt_work,
+               LAPACKE_zgeqlf,
+               LAPACKE_zgeqlf_work,
+               LAPACKE_zgeqp3,
+               LAPACKE_zgeqp3_work,
+               LAPACKE_zgeqpf,
+               LAPACKE_zgeqpf_work,
+               LAPACKE_zgeqr2,
+               LAPACKE_zgeqr2_work,
+               LAPACKE_zgeqrf,
+               LAPACKE_zgeqrf_work,
+               LAPACKE_zgeqrfp,
+               LAPACKE_zgeqrfp_work,
+               LAPACKE_zgeqrt,
+               LAPACKE_zgeqrt2,
+               LAPACKE_zgeqrt2_work,
+               LAPACKE_zgeqrt3,
+               LAPACKE_zgeqrt3_work,
+               LAPACKE_zgeqrt_work,
+               LAPACKE_zgerfs,
+               LAPACKE_zgerfs_work,
+               LAPACKE_zgerqf,
+               LAPACKE_zgerqf_work,
+               LAPACKE_zgesdd,
+               LAPACKE_zgesdd_work,
+               LAPACKE_zgesv,
+               LAPACKE_zgesv_work,
+               LAPACKE_zgesvd,
+               LAPACKE_zgesvd_work,
+               LAPACKE_zgesvx,
+               LAPACKE_zgesvx_work,
+               LAPACKE_zgetf2,
+               LAPACKE_zgetf2_work,
+               LAPACKE_zgetrf,
+               LAPACKE_zgetrf_work,
+               LAPACKE_zgetri,
+               LAPACKE_zgetri_work,
+               LAPACKE_zgetrs,
+               LAPACKE_zgetrs_work,
+               LAPACKE_zgg_nancheck,
+               LAPACKE_zgg_trans,
+               LAPACKE_zggbak,
+               LAPACKE_zggbak_work,
+               LAPACKE_zggbal,
+               LAPACKE_zggbal_work,
+               LAPACKE_zgges,
+               LAPACKE_zgges_work,
+               LAPACKE_zggesx,
+               LAPACKE_zggesx_work,
+               LAPACKE_zggev,
+               LAPACKE_zggev_work,
+               LAPACKE_zggevx,
+               LAPACKE_zggevx_work,
+               LAPACKE_zggglm,
+               LAPACKE_zggglm_work,
+               LAPACKE_zgghrd,
+               LAPACKE_zgghrd_work,
+               LAPACKE_zgglse,
+               LAPACKE_zgglse_work,
+               LAPACKE_zggqrf,
+               LAPACKE_zggqrf_work,
+               LAPACKE_zggrqf,
+               LAPACKE_zggrqf_work,
+               LAPACKE_zggsvd,
+               LAPACKE_zggsvd_work,
+               LAPACKE_zggsvp,
+               LAPACKE_zggsvp_work,
+               LAPACKE_zgt_nancheck,
+               LAPACKE_zgtcon,
+               LAPACKE_zgtcon_work,
+               LAPACKE_zgtrfs,
+               LAPACKE_zgtrfs_work,
+               LAPACKE_zgtsv,
+               LAPACKE_zgtsv_work,
+               LAPACKE_zgtsvx,
+               LAPACKE_zgtsvx_work,
+               LAPACKE_zgttrf,
+               LAPACKE_zgttrf_work,
+               LAPACKE_zgttrs,
+               LAPACKE_zgttrs_work,
+               LAPACKE_zhb_nancheck,
+               LAPACKE_zhb_trans,
+               LAPACKE_zhbev,
+               LAPACKE_zhbev_work,
+               LAPACKE_zhbevd,
+               LAPACKE_zhbevd_work,
+               LAPACKE_zhbevx,
+               LAPACKE_zhbevx_work,
+               LAPACKE_zhbgst,
+               LAPACKE_zhbgst_work,
+               LAPACKE_zhbgv,
+               LAPACKE_zhbgv_work,
+               LAPACKE_zhbgvd,
+               LAPACKE_zhbgvd_work,
+               LAPACKE_zhbgvx,
+               LAPACKE_zhbgvx_work,
+               LAPACKE_zhbtrd,
+               LAPACKE_zhbtrd_work,
+               LAPACKE_zhe_nancheck,
+               LAPACKE_zhe_trans,
+               LAPACKE_zhecon,
+               LAPACKE_zhecon_work,
+               LAPACKE_zheequb,
+               LAPACKE_zheequb_work,
+               LAPACKE_zheev,
+               LAPACKE_zheev_work,
+               LAPACKE_zheevd,
+               LAPACKE_zheevd_work,
+               LAPACKE_zheevr,
+               LAPACKE_zheevr_work,
+               LAPACKE_zheevx,
+               LAPACKE_zheevx_work,
+               LAPACKE_zhegst,
+               LAPACKE_zhegst_work,
+               LAPACKE_zhegv,
+               LAPACKE_zhegv_work,
+               LAPACKE_zhegvd,
+               LAPACKE_zhegvd_work,
+               LAPACKE_zhegvx,
+               LAPACKE_zhegvx_work,
+               LAPACKE_zherfs,
+               LAPACKE_zherfs_work,
+               LAPACKE_zhesv,
+               LAPACKE_zhesv_work,
+               LAPACKE_zhesvx,
+               LAPACKE_zhesvx_work,
+               LAPACKE_zheswapr,
+               LAPACKE_zheswapr_work,
+               LAPACKE_zhetrd,
+               LAPACKE_zhetrd_work,
+               LAPACKE_zhetrf,
+               LAPACKE_zhetrf_work,
+               LAPACKE_zhetri,
+               LAPACKE_zhetri2,
+               LAPACKE_zhetri2_work,
+               LAPACKE_zhetri2x,
+               LAPACKE_zhetri2x_work,
+               LAPACKE_zhetri_work,
+               LAPACKE_zhetrs,
+               LAPACKE_zhetrs2,
+               LAPACKE_zhetrs2_work,
+               LAPACKE_zhetrs_work,
+               LAPACKE_zhfrk,
+               LAPACKE_zhfrk_work,
+               LAPACKE_zhgeqz,
+               LAPACKE_zhgeqz_work,
+               LAPACKE_zhp_nancheck,
+               LAPACKE_zhp_trans,
+               LAPACKE_zhpcon,
+               LAPACKE_zhpcon_work,
+               LAPACKE_zhpev,
+               LAPACKE_zhpev_work,
+               LAPACKE_zhpevd,
+               LAPACKE_zhpevd_work,
+               LAPACKE_zhpevx,
+               LAPACKE_zhpevx_work,
+               LAPACKE_zhpgst,
+               LAPACKE_zhpgst_work,
+               LAPACKE_zhpgv,
+               LAPACKE_zhpgv_work,
+               LAPACKE_zhpgvd,
+               LAPACKE_zhpgvd_work,
+               LAPACKE_zhpgvx,
+               LAPACKE_zhpgvx_work,
+               LAPACKE_zhprfs,
+               LAPACKE_zhprfs_work,
+               LAPACKE_zhpsv,
+               LAPACKE_zhpsv_work,
+               LAPACKE_zhpsvx,
+               LAPACKE_zhpsvx_work,
+               LAPACKE_zhptrd,
+               LAPACKE_zhptrd_work,
+               LAPACKE_zhptrf,
+               LAPACKE_zhptrf_work,
+               LAPACKE_zhptri,
+               LAPACKE_zhptri_work,
+               LAPACKE_zhptrs,
+               LAPACKE_zhptrs_work,
+               LAPACKE_zhs_nancheck,
+               LAPACKE_zhs_trans,
+               LAPACKE_zhsein,
+               LAPACKE_zhsein_work,
+               LAPACKE_zhseqr,
+               LAPACKE_zhseqr_work,
+               LAPACKE_zlacgv,
+               LAPACKE_zlacgv_work,
+               LAPACKE_zlacpy,
+               LAPACKE_zlacpy_work,
+               LAPACKE_zlag2c,
+               LAPACKE_zlag2c_work,
+               LAPACKE_zlange,
+               LAPACKE_zlange_work,
+               LAPACKE_zlanhe,
+               LAPACKE_zlanhe_work,
+               LAPACKE_zlansy,
+               LAPACKE_zlansy_work,
+               LAPACKE_zlantr,
+               LAPACKE_zlantr_work,
+               LAPACKE_zlapmr,
+               LAPACKE_zlapmr_work,
+               LAPACKE_zlarfb,
+               LAPACKE_zlarfb_work,
+               LAPACKE_zlarfg,
+               LAPACKE_zlarfg_work,
+               LAPACKE_zlarft,
+               LAPACKE_zlarft_work,
+               LAPACKE_zlarfx,
+               LAPACKE_zlarfx_work,
+               LAPACKE_zlarnv,
+               LAPACKE_zlarnv_work,
+               LAPACKE_zlaset,
+               LAPACKE_zlaset_work,
+               LAPACKE_zlaswp,
+               LAPACKE_zlaswp_work,
+               LAPACKE_zlauum,
+               LAPACKE_zlauum_work,
+               LAPACKE_zpb_nancheck,
+               LAPACKE_zpb_trans,
+               LAPACKE_zpbcon,
+               LAPACKE_zpbcon_work,
+               LAPACKE_zpbequ,
+               LAPACKE_zpbequ_work,
+               LAPACKE_zpbrfs,
+               LAPACKE_zpbrfs_work,
+               LAPACKE_zpbstf,
+               LAPACKE_zpbstf_work,
+               LAPACKE_zpbsv,
+               LAPACKE_zpbsv_work,
+               LAPACKE_zpbsvx,
+               LAPACKE_zpbsvx_work,
+               LAPACKE_zpbtrf,
+               LAPACKE_zpbtrf_work,
+               LAPACKE_zpbtrs,
+               LAPACKE_zpbtrs_work,
+               LAPACKE_zpf_nancheck,
+               LAPACKE_zpf_trans,
+               LAPACKE_zpftrf,
+               LAPACKE_zpftrf_work,
+               LAPACKE_zpftri,
+               LAPACKE_zpftri_work,
+               LAPACKE_zpftrs,
+               LAPACKE_zpftrs_work,
+               LAPACKE_zpo_nancheck,
+               LAPACKE_zpo_trans,
+               LAPACKE_zpocon,
+               LAPACKE_zpocon_work,
+               LAPACKE_zpoequ,
+               LAPACKE_zpoequ_work,
+               LAPACKE_zpoequb,
+               LAPACKE_zpoequb_work,
+               LAPACKE_zporfs,
+               LAPACKE_zporfs_work,
+               LAPACKE_zposv,
+               LAPACKE_zposv_work,
+               LAPACKE_zposvx,
+               LAPACKE_zposvx_work,
+               LAPACKE_zpotrf,
+               LAPACKE_zpotrf_work,
+               LAPACKE_zpotri,
+               LAPACKE_zpotri_work,
+               LAPACKE_zpotrs,
+               LAPACKE_zpotrs_work,
+               LAPACKE_zpp_nancheck,
+               LAPACKE_zpp_trans,
+               LAPACKE_zppcon,
+               LAPACKE_zppcon_work,
+               LAPACKE_zppequ,
+               LAPACKE_zppequ_work,
+               LAPACKE_zpprfs,
+               LAPACKE_zpprfs_work,
+               LAPACKE_zppsv,
+               LAPACKE_zppsv_work,
+               LAPACKE_zppsvx,
+               LAPACKE_zppsvx_work,
+               LAPACKE_zpptrf,
+               LAPACKE_zpptrf_work,
+               LAPACKE_zpptri,
+               LAPACKE_zpptri_work,
+               LAPACKE_zpptrs,
+               LAPACKE_zpptrs_work,
+               LAPACKE_zpstrf,
+               LAPACKE_zpstrf_work,
+               LAPACKE_zpt_nancheck,
+               LAPACKE_zptcon,
+               LAPACKE_zptcon_work,
+               LAPACKE_zpteqr,
+               LAPACKE_zpteqr_work,
+               LAPACKE_zptrfs,
+               LAPACKE_zptrfs_work,
+               LAPACKE_zptsv,
+               LAPACKE_zptsv_work,
+               LAPACKE_zptsvx,
+               LAPACKE_zptsvx_work,
+               LAPACKE_zpttrf,
+               LAPACKE_zpttrf_work,
+               LAPACKE_zpttrs,
+               LAPACKE_zpttrs_work,
+               LAPACKE_zsp_nancheck,
+               LAPACKE_zsp_trans,
+               LAPACKE_zspcon,
+               LAPACKE_zspcon_work,
+               LAPACKE_zsprfs,
+               LAPACKE_zsprfs_work,
+               LAPACKE_zspsv,
+               LAPACKE_zspsv_work,
+               LAPACKE_zspsvx,
+               LAPACKE_zspsvx_work,
+               LAPACKE_zsptrf,
+               LAPACKE_zsptrf_work,
+               LAPACKE_zsptri,
+               LAPACKE_zsptri_work,
+               LAPACKE_zsptrs,
+               LAPACKE_zsptrs_work,
+               LAPACKE_zst_nancheck,
+               LAPACKE_zstedc,
+               LAPACKE_zstedc_work,
+               LAPACKE_zstegr,
+               LAPACKE_zstegr_work,
+               LAPACKE_zstein,
+               LAPACKE_zstein_work,
+               LAPACKE_zstemr,
+               LAPACKE_zstemr_work,
+               LAPACKE_zsteqr,
+               LAPACKE_zsteqr_work,
+               LAPACKE_zsy_nancheck,
+               LAPACKE_zsy_trans,
+               LAPACKE_zsycon,
+               LAPACKE_zsycon_work,
+               LAPACKE_zsyconv,
+               LAPACKE_zsyconv_work,
+               LAPACKE_zsyequb,
+               LAPACKE_zsyequb_work,
+               LAPACKE_zsyrfs,
+               LAPACKE_zsyrfs_work,
+               LAPACKE_zsysv,
+               LAPACKE_zsysv_work,
+               LAPACKE_zsysvx,
+               LAPACKE_zsysvx_work,
+               LAPACKE_zsyswapr,
+               LAPACKE_zsyswapr_work,
+               LAPACKE_zsytrf,
+               LAPACKE_zsytrf_work,
+               LAPACKE_zsytri,
+               LAPACKE_zsytri2,
+               LAPACKE_zsytri2_work,
+               LAPACKE_zsytri2x,
+               LAPACKE_zsytri2x_work,
+               LAPACKE_zsytri_work,
+               LAPACKE_zsytrs,
+               LAPACKE_zsytrs2,
+               LAPACKE_zsytrs2_work,
+               LAPACKE_zsytrs_work,
+               LAPACKE_ztb_nancheck,
+               LAPACKE_ztb_trans,
+               LAPACKE_ztbcon,
+               LAPACKE_ztbcon_work,
+               LAPACKE_ztbrfs,
+               LAPACKE_ztbrfs_work,
+               LAPACKE_ztbtrs,
+               LAPACKE_ztbtrs_work,
+               LAPACKE_ztf_nancheck,
+               LAPACKE_ztf_trans,
+               LAPACKE_ztfsm,
+               LAPACKE_ztfsm_work,
+               LAPACKE_ztftri,
+               LAPACKE_ztftri_work,
+               LAPACKE_ztfttp,
+               LAPACKE_ztfttp_work,
+               LAPACKE_ztfttr,
+               LAPACKE_ztfttr_work,
+               LAPACKE_ztgevc,
+               LAPACKE_ztgevc_work,
+               LAPACKE_ztgexc,
+               LAPACKE_ztgexc_work,
+               LAPACKE_ztgsen,
+               LAPACKE_ztgsen_work,
+               LAPACKE_ztgsja,
+               LAPACKE_ztgsja_work,
+               LAPACKE_ztgsna,
+               LAPACKE_ztgsna_work,
+               LAPACKE_ztgsyl,
+               LAPACKE_ztgsyl_work,
+               LAPACKE_ztp_nancheck,
+               LAPACKE_ztp_trans,
+               LAPACKE_ztpcon,
+               LAPACKE_ztpcon_work,
+               LAPACKE_ztpmqrt,
+               LAPACKE_ztpmqrt_work,
+               LAPACKE_ztpqrt,
+               LAPACKE_ztpqrt2,
+               LAPACKE_ztpqrt2_work,
+               LAPACKE_ztpqrt_work,
+               LAPACKE_ztprfb,
+               LAPACKE_ztprfb_work,
+               LAPACKE_ztprfs,
+               LAPACKE_ztprfs_work,
+               LAPACKE_ztptri,
+               LAPACKE_ztptri_work,
+               LAPACKE_ztptrs,
+               LAPACKE_ztptrs_work,
+               LAPACKE_ztpttf,
+               LAPACKE_ztpttf_work,
+               LAPACKE_ztpttr,
+               LAPACKE_ztpttr_work,
+               LAPACKE_ztr_nancheck,
+               LAPACKE_ztr_trans,
+               LAPACKE_ztrcon,
+               LAPACKE_ztrcon_work,
+               LAPACKE_ztrevc,
+               LAPACKE_ztrevc_work,
+               LAPACKE_ztrexc,
+               LAPACKE_ztrexc_work,
+               LAPACKE_ztrrfs,
+               LAPACKE_ztrrfs_work,
+               LAPACKE_ztrsen,
+               LAPACKE_ztrsen_work,
+               LAPACKE_ztrsna,
+               LAPACKE_ztrsna_work,
+               LAPACKE_ztrsyl,
+               LAPACKE_ztrsyl_work,
+               LAPACKE_ztrtri,
+               LAPACKE_ztrtri_work,
+               LAPACKE_ztrtrs,
+               LAPACKE_ztrtrs_work,
+               LAPACKE_ztrttf,
+               LAPACKE_ztrttf_work,
+               LAPACKE_ztrttp,
+               LAPACKE_ztrttp_work,
+               LAPACKE_ztzrzf,
+               LAPACKE_ztzrzf_work,
+               LAPACKE_zunbdb,
+               LAPACKE_zunbdb_work,
+               LAPACKE_zuncsd,
+               LAPACKE_zuncsd_work,
+               LAPACKE_zungbr,
+               LAPACKE_zungbr_work,
+               LAPACKE_zunghr,
+               LAPACKE_zunghr_work,
+               LAPACKE_zunglq,
+               LAPACKE_zunglq_work,
+               LAPACKE_zungql,
+               LAPACKE_zungql_work,
+               LAPACKE_zungqr,
+               LAPACKE_zungqr_work,
+               LAPACKE_zungrq,
+               LAPACKE_zungrq_work,
+               LAPACKE_zungtr,
+               LAPACKE_zungtr_work,
+               LAPACKE_zunmbr,
+               LAPACKE_zunmbr_work,
+               LAPACKE_zunmhr,
+               LAPACKE_zunmhr_work,
+               LAPACKE_zunmlq,
+               LAPACKE_zunmlq_work,
+               LAPACKE_zunmql,
+               LAPACKE_zunmql_work,
+               LAPACKE_zunmqr,
+               LAPACKE_zunmqr_work,
+               LAPACKE_zunmrq,
+               LAPACKE_zunmrq_work,
+               LAPACKE_zunmrz,
+               LAPACKE_zunmrz_work,
+               LAPACKE_zunmtr,
+               LAPACKE_zunmtr_work,
+               LAPACKE_zupgtr,
+               LAPACKE_zupgtr_work,
+               LAPACKE_zupmtr,
+               LAPACKE_zupmtr_work,
+               );
+
 if ($ARGV[5] == 1) {
        #NO_LAPACK=1
-       @objs = (@blasobjs);
+       @underscore_objs = (@blasobjs);
 } elsif (-d "../lapack-3.1.1" || -d "../lapack-3.4.0") {
-    @objs = (@blasobjs, @lapackobjs, @lapackobjs2);
+    @underscore_objs = (@blasobjs, @lapackobjs, @lapackobjs2);
 } else {
-    @objs = (@blasobjs, @lapackobjs);
+    @underscore_objs = (@blasobjs, @lapackobjs);
 }
 
-if ($ARGV[3] == 1){ @objs = (@objs, @exblasobjs); };
+if ($ARGV[3] == 1){ @underscore_objs = (@underscore_objs, @exblasobjs); };
+
+if ($ARGV[1] eq "X86_64"){ @underscore_objs = (@underscore_objs, @gemm3mobjs); };
 
-if ($ARGV[1] eq "X86_64"){ @objs = (@objs, @gemm3mobjs); };
+if ($ARGV[1] eq "x86"){ @underscore_objs = (@underscore_objs, @gemm3mobjs); };
 
-if ($ARGV[1] eq "x86"){ @objs = (@objs, @gemm3mobjs); };
+if ($ARGV[1] eq "ia64"){ @underscore_objs = (@underscore_objs, @gemm3mobjs); };
 
-if ($ARGV[1] eq "ia64"){ @objs = (@objs, @gemm3mobjs); };
+if ($ARGV[1] eq "MIPS"){ @underscore_objs = (@underscore_objs, @gemm3mobjs); };
 
-if ($ARGV[1] eq "MIPS"){ @objs = (@objs, @gemm3mobjs); };
+if ($ARGV[6] == 1) {
+    #NO_LAPACK=1
+    @no_underscore_objs = (@cblasobjs);
+} else {
+    @no_underscore_objs = (@cblasobjs, @lapackeobjs);
+}
 
 @linuxobjs = ('__strtol_internal', 'exit', 'free', 'getenv', 'malloc',
              'mmap', 'printf', 'sqrt',
@@ -369,12 +2481,12 @@ $bu = $ARGV[2];
 $bu = "" if (($bu eq "0") || ($bu eq "1"));
 
 if ($ARGV[0] eq "linux"){
-    foreach $objs (@objs) {
+    foreach $objs (@underscore_objs) {
        print $objs, $bu, "\n";
     }
 
     if ($ARGV[4] == 0) {
-       foreach $objs (@cblasobjs) {
+       foreach $objs (@no_underscore_objs) {
            print $objs, "\n";
        }
     }
@@ -386,12 +2498,12 @@ if ($ARGV[0] eq "linux"){
 } 
 
 if ($ARGV[0] eq "osx"){
-    foreach $objs (@objs) {
+    foreach $objs (@underscore_objs) {
        print "_", $objs, $bu, "\n";
     }
 
     if ($ARGV[4] == 0) {
-       foreach $objs (@cblasobjs) {
+       foreach $objs (@no_underscore_objs) {
            print "_", $objs, "\n";
        }
     }
@@ -399,12 +2511,12 @@ if ($ARGV[0] eq "osx"){
 } 
 
 if ($ARGV[0] eq "aix"){
-    foreach $objs (@objs) {
+    foreach $objs (@underscore_objs) {
        print $objs, $bu, "\n";
     }
 
     if ($ARGV[4] == 0) {
-       foreach $objs (@cblasobjs) {
+       foreach $objs (@no_underscore_objs) {
            print $objs, "\n";
        }
     }
@@ -414,7 +2526,7 @@ if ($ARGV[0] eq "aix"){
 if ($ARGV[0] eq "win2k"){
     print "EXPORTS\n";
     $count = 1;    
-    foreach $objs (@objs) {
+    foreach $objs (@underscore_objs) {
        $uppercase = $objs;
        $uppercase =~ tr/[a-z]/[A-Z]/;
        print "\t$objs=$objs","_  \@", $count, "\n";
@@ -426,7 +2538,7 @@ if ($ARGV[0] eq "win2k"){
     }
 
        if ($ARGV[4] == 0) {
-               foreach $objs (@cblasobjs) {
+               foreach $objs (@no_underscore_objs) {
                        print "\t",$objs,"=$objs","  \@", $count, "\n";
                        $count ++;
                }
@@ -460,7 +2572,7 @@ if ($ARGV[0] eq "win2khpl"){
 if ($ARGV[0] eq "microsoft"){
     print "EXPORTS\n";
     $count = 1;    
-    foreach $objs (@objs) {
+    foreach $objs (@underscore_objs) {
        $uppercase = $objs;
        $uppercase =~ tr/[a-z]/[A-Z]/;
        print "\t$objs = $objs","_\n";
@@ -477,7 +2589,7 @@ if ($ARGV[0] eq "microsoft"){
 
 if ($ARGV[0] eq "win2kasm"){
     print "\t.text\n";
-    foreach $objs (@objs) {
+    foreach $objs (@underscore_objs) {
        $uppercase = $objs;
        $uppercase =~ tr/[a-z]/[A-Z]/;
        print "\t.align 16\n";
@@ -490,11 +2602,11 @@ if ($ARGV[0] eq "win2kasm"){
 
 if ($ARGV[0] eq "linktest"){
     print "int main(void){\n";
-    foreach $objs (@objs) {
+    foreach $objs (@underscore_objs) {
        print $objs, $bu, "();\n" if $objs ne "xerbla";
     }
     if ($ARGV[4] == 0) {
-       foreach $objs (@cblasobjs) {
+       foreach $objs (@no_underscore_objs) {
        print $objs, "();\n";
        }
     }
index 9d3cd5f..5d048f9 100644 (file)
@@ -887,3 +887,158 @@ diff -ruN lapack-3.4.0.old/TESTING/LIN/Makefile lapack-3.4.0/TESTING/LIN/Makefil
   
  ../xlintsts: xlintsts
        mv xlintsts $@
+
+diff -ruN lapack-3.4.0.old/lapacke/make.inc lapack-3.4.0/lapacke/make.inc
+--- lapack-3.4.0.old/lapacke/make.inc  2011-11-09 23:56:15 +0100
++++ lapack-3.4.0/lapacke/make.inc      1970-01-01 01:00:00 +0100
+@@ -1,66 +0,0 @@
+-##############################################################################
+-# Copyright (c) 2010, Intel Corp.
+-# All rights reserved.
+-#
+-# Redistribution and use in source and binary forms, with or without
+-# modification, are permitted provided that the following conditions are met:
+-#
+-#   * Redistributions of source code must retain the above copyright notice,
+-#     this list of conditions and the following disclaimer.
+-#   * Redistributions in binary form must reproduce the above copyright
+-#     notice, this list of conditions and the following disclaimer in the
+-#     documentation and/or other materials provided with the distribution.
+-#   * Neither the name of Intel Corporation nor the names of its contributors
+-#     may be used to endorse or promote products derived from this software
+-#     without specific prior written permission.
+-#
+-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+-# THE POSSIBILITY OF SUCH DAMAGE.
+-##############################################################################
+-# Contents: Native C interface to LAPACK
+-# Author: Intel Corporation
+-# September, 2010
+-##############################################################################
+-# This is the make.inc example. The following settings are used:
+-#
+-# Compiler: gcc
+-# Configuration file: turned off (default)
+-# Complex types: C99 (default)
+-# Name pattern: mixed case (default)
+-# (64-bit) Data model: LP64 (default)
+-#
+-# Basic include options.
+-# CC is the C compiler, normally invoked with options CFLAGS.
+-# LINKER is the linker, invoked with LDFLAGS.
+-#
+-# If libraries lapack.a and blas.a are built with
+-# - ifort, set:    LINKER = ifort
+-#                  LDFLAGS = -nofor-main
+-# - gfortran, set: LINKER = gfortran
+-#
+-CC = gcc
+-CFLAGS =
+-LINKER = gfortran
+-LDFLAGS =
+-#
+-# The name of the libraries to be created/linked to
+-# Ensure that the libraries have the same data model (LP64/ILP64).
+-#
+-LAPACKE = lapacke.a
+-LIBS =  /Users/julie/Documents/Boulot/lapack-dev/lapack/trunk/lapack_LINUX.a \
+-        /Users/julie/Documents/Boulot/lapack-dev/lapack/trunk/blas_LINUX.a  -lm
+-#  The archiver and the flag(s) to use when building archive (library)
+-#  If your system has no ranlib, set RANLIB = echo.
+-#
+-ARCH         = ar
+-ARCHFLAGS    = cr
+-RANLIB       = ranlib
+diff -ruN lapack-3.4.0.old/lapacke/make.inc.example lapack-3.4.0/lapacke/make.inc.example
+--- lapack-3.4.0.old/lapacke/make.inc.example  1970-01-01 01:00:00 +0100
++++ lapack-3.4.0/lapacke/make.inc.example      2011-11-09 23:56:15 +0100
+@@ -0,0 +1,66 @@
++##############################################################################
++# Copyright (c) 2010, Intel Corp.
++# All rights reserved.
++#
++# Redistribution and use in source and binary forms, with or without
++# modification, are permitted provided that the following conditions are met:
++#
++#   * Redistributions of source code must retain the above copyright notice,
++#     this list of conditions and the following disclaimer.
++#   * Redistributions in binary form must reproduce the above copyright
++#     notice, this list of conditions and the following disclaimer in the
++#     documentation and/or other materials provided with the distribution.
++#   * Neither the name of Intel Corporation nor the names of its contributors
++#     may be used to endorse or promote products derived from this software
++#     without specific prior written permission.
++#
++# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
++# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
++# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
++# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
++# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
++# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
++# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
++# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
++# THE POSSIBILITY OF SUCH DAMAGE.
++##############################################################################
++# Contents: Native C interface to LAPACK
++# Author: Intel Corporation
++# September, 2010
++##############################################################################
++# This is the make.inc example. The following settings are used:
++#
++# Compiler: gcc
++# Configuration file: turned off (default)
++# Complex types: C99 (default)
++# Name pattern: mixed case (default)
++# (64-bit) Data model: LP64 (default)
++#
++# Basic include options.
++# CC is the C compiler, normally invoked with options CFLAGS.
++# LINKER is the linker, invoked with LDFLAGS.
++#
++# If libraries lapack.a and blas.a are built with
++# - ifort, set:    LINKER = ifort
++#                  LDFLAGS = -nofor-main
++# - gfortran, set: LINKER = gfortran
++#
++CC = gcc
++CFLAGS =
++LINKER = gfortran
++LDFLAGS =
++#
++# The name of the libraries to be created/linked to
++# Ensure that the libraries have the same data model (LP64/ILP64).
++#
++LAPACKE = lapacke.a
++LIBS =  /Users/julie/Documents/Boulot/lapack-dev/lapack/trunk/lapack_LINUX.a \
++        /Users/julie/Documents/Boulot/lapack-dev/lapack/trunk/blas_LINUX.a  -lm
++#  The archiver and the flag(s) to use when building archive (library)
++#  If your system has no ranlib, set RANLIB = echo.
++#
++ARCH         = ar
++ARCHFLAGS    = cr
++RANLIB       = ranlib
+
+diff -ruN lapack-3.4.0.old/lapacke/src/Makefile lapack-3.4.0/lapacke/src/Makefile
+--- lapack-3.4.0.old/lapacke/src/Makefile      2011-11-09 23:56:15 +0100
++++ lapack-3.4.0/lapacke/src/Makefile  2012-04-06 13:57:50 +0200
+@@ -40,7 +40,8 @@
+ all: lib
+
+ lib: $(OBJ_FILES)
+-      $(ARCH) $(ARCHFLAGS) ../$(LAPACKE) $(OBJ_FILES)
++      # http://hackage.haskell.org/trac/gtk2hs/ticket/1146
++      echo $(OBJ_FILES) | xargs --max-args=100 $(ARCH) $(ARCHFLAGS) ../$(LAPACKE)
+       $(RANLIB) ../$(LAPACKE)
+
+ .c.o: