From 09b241784854e48620bea2a329fcc79344ca9d9b Mon Sep 17 00:00:00 2001 From: Xianyi Zhang Date: Tue, 27 Mar 2012 14:17:13 +0800 Subject: [PATCH 01/21] Fixed a typo in license file. --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index f5e4f35a7..1e93a6a73 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2011, Lab of Parallel Software and Computational Science,ICSAS +Copyright (c) 2011,2012 Lab of Parallel Software and Computational Science,ISCAS All rights reserved. Redistribution and use in source and binary forms, with or without From fad089ffff6cc8dd3d2f70397f6e4054372fe6f0 Mon Sep 17 00:00:00 2001 From: Xianyi Zhang Date: Thu, 5 Apr 2012 16:21:40 +0800 Subject: [PATCH 02/21] Fixed #84 the MD5 command line bug on Mac OSX. --- Makefile | 13 +++++++++++-- Makefile.system | 4 ++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index ba04aa989..afa8d2efb 100644 --- a/Makefile +++ b/Makefile @@ -232,18 +232,27 @@ endif lapack-3.4.0 : lapack-3.4.0.tgz 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) ;\ else \ - echo " lapack-3.4.0.tgz check sum is wrong (Please use orignal)." ;\ rm -rf lapack-3.4.0 ;\ + echo " Cannot download lapack-3.4.0.tgz or the MD5 check sum is wrong (Please use orignal)."; \ + exit 1; \ fi endif +endif + +LAPACK_URL=http://www.netlib.org/lapack/lapack-3.4.0.tgz lapack-3.4.0.tgz : ifndef NOFORTRAN - -wget http://www.netlib.org/lapack/lapack-3.4.0.tgz +ifeq ($(OSNAME), Darwin) + curl -O $(LAPACK_URL) +else + wget $(LAPACK_URL) +endif endif large.tgz : diff --git a/Makefile.system b/Makefile.system index 0fd223d60..bbd31e5ca 100644 --- a/Makefile.system +++ b/Makefile.system @@ -101,6 +101,7 @@ DLLWRAP = $(CROSS_SUFFIX)dllwrap ifeq ($(OSNAME), Darwin) export MACOSX_DEPLOYMENT_TARGET=10.2 +MD5SUM = md5 -r endif ifeq ($(OSNAME), Linux) @@ -651,7 +652,10 @@ PATCH = patch GREP = grep endif +ifndef MD5SUM MD5SUM = md5sum +endif + AWK = awk REVISION = -r$(VERSION) From 03b0eb19f719320773449b00183bbefb56fa21ad Mon Sep 17 00:00:00 2001 From: Xianyi Zhang Date: Thu, 5 Apr 2012 18:16:18 +0800 Subject: [PATCH 03/21] Refs #86. Test alpha=Nan in x86/x86_64 dscale. --- kernel/x86/scal_sse2.S | 3 ++- kernel/x86_64/scal_sse2.S | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/kernel/x86/scal_sse2.S b/kernel/x86/scal_sse2.S index dab543470..67c1f437b 100644 --- a/kernel/x86/scal_sse2.S +++ b/kernel/x86/scal_sse2.S @@ -76,7 +76,8 @@ xorps %xmm1, %xmm1 comisd %xmm0, %xmm1 jne .L100 # Alpha != ZERO - + jp .L100 # For Alpha = NaN + /* Alpha == ZERO */ cmpl $SIZE, INCX jne .L50 diff --git a/kernel/x86_64/scal_sse2.S b/kernel/x86_64/scal_sse2.S index b0abb4533..8f5612081 100644 --- a/kernel/x86_64/scal_sse2.S +++ b/kernel/x86_64/scal_sse2.S @@ -74,7 +74,8 @@ xorps %xmm1, %xmm1 comisd %xmm0, %xmm1 jne .L100 # Alpha != ZERO - + jp .L100 # For Alpha = NaN + /* Alpha == ZERO */ cmpq $SIZE, INCX jne .L50 From 435420d6d53d908e51daed5a7467dc694ea5ed06 Mon Sep 17 00:00:00 2001 From: Zaheer Chothia Date: Sat, 7 Apr 2012 10:39:09 +0200 Subject: [PATCH 04/21] Fixed #87. Export missing and new LAPACK 3.4.0 functions in shared library. --- exports/gensymbol | 96 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 66 insertions(+), 30 deletions(-) diff --git a/exports/gensymbol b/exports/gensymbol index 6b2a00672..edf4632d8 100644 --- a/exports/gensymbol +++ b/exports/gensymbol @@ -93,7 +93,7 @@ sgebrd, sgecon, sgeequ, sgees, sgeesx, sgeev, sgeevx, sgegs, sgegv, sgehd2, sgehrd, sgelq2, sgelqf, sgels, sgelsd, sgelss, sgelsx, sgelsy, sgeql2, sgeqlf, - sgeqp3, sgeqpf, sgeqr2, sgeqrf, sgerfs, sgerq2, sgerqf, + sgeqp3, sgeqpf, sgeqr2, sgeqr2p, sgeqrf, sgeqrfp, sgerfs, sgerq2, sgerqf, sgesc2, sgesdd, sgesvd, sgesvx, sgetc2, sgetri, sggbak, sggbal, sgges, sggesx, sggev, sggevx, @@ -108,8 +108,8 @@ slapll, slapmt, slaqgb, slaqge, slaqp2, slaqps, slaqsb, slaqsp, slaqsy, slaqr0, slaqr1, slaqr2, slaqr3, slaqr4, slaqr5, - slaqtr, slar1v, slar2v, - slarf, slarfb, slarfg, slarft, slarfx, slargv, + slaqtr, slar1v, slar2v, ilaslr, ilaslc, + slarf, slarfb, slarfg, slarfgp, slarft, slarfx, slargv, slarrv, slartv, slarz, slarzb, slarzt, slasy2, slasyf, slatbs, slatdf, slatps, slatrd, slatrs, slatrz, slatzm, @@ -120,7 +120,8 @@ sormr3, sormrq, sormrz, sormtr, spbcon, spbequ, spbrfs, spbstf, spbsv, spbsvx, spbtf2, spbtrf, spbtrs, spocon, spoequ, sporfs, sposv, - sposvx, spotrs, sppcon, sppequ, + sposvx, spotrs, spstrf, spstf2, + sppcon, sppequ, spprfs, sppsv, sppsvx, spptrf, spptri, spptrs, sptcon, spteqr, sptrfs, sptsv, sptsvx, spttrs, sptts2, srscl, ssbev, ssbevd, ssbevx, ssbgst, ssbgv, ssbgvd, ssbgvx, @@ -129,19 +130,27 @@ ssptrf, ssptri, ssptrs, sstegr, sstein, sstev, sstevd, sstevr, sstevx, ssycon, ssyev, ssyevd, ssyevr, ssyevx, ssygs2, ssygst, ssygv, ssygvd, ssygvx, ssyrfs, ssysv, ssysvx, - ssytd2, ssytf2, ssytrd, ssytrf, ssytri, ssytrs, stbcon, + ssytd2, ssytf2, ssytrd, ssytrf, ssytri, ssytri2, ssytri2x, + ssyswapr, ssytrs, ssytrs2, ssyconv, stbcon, stbrfs, stbtrs, stgevc, stgex2, stgexc, stgsen, stgsja, stgsna, stgsy2, stgsyl, stpcon, stprfs, stptri, stptrs, strcon, strevc, strexc, strrfs, strsen, strsna, strsyl, strtrs, stzrqf, stzrzf, sstemr, + slansf, spftrf, spftri, spftrs, ssfrk, stfsm, stftri, stfttp, + stfttr, stpttf, stpttr, strttf, strttp, + sgejsv, sgesvj, sgsvj0, sgsvj1, + sgeequb, ssyequb, spoequb, sgbequb, + sbbcsd, slapmr, sorbdb, sorcsd, + sgeqrt, sgeqrt2, sgeqrt3, sgemqrt, + stpqrt, stpqrt2, stpmqrt, stprfb, cbdsqr, cgbbrd, cgbcon, cgbequ, cgbrfs, cgbsv, cgbsvx, cgbtf2, cgbtrf, cgbtrs, cgebak, cgebal, cgebd2, cgebrd, cgecon, cgeequ, cgees, cgeesx, cgeev, cgeevx, cgegs, cgegv, cgehd2, cgehrd, cgelq2, cgelqf, cgels, cgelsd, cgelss, cgelsx, cgelsy, cgeql2, cgeqlf, cgeqp3, - cgeqpf, cgeqr2, cgeqrf, cgerfs, cgerq2, cgerqf, + cgeqpf, cgeqr2, cgeqr2p, cgeqrf, cgeqrfp, cgerfs, cgerq2, cgerqf, cgesc2, cgesdd, cgesvd, cgesvx, cgetc2, cgetri, cggbak, cggbal, cgges, cggesx, cggev, cggevx, cggglm, @@ -152,7 +161,8 @@ checon, cheev, cheevd, cheevr, cheevx, chegs2, chegst, chegv, chegvd, chegvx, cherfs, chesv, chesvx, chetd2, chetf2, chetrd, - chetrf, chetri, chetrs, chgeqz, chpcon, chpev, chpevd, + chetrf, chetri, chetri2, chetri2x, cheswapr, + chetrs, chetrs2, chgeqz, chpcon, chpev, chpevd, chpevx, chpgst, chpgv, chpgvd, chpgvx, chprfs, chpsv, chpsvx, chptrd, chptrf, chptri, chptrs, chsein, chseqr, clabrd, @@ -166,20 +176,22 @@ clantp, clantr, clapll, clapmt, clarcm, claqgb, claqge, claqhb, claqhe, claqhp, claqp2, claqps, claqsb, claqr0, claqr1, claqr2, claqr3, claqr4, claqr5, - claqsp, claqsy, clar1v, clar2v, clarf, clarfb, clarfg, clarft, + claqsp, claqsy, clar1v, clar2v, ilaclr, ilaclc, + clarf, clarfb, clarfg, clarfgp, clarft, clarfx, clargv, clarnv, clarrv, clartg, clartv, clarz, clarzb, clarzt, clascl, claset, clasr, classq, clasyf, clatbs, clatdf, clatps, clatrd, clatrs, clatrz, clatzm, cpbcon, cpbequ, cpbrfs, cpbstf, cpbsv, cpbsvx, cpbtf2, cpbtrf, cpbtrs, cpocon, cpoequ, cporfs, - cposv, cposvx, cpotrs, cppcon, - cppequ, cpprfs, cppsv, cppsvx, cpptrf, cpptri, cpptrs, + cposv, cposvx, cpotrs, cpstrf, cpstf2, + cppcon, cppequ, cpprfs, cppsv, cppsvx, cpptrf, cpptri, cpptrs, cptcon, cpteqr, cptrfs, cptsv, cptsvx, cpttrf, cpttrs, cptts2, crot, cspcon, cspmv, cspr, csprfs, cspsv, cspsvx, csptrf, csptri, csptrs, csrscl, cstedc, - cstegr, cstein, csteqr, csycon, + cstegr, cstein, csteqr, csycon, csyr, csyrfs, csysv, csysvx, csytf2, csytrf, csytri, - csytrs, ctbcon, ctbrfs, ctbtrs, ctgevc, ctgex2, + csytri2, csytri2x, csyswapr, + csytrs, csytrs2, csyconv, ctbcon, ctbrfs, ctbtrs, ctgevc, ctgex2, ctgexc, ctgsen, ctgsja, ctgsna, ctgsy2, ctgsyl, ctpcon, ctprfs, ctptri, ctptrs, ctrcon, ctrevc, ctrexc, ctrrfs, ctrsen, ctrsna, @@ -188,13 +200,19 @@ cungrq, cungtr, cunm2l, cunm2r, cunmbr, cunmhr, cunml2, cunmlq, cunmql, cunmqr, cunmr2, cunmr3, cunmrq, cunmrz, cunmtr, cupgtr, cupmtr, icmax1, scsum1, cstemr, - - dgbbrd, dgbcon, dgbequ, dgbrfs, dgbsv, + chfrk, ctfttp, clanhf, cpftrf, cpftri, cpftrs, ctfsm, ctftri, + ctfttr, ctpttf, ctpttr, ctrttf, ctrttp, + cgeequb, cgbequb, csyequb, cpoequb, cheequb, + cbbcsd, clapmr, cunbdb, cuncsd, + cgeqrt, cgeqrt2, cgeqrt3, cgemqrt, + ctpqrt, ctpqrt2, ctpmqrt, ctprfb, + + dgbbrd, dgbcon, dgbequ, dgbrfs, dgbsv, dgbsvx, dgbtf2, dgbtrf, dgbtrs, dgebak, dgebal, dgebd2, dgebrd, dgecon, dgeequ, dgees, dgeesx, dgeev, dgeevx, dgegs, dgegv, dgehd2, dgehrd, dgelq2, dgelqf, dgels, dgelsd, dgelss, dgelsx, dgelsy, dgeql2, dgeqlf, - dgeqp3, dgeqpf, dgeqr2, dgeqrf, dgerfs, dgerq2, dgerqf, + dgeqp3, dgeqpf, dgeqr2, dgeqr2p, dgeqrf, dgeqrfp, dgerfs, dgerq2, dgerqf, dgesc2, dgesdd, dgesvd, dgesvx, dgetc2, dgetri, dggbak, dggbal, dgges, dggesx, dggev, dggevx, @@ -209,8 +227,8 @@ dlapll, dlapmt, dlaqgb, dlaqge, dlaqp2, dlaqps, dlaqsb, dlaqsp, dlaqsy, dlaqr0, dlaqr1, dlaqr2, dlaqr3, dlaqr4, dlaqr5, - dlaqtr, dlar1v, dlar2v, - dlarf, dlarfb, dlarfg, dlarft, dlarfx, dlargv, + dlaqtr, dlar1v, dlar2v, iladlr, iladlc, + dlarf, dlarfb, dlarfg, dlarfgp, dlarft, dlarfx, dlargv, dlarrv, dlartv, dlarz, dlarzb, dlarzt, dlasy2, dlasyf, dlatbs, dlatdf, dlatps, dlatrd, dlatrs, dlatrz, dlatzm, @@ -221,7 +239,8 @@ dormr3, dormrq, dormrz, dormtr, dpbcon, dpbequ, dpbrfs, dpbstf, dpbsv, dpbsvx, dpbtf2, dpbtrf, dpbtrs, dpocon, dpoequ, dporfs, dposv, - dposvx, dpotrs, dppcon, dppequ, + dposvx, dpotrs, dpstrf, dpstf2, + dppcon, dppequ, dpprfs, dppsv, dppsvx, dpptrf, dpptri, dpptrs, dptcon, dpteqr, dptrfs, dptsv, dptsvx, dpttrs, dptts2, drscl, dsbev, dsbevd, dsbevx, dsbgst, dsbgv, dsbgvd, dsbgvx, @@ -231,20 +250,28 @@ dstevx, dsycon, dsyev, dsyevd, dsyevr, dsyevx, dsygs2, dsygst, dsygv, dsygvd, dsygvx, dsyrfs, dsysv, dsysvx, - dsytd2, dsytf2, dsytrd, dsytrf, dsytri, dsytrs, dtbcon, + dsytd2, dsytf2, dsytrd, dsytrf, dsytri, dsytrs, dsytrs2, + dsytri2, dsytri2x, dsyswapr, dsyconv, dtbcon, dtbrfs, dtbtrs, dtgevc, dtgex2, dtgexc, dtgsen, dtgsja, dtgsna, dtgsy2, dtgsyl, dtpcon, dtprfs, dtptri, dtptrs, dtrcon, dtrevc, dtrexc, dtrrfs, dtrsen, dtrsna, dtrsyl, dtrtrs, dtzrqf, dtzrzf, dstemr, - dsgesv, dlag2s, slag2d, - + dsgesv, dsposv, dlag2s, slag2d, dlat2s, + dlansf, dpftrf, dpftri, dpftrs, dsfrk, dtfsm, dtftri, dtfttp, + dtfttr, dtpttf, dtpttr, dtrttf, dtrttp, + dgejsv, dgesvj, dgsvj0, dgsvj1, + dgeequb, dsyequb, dpoequb, dgbequb, + dbbcsd, dlapmr, dorbdb, dorcsd, + dgeqrt, dgeqrt2, dgeqrt3, dgemqrt, + dtpqrt, dtpqrt2, dtpmqrt, dtprfb, + zbdsqr, zgbbrd, zgbcon, zgbequ, zgbrfs, zgbsv, zgbsvx, zgbtf2, zgbtrf, zgbtrs, zgebak, zgebal, zgebd2, zgebrd, zgecon, zgeequ, zgees, zgeesx, zgeev, zgeevx, zgegs, zgegv, zgehd2, zgehrd, zgelq2, zgelqf, zgels, zgelsd, zgelss, zgelsx, zgelsy, zgeql2, zgeqlf, zgeqp3, - zgeqpf, zgeqr2, zgeqrf, zgerfs, zgerq2, zgerqf, + zgeqpf, zgeqr2, zgeqr2p, zgeqrf, zgeqrfp, zgerfs, zgerq2, zgerqf, zgesc2, zgesdd, zgesvd, zgesvx, zgetc2, zgetri, zggbak, zggbal, zgges, zggesx, zggev, zggevx, zggglm, @@ -255,7 +282,8 @@ zhecon, zheev, zheevd, zheevr, zheevx, zhegs2, zhegst, zhegv, zhegvd, zhegvx, zherfs, zhesv, zhesvx, zhetd2, zhetf2, zhetrd, - zhetrf, zhetri, zhetrs, zhgeqz, zhpcon, zhpev, zhpevd, + zhetrf, zhetri, zhetri2, zhetri2x, zheswapr, + zhetrs, zhetrs2, zhgeqz, zhpcon, zhpev, zhpevd, zhpevx, zhpgst, zhpgv, zhpgvd, zhpgvx, zhprfs, zhpsv, zhpsvx, zhptrd, zhptrf, zhptri, zhptrs, zhsein, zhseqr, zlabrd, @@ -270,22 +298,24 @@ zlantp, zlantr, zlapll, zlapmt, zlaqgb, zlaqge, zlaqhb, zlaqhe, zlaqhp, zlaqp2, zlaqps, zlaqsb, zlaqr0, zlaqr1, zlaqr2, zlaqr3, zlaqr4, zlaqr5, - zlaqsp, zlaqsy, zlar1v, zlar2v, zlarcm, zlarf, zlarfb, - zlarfg, zlarft, + zlaqsp, zlaqsy, zlar1v, zlar2v, ilazlr, ilazlc, + zlarcm, zlarf, zlarfb, + zlarfg, zlarfgp, zlarft, zlarfx, zlargv, zlarnv, zlarrv, zlartg, zlartv, zlarz, zlarzb, zlarzt, zlascl, zlaset, zlasr, zlassq, zlasyf, zlatbs, zlatdf, zlatps, zlatrd, zlatrs, zlatrz, zlatzm, zpbcon, zpbequ, zpbrfs, zpbstf, zpbsv, zpbsvx, zpbtf2, zpbtrf, zpbtrs, zpocon, zpoequ, zporfs, - zposv, zposvx, zpotrs, zppcon, - zppequ, zpprfs, zppsv, zppsvx, zpptrf, zpptri, zpptrs, + zposv, zposvx, zpotrs, zpstrf, zpstf2, + zppcon, zppequ, zpprfs, zppsv, zppsvx, zpptrf, zpptri, zpptrs, zptcon, zpteqr, zptrfs, zptsv, zptsvx, zpttrf, zpttrs, zptts2, zrot, zspcon, zspmv, zspr, zsprfs, zspsv, zspsvx, zsptrf, zsptri, zsptrs, zdrscl, zstedc, - zstegr, zstein, zsteqr, zsycon, + zstegr, zstein, zsteqr, zsycon, zsyr, zsyrfs, zsysv, zsysvx, zsytf2, zsytrf, zsytri, - zsytrs, ztbcon, ztbrfs, ztbtrs, ztgevc, ztgex2, + zsytri2, zsytri2x, zsyswapr, + zsytrs, zsytrs2, zsyconv, ztbcon, ztbrfs, ztbtrs, ztgevc, ztgex2, ztgexc, ztgsen, ztgsja, ztgsna, ztgsy2, ztgsyl, ztpcon, ztprfs, ztptri, ztptrs, ztrcon, ztrevc, ztrexc, ztrrfs, ztrsen, ztrsna, @@ -295,7 +325,13 @@ zunmlq, zunmql, zunmqr, zunmr2, zunmr3, zunmrq, zunmrz, zunmtr, zupgtr, zupmtr, izmax1, dzsum1, zstemr, - zcgesv, zlag2c, clag2z, + zcgesv, zcposv, zlag2c, clag2z, zlat2c, + zhfrk, ztfttp, zlanhf, zpftrf, zpftri, zpftrs, ztfsm, ztftri, + ztfttr, ztpttf, ztpttr, ztrttf, ztrttp, + zgeequb, zgbequb, zsyequb, zpoequb, zheequb, + zbbcsd, zlapmr, zunbdb, zuncsd, + zgeqrt, zgeqrt2, zgeqrt3, zgemqrt, + ztpqrt, ztpqrt2, ztpmqrt, ztprfb, ); if ($ARGV[5] == 1) { From 78914475aeecc2ad51da1da9b9ab0958c9179cfd Mon Sep 17 00:00:00 2001 From: Zaheer Chothia Date: Sat, 7 Apr 2012 10:40:46 +0200 Subject: [PATCH 05/21] Fixed #88. Build LAPACKE: C Interface to LAPACK. --- Makefile | 93 +- Makefile.install | 7 + Makefile.rule | 3 + Makefile.system | 8 + exports/Makefile | 16 +- exports/gensymbol | 2152 +++++++++++++++++++++++++++++++++++++++- patch.for_lapack-3.4.0 | 155 +++ 7 files changed, 2371 insertions(+), 63 deletions(-) diff --git a/Makefile b/Makefile index afa8d2efb..6f0a255ab 100644 --- 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 - -@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 + -@$(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 "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 diff --git a/Makefile.install b/Makefile.install index 46105fc39..2ba10d0dc 100644 --- a/Makefile.install +++ b/Makefile.install @@ -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) diff --git a/Makefile.rule b/Makefile.rule index 650478a07..843888b4c 100644 --- a/Makefile.rule +++ b/Makefile.rule @@ -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 diff --git a/Makefile.system b/Makefile.system index bbd31e5ca..bc5b20d86 100644 --- a/Makefile.system +++ b/Makefile.system @@ -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 diff --git a/exports/Makefile b/exports/Makefile index 873e8b270..c4d2abd63 100644 --- a/exports/Makefile +++ b/exports/Makefile @@ -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* diff --git a/exports/gensymbol b/exports/gensymbol index edf4632d8..626827e4e 100644 --- a/exports/gensymbol +++ b/exports/gensymbol @@ -334,24 +334,2136 @@ 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"){ @objs = (@objs, @gemm3mobjs); }; +if ($ARGV[1] eq "X86_64"){ @underscore_objs = (@underscore_objs, @gemm3mobjs); }; -if ($ARGV[1] eq "x86"){ @objs = (@objs, @gemm3mobjs); }; +if ($ARGV[1] eq "x86"){ @underscore_objs = (@underscore_objs, @gemm3mobjs); }; -if ($ARGV[1] eq "ia64"){ @objs = (@objs, @gemm3mobjs); }; +if ($ARGV[1] eq "ia64"){ @underscore_objs = (@underscore_objs, @gemm3mobjs); }; -if ($ARGV[1] eq "MIPS"){ @objs = (@objs, @gemm3mobjs); }; +if ($ARGV[1] eq "MIPS"){ @underscore_objs = (@underscore_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"; } } diff --git a/patch.for_lapack-3.4.0 b/patch.for_lapack-3.4.0 index 9d3cd5f31..5d048f9c4 100644 --- a/patch.for_lapack-3.4.0 +++ b/patch.for_lapack-3.4.0 @@ -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: From fd2ee0c9e21a0a7ce339ddd4e4527b675a7e7515 Mon Sep 17 00:00:00 2001 From: Xianyi Zhang Date: Fri, 13 Apr 2012 23:12:06 +0800 Subject: [PATCH 06/21] Refs #88. Fixed the build bug about LAPACKE C Interface to LAPACKE. --- Makefile | 13 +- Makefile.install | 6 +- Makefile.rule | 3 +- Makefile.system | 2 + exports/Makefile | 8 + exports/gensymbol | 8 +- patch.for_lapack-3.4.0 | 2208 +++++++++++++++++++++++++++++++++++++--- 7 files changed, 2093 insertions(+), 155 deletions(-) diff --git a/Makefile b/Makefile index 6f0a255ab..5de7987e9 100644 --- a/Makefile +++ b/Makefile @@ -240,12 +240,20 @@ ifndef NOFORTRAN -@cat make.inc >> $(NETLIB_LAPACK_DIR)/make.inc endif +LAPACKE_CFLAGS = $(CFLAGS) +LAPACKE_LDFLAGS = $(FFLAGS) $(EXTRALIB) +ifeq ($(F_COMPILER), INTEL) +LAPACKE_LDFLAGS += -nofor-main +endif +ifdef INTERFACE64 +LAPACKE_CFLAGS += -DHAVE_LAPACK_CONFIG_H -DLAPACK_ILP64 +endif $(NETLIB_LAPACK_DIR)/lapacke/make.inc : ifndef NOFORTRAN -@echo "CC = $(CC)" > $(NETLIB_LAPACK_DIR)/lapacke/make.inc - -@echo "CFLAGS = $(CFLAGS)" >> $(NETLIB_LAPACK_DIR)/lapacke/make.inc + -@echo "CFLAGS = $(LAPACKE_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 "LDFLAGS = $(LAPACKE_LDFLAGS)" >> $(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 @@ -259,6 +267,7 @@ ifndef NO_LAPACK @if test `$(MD5SUM) lapack-3.4.0.tgz | $(AWK) '{print $$1}'` = 02d5706ec03ba885fc246e5fa10d8c70; then \ echo $(TAR) zxf $< ;\ $(TAR) zxf $< && (cd $(NETLIB_LAPACK_DIR); $(PATCH) -p1 < ../patch.for_lapack-3.4.0) ;\ + rm -f $(NETLIB_LAPACK_DIR)/lapacke/make.inc ;\ else \ rm -rf $(NETLIB_LAPACK_DIR) ;\ echo " Cannot download lapack-3.4.0.tgz or the MD5 check sum is wrong (Please use orignal)."; \ diff --git a/Makefile.install b/Makefile.install index 2ba10d0dc..6ecfd91ed 100644 --- a/Makefile.install +++ b/Makefile.install @@ -37,9 +37,9 @@ install : lib.grd 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 + @-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 diff --git a/Makefile.rule b/Makefile.rule index 843888b4c..7a1e845fe 100644 --- a/Makefile.rule +++ b/Makefile.rule @@ -48,7 +48,8 @@ VERSION = 0.1.0 # If you don't need CBLAS interface, please comment it in. # NO_CBLAS = 1 -# If you don't need LAPACK, please comment it in. +# If you don't need LAPACK, please comment it in. +# If you set NO_LAPACK=1, the library automatically sets NO_LAPACKE=1. # NO_LAPACK = 1 # If you don't need LAPACKE (C Interface to LAPACK), please comment it in. diff --git a/Makefile.system b/Makefile.system index bc5b20d86..dbc8ffe07 100644 --- a/Makefile.system +++ b/Makefile.system @@ -538,6 +538,8 @@ endif ifeq ($(NO_LAPACK), 1) CCOMMON_OPT += -DNO_LAPACK +#Disable LAPACK C interface +NO_LAPACKE = 1 endif ifeq ($(NO_LAPACKE), 1) diff --git a/exports/Makefile b/exports/Makefile index c4d2abd63..971bd0bed 100644 --- a/exports/Makefile +++ b/exports/Makefile @@ -10,6 +10,14 @@ ifndef NO_CBLAS NO_CBLAS = 0 endif +ifndef NO_LAPACK +NO_LAPACK = 0 +endif + +ifndef NO_LAPACKE +NO_LAPACKE = 0 +endif + ifeq ($(OSNAME), WINNT) ifeq ($(F_COMPILER), GFORTRAN) EXTRALIB += -lgfortran diff --git a/exports/gensymbol b/exports/gensymbol index 626827e4e..d9d35de48 100644 --- a/exports/gensymbol +++ b/exports/gensymbol @@ -332,8 +332,14 @@ zbbcsd, zlapmr, zunbdb, zuncsd, zgeqrt, zgeqrt2, zgeqrt3, zgemqrt, ztpqrt, ztpqrt2, ztpmqrt, ztprfb, + ); +@lapack_extendedprecision_objs = ( + zposvxx, clagge, clatms, chesvxx, cposvxx, cgesvxx, ssyrfssx, csyrfsx, + dlagsy, dsysvxx, sporfsx, slatms, zlatms, zherfsx, csysvxx, + ); + @lapackeobjs = ( lapack_make_complex_double, lapack_make_complex_float, @@ -2459,7 +2465,7 @@ if ($ARGV[1] eq "ia64"){ @underscore_objs = (@underscore_objs, @gemm3mobjs); }; if ($ARGV[1] eq "MIPS"){ @underscore_objs = (@underscore_objs, @gemm3mobjs); }; if ($ARGV[6] == 1) { - #NO_LAPACK=1 + #NO_LAPACKE=1 @no_underscore_objs = (@cblasobjs); } else { @no_underscore_objs = (@cblasobjs, @lapackeobjs); diff --git a/patch.for_lapack-3.4.0 b/patch.for_lapack-3.4.0 index 5d048f9c4..a3dc9b8a9 100644 --- a/patch.for_lapack-3.4.0 +++ b/patch.for_lapack-3.4.0 @@ -888,157 +888,2069 @@ 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 @@ +--- lapack-3.4.0.old/lapacke/src/Makefile 2011-11-10 06:56:15.000000000 +0800 ++++ lapack-3.4.0/lapacke/src/Makefile 2012-04-13 22:37:09.000000000 +0800 +@@ -35,12 +35,2060 @@ + include ../make.inc + + C_FILES := $(wildcard *.c) +-OBJ_FILES := $(C_FILES:.c=.o) ++ ++LAPACKE_OBJS := \ ++lapacke_cbbcsd.o \ ++lapacke_cbbcsd_work.o \ ++lapacke_cbdsqr.o \ ++lapacke_cbdsqr_work.o \ ++lapacke_cgbbrd.o \ ++lapacke_cgbbrd_work.o \ ++lapacke_cgbcon.o \ ++lapacke_cgbcon_work.o \ ++lapacke_cgbequb.o \ ++lapacke_cgbequb_work.o \ ++lapacke_cgbequ.o \ ++lapacke_cgbequ_work.o \ ++lapacke_cgbrfs.o \ ++lapacke_cgbrfs_work.o \ ++lapacke_cgbsv.o \ ++lapacke_cgbsv_work.o \ ++lapacke_cgbsvx.o \ ++lapacke_cgbsvx_work.o \ ++lapacke_cgbtrf.o \ ++lapacke_cgbtrf_work.o \ ++lapacke_cgbtrs.o \ ++lapacke_cgbtrs_work.o \ ++lapacke_cgebak.o \ ++lapacke_cgebak_work.o \ ++lapacke_cgebal.o \ ++lapacke_cgebal_work.o \ ++lapacke_cgebrd.o \ ++lapacke_cgebrd_work.o \ ++lapacke_cgecon.o \ ++lapacke_cgecon_work.o \ ++lapacke_cgeequb.o \ ++lapacke_cgeequb_work.o \ ++lapacke_cgeequ.o \ ++lapacke_cgeequ_work.o \ ++lapacke_cgees.o \ ++lapacke_cgees_work.o \ ++lapacke_cgeesx.o \ ++lapacke_cgeesx_work.o \ ++lapacke_cgeev.o \ ++lapacke_cgeev_work.o \ ++lapacke_cgeevx.o \ ++lapacke_cgeevx_work.o \ ++lapacke_cgehrd.o \ ++lapacke_cgehrd_work.o \ ++lapacke_cgelq2.o \ ++lapacke_cgelq2_work.o \ ++lapacke_cgelqf.o \ ++lapacke_cgelqf_work.o \ ++lapacke_cgels.o \ ++lapacke_cgelsd.o \ ++lapacke_cgelsd_work.o \ ++lapacke_cgelss.o \ ++lapacke_cgelss_work.o \ ++lapacke_cgels_work.o \ ++lapacke_cgelsy.o \ ++lapacke_cgelsy_work.o \ ++lapacke_cgemqrt.o \ ++lapacke_cgemqrt_work.o \ ++lapacke_cgeqlf.o \ ++lapacke_cgeqlf_work.o \ ++lapacke_cgeqp3.o \ ++lapacke_cgeqp3_work.o \ ++lapacke_cgeqpf.o \ ++lapacke_cgeqpf_work.o \ ++lapacke_cgeqr2.o \ ++lapacke_cgeqr2_work.o \ ++lapacke_cgeqrf.o \ ++lapacke_cgeqrfp.o \ ++lapacke_cgeqrfp_work.o \ ++lapacke_cgeqrf_work.o \ ++lapacke_cgeqrt2.o \ ++lapacke_cgeqrt2_work.o \ ++lapacke_cgeqrt3.o \ ++lapacke_cgeqrt3_work.o \ ++lapacke_cgeqrt.o \ ++lapacke_cgeqrt_work.o \ ++lapacke_cgerfs.o \ ++lapacke_cgerfs_work.o \ ++lapacke_cgerqf.o \ ++lapacke_cgerqf_work.o \ ++lapacke_cgesdd.o \ ++lapacke_cgesdd_work.o \ ++lapacke_cgesv.o \ ++lapacke_cgesvd.o \ ++lapacke_cgesvd_work.o \ ++lapacke_cgesv_work.o \ ++lapacke_cgesvx.o \ ++lapacke_cgesvx_work.o \ ++lapacke_cgetf2.o \ ++lapacke_cgetf2_work.o \ ++lapacke_cgetrf.o \ ++lapacke_cgetrf_work.o \ ++lapacke_cgetri.o \ ++lapacke_cgetri_work.o \ ++lapacke_cgetrs.o \ ++lapacke_cgetrs_work.o \ ++lapacke_cggbak.o \ ++lapacke_cggbak_work.o \ ++lapacke_cggbal.o \ ++lapacke_cggbal_work.o \ ++lapacke_cgges.o \ ++lapacke_cgges_work.o \ ++lapacke_cggesx.o \ ++lapacke_cggesx_work.o \ ++lapacke_cggev.o \ ++lapacke_cggev_work.o \ ++lapacke_cggevx.o \ ++lapacke_cggevx_work.o \ ++lapacke_cggglm.o \ ++lapacke_cggglm_work.o \ ++lapacke_cgghrd.o \ ++lapacke_cgghrd_work.o \ ++lapacke_cgglse.o \ ++lapacke_cgglse_work.o \ ++lapacke_cggqrf.o \ ++lapacke_cggqrf_work.o \ ++lapacke_cggrqf.o \ ++lapacke_cggrqf_work.o \ ++lapacke_cggsvd.o \ ++lapacke_cggsvd_work.o \ ++lapacke_cggsvp.o \ ++lapacke_cggsvp_work.o \ ++lapacke_cgtcon.o \ ++lapacke_cgtcon_work.o \ ++lapacke_cgtrfs.o \ ++lapacke_cgtrfs_work.o \ ++lapacke_cgtsv.o \ ++lapacke_cgtsv_work.o \ ++lapacke_cgtsvx.o \ ++lapacke_cgtsvx_work.o \ ++lapacke_cgttrf.o \ ++lapacke_cgttrf_work.o \ ++lapacke_cgttrs.o \ ++lapacke_cgttrs_work.o \ ++lapacke_chbev.o \ ++lapacke_chbevd.o \ ++lapacke_chbevd_work.o \ ++lapacke_chbev_work.o \ ++lapacke_chbevx.o \ ++lapacke_chbevx_work.o \ ++lapacke_chbgst.o \ ++lapacke_chbgst_work.o \ ++lapacke_chbgv.o \ ++lapacke_chbgvd.o \ ++lapacke_chbgvd_work.o \ ++lapacke_chbgv_work.o \ ++lapacke_chbgvx.o \ ++lapacke_chbgvx_work.o \ ++lapacke_chbtrd.o \ ++lapacke_chbtrd_work.o \ ++lapacke_checon.o \ ++lapacke_checon_work.o \ ++lapacke_cheequb.o \ ++lapacke_cheequb_work.o \ ++lapacke_cheev.o \ ++lapacke_cheevd.o \ ++lapacke_cheevd_work.o \ ++lapacke_cheevr.o \ ++lapacke_cheevr_work.o \ ++lapacke_cheev_work.o \ ++lapacke_cheevx.o \ ++lapacke_cheevx_work.o \ ++lapacke_chegst.o \ ++lapacke_chegst_work.o \ ++lapacke_chegv.o \ ++lapacke_chegvd.o \ ++lapacke_chegvd_work.o \ ++lapacke_chegv_work.o \ ++lapacke_chegvx.o \ ++lapacke_chegvx_work.o \ ++lapacke_cherfs.o \ ++lapacke_cherfs_work.o \ ++lapacke_chesv.o \ ++lapacke_chesv_work.o \ ++lapacke_chesvx.o \ ++lapacke_chesvx_work.o \ ++lapacke_cheswapr.o \ ++lapacke_cheswapr_work.o \ ++lapacke_chetrd.o \ ++lapacke_chetrd_work.o \ ++lapacke_chetrf.o \ ++lapacke_chetrf_work.o \ ++lapacke_chetri2.o \ ++lapacke_chetri2_work.o \ ++lapacke_chetri2x.o \ ++lapacke_chetri2x_work.o \ ++lapacke_chetri.o \ ++lapacke_chetri_work.o \ ++lapacke_chetrs2.o \ ++lapacke_chetrs2_work.o \ ++lapacke_chetrs.o \ ++lapacke_chetrs_work.o \ ++lapacke_chfrk.o \ ++lapacke_chfrk_work.o \ ++lapacke_chgeqz.o \ ++lapacke_chgeqz_work.o \ ++lapacke_chpcon.o \ ++lapacke_chpcon_work.o \ ++lapacke_chpev.o \ ++lapacke_chpevd.o \ ++lapacke_chpevd_work.o \ ++lapacke_chpev_work.o \ ++lapacke_chpevx.o \ ++lapacke_chpevx_work.o \ ++lapacke_chpgst.o \ ++lapacke_chpgst_work.o \ ++lapacke_chpgv.o \ ++lapacke_chpgvd.o \ ++lapacke_chpgvd_work.o \ ++lapacke_chpgv_work.o \ ++lapacke_chpgvx.o \ ++lapacke_chpgvx_work.o \ ++lapacke_chprfs.o \ ++lapacke_chprfs_work.o \ ++lapacke_chpsv.o \ ++lapacke_chpsv_work.o \ ++lapacke_chpsvx.o \ ++lapacke_chpsvx_work.o \ ++lapacke_chptrd.o \ ++lapacke_chptrd_work.o \ ++lapacke_chptrf.o \ ++lapacke_chptrf_work.o \ ++lapacke_chptri.o \ ++lapacke_chptri_work.o \ ++lapacke_chptrs.o \ ++lapacke_chptrs_work.o \ ++lapacke_chsein.o \ ++lapacke_chsein_work.o \ ++lapacke_chseqr.o \ ++lapacke_chseqr_work.o \ ++lapacke_clacgv.o \ ++lapacke_clacgv_work.o \ ++lapacke_clacpy.o \ ++lapacke_clacpy_work.o \ ++lapacke_clag2z.o \ ++lapacke_clag2z_work.o \ ++lapacke_clange.o \ ++lapacke_clange_work.o \ ++lapacke_clanhe.o \ ++lapacke_clanhe_work.o \ ++lapacke_clansy.o \ ++lapacke_clansy_work.o \ ++lapacke_clantr.o \ ++lapacke_clantr_work.o \ ++lapacke_clapmr.o \ ++lapacke_clapmr_work.o \ ++lapacke_clarfb.o \ ++lapacke_clarfb_work.o \ ++lapacke_clarfg.o \ ++lapacke_clarfg_work.o \ ++lapacke_clarft.o \ ++lapacke_clarft_work.o \ ++lapacke_clarfx.o \ ++lapacke_clarfx_work.o \ ++lapacke_clarnv.o \ ++lapacke_clarnv_work.o \ ++lapacke_claset.o \ ++lapacke_claset_work.o \ ++lapacke_claswp.o \ ++lapacke_claswp_work.o \ ++lapacke_clauum.o \ ++lapacke_clauum_work.o \ ++lapacke_cpbcon.o \ ++lapacke_cpbcon_work.o \ ++lapacke_cpbequ.o \ ++lapacke_cpbequ_work.o \ ++lapacke_cpbrfs.o \ ++lapacke_cpbrfs_work.o \ ++lapacke_cpbstf.o \ ++lapacke_cpbstf_work.o \ ++lapacke_cpbsv.o \ ++lapacke_cpbsv_work.o \ ++lapacke_cpbsvx.o \ ++lapacke_cpbsvx_work.o \ ++lapacke_cpbtrf.o \ ++lapacke_cpbtrf_work.o \ ++lapacke_cpbtrs.o \ ++lapacke_cpbtrs_work.o \ ++lapacke_cpftrf.o \ ++lapacke_cpftrf_work.o \ ++lapacke_cpftri.o \ ++lapacke_cpftri_work.o \ ++lapacke_cpftrs.o \ ++lapacke_cpftrs_work.o \ ++lapacke_cpocon.o \ ++lapacke_cpocon_work.o \ ++lapacke_cpoequb.o \ ++lapacke_cpoequb_work.o \ ++lapacke_cpoequ.o \ ++lapacke_cpoequ_work.o \ ++lapacke_cporfs.o \ ++lapacke_cporfs_work.o \ ++lapacke_cposv.o \ ++lapacke_cposv_work.o \ ++lapacke_cposvx.o \ ++lapacke_cposvx_work.o \ ++lapacke_cpotrf.o \ ++lapacke_cpotrf_work.o \ ++lapacke_cpotri.o \ ++lapacke_cpotri_work.o \ ++lapacke_cpotrs.o \ ++lapacke_cpotrs_work.o \ ++lapacke_cppcon.o \ ++lapacke_cppcon_work.o \ ++lapacke_cppequ.o \ ++lapacke_cppequ_work.o \ ++lapacke_cpprfs.o \ ++lapacke_cpprfs_work.o \ ++lapacke_cppsv.o \ ++lapacke_cppsv_work.o \ ++lapacke_cppsvx.o \ ++lapacke_cppsvx_work.o \ ++lapacke_cpptrf.o \ ++lapacke_cpptrf_work.o \ ++lapacke_cpptri.o \ ++lapacke_cpptri_work.o \ ++lapacke_cpptrs.o \ ++lapacke_cpptrs_work.o \ ++lapacke_cpstrf.o \ ++lapacke_cpstrf_work.o \ ++lapacke_cptcon.o \ ++lapacke_cptcon_work.o \ ++lapacke_cpteqr.o \ ++lapacke_cpteqr_work.o \ ++lapacke_cptrfs.o \ ++lapacke_cptrfs_work.o \ ++lapacke_cptsv.o \ ++lapacke_cptsv_work.o \ ++lapacke_cptsvx.o \ ++lapacke_cptsvx_work.o \ ++lapacke_cpttrf.o \ ++lapacke_cpttrf_work.o \ ++lapacke_cpttrs.o \ ++lapacke_cpttrs_work.o \ ++lapacke_cspcon.o \ ++lapacke_cspcon_work.o \ ++lapacke_csprfs.o \ ++lapacke_csprfs_work.o \ ++lapacke_cspsv.o \ ++lapacke_cspsv_work.o \ ++lapacke_cspsvx.o \ ++lapacke_cspsvx_work.o \ ++lapacke_csptrf.o \ ++lapacke_csptrf_work.o \ ++lapacke_csptri.o \ ++lapacke_csptri_work.o \ ++lapacke_csptrs.o \ ++lapacke_csptrs_work.o \ ++lapacke_cstedc.o \ ++lapacke_cstedc_work.o \ ++lapacke_cstegr.o \ ++lapacke_cstegr_work.o \ ++lapacke_cstein.o \ ++lapacke_cstein_work.o \ ++lapacke_cstemr.o \ ++lapacke_cstemr_work.o \ ++lapacke_csteqr.o \ ++lapacke_csteqr_work.o \ ++lapacke_csycon.o \ ++lapacke_csyconv.o \ ++lapacke_csyconv_work.o \ ++lapacke_csycon_work.o \ ++lapacke_csyequb.o \ ++lapacke_csyequb_work.o \ ++lapacke_csyrfs.o \ ++lapacke_csyrfs_work.o \ ++lapacke_csysv.o \ ++lapacke_csysv_work.o \ ++lapacke_csysvx.o \ ++lapacke_csysvx_work.o \ ++lapacke_csyswapr.o \ ++lapacke_csyswapr_work.o \ ++lapacke_csytrf.o \ ++lapacke_csytrf_work.o \ ++lapacke_csytri2.o \ ++lapacke_csytri2_work.o \ ++lapacke_csytri2x.o \ ++lapacke_csytri2x_work.o \ ++lapacke_csytri.o \ ++lapacke_csytri_work.o \ ++lapacke_csytrs2.o \ ++lapacke_csytrs2_work.o \ ++lapacke_csytrs.o \ ++lapacke_csytrs_work.o \ ++lapacke_ctbcon.o \ ++lapacke_ctbcon_work.o \ ++lapacke_ctbrfs.o \ ++lapacke_ctbrfs_work.o \ ++lapacke_ctbtrs.o \ ++lapacke_ctbtrs_work.o \ ++lapacke_ctfsm.o \ ++lapacke_ctfsm_work.o \ ++lapacke_ctftri.o \ ++lapacke_ctftri_work.o \ ++lapacke_ctfttp.o \ ++lapacke_ctfttp_work.o \ ++lapacke_ctfttr.o \ ++lapacke_ctfttr_work.o \ ++lapacke_ctgevc.o \ ++lapacke_ctgevc_work.o \ ++lapacke_ctgexc.o \ ++lapacke_ctgexc_work.o \ ++lapacke_ctgsen.o \ ++lapacke_ctgsen_work.o \ ++lapacke_ctgsja.o \ ++lapacke_ctgsja_work.o \ ++lapacke_ctgsna.o \ ++lapacke_ctgsna_work.o \ ++lapacke_ctgsyl.o \ ++lapacke_ctgsyl_work.o \ ++lapacke_ctpcon.o \ ++lapacke_ctpcon_work.o \ ++lapacke_ctpmqrt.o \ ++lapacke_ctpmqrt_work.o \ ++lapacke_ctpqrt2.o \ ++lapacke_ctpqrt2_work.o \ ++lapacke_ctpqrt.o \ ++lapacke_ctpqrt_work.o \ ++lapacke_ctprfb.o \ ++lapacke_ctprfb_work.o \ ++lapacke_ctprfs.o \ ++lapacke_ctprfs_work.o \ ++lapacke_ctptri.o \ ++lapacke_ctptri_work.o \ ++lapacke_ctptrs.o \ ++lapacke_ctptrs_work.o \ ++lapacke_ctpttf.o \ ++lapacke_ctpttf_work.o \ ++lapacke_ctpttr.o \ ++lapacke_ctpttr_work.o \ ++lapacke_ctrcon.o \ ++lapacke_ctrcon_work.o \ ++lapacke_ctrevc.o \ ++lapacke_ctrevc_work.o \ ++lapacke_ctrexc.o \ ++lapacke_ctrexc_work.o \ ++lapacke_ctrrfs.o \ ++lapacke_ctrrfs_work.o \ ++lapacke_ctrsen.o \ ++lapacke_ctrsen_work.o \ ++lapacke_ctrsna.o \ ++lapacke_ctrsna_work.o \ ++lapacke_ctrsyl.o \ ++lapacke_ctrsyl_work.o \ ++lapacke_ctrtri.o \ ++lapacke_ctrtri_work.o \ ++lapacke_ctrtrs.o \ ++lapacke_ctrtrs_work.o \ ++lapacke_ctrttf.o \ ++lapacke_ctrttf_work.o \ ++lapacke_ctrttp.o \ ++lapacke_ctrttp_work.o \ ++lapacke_ctzrzf.o \ ++lapacke_ctzrzf_work.o \ ++lapacke_cunbdb.o \ ++lapacke_cunbdb_work.o \ ++lapacke_cuncsd.o \ ++lapacke_cuncsd_work.o \ ++lapacke_cungbr.o \ ++lapacke_cungbr_work.o \ ++lapacke_cunghr.o \ ++lapacke_cunghr_work.o \ ++lapacke_cunglq.o \ ++lapacke_cunglq_work.o \ ++lapacke_cungql.o \ ++lapacke_cungql_work.o \ ++lapacke_cungqr.o \ ++lapacke_cungqr_work.o \ ++lapacke_cungrq.o \ ++lapacke_cungrq_work.o \ ++lapacke_cungtr.o \ ++lapacke_cungtr_work.o \ ++lapacke_cunmbr.o \ ++lapacke_cunmbr_work.o \ ++lapacke_cunmhr.o \ ++lapacke_cunmhr_work.o \ ++lapacke_cunmlq.o \ ++lapacke_cunmlq_work.o \ ++lapacke_cunmql.o \ ++lapacke_cunmql_work.o \ ++lapacke_cunmqr.o \ ++lapacke_cunmqr_work.o \ ++lapacke_cunmrq.o \ ++lapacke_cunmrq_work.o \ ++lapacke_cunmrz.o \ ++lapacke_cunmrz_work.o \ ++lapacke_cunmtr.o \ ++lapacke_cunmtr_work.o \ ++lapacke_cupgtr.o \ ++lapacke_cupgtr_work.o \ ++lapacke_cupmtr.o \ ++lapacke_cupmtr_work.o \ ++lapacke_dbbcsd.o \ ++lapacke_dbbcsd_work.o \ ++lapacke_dbdsdc.o \ ++lapacke_dbdsdc_work.o \ ++lapacke_dbdsqr.o \ ++lapacke_dbdsqr_work.o \ ++lapacke_ddisna.o \ ++lapacke_ddisna_work.o \ ++lapacke_dgbbrd.o \ ++lapacke_dgbbrd_work.o \ ++lapacke_dgbcon.o \ ++lapacke_dgbcon_work.o \ ++lapacke_dgbequb.o \ ++lapacke_dgbequb_work.o \ ++lapacke_dgbequ.o \ ++lapacke_dgbequ_work.o \ ++lapacke_dgbrfs.o \ ++lapacke_dgbrfs_work.o \ ++lapacke_dgbsv.o \ ++lapacke_dgbsv_work.o \ ++lapacke_dgbsvx.o \ ++lapacke_dgbsvx_work.o \ ++lapacke_dgbtrf.o \ ++lapacke_dgbtrf_work.o \ ++lapacke_dgbtrs.o \ ++lapacke_dgbtrs_work.o \ ++lapacke_dgebak.o \ ++lapacke_dgebak_work.o \ ++lapacke_dgebal.o \ ++lapacke_dgebal_work.o \ ++lapacke_dgebrd.o \ ++lapacke_dgebrd_work.o \ ++lapacke_dgecon.o \ ++lapacke_dgecon_work.o \ ++lapacke_dgeequb.o \ ++lapacke_dgeequb_work.o \ ++lapacke_dgeequ.o \ ++lapacke_dgeequ_work.o \ ++lapacke_dgees.o \ ++lapacke_dgees_work.o \ ++lapacke_dgeesx.o \ ++lapacke_dgeesx_work.o \ ++lapacke_dgeev.o \ ++lapacke_dgeev_work.o \ ++lapacke_dgeevx.o \ ++lapacke_dgeevx_work.o \ ++lapacke_dgehrd.o \ ++lapacke_dgehrd_work.o \ ++lapacke_dgejsv.o \ ++lapacke_dgejsv_work.o \ ++lapacke_dgelq2.o \ ++lapacke_dgelq2_work.o \ ++lapacke_dgelqf.o \ ++lapacke_dgelqf_work.o \ ++lapacke_dgels.o \ ++lapacke_dgelsd.o \ ++lapacke_dgelsd_work.o \ ++lapacke_dgelss.o \ ++lapacke_dgelss_work.o \ ++lapacke_dgels_work.o \ ++lapacke_dgelsy.o \ ++lapacke_dgelsy_work.o \ ++lapacke_dgemqrt.o \ ++lapacke_dgemqrt_work.o \ ++lapacke_dgeqlf.o \ ++lapacke_dgeqlf_work.o \ ++lapacke_dgeqp3.o \ ++lapacke_dgeqp3_work.o \ ++lapacke_dgeqpf.o \ ++lapacke_dgeqpf_work.o \ ++lapacke_dgeqr2.o \ ++lapacke_dgeqr2_work.o \ ++lapacke_dgeqrf.o \ ++lapacke_dgeqrfp.o \ ++lapacke_dgeqrfp_work.o \ ++lapacke_dgeqrf_work.o \ ++lapacke_dgeqrt2.o \ ++lapacke_dgeqrt2_work.o \ ++lapacke_dgeqrt3.o \ ++lapacke_dgeqrt3_work.o \ ++lapacke_dgeqrt.o \ ++lapacke_dgeqrt_work.o \ ++lapacke_dgerfs.o \ ++lapacke_dgerfs_work.o \ ++lapacke_dgerqf.o \ ++lapacke_dgerqf_work.o \ ++lapacke_dgesdd.o \ ++lapacke_dgesdd_work.o \ ++lapacke_dgesv.o \ ++lapacke_dgesvd.o \ ++lapacke_dgesvd_work.o \ ++lapacke_dgesvj.o \ ++lapacke_dgesvj_work.o \ ++lapacke_dgesv_work.o \ ++lapacke_dgesvx.o \ ++lapacke_dgesvx_work.o \ ++lapacke_dgetf2.o \ ++lapacke_dgetf2_work.o \ ++lapacke_dgetrf.o \ ++lapacke_dgetrf_work.o \ ++lapacke_dgetri.o \ ++lapacke_dgetri_work.o \ ++lapacke_dgetrs.o \ ++lapacke_dgetrs_work.o \ ++lapacke_dggbak.o \ ++lapacke_dggbak_work.o \ ++lapacke_dggbal.o \ ++lapacke_dggbal_work.o \ ++lapacke_dgges.o \ ++lapacke_dgges_work.o \ ++lapacke_dggesx.o \ ++lapacke_dggesx_work.o \ ++lapacke_dggev.o \ ++lapacke_dggev_work.o \ ++lapacke_dggevx.o \ ++lapacke_dggevx_work.o \ ++lapacke_dggglm.o \ ++lapacke_dggglm_work.o \ ++lapacke_dgghrd.o \ ++lapacke_dgghrd_work.o \ ++lapacke_dgglse.o \ ++lapacke_dgglse_work.o \ ++lapacke_dggqrf.o \ ++lapacke_dggqrf_work.o \ ++lapacke_dggrqf.o \ ++lapacke_dggrqf_work.o \ ++lapacke_dggsvd.o \ ++lapacke_dggsvd_work.o \ ++lapacke_dggsvp.o \ ++lapacke_dggsvp_work.o \ ++lapacke_dgtcon.o \ ++lapacke_dgtcon_work.o \ ++lapacke_dgtrfs.o \ ++lapacke_dgtrfs_work.o \ ++lapacke_dgtsv.o \ ++lapacke_dgtsv_work.o \ ++lapacke_dgtsvx.o \ ++lapacke_dgtsvx_work.o \ ++lapacke_dgttrf.o \ ++lapacke_dgttrf_work.o \ ++lapacke_dgttrs.o \ ++lapacke_dgttrs_work.o \ ++lapacke_dhgeqz.o \ ++lapacke_dhgeqz_work.o \ ++lapacke_dhsein.o \ ++lapacke_dhsein_work.o \ ++lapacke_dhseqr.o \ ++lapacke_dhseqr_work.o \ ++lapacke_dlacpy.o \ ++lapacke_dlacpy_work.o \ ++lapacke_dlag2s.o \ ++lapacke_dlag2s_work.o \ ++lapacke_dlamch.o \ ++lapacke_dlamch_work.o \ ++lapacke_dlange.o \ ++lapacke_dlange_work.o \ ++lapacke_dlansy.o \ ++lapacke_dlansy_work.o \ ++lapacke_dlantr.o \ ++lapacke_dlantr_work.o \ ++lapacke_dlapmr.o \ ++lapacke_dlapmr_work.o \ ++lapacke_dlapy2.o \ ++lapacke_dlapy2_work.o \ ++lapacke_dlapy3.o \ ++lapacke_dlapy3_work.o \ ++lapacke_dlarfb.o \ ++lapacke_dlarfb_work.o \ ++lapacke_dlarfg.o \ ++lapacke_dlarfg_work.o \ ++lapacke_dlarft.o \ ++lapacke_dlarft_work.o \ ++lapacke_dlarfx.o \ ++lapacke_dlarfx_work.o \ ++lapacke_dlarnv.o \ ++lapacke_dlarnv_work.o \ ++lapacke_dlartgp.o \ ++lapacke_dlartgp_work.o \ ++lapacke_dlartgs.o \ ++lapacke_dlartgs_work.o \ ++lapacke_dlaset.o \ ++lapacke_dlaset_work.o \ ++lapacke_dlasrt.o \ ++lapacke_dlasrt_work.o \ ++lapacke_dlaswp.o \ ++lapacke_dlaswp_work.o \ ++lapacke_dlauum.o \ ++lapacke_dlauum_work.o \ ++lapacke_dopgtr.o \ ++lapacke_dopgtr_work.o \ ++lapacke_dopmtr.o \ ++lapacke_dopmtr_work.o \ ++lapacke_dorbdb.o \ ++lapacke_dorbdb_work.o \ ++lapacke_dorcsd.o \ ++lapacke_dorcsd_work.o \ ++lapacke_dorgbr.o \ ++lapacke_dorgbr_work.o \ ++lapacke_dorghr.o \ ++lapacke_dorghr_work.o \ ++lapacke_dorglq.o \ ++lapacke_dorglq_work.o \ ++lapacke_dorgql.o \ ++lapacke_dorgql_work.o \ ++lapacke_dorgqr.o \ ++lapacke_dorgqr_work.o \ ++lapacke_dorgrq.o \ ++lapacke_dorgrq_work.o \ ++lapacke_dorgtr.o \ ++lapacke_dorgtr_work.o \ ++lapacke_dormbr.o \ ++lapacke_dormbr_work.o \ ++lapacke_dormhr.o \ ++lapacke_dormhr_work.o \ ++lapacke_dormlq.o \ ++lapacke_dormlq_work.o \ ++lapacke_dormql.o \ ++lapacke_dormql_work.o \ ++lapacke_dormqr.o \ ++lapacke_dormqr_work.o \ ++lapacke_dormrq.o \ ++lapacke_dormrq_work.o \ ++lapacke_dormrz.o \ ++lapacke_dormrz_work.o \ ++lapacke_dormtr.o \ ++lapacke_dormtr_work.o \ ++lapacke_dpbcon.o \ ++lapacke_dpbcon_work.o \ ++lapacke_dpbequ.o \ ++lapacke_dpbequ_work.o \ ++lapacke_dpbrfs.o \ ++lapacke_dpbrfs_work.o \ ++lapacke_dpbstf.o \ ++lapacke_dpbstf_work.o \ ++lapacke_dpbsv.o \ ++lapacke_dpbsv_work.o \ ++lapacke_dpbsvx.o \ ++lapacke_dpbsvx_work.o \ ++lapacke_dpbtrf.o \ ++lapacke_dpbtrf_work.o \ ++lapacke_dpbtrs.o \ ++lapacke_dpbtrs_work.o \ ++lapacke_dpftrf.o \ ++lapacke_dpftrf_work.o \ ++lapacke_dpftri.o \ ++lapacke_dpftri_work.o \ ++lapacke_dpftrs.o \ ++lapacke_dpftrs_work.o \ ++lapacke_dpocon.o \ ++lapacke_dpocon_work.o \ ++lapacke_dpoequb.o \ ++lapacke_dpoequb_work.o \ ++lapacke_dpoequ.o \ ++lapacke_dpoequ_work.o \ ++lapacke_dporfs.o \ ++lapacke_dporfs_work.o \ ++lapacke_dposv.o \ ++lapacke_dposv_work.o \ ++lapacke_dposvx.o \ ++lapacke_dposvx_work.o \ ++lapacke_dpotrf.o \ ++lapacke_dpotrf_work.o \ ++lapacke_dpotri.o \ ++lapacke_dpotri_work.o \ ++lapacke_dpotrs.o \ ++lapacke_dpotrs_work.o \ ++lapacke_dppcon.o \ ++lapacke_dppcon_work.o \ ++lapacke_dppequ.o \ ++lapacke_dppequ_work.o \ ++lapacke_dpprfs.o \ ++lapacke_dpprfs_work.o \ ++lapacke_dppsv.o \ ++lapacke_dppsv_work.o \ ++lapacke_dppsvx.o \ ++lapacke_dppsvx_work.o \ ++lapacke_dpptrf.o \ ++lapacke_dpptrf_work.o \ ++lapacke_dpptri.o \ ++lapacke_dpptri_work.o \ ++lapacke_dpptrs.o \ ++lapacke_dpptrs_work.o \ ++lapacke_dpstrf.o \ ++lapacke_dpstrf_work.o \ ++lapacke_dptcon.o \ ++lapacke_dptcon_work.o \ ++lapacke_dpteqr.o \ ++lapacke_dpteqr_work.o \ ++lapacke_dptrfs.o \ ++lapacke_dptrfs_work.o \ ++lapacke_dptsv.o \ ++lapacke_dptsv_work.o \ ++lapacke_dptsvx.o \ ++lapacke_dptsvx_work.o \ ++lapacke_dpttrf.o \ ++lapacke_dpttrf_work.o \ ++lapacke_dpttrs.o \ ++lapacke_dpttrs_work.o \ ++lapacke_dsbev.o \ ++lapacke_dsbevd.o \ ++lapacke_dsbevd_work.o \ ++lapacke_dsbev_work.o \ ++lapacke_dsbevx.o \ ++lapacke_dsbevx_work.o \ ++lapacke_dsbgst.o \ ++lapacke_dsbgst_work.o \ ++lapacke_dsbgv.o \ ++lapacke_dsbgvd.o \ ++lapacke_dsbgvd_work.o \ ++lapacke_dsbgv_work.o \ ++lapacke_dsbgvx.o \ ++lapacke_dsbgvx_work.o \ ++lapacke_dsbtrd.o \ ++lapacke_dsbtrd_work.o \ ++lapacke_dsfrk.o \ ++lapacke_dsfrk_work.o \ ++lapacke_dsgesv.o \ ++lapacke_dsgesv_work.o \ ++lapacke_dspcon.o \ ++lapacke_dspcon_work.o \ ++lapacke_dspev.o \ ++lapacke_dspevd.o \ ++lapacke_dspevd_work.o \ ++lapacke_dspev_work.o \ ++lapacke_dspevx.o \ ++lapacke_dspevx_work.o \ ++lapacke_dspgst.o \ ++lapacke_dspgst_work.o \ ++lapacke_dspgv.o \ ++lapacke_dspgvd.o \ ++lapacke_dspgvd_work.o \ ++lapacke_dspgv_work.o \ ++lapacke_dspgvx.o \ ++lapacke_dspgvx_work.o \ ++lapacke_dsposv.o \ ++lapacke_dsposv_work.o \ ++lapacke_dsprfs.o \ ++lapacke_dsprfs_work.o \ ++lapacke_dspsv.o \ ++lapacke_dspsv_work.o \ ++lapacke_dspsvx.o \ ++lapacke_dspsvx_work.o \ ++lapacke_dsptrd.o \ ++lapacke_dsptrd_work.o \ ++lapacke_dsptrf.o \ ++lapacke_dsptrf_work.o \ ++lapacke_dsptri.o \ ++lapacke_dsptri_work.o \ ++lapacke_dsptrs.o \ ++lapacke_dsptrs_work.o \ ++lapacke_dstebz.o \ ++lapacke_dstebz_work.o \ ++lapacke_dstedc.o \ ++lapacke_dstedc_work.o \ ++lapacke_dstegr.o \ ++lapacke_dstegr_work.o \ ++lapacke_dstein.o \ ++lapacke_dstein_work.o \ ++lapacke_dstemr.o \ ++lapacke_dstemr_work.o \ ++lapacke_dsteqr.o \ ++lapacke_dsteqr_work.o \ ++lapacke_dsterf.o \ ++lapacke_dsterf_work.o \ ++lapacke_dstev.o \ ++lapacke_dstevd.o \ ++lapacke_dstevd_work.o \ ++lapacke_dstevr.o \ ++lapacke_dstevr_work.o \ ++lapacke_dstev_work.o \ ++lapacke_dstevx.o \ ++lapacke_dstevx_work.o \ ++lapacke_dsycon.o \ ++lapacke_dsyconv.o \ ++lapacke_dsyconv_work.o \ ++lapacke_dsycon_work.o \ ++lapacke_dsyequb.o \ ++lapacke_dsyequb_work.o \ ++lapacke_dsyev.o \ ++lapacke_dsyevd.o \ ++lapacke_dsyevd_work.o \ ++lapacke_dsyevr.o \ ++lapacke_dsyevr_work.o \ ++lapacke_dsyev_work.o \ ++lapacke_dsyevx.o \ ++lapacke_dsyevx_work.o \ ++lapacke_dsygst.o \ ++lapacke_dsygst_work.o \ ++lapacke_dsygv.o \ ++lapacke_dsygvd.o \ ++lapacke_dsygvd_work.o \ ++lapacke_dsygv_work.o \ ++lapacke_dsygvx.o \ ++lapacke_dsygvx_work.o \ ++lapacke_dsyrfs.o \ ++lapacke_dsyrfs_work.o \ ++lapacke_dsysv.o \ ++lapacke_dsysv_work.o \ ++lapacke_dsysvx.o \ ++lapacke_dsysvx_work.o \ ++lapacke_dsyswapr.o \ ++lapacke_dsyswapr_work.o \ ++lapacke_dsytrd.o \ ++lapacke_dsytrd_work.o \ ++lapacke_dsytrf.o \ ++lapacke_dsytrf_work.o \ ++lapacke_dsytri2.o \ ++lapacke_dsytri2_work.o \ ++lapacke_dsytri2x.o \ ++lapacke_dsytri2x_work.o \ ++lapacke_dsytri.o \ ++lapacke_dsytri_work.o \ ++lapacke_dsytrs2.o \ ++lapacke_dsytrs2_work.o \ ++lapacke_dsytrs.o \ ++lapacke_dsytrs_work.o \ ++lapacke_dtbcon.o \ ++lapacke_dtbcon_work.o \ ++lapacke_dtbrfs.o \ ++lapacke_dtbrfs_work.o \ ++lapacke_dtbtrs.o \ ++lapacke_dtbtrs_work.o \ ++lapacke_dtfsm.o \ ++lapacke_dtfsm_work.o \ ++lapacke_dtftri.o \ ++lapacke_dtftri_work.o \ ++lapacke_dtfttp.o \ ++lapacke_dtfttp_work.o \ ++lapacke_dtfttr.o \ ++lapacke_dtfttr_work.o \ ++lapacke_dtgevc.o \ ++lapacke_dtgevc_work.o \ ++lapacke_dtgexc.o \ ++lapacke_dtgexc_work.o \ ++lapacke_dtgsen.o \ ++lapacke_dtgsen_work.o \ ++lapacke_dtgsja.o \ ++lapacke_dtgsja_work.o \ ++lapacke_dtgsna.o \ ++lapacke_dtgsna_work.o \ ++lapacke_dtgsyl.o \ ++lapacke_dtgsyl_work.o \ ++lapacke_dtpcon.o \ ++lapacke_dtpcon_work.o \ ++lapacke_dtpmqrt.o \ ++lapacke_dtpmqrt_work.o \ ++lapacke_dtpqrt2.o \ ++lapacke_dtpqrt2_work.o \ ++lapacke_dtpqrt.o \ ++lapacke_dtpqrt_work.o \ ++lapacke_dtprfb.o \ ++lapacke_dtprfb_work.o \ ++lapacke_dtprfs.o \ ++lapacke_dtprfs_work.o \ ++lapacke_dtptri.o \ ++lapacke_dtptri_work.o \ ++lapacke_dtptrs.o \ ++lapacke_dtptrs_work.o \ ++lapacke_dtpttf.o \ ++lapacke_dtpttf_work.o \ ++lapacke_dtpttr.o \ ++lapacke_dtpttr_work.o \ ++lapacke_dtrcon.o \ ++lapacke_dtrcon_work.o \ ++lapacke_dtrevc.o \ ++lapacke_dtrevc_work.o \ ++lapacke_dtrexc.o \ ++lapacke_dtrexc_work.o \ ++lapacke_dtrrfs.o \ ++lapacke_dtrrfs_work.o \ ++lapacke_dtrsen.o \ ++lapacke_dtrsen_work.o \ ++lapacke_dtrsna.o \ ++lapacke_dtrsna_work.o \ ++lapacke_dtrsyl.o \ ++lapacke_dtrsyl_work.o \ ++lapacke_dtrtri.o \ ++lapacke_dtrtri_work.o \ ++lapacke_dtrtrs.o \ ++lapacke_dtrtrs_work.o \ ++lapacke_dtrttf.o \ ++lapacke_dtrttf_work.o \ ++lapacke_dtrttp.o \ ++lapacke_dtrttp_work.o \ ++lapacke_dtzrzf.o \ ++lapacke_dtzrzf_work.o \ ++lapacke_sbbcsd.o \ ++lapacke_sbbcsd_work.o \ ++lapacke_sbdsdc.o \ ++lapacke_sbdsdc_work.o \ ++lapacke_sbdsqr.o \ ++lapacke_sbdsqr_work.o \ ++lapacke_sdisna.o \ ++lapacke_sdisna_work.o \ ++lapacke_sgbbrd.o \ ++lapacke_sgbbrd_work.o \ ++lapacke_sgbcon.o \ ++lapacke_sgbcon_work.o \ ++lapacke_sgbequb.o \ ++lapacke_sgbequb_work.o \ ++lapacke_sgbequ.o \ ++lapacke_sgbequ_work.o \ ++lapacke_sgbrfs.o \ ++lapacke_sgbrfs_work.o \ ++lapacke_sgbsv.o \ ++lapacke_sgbsv_work.o \ ++lapacke_sgbsvx.o \ ++lapacke_sgbsvx_work.o \ ++lapacke_sgbtrf.o \ ++lapacke_sgbtrf_work.o \ ++lapacke_sgbtrs.o \ ++lapacke_sgbtrs_work.o \ ++lapacke_sgebak.o \ ++lapacke_sgebak_work.o \ ++lapacke_sgebal.o \ ++lapacke_sgebal_work.o \ ++lapacke_sgebrd.o \ ++lapacke_sgebrd_work.o \ ++lapacke_sgecon.o \ ++lapacke_sgecon_work.o \ ++lapacke_sgeequb.o \ ++lapacke_sgeequb_work.o \ ++lapacke_sgeequ.o \ ++lapacke_sgeequ_work.o \ ++lapacke_sgees.o \ ++lapacke_sgees_work.o \ ++lapacke_sgeesx.o \ ++lapacke_sgeesx_work.o \ ++lapacke_sgeev.o \ ++lapacke_sgeev_work.o \ ++lapacke_sgeevx.o \ ++lapacke_sgeevx_work.o \ ++lapacke_sgehrd.o \ ++lapacke_sgehrd_work.o \ ++lapacke_sgejsv.o \ ++lapacke_sgejsv_work.o \ ++lapacke_sgelq2.o \ ++lapacke_sgelq2_work.o \ ++lapacke_sgelqf.o \ ++lapacke_sgelqf_work.o \ ++lapacke_sgels.o \ ++lapacke_sgelsd.o \ ++lapacke_sgelsd_work.o \ ++lapacke_sgelss.o \ ++lapacke_sgelss_work.o \ ++lapacke_sgels_work.o \ ++lapacke_sgelsy.o \ ++lapacke_sgelsy_work.o \ ++lapacke_sgemqrt.o \ ++lapacke_sgemqrt_work.o \ ++lapacke_sgeqlf.o \ ++lapacke_sgeqlf_work.o \ ++lapacke_sgeqp3.o \ ++lapacke_sgeqp3_work.o \ ++lapacke_sgeqpf.o \ ++lapacke_sgeqpf_work.o \ ++lapacke_sgeqr2.o \ ++lapacke_sgeqr2_work.o \ ++lapacke_sgeqrf.o \ ++lapacke_sgeqrfp.o \ ++lapacke_sgeqrfp_work.o \ ++lapacke_sgeqrf_work.o \ ++lapacke_sgeqrt2.o \ ++lapacke_sgeqrt2_work.o \ ++lapacke_sgeqrt3.o \ ++lapacke_sgeqrt3_work.o \ ++lapacke_sgeqrt.o \ ++lapacke_sgeqrt_work.o \ ++lapacke_sgerfs.o \ ++lapacke_sgerfs_work.o \ ++lapacke_sgerqf.o \ ++lapacke_sgerqf_work.o \ ++lapacke_sgesdd.o \ ++lapacke_sgesdd_work.o \ ++lapacke_sgesv.o \ ++lapacke_sgesvd.o \ ++lapacke_sgesvd_work.o \ ++lapacke_sgesvj.o \ ++lapacke_sgesvj_work.o \ ++lapacke_sgesv_work.o \ ++lapacke_sgesvx.o \ ++lapacke_sgesvx_work.o \ ++lapacke_sgetf2.o \ ++lapacke_sgetf2_work.o \ ++lapacke_sgetrf.o \ ++lapacke_sgetrf_work.o \ ++lapacke_sgetri.o \ ++lapacke_sgetri_work.o \ ++lapacke_sgetrs.o \ ++lapacke_sgetrs_work.o \ ++lapacke_sggbak.o \ ++lapacke_sggbak_work.o \ ++lapacke_sggbal.o \ ++lapacke_sggbal_work.o \ ++lapacke_sgges.o \ ++lapacke_sgges_work.o \ ++lapacke_sggesx.o \ ++lapacke_sggesx_work.o \ ++lapacke_sggev.o \ ++lapacke_sggev_work.o \ ++lapacke_sggevx.o \ ++lapacke_sggevx_work.o \ ++lapacke_sggglm.o \ ++lapacke_sggglm_work.o \ ++lapacke_sgghrd.o \ ++lapacke_sgghrd_work.o \ ++lapacke_sgglse.o \ ++lapacke_sgglse_work.o \ ++lapacke_sggqrf.o \ ++lapacke_sggqrf_work.o \ ++lapacke_sggrqf.o \ ++lapacke_sggrqf_work.o \ ++lapacke_sggsvd.o \ ++lapacke_sggsvd_work.o \ ++lapacke_sggsvp.o \ ++lapacke_sggsvp_work.o \ ++lapacke_sgtcon.o \ ++lapacke_sgtcon_work.o \ ++lapacke_sgtrfs.o \ ++lapacke_sgtrfs_work.o \ ++lapacke_sgtsv.o \ ++lapacke_sgtsv_work.o \ ++lapacke_sgtsvx.o \ ++lapacke_sgtsvx_work.o \ ++lapacke_sgttrf.o \ ++lapacke_sgttrf_work.o \ ++lapacke_sgttrs.o \ ++lapacke_sgttrs_work.o \ ++lapacke_shgeqz.o \ ++lapacke_shgeqz_work.o \ ++lapacke_shsein.o \ ++lapacke_shsein_work.o \ ++lapacke_shseqr.o \ ++lapacke_shseqr_work.o \ ++lapacke_slacpy.o \ ++lapacke_slacpy_work.o \ ++lapacke_slag2d.o \ ++lapacke_slag2d_work.o \ ++lapacke_slamch.o \ ++lapacke_slamch_work.o \ ++lapacke_slange.o \ ++lapacke_slange_work.o \ ++lapacke_slansy.o \ ++lapacke_slansy_work.o \ ++lapacke_slantr.o \ ++lapacke_slantr_work.o \ ++lapacke_slapmr.o \ ++lapacke_slapmr_work.o \ ++lapacke_slapy2.o \ ++lapacke_slapy2_work.o \ ++lapacke_slapy3.o \ ++lapacke_slapy3_work.o \ ++lapacke_slarfb.o \ ++lapacke_slarfb_work.o \ ++lapacke_slarfg.o \ ++lapacke_slarfg_work.o \ ++lapacke_slarft.o \ ++lapacke_slarft_work.o \ ++lapacke_slarfx.o \ ++lapacke_slarfx_work.o \ ++lapacke_slarnv.o \ ++lapacke_slarnv_work.o \ ++lapacke_slartgp.o \ ++lapacke_slartgp_work.o \ ++lapacke_slartgs.o \ ++lapacke_slartgs_work.o \ ++lapacke_slaset.o \ ++lapacke_slaset_work.o \ ++lapacke_slasrt.o \ ++lapacke_slasrt_work.o \ ++lapacke_slaswp.o \ ++lapacke_slaswp_work.o \ ++lapacke_slauum.o \ ++lapacke_slauum_work.o \ ++lapacke_sopgtr.o \ ++lapacke_sopgtr_work.o \ ++lapacke_sopmtr.o \ ++lapacke_sopmtr_work.o \ ++lapacke_sorbdb.o \ ++lapacke_sorbdb_work.o \ ++lapacke_sorcsd.o \ ++lapacke_sorcsd_work.o \ ++lapacke_sorgbr.o \ ++lapacke_sorgbr_work.o \ ++lapacke_sorghr.o \ ++lapacke_sorghr_work.o \ ++lapacke_sorglq.o \ ++lapacke_sorglq_work.o \ ++lapacke_sorgql.o \ ++lapacke_sorgql_work.o \ ++lapacke_sorgqr.o \ ++lapacke_sorgqr_work.o \ ++lapacke_sorgrq.o \ ++lapacke_sorgrq_work.o \ ++lapacke_sorgtr.o \ ++lapacke_sorgtr_work.o \ ++lapacke_sormbr.o \ ++lapacke_sormbr_work.o \ ++lapacke_sormhr.o \ ++lapacke_sormhr_work.o \ ++lapacke_sormlq.o \ ++lapacke_sormlq_work.o \ ++lapacke_sormql.o \ ++lapacke_sormql_work.o \ ++lapacke_sormqr.o \ ++lapacke_sormqr_work.o \ ++lapacke_sormrq.o \ ++lapacke_sormrq_work.o \ ++lapacke_sormrz.o \ ++lapacke_sormrz_work.o \ ++lapacke_sormtr.o \ ++lapacke_sormtr_work.o \ ++lapacke_spbcon.o \ ++lapacke_spbcon_work.o \ ++lapacke_spbequ.o \ ++lapacke_spbequ_work.o \ ++lapacke_spbrfs.o \ ++lapacke_spbrfs_work.o \ ++lapacke_spbstf.o \ ++lapacke_spbstf_work.o \ ++lapacke_spbsv.o \ ++lapacke_spbsv_work.o \ ++lapacke_spbsvx.o \ ++lapacke_spbsvx_work.o \ ++lapacke_spbtrf.o \ ++lapacke_spbtrf_work.o \ ++lapacke_spbtrs.o \ ++lapacke_spbtrs_work.o \ ++lapacke_spftrf.o \ ++lapacke_spftrf_work.o \ ++lapacke_spftri.o \ ++lapacke_spftri_work.o \ ++lapacke_spftrs.o \ ++lapacke_spftrs_work.o \ ++lapacke_spocon.o \ ++lapacke_spocon_work.o \ ++lapacke_spoequb.o \ ++lapacke_spoequb_work.o \ ++lapacke_spoequ.o \ ++lapacke_spoequ_work.o \ ++lapacke_sporfs.o \ ++lapacke_sporfs_work.o \ ++lapacke_sposv.o \ ++lapacke_sposv_work.o \ ++lapacke_sposvx.o \ ++lapacke_sposvx_work.o \ ++lapacke_spotrf.o \ ++lapacke_spotrf_work.o \ ++lapacke_spotri.o \ ++lapacke_spotri_work.o \ ++lapacke_spotrs.o \ ++lapacke_spotrs_work.o \ ++lapacke_sppcon.o \ ++lapacke_sppcon_work.o \ ++lapacke_sppequ.o \ ++lapacke_sppequ_work.o \ ++lapacke_spprfs.o \ ++lapacke_spprfs_work.o \ ++lapacke_sppsv.o \ ++lapacke_sppsv_work.o \ ++lapacke_sppsvx.o \ ++lapacke_sppsvx_work.o \ ++lapacke_spptrf.o \ ++lapacke_spptrf_work.o \ ++lapacke_spptri.o \ ++lapacke_spptri_work.o \ ++lapacke_spptrs.o \ ++lapacke_spptrs_work.o \ ++lapacke_spstrf.o \ ++lapacke_spstrf_work.o \ ++lapacke_sptcon.o \ ++lapacke_sptcon_work.o \ ++lapacke_spteqr.o \ ++lapacke_spteqr_work.o \ ++lapacke_sptrfs.o \ ++lapacke_sptrfs_work.o \ ++lapacke_sptsv.o \ ++lapacke_sptsv_work.o \ ++lapacke_sptsvx.o \ ++lapacke_sptsvx_work.o \ ++lapacke_spttrf.o \ ++lapacke_spttrf_work.o \ ++lapacke_spttrs.o \ ++lapacke_spttrs_work.o \ ++lapacke_ssbev.o \ ++lapacke_ssbevd.o \ ++lapacke_ssbevd_work.o \ ++lapacke_ssbev_work.o \ ++lapacke_ssbevx.o \ ++lapacke_ssbevx_work.o \ ++lapacke_ssbgst.o \ ++lapacke_ssbgst_work.o \ ++lapacke_ssbgv.o \ ++lapacke_ssbgvd.o \ ++lapacke_ssbgvd_work.o \ ++lapacke_ssbgv_work.o \ ++lapacke_ssbgvx.o \ ++lapacke_ssbgvx_work.o \ ++lapacke_ssbtrd.o \ ++lapacke_ssbtrd_work.o \ ++lapacke_ssfrk.o \ ++lapacke_ssfrk_work.o \ ++lapacke_sspcon.o \ ++lapacke_sspcon_work.o \ ++lapacke_sspev.o \ ++lapacke_sspevd.o \ ++lapacke_sspevd_work.o \ ++lapacke_sspev_work.o \ ++lapacke_sspevx.o \ ++lapacke_sspevx_work.o \ ++lapacke_sspgst.o \ ++lapacke_sspgst_work.o \ ++lapacke_sspgv.o \ ++lapacke_sspgvd.o \ ++lapacke_sspgvd_work.o \ ++lapacke_sspgv_work.o \ ++lapacke_sspgvx.o \ ++lapacke_sspgvx_work.o \ ++lapacke_ssprfs.o \ ++lapacke_ssprfs_work.o \ ++lapacke_sspsv.o \ ++lapacke_sspsv_work.o \ ++lapacke_sspsvx.o \ ++lapacke_sspsvx_work.o \ ++lapacke_ssptrd.o \ ++lapacke_ssptrd_work.o \ ++lapacke_ssptrf.o \ ++lapacke_ssptrf_work.o \ ++lapacke_ssptri.o \ ++lapacke_ssptri_work.o \ ++lapacke_ssptrs.o \ ++lapacke_ssptrs_work.o \ ++lapacke_sstebz.o \ ++lapacke_sstebz_work.o \ ++lapacke_sstedc.o \ ++lapacke_sstedc_work.o \ ++lapacke_sstegr.o \ ++lapacke_sstegr_work.o \ ++lapacke_sstein.o \ ++lapacke_sstein_work.o \ ++lapacke_sstemr.o \ ++lapacke_sstemr_work.o \ ++lapacke_ssteqr.o \ ++lapacke_ssteqr_work.o \ ++lapacke_ssterf.o \ ++lapacke_ssterf_work.o \ ++lapacke_sstev.o \ ++lapacke_sstevd.o \ ++lapacke_sstevd_work.o \ ++lapacke_sstevr.o \ ++lapacke_sstevr_work.o \ ++lapacke_sstev_work.o \ ++lapacke_sstevx.o \ ++lapacke_sstevx_work.o \ ++lapacke_ssycon.o \ ++lapacke_ssyconv.o \ ++lapacke_ssyconv_work.o \ ++lapacke_ssycon_work.o \ ++lapacke_ssyequb.o \ ++lapacke_ssyequb_work.o \ ++lapacke_ssyev.o \ ++lapacke_ssyevd.o \ ++lapacke_ssyevd_work.o \ ++lapacke_ssyevr.o \ ++lapacke_ssyevr_work.o \ ++lapacke_ssyev_work.o \ ++lapacke_ssyevx.o \ ++lapacke_ssyevx_work.o \ ++lapacke_ssygst.o \ ++lapacke_ssygst_work.o \ ++lapacke_ssygv.o \ ++lapacke_ssygvd.o \ ++lapacke_ssygvd_work.o \ ++lapacke_ssygv_work.o \ ++lapacke_ssygvx.o \ ++lapacke_ssygvx_work.o \ ++lapacke_ssyrfs.o \ ++lapacke_ssyrfs_work.o \ ++lapacke_ssysv.o \ ++lapacke_ssysv_work.o \ ++lapacke_ssysvx.o \ ++lapacke_ssysvx_work.o \ ++lapacke_ssyswapr.o \ ++lapacke_ssyswapr_work.o \ ++lapacke_ssytrd.o \ ++lapacke_ssytrd_work.o \ ++lapacke_ssytrf.o \ ++lapacke_ssytrf_work.o \ ++lapacke_ssytri2.o \ ++lapacke_ssytri2_work.o \ ++lapacke_ssytri2x.o \ ++lapacke_ssytri2x_work.o \ ++lapacke_ssytri.o \ ++lapacke_ssytri_work.o \ ++lapacke_ssytrs2.o \ ++lapacke_ssytrs2_work.o \ ++lapacke_ssytrs.o \ ++lapacke_ssytrs_work.o \ ++lapacke_stbcon.o \ ++lapacke_stbcon_work.o \ ++lapacke_stbrfs.o \ ++lapacke_stbrfs_work.o \ ++lapacke_stbtrs.o \ ++lapacke_stbtrs_work.o \ ++lapacke_stfsm.o \ ++lapacke_stfsm_work.o \ ++lapacke_stftri.o \ ++lapacke_stftri_work.o \ ++lapacke_stfttp.o \ ++lapacke_stfttp_work.o \ ++lapacke_stfttr.o \ ++lapacke_stfttr_work.o \ ++lapacke_stgevc.o \ ++lapacke_stgevc_work.o \ ++lapacke_stgexc.o \ ++lapacke_stgexc_work.o \ ++lapacke_stgsen.o \ ++lapacke_stgsen_work.o \ ++lapacke_stgsja.o \ ++lapacke_stgsja_work.o \ ++lapacke_stgsna.o \ ++lapacke_stgsna_work.o \ ++lapacke_stgsyl.o \ ++lapacke_stgsyl_work.o \ ++lapacke_stpcon.o \ ++lapacke_stpcon_work.o \ ++lapacke_stpmqrt.o \ ++lapacke_stpmqrt_work.o \ ++lapacke_stpqrt2.o \ ++lapacke_stpqrt2_work.o \ ++lapacke_stprfb.o \ ++lapacke_stprfb_work.o \ ++lapacke_stprfs.o \ ++lapacke_stprfs_work.o \ ++lapacke_stptri.o \ ++lapacke_stptri_work.o \ ++lapacke_stptrs.o \ ++lapacke_stptrs_work.o \ ++lapacke_stpttf.o \ ++lapacke_stpttf_work.o \ ++lapacke_stpttr.o \ ++lapacke_stpttr_work.o \ ++lapacke_strcon.o \ ++lapacke_strcon_work.o \ ++lapacke_strevc.o \ ++lapacke_strevc_work.o \ ++lapacke_strexc.o \ ++lapacke_strexc_work.o \ ++lapacke_strrfs.o \ ++lapacke_strrfs_work.o \ ++lapacke_strsen.o \ ++lapacke_strsen_work.o \ ++lapacke_strsna.o \ ++lapacke_strsna_work.o \ ++lapacke_strsyl.o \ ++lapacke_strsyl_work.o \ ++lapacke_strtri.o \ ++lapacke_strtri_work.o \ ++lapacke_strtrs.o \ ++lapacke_strtrs_work.o \ ++lapacke_strttf.o \ ++lapacke_strttf_work.o \ ++lapacke_strttp.o \ ++lapacke_strttp_work.o \ ++lapacke_stzrzf.o \ ++lapacke_stzrzf_work.o \ ++lapacke_zbbcsd.o \ ++lapacke_zbbcsd_work.o \ ++lapacke_zbdsqr.o \ ++lapacke_zbdsqr_work.o \ ++lapacke_zcgesv.o \ ++lapacke_zcgesv_work.o \ ++lapacke_zcposv.o \ ++lapacke_zcposv_work.o \ ++lapacke_zgbbrd.o \ ++lapacke_zgbbrd_work.o \ ++lapacke_zgbcon.o \ ++lapacke_zgbcon_work.o \ ++lapacke_zgbequb.o \ ++lapacke_zgbequb_work.o \ ++lapacke_zgbequ.o \ ++lapacke_zgbequ_work.o \ ++lapacke_zgbrfs.o \ ++lapacke_zgbrfs_work.o \ ++lapacke_zgbsv.o \ ++lapacke_zgbsv_work.o \ ++lapacke_zgbsvx.o \ ++lapacke_zgbsvx_work.o \ ++lapacke_zgbtrf.o \ ++lapacke_zgbtrf_work.o \ ++lapacke_zgbtrs.o \ ++lapacke_zgbtrs_work.o \ ++lapacke_zgebak.o \ ++lapacke_zgebak_work.o \ ++lapacke_zgebal.o \ ++lapacke_zgebal_work.o \ ++lapacke_zgebrd.o \ ++lapacke_zgebrd_work.o \ ++lapacke_zgecon.o \ ++lapacke_zgecon_work.o \ ++lapacke_zgeequb.o \ ++lapacke_zgeequb_work.o \ ++lapacke_zgeequ.o \ ++lapacke_zgeequ_work.o \ ++lapacke_zgees.o \ ++lapacke_zgees_work.o \ ++lapacke_zgeesx.o \ ++lapacke_zgeesx_work.o \ ++lapacke_zgeev.o \ ++lapacke_zgeev_work.o \ ++lapacke_zgeevx.o \ ++lapacke_zgeevx_work.o \ ++lapacke_zgehrd.o \ ++lapacke_zgehrd_work.o \ ++lapacke_zgelq2.o \ ++lapacke_zgelq2_work.o \ ++lapacke_zgelqf.o \ ++lapacke_zgelqf_work.o \ ++lapacke_zgels.o \ ++lapacke_zgelsd.o \ ++lapacke_zgelsd_work.o \ ++lapacke_zgelss.o \ ++lapacke_zgelss_work.o \ ++lapacke_zgels_work.o \ ++lapacke_zgelsy.o \ ++lapacke_zgelsy_work.o \ ++lapacke_zgemqrt.o \ ++lapacke_zgemqrt_work.o \ ++lapacke_zgeqlf.o \ ++lapacke_zgeqlf_work.o \ ++lapacke_zgeqp3.o \ ++lapacke_zgeqp3_work.o \ ++lapacke_zgeqpf.o \ ++lapacke_zgeqpf_work.o \ ++lapacke_zgeqr2.o \ ++lapacke_zgeqr2_work.o \ ++lapacke_zgeqrf.o \ ++lapacke_zgeqrfp.o \ ++lapacke_zgeqrfp_work.o \ ++lapacke_zgeqrf_work.o \ ++lapacke_zgeqrt2.o \ ++lapacke_zgeqrt2_work.o \ ++lapacke_zgeqrt3.o \ ++lapacke_zgeqrt3_work.o \ ++lapacke_zgeqrt.o \ ++lapacke_zgeqrt_work.o \ ++lapacke_zgerfs.o \ ++lapacke_zgerfs_work.o \ ++lapacke_zgerqf.o \ ++lapacke_zgerqf_work.o \ ++lapacke_zgesdd.o \ ++lapacke_zgesdd_work.o \ ++lapacke_zgesv.o \ ++lapacke_zgesvd.o \ ++lapacke_zgesvd_work.o \ ++lapacke_zgesv_work.o \ ++lapacke_zgesvx.o \ ++lapacke_zgesvx_work.o \ ++lapacke_zgetf2.o \ ++lapacke_zgetf2_work.o \ ++lapacke_zgetrf.o \ ++lapacke_zgetrf_work.o \ ++lapacke_zgetri.o \ ++lapacke_zgetri_work.o \ ++lapacke_zgetrs.o \ ++lapacke_zgetrs_work.o \ ++lapacke_zggbak.o \ ++lapacke_zggbak_work.o \ ++lapacke_zggbal.o \ ++lapacke_zggbal_work.o \ ++lapacke_zgges.o \ ++lapacke_zgges_work.o \ ++lapacke_zggesx.o \ ++lapacke_zggesx_work.o \ ++lapacke_zggev.o \ ++lapacke_zggev_work.o \ ++lapacke_zggevx.o \ ++lapacke_zggevx_work.o \ ++lapacke_zggglm.o \ ++lapacke_zggglm_work.o \ ++lapacke_zgghrd.o \ ++lapacke_zgghrd_work.o \ ++lapacke_zgglse.o \ ++lapacke_zgglse_work.o \ ++lapacke_zggqrf.o \ ++lapacke_zggqrf_work.o \ ++lapacke_zggrqf.o \ ++lapacke_zggrqf_work.o \ ++lapacke_zggsvd.o \ ++lapacke_zggsvd_work.o \ ++lapacke_zggsvp.o \ ++lapacke_zggsvp_work.o \ ++lapacke_zgtcon.o \ ++lapacke_zgtcon_work.o \ ++lapacke_zgtrfs.o \ ++lapacke_zgtrfs_work.o \ ++lapacke_zgtsv.o \ ++lapacke_zgtsv_work.o \ ++lapacke_zgtsvx.o \ ++lapacke_zgtsvx_work.o \ ++lapacke_zgttrf.o \ ++lapacke_zgttrf_work.o \ ++lapacke_zgttrs.o \ ++lapacke_zgttrs_work.o \ ++lapacke_zhbev.o \ ++lapacke_zhbevd.o \ ++lapacke_zhbevd_work.o \ ++lapacke_zhbev_work.o \ ++lapacke_zhbevx.o \ ++lapacke_zhbevx_work.o \ ++lapacke_zhbgst.o \ ++lapacke_zhbgst_work.o \ ++lapacke_zhbgv.o \ ++lapacke_zhbgvd.o \ ++lapacke_zhbgvd_work.o \ ++lapacke_zhbgv_work.o \ ++lapacke_zhbgvx.o \ ++lapacke_zhbgvx_work.o \ ++lapacke_zhbtrd.o \ ++lapacke_zhbtrd_work.o \ ++lapacke_zhecon.o \ ++lapacke_zhecon_work.o \ ++lapacke_zheequb.o \ ++lapacke_zheequb_work.o \ ++lapacke_zheev.o \ ++lapacke_zheevd.o \ ++lapacke_zheevd_work.o \ ++lapacke_zheevr.o \ ++lapacke_zheevr_work.o \ ++lapacke_zheev_work.o \ ++lapacke_zheevx.o \ ++lapacke_zheevx_work.o \ ++lapacke_zhegst.o \ ++lapacke_zhegst_work.o \ ++lapacke_zhegv.o \ ++lapacke_zhegvd.o \ ++lapacke_zhegvd_work.o \ ++lapacke_zhegv_work.o \ ++lapacke_zhegvx.o \ ++lapacke_zhegvx_work.o \ ++lapacke_zherfs.o \ ++lapacke_zherfs_work.o \ ++lapacke_zhesv.o \ ++lapacke_zhesv_work.o \ ++lapacke_zhesvx.o \ ++lapacke_zhesvx_work.o \ ++lapacke_zheswapr.o \ ++lapacke_zheswapr_work.o \ ++lapacke_zhetrd.o \ ++lapacke_zhetrd_work.o \ ++lapacke_zhetrf.o \ ++lapacke_zhetrf_work.o \ ++lapacke_zhetri2.o \ ++lapacke_zhetri2_work.o \ ++lapacke_zhetri2x.o \ ++lapacke_zhetri2x_work.o \ ++lapacke_zhetri.o \ ++lapacke_zhetri_work.o \ ++lapacke_zhetrs2.o \ ++lapacke_zhetrs2_work.o \ ++lapacke_zhetrs.o \ ++lapacke_zhetrs_work.o \ ++lapacke_zhfrk.o \ ++lapacke_zhfrk_work.o \ ++lapacke_zhgeqz.o \ ++lapacke_zhgeqz_work.o \ ++lapacke_zhpcon.o \ ++lapacke_zhpcon_work.o \ ++lapacke_zhpev.o \ ++lapacke_zhpevd.o \ ++lapacke_zhpevd_work.o \ ++lapacke_zhpev_work.o \ ++lapacke_zhpevx.o \ ++lapacke_zhpevx_work.o \ ++lapacke_zhpgst.o \ ++lapacke_zhpgst_work.o \ ++lapacke_zhpgv.o \ ++lapacke_zhpgvd.o \ ++lapacke_zhpgvd_work.o \ ++lapacke_zhpgv_work.o \ ++lapacke_zhpgvx.o \ ++lapacke_zhpgvx_work.o \ ++lapacke_zhprfs.o \ ++lapacke_zhprfs_work.o \ ++lapacke_zhpsv.o \ ++lapacke_zhpsv_work.o \ ++lapacke_zhpsvx.o \ ++lapacke_zhpsvx_work.o \ ++lapacke_zhptrd.o \ ++lapacke_zhptrd_work.o \ ++lapacke_zhptrf.o \ ++lapacke_zhptrf_work.o \ ++lapacke_zhptri.o \ ++lapacke_zhptri_work.o \ ++lapacke_zhptrs.o \ ++lapacke_zhptrs_work.o \ ++lapacke_zhsein.o \ ++lapacke_zhsein_work.o \ ++lapacke_zhseqr.o \ ++lapacke_zhseqr_work.o \ ++lapacke_zlacgv.o \ ++lapacke_zlacgv_work.o \ ++lapacke_zlacpy.o \ ++lapacke_zlacpy_work.o \ ++lapacke_zlag2c.o \ ++lapacke_zlag2c_work.o \ ++lapacke_zlange.o \ ++lapacke_zlange_work.o \ ++lapacke_zlanhe.o \ ++lapacke_zlanhe_work.o \ ++lapacke_zlansy.o \ ++lapacke_zlansy_work.o \ ++lapacke_zlantr.o \ ++lapacke_zlantr_work.o \ ++lapacke_zlapmr.o \ ++lapacke_zlapmr_work.o \ ++lapacke_zlarfb.o \ ++lapacke_zlarfb_work.o \ ++lapacke_zlarfg.o \ ++lapacke_zlarfg_work.o \ ++lapacke_zlarft.o \ ++lapacke_zlarft_work.o \ ++lapacke_zlarfx.o \ ++lapacke_zlarfx_work.o \ ++lapacke_zlarnv.o \ ++lapacke_zlarnv_work.o \ ++lapacke_zlaset.o \ ++lapacke_zlaset_work.o \ ++lapacke_zlaswp.o \ ++lapacke_zlaswp_work.o \ ++lapacke_zlauum.o \ ++lapacke_zlauum_work.o \ ++lapacke_zpbcon.o \ ++lapacke_zpbcon_work.o \ ++lapacke_zpbequ.o \ ++lapacke_zpbequ_work.o \ ++lapacke_zpbrfs.o \ ++lapacke_zpbrfs_work.o \ ++lapacke_zpbstf.o \ ++lapacke_zpbstf_work.o \ ++lapacke_zpbsv.o \ ++lapacke_zpbsv_work.o \ ++lapacke_zpbsvx.o \ ++lapacke_zpbsvx_work.o \ ++lapacke_zpbtrf.o \ ++lapacke_zpbtrf_work.o \ ++lapacke_zpbtrs.o \ ++lapacke_zpbtrs_work.o \ ++lapacke_zpftrf.o \ ++lapacke_zpftrf_work.o \ ++lapacke_zpftri.o \ ++lapacke_zpftri_work.o \ ++lapacke_zpftrs.o \ ++lapacke_zpftrs_work.o \ ++lapacke_zpocon.o \ ++lapacke_zpocon_work.o \ ++lapacke_zpoequb.o \ ++lapacke_zpoequb_work.o \ ++lapacke_zpoequ.o \ ++lapacke_zpoequ_work.o \ ++lapacke_zporfs.o \ ++lapacke_zporfs_work.o \ ++lapacke_zposv.o \ ++lapacke_zposv_work.o \ ++lapacke_zposvx.o \ ++lapacke_zposvx_work.o \ ++lapacke_zpotrf.o \ ++lapacke_zpotrf_work.o \ ++lapacke_zpotri.o \ ++lapacke_zpotri_work.o \ ++lapacke_zpotrs.o \ ++lapacke_zpotrs_work.o \ ++lapacke_zppcon.o \ ++lapacke_zppcon_work.o \ ++lapacke_zppequ.o \ ++lapacke_zppequ_work.o \ ++lapacke_zpprfs.o \ ++lapacke_zpprfs_work.o \ ++lapacke_zppsv.o \ ++lapacke_zppsv_work.o \ ++lapacke_zppsvx.o \ ++lapacke_zppsvx_work.o \ ++lapacke_zpptrf.o \ ++lapacke_zpptrf_work.o \ ++lapacke_zpptri.o \ ++lapacke_zpptri_work.o \ ++lapacke_zpptrs.o \ ++lapacke_zpptrs_work.o \ ++lapacke_zpstrf.o \ ++lapacke_zpstrf_work.o \ ++lapacke_zptcon.o \ ++lapacke_zptcon_work.o \ ++lapacke_zpteqr.o \ ++lapacke_zpteqr_work.o \ ++lapacke_zptrfs.o \ ++lapacke_zptrfs_work.o \ ++lapacke_zptsv.o \ ++lapacke_zptsv_work.o \ ++lapacke_zptsvx.o \ ++lapacke_zptsvx_work.o \ ++lapacke_zpttrf.o \ ++lapacke_zpttrf_work.o \ ++lapacke_zpttrs.o \ ++lapacke_zpttrs_work.o \ ++lapacke_zspcon.o \ ++lapacke_zspcon_work.o \ ++lapacke_zsprfs.o \ ++lapacke_zsprfs_work.o \ ++lapacke_zspsv.o \ ++lapacke_zspsv_work.o \ ++lapacke_zspsvx.o \ ++lapacke_zspsvx_work.o \ ++lapacke_zsptrf.o \ ++lapacke_zsptrf_work.o \ ++lapacke_zsptri.o \ ++lapacke_zsptri_work.o \ ++lapacke_zsptrs.o \ ++lapacke_zsptrs_work.o \ ++lapacke_zstedc.o \ ++lapacke_zstedc_work.o \ ++lapacke_zstegr.o \ ++lapacke_zstegr_work.o \ ++lapacke_zstein.o \ ++lapacke_zstein_work.o \ ++lapacke_zstemr.o \ ++lapacke_zstemr_work.o \ ++lapacke_zsteqr.o \ ++lapacke_zsteqr_work.o \ ++lapacke_zsycon.o \ ++lapacke_zsyconv.o \ ++lapacke_zsyconv_work.o \ ++lapacke_zsycon_work.o \ ++lapacke_zsyequb.o \ ++lapacke_zsyequb_work.o \ ++lapacke_zsyrfs.o \ ++lapacke_zsyrfs_work.o \ ++lapacke_zsysv.o \ ++lapacke_zsysv_work.o \ ++lapacke_zsysvx.o \ ++lapacke_zsysvx_work.o \ ++lapacke_zsyswapr.o \ ++lapacke_zsyswapr_work.o \ ++lapacke_zsytrf.o \ ++lapacke_zsytrf_work.o \ ++lapacke_zsytri2.o \ ++lapacke_zsytri2_work.o \ ++lapacke_zsytri2x.o \ ++lapacke_zsytri2x_work.o \ ++lapacke_zsytri.o \ ++lapacke_zsytri_work.o \ ++lapacke_zsytrs2.o \ ++lapacke_zsytrs2_work.o \ ++lapacke_zsytrs.o \ ++lapacke_zsytrs_work.o \ ++lapacke_ztbcon.o \ ++lapacke_ztbcon_work.o \ ++lapacke_ztbrfs.o \ ++lapacke_ztbrfs_work.o \ ++lapacke_ztbtrs.o \ ++lapacke_ztbtrs_work.o \ ++lapacke_ztfsm.o \ ++lapacke_ztfsm_work.o \ ++lapacke_ztftri.o \ ++lapacke_ztftri_work.o \ ++lapacke_ztfttp.o \ ++lapacke_ztfttp_work.o \ ++lapacke_ztfttr.o \ ++lapacke_ztfttr_work.o \ ++lapacke_ztgevc.o \ ++lapacke_ztgevc_work.o \ ++lapacke_ztgexc.o \ ++lapacke_ztgexc_work.o \ ++lapacke_ztgsen.o \ ++lapacke_ztgsen_work.o \ ++lapacke_ztgsja.o \ ++lapacke_ztgsja_work.o \ ++lapacke_ztgsna.o \ ++lapacke_ztgsna_work.o \ ++lapacke_ztgsyl.o \ ++lapacke_ztgsyl_work.o \ ++lapacke_ztpcon.o \ ++lapacke_ztpcon_work.o \ ++lapacke_ztpmqrt.o \ ++lapacke_ztpmqrt_work.o \ ++lapacke_ztpqrt2.o \ ++lapacke_ztpqrt2_work.o \ ++lapacke_ztpqrt.o \ ++lapacke_ztpqrt_work.o \ ++lapacke_ztprfb.o \ ++lapacke_ztprfb_work.o \ ++lapacke_ztprfs.o \ ++lapacke_ztprfs_work.o \ ++lapacke_ztptri.o \ ++lapacke_ztptri_work.o \ ++lapacke_ztptrs.o \ ++lapacke_ztptrs_work.o \ ++lapacke_ztpttf.o \ ++lapacke_ztpttf_work.o \ ++lapacke_ztpttr.o \ ++lapacke_ztpttr_work.o \ ++lapacke_ztrcon.o \ ++lapacke_ztrcon_work.o \ ++lapacke_ztrevc.o \ ++lapacke_ztrevc_work.o \ ++lapacke_ztrexc.o \ ++lapacke_ztrexc_work.o \ ++lapacke_ztrrfs.o \ ++lapacke_ztrrfs_work.o \ ++lapacke_ztrsen.o \ ++lapacke_ztrsen_work.o \ ++lapacke_ztrsna.o \ ++lapacke_ztrsna_work.o \ ++lapacke_ztrsyl.o \ ++lapacke_ztrsyl_work.o \ ++lapacke_ztrtri.o \ ++lapacke_ztrtri_work.o \ ++lapacke_ztrtrs.o \ ++lapacke_ztrtrs_work.o \ ++lapacke_ztrttf.o \ ++lapacke_ztrttf_work.o \ ++lapacke_ztrttp.o \ ++lapacke_ztrttp_work.o \ ++lapacke_ztzrzf.o \ ++lapacke_ztzrzf_work.o \ ++lapacke_zunbdb.o \ ++lapacke_zunbdb_work.o \ ++lapacke_zuncsd.o \ ++lapacke_zuncsd_work.o \ ++lapacke_zungbr.o \ ++lapacke_zungbr_work.o \ ++lapacke_zunghr.o \ ++lapacke_zunghr_work.o \ ++lapacke_zunglq.o \ ++lapacke_zunglq_work.o \ ++lapacke_zungql.o \ ++lapacke_zungql_work.o \ ++lapacke_zungqr.o \ ++lapacke_zungqr_work.o \ ++lapacke_zungrq.o \ ++lapacke_zungrq_work.o \ ++lapacke_zungtr.o \ ++lapacke_zungtr_work.o \ ++lapacke_zunmbr.o \ ++lapacke_zunmbr_work.o \ ++lapacke_zunmhr.o \ ++lapacke_zunmhr_work.o \ ++lapacke_zunmlq.o \ ++lapacke_zunmlq_work.o \ ++lapacke_zunmql.o \ ++lapacke_zunmql_work.o \ ++lapacke_zunmqr.o \ ++lapacke_zunmqr_work.o \ ++lapacke_zunmrq.o \ ++lapacke_zunmrq_work.o \ ++lapacke_zunmrz.o \ ++lapacke_zunmrz_work.o \ ++lapacke_zunmtr.o \ ++lapacke_zunmtr_work.o \ ++lapacke_zupgtr.o \ ++lapacke_zupgtr_work.o \ ++lapacke_zupmtr.o \ ++lapacke_zupmtr_work.o ++ ++ ++LAPACKE_EXTENDEDPRECSION_OBJS := \ ++ lapacke_dgbrfsx.o lapacke_dgbrfsx_work.o lapacke_zgbrfsx.o lapacke_zgbrfsx_work.o lapacke_zsyrfsx.o \ ++lapacke_zsyrfsx_work.o \ ++lapacke_zgerfsx.o \ ++lapacke_zgerfsx_work.o \ ++lapacke_zporfsx.o \ ++lapacke_zporfsx_work.o \ ++lapacke_sgerfsx.o \ ++lapacke_sgerfsx_work.o \ ++lapacke_zgesvxx.o \ ++lapacke_zgesvxx_work.o \ ++lapacke_sgbrfsx.o \ ++lapacke_sgbrfsx_work.o \ ++lapacke_ssysvxx.o \ ++lapacke_ssysvxx_work.o \ ++lapacke_sgesvxx.o \ ++lapacke_sgesvxx_work.o \ ++lapacke_cgbsvxx.o \ ++lapacke_cgbsvxx_work.o \ ++lapacke_cporfsx.o \ ++lapacke_cporfsx_work.o \ ++lapacke_cherfsx.o \ ++lapacke_cherfsx_work.o \ ++lapacke_dporfsx.o \ ++lapacke_dporfsx_work.o \ ++lapacke_sposvxx.o \ ++lapacke_sposvxx_work.o \ ++lapacke_sgbsvxx.o \ ++lapacke_sgbsvxx_work.o \ ++lapacke_zposvxx.o \ ++lapacke_zposvxx_work.o \ ++lapacke_chesvxx.o \ ++lapacke_chesvxx_work.o \ ++lapacke_cposvxx.o \ ++lapacke_cposvxx_work.o \ ++lapacke_cgesvxx.o \ ++lapacke_cgesvxx_work.o \ ++lapacke_ssyrfsx.o \ ++lapacke_ssyrfsx_work.o \ ++lapacke_csyrfsx.o \ ++lapacke_csyrfsx_work.o \ ++lapacke_dsysvxx.o \ ++lapacke_dsysvxx_work.o \ ++lapacke_sporfsx.o \ ++lapacke_sporfsx_work.o \ ++lapacke_zherfsx.o \ ++lapacke_zherfsx_work.o \ ++lapacke_csysvxx.o \ ++lapacke_csysvxx_work.o \ ++lapacke_dposvxx.o \ ++lapacke_dposvxx_work.o \ ++lapacke_cgerfsx.o \ ++lapacke_cgerfsx_work.o \ ++lapacke_zgbsvxx.o \ ++lapacke_zgbsvxx_work.o \ ++lapacke_zsysvxx.o \ ++lapacke_zsysvxx_work.o \ ++lapacke_dgesvxx.o \ ++lapacke_dgesvxx_work.o \ ++lapacke_dgerfsx.o \ ++lapacke_dgerfsx_work.o \ ++lapacke_dsyrfsx.o \ ++lapacke_dsyrfsx_work.o \ ++lapacke_claghe.o \ ++lapacke_claghe_work.o \ ++lapacke_zhesvxx.o \ ++lapacke_zhesvxx_work.o \ ++lapacke_cgbrfsx.o \ ++lapacke_cgbrfsx_work.o \ ++lapacke_dgbsvxx.o \ ++lapacke_dgbsvxx_work.o ++ ++LAPACKE_TESTING_OBJS := \ ++ lapacke_slagge.o lapacke_slagge_work.o lapacke_clagge.o lapacke_clagge_work.o \ ++ lapacke_clatms.o lapacke_clatms_work.o lapacke_slatms.o lapacke_slatms_work.o lapacke_zlatms.o lapacke_zlatms_work.o \ ++ lapacke_clagsy.o lapacke_clagsy_work.o lapacke_slagsy.o lapacke_slagsy_work.o \ ++ lapacke_zlagsy.o lapacke_zlagsy_work.o lapacke_zlagge.o lapacke_zlagge_work.o \ ++ lapacke_dlatms.o lapacke_dlatms_work.o lapacke_zlaghe.o lapacke_zlaghe_work.o \ ++ lapacke_dlagsy.o lapacke_dlagsy_work.o lapacke_dlagge.o lapacke_dlagge_work.o ++ ++ ++OBJ_FILES := $(LAPACKE_OBJS) ++ ++ifdef LAPACKE_EXTENDED ++OBJ_FILES += $(LAPACKE_EXTENDEDPRECSION_OBJS) ++endif ++ ++ifdef LAPACKE_TESTING ++OBJ_FILES += $(LAPACK_TESTING_OBJS) ++endif + all: lib - + lib: $(OBJ_FILES) - $(ARCH) $(ARCHFLAGS) ../$(LAPACKE) $(OBJ_FILES) -+ # http://hackage.haskell.org/trac/gtk2hs/ticket/1146 ++# http://hackage.haskell.org/trac/gtk2hs/ticket/1146 + echo $(OBJ_FILES) | xargs --max-args=100 $(ARCH) $(ARCHFLAGS) ../$(LAPACKE) - $(RANLIB) ../$(LAPACKE) - + $(RANLIB) ../$(LAPACKE) + .c.o: From 74306b54d7b5b2ec739a3ecd03b0d06e1fd9fa06 Mon Sep 17 00:00:00 2001 From: Xianyi Zhang Date: Mon, 23 Apr 2012 11:26:42 +0800 Subject: [PATCH 07/21] Refs #90 auto detect Intel Sandy Bridge Core i7-3820 --- cpuid_x86.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cpuid_x86.c b/cpuid_x86.c index e183e9fc3..e7aa07b44 100644 --- a/cpuid_x86.c +++ b/cpuid_x86.c @@ -987,6 +987,9 @@ int get_cpuname(void){ case 12: //Xeon Processor 5600 (Westmere-EP) return CPUTYPE_NEHALEM; + case 13: + //Intel Core i7-3000 / Xeon E5 (Sandy Bridge) + return CPUTYPE_NEHALEM; } break; } @@ -1319,6 +1322,9 @@ int get_coretype(void){ case 12: //Xeon Processor 5600 (Westmere-EP) return CORE_NEHALEM; + case 13: + //Intel Core i7-3000 / Xeon E5 (Sandy Bridge) + return CORE_NEHALEM; } break; } From f4eee224d862918768801c4a2fd33f8f8e275fb2 Mon Sep 17 00:00:00 2001 From: Zaheer Chothia Date: Sun, 22 Apr 2012 22:38:10 +0200 Subject: [PATCH 08/21] Refs #93. Upgraded LAPACK to 3.4.1 version. --- Makefile | 82 ++-- Makefile.system | 2 +- exports/gensymbol | 6 +- patch.for_lapack-3.4.1 | 932 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 967 insertions(+), 55 deletions(-) create mode 100644 patch.for_lapack-3.4.1 diff --git a/Makefile b/Makefile index 5de7987e9..efc8b33d8 100644 --- a/Makefile +++ b/Makefile @@ -26,10 +26,10 @@ endif SUBDIRS_ALL = $(SUBDIRS) test ctest utest exports benchmark ../laswp ../bench -.PHONY : all libs netlib lapacke test ctest shared install +.PHONY : all libs netlib test ctest shared install .NOTPARALLEL : all libs prof lapack-test install -all :: libs netlib lapacke tests shared +all :: libs netlib tests shared @echo @echo " OpenBLAS build complete." @echo @@ -203,82 +203,58 @@ ifeq ($(NO_LAPACK), 1) netlib : else -netlib : lapack-3.4.0 patch.for_lapack-3.4.0 $(NETLIB_LAPACK_DIR)/make.inc +netlib : lapack-3.4.1 patch.for_lapack-3.4.1 $(NETLIB_LAPACK_DIR)/make.inc ifndef NOFORTRAN -@$(MAKE) -C $(NETLIB_LAPACK_DIR) lapacklib endif -endif - -ifeq ($(NO_LAPACKE), 1) -lapacke : - -else -lapacke : lapack-3.4.0 $(NETLIB_LAPACK_DIR)/lapacke/make.inc -ifndef NOFORTRAN - -@$(MAKE) -C $(NETLIB_LAPACK_DIR)/lapacke +ifndef NO_LAPACKE + -@$(MAKE) -C $(NETLIB_LAPACK_DIR) lapackelib endif endif -prof_lapack : lapack-3.4.0 $(NETLIB_LAPACK_DIR)/make.inc +prof_lapack : lapack-3.4.1 $(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 "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 "CC = $(CC)" >> $(NETLIB_LAPACK_DIR)/make.inc + -@echo "CFLAGS = $(CFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc + -@echo "ARCH = $(AR)" >> $(NETLIB_LAPACK_DIR)/make.inc + -@echo "ARCHFLAGS = -ru" >> $(NETLIB_LAPACK_DIR)/make.inc + -@echo "RANLIB = $(RANLIB)" >> $(NETLIB_LAPACK_DIR)/make.inc + -@echo "LAPACKLIB = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc + -@echo "LAPACKELIB = ../$(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 + -@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 -LAPACKE_CFLAGS = $(CFLAGS) -LAPACKE_LDFLAGS = $(FFLAGS) $(EXTRALIB) -ifeq ($(F_COMPILER), INTEL) -LAPACKE_LDFLAGS += -nofor-main -endif -ifdef INTERFACE64 -LAPACKE_CFLAGS += -DHAVE_LAPACK_CONFIG_H -DLAPACK_ILP64 -endif -$(NETLIB_LAPACK_DIR)/lapacke/make.inc : -ifndef NOFORTRAN - -@echo "CC = $(CC)" > $(NETLIB_LAPACK_DIR)/lapacke/make.inc - -@echo "CFLAGS = $(LAPACKE_CFLAGS)" >> $(NETLIB_LAPACK_DIR)/lapacke/make.inc - -@echo "LINKER = $(FC)" >> $(NETLIB_LAPACK_DIR)/lapacke/make.inc - -@echo "LDFLAGS = $(LAPACKE_LDFLAGS)" >> $(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 +lapack-3.4.1 : lapack-3.4.1.tgz ifndef NOFORTRAN ifndef NO_LAPACK - @if test `$(MD5SUM) lapack-3.4.0.tgz | $(AWK) '{print $$1}'` = 02d5706ec03ba885fc246e5fa10d8c70; then \ + @if test `$(MD5SUM) lapack-3.4.1.tgz | $(AWK) '{print $$1}'` = d33ace3ac27dc6b4502833ee4dd820db; then \ echo $(TAR) zxf $< ;\ - $(TAR) zxf $< && (cd $(NETLIB_LAPACK_DIR); $(PATCH) -p1 < ../patch.for_lapack-3.4.0) ;\ + $(TAR) zxf $< && (cd $(NETLIB_LAPACK_DIR); $(PATCH) -p1 < ../patch.for_lapack-3.4.1) ;\ rm -f $(NETLIB_LAPACK_DIR)/lapacke/make.inc ;\ else \ rm -rf $(NETLIB_LAPACK_DIR) ;\ - echo " Cannot download lapack-3.4.0.tgz or the MD5 check sum is wrong (Please use orignal)."; \ + echo " Cannot download lapack-3.4.1.tgz or the MD5 check sum is wrong (Please use orignal)."; \ exit 1; \ fi endif endif -LAPACK_URL=http://www.netlib.org/lapack/lapack-3.4.0.tgz +LAPACK_URL=http://www.netlib.org/lapack/lapack-3.4.1.tgz -lapack-3.4.0.tgz : +lapack-3.4.1.tgz : ifndef NOFORTRAN ifeq ($(OSNAME), Darwin) curl -O $(LAPACK_URL) @@ -297,7 +273,7 @@ ifndef NOFORTRAN -wget http://www.netlib.org/lapack/timing/timing.tgz endif -lapack-timing : lapack-3.4.0 large.tgz timing.tgz +lapack-timing : lapack-3.4.1 large.tgz timing.tgz ifndef NOFORTRAN (cd $(NETLIB_LAPACK_DIR); $(TAR) zxf ../timing.tgz TIMING) (cd $(NETLIB_LAPACK_DIR)/TIMING; $(TAR) zxf ../../large.tgz ) diff --git a/Makefile.system b/Makefile.system index dbc8ffe07..e2fe9f730 100644 --- a/Makefile.system +++ b/Makefile.system @@ -10,7 +10,7 @@ TOPDIR = . endif ifndef NETLIB_LAPACK_DIR -NETLIB_LAPACK_DIR = $(TOPDIR)/lapack-3.4.0 +NETLIB_LAPACK_DIR = $(TOPDIR)/lapack-3.4.1 endif # Default C compiler diff --git a/exports/gensymbol b/exports/gensymbol index d9d35de48..702e047c1 100644 --- a/exports/gensymbol +++ b/exports/gensymbol @@ -737,6 +737,8 @@ LAPACKE_csyconv_work, LAPACKE_csyequb, LAPACKE_csyequb_work, + LAPACKE_csyr, + LAPACKE_csyr_work, LAPACKE_csyrfs, LAPACKE_csyrfs_work, LAPACKE_csysv, @@ -2307,6 +2309,8 @@ LAPACKE_zsyconv_work, LAPACKE_zsyequb, LAPACKE_zsyequb_work, + LAPACKE_zsyr, + LAPACKE_zsyr_work, LAPACKE_zsyrfs, LAPACKE_zsyrfs_work, LAPACKE_zsysv, @@ -2448,7 +2452,7 @@ if ($ARGV[5] == 1) { #NO_LAPACK=1 @underscore_objs = (@blasobjs); -} elsif (-d "../lapack-3.1.1" || -d "../lapack-3.4.0") { +} elsif (-d "../lapack-3.1.1" || -d "../lapack-3.4.0" || -d "../lapack-3.4.1") { @underscore_objs = (@blasobjs, @lapackobjs, @lapackobjs2); } else { @underscore_objs = (@blasobjs, @lapackobjs); diff --git a/patch.for_lapack-3.4.1 b/patch.for_lapack-3.4.1 new file mode 100644 index 000000000..e06129202 --- /dev/null +++ b/patch.for_lapack-3.4.1 @@ -0,0 +1,932 @@ +diff -ruN lapack-3.4.1.old/INSTALL/Makefile lapack-3.4.1/INSTALL/Makefile +--- lapack-3.4.1.old/INSTALL/Makefile 2011-10-01 04:37:03 +0200 ++++ lapack-3.4.1/INSTALL/Makefile 2012-04-22 21:48:48 +0200 +@@ -27,7 +27,7 @@ + $(LOADER) $(LOADOPTS) -o testversion ilaver.o LAPACK_version.o + + clean: +- rm -f *.o ++ rm -f *.o test* + .f.o: + $(FORTRAN) $(OPTS) -c $< -o $@ + +diff -ruN lapack-3.4.1.old/Makefile lapack-3.4.1/Makefile +--- lapack-3.4.1.old/Makefile 2012-04-13 20:13:07 +0200 ++++ lapack-3.4.1/Makefile 2012-04-22 21:48:07 +0200 +@@ -20,9 +20,12 @@ + blaslib: + ( cd BLAS/SRC; $(MAKE) ) + +-lapacklib: lapack_install ++lapacklib: + ( cd SRC; $(MAKE) ) + ++lapack_prof: ++ ( cd SRC; $(MAKE) lapack_prof) ++ + lapackelib: lapacklib + ( cd lapacke; $(MAKE) ) + +diff -ruN lapack-3.4.1.old/SRC/Makefile lapack-3.4.1/SRC/Makefile +--- lapack-3.4.1.old/SRC/Makefile 2012-04-02 21:06:36 +0200 ++++ lapack-3.4.1/SRC/Makefile 2012-04-22 21:40:21 +0200 +@@ -54,363 +54,371 @@ + # + ####################################################################### + +-ALLAUX = ilaenv.o ieeeck.o lsamen.o xerbla.o xerbla_array.o iparmq.o \ +- ilaprec.o ilatrans.o ilauplo.o iladiag.o chla_transtype.o \ +- ../INSTALL/ilaver.o ../INSTALL/lsame.o ../INSTALL/slamch.o ++ALLAUX = ilaenv.$(SUFFIX) ieeeck.$(SUFFIX) lsamen.$(SUFFIX) xerbla_array.$(SUFFIX) iparmq.$(SUFFIX) \ ++ ilaprec.$(SUFFIX) ilatrans.$(SUFFIX) ilauplo.$(SUFFIX) iladiag.$(SUFFIX) chla_transtype.$(SUFFIX) \ ++ ../INSTALL/ilaver.$(SUFFIX) + + SCLAUX = \ +- sbdsdc.o \ +- sbdsqr.o sdisna.o slabad.o slacpy.o sladiv.o slae2.o slaebz.o \ +- slaed0.o slaed1.o slaed2.o slaed3.o slaed4.o slaed5.o slaed6.o \ +- slaed7.o slaed8.o slaed9.o slaeda.o slaev2.o slagtf.o \ +- slagts.o slamrg.o slanst.o \ +- slapy2.o slapy3.o slarnv.o \ +- slarra.o slarrb.o slarrc.o slarrd.o slarre.o slarrf.o slarrj.o \ +- slarrk.o slarrr.o slaneg.o \ +- slartg.o slaruv.o slas2.o slascl.o \ +- slasd0.o slasd1.o slasd2.o slasd3.o slasd4.o slasd5.o slasd6.o \ +- slasd7.o slasd8.o slasda.o slasdq.o slasdt.o \ +- slaset.o slasq1.o slasq2.o slasq3.o slasq4.o slasq5.o slasq6.o \ +- slasr.o slasrt.o slassq.o slasv2.o spttrf.o sstebz.o sstedc.o \ +- ssteqr.o ssterf.o slaisnan.o sisnan.o \ +- slartgp.o slartgs.o \ +- ../INSTALL/second_$(TIMER).o ++ sbdsdc.$(SUFFIX) \ ++ sbdsqr.$(SUFFIX) sdisna.$(SUFFIX) slabad.$(SUFFIX) slacpy.$(SUFFIX) sladiv.$(SUFFIX) slae2.$(SUFFIX) slaebz.$(SUFFIX) \ ++ slaed0.$(SUFFIX) slaed1.$(SUFFIX) slaed2.$(SUFFIX) slaed3.$(SUFFIX) slaed4.$(SUFFIX) slaed5.$(SUFFIX) slaed6.$(SUFFIX) \ ++ slaed7.$(SUFFIX) slaed8.$(SUFFIX) slaed9.$(SUFFIX) slaeda.$(SUFFIX) slaev2.$(SUFFIX) slagtf.$(SUFFIX) \ ++ slagts.$(SUFFIX) slamrg.$(SUFFIX) slanst.$(SUFFIX) \ ++ slapy2.$(SUFFIX) slapy3.$(SUFFIX) slarnv.$(SUFFIX) \ ++ slarra.$(SUFFIX) slarrb.$(SUFFIX) slarrc.$(SUFFIX) slarrd.$(SUFFIX) slarre.$(SUFFIX) slarrf.$(SUFFIX) slarrj.$(SUFFIX) \ ++ slarrk.$(SUFFIX) slarrr.$(SUFFIX) slaneg.$(SUFFIX) \ ++ slartg.$(SUFFIX) slaruv.$(SUFFIX) slas2.$(SUFFIX) slascl.$(SUFFIX) \ ++ slasd0.$(SUFFIX) slasd1.$(SUFFIX) slasd2.$(SUFFIX) slasd3.$(SUFFIX) slasd4.$(SUFFIX) slasd5.$(SUFFIX) slasd6.$(SUFFIX) \ ++ slasd7.$(SUFFIX) slasd8.$(SUFFIX) slasda.$(SUFFIX) slasdq.$(SUFFIX) slasdt.$(SUFFIX) \ ++ slaset.$(SUFFIX) slasq1.$(SUFFIX) slasq2.$(SUFFIX) slasq3.$(SUFFIX) slasq4.$(SUFFIX) slasq5.$(SUFFIX) slasq6.$(SUFFIX) \ ++ slasr.$(SUFFIX) slasrt.$(SUFFIX) slassq.$(SUFFIX) slasv2.$(SUFFIX) spttrf.$(SUFFIX) sstebz.$(SUFFIX) sstedc.$(SUFFIX) \ ++ ssteqr.$(SUFFIX) ssterf.$(SUFFIX) slaisnan.$(SUFFIX) sisnan.$(SUFFIX) \ ++ slartgp.$(SUFFIX) slartgs.$(SUFFIX) \ ++ ../INSTALL/second_$(TIMER).$(SUFFIX) + + DZLAUX = \ +- dbdsdc.o \ +- dbdsqr.o ddisna.o dlabad.o dlacpy.o dladiv.o dlae2.o dlaebz.o \ +- dlaed0.o dlaed1.o dlaed2.o dlaed3.o dlaed4.o dlaed5.o dlaed6.o \ +- dlaed7.o dlaed8.o dlaed9.o dlaeda.o dlaev2.o dlagtf.o \ +- dlagts.o dlamrg.o dlanst.o \ +- dlapy2.o dlapy3.o dlarnv.o \ +- dlarra.o dlarrb.o dlarrc.o dlarrd.o dlarre.o dlarrf.o dlarrj.o \ +- dlarrk.o dlarrr.o dlaneg.o \ +- dlartg.o dlaruv.o dlas2.o dlascl.o \ +- dlasd0.o dlasd1.o dlasd2.o dlasd3.o dlasd4.o dlasd5.o dlasd6.o \ +- dlasd7.o dlasd8.o dlasda.o dlasdq.o dlasdt.o \ +- dlaset.o dlasq1.o dlasq2.o dlasq3.o dlasq4.o dlasq5.o dlasq6.o \ +- dlasr.o dlasrt.o dlassq.o dlasv2.o dpttrf.o dstebz.o dstedc.o \ +- dsteqr.o dsterf.o dlaisnan.o disnan.o \ +- dlartgp.o dlartgs.o \ +- ../INSTALL/dlamch.o ../INSTALL/dsecnd_$(TIMER).o ++ dbdsdc.$(SUFFIX) \ ++ dbdsqr.$(SUFFIX) ddisna.$(SUFFIX) dlabad.$(SUFFIX) dlacpy.$(SUFFIX) dladiv.$(SUFFIX) dlae2.$(SUFFIX) dlaebz.$(SUFFIX) \ ++ dlaed0.$(SUFFIX) dlaed1.$(SUFFIX) dlaed2.$(SUFFIX) dlaed3.$(SUFFIX) dlaed4.$(SUFFIX) dlaed5.$(SUFFIX) dlaed6.$(SUFFIX) \ ++ dlaed7.$(SUFFIX) dlaed8.$(SUFFIX) dlaed9.$(SUFFIX) dlaeda.$(SUFFIX) dlaev2.$(SUFFIX) dlagtf.$(SUFFIX) \ ++ dlagts.$(SUFFIX) dlamrg.$(SUFFIX) dlanst.$(SUFFIX) \ ++ dlapy2.$(SUFFIX) dlapy3.$(SUFFIX) dlarnv.$(SUFFIX) \ ++ dlarra.$(SUFFIX) dlarrb.$(SUFFIX) dlarrc.$(SUFFIX) dlarrd.$(SUFFIX) dlarre.$(SUFFIX) dlarrf.$(SUFFIX) dlarrj.$(SUFFIX) \ ++ dlarrk.$(SUFFIX) dlarrr.$(SUFFIX) dlaneg.$(SUFFIX) \ ++ dlartg.$(SUFFIX) dlaruv.$(SUFFIX) dlas2.$(SUFFIX) dlascl.$(SUFFIX) \ ++ dlasd0.$(SUFFIX) dlasd1.$(SUFFIX) dlasd2.$(SUFFIX) dlasd3.$(SUFFIX) dlasd4.$(SUFFIX) dlasd5.$(SUFFIX) dlasd6.$(SUFFIX) \ ++ dlasd7.$(SUFFIX) dlasd8.$(SUFFIX) dlasda.$(SUFFIX) dlasdq.$(SUFFIX) dlasdt.$(SUFFIX) \ ++ dlaset.$(SUFFIX) dlasq1.$(SUFFIX) dlasq2.$(SUFFIX) dlasq3.$(SUFFIX) dlasq4.$(SUFFIX) dlasq5.$(SUFFIX) dlasq6.$(SUFFIX) \ ++ dlasr.$(SUFFIX) dlasrt.$(SUFFIX) dlassq.$(SUFFIX) dlasv2.$(SUFFIX) dpttrf.$(SUFFIX) dstebz.$(SUFFIX) dstedc.$(SUFFIX) \ ++ dsteqr.$(SUFFIX) dsterf.$(SUFFIX) dlaisnan.$(SUFFIX) disnan.$(SUFFIX) \ ++ dlartgp.$(SUFFIX) dlartgs.$(SUFFIX) \ ++ ../INSTALL/dsecnd_$(TIMER).$(SUFFIX) + + SLASRC = \ +- sgbbrd.o sgbcon.o sgbequ.o sgbrfs.o sgbsv.o \ +- sgbsvx.o sgbtf2.o sgbtrf.o sgbtrs.o sgebak.o sgebal.o sgebd2.o \ +- sgebrd.o sgecon.o sgeequ.o sgees.o sgeesx.o sgeev.o sgeevx.o \ +- sgegs.o sgegv.o sgehd2.o sgehrd.o sgelq2.o sgelqf.o \ +- sgels.o sgelsd.o sgelss.o sgelsx.o sgelsy.o sgeql2.o sgeqlf.o \ +- sgeqp3.o sgeqpf.o sgeqr2.o sgeqr2p.o sgeqrf.o sgeqrfp.o sgerfs.o \ +- sgerq2.o sgerqf.o sgesc2.o sgesdd.o sgesv.o sgesvd.o sgesvx.o \ +- sgetc2.o sgetf2.o sgetri.o \ +- sggbak.o sggbal.o sgges.o sggesx.o sggev.o sggevx.o \ +- sggglm.o sgghrd.o sgglse.o sggqrf.o \ +- sggrqf.o sggsvd.o sggsvp.o sgtcon.o sgtrfs.o sgtsv.o \ +- sgtsvx.o sgttrf.o sgttrs.o sgtts2.o shgeqz.o \ +- shsein.o shseqr.o slabrd.o slacon.o slacn2.o \ +- slaein.o slaexc.o slag2.o slags2.o slagtm.o slagv2.o slahqr.o \ +- slahrd.o slahr2.o slaic1.o slaln2.o slals0.o slalsa.o slalsd.o \ +- slangb.o slange.o slangt.o slanhs.o slansb.o slansp.o \ +- slansy.o slantb.o slantp.o slantr.o slanv2.o \ +- slapll.o slapmt.o \ +- slaqgb.o slaqge.o slaqp2.o slaqps.o slaqsb.o slaqsp.o slaqsy.o \ +- slaqr0.o slaqr1.o slaqr2.o slaqr3.o slaqr4.o slaqr5.o \ +- slaqtr.o slar1v.o slar2v.o ilaslr.o ilaslc.o \ +- slarf.o slarfb.o slarfg.o slarfgp.o slarft.o slarfx.o slargv.o \ +- slarrv.o slartv.o \ +- slarz.o slarzb.o slarzt.o slaswp.o slasy2.o slasyf.o \ +- slatbs.o slatdf.o slatps.o slatrd.o slatrs.o slatrz.o slatzm.o \ +- slauu2.o slauum.o sopgtr.o sopmtr.o sorg2l.o sorg2r.o \ +- sorgbr.o sorghr.o sorgl2.o sorglq.o sorgql.o sorgqr.o sorgr2.o \ +- sorgrq.o sorgtr.o sorm2l.o sorm2r.o \ +- sormbr.o sormhr.o sorml2.o sormlq.o sormql.o sormqr.o sormr2.o \ +- sormr3.o sormrq.o sormrz.o sormtr.o spbcon.o spbequ.o spbrfs.o \ +- spbstf.o spbsv.o spbsvx.o \ +- spbtf2.o spbtrf.o spbtrs.o spocon.o spoequ.o sporfs.o sposv.o \ +- sposvx.o spotf2.o spotri.o spstrf.o spstf2.o \ +- sppcon.o sppequ.o \ +- spprfs.o sppsv.o sppsvx.o spptrf.o spptri.o spptrs.o sptcon.o \ +- spteqr.o sptrfs.o sptsv.o sptsvx.o spttrs.o sptts2.o srscl.o \ +- ssbev.o ssbevd.o ssbevx.o ssbgst.o ssbgv.o ssbgvd.o ssbgvx.o \ +- ssbtrd.o sspcon.o sspev.o sspevd.o sspevx.o sspgst.o \ +- sspgv.o sspgvd.o sspgvx.o ssprfs.o sspsv.o sspsvx.o ssptrd.o \ +- ssptrf.o ssptri.o ssptrs.o sstegr.o sstein.o sstev.o sstevd.o sstevr.o \ +- sstevx.o \ +- ssycon.o ssyev.o ssyevd.o ssyevr.o ssyevx.o ssygs2.o \ +- ssygst.o ssygv.o ssygvd.o ssygvx.o ssyrfs.o ssysv.o ssysvx.o \ +- ssytd2.o ssytf2.o ssytrd.o ssytrf.o ssytri.o ssytri2.o ssytri2x.o \ +- ssyswapr.o ssytrs.o ssytrs2.o ssyconv.o \ +- stbcon.o \ +- stbrfs.o stbtrs.o stgevc.o stgex2.o stgexc.o stgsen.o \ +- stgsja.o stgsna.o stgsy2.o stgsyl.o stpcon.o stprfs.o stptri.o \ +- stptrs.o \ +- strcon.o strevc.o strexc.o strrfs.o strsen.o strsna.o strsyl.o \ +- strti2.o strtri.o strtrs.o stzrqf.o stzrzf.o sstemr.o \ +- slansf.o spftrf.o spftri.o spftrs.o ssfrk.o stfsm.o stftri.o stfttp.o \ +- stfttr.o stpttf.o stpttr.o strttf.o strttp.o \ +- sgejsv.o sgesvj.o sgsvj0.o sgsvj1.o \ +- sgeequb.o ssyequb.o spoequb.o sgbequb.o \ +- sbbcsd.o slapmr.o sorbdb.o sorcsd.o \ +- sgeqrt.o sgeqrt2.o sgeqrt3.o sgemqrt.o \ +- stpqrt.o stpqrt2.o stpmqrt.o stprfb.o ++ sgbbrd.$(SUFFIX) sgbcon.$(SUFFIX) sgbequ.$(SUFFIX) sgbrfs.$(SUFFIX) sgbsv.$(SUFFIX) \ ++ sgbsvx.$(SUFFIX) sgbtf2.$(SUFFIX) sgbtrf.$(SUFFIX) sgbtrs.$(SUFFIX) sgebak.$(SUFFIX) sgebal.$(SUFFIX) sgebd2.$(SUFFIX) \ ++ sgebrd.$(SUFFIX) sgecon.$(SUFFIX) sgeequ.$(SUFFIX) sgees.$(SUFFIX) sgeesx.$(SUFFIX) sgeev.$(SUFFIX) sgeevx.$(SUFFIX) \ ++ sgegs.$(SUFFIX) sgegv.$(SUFFIX) sgehd2.$(SUFFIX) sgehrd.$(SUFFIX) sgelq2.$(SUFFIX) sgelqf.$(SUFFIX) \ ++ sgels.$(SUFFIX) sgelsd.$(SUFFIX) sgelss.$(SUFFIX) sgelsx.$(SUFFIX) sgelsy.$(SUFFIX) sgeql2.$(SUFFIX) sgeqlf.$(SUFFIX) \ ++ sgeqp3.$(SUFFIX) sgeqpf.$(SUFFIX) sgeqr2.$(SUFFIX) sgeqr2p.$(SUFFIX) sgeqrf.$(SUFFIX) sgeqrfp.$(SUFFIX) sgerfs.$(SUFFIX) \ ++ sgerq2.$(SUFFIX) sgerqf.$(SUFFIX) sgesc2.$(SUFFIX) sgesdd.$(SUFFIX) sgesv.$(SUFFIX) sgesvd.$(SUFFIX) sgesvx.$(SUFFIX) \ ++ sgetc2.$(SUFFIX) sgetri.$(SUFFIX) \ ++ sggbak.$(SUFFIX) sggbal.$(SUFFIX) sgges.$(SUFFIX) sggesx.$(SUFFIX) sggev.$(SUFFIX) sggevx.$(SUFFIX) \ ++ sggglm.$(SUFFIX) sgghrd.$(SUFFIX) sgglse.$(SUFFIX) sggqrf.$(SUFFIX) \ ++ sggrqf.$(SUFFIX) sggsvd.$(SUFFIX) sggsvp.$(SUFFIX) sgtcon.$(SUFFIX) sgtrfs.$(SUFFIX) sgtsv.$(SUFFIX) \ ++ sgtsvx.$(SUFFIX) sgttrf.$(SUFFIX) sgttrs.$(SUFFIX) sgtts2.$(SUFFIX) shgeqz.$(SUFFIX) \ ++ shsein.$(SUFFIX) shseqr.$(SUFFIX) slabrd.$(SUFFIX) slacon.$(SUFFIX) slacn2.$(SUFFIX) \ ++ slaein.$(SUFFIX) slaexc.$(SUFFIX) slag2.$(SUFFIX) slags2.$(SUFFIX) slagtm.$(SUFFIX) slagv2.$(SUFFIX) slahqr.$(SUFFIX) \ ++ slahrd.$(SUFFIX) slahr2.$(SUFFIX) slaic1.$(SUFFIX) slaln2.$(SUFFIX) slals0.$(SUFFIX) slalsa.$(SUFFIX) slalsd.$(SUFFIX) \ ++ slangb.$(SUFFIX) slange.$(SUFFIX) slangt.$(SUFFIX) slanhs.$(SUFFIX) slansb.$(SUFFIX) slansp.$(SUFFIX) \ ++ slansy.$(SUFFIX) slantb.$(SUFFIX) slantp.$(SUFFIX) slantr.$(SUFFIX) slanv2.$(SUFFIX) \ ++ slapll.$(SUFFIX) slapmt.$(SUFFIX) \ ++ slaqgb.$(SUFFIX) slaqge.$(SUFFIX) slaqp2.$(SUFFIX) slaqps.$(SUFFIX) slaqsb.$(SUFFIX) slaqsp.$(SUFFIX) slaqsy.$(SUFFIX) \ ++ slaqr0.$(SUFFIX) slaqr1.$(SUFFIX) slaqr2.$(SUFFIX) slaqr3.$(SUFFIX) slaqr4.$(SUFFIX) slaqr5.$(SUFFIX) \ ++ slaqtr.$(SUFFIX) slar1v.$(SUFFIX) slar2v.$(SUFFIX) ilaslr.$(SUFFIX) ilaslc.$(SUFFIX) \ ++ slarf.$(SUFFIX) slarfb.$(SUFFIX) slarfg.$(SUFFIX) slarfgp.$(SUFFIX) slarft.$(SUFFIX) slarfx.$(SUFFIX) slargv.$(SUFFIX) \ ++ slarrv.$(SUFFIX) slartv.$(SUFFIX) \ ++ slarz.$(SUFFIX) slarzb.$(SUFFIX) slarzt.$(SUFFIX) slaswp.$(SUFFIX) slasy2.$(SUFFIX) slasyf.$(SUFFIX) \ ++ slatbs.$(SUFFIX) slatdf.$(SUFFIX) slatps.$(SUFFIX) slatrd.$(SUFFIX) slatrs.$(SUFFIX) slatrz.$(SUFFIX) slatzm.$(SUFFIX) \ ++ sopgtr.$(SUFFIX) sopmtr.$(SUFFIX) sorg2l.$(SUFFIX) sorg2r.$(SUFFIX) \ ++ sorgbr.$(SUFFIX) sorghr.$(SUFFIX) sorgl2.$(SUFFIX) sorglq.$(SUFFIX) sorgql.$(SUFFIX) sorgqr.$(SUFFIX) sorgr2.$(SUFFIX) \ ++ sorgrq.$(SUFFIX) sorgtr.$(SUFFIX) sorm2l.$(SUFFIX) sorm2r.$(SUFFIX) \ ++ sormbr.$(SUFFIX) sormhr.$(SUFFIX) sorml2.$(SUFFIX) sormlq.$(SUFFIX) sormql.$(SUFFIX) sormqr.$(SUFFIX) sormr2.$(SUFFIX) \ ++ sormr3.$(SUFFIX) sormrq.$(SUFFIX) sormrz.$(SUFFIX) sormtr.$(SUFFIX) spbcon.$(SUFFIX) spbequ.$(SUFFIX) spbrfs.$(SUFFIX) \ ++ spbstf.$(SUFFIX) spbsv.$(SUFFIX) spbsvx.$(SUFFIX) \ ++ spbtf2.$(SUFFIX) spbtrf.$(SUFFIX) spbtrs.$(SUFFIX) spocon.$(SUFFIX) spoequ.$(SUFFIX) sporfs.$(SUFFIX) sposv.$(SUFFIX) \ ++ sposvx.$(SUFFIX) spotri.$(SUFFIX) spstrf.$(SUFFIX) spstf2.$(SUFFIX) \ ++ sppcon.$(SUFFIX) sppequ.$(SUFFIX) \ ++ spprfs.$(SUFFIX) sppsv.$(SUFFIX) sppsvx.$(SUFFIX) spptrf.$(SUFFIX) spptri.$(SUFFIX) spptrs.$(SUFFIX) sptcon.$(SUFFIX) \ ++ spteqr.$(SUFFIX) sptrfs.$(SUFFIX) sptsv.$(SUFFIX) sptsvx.$(SUFFIX) spttrs.$(SUFFIX) sptts2.$(SUFFIX) srscl.$(SUFFIX) \ ++ ssbev.$(SUFFIX) ssbevd.$(SUFFIX) ssbevx.$(SUFFIX) ssbgst.$(SUFFIX) ssbgv.$(SUFFIX) ssbgvd.$(SUFFIX) ssbgvx.$(SUFFIX) \ ++ ssbtrd.$(SUFFIX) sspcon.$(SUFFIX) sspev.$(SUFFIX) sspevd.$(SUFFIX) sspevx.$(SUFFIX) sspgst.$(SUFFIX) \ ++ sspgv.$(SUFFIX) sspgvd.$(SUFFIX) sspgvx.$(SUFFIX) ssprfs.$(SUFFIX) sspsv.$(SUFFIX) sspsvx.$(SUFFIX) ssptrd.$(SUFFIX) \ ++ ssptrf.$(SUFFIX) ssptri.$(SUFFIX) ssptrs.$(SUFFIX) sstegr.$(SUFFIX) sstein.$(SUFFIX) sstev.$(SUFFIX) sstevd.$(SUFFIX) sstevr.$(SUFFIX) \ ++ sstevx.$(SUFFIX) \ ++ ssycon.$(SUFFIX) ssyev.$(SUFFIX) ssyevd.$(SUFFIX) ssyevr.$(SUFFIX) ssyevx.$(SUFFIX) ssygs2.$(SUFFIX) \ ++ ssygst.$(SUFFIX) ssygv.$(SUFFIX) ssygvd.$(SUFFIX) ssygvx.$(SUFFIX) ssyrfs.$(SUFFIX) ssysv.$(SUFFIX) ssysvx.$(SUFFIX) \ ++ ssytd2.$(SUFFIX) ssytf2.$(SUFFIX) ssytrd.$(SUFFIX) ssytrf.$(SUFFIX) ssytri.$(SUFFIX) ssytri2.$(SUFFIX) ssytri2x.$(SUFFIX) \ ++ ssyswapr.$(SUFFIX) ssytrs.$(SUFFIX) ssytrs2.$(SUFFIX) ssyconv.$(SUFFIX) \ ++ stbcon.$(SUFFIX) \ ++ stbrfs.$(SUFFIX) stbtrs.$(SUFFIX) stgevc.$(SUFFIX) stgex2.$(SUFFIX) stgexc.$(SUFFIX) stgsen.$(SUFFIX) \ ++ stgsja.$(SUFFIX) stgsna.$(SUFFIX) stgsy2.$(SUFFIX) stgsyl.$(SUFFIX) stpcon.$(SUFFIX) stprfs.$(SUFFIX) stptri.$(SUFFIX) \ ++ stptrs.$(SUFFIX) \ ++ strcon.$(SUFFIX) strevc.$(SUFFIX) strexc.$(SUFFIX) strrfs.$(SUFFIX) strsen.$(SUFFIX) strsna.$(SUFFIX) strsyl.$(SUFFIX) \ ++ strtrs.$(SUFFIX) stzrqf.$(SUFFIX) stzrzf.$(SUFFIX) sstemr.$(SUFFIX) \ ++ slansf.$(SUFFIX) spftrf.$(SUFFIX) spftri.$(SUFFIX) spftrs.$(SUFFIX) ssfrk.$(SUFFIX) stfsm.$(SUFFIX) stftri.$(SUFFIX) stfttp.$(SUFFIX) \ ++ stfttr.$(SUFFIX) stpttf.$(SUFFIX) stpttr.$(SUFFIX) strttf.$(SUFFIX) strttp.$(SUFFIX) \ ++ sgejsv.$(SUFFIX) sgesvj.$(SUFFIX) sgsvj0.$(SUFFIX) sgsvj1.$(SUFFIX) \ ++ sgeequb.$(SUFFIX) ssyequb.$(SUFFIX) spoequb.$(SUFFIX) sgbequb.$(SUFFIX) \ ++ sbbcsd.$(SUFFIX) slapmr.$(SUFFIX) sorbdb.$(SUFFIX) sorcsd.$(SUFFIX) \ ++ sgeqrt.$(SUFFIX) sgeqrt2.$(SUFFIX) sgeqrt3.$(SUFFIX) sgemqrt.$(SUFFIX) \ ++ stpqrt.$(SUFFIX) stpqrt2.$(SUFFIX) stpmqrt.$(SUFFIX) stprfb.$(SUFFIX) + +-DSLASRC = spotrs.o sgetrs.o spotrf.o sgetrf.o ++DSLASRC = spotrs.$(SUFFIX) + + ifdef USEXBLAS +-SXLASRC = sgesvxx.o sgerfsx.o sla_gerfsx_extended.o sla_geamv.o \ +- sla_gercond.o sla_gerpvgrw.o ssysvxx.o ssyrfsx.o \ +- sla_syrfsx_extended.o sla_syamv.o sla_syrcond.o sla_syrpvgrw.o \ +- sposvxx.o sporfsx.o sla_porfsx_extended.o sla_porcond.o \ +- sla_porpvgrw.o sgbsvxx.o sgbrfsx.o sla_gbrfsx_extended.o \ +- sla_gbamv.o sla_gbrcond.o sla_gbrpvgrw.o sla_lin_berr.o slarscl2.o \ +- slascl2.o sla_wwaddw.o ++SXLASRC = sgesvxx.$(SUFFIX) sgerfsx.$(SUFFIX) sla_gerfsx_extended.$(SUFFIX) sla_geamv.$(SUFFIX) \ ++ sla_gercond.$(SUFFIX) sla_gerpvgrw.$(SUFFIX) ssysvxx.$(SUFFIX) ssyrfsx.$(SUFFIX) \ ++ sla_syrfsx_extended.$(SUFFIX) sla_syamv.$(SUFFIX) sla_syrcond.$(SUFFIX) sla_syrpvgrw.$(SUFFIX) \ ++ sposvxx.$(SUFFIX) sporfsx.$(SUFFIX) sla_porfsx_extended.$(SUFFIX) sla_porcond.$(SUFFIX) \ ++ sla_porpvgrw.$(SUFFIX) sgbsvxx.$(SUFFIX) sgbrfsx.$(SUFFIX) sla_gbrfsx_extended.$(SUFFIX) \ ++ sla_gbamv.$(SUFFIX) sla_gbrcond.$(SUFFIX) sla_gbrpvgrw.$(SUFFIX) sla_lin_berr.$(SUFFIX) slarscl2.$(SUFFIX) \ ++ slascl2.$(SUFFIX) sla_wwaddw.$(SUFFIX) + endif + + CLASRC = \ +- cbdsqr.o cgbbrd.o cgbcon.o cgbequ.o cgbrfs.o cgbsv.o cgbsvx.o \ +- cgbtf2.o cgbtrf.o cgbtrs.o cgebak.o cgebal.o cgebd2.o cgebrd.o \ +- cgecon.o cgeequ.o cgees.o cgeesx.o cgeev.o cgeevx.o \ +- cgegs.o cgegv.o cgehd2.o cgehrd.o cgelq2.o cgelqf.o \ +- cgels.o cgelsd.o cgelss.o cgelsx.o cgelsy.o cgeql2.o cgeqlf.o cgeqp3.o \ +- cgeqpf.o cgeqr2.o cgeqr2p.o cgeqrf.o cgeqrfp.o cgerfs.o \ +- cgerq2.o cgerqf.o cgesc2.o cgesdd.o cgesv.o cgesvd.o \ +- cgesvx.o cgetc2.o cgetf2.o cgetri.o \ +- cggbak.o cggbal.o cgges.o cggesx.o cggev.o cggevx.o cggglm.o \ +- cgghrd.o cgglse.o cggqrf.o cggrqf.o \ +- cggsvd.o cggsvp.o \ +- cgtcon.o cgtrfs.o cgtsv.o cgtsvx.o cgttrf.o cgttrs.o cgtts2.o chbev.o \ +- chbevd.o chbevx.o chbgst.o chbgv.o chbgvd.o chbgvx.o chbtrd.o \ +- checon.o cheev.o cheevd.o cheevr.o cheevx.o chegs2.o chegst.o \ +- chegv.o chegvd.o chegvx.o cherfs.o chesv.o chesvx.o chetd2.o \ +- chetf2.o chetrd.o \ +- chetrf.o chetri.o chetri2.o chetri2x.o cheswapr.o \ +- chetrs.o chetrs2.o chgeqz.o chpcon.o chpev.o chpevd.o \ +- chpevx.o chpgst.o chpgv.o chpgvd.o chpgvx.o chprfs.o chpsv.o \ +- chpsvx.o \ +- chptrd.o chptrf.o chptri.o chptrs.o chsein.o chseqr.o clabrd.o \ +- clacgv.o clacon.o clacn2.o clacp2.o clacpy.o clacrm.o clacrt.o cladiv.o \ +- claed0.o claed7.o claed8.o \ +- claein.o claesy.o claev2.o clags2.o clagtm.o \ +- clahef.o clahqr.o \ +- clahrd.o clahr2.o claic1.o clals0.o clalsa.o clalsd.o clangb.o clange.o clangt.o \ +- clanhb.o clanhe.o \ +- clanhp.o clanhs.o clanht.o clansb.o clansp.o clansy.o clantb.o \ +- clantp.o clantr.o clapll.o clapmt.o clarcm.o claqgb.o claqge.o \ +- claqhb.o claqhe.o claqhp.o claqp2.o claqps.o claqsb.o \ +- claqr0.o claqr1.o claqr2.o claqr3.o claqr4.o claqr5.o \ +- claqsp.o claqsy.o clar1v.o clar2v.o ilaclr.o ilaclc.o \ +- clarf.o clarfb.o clarfg.o clarft.o clarfgp.o \ +- clarfx.o clargv.o clarnv.o clarrv.o clartg.o clartv.o \ +- clarz.o clarzb.o clarzt.o clascl.o claset.o clasr.o classq.o \ +- claswp.o clasyf.o clatbs.o clatdf.o clatps.o clatrd.o clatrs.o clatrz.o \ +- clatzm.o clauu2.o clauum.o cpbcon.o cpbequ.o cpbrfs.o cpbstf.o cpbsv.o \ +- cpbsvx.o cpbtf2.o cpbtrf.o cpbtrs.o cpocon.o cpoequ.o cporfs.o \ +- cposv.o cposvx.o cpotf2.o cpotri.o cpstrf.o cpstf2.o \ +- cppcon.o cppequ.o cpprfs.o cppsv.o cppsvx.o cpptrf.o cpptri.o cpptrs.o \ +- cptcon.o cpteqr.o cptrfs.o cptsv.o cptsvx.o cpttrf.o cpttrs.o cptts2.o \ +- crot.o cspcon.o cspmv.o cspr.o csprfs.o cspsv.o \ +- cspsvx.o csptrf.o csptri.o csptrs.o csrscl.o cstedc.o \ +- cstegr.o cstein.o csteqr.o \ +- csycon.o csymv.o \ +- csyr.o csyrfs.o csysv.o csysvx.o csytf2.o csytrf.o csytri.o csytri2.o csytri2x.o \ +- csyswapr.o csytrs.o csytrs2.o csyconv.o \ +- ctbcon.o ctbrfs.o ctbtrs.o ctgevc.o ctgex2.o \ +- ctgexc.o ctgsen.o ctgsja.o ctgsna.o ctgsy2.o ctgsyl.o ctpcon.o \ +- ctprfs.o ctptri.o \ +- ctptrs.o ctrcon.o ctrevc.o ctrexc.o ctrrfs.o ctrsen.o ctrsna.o \ +- ctrsyl.o ctrti2.o ctrtri.o ctrtrs.o ctzrqf.o ctzrzf.o cung2l.o cung2r.o \ +- cungbr.o cunghr.o cungl2.o cunglq.o cungql.o cungqr.o cungr2.o \ +- cungrq.o cungtr.o cunm2l.o cunm2r.o cunmbr.o cunmhr.o cunml2.o \ +- cunmlq.o cunmql.o cunmqr.o cunmr2.o cunmr3.o cunmrq.o cunmrz.o \ +- cunmtr.o cupgtr.o cupmtr.o icmax1.o scsum1.o cstemr.o \ +- chfrk.o ctfttp.o clanhf.o cpftrf.o cpftri.o cpftrs.o ctfsm.o ctftri.o \ +- ctfttr.o ctpttf.o ctpttr.o ctrttf.o ctrttp.o \ +- cgeequb.o cgbequb.o csyequb.o cpoequb.o cheequb.o \ +- cbbcsd.o clapmr.o cunbdb.o cuncsd.o \ +- cgeqrt.o cgeqrt2.o cgeqrt3.o cgemqrt.o \ +- ctpqrt.o ctpqrt2.o ctpmqrt.o ctprfb.o ++ cbdsqr.$(SUFFIX) cgbbrd.$(SUFFIX) cgbcon.$(SUFFIX) cgbequ.$(SUFFIX) cgbrfs.$(SUFFIX) cgbsv.$(SUFFIX) cgbsvx.$(SUFFIX) \ ++ cgbtf2.$(SUFFIX) cgbtrf.$(SUFFIX) cgbtrs.$(SUFFIX) cgebak.$(SUFFIX) cgebal.$(SUFFIX) cgebd2.$(SUFFIX) cgebrd.$(SUFFIX) \ ++ cgecon.$(SUFFIX) cgeequ.$(SUFFIX) cgees.$(SUFFIX) cgeesx.$(SUFFIX) cgeev.$(SUFFIX) cgeevx.$(SUFFIX) \ ++ cgegs.$(SUFFIX) cgegv.$(SUFFIX) cgehd2.$(SUFFIX) cgehrd.$(SUFFIX) cgelq2.$(SUFFIX) cgelqf.$(SUFFIX) \ ++ cgels.$(SUFFIX) cgelsd.$(SUFFIX) cgelss.$(SUFFIX) cgelsx.$(SUFFIX) cgelsy.$(SUFFIX) cgeql2.$(SUFFIX) cgeqlf.$(SUFFIX) cgeqp3.$(SUFFIX) \ ++ cgeqpf.$(SUFFIX) cgeqr2.$(SUFFIX) cgeqr2p.$(SUFFIX) cgeqrf.$(SUFFIX) cgeqrfp.$(SUFFIX) cgerfs.$(SUFFIX) \ ++ cgerq2.$(SUFFIX) cgerqf.$(SUFFIX) cgesc2.$(SUFFIX) cgesdd.$(SUFFIX) cgesv.$(SUFFIX) cgesvd.$(SUFFIX) \ ++ cgesvx.$(SUFFIX) cgetc2.$(SUFFIX) cgetri.$(SUFFIX) \ ++ cggbak.$(SUFFIX) cggbal.$(SUFFIX) cgges.$(SUFFIX) cggesx.$(SUFFIX) cggev.$(SUFFIX) cggevx.$(SUFFIX) cggglm.$(SUFFIX) \ ++ cgghrd.$(SUFFIX) cgglse.$(SUFFIX) cggqrf.$(SUFFIX) cggrqf.$(SUFFIX) \ ++ cggsvd.$(SUFFIX) cggsvp.$(SUFFIX) \ ++ cgtcon.$(SUFFIX) cgtrfs.$(SUFFIX) cgtsv.$(SUFFIX) cgtsvx.$(SUFFIX) cgttrf.$(SUFFIX) cgttrs.$(SUFFIX) cgtts2.$(SUFFIX) chbev.$(SUFFIX) \ ++ chbevd.$(SUFFIX) chbevx.$(SUFFIX) chbgst.$(SUFFIX) chbgv.$(SUFFIX) chbgvd.$(SUFFIX) chbgvx.$(SUFFIX) chbtrd.$(SUFFIX) \ ++ checon.$(SUFFIX) cheev.$(SUFFIX) cheevd.$(SUFFIX) cheevr.$(SUFFIX) cheevx.$(SUFFIX) chegs2.$(SUFFIX) chegst.$(SUFFIX) \ ++ chegv.$(SUFFIX) chegvd.$(SUFFIX) chegvx.$(SUFFIX) cherfs.$(SUFFIX) chesv.$(SUFFIX) chesvx.$(SUFFIX) chetd2.$(SUFFIX) \ ++ chetf2.$(SUFFIX) chetrd.$(SUFFIX) \ ++ chetrf.$(SUFFIX) chetri.$(SUFFIX) chetri2.$(SUFFIX) chetri2x.$(SUFFIX) cheswapr.$(SUFFIX) \ ++ chetrs.$(SUFFIX) chetrs2.$(SUFFIX) chgeqz.$(SUFFIX) chpcon.$(SUFFIX) chpev.$(SUFFIX) chpevd.$(SUFFIX) \ ++ chpevx.$(SUFFIX) chpgst.$(SUFFIX) chpgv.$(SUFFIX) chpgvd.$(SUFFIX) chpgvx.$(SUFFIX) chprfs.$(SUFFIX) chpsv.$(SUFFIX) \ ++ chpsvx.$(SUFFIX) \ ++ chptrd.$(SUFFIX) chptrf.$(SUFFIX) chptri.$(SUFFIX) chptrs.$(SUFFIX) chsein.$(SUFFIX) chseqr.$(SUFFIX) clabrd.$(SUFFIX) \ ++ clacgv.$(SUFFIX) clacon.$(SUFFIX) clacn2.$(SUFFIX) clacp2.$(SUFFIX) clacpy.$(SUFFIX) clacrm.$(SUFFIX) clacrt.$(SUFFIX) cladiv.$(SUFFIX) \ ++ claed0.$(SUFFIX) claed7.$(SUFFIX) claed8.$(SUFFIX) \ ++ claein.$(SUFFIX) claesy.$(SUFFIX) claev2.$(SUFFIX) clags2.$(SUFFIX) clagtm.$(SUFFIX) \ ++ clahef.$(SUFFIX) clahqr.$(SUFFIX) \ ++ clahrd.$(SUFFIX) clahr2.$(SUFFIX) claic1.$(SUFFIX) clals0.$(SUFFIX) clalsa.$(SUFFIX) clalsd.$(SUFFIX) clangb.$(SUFFIX) clange.$(SUFFIX) clangt.$(SUFFIX) \ ++ clanhb.$(SUFFIX) clanhe.$(SUFFIX) \ ++ clanhp.$(SUFFIX) clanhs.$(SUFFIX) clanht.$(SUFFIX) clansb.$(SUFFIX) clansp.$(SUFFIX) clansy.$(SUFFIX) clantb.$(SUFFIX) \ ++ clantp.$(SUFFIX) clantr.$(SUFFIX) clapll.$(SUFFIX) clapmt.$(SUFFIX) clarcm.$(SUFFIX) claqgb.$(SUFFIX) claqge.$(SUFFIX) \ ++ claqhb.$(SUFFIX) claqhe.$(SUFFIX) claqhp.$(SUFFIX) claqp2.$(SUFFIX) claqps.$(SUFFIX) claqsb.$(SUFFIX) \ ++ claqr0.$(SUFFIX) claqr1.$(SUFFIX) claqr2.$(SUFFIX) claqr3.$(SUFFIX) claqr4.$(SUFFIX) claqr5.$(SUFFIX) \ ++ claqsp.$(SUFFIX) claqsy.$(SUFFIX) clar1v.$(SUFFIX) clar2v.$(SUFFIX) ilaclr.$(SUFFIX) ilaclc.$(SUFFIX) \ ++ clarf.$(SUFFIX) clarfb.$(SUFFIX) clarfg.$(SUFFIX) clarft.$(SUFFIX) clarfgp.$(SUFFIX) \ ++ clarfx.$(SUFFIX) clargv.$(SUFFIX) clarnv.$(SUFFIX) clarrv.$(SUFFIX) clartg.$(SUFFIX) clartv.$(SUFFIX) \ ++ clarz.$(SUFFIX) clarzb.$(SUFFIX) clarzt.$(SUFFIX) clascl.$(SUFFIX) claset.$(SUFFIX) clasr.$(SUFFIX) classq.$(SUFFIX) \ ++ claswp.$(SUFFIX) clasyf.$(SUFFIX) clatbs.$(SUFFIX) clatdf.$(SUFFIX) clatps.$(SUFFIX) clatrd.$(SUFFIX) clatrs.$(SUFFIX) clatrz.$(SUFFIX) \ ++ clatzm.$(SUFFIX) cpbcon.$(SUFFIX) cpbequ.$(SUFFIX) cpbrfs.$(SUFFIX) cpbstf.$(SUFFIX) cpbsv.$(SUFFIX) \ ++ cpbsvx.$(SUFFIX) cpbtf2.$(SUFFIX) cpbtrf.$(SUFFIX) cpbtrs.$(SUFFIX) cpocon.$(SUFFIX) cpoequ.$(SUFFIX) cporfs.$(SUFFIX) \ ++ cposv.$(SUFFIX) cposvx.$(SUFFIX) cpotri.$(SUFFIX) cpstrf.$(SUFFIX) cpstf2.$(SUFFIX) \ ++ cppcon.$(SUFFIX) cppequ.$(SUFFIX) cpprfs.$(SUFFIX) cppsv.$(SUFFIX) cppsvx.$(SUFFIX) cpptrf.$(SUFFIX) cpptri.$(SUFFIX) cpptrs.$(SUFFIX) \ ++ cptcon.$(SUFFIX) cpteqr.$(SUFFIX) cptrfs.$(SUFFIX) cptsv.$(SUFFIX) cptsvx.$(SUFFIX) cpttrf.$(SUFFIX) cpttrs.$(SUFFIX) cptts2.$(SUFFIX) \ ++ crot.$(SUFFIX) cspcon.$(SUFFIX) cspmv.$(SUFFIX) cspr.$(SUFFIX) csprfs.$(SUFFIX) cspsv.$(SUFFIX) \ ++ cspsvx.$(SUFFIX) csptrf.$(SUFFIX) csptri.$(SUFFIX) csptrs.$(SUFFIX) csrscl.$(SUFFIX) cstedc.$(SUFFIX) \ ++ cstegr.$(SUFFIX) cstein.$(SUFFIX) csteqr.$(SUFFIX) \ ++ csycon.$(SUFFIX) csymv.$(SUFFIX) \ ++ csyr.$(SUFFIX) csyrfs.$(SUFFIX) csysv.$(SUFFIX) csysvx.$(SUFFIX) csytf2.$(SUFFIX) csytrf.$(SUFFIX) csytri.$(SUFFIX) csytri2.$(SUFFIX) csytri2x.$(SUFFIX) \ ++ csyswapr.$(SUFFIX) csytrs.$(SUFFIX) csytrs2.$(SUFFIX) csyconv.$(SUFFIX) \ ++ ctbcon.$(SUFFIX) ctbrfs.$(SUFFIX) ctbtrs.$(SUFFIX) ctgevc.$(SUFFIX) ctgex2.$(SUFFIX) \ ++ ctgexc.$(SUFFIX) ctgsen.$(SUFFIX) ctgsja.$(SUFFIX) ctgsna.$(SUFFIX) ctgsy2.$(SUFFIX) ctgsyl.$(SUFFIX) ctpcon.$(SUFFIX) \ ++ ctprfs.$(SUFFIX) ctptri.$(SUFFIX) \ ++ ctptrs.$(SUFFIX) ctrcon.$(SUFFIX) ctrevc.$(SUFFIX) ctrexc.$(SUFFIX) ctrrfs.$(SUFFIX) ctrsen.$(SUFFIX) ctrsna.$(SUFFIX) \ ++ ctrsyl.$(SUFFIX) ctrtrs.$(SUFFIX) ctzrqf.$(SUFFIX) ctzrzf.$(SUFFIX) cung2l.$(SUFFIX) cung2r.$(SUFFIX) \ ++ cungbr.$(SUFFIX) cunghr.$(SUFFIX) cungl2.$(SUFFIX) cunglq.$(SUFFIX) cungql.$(SUFFIX) cungqr.$(SUFFIX) cungr2.$(SUFFIX) \ ++ cungrq.$(SUFFIX) cungtr.$(SUFFIX) cunm2l.$(SUFFIX) cunm2r.$(SUFFIX) cunmbr.$(SUFFIX) cunmhr.$(SUFFIX) cunml2.$(SUFFIX) \ ++ cunmlq.$(SUFFIX) cunmql.$(SUFFIX) cunmqr.$(SUFFIX) cunmr2.$(SUFFIX) cunmr3.$(SUFFIX) cunmrq.$(SUFFIX) cunmrz.$(SUFFIX) \ ++ cunmtr.$(SUFFIX) cupgtr.$(SUFFIX) cupmtr.$(SUFFIX) icmax1.$(SUFFIX) scsum1.$(SUFFIX) cstemr.$(SUFFIX) \ ++ chfrk.$(SUFFIX) ctfttp.$(SUFFIX) clanhf.$(SUFFIX) cpftrf.$(SUFFIX) cpftri.$(SUFFIX) cpftrs.$(SUFFIX) ctfsm.$(SUFFIX) ctftri.$(SUFFIX) \ ++ ctfttr.$(SUFFIX) ctpttf.$(SUFFIX) ctpttr.$(SUFFIX) ctrttf.$(SUFFIX) ctrttp.$(SUFFIX) \ ++ cgeequb.$(SUFFIX) cgbequb.$(SUFFIX) csyequb.$(SUFFIX) cpoequb.$(SUFFIX) cheequb.$(SUFFIX) \ ++ cbbcsd.$(SUFFIX) clapmr.$(SUFFIX) cunbdb.$(SUFFIX) cuncsd.$(SUFFIX) \ ++ cgeqrt.$(SUFFIX) cgeqrt2.$(SUFFIX) cgeqrt3.$(SUFFIX) cgemqrt.$(SUFFIX) \ ++ ctpqrt.$(SUFFIX) ctpqrt2.$(SUFFIX) ctpmqrt.$(SUFFIX) ctprfb.$(SUFFIX) + + ifdef USEXBLAS +-CXLASRC = cgesvxx.o cgerfsx.o cla_gerfsx_extended.o cla_geamv.o \ +- cla_gercond_c.o cla_gercond_x.o cla_gerpvgrw.o \ +- csysvxx.o csyrfsx.o cla_syrfsx_extended.o cla_syamv.o \ +- cla_syrcond_c.o cla_syrcond_x.o cla_syrpvgrw.o \ +- cposvxx.o cporfsx.o cla_porfsx_extended.o \ +- cla_porcond_c.o cla_porcond_x.o cla_porpvgrw.o \ +- cgbsvxx.o cgbrfsx.o cla_gbrfsx_extended.o cla_gbamv.o \ +- cla_gbrcond_c.o cla_gbrcond_x.o cla_gbrpvgrw.o \ +- chesvxx.o cherfsx.o cla_herfsx_extended.o cla_heamv.o \ +- cla_hercond_c.o cla_hercond_x.o cla_herpvgrw.o \ +- cla_lin_berr.o clarscl2.o clascl2.o cla_wwaddw.o ++CXLASRC = cgesvxx.$(SUFFIX) cgerfsx.$(SUFFIX) cla_gerfsx_extended.$(SUFFIX) cla_geamv.$(SUFFIX) \ ++ cla_gercond_c.$(SUFFIX) cla_gercond_x.$(SUFFIX) cla_gerpvgrw.$(SUFFIX) \ ++ csysvxx.$(SUFFIX) csyrfsx.$(SUFFIX) cla_syrfsx_extended.$(SUFFIX) cla_syamv.$(SUFFIX) \ ++ cla_syrcond_c.$(SUFFIX) cla_syrcond_x.$(SUFFIX) cla_syrpvgrw.$(SUFFIX) \ ++ cposvxx.$(SUFFIX) cporfsx.$(SUFFIX) cla_porfsx_extended.$(SUFFIX) \ ++ cla_porcond_c.$(SUFFIX) cla_porcond_x.$(SUFFIX) cla_porpvgrw.$(SUFFIX) \ ++ cgbsvxx.$(SUFFIX) cgbrfsx.$(SUFFIX) cla_gbrfsx_extended.$(SUFFIX) cla_gbamv.$(SUFFIX) \ ++ cla_gbrcond_c.$(SUFFIX) cla_gbrcond_x.$(SUFFIX) cla_gbrpvgrw.$(SUFFIX) \ ++ chesvxx.$(SUFFIX) cherfsx.$(SUFFIX) cla_herfsx_extended.$(SUFFIX) cla_heamv.$(SUFFIX) \ ++ cla_hercond_c.$(SUFFIX) cla_hercond_x.$(SUFFIX) cla_herpvgrw.$(SUFFIX) \ ++ cla_lin_berr.$(SUFFIX) clarscl2.$(SUFFIX) clascl2.$(SUFFIX) cla_wwaddw.$(SUFFIX) + endif + +-ZCLASRC = cpotrs.o cgetrs.o cpotrf.o cgetrf.o ++ZCLASRC = cpotrs.$(SUFFIX) + + DLASRC = \ +- dgbbrd.o dgbcon.o dgbequ.o dgbrfs.o dgbsv.o \ +- dgbsvx.o dgbtf2.o dgbtrf.o dgbtrs.o dgebak.o dgebal.o dgebd2.o \ +- dgebrd.o dgecon.o dgeequ.o dgees.o dgeesx.o dgeev.o dgeevx.o \ +- dgegs.o dgegv.o dgehd2.o dgehrd.o dgelq2.o dgelqf.o \ +- dgels.o dgelsd.o dgelss.o dgelsx.o dgelsy.o dgeql2.o dgeqlf.o \ +- dgeqp3.o dgeqpf.o dgeqr2.o dgeqr2p.o dgeqrf.o dgeqrfp.o dgerfs.o \ +- dgerq2.o dgerqf.o dgesc2.o dgesdd.o dgesv.o dgesvd.o dgesvx.o \ +- dgetc2.o dgetf2.o dgetrf.o dgetri.o \ +- dgetrs.o dggbak.o dggbal.o dgges.o dggesx.o dggev.o dggevx.o \ +- dggglm.o dgghrd.o dgglse.o dggqrf.o \ +- dggrqf.o dggsvd.o dggsvp.o dgtcon.o dgtrfs.o dgtsv.o \ +- dgtsvx.o dgttrf.o dgttrs.o dgtts2.o dhgeqz.o \ +- dhsein.o dhseqr.o dlabrd.o dlacon.o dlacn2.o \ +- dlaein.o dlaexc.o dlag2.o dlags2.o dlagtm.o dlagv2.o dlahqr.o \ +- dlahrd.o dlahr2.o dlaic1.o dlaln2.o dlals0.o dlalsa.o dlalsd.o \ +- dlangb.o dlange.o dlangt.o dlanhs.o dlansb.o dlansp.o \ +- dlansy.o dlantb.o dlantp.o dlantr.o dlanv2.o \ +- dlapll.o dlapmt.o \ +- dlaqgb.o dlaqge.o dlaqp2.o dlaqps.o dlaqsb.o dlaqsp.o dlaqsy.o \ +- dlaqr0.o dlaqr1.o dlaqr2.o dlaqr3.o dlaqr4.o dlaqr5.o \ +- dlaqtr.o dlar1v.o dlar2v.o iladlr.o iladlc.o \ +- dlarf.o dlarfb.o dlarfg.o dlarfgp.o dlarft.o dlarfx.o \ +- dlargv.o dlarrv.o dlartv.o \ +- dlarz.o dlarzb.o dlarzt.o dlaswp.o dlasy2.o dlasyf.o \ +- dlatbs.o dlatdf.o dlatps.o dlatrd.o dlatrs.o dlatrz.o dlatzm.o dlauu2.o \ +- dlauum.o dopgtr.o dopmtr.o dorg2l.o dorg2r.o \ +- dorgbr.o dorghr.o dorgl2.o dorglq.o dorgql.o dorgqr.o dorgr2.o \ +- dorgrq.o dorgtr.o dorm2l.o dorm2r.o \ +- dormbr.o dormhr.o dorml2.o dormlq.o dormql.o dormqr.o dormr2.o \ +- dormr3.o dormrq.o dormrz.o dormtr.o dpbcon.o dpbequ.o dpbrfs.o \ +- dpbstf.o dpbsv.o dpbsvx.o \ +- dpbtf2.o dpbtrf.o dpbtrs.o dpocon.o dpoequ.o dporfs.o dposv.o \ +- dposvx.o dpotf2.o dpotrf.o dpotri.o dpotrs.o dpstrf.o dpstf2.o \ +- dppcon.o dppequ.o \ +- dpprfs.o dppsv.o dppsvx.o dpptrf.o dpptri.o dpptrs.o dptcon.o \ +- dpteqr.o dptrfs.o dptsv.o dptsvx.o dpttrs.o dptts2.o drscl.o \ +- dsbev.o dsbevd.o dsbevx.o dsbgst.o dsbgv.o dsbgvd.o dsbgvx.o \ +- dsbtrd.o dspcon.o dspev.o dspevd.o dspevx.o dspgst.o \ +- dspgv.o dspgvd.o dspgvx.o dsprfs.o dspsv.o dspsvx.o dsptrd.o \ +- dsptrf.o dsptri.o dsptrs.o dstegr.o dstein.o dstev.o dstevd.o dstevr.o \ +- dstevx.o \ +- dsycon.o dsyev.o dsyevd.o dsyevr.o \ +- dsyevx.o dsygs2.o dsygst.o dsygv.o dsygvd.o dsygvx.o dsyrfs.o \ +- dsysv.o dsysvx.o \ +- dsytd2.o dsytf2.o dsytrd.o dsytrf.o dsytri.o dsytri2.o dsytri2x.o \ +- dsyswapr.o dsytrs.o dsytrs2.o dsyconv.o \ +- dtbcon.o dtbrfs.o dtbtrs.o dtgevc.o dtgex2.o dtgexc.o dtgsen.o \ +- dtgsja.o dtgsna.o dtgsy2.o dtgsyl.o dtpcon.o dtprfs.o dtptri.o \ +- dtptrs.o \ +- dtrcon.o dtrevc.o dtrexc.o dtrrfs.o dtrsen.o dtrsna.o dtrsyl.o \ +- dtrti2.o dtrtri.o dtrtrs.o dtzrqf.o dtzrzf.o dstemr.o \ +- dsgesv.o dsposv.o dlag2s.o slag2d.o dlat2s.o \ +- dlansf.o dpftrf.o dpftri.o dpftrs.o dsfrk.o dtfsm.o dtftri.o dtfttp.o \ +- dtfttr.o dtpttf.o dtpttr.o dtrttf.o dtrttp.o \ +- dgejsv.o dgesvj.o dgsvj0.o dgsvj1.o \ +- dgeequb.o dsyequb.o dpoequb.o dgbequb.o \ +- dbbcsd.o dlapmr.o dorbdb.o dorcsd.o \ +- dgeqrt.o dgeqrt2.o dgeqrt3.o dgemqrt.o \ +- dtpqrt.o dtpqrt2.o dtpmqrt.o dtprfb.o ++ dgbbrd.$(SUFFIX) dgbcon.$(SUFFIX) dgbequ.$(SUFFIX) dgbrfs.$(SUFFIX) dgbsv.$(SUFFIX) \ ++ dgbsvx.$(SUFFIX) dgbtf2.$(SUFFIX) dgbtrf.$(SUFFIX) dgbtrs.$(SUFFIX) dgebak.$(SUFFIX) dgebal.$(SUFFIX) dgebd2.$(SUFFIX) \ ++ dgebrd.$(SUFFIX) dgecon.$(SUFFIX) dgeequ.$(SUFFIX) dgees.$(SUFFIX) dgeesx.$(SUFFIX) dgeev.$(SUFFIX) dgeevx.$(SUFFIX) \ ++ dgegs.$(SUFFIX) dgegv.$(SUFFIX) dgehd2.$(SUFFIX) dgehrd.$(SUFFIX) dgelq2.$(SUFFIX) dgelqf.$(SUFFIX) \ ++ dgels.$(SUFFIX) dgelsd.$(SUFFIX) dgelss.$(SUFFIX) dgelsx.$(SUFFIX) dgelsy.$(SUFFIX) dgeql2.$(SUFFIX) dgeqlf.$(SUFFIX) \ ++ dgeqp3.$(SUFFIX) dgeqpf.$(SUFFIX) dgeqr2.$(SUFFIX) dgeqr2p.$(SUFFIX) dgeqrf.$(SUFFIX) dgeqrfp.$(SUFFIX) dgerfs.$(SUFFIX) \ ++ dgerq2.$(SUFFIX) dgerqf.$(SUFFIX) dgesc2.$(SUFFIX) dgesdd.$(SUFFIX) dgesv.$(SUFFIX) dgesvd.$(SUFFIX) dgesvx.$(SUFFIX) \ ++ dgetc2.$(SUFFIX) dgetri.$(SUFFIX) \ ++ dggbak.$(SUFFIX) dggbal.$(SUFFIX) dgges.$(SUFFIX) dggesx.$(SUFFIX) dggev.$(SUFFIX) dggevx.$(SUFFIX) \ ++ dggglm.$(SUFFIX) dgghrd.$(SUFFIX) dgglse.$(SUFFIX) dggqrf.$(SUFFIX) \ ++ dggrqf.$(SUFFIX) dggsvd.$(SUFFIX) dggsvp.$(SUFFIX) dgtcon.$(SUFFIX) dgtrfs.$(SUFFIX) dgtsv.$(SUFFIX) \ ++ dgtsvx.$(SUFFIX) dgttrf.$(SUFFIX) dgttrs.$(SUFFIX) dgtts2.$(SUFFIX) dhgeqz.$(SUFFIX) \ ++ dhsein.$(SUFFIX) dhseqr.$(SUFFIX) dlabrd.$(SUFFIX) dlacon.$(SUFFIX) dlacn2.$(SUFFIX) \ ++ dlaein.$(SUFFIX) dlaexc.$(SUFFIX) dlag2.$(SUFFIX) dlags2.$(SUFFIX) dlagtm.$(SUFFIX) dlagv2.$(SUFFIX) dlahqr.$(SUFFIX) \ ++ dlahrd.$(SUFFIX) dlahr2.$(SUFFIX) dlaic1.$(SUFFIX) dlaln2.$(SUFFIX) dlals0.$(SUFFIX) dlalsa.$(SUFFIX) dlalsd.$(SUFFIX) \ ++ dlangb.$(SUFFIX) dlange.$(SUFFIX) dlangt.$(SUFFIX) dlanhs.$(SUFFIX) dlansb.$(SUFFIX) dlansp.$(SUFFIX) \ ++ dlansy.$(SUFFIX) dlantb.$(SUFFIX) dlantp.$(SUFFIX) dlantr.$(SUFFIX) dlanv2.$(SUFFIX) \ ++ dlapll.$(SUFFIX) dlapmt.$(SUFFIX) \ ++ dlaqgb.$(SUFFIX) dlaqge.$(SUFFIX) dlaqp2.$(SUFFIX) dlaqps.$(SUFFIX) dlaqsb.$(SUFFIX) dlaqsp.$(SUFFIX) dlaqsy.$(SUFFIX) \ ++ dlaqr0.$(SUFFIX) dlaqr1.$(SUFFIX) dlaqr2.$(SUFFIX) dlaqr3.$(SUFFIX) dlaqr4.$(SUFFIX) dlaqr5.$(SUFFIX) \ ++ dlaqtr.$(SUFFIX) dlar1v.$(SUFFIX) dlar2v.$(SUFFIX) iladlr.$(SUFFIX) iladlc.$(SUFFIX) \ ++ dlarf.$(SUFFIX) dlarfb.$(SUFFIX) dlarfg.$(SUFFIX) dlarfgp.$(SUFFIX) dlarft.$(SUFFIX) dlarfx.$(SUFFIX) \ ++ dlargv.$(SUFFIX) dlarrv.$(SUFFIX) dlartv.$(SUFFIX) \ ++ dlarz.$(SUFFIX) dlarzb.$(SUFFIX) dlarzt.$(SUFFIX) dlaswp.$(SUFFIX) dlasy2.$(SUFFIX) dlasyf.$(SUFFIX) \ ++ dlatbs.$(SUFFIX) dlatdf.$(SUFFIX) dlatps.$(SUFFIX) dlatrd.$(SUFFIX) dlatrs.$(SUFFIX) dlatrz.$(SUFFIX) dlatzm.$(SUFFIX) \ ++ dopgtr.$(SUFFIX) dopmtr.$(SUFFIX) dorg2l.$(SUFFIX) dorg2r.$(SUFFIX) \ ++ dorgbr.$(SUFFIX) dorghr.$(SUFFIX) dorgl2.$(SUFFIX) dorglq.$(SUFFIX) dorgql.$(SUFFIX) dorgqr.$(SUFFIX) dorgr2.$(SUFFIX) \ ++ dorgrq.$(SUFFIX) dorgtr.$(SUFFIX) dorm2l.$(SUFFIX) dorm2r.$(SUFFIX) \ ++ dormbr.$(SUFFIX) dormhr.$(SUFFIX) dorml2.$(SUFFIX) dormlq.$(SUFFIX) dormql.$(SUFFIX) dormqr.$(SUFFIX) dormr2.$(SUFFIX) \ ++ dormr3.$(SUFFIX) dormrq.$(SUFFIX) dormrz.$(SUFFIX) dormtr.$(SUFFIX) dpbcon.$(SUFFIX) dpbequ.$(SUFFIX) dpbrfs.$(SUFFIX) \ ++ dpbstf.$(SUFFIX) dpbsv.$(SUFFIX) dpbsvx.$(SUFFIX) \ ++ dpbtf2.$(SUFFIX) dpbtrf.$(SUFFIX) dpbtrs.$(SUFFIX) dpocon.$(SUFFIX) dpoequ.$(SUFFIX) dporfs.$(SUFFIX) dposv.$(SUFFIX) \ ++ dposvx.$(SUFFIX) dpotri.$(SUFFIX) dpotrs.$(SUFFIX) dpstrf.$(SUFFIX) dpstf2.$(SUFFIX) \ ++ dppcon.$(SUFFIX) dppequ.$(SUFFIX) \ ++ dpprfs.$(SUFFIX) dppsv.$(SUFFIX) dppsvx.$(SUFFIX) dpptrf.$(SUFFIX) dpptri.$(SUFFIX) dpptrs.$(SUFFIX) dptcon.$(SUFFIX) \ ++ dpteqr.$(SUFFIX) dptrfs.$(SUFFIX) dptsv.$(SUFFIX) dptsvx.$(SUFFIX) dpttrs.$(SUFFIX) dptts2.$(SUFFIX) drscl.$(SUFFIX) \ ++ dsbev.$(SUFFIX) dsbevd.$(SUFFIX) dsbevx.$(SUFFIX) dsbgst.$(SUFFIX) dsbgv.$(SUFFIX) dsbgvd.$(SUFFIX) dsbgvx.$(SUFFIX) \ ++ dsbtrd.$(SUFFIX) dspcon.$(SUFFIX) dspev.$(SUFFIX) dspevd.$(SUFFIX) dspevx.$(SUFFIX) dspgst.$(SUFFIX) \ ++ dspgv.$(SUFFIX) dspgvd.$(SUFFIX) dspgvx.$(SUFFIX) dsprfs.$(SUFFIX) dspsv.$(SUFFIX) dspsvx.$(SUFFIX) dsptrd.$(SUFFIX) \ ++ dsptrf.$(SUFFIX) dsptri.$(SUFFIX) dsptrs.$(SUFFIX) dstegr.$(SUFFIX) dstein.$(SUFFIX) dstev.$(SUFFIX) dstevd.$(SUFFIX) dstevr.$(SUFFIX) \ ++ dstevx.$(SUFFIX) \ ++ dsycon.$(SUFFIX) dsyev.$(SUFFIX) dsyevd.$(SUFFIX) dsyevr.$(SUFFIX) \ ++ dsyevx.$(SUFFIX) dsygs2.$(SUFFIX) dsygst.$(SUFFIX) dsygv.$(SUFFIX) dsygvd.$(SUFFIX) dsygvx.$(SUFFIX) dsyrfs.$(SUFFIX) \ ++ dsysv.$(SUFFIX) dsysvx.$(SUFFIX) \ ++ dsytd2.$(SUFFIX) dsytf2.$(SUFFIX) dsytrd.$(SUFFIX) dsytrf.$(SUFFIX) dsytri.$(SUFFIX) dsytri2.$(SUFFIX) dsytri2x.$(SUFFIX) \ ++ dsyswapr.$(SUFFIX) dsytrs.$(SUFFIX) dsytrs2.$(SUFFIX) dsyconv.$(SUFFIX) \ ++ dtbcon.$(SUFFIX) dtbrfs.$(SUFFIX) dtbtrs.$(SUFFIX) dtgevc.$(SUFFIX) dtgex2.$(SUFFIX) dtgexc.$(SUFFIX) dtgsen.$(SUFFIX) \ ++ dtgsja.$(SUFFIX) dtgsna.$(SUFFIX) dtgsy2.$(SUFFIX) dtgsyl.$(SUFFIX) dtpcon.$(SUFFIX) dtprfs.$(SUFFIX) dtptri.$(SUFFIX) \ ++ dtptrs.$(SUFFIX) \ ++ dtrcon.$(SUFFIX) dtrevc.$(SUFFIX) dtrexc.$(SUFFIX) dtrrfs.$(SUFFIX) dtrsen.$(SUFFIX) dtrsna.$(SUFFIX) dtrsyl.$(SUFFIX) \ ++ dtrtrs.$(SUFFIX) dtzrqf.$(SUFFIX) dtzrzf.$(SUFFIX) dstemr.$(SUFFIX) \ ++ dsgesv.$(SUFFIX) dsposv.$(SUFFIX) dlag2s.$(SUFFIX) slag2d.$(SUFFIX) dlat2s.$(SUFFIX) \ ++ dlansf.$(SUFFIX) dpftrf.$(SUFFIX) dpftri.$(SUFFIX) dpftrs.$(SUFFIX) dsfrk.$(SUFFIX) dtfsm.$(SUFFIX) dtftri.$(SUFFIX) dtfttp.$(SUFFIX) \ ++ dtfttr.$(SUFFIX) dtpttf.$(SUFFIX) dtpttr.$(SUFFIX) dtrttf.$(SUFFIX) dtrttp.$(SUFFIX) \ ++ dgejsv.$(SUFFIX) dgesvj.$(SUFFIX) dgsvj0.$(SUFFIX) dgsvj1.$(SUFFIX) \ ++ dgeequb.$(SUFFIX) dsyequb.$(SUFFIX) dpoequb.$(SUFFIX) dgbequb.$(SUFFIX) \ ++ dbbcsd.$(SUFFIX) dlapmr.$(SUFFIX) dorbdb.$(SUFFIX) dorcsd.$(SUFFIX) \ ++ dgeqrt.$(SUFFIX) dgeqrt2.$(SUFFIX) dgeqrt3.$(SUFFIX) dgemqrt.$(SUFFIX) \ ++ dtpqrt.$(SUFFIX) dtpqrt2.$(SUFFIX) dtpmqrt.$(SUFFIX) dtprfb.$(SUFFIX) + + ifdef USEXBLAS +-DXLASRC = dgesvxx.o dgerfsx.o dla_gerfsx_extended.o dla_geamv.o \ +- dla_gercond.o dla_gerpvgrw.o dsysvxx.o dsyrfsx.o \ +- dla_syrfsx_extended.o dla_syamv.o dla_syrcond.o dla_syrpvgrw.o \ +- dposvxx.o dporfsx.o dla_porfsx_extended.o dla_porcond.o \ +- dla_porpvgrw.o dgbsvxx.o dgbrfsx.o dla_gbrfsx_extended.o \ +- dla_gbamv.o dla_gbrcond.o dla_gbrpvgrw.o dla_lin_berr.o dlarscl2.o \ +- dlascl2.o dla_wwaddw.o ++DXLASRC = dgesvxx.$(SUFFIX) dgerfsx.$(SUFFIX) dla_gerfsx_extended.$(SUFFIX) dla_geamv.$(SUFFIX) \ ++ dla_gercond.$(SUFFIX) dla_gerpvgrw.$(SUFFIX) dsysvxx.$(SUFFIX) dsyrfsx.$(SUFFIX) \ ++ dla_syrfsx_extended.$(SUFFIX) dla_syamv.$(SUFFIX) dla_syrcond.$(SUFFIX) dla_syrpvgrw.$(SUFFIX) \ ++ dposvxx.$(SUFFIX) dporfsx.$(SUFFIX) dla_porfsx_extended.$(SUFFIX) dla_porcond.$(SUFFIX) \ ++ dla_porpvgrw.$(SUFFIX) dgbsvxx.$(SUFFIX) dgbrfsx.$(SUFFIX) dla_gbrfsx_extended.$(SUFFIX) \ ++ dla_gbamv.$(SUFFIX) dla_gbrcond.$(SUFFIX) dla_gbrpvgrw.$(SUFFIX) dla_lin_berr.$(SUFFIX) dlarscl2.$(SUFFIX) \ ++ dlascl2.$(SUFFIX) dla_wwaddw.$(SUFFIX) + endif + + ZLASRC = \ +- zbdsqr.o zgbbrd.o zgbcon.o zgbequ.o zgbrfs.o zgbsv.o zgbsvx.o \ +- zgbtf2.o zgbtrf.o zgbtrs.o zgebak.o zgebal.o zgebd2.o zgebrd.o \ +- zgecon.o zgeequ.o zgees.o zgeesx.o zgeev.o zgeevx.o \ +- zgegs.o zgegv.o zgehd2.o zgehrd.o zgelq2.o zgelqf.o \ +- zgels.o zgelsd.o zgelss.o zgelsx.o zgelsy.o zgeql2.o zgeqlf.o zgeqp3.o \ +- zgeqpf.o zgeqr2.o zgeqr2p.o zgeqrf.o zgeqrfp.o zgerfs.o zgerq2.o zgerqf.o \ +- zgesc2.o zgesdd.o zgesv.o zgesvd.o zgesvx.o zgetc2.o zgetf2.o zgetrf.o \ +- zgetri.o zgetrs.o \ +- zggbak.o zggbal.o zgges.o zggesx.o zggev.o zggevx.o zggglm.o \ +- zgghrd.o zgglse.o zggqrf.o zggrqf.o \ +- zggsvd.o zggsvp.o \ +- zgtcon.o zgtrfs.o zgtsv.o zgtsvx.o zgttrf.o zgttrs.o zgtts2.o zhbev.o \ +- zhbevd.o zhbevx.o zhbgst.o zhbgv.o zhbgvd.o zhbgvx.o zhbtrd.o \ +- zhecon.o zheev.o zheevd.o zheevr.o zheevx.o zhegs2.o zhegst.o \ +- zhegv.o zhegvd.o zhegvx.o zherfs.o zhesv.o zhesvx.o zhetd2.o \ +- zhetf2.o zhetrd.o \ +- zhetrf.o zhetri.o zhetri2.o zhetri2x.o zheswapr.o \ +- zhetrs.o zhetrs2.o zhgeqz.o zhpcon.o zhpev.o zhpevd.o \ +- zhpevx.o zhpgst.o zhpgv.o zhpgvd.o zhpgvx.o zhprfs.o zhpsv.o \ +- zhpsvx.o \ +- zhptrd.o zhptrf.o zhptri.o zhptrs.o zhsein.o zhseqr.o zlabrd.o \ +- zlacgv.o zlacon.o zlacn2.o zlacp2.o zlacpy.o zlacrm.o zlacrt.o zladiv.o \ +- zlaed0.o zlaed7.o zlaed8.o \ +- zlaein.o zlaesy.o zlaev2.o zlags2.o zlagtm.o \ +- zlahef.o zlahqr.o \ +- zlahrd.o zlahr2.o zlaic1.o zlals0.o zlalsa.o zlalsd.o zlangb.o zlange.o \ +- zlangt.o zlanhb.o \ +- zlanhe.o \ +- zlanhp.o zlanhs.o zlanht.o zlansb.o zlansp.o zlansy.o zlantb.o \ +- zlantp.o zlantr.o zlapll.o zlapmt.o zlaqgb.o zlaqge.o \ +- zlaqhb.o zlaqhe.o zlaqhp.o zlaqp2.o zlaqps.o zlaqsb.o \ +- zlaqr0.o zlaqr1.o zlaqr2.o zlaqr3.o zlaqr4.o zlaqr5.o \ +- zlaqsp.o zlaqsy.o zlar1v.o zlar2v.o ilazlr.o ilazlc.o \ +- zlarcm.o zlarf.o zlarfb.o \ +- zlarfg.o zlarft.o zlarfgp.o \ +- zlarfx.o zlargv.o zlarnv.o zlarrv.o zlartg.o zlartv.o \ +- zlarz.o zlarzb.o zlarzt.o zlascl.o zlaset.o zlasr.o \ +- zlassq.o zlaswp.o zlasyf.o \ +- zlatbs.o zlatdf.o zlatps.o zlatrd.o zlatrs.o zlatrz.o zlatzm.o zlauu2.o \ +- zlauum.o zpbcon.o zpbequ.o zpbrfs.o zpbstf.o zpbsv.o \ +- zpbsvx.o zpbtf2.o zpbtrf.o zpbtrs.o zpocon.o zpoequ.o zporfs.o \ +- zposv.o zposvx.o zpotf2.o zpotrf.o zpotri.o zpotrs.o zpstrf.o zpstf2.o \ +- zppcon.o zppequ.o zpprfs.o zppsv.o zppsvx.o zpptrf.o zpptri.o zpptrs.o \ +- zptcon.o zpteqr.o zptrfs.o zptsv.o zptsvx.o zpttrf.o zpttrs.o zptts2.o \ +- zrot.o zspcon.o zspmv.o zspr.o zsprfs.o zspsv.o \ +- zspsvx.o zsptrf.o zsptri.o zsptrs.o zdrscl.o zstedc.o \ +- zstegr.o zstein.o zsteqr.o \ +- zsycon.o zsymv.o \ +- zsyr.o zsyrfs.o zsysv.o zsysvx.o zsytf2.o zsytrf.o zsytri.o zsytri2.o zsytri2x.o \ +- zsyswapr.o zsytrs.o zsytrs2.o zsyconv.o \ +- ztbcon.o ztbrfs.o ztbtrs.o ztgevc.o ztgex2.o \ +- ztgexc.o ztgsen.o ztgsja.o ztgsna.o ztgsy2.o ztgsyl.o ztpcon.o \ +- ztprfs.o ztptri.o \ +- ztptrs.o ztrcon.o ztrevc.o ztrexc.o ztrrfs.o ztrsen.o ztrsna.o \ +- ztrsyl.o ztrti2.o ztrtri.o ztrtrs.o ztzrqf.o ztzrzf.o zung2l.o \ +- zung2r.o zungbr.o zunghr.o zungl2.o zunglq.o zungql.o zungqr.o zungr2.o \ +- zungrq.o zungtr.o zunm2l.o zunm2r.o zunmbr.o zunmhr.o zunml2.o \ +- zunmlq.o zunmql.o zunmqr.o zunmr2.o zunmr3.o zunmrq.o zunmrz.o \ +- zunmtr.o zupgtr.o \ +- zupmtr.o izmax1.o dzsum1.o zstemr.o \ +- zcgesv.o zcposv.o zlag2c.o clag2z.o zlat2c.o \ +- zhfrk.o ztfttp.o zlanhf.o zpftrf.o zpftri.o zpftrs.o ztfsm.o ztftri.o \ +- ztfttr.o ztpttf.o ztpttr.o ztrttf.o ztrttp.o \ +- zgeequb.o zgbequb.o zsyequb.o zpoequb.o zheequb.o \ +- zbbcsd.o zlapmr.o zunbdb.o zuncsd.o \ +- zgeqrt.o zgeqrt2.o zgeqrt3.o zgemqrt.o \ +- ztpqrt.o ztpqrt2.o ztpmqrt.o ztprfb.o ++ zbdsqr.$(SUFFIX) zgbbrd.$(SUFFIX) zgbcon.$(SUFFIX) zgbequ.$(SUFFIX) zgbrfs.$(SUFFIX) zgbsv.$(SUFFIX) zgbsvx.$(SUFFIX) \ ++ zgbtf2.$(SUFFIX) zgbtrf.$(SUFFIX) zgbtrs.$(SUFFIX) zgebak.$(SUFFIX) zgebal.$(SUFFIX) zgebd2.$(SUFFIX) zgebrd.$(SUFFIX) \ ++ zgecon.$(SUFFIX) zgeequ.$(SUFFIX) zgees.$(SUFFIX) zgeesx.$(SUFFIX) zgeev.$(SUFFIX) zgeevx.$(SUFFIX) \ ++ zgegs.$(SUFFIX) zgegv.$(SUFFIX) zgehd2.$(SUFFIX) zgehrd.$(SUFFIX) zgelq2.$(SUFFIX) zgelqf.$(SUFFIX) \ ++ zgels.$(SUFFIX) zgelsd.$(SUFFIX) zgelss.$(SUFFIX) zgelsx.$(SUFFIX) zgelsy.$(SUFFIX) zgeql2.$(SUFFIX) zgeqlf.$(SUFFIX) zgeqp3.$(SUFFIX) \ ++ zgeqpf.$(SUFFIX) zgeqr2.$(SUFFIX) zgeqr2p.$(SUFFIX) zgeqrf.$(SUFFIX) zgeqrfp.$(SUFFIX) zgerfs.$(SUFFIX) zgerq2.$(SUFFIX) zgerqf.$(SUFFIX) \ ++ zgesc2.$(SUFFIX) zgesdd.$(SUFFIX) zgesv.$(SUFFIX) zgesvd.$(SUFFIX) zgesvx.$(SUFFIX) zgetc2.$(SUFFIX) \ ++ zgetri.$(SUFFIX) \ ++ zggbak.$(SUFFIX) zggbal.$(SUFFIX) zgges.$(SUFFIX) zggesx.$(SUFFIX) zggev.$(SUFFIX) zggevx.$(SUFFIX) zggglm.$(SUFFIX) \ ++ zgghrd.$(SUFFIX) zgglse.$(SUFFIX) zggqrf.$(SUFFIX) zggrqf.$(SUFFIX) \ ++ zggsvd.$(SUFFIX) zggsvp.$(SUFFIX) \ ++ zgtcon.$(SUFFIX) zgtrfs.$(SUFFIX) zgtsv.$(SUFFIX) zgtsvx.$(SUFFIX) zgttrf.$(SUFFIX) zgttrs.$(SUFFIX) zgtts2.$(SUFFIX) zhbev.$(SUFFIX) \ ++ zhbevd.$(SUFFIX) zhbevx.$(SUFFIX) zhbgst.$(SUFFIX) zhbgv.$(SUFFIX) zhbgvd.$(SUFFIX) zhbgvx.$(SUFFIX) zhbtrd.$(SUFFIX) \ ++ zhecon.$(SUFFIX) zheev.$(SUFFIX) zheevd.$(SUFFIX) zheevr.$(SUFFIX) zheevx.$(SUFFIX) zhegs2.$(SUFFIX) zhegst.$(SUFFIX) \ ++ zhegv.$(SUFFIX) zhegvd.$(SUFFIX) zhegvx.$(SUFFIX) zherfs.$(SUFFIX) zhesv.$(SUFFIX) zhesvx.$(SUFFIX) zhetd2.$(SUFFIX) \ ++ zhetf2.$(SUFFIX) zhetrd.$(SUFFIX) \ ++ zhetrf.$(SUFFIX) zhetri.$(SUFFIX) zhetri2.$(SUFFIX) zhetri2x.$(SUFFIX) zheswapr.$(SUFFIX) \ ++ zhetrs.$(SUFFIX) zhetrs2.$(SUFFIX) zhgeqz.$(SUFFIX) zhpcon.$(SUFFIX) zhpev.$(SUFFIX) zhpevd.$(SUFFIX) \ ++ zhpevx.$(SUFFIX) zhpgst.$(SUFFIX) zhpgv.$(SUFFIX) zhpgvd.$(SUFFIX) zhpgvx.$(SUFFIX) zhprfs.$(SUFFIX) zhpsv.$(SUFFIX) \ ++ zhpsvx.$(SUFFIX) \ ++ zhptrd.$(SUFFIX) zhptrf.$(SUFFIX) zhptri.$(SUFFIX) zhptrs.$(SUFFIX) zhsein.$(SUFFIX) zhseqr.$(SUFFIX) zlabrd.$(SUFFIX) \ ++ zlacgv.$(SUFFIX) zlacon.$(SUFFIX) zlacn2.$(SUFFIX) zlacp2.$(SUFFIX) zlacpy.$(SUFFIX) zlacrm.$(SUFFIX) zlacrt.$(SUFFIX) zladiv.$(SUFFIX) \ ++ zlaed0.$(SUFFIX) zlaed7.$(SUFFIX) zlaed8.$(SUFFIX) \ ++ zlaein.$(SUFFIX) zlaesy.$(SUFFIX) zlaev2.$(SUFFIX) zlags2.$(SUFFIX) zlagtm.$(SUFFIX) \ ++ zlahef.$(SUFFIX) zlahqr.$(SUFFIX) \ ++ zlahrd.$(SUFFIX) zlahr2.$(SUFFIX) zlaic1.$(SUFFIX) zlals0.$(SUFFIX) zlalsa.$(SUFFIX) zlalsd.$(SUFFIX) zlangb.$(SUFFIX) zlange.$(SUFFIX) \ ++ zlangt.$(SUFFIX) zlanhb.$(SUFFIX) \ ++ zlanhe.$(SUFFIX) \ ++ zlanhp.$(SUFFIX) zlanhs.$(SUFFIX) zlanht.$(SUFFIX) zlansb.$(SUFFIX) zlansp.$(SUFFIX) zlansy.$(SUFFIX) zlantb.$(SUFFIX) \ ++ zlantp.$(SUFFIX) zlantr.$(SUFFIX) zlapll.$(SUFFIX) zlapmt.$(SUFFIX) zlaqgb.$(SUFFIX) zlaqge.$(SUFFIX) \ ++ zlaqhb.$(SUFFIX) zlaqhe.$(SUFFIX) zlaqhp.$(SUFFIX) zlaqp2.$(SUFFIX) zlaqps.$(SUFFIX) zlaqsb.$(SUFFIX) \ ++ zlaqr0.$(SUFFIX) zlaqr1.$(SUFFIX) zlaqr2.$(SUFFIX) zlaqr3.$(SUFFIX) zlaqr4.$(SUFFIX) zlaqr5.$(SUFFIX) \ ++ zlaqsp.$(SUFFIX) zlaqsy.$(SUFFIX) zlar1v.$(SUFFIX) zlar2v.$(SUFFIX) ilazlr.$(SUFFIX) ilazlc.$(SUFFIX) \ ++ zlarcm.$(SUFFIX) zlarf.$(SUFFIX) zlarfb.$(SUFFIX) \ ++ zlarfg.$(SUFFIX) zlarft.$(SUFFIX) zlarfgp.$(SUFFIX) \ ++ zlarfx.$(SUFFIX) zlargv.$(SUFFIX) zlarnv.$(SUFFIX) zlarrv.$(SUFFIX) zlartg.$(SUFFIX) zlartv.$(SUFFIX) \ ++ zlarz.$(SUFFIX) zlarzb.$(SUFFIX) zlarzt.$(SUFFIX) zlascl.$(SUFFIX) zlaset.$(SUFFIX) zlasr.$(SUFFIX) \ ++ zlassq.$(SUFFIX) zlaswp.$(SUFFIX) zlasyf.$(SUFFIX) \ ++ zlatbs.$(SUFFIX) zlatdf.$(SUFFIX) zlatps.$(SUFFIX) zlatrd.$(SUFFIX) zlatrs.$(SUFFIX) zlatrz.$(SUFFIX) zlatzm.$(SUFFIX) zlauu2.$(SUFFIX) \ ++ zpbcon.$(SUFFIX) zpbequ.$(SUFFIX) zpbrfs.$(SUFFIX) zpbstf.$(SUFFIX) zpbsv.$(SUFFIX) \ ++ zpbsvx.$(SUFFIX) zpbtf2.$(SUFFIX) zpbtrf.$(SUFFIX) zpbtrs.$(SUFFIX) zpocon.$(SUFFIX) zpoequ.$(SUFFIX) zporfs.$(SUFFIX) \ ++ zposv.$(SUFFIX) zposvx.$(SUFFIX) zpotri.$(SUFFIX) zpotrs.$(SUFFIX) zpstrf.$(SUFFIX) zpstf2.$(SUFFIX) \ ++ zppcon.$(SUFFIX) zppequ.$(SUFFIX) zpprfs.$(SUFFIX) zppsv.$(SUFFIX) zppsvx.$(SUFFIX) zpptrf.$(SUFFIX) zpptri.$(SUFFIX) zpptrs.$(SUFFIX) \ ++ zptcon.$(SUFFIX) zpteqr.$(SUFFIX) zptrfs.$(SUFFIX) zptsv.$(SUFFIX) zptsvx.$(SUFFIX) zpttrf.$(SUFFIX) zpttrs.$(SUFFIX) zptts2.$(SUFFIX) \ ++ zrot.$(SUFFIX) zspcon.$(SUFFIX) zspmv.$(SUFFIX) zspr.$(SUFFIX) zsprfs.$(SUFFIX) zspsv.$(SUFFIX) \ ++ zspsvx.$(SUFFIX) zsptrf.$(SUFFIX) zsptri.$(SUFFIX) zsptrs.$(SUFFIX) zdrscl.$(SUFFIX) zstedc.$(SUFFIX) \ ++ zstegr.$(SUFFIX) zstein.$(SUFFIX) zsteqr.$(SUFFIX) \ ++ zsycon.$(SUFFIX) zsymv.$(SUFFIX) \ ++ zsyr.$(SUFFIX) zsyrfs.$(SUFFIX) zsysv.$(SUFFIX) zsysvx.$(SUFFIX) zsytf2.$(SUFFIX) zsytrf.$(SUFFIX) zsytri.$(SUFFIX) zsytri2.$(SUFFIX) zsytri2x.$(SUFFIX) \ ++ zsyswapr.$(SUFFIX) zsytrs.$(SUFFIX) zsytrs2.$(SUFFIX) zsyconv.$(SUFFIX) \ ++ ztbcon.$(SUFFIX) ztbrfs.$(SUFFIX) ztbtrs.$(SUFFIX) ztgevc.$(SUFFIX) ztgex2.$(SUFFIX) \ ++ ztgexc.$(SUFFIX) ztgsen.$(SUFFIX) ztgsja.$(SUFFIX) ztgsna.$(SUFFIX) ztgsy2.$(SUFFIX) ztgsyl.$(SUFFIX) ztpcon.$(SUFFIX) \ ++ ztprfs.$(SUFFIX) ztptri.$(SUFFIX) \ ++ ztptrs.$(SUFFIX) ztrcon.$(SUFFIX) ztrevc.$(SUFFIX) ztrexc.$(SUFFIX) ztrrfs.$(SUFFIX) ztrsen.$(SUFFIX) ztrsna.$(SUFFIX) \ ++ ztrsyl.$(SUFFIX) ztrtrs.$(SUFFIX) ztzrqf.$(SUFFIX) ztzrzf.$(SUFFIX) zung2l.$(SUFFIX) \ ++ zung2r.$(SUFFIX) zungbr.$(SUFFIX) zunghr.$(SUFFIX) zungl2.$(SUFFIX) zunglq.$(SUFFIX) zungql.$(SUFFIX) zungqr.$(SUFFIX) zungr2.$(SUFFIX) \ ++ zungrq.$(SUFFIX) zungtr.$(SUFFIX) zunm2l.$(SUFFIX) zunm2r.$(SUFFIX) zunmbr.$(SUFFIX) zunmhr.$(SUFFIX) zunml2.$(SUFFIX) \ ++ zunmlq.$(SUFFIX) zunmql.$(SUFFIX) zunmqr.$(SUFFIX) zunmr2.$(SUFFIX) zunmr3.$(SUFFIX) zunmrq.$(SUFFIX) zunmrz.$(SUFFIX) \ ++ zunmtr.$(SUFFIX) zupgtr.$(SUFFIX) \ ++ zupmtr.$(SUFFIX) izmax1.$(SUFFIX) dzsum1.$(SUFFIX) zstemr.$(SUFFIX) \ ++ zcgesv.$(SUFFIX) zcposv.$(SUFFIX) zlag2c.$(SUFFIX) clag2z.$(SUFFIX) zlat2c.$(SUFFIX) \ ++ zhfrk.$(SUFFIX) ztfttp.$(SUFFIX) zlanhf.$(SUFFIX) zpftrf.$(SUFFIX) zpftri.$(SUFFIX) zpftrs.$(SUFFIX) ztfsm.$(SUFFIX) ztftri.$(SUFFIX) \ ++ ztfttr.$(SUFFIX) ztpttf.$(SUFFIX) ztpttr.$(SUFFIX) ztrttf.$(SUFFIX) ztrttp.$(SUFFIX) \ ++ zgeequb.$(SUFFIX) zgbequb.$(SUFFIX) zsyequb.$(SUFFIX) zpoequb.$(SUFFIX) zheequb.$(SUFFIX) \ ++ zbbcsd.$(SUFFIX) zlapmr.$(SUFFIX) zunbdb.$(SUFFIX) zuncsd.$(SUFFIX) \ ++ zgeqrt.$(SUFFIX) zgeqrt2.$(SUFFIX) zgeqrt3.$(SUFFIX) zgemqrt.$(SUFFIX) \ ++ ztpqrt.$(SUFFIX) ztpqrt2.$(SUFFIX) ztpmqrt.$(SUFFIX) ztprfb.$(SUFFIX) + + ifdef USEXBLAS +-ZXLASRC = zgesvxx.o zgerfsx.o zla_gerfsx_extended.o zla_geamv.o \ +- zla_gercond_c.o zla_gercond_x.o zla_gerpvgrw.o zsysvxx.o zsyrfsx.o \ +- zla_syrfsx_extended.o zla_syamv.o zla_syrcond_c.o zla_syrcond_x.o \ +- zla_syrpvgrw.o zposvxx.o zporfsx.o zla_porfsx_extended.o \ +- zla_porcond_c.o zla_porcond_x.o zla_porpvgrw.o zgbsvxx.o zgbrfsx.o \ +- zla_gbrfsx_extended.o zla_gbamv.o zla_gbrcond_c.o zla_gbrcond_x.o \ +- zla_gbrpvgrw.o zhesvxx.o zherfsx.o zla_herfsx_extended.o \ +- zla_heamv.o zla_hercond_c.o zla_hercond_x.o zla_herpvgrw.o \ +- zla_lin_berr.o zlarscl2.o zlascl2.o zla_wwaddw.o ++ZXLASRC = zgesvxx.$(SUFFIX) zgerfsx.$(SUFFIX) zla_gerfsx_extended.$(SUFFIX) zla_geamv.$(SUFFIX) \ ++ zla_gercond_c.$(SUFFIX) zla_gercond_x.$(SUFFIX) zla_gerpvgrw.$(SUFFIX) zsysvxx.$(SUFFIX) zsyrfsx.$(SUFFIX) \ ++ zla_syrfsx_extended.$(SUFFIX) zla_syamv.$(SUFFIX) zla_syrcond_c.$(SUFFIX) zla_syrcond_x.$(SUFFIX) \ ++ zla_syrpvgrw.$(SUFFIX) zposvxx.$(SUFFIX) zporfsx.$(SUFFIX) zla_porfsx_extended.$(SUFFIX) \ ++ zla_porcond_c.$(SUFFIX) zla_porcond_x.$(SUFFIX) zla_porpvgrw.$(SUFFIX) zgbsvxx.$(SUFFIX) zgbrfsx.$(SUFFIX) \ ++ zla_gbrfsx_extended.$(SUFFIX) zla_gbamv.$(SUFFIX) zla_gbrcond_c.$(SUFFIX) zla_gbrcond_x.$(SUFFIX) \ ++ zla_gbrpvgrw.$(SUFFIX) zhesvxx.$(SUFFIX) zherfsx.$(SUFFIX) zla_herfsx_extended.$(SUFFIX) \ ++ zla_heamv.$(SUFFIX) zla_hercond_c.$(SUFFIX) zla_hercond_x.$(SUFFIX) zla_herpvgrw.$(SUFFIX) \ ++ zla_lin_berr.$(SUFFIX) zlarscl2.$(SUFFIX) zlascl2.$(SUFFIX) zla_wwaddw.$(SUFFIX) + endif + + ALLOBJ = $(SLASRC) $(DLASRC) $(DSLASRC) $(CLASRC) $(ZLASRC) $(ZCLASRC) \ + $(SCLAUX) $(DZLAUX) $(ALLAUX) + ++ALLOBJ_P = $(ALLOBJ:.$(SUFFIX)=.$(PSUFFIX)) ++ + ifdef USEXBLAS + ALLXOBJ = $(SXLASRC) $(DXLASRC) $(CXLASRC) $(ZXLASRC) + endif + + all: ../$(LAPACKLIB) + ++lapack_prof: ../$(LAPACKLIB_P) ++ + ../$(LAPACKLIB): $(ALLOBJ) $(ALLXOBJ) + $(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ) $(ALLXOBJ) + $(RANLIB) $@ + ++../$(LAPACKLIB_P): $(ALLOBJ_P) ++ $(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ_P) ++ $(RANLIB) $@ ++ + single: $(SLASRC) $(DSLASRC) $(SXLASRC) $(SCLAUX) $(ALLAUX) + $(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(SLASRC) $(DSLASRC) \ + $(SXLASRC) $(SCLAUX) $(ALLAUX) $(ALLXAUX) +@@ -451,15 +459,24 @@ + @FRC=$(FRC) + + clean: +- rm -f *.o ++ rm -f *.$(SUFFIX) *.$(PSUFFIX) + +-.f.o: ++%.$(SUFFIX): %.f + $(FORTRAN) $(OPTS) -c $< -o $@ + +-slaruv.o: slaruv.f ; $(FORTRAN) $(NOOPT) -c $< -o $@ +-dlaruv.o: dlaruv.f ; $(FORTRAN) $(NOOPT) -c $< -o $@ +-sla_wwaddw.o: sla_wwaddw.f ; $(FORTRAN) $(NOOPT) -c $< -o $@ +-dla_wwaddw.o: dla_wwaddw.f ; $(FORTRAN) $(NOOPT) -c $< -o $@ +-cla_wwaddw.o: cla_wwaddw.f ; $(FORTRAN) $(NOOPT) -c $< -o $@ +-zla_wwaddw.o: zla_wwaddw.f ; $(FORTRAN) $(NOOPT) -c $< -o $@ ++%.$(PSUFFIX): %.f ++ $(FORTRAN) $(POPTS) -c $< -o $@ + ++slaruv.$(SUFFIX): slaruv.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@ ++dlaruv.$(SUFFIX): dlaruv.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@ ++sla_wwaddw.$(SUFFIX): sla_wwaddw.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@ ++dla_wwaddw.$(SUFFIX): dla_wwaddw.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@ ++cla_wwaddw.$(SUFFIX): cla_wwaddw.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@ ++zla_wwaddw.$(SUFFIX): zla_wwaddw.f ; $(FORTRAN) $(NOOPT) -O0 -c $< -o $@ ++ ++slaruv.$(PSUFFIX): slaruv.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@ ++dlaruv.$(PSUFFIX): dlaruv.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@ ++sla_wwaddw.$(PSUFFIX): sla_wwaddw.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@ ++dla_wwaddw.$(PSUFFIX): dla_wwaddw.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@ ++cla_wwaddw.$(PSUFFIX): cla_wwaddw.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@ ++zla_wwaddw.$(PSUFFIX): zla_wwaddw.f ; $(FORTRAN) $(PNOOPT) -O0 -c $< -o $@ +diff -ruN lapack-3.4.1.old/TESTING/EIG/Makefile lapack-3.4.1/TESTING/EIG/Makefile +--- lapack-3.4.1.old/TESTING/EIG/Makefile 2011-09-26 23:52:31 +0200 ++++ lapack-3.4.1/TESTING/EIG/Makefile 2012-04-22 21:41:45 +0200 +@@ -78,7 +78,7 @@ + cget35.o cget36.o cget37.o cget38.o cget51.o cget52.o \ + cget54.o cglmts.o cgqrts.o cgrqts.o cgsvts.o \ + chbt21.o chet21.o chet22.o chpt21.o chst01.o \ +- clarfy.o clarhs.o clatm4.o clctes.o clctsx.o clsets.o csbmv.o \ ++ clarfy.o clarhs.o clatm4.o clctes.o clctsx.o clsets.o \ + csgt01.o cslect.o \ + cstt21.o cstt22.o cunt01.o cunt03.o + +@@ -115,7 +115,7 @@ + zget35.o zget36.o zget37.o zget38.o zget51.o zget52.o \ + zget54.o zglmts.o zgqrts.o zgrqts.o zgsvts.o \ + zhbt21.o zhet21.o zhet22.o zhpt21.o zhst01.o \ +- zlarfy.o zlarhs.o zlatm4.o zlctes.o zlctsx.o zlsets.o zsbmv.o \ ++ zlarfy.o zlarhs.o zlatm4.o zlctes.o zlctsx.o zlsets.o \ + zsgt01.o zslect.o \ + zstt21.o zstt22.o zunt01.o zunt03.o + +@@ -129,22 +129,22 @@ + ../xeigtsts: $(SEIGTST) $(SCIGTST) $(AEIGTST) ../../$(LAPACKLIB); \ + $(LOADER) $(LOADOPTS) -o xeigtsts \ + $(SEIGTST) $(SCIGTST) $(AEIGTST) ../../$(TMGLIB) \ +- ../../$(LAPACKLIB) $(BLASLIB) && mv xeigtsts $@ ++ ../../$(LAPACKLIB) $(BLASLIB) $(CEXTRALIB) && mv xeigtsts $@ + + ../xeigtstc: $(CEIGTST) $(SCIGTST) $(AEIGTST) ../../$(LAPACKLIB); \ + $(LOADER) $(LOADOPTS) -o xeigtstc \ + $(CEIGTST) $(SCIGTST) $(AEIGTST) ../../$(TMGLIB) \ +- ../../$(LAPACKLIB) $(BLASLIB) && mv xeigtstc $@ ++ ../../$(LAPACKLIB) $(BLASLIB) $(CEXTRALIB) && mv xeigtstc $@ + + ../xeigtstd: $(DEIGTST) $(DZIGTST) $(AEIGTST) ../../$(LAPACKLIB); \ + $(LOADER) $(LOADOPTS) -o xeigtstd \ + $(DEIGTST) $(DZIGTST) $(AEIGTST) ../../$(TMGLIB) \ +- ../../$(LAPACKLIB) $(BLASLIB) && mv xeigtstd $@ ++ ../../$(LAPACKLIB) $(BLASLIB) $(CEXTRALIB) && mv xeigtstd $@ + + ../xeigtstz: $(ZEIGTST) $(DZIGTST) $(AEIGTST) ../../$(LAPACKLIB); \ + $(LOADER) $(LOADOPTS) -o xeigtstz \ + $(ZEIGTST) $(DZIGTST) $(AEIGTST) ../../$(TMGLIB) \ +- ../../$(LAPACKLIB) $(BLASLIB) && mv xeigtstz $@ ++ ../../$(LAPACKLIB) $(BLASLIB) $(CEXTRALIB) && mv xeigtstz $@ + + $(AEIGTST): $(FRC) + $(SCIGTST): $(FRC) +diff -ruN lapack-3.4.1.old/TESTING/LIN/Makefile lapack-3.4.1/TESTING/LIN/Makefile +--- lapack-3.4.1.old/TESTING/LIN/Makefile 2012-04-02 21:06:36 +0200 ++++ lapack-3.4.1/TESTING/LIN/Makefile 2012-04-22 21:43:30 +0200 +@@ -109,7 +109,7 @@ + cqpt01.o cqrt01.o cqrt01p.o cqrt02.o cqrt03.o cqrt11.o \ + cqrt12.o cqrt13.o cqrt14.o cqrt15.o cqrt16.o \ + cqrt17.o crqt01.o crqt02.o crqt03.o crzt01.o crzt02.o \ +- csbmv.o cspt01.o \ ++ cspt01.o \ + cspt02.o cspt03.o csyt01.o csyt02.o csyt03.o \ + ctbt02.o ctbt03.o ctbt05.o ctbt06.o ctpt01.o \ + ctpt02.o ctpt03.o ctpt05.o ctpt06.o ctrt01.o \ +@@ -188,7 +188,7 @@ + zqpt01.o zqrt01.o zqrt01p.o zqrt02.o zqrt03.o zqrt11.o \ + zqrt12.o zqrt13.o zqrt14.o zqrt15.o zqrt16.o \ + zqrt17.o zrqt01.o zrqt02.o zrqt03.o zrzt01.o zrzt02.o \ +- zsbmv.o zspt01.o \ ++ zspt01.o \ + zspt02.o zspt03.o zsyt01.o zsyt02.o zsyt03.o \ + ztbt02.o ztbt03.o ztbt05.o ztbt06.o ztpt01.o \ + ztpt02.o ztpt03.o ztpt05.o ztpt06.o ztrt01.o \ +@@ -214,7 +214,7 @@ + zdrvab.o zdrvac.o zerrab.o zerrac.o zget08.o \ + alaerh.o alahd.o aladhd.o alareq.o \ + chkxer.o zget02.o zlarhs.o zlatb4.o \ +- zsbmv.o xerbla.o zpot06.o zlaipd.o ++ xerbla.o zpot06.o zlaipd.o + + SLINTSTRFP = schkrfp.o sdrvrfp.o sdrvrf1.o sdrvrf2.o sdrvrf3.o sdrvrf4.o serrrfp.o \ + slatb4.o slarhs.o sget04.o spot01.o spot03.o spot02.o \ +@@ -225,11 +225,11 @@ + chkxer.o xerbla.o alaerh.o aladhd.o alahd.o alasvm.o + + CLINTSTRFP = cchkrfp.o cdrvrfp.o cdrvrf1.o cdrvrf2.o cdrvrf3.o cdrvrf4.o cerrrfp.o \ +- claipd.o clatb4.o clarhs.o csbmv.o cget04.o cpot01.o cpot03.o cpot02.o \ ++ claipd.o clatb4.o clarhs.o cget04.o cpot01.o cpot03.o cpot02.o \ + chkxer.o xerbla.o alaerh.o aladhd.o alahd.o alasvm.o + + ZLINTSTRFP = zchkrfp.o zdrvrfp.o zdrvrf1.o zdrvrf2.o zdrvrf3.o zdrvrf4.o zerrrfp.o \ +- zlatb4.o zlaipd.o zlarhs.o zsbmv.o zget04.o zpot01.o zpot03.o zpot02.o \ ++ zlatb4.o zlaipd.o zlarhs.o zget04.o zpot01.o zpot03.o zpot02.o \ + chkxer.o xerbla.o alaerh.o aladhd.o alahd.o alasvm.o + + all: single double complex complex16 proto-single proto-double proto-complex proto-complex16 +@@ -246,43 +246,43 @@ + + xlintsts : $(ALINTST) $(SLINTST) $(SCLNTST) ../../$(LAPACKLIB) + $(LOADER) $(LOADOPTS) $(ALINTST) $(SCLNTST) $(SLINTST) \ +- ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@ ++ ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@ $(CEXTRALIB) + + xlintstc : $(ALINTST) $(CLINTST) $(SCLNTST) ../../$(LAPACKLIB) + $(LOADER) $(LOADOPTS) $(ALINTST) $(SCLNTST) $(CLINTST) \ +- ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@ ++ ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@ $(CEXTRALIB) + + xlintstd : $(ALINTST) $(DLINTST) $(DZLNTST) ../../$(LAPACKLIB) + $(LOADER) $(LOADOPTS) $^ \ +- ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@ ++ ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@ $(CEXTRALIB) + + xlintstz : $(ALINTST) $(ZLINTST) $(DZLNTST) ../../$(LAPACKLIB) + $(LOADER) $(LOADOPTS) $(ALINTST) $(DZLNTST) $(ZLINTST) \ +- ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@ ++ ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@ $(CEXTRALIB) + + xlintstds : $(DSLINTST) ../../$(LAPACKLIB) + $(LOADER) $(LOADOPTS) $(DSLINTST) \ +- ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ ++ ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ $(CEXTRALIB) + + xlintstzc : $(ZCLINTST) ../../$(LAPACKLIB) + $(LOADER) $(LOADOPTS) $(ZCLINTST) \ +- ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ ++ ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ $(CEXTRALIB) + + xlintstrfs : $(SLINTSTRFP) ../../$(LAPACKLIB) + $(LOADER) $(LOADOPTS) $(SLINTSTRFP) \ +- ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ ++ ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ $(CEXTRALIB) + + xlintstrfd : $(DLINTSTRFP) ../../$(LAPACKLIB) + $(LOADER) $(LOADOPTS) $(DLINTSTRFP) \ +- ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ ++ ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ $(CEXTRALIB) + + xlintstrfc : $(CLINTSTRFP) ../../$(LAPACKLIB) + $(LOADER) $(LOADOPTS) $(CLINTSTRFP) \ +- ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ ++ ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ $(CEXTRALIB) + + xlintstrfz : $(ZLINTSTRFP) ../../$(LAPACKLIB) + $(LOADER) $(LOADOPTS) $(ZLINTSTRFP) \ +- ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ ++ ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@ $(CEXTRALIB) + + ../xlintsts: xlintsts + mv xlintsts $@ +diff -ruN lapack-3.4.1.old/lapacke/src/Makefile lapack-3.4.1/lapacke/src/Makefile +--- lapack-3.4.1.old/lapacke/src/Makefile 2012-04-02 22:16:32 +0200 ++++ lapack-3.4.1/lapacke/src/Makefile 2012-04-22 21:38:38 +0200 +@@ -2040,19 +2040,21 @@ + lapacke_zlagsy.o \ + lapacke_zlagsy_work.o + +-ALLOBJ = $(SRC_OBJ) $(MATGEN_OBJ) ++OBJ_FILES := $(SRC_OBJ) + +-ifdef USEXBLAS +-ALLXOBJ = $(SXLASRC) $(DXLASRC) $(CXLASRC) $(ZXLASRC) ++ifdef LAPACKE_EXTENDED ++OBJ_FILES += $(SXLASRC) $(DXLASRC) $(CXLASRC) $(ZXLASRC) + endif + +- +-OBJ_FILES := $(C_FILES:.o=.o) ++ifdef LAPACKE_TESTING ++OBJ_FILES += $(MATGEN_OBJ) ++endif + + all: ../../$(LAPACKELIB) + +-../../$(LAPACKELIB): $(ALLOBJ) $(ALLXOBJ) +- $(ARCH) $(ARCHFLAGS) ../../$(LAPACKELIB) $(ALLOBJ) $(ALLXOBJ) ++../../$(LAPACKELIB): $(OBJ_FILES) ++# http://hackage.haskell.org/trac/gtk2hs/ticket/1146 ++ echo $(OBJ_FILES) | xargs --max-args=100 $(ARCH) $(ARCHFLAGS) ../../$(LAPACKELIB) + $(RANLIB) ../../$(LAPACKELIB) + + .c.o: From 001c2c322b0cdbed6befd09d4e747c2be6392c52 Mon Sep 17 00:00:00 2001 From: Xianyi Zhang Date: Mon, 23 Apr 2012 17:38:54 +0800 Subject: [PATCH 09/21] Refs #94. Auto-detecting Intel Xeon E7 Westmere-EX. --- cpuid_x86.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cpuid_x86.c b/cpuid_x86.c index e7aa07b44..7b36fdbdf 100644 --- a/cpuid_x86.c +++ b/cpuid_x86.c @@ -990,6 +990,9 @@ int get_cpuname(void){ case 13: //Intel Core i7-3000 / Xeon E5 (Sandy Bridge) return CPUTYPE_NEHALEM; + case 15: + //Xeon Processor E7 (Westmere-EX) + return CPUTYPE_NEHALEM; } break; } @@ -1325,6 +1328,9 @@ int get_coretype(void){ case 13: //Intel Core i7-3000 / Xeon E5 (Sandy Bridge) return CORE_NEHALEM; + case 15: + //Xeon Processor E7 (Westmere-EX) + return CORE_NEHALEM; } break; } From f93318a6c818c969a321bc47d1c8fad06d60429b Mon Sep 17 00:00:00 2001 From: Zaheer Chothia Date: Sun, 22 Apr 2012 21:16:03 +0200 Subject: [PATCH 10/21] Refs #95 cblas: compatibility for compilers without C99 complex number support (e.g. Visual Studio) --- Makefile.install | 2 +- cblas.h | 16 ++++++++-------- common.h | 22 ++++++++++++++++++++++ openblas_config_template.h | 31 +++++++++++++++++++++++++++++++ 4 files changed, 62 insertions(+), 9 deletions(-) diff --git a/Makefile.install b/Makefile.install index 6ecfd91ed..62ceda986 100644 --- a/Makefile.install +++ b/Makefile.install @@ -23,7 +23,7 @@ install : lib.grd @cat config_last.h >> $(OPENBLAS_INCLUDE_DIR)/openblas_config.h @echo \#define VERSION \" OpenBLAS $(VERSION) \" >> $(OPENBLAS_INCLUDE_DIR)/openblas_config.h @cat openblas_config_template.h >> $(OPENBLAS_INCLUDE_DIR)/openblas_config.h - @echo \#endif >> $(OPENBLAS_INCLUDE_DIR)/openblas_config.h + @echo \#endif \/\* OPENBLAS_CONFIG_H \*\/ >> $(OPENBLAS_INCLUDE_DIR)/openblas_config.h @echo Generating f77blas.h in $(OPENBLAS_INCLUDE_DIR) @echo \#ifndef OPENBLAS_F77BLAS_H > $(OPENBLAS_INCLUDE_DIR)/f77blas.h diff --git a/cblas.h b/cblas.h index 34adc5e99..f3708a994 100644 --- a/cblas.h +++ b/cblas.h @@ -22,15 +22,15 @@ double cblas_dsdot (blasint n, float *x, blasint incx, float *y, blasint incy); float cblas_sdot(blasint n, float *x, blasint incx, float *y, blasint incy); double cblas_ddot(blasint n, double *x, blasint incx, double *y, blasint incy); -float _Complex cblas_cdotu(blasint n, float *x, blasint incx, float *y, blasint incy); -float _Complex cblas_cdotc(blasint n, float *x, blasint incx, float *y, blasint incy); -double _Complex cblas_zdotu(blasint n, double *x, blasint incx, double *y, blasint incy); -double _Complex cblas_zdotc(blasint n, double *x, blasint incx, double *y, blasint incy); +openblas_complex_float cblas_cdotu(blasint n, float *x, blasint incx, float *y, blasint incy); +openblas_complex_float cblas_cdotc(blasint n, float *x, blasint incx, float *y, blasint incy); +openblas_complex_double cblas_zdotu(blasint n, double *x, blasint incx, double *y, blasint incy); +openblas_complex_double cblas_zdotc(blasint n, double *x, blasint incx, double *y, blasint incy); -void cblas_cdotu_sub(blasint n, float *x, blasint incx, float *y, blasint incy, float _Complex *ret); -void cblas_cdotc_sub(blasint n, float *x, blasint incx, float *y, blasint incy, float _Complex *ret); -void cblas_zdotu_sub(blasint n, double *x, blasint incx, double *y, blasint incy, double _Complex *ret); -void cblas_zdotc_sub(blasint n, double *x, blasint incx, double *y, blasint incy, double _Complex *ret); +void cblas_cdotu_sub(blasint n, float *x, blasint incx, float *y, blasint incy, openblas_complex_float *ret); +void cblas_cdotc_sub(blasint n, float *x, blasint incx, float *y, blasint incy, openblas_complex_float *ret); +void cblas_zdotu_sub(blasint n, double *x, blasint incx, double *y, blasint incy, openblas_complex_double *ret); +void cblas_zdotc_sub(blasint n, double *x, blasint incx, double *y, blasint incy, openblas_complex_double *ret); float cblas_sasum (blasint n, float *x, blasint incx); double cblas_dasum (blasint n, double *x, blasint incx); diff --git a/common.h b/common.h index e848f33f3..c6d30ddcf 100644 --- a/common.h +++ b/common.h @@ -374,6 +374,28 @@ typedef int blasint; #endif #endif +#ifndef ASSEMBLER +#ifndef NOINCLUDE +/* Inclusion of a standard header file is needed for definition of __STDC_* + predefined macros with some compilers (e.g. GCC 4.7 on Linux). This occurs + as a side effect of including either or . */ +#include +#endif // NOINCLUDE + +/* C99 supports complex floating numbers natively, which GCC also offers as an + extension since version 3.0. If neither are available, use a compatible + structure as fallback (see Clause 6.2.5.13 of the C99 standard). */ +#if defined(__STDC_IEC_559_COMPLEX__) || __STDC_VERSION__ >= 199901L || __GNUC__ >= 3 + #define OPENBLAS_COMPLEX_C99 + typedef float _Complex openblas_complex_float; + typedef double _Complex openblas_complex_double; +#else + #define OPENBLAS_COMPLEX_STRUCT + typedef struct { float real, imag; } openblas_complex_float; + typedef struct { double real, imag; } openblas_complex_double; +#endif +#endif // ASSEMBLER + #ifndef IFLUSH #define IFLUSH #endif diff --git a/openblas_config_template.h b/openblas_config_template.h index 8bf972593..caeccf026 100644 --- a/openblas_config_template.h +++ b/openblas_config_template.h @@ -39,3 +39,34 @@ typedef int blasint; #define FLOATRET float #endif #endif + +/* Inclusion of a standard header file is needed for definition of __STDC_* + predefined macros with some compilers (e.g. GCC 4.7 on Linux). This occurs + as a side effect of including either or . */ +#include + +/* C99 supports complex floating numbers natively, which GCC also offers as an + extension since version 3.0. If neither are available, use a compatible + structure as fallback (see Clause 6.2.5.13 of the C99 standard). */ +#if defined(__STDC_IEC_559_COMPLEX__) || __STDC_VERSION__ >= 199901L || __GNUC__ >= 3 + #define OPENBLAS_COMPLEX_C99 + #include + typedef float _Complex openblas_complex_float; + typedef double _Complex openblas_complex_double; + #define openblas_make_complex_float(real, imag) ((real) + ((imag) * _Complex_I)) + #define openblas_make_complex_double(real, imag) ((real) + ((imag) * _Complex_I)) + #define openblas_complex_float_real(z) (creal(z)) + #define openblas_complex_float_imag(z) (cimag(z)) + #define openblas_complex_double_real(z) (creal(z)) + #define openblas_complex_double_imag(z) (cimag(z)) +#else + #define OPENBLAS_COMPLEX_STRUCT + typedef struct { float real, imag; } openblas_complex_float; + typedef struct { double real, imag; } openblas_complex_double; + #define openblas_make_complex_float(real, imag) {(real), (imag)} + #define openblas_make_complex_double(real, imag) {(real), (imag)} + #define openblas_complex_float_real(z) ((z).real) + #define openblas_complex_float_imag(z) ((z).imag) + #define openblas_complex_double_real(z) ((z).real) + #define openblas_complex_double_imag(z) ((z).imag) +#endif From 9037782a9c42ec1cfd6b39233424bd74f6830bfe Mon Sep 17 00:00:00 2001 From: Zhang Xianyi Date: Tue, 24 Apr 2012 12:03:08 +0800 Subject: [PATCH 11/21] Fixed the LAPACKE building bug on Mac OSX. --- patch.for_lapack-3.4.1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patch.for_lapack-3.4.1 b/patch.for_lapack-3.4.1 index e06129202..79c74aad2 100644 --- a/patch.for_lapack-3.4.1 +++ b/patch.for_lapack-3.4.1 @@ -926,7 +926,7 @@ diff -ruN lapack-3.4.1.old/lapacke/src/Makefile lapack-3.4.1/lapacke/src/Makefil - $(ARCH) $(ARCHFLAGS) ../../$(LAPACKELIB) $(ALLOBJ) $(ALLXOBJ) +../../$(LAPACKELIB): $(OBJ_FILES) +# http://hackage.haskell.org/trac/gtk2hs/ticket/1146 -+ echo $(OBJ_FILES) | xargs --max-args=100 $(ARCH) $(ARCHFLAGS) ../../$(LAPACKELIB) ++ echo $(OBJ_FILES) | xargs -n 100 $(ARCH) $(ARCHFLAGS) ../../$(LAPACKELIB) $(RANLIB) ../../$(LAPACKELIB) .c.o: From b2bdb6f7c4901aa63f65dfd74448cdca40faa7a4 Mon Sep 17 00:00:00 2001 From: Xianyi Zhang Date: Thu, 26 Apr 2012 15:39:03 +0800 Subject: [PATCH 12/21] Automatically download CUnit 2.1.2-2 version from SF.net. --- utest/Makefile | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/utest/Makefile b/utest/Makefile index e7c5f3412..ee9aa6286 100644 --- a/utest/Makefile +++ b/utest/Makefile @@ -3,20 +3,50 @@ TOPDIR = .. include $(TOPDIR)/Makefile.system TARGET=openblas_utest -CUNIT_LIB=/usr/local/lib/libcunit.a + +CUNIT_URL=http://downloads.sourceforge.net/project/cunit/CUnit/2.1-2/CUnit-2.1-2-src.tar.bz2 +CUNIT_DIR=$(CURDIR)/CUnit-2.1-2 + +CUNIT_LIB=$(CUNIT_DIR)/lib/libcunit.a + +CFLAGS+=-I$(CUNIT_DIR)/include OBJS=main.o test_rot.o test_swap.o test_axpy.o test_dotu.o test_rotmg.o test_dsdot.o all : run_test -$(TARGET): $(OBJS) - $(FC) -o $@ $^ ../$(LIBNAME) $(CUNIT_LIB) $(EXTRALIB) +CUnit-2.1-2-src.tar.bz2: +ifeq ($(OSNAME), Darwin) + curl -O $(CUNIT_URL) +else + wget $(CUNIT_URL) +endif + +$(CUNIT_DIR): CUnit-2.1-2-src.tar.bz2 + @if test `$(MD5SUM) CUnit-2.1-2-src.tar.bz2 | $(AWK) '{print $$1}'` = 31c62bd7a65007737ba28b7aafc44d3a; then \ + echo $(TAR) xjf $< ;\ + $(TAR) xjf $< ; \ + else \ + rm -rf $(CUNIT_DIR) ;\ + echo " Cannot download CUnit-2.1-2-src.tar.bz2 or the MD5 check sum is wrong (Please use orignal)."; \ + exit 1; \ + fi + + +$(CUNIT_LIB): $(CUNIT_DIR) + (cd $(CUNIT_DIR); CC=$(CC) CFLAGS="$(CFLAGS)" ./configure --prefix=$(CUNIT_DIR)) + $(MAKE) -C $(CUNIT_DIR) + $(MAKE) -C $(CUNIT_DIR) install + +$(TARGET): $(CUNIT_LIB) $(OBJS) + $(CC) $(CFLAGS) -o $@ $^ ../$(LIBNAME) $(CUNIT_LIB) $(EXTRALIB) run_test: $(TARGET) ./$(TARGET) clean: - rm -f *.o $(TARGET) + -rm -f *.o $(TARGET) + -rm -rf $(CUNIT_DIR) libs: From 08570c42485c3a62ca3d344406d75047ba4ee296 Mon Sep 17 00:00:00 2001 From: Xianyi Zhang Date: Thu, 26 Apr 2012 15:54:15 +0800 Subject: [PATCH 13/21] Fixed the utest bug for drotmg. --- utest/test_rotmg.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/utest/test_rotmg.c b/utest/test_rotmg.c index e51e6b299..9a1a3d084 100644 --- a/utest/test_rotmg.c +++ b/utest/test_rotmg.c @@ -38,12 +38,18 @@ void test_drotmg() double te_d2, tr_d2; double te_x1, tr_x1; double te_y1, tr_y1; - double te_param[5],tr_param[5]; + double te_param[5]; + double tr_param[5]; int i=0; te_d1= tr_d1=0.21149573940783739; te_d2= tr_d2=0.046892057172954082; te_x1= tr_x1=-0.42272687517106533; te_y1= tr_y1=0.42211309121921659; + + for(i=0; i<5; i++){ + te_param[i]=tr_param[i]=0.0; + } + //OpenBLAS BLASFUNC(drotmg)(&te_d1, &te_d2, &te_x1, &te_y1, te_param); //reference From 5656cca4f320f72e3e711118d420721c1821f3a1 Mon Sep 17 00:00:00 2001 From: Xianyi Zhang Date: Thu, 26 Apr 2012 16:17:17 +0800 Subject: [PATCH 14/21] Added the test case for samax. --- common_reference.h | 2 ++ utest/Makefile | 2 +- utest/common_utest.h | 2 ++ utest/main.c | 2 ++ 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/common_reference.h b/common_reference.h index 4cc4be4fd..be151e0d6 100644 --- a/common_reference.h +++ b/common_reference.h @@ -63,5 +63,7 @@ double _Complex BLASFUNC_REF(zdotc) (blasint *, double *, blasint *, double void BLASFUNC_REF(drotmg)(double *, double *, double *, double *, double *); double BLASFUNC_REF(dsdot)(blasint *, float *, blasint *, float *, blasint*); + +FLOATRET BLASFUNC_REF(samax) (blasint *, float *, blasint *); #endif diff --git a/utest/Makefile b/utest/Makefile index ee9aa6286..3d120f5b3 100644 --- a/utest/Makefile +++ b/utest/Makefile @@ -11,7 +11,7 @@ CUNIT_LIB=$(CUNIT_DIR)/lib/libcunit.a CFLAGS+=-I$(CUNIT_DIR)/include -OBJS=main.o test_rot.o test_swap.o test_axpy.o test_dotu.o test_rotmg.o test_dsdot.o +OBJS=main.o test_rot.o test_swap.o test_axpy.o test_dotu.o test_rotmg.o test_dsdot.o test_amax.o all : run_test diff --git a/utest/common_utest.h b/utest/common_utest.h index 1332ef6ab..e57ae0556 100644 --- a/utest/common_utest.h +++ b/utest/common_utest.h @@ -61,4 +61,6 @@ void test_drotmg(void); void test_dsdot_n_1(void); +void test_samax(void); + #endif diff --git a/utest/main.c b/utest/main.c index 135709507..ece94dd71 100644 --- a/utest/main.c +++ b/utest/main.c @@ -58,6 +58,8 @@ CU_TestInfo test_level1[]={ {"Testing drotmg",test_drotmg}, {"Testing dsdot with n == 1",test_dsdot_n_1}, + + {"Testing samax", test_samax}, CU_TEST_INFO_NULL, }; From 14428af879c0e589506f75cd13b57573d48126a7 Mon Sep 17 00:00:00 2001 From: Xianyi Zhang Date: Thu, 26 Apr 2012 16:40:44 +0800 Subject: [PATCH 15/21] Adde the mising test_amax.c file. --- utest/test_amax.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 utest/test_amax.c diff --git a/utest/test_amax.c b/utest/test_amax.c new file mode 100644 index 000000000..8d163853a --- /dev/null +++ b/utest/test_amax.c @@ -0,0 +1,46 @@ +/***************************************************************************** +Copyright (c) 2011-2012, Lab of Parallel Software and Computational Science,ICSAS +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. 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. + 3. Neither the name of the ISCAS 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. + +**********************************************************************************/ + +#include "common_utest.h" + +void test_samax() +{ + int N=3, inc=1; + float te_max=0.0, tr_max=0.0; + float x[]={-1.1, 2.2, -3.3}; + + te_max=BLASFUNC(samax)(&N, x, &inc); + + tr_max=BLASFUNC_REF(samax)(&N, x, &inc); + + CU_ASSERT_DOUBLE_EQUAL(te_max, tr_max, CHECK_EPS); +} From 5d657c6e67c1588aad4c9f44633df90acc4a4973 Mon Sep 17 00:00:00 2001 From: Xianyi Zhang Date: Thu, 26 Apr 2012 16:50:57 +0800 Subject: [PATCH 16/21] Fixed #96 a SEGFAULT bug in samax on x86. --- kernel/x86/amax_sse.S | 1 - 1 file changed, 1 deletion(-) diff --git a/kernel/x86/amax_sse.S b/kernel/x86/amax_sse.S index 65792cf45..05d21a7eb 100644 --- a/kernel/x86/amax_sse.S +++ b/kernel/x86/amax_sse.S @@ -495,7 +495,6 @@ ALIGN_4 .L999: - RESTOREREGISTERS subl $8, %esp movss %xmm0, (%esp) From 006200c9a4310abd9f2d53d5974de942dea16ba4 Mon Sep 17 00:00:00 2001 From: Zhang Xianyi Date: Fri, 27 Apr 2012 09:55:21 +0800 Subject: [PATCH 17/21] Fixed #98 updated MD5 for new LAPACK 3.4.1 version on netlib.org. --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index efc8b33d8..8d78a844b 100644 --- a/Makefile +++ b/Makefile @@ -240,7 +240,7 @@ endif lapack-3.4.1 : lapack-3.4.1.tgz ifndef NOFORTRAN ifndef NO_LAPACK - @if test `$(MD5SUM) lapack-3.4.1.tgz | $(AWK) '{print $$1}'` = d33ace3ac27dc6b4502833ee4dd820db; then \ + @if test `$(MD5SUM) lapack-3.4.1.tgz | $(AWK) '{print $$1}'` = 44c3869c38c8335c2b9c2a8bb276eb55; then \ echo $(TAR) zxf $< ;\ $(TAR) zxf $< && (cd $(NETLIB_LAPACK_DIR); $(PATCH) -p1 < ../patch.for_lapack-3.4.1) ;\ rm -f $(NETLIB_LAPACK_DIR)/lapacke/make.inc ;\ From c8a5d4b86fa0af789eed58b034aec3442b868788 Mon Sep 17 00:00:00 2001 From: Zaheer Chothia Date: Thu, 26 Apr 2012 21:13:18 +0100 Subject: [PATCH 18/21] Refs #99. c_check/f_check: strip quotes from detected flags --- c_check | 2 ++ f_check | 2 ++ 2 files changed, 4 insertions(+) diff --git a/c_check b/c_check index 263efeb3d..6ce5e4cc0 100644 --- a/c_check +++ b/c_check @@ -174,6 +174,8 @@ $linker_a = ""; $link =~ s/\-Y\sP\,/\-Y/g; @flags = split(/[\s\,\n]/, $link); + # remove leading and trailing quotes from each flag. + @flags = map {s/^['"]|['"]$//g; $_} @flags; foreach $flags (@flags) { if ( diff --git a/f_check b/f_check index f5bb5a7f6..93c39ec88 100644 --- a/f_check +++ b/f_check @@ -237,6 +237,8 @@ if ($link ne "") { $link =~ s/\-rpath\s+/\-rpath\@/g; @flags = split(/[\s\,\n]/, $link); + # remove leading and trailing quotes from each flag. + @flags = map {s/^['"]|['"]$//g; $_} @flags; foreach $flags (@flags) { if ( From d02171b494bb26ceda4e894b49c047556c82450a Mon Sep 17 00:00:00 2001 From: Zhang Xianyi Date: Fri, 27 Apr 2012 11:15:24 +0800 Subject: [PATCH 19/21] Fixed the bug about NO_CBLAS=1 disabled exporting LAPACKE functions in shared library. --- exports/gensymbol | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/exports/gensymbol b/exports/gensymbol index 702e047c1..ac586630a 100644 --- a/exports/gensymbol +++ b/exports/gensymbol @@ -2468,11 +2468,17 @@ if ($ARGV[1] eq "ia64"){ @underscore_objs = (@underscore_objs, @gemm3mobjs); }; if ($ARGV[1] eq "MIPS"){ @underscore_objs = (@underscore_objs, @gemm3mobjs); }; +if ($ARGV[4] == 0) { + @no_underscore_objs = (@cblasobjs); +}else{ + #NO_CBLAS=1 + @no_underscore_objs = (); +} if ($ARGV[6] == 1) { #NO_LAPACKE=1 - @no_underscore_objs = (@cblasobjs); + @no_underscore_objs = (@no_underscore_objs); } else { - @no_underscore_objs = (@cblasobjs, @lapackeobjs); + @no_underscore_objs = (@no_underscore_objs, @lapackeobjs); } @linuxobjs = ('__strtol_internal', 'exit', 'free', 'getenv', 'malloc', @@ -2495,11 +2501,11 @@ if ($ARGV[0] eq "linux"){ print $objs, $bu, "\n"; } - if ($ARGV[4] == 0) { +# if ($ARGV[4] == 0) { foreach $objs (@no_underscore_objs) { print $objs, "\n"; } - } +# } foreach $objs (@linuxobjs) { print $objs, "\n"; @@ -2512,11 +2518,11 @@ if ($ARGV[0] eq "osx"){ print "_", $objs, $bu, "\n"; } - if ($ARGV[4] == 0) { +# if ($ARGV[4] == 0) { foreach $objs (@no_underscore_objs) { print "_", $objs, "\n"; } - } +# } exit(0); } @@ -2525,11 +2531,11 @@ if ($ARGV[0] eq "aix"){ print $objs, $bu, "\n"; } - if ($ARGV[4] == 0) { +# if ($ARGV[4] == 0) { foreach $objs (@no_underscore_objs) { print $objs, "\n"; } - } +# } exit(0); } @@ -2547,12 +2553,12 @@ if ($ARGV[0] eq "win2k"){ $count ++; } - if ($ARGV[4] == 0) { +# if ($ARGV[4] == 0) { foreach $objs (@no_underscore_objs) { print "\t",$objs,"=$objs"," \@", $count, "\n"; $count ++; } - } +# } exit(0); } @@ -2615,11 +2621,11 @@ if ($ARGV[0] eq "linktest"){ foreach $objs (@underscore_objs) { print $objs, $bu, "();\n" if $objs ne "xerbla"; } - if ($ARGV[4] == 0) { +# if ($ARGV[4] == 0) { foreach $objs (@no_underscore_objs) { print $objs, "();\n"; } - } +# } From d48a1d1928f040b42a3ff6c8ea68dcc347d6032e Mon Sep 17 00:00:00 2001 From: Xianyi Zhang Date: Sat, 28 Apr 2012 12:33:56 +0800 Subject: [PATCH 20/21] Fixed #101. Install the missing lapacke header with LAPACK-3.4.1. Thank Zaheer for this patch. --- Makefile.install | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile.install b/Makefile.install index 62ceda986..a74f3d606 100644 --- a/Makefile.install +++ b/Makefile.install @@ -39,6 +39,7 @@ 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_mangling_with_flags.h $(OPENBLAS_INCLUDE_DIR)/lapacke_mangling.h @-cp $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke_utils.h $(OPENBLAS_INCLUDE_DIR)/lapacke_utils.h endif From fcb89ad94ddb5b6103aa341178db17ff9030f4a5 Mon Sep 17 00:00:00 2001 From: Xianyi Zhang Date: Sun, 29 Apr 2012 18:40:24 +0800 Subject: [PATCH 21/21] Refs #91. Updated the doc for 0.1.1 version. --- Changelog.txt | 13 +++++++++++++ Makefile.rule | 2 +- README | 3 ++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index e122300ec..0ed35b0e4 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,4 +1,17 @@ OpenBLAS ChangeLog +==================================================================== +Version 0.1.1 +29-Apr-2012 +common: + * Upgraded LAPACK to 3.4.1 version. (Thank Zaheer Chothia) + * Supported LAPACKE, a C interface to LAPACKE. (Thank Zaheer Chothia) + * Fixed the build bug (MD5 and download) on Mac OSX. + * Auto download CUnit 2.1.2-2 from SF.net with UTEST_CHECK=1. +x86/x86_64: + * Auto-detect Intel Sandy Bridge Core i7-3xxx & Xeon E7 Westmere-EX. + * Test alpha=Nan in dscale. + * Fixed a SEGFAULT bug in samax on x86 windows. + ==================================================================== Version 0.1.0 23-Mar-2012 diff --git a/Makefile.rule b/Makefile.rule index 7a1e845fe..b6cf98a3e 100644 --- a/Makefile.rule +++ b/Makefile.rule @@ -3,7 +3,7 @@ # # This library's version -VERSION = 0.1.0 +VERSION = 0.1.1 # If you set the suffix, the library name will be libopenblas_$(LIBNAMESUFFIX).a # and libopenblas_$(LIBNAMESUFFIX).so. Meanwhile, the soname in shared library diff --git a/README b/README index c8c2c2c55..6372e96bd 100644 --- a/README +++ b/README @@ -2,6 +2,7 @@ OpenBLAS Readme 1.Introduction OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version. OpenBLAS is an open source project supported by Lab of Parallel Software and Computational Science, ISCAS.(http://www.rdcps.ac.cn) +Please read the documents on OpenBLAS wiki pages(http://github.com/xianyi/OpenBLAS/wiki). 2.Intallation Download from project homepage. http://xianyi.github.com/OpenBLAS/ @@ -34,7 +35,7 @@ Additional support CPU: x86_64: Intel Xeon 56xx (Westmere) //Used GotoBLAS2 Nehalem codes. MIPS64: - ICT Loongson 3A //The initial version used GotoBLAS2 MIPS64 kernels. Thus, the performance is not good. + ICT Loongson 3A //Level 3 BLAS subroutines are optimized. 4.Usages Link with libopenblas.a or -lopenblas for shared library.