resync gensymbol with develop
authorMartin Kroeker <martin@ruby.chemie.uni-freiburg.de>
Sat, 6 Aug 2022 07:29:09 +0000 (09:29 +0200)
committerGitHub <noreply@github.com>
Sat, 6 Aug 2022 07:29:09 +0000 (09:29 +0200)
exports/gensymbol
exports/gensymbol.pl [new file with mode: 0644]

index e48b8c2..83222a2 100644 (file)
@@ -1,4 +1,4 @@
-#!/usr/bin/env perl
+#!/bin/sh
 
 # Changelog
 # 2017/09/03 staticfloat
 # 2017/08/01 Saar
 # removed blas_thread_shutdown_
 #
-@blasobjsc = (
-    caxpy,caxpby,ccopy,cdotc,cdotu,cgbmv,cgemm,cgemv,cgerc,cgeru,
-    chbmv,chemm,chemv,cher2,cher2k,cher,cherk,scabs1,scamax,
-    chpmv,chpr2,chpr,crotg,cscal,csrot,csscal,cswap,scamin,scasum,scnrm2,
-    csymm,csyr2k,csyrk,ctbmv,ctbsv,ctpmv,ctpsv,ctrmm,ctrmv,ctrsm,
-    ctrsv,icamax,icamin,cimatcopy,comatcopy,cgeadd,scsum);
-    
-@blasobjsd = (
-    damax,damin,dasum,daxpy,daxpby,dcabs1,dcopy,ddot,dgbmv,dgemm,
-    dgemv,dger,dmax,dmin,dnrm2,drot,drotg,drotm,drotmg,dsbmv,
-    dscal,dsdot,dspmv,dspr2,dimatcopy,domatcopy,
-    dspr,dswap,dsymm,dsymv,dsyr2,dsyr2k,dsyr,dsyrk,dtbmv,dtbsv,
-    dtpmv,dtpsv,dtrmm,dtrmv,dtrsm,dtrsv,
-        idamax,idamin,idmax,idmin,dgeadd,dsum);
-    
-@blasobjss = (
-    isamax,isamin,ismax,ismin,
-    samax,samin,sasum,saxpy, saxpby, 
-    scopy,sdot,sdsdot,sgbmv,sgemm,sgemv,sger,
-    smax,smin,snrm2,simatcopy,somatcopy,
-    srot,srotg,srotm,srotmg,ssbmv,sscal,sspmv,sspr2,sspr,sswap,
-    ssymm,ssymv,ssyr2,ssyr2k,ssyr,ssyrk,stbmv,stbsv,stpmv,stpsv,
-    strmm,strmv,strsm,strsv, sgeadd,ssum);
-     
-@blasobjsz = (
-    izamax,izamin,,
-    zaxpy,zaxpby,zcopy,zdotc,zdotu,zdrot,
-    zdscal,zgbmv,zgemm,zgemv,zgerc,zgeru,
-    zhbmv,zhemm,zhemv,zher2,zher2k,zher,zherk,zhpmv,zhpr2,
-    zhpr,zrotg,zscal,zswap,zsymm,zsyr2k,zsyrk,ztbmv,
-    ztbsv,ztpmv,ztpsv,ztrmm,ztrmv,ztrsm,ztrsv,
-    zomatcopy, zimatcopy,dzamax,dzamin,dzasum,dznrm2,
-    zgeadd, dzsum);
-
-@blasobjs = (lsame, xerbla);
-@bfblasobjs = (sbgemm, sbgemv, sbdot, sbstobf16, sbdtobf16, sbf16tos, dbf16tod);
-@cblasobjsc = (
-    cblas_caxpy, cblas_ccopy, cblas_cdotc, cblas_cdotu, cblas_cgbmv, cblas_cgemm, cblas_cgemv,
-    cblas_cgerc, cblas_cgeru, cblas_chbmv, cblas_chemm, cblas_chemv, cblas_cher2, cblas_cher2k,
-    cblas_cher, cblas_cherk,  cblas_chpmv, cblas_chpr2, cblas_chpr, cblas_cscal, cblas_caxpby,
-    cblas_csscal, cblas_cswap, cblas_csymm, cblas_csyr2k, cblas_csyrk, cblas_ctbmv, cblas_cgeadd,
-    cblas_ctbsv, cblas_ctpmv, cblas_ctpsv, cblas_ctrmm, cblas_ctrmv, cblas_ctrsm, cblas_ctrsv, 
-    cblas_scnrm2, cblas_scasum,
-    cblas_icamax, cblas_icamin, cblas_icmin, cblas_icmax, cblas_scsum,cblas_cimatcopy,cblas_comatcopy
-    );
-@cblasobjsd = (
-    cblas_dasum, cblas_daxpy, cblas_dcopy, cblas_ddot,
-    cblas_dgbmv, cblas_dgemm, cblas_dgemv, cblas_dger, cblas_dnrm2,
-    cblas_drot, cblas_drotg, cblas_drotm, cblas_drotmg, cblas_dsbmv, cblas_dscal, cblas_dsdot,
-    cblas_dspmv, cblas_dspr2, cblas_dspr, cblas_dswap, cblas_dsymm, cblas_dsymv, cblas_dsyr2,
-    cblas_dsyr2k, cblas_dsyr, cblas_dsyrk, cblas_dtbmv, cblas_dtbsv, cblas_dtpmv, cblas_dtpsv,
-    cblas_dtrmm, cblas_dtrmv, cblas_dtrsm, cblas_dtrsv, cblas_daxpby, cblas_dgeadd,
-    cblas_idamax, cblas_idamin, cblas_idmin, cblas_idmax, cblas_dsum,cblas_dimatcopy,cblas_domatcopy
-    );
-    
-@cblasobjss = (
-    cblas_sasum, cblas_saxpy, cblas_saxpby,
-    cblas_scopy, cblas_sdot, cblas_sdsdot, cblas_sgbmv, cblas_sgemm,
-    cblas_sgemv, cblas_sger, cblas_snrm2, cblas_srot, cblas_srotg,
-    cblas_srotm, cblas_srotmg, cblas_ssbmv, cblas_sscal, cblas_sspmv, cblas_sspr2, cblas_sspr,
-    cblas_sswap, cblas_ssymm, cblas_ssymv, cblas_ssyr2, cblas_ssyr2k, cblas_ssyr, cblas_ssyrk,
-    cblas_stbmv, cblas_stbsv, cblas_stpmv, cblas_stpsv, cblas_strmm, cblas_strmv, cblas_strsm,
-    cblas_strsv, cblas_sgeadd,
-    cblas_isamax, cblas_isamin, cblas_ismin, cblas_ismax, cblas_ssum,cblas_simatcopy,cblas_somatcopy
-    );
-@cblasobjsz = (
-    cblas_dzasum, cblas_dznrm2, cblas_zaxpy, cblas_zcopy, cblas_zdotc, cblas_zdotu, cblas_zdscal,
-    cblas_zgbmv, cblas_zgemm, cblas_zgemv, cblas_zgerc, cblas_zgeru, cblas_zhbmv, cblas_zhemm,
-    cblas_zhemv, cblas_zher2, cblas_zher2k, cblas_zher, cblas_zherk, cblas_zhpmv, cblas_zhpr2,
-    cblas_zhpr, cblas_zscal, cblas_zswap, cblas_zsymm, cblas_zsyr2k, cblas_zsyrk,
-    cblas_ztbmv, cblas_ztbsv, cblas_ztpmv, cblas_ztpsv, cblas_ztrmm, cblas_ztrmv, cblas_ztrsm,
-    cblas_ztrsv, cblas_cdotc_sub, cblas_cdotu_sub, cblas_zdotc_sub, cblas_zdotu_sub,
-    cblas_zaxpby, cblas_zgeadd,
-    cblas_izamax, cblas_izamin, cblas_izmin, cblas_izmax, cblas_dzsum,cblas_zimatcopy,cblas_zomatcopy
-);
-
-@cblasobjs = (  cblas_xerbla );
-
-@bfcblasobjs = (cblas_sbgemm, cblas_sbgemv, cblas_sbdot, cblas_sbstobf16, cblas_sbdtobf16, cblas_sbf16tos, cblas_dbf16tod);
-
-@exblasobjs = (
-    qamax,qamin,qasum,qaxpy,qcabs1,qcopy,qdot,qgbmv,qgemm,
-    qgemv,qger,qmax,qmin,
-    qnrm2,
-    qsbmv,qscal,qspmv,qspr2,
-    qspr,qswap,qsymm,qsymv,qsyr2,qsyr2k,qsyr,qsyrk,qtbmv,qtbsv,
-    qtpmv,qtpsv,qtrmm,qtrmv,qtrsm,qtrsv,
-    qxamax,qxamin,qxasum,qxnrm2,
-    xaxpy,xcopy,xdotc,xdotu,
-    xqscal,xgbmv,xgemm,xgemv,xgerc,xgeru,
-    xhbmv,xhemm,xhemv,xher2,xher2k,xher,xherk,xhpmv,xhpr2,
-    xhpr,xscal,xswap,xsymm,xsyr2k,xsyrk,xtbmv,
-    xtbsv,xtpmv,xtpsv,xtrmm,xtrmv,xtrsm,xtrsv,
-#           qrot,qrotg,qrotm,qrotmg,
-#           xdrot,xrotg,
-);
-
-    @gemm3mobjs=();
-
-    @cblasgemm3mobjs=();
-
-@gemm3mobjsc = (
-    cgemm3m,
-);
-@gemm3mobjsz = (    
+blasobjsc="
+    caxpy caxpby ccopy cdotc cdotu cgbmv cgemm cgemv cgerc cgeru
+    chbmv chemm chemv cher2 cher2k cher cherk scabs1 scamax
+    chpmv chpr2 chpr crotg cscal csrot csscal cswap scamin scasum scnrm2
+    csymm csyr2k csyrk ctbmv ctbsv ctpmv ctpsv ctrmm ctrmv ctrsm
+    ctrsv icamax icamin cimatcopy comatcopy cgeadd scsum"
+
+blasobjsd="
+    damax damin dasum daxpy daxpby dcabs1 dcopy ddot dgbmv dgemm
+    dgemv dger dmax dmin dnrm2 drot drotg drotm drotmg dsbmv
+    dscal dsdot dspmv dspr2 dimatcopy domatcopy
+    dspr dswap dsymm dsymv dsyr2 dsyr2k dsyr dsyrk dtbmv dtbsv
+    dtpmv dtpsv dtrmm dtrmv dtrsm dtrsv
+        idamax idamin idmax idmin dgeadd dsum"
+
+blasobjss="
+    isamax isamin ismax ismin
+    samax samin sasum saxpy  saxpby
+    scopy sdot sdsdot sgbmv sgemm sgemv sger
+    smax smin snrm2 simatcopy somatcopy
+    srot srotg srotm srotmg ssbmv sscal sspmv sspr2 sspr sswap
+    ssymm ssymv ssyr2 ssyr2k ssyr ssyrk stbmv stbsv stpmv stpsv
+    strmm strmv strsm strsv  sgeadd ssum"
+
+blasobjsz="
+    izamax izamin
+    zaxpy zaxpby zcopy zdotc zdotu zdrot
+    zdscal zgbmv zgemm zgemv zgerc zgeru
+    zhbmv zhemm zhemv zher2 zher2k zher zherk zhpmv zhpr2
+    zhpr zrotg zscal zswap zsymm zsyr2k zsyrk ztbmv
+    ztbsv ztpmv ztpsv ztrmm ztrmv ztrsm ztrsv
+    zomatcopy  zimatcopy dzamax dzamin dzasum dznrm2
+    zgeadd  dzsum"
+
+blasobjs="lsame xerbla"
+bfblasobjs="sbgemm sbgemv sbdot sbstobf16 sbdtobf16 sbf16tos dbf16tod"
+cblasobjsc="
+    cblas_caxpy cblas_ccopy cblas_cdotc cblas_cdotu cblas_cgbmv cblas_cgemm cblas_cgemv
+    cblas_cgerc cblas_cgeru cblas_chbmv cblas_chemm cblas_chemv cblas_cher2 cblas_cher2k
+    cblas_cher cblas_cherk  cblas_chpmv cblas_chpr2 cblas_chpr cblas_cscal cblas_caxpby
+    cblas_csscal cblas_cswap cblas_csymm cblas_csyr2k cblas_csyrk cblas_ctbmv cblas_cgeadd
+    cblas_ctbsv cblas_ctpmv cblas_ctpsv cblas_ctrmm cblas_ctrmv cblas_ctrsm cblas_ctrsv
+    cblas_scnrm2 cblas_scasum
+    cblas_icamax cblas_icamin cblas_icmin cblas_icmax cblas_scsum cblas_cimatcopy cblas_comatcopy
+    "
+cblasobjsd="
+    cblas_dasum cblas_daxpy cblas_dcopy cblas_ddot
+    cblas_dgbmv cblas_dgemm cblas_dgemv cblas_dger cblas_dnrm2
+    cblas_drot cblas_drotg cblas_drotm cblas_drotmg cblas_dsbmv cblas_dscal cblas_dsdot
+    cblas_dspmv cblas_dspr2 cblas_dspr cblas_dswap cblas_dsymm cblas_dsymv cblas_dsyr2
+    cblas_dsyr2k cblas_dsyr cblas_dsyrk cblas_dtbmv cblas_dtbsv cblas_dtpmv cblas_dtpsv
+    cblas_dtrmm cblas_dtrmv cblas_dtrsm cblas_dtrsv cblas_daxpby cblas_dgeadd
+    cblas_idamax cblas_idamin cblas_idmin cblas_idmax cblas_dsum cblas_dimatcopy cblas_domatcopy
+    "
+
+cblasobjss="
+    cblas_sasum cblas_saxpy cblas_saxpby
+    cblas_scopy cblas_sdot cblas_sdsdot cblas_sgbmv cblas_sgemm
+    cblas_sgemv cblas_sger cblas_snrm2 cblas_srot cblas_srotg
+    cblas_srotm cblas_srotmg cblas_ssbmv cblas_sscal cblas_sspmv cblas_sspr2 cblas_sspr
+    cblas_sswap cblas_ssymm cblas_ssymv cblas_ssyr2 cblas_ssyr2k cblas_ssyr cblas_ssyrk
+    cblas_stbmv cblas_stbsv cblas_stpmv cblas_stpsv cblas_strmm cblas_strmv cblas_strsm
+    cblas_strsv cblas_sgeadd
+    cblas_isamax cblas_isamin cblas_ismin cblas_ismax cblas_ssum cblas_simatcopy cblas_somatcopy
+    "
+
+cblasobjsz="
+    cblas_dzasum cblas_dznrm2 cblas_zaxpy cblas_zcopy cblas_zdotc cblas_zdotu cblas_zdscal
+    cblas_zgbmv cblas_zgemm cblas_zgemv cblas_zgerc cblas_zgeru cblas_zhbmv cblas_zhemm
+    cblas_zhemv cblas_zher2 cblas_zher2k cblas_zher cblas_zherk cblas_zhpmv cblas_zhpr2
+    cblas_zhpr cblas_zscal cblas_zswap cblas_zsymm cblas_zsyr2k cblas_zsyrk
+    cblas_ztbmv cblas_ztbsv cblas_ztpmv cblas_ztpsv cblas_ztrmm cblas_ztrmv cblas_ztrsm
+    cblas_ztrsv cblas_cdotc_sub cblas_cdotu_sub cblas_zdotc_sub cblas_zdotu_sub
+    cblas_zaxpby cblas_zgeadd
+    cblas_izamax cblas_izamin cblas_izmin cblas_izmax cblas_dzsum cblas_zimatcopy cblas_zomatcopy
+"
+
+cblasobjs="cblas_xerbla"
+
+bfcblasobjs="cblas_sbgemm cblas_sbgemv cblas_sbdot cblas_sbstobf16 cblas_sbdtobf16 cblas_sbf16tos cblas_dbf16tod"
+
+exblasobjs="
+    qamax qamin qasum qaxpy qcabs1 qcopy qdot qgbmv qgemm
+    qgemv qger qmax qmin
+    qnrm2
+    qsbmv qscal qspmv qspr2
+    qspr qswap qsymm qsymv qsyr2 qsyr2k qsyr qsyrk qtbmv qtbsv
+    qtpmv qtpsv qtrmm qtrmv qtrsm qtrsv
+    qxamax qxamin qxasum qxnrm2
+    xaxpy xcopy xdotc xdotu
+    xqscal xgbmv xgemm xgemv xgerc xgeru
+    xhbmv xhemm xhemv xher2 xher2k xher xherk xhpmv xhpr2
+    xhpr xscal xswap xsymm xsyr2k xsyrk xtbmv
+    xtbsv xtpmv xtpsv xtrmm xtrmv xtrsm xtrsv
+"
+#   qrot,qrotg,qrotm,qrotmg,
+#   xdrot,xrotg,
+
+gemm3mobj=""
+
+cblasgemm3mobj=""
+
+gemm3mobjsc="
+    cgemm3m
+"
+gemm3mobjsz="
     zgemm3m
-);
+"
 
-@cblasgemm3mobjsc = (
+cblasgemm3mobjsc="
     cblas_cgemm3m
-);
-@cblasgemm3mobjsz = (
+"
+cblasgemm3mobjsz="
     cblas_zgemm3m
-);
+"
 
 
 
 
 #both underscore and no underscore
-@misc_common_objs = (
-    openblas_get_parallel,
-    openblas_get_num_procs,
-    openblas_set_num_threads,
-    openblas_get_num_threads,
-);
-
-@misc_no_underscore_objs = (
-    goto_set_num_threads,
-    openblas_get_config,
-    openblas_get_corename,
-);
-
-@misc_underscore_objs = (
-);
-
-@lapackobjss = (
-    # These routines are provided by OpenBLAS.
-    sgesv, 
-    sgetf2,
-    sgetrf,
-    slaswp,
-    sgetrs,
-    slauu2,
-    slauum,
-    spotf2,
-    spotrf,
-    strti2,
-    strtri,
-    spotri,
-);
-
-@lapackobjsd = (
- dgesv,  
- dgetf2, 
- dgetrf, 
- dlaswp, 
- dgetrs, 
- dlauu2, 
- dlauum, 
- dpotf2, 
- dpotrf, 
- dtrti2, 
- dtrtri, 
- dpotri, 
-);
-
-@lapackobjsc = (
-cgesv,  
-cgetf2, 
-cgetrf, 
-claswp, 
-cgetrs, 
-clauu2, 
-clauum, 
-cpotf2, 
-cpotrf, 
-ctrti2, 
-ctrtri, 
-cpotri, 
-);
-
-@lapackobjsz = (
-zgesv,
-zgetf2,
-zgetrf,
-zlaswp,
-zgetrs,
-zlauu2,
-zlauum,
-zpotf2,
-zpotrf,
-ztrti2,
-ztrtri,
-zpotri,
-);
-
-
-@lapackobjs2 = (
-    # These routines are provided by LAPACK (reference implementation).
-    #
-    # This list is prepared by copying all routines listed in
-    # `lapack-3.4.1/SRC/Makefile` and replacing the '.o' suffix with a comma.
-    # Thereafter the following routines should be removed:
-    # - those provided by OpenBLAS (see @lapackobjs)
-    # - extra precision routines (see @lapack_extendedprecision_objs)
-    # Each of these have been marked individually with "already provided" or "excluded".
-
-    # ALLAUX  -- Auxiliary routines called from all precisions
-    # already provided by @blasobjs: xerbla, lsame
-    ilaenv, ieeeck, lsamen,  iparmq,
-    ilaprec, ilatrans, ilauplo, iladiag,
-    ilaver, slamch, slamc3,
-);
-
-@lapackobjs2sc = (    
-    # SCLAUX  -- Auxiliary routines called from both REAL and COMPLEX.
-    # excluded: second_$(TIMER)
-    sbdsdc,
-    sbdsqr, sdisna, slabad, slacpy, sladiv, slae2,  slaebz,
-    slaed0, slaed1, slaed2, slaed3, slaed4, slaed5, slaed6,
-    slaed7, slaed8, slaed9, slaeda, slaev2, slagtf,
-    slagts, slamrg, slanst,
-    slapy2, slapy3, slarnv,
-    slarra, slarrb, slarrc, slarrd, slarre, slarrf, slarrj,
-    slarrk, slarrr, slaneg,
-    slartg, slaruv, slas2,  slascl,
-    slasd0, slasd1, slasd2, slasd3, slasd4, slasd5, slasd6,
-    slasd7, slasd8, slasda, slasdq, slasdt,
-    slaset, slasq1, slasq2, slasq3, slasq4, slasq5, slasq6,
-    slasr,  slasrt, slassq, slasv2, spttrf, sstebz, sstedc,
-    ssteqr, ssterf, slaisnan, sisnan,
-    slartgp, slartgs,
-);
-
-@lapackobjs2dz = (
-    # DZLAUX  -- Auxiliary routines called from both DOUBLE and COMPLEX*16.
-    # excluded: dsecnd_$(TIMER)
-    dbdsdc,
-    dbdsqr, ddisna, dlabad, dlacpy, dladiv, dlae2,  dlaebz,
-    dlaed0, dlaed1, dlaed2, dlaed3, dlaed4, dlaed5, dlaed6,
-    dlaed7, dlaed8, dlaed9, dlaeda, dlaev2, dlagtf,
-    dlagts, dlamrg, dlanst,
-    dlapy2, dlapy3, dlarnv,
-    dlarra, dlarrb, dlarrc, dlarrd, dlarre, dlarrf, dlarrj,
-    dlarrk, dlarrr, dlaneg,
-    dlartg, dlaruv, dlas2,  dlascl,
-    dlasd0, dlasd1, dlasd2, dlasd3, dlasd4, dlasd5, dlasd6,
-    dlasd7, dlasd8, dlasda, dlasdq, dlasdt,
-    dlaset, dlasq1, dlasq2, dlasq3, dlasq4, dlasq5, dlasq6,
-    dlasr,  dlasrt, dlassq, dlasv2, dpttrf, dstebz, dstedc,
-    dsteqr, dsterf, dlaisnan, disnan,
-    dlartgp, dlartgs,
-    dlamch, dlamc3,
-);
-
-@lapackobjs2s = (
-    # SLASRC  -- Single precision real LAPACK routines
-    # already provided by @lapackobjs:
-    #     sgesv, sgetf2, slaswp, slauu2, slauum, spotf2, spotri, strti2, strtri
-    sgbbrd, sgbcon, sgbequ, sgbrfs, sgbsv,
-    sgbsvx, sgbtf2, sgbtrf, sgbtrs, sgebak, sgebal, sgebd2,
-    sgebrd, sgecon, sgeequ, sgees,  sgeesx, sgeev,  sgeevx,
-    sgehd2, sgehrd, sgelq2, sgelqf,
-    sgels,  sgelsd, sgelss, sgelsy, sgeql2, sgeqlf,
-    sgeqp3, sgeqr2, sgeqr2p, sgeqrf, sgeqrfp, sgerfs,
-    sgerq2, sgerqf, sgesc2, sgesdd, sgesvd, sgesvx,
-    sgetc2, sgetri,
-    sggbak, sggbal, sgges,  sggesx, sggev,  sggevx,
-    sggglm, sgghrd, sgglse, sggqrf,
-    sggrqf, sgtcon, sgtrfs, sgtsv,
-    sgtsvx, sgttrf, sgttrs, sgtts2, shgeqz,
-    shsein, shseqr, slabrd, slacon, slacn2,
-    slaein, slaexc, slag2,  slags2, slagtm, slagv2, slahqr,
-    slahr2, slaic1, slaln2, slals0, slalsa, slalsd,
-    slangb, slange, slangt, slanhs, slansb, slansp,
-    slansy, slantb, slantp, slantr, slanv2,
-    slapll, slapmt,
-    slaqgb, slaqge, slaqp2, slaqps, slaqsb, slaqsp, slaqsy,
-    slaqr0, slaqr1, slaqr2, slaqr3, slaqr4, slaqr5,
-    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,
-    sopgtr, sopmtr, sorg2l, sorg2r,
-    sorgbr, sorghr, sorgl2, sorglq, sorgql, sorgqr, sorgr2,
-    sorgrq, sorgtr, sorm2l, sorm2r,
-    sormbr, sormhr, sorml2, sormlq, sormql, sormqr, sormr2,
-    sormr3, sormrq, sormrz, sormtr, spbcon, spbequ, spbrfs,
-    spbstf, spbsv,  spbsvx,
-    spbtf2, spbtrf, spbtrs, spocon, spoequ, sporfs, sposv,
-    sposvx, 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,
-    ssbtrd, sspcon, sspev,  sspevd, sspevx, sspgst,
-    sspgv,  sspgvd, sspgvx, ssprfs, sspsv,  sspsvx, ssptrd,
-    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, 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, 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, sorbdb1, sorbdb2, sorbdb3, sorbdb4,
-    sorbdb5, sorbdb6, sorcsd, sorcsd2by1,
-    sgeqrt, sgeqrt2, sgeqrt3, sgemqrt,
-    stpqrt, stpqrt2, stpmqrt, stprfb,
-);
-
-@lapackobjs2ds = (
-    # DSLASRC -- Double-single mixed precision real routines called from
-    # single, single-extra and double precision real LAPACK
-    # routines (i.e. from SLASRC, SXLASRC, DLASRC).
-    #
-    # already provided by @lapackobjs:
-    #     sgetrs, spotrf, sgetrf
-    spotrs,
-);
-
-@lapackobjs2c = (
-    # CLASRC  -- Single precision complex LAPACK routines
-    # already provided by @blasobjs:
-    # already provided by @lapackobjs:
-    #     cgesv, cgetf2, claswp, clauu2, clauum, cpotf2, cpotri, ctrti2, ctrtri
-    cbdsqr, cgbbrd, cgbcon, cgbequ, cgbrfs, cgbsv,  cgbsvx,
-    cgbtf2, cgbtrf, cgbtrs, cgebak, cgebal, cgebd2, cgebrd,
-    cgecon, cgeequ, cgees,  cgeesx, cgeev,  cgeevx,
-    cgehd2, cgehrd, cgelq2, cgelqf,
-    cgels,  cgelsd, cgelss, cgelsy, cgeql2, cgeqlf, cgeqp3,
-    cgeqr2, cgeqr2p, cgeqrf, cgeqrfp, cgerfs,
-    cgerq2, cgerqf, cgesc2, cgesdd, cgesvd,
-    cgesvx, cgetc2, cgetri,
-    cggbak, cggbal, cgges,  cggesx, cggev,  cggevx, cggglm,
-    cgghrd, cgglse, cggqrf, cggrqf,
-    cgtcon, cgtrfs, cgtsv,  cgtsvx, cgttrf, cgttrs, cgtts2, chbev,
-    chbevd, chbevx, chbgst, chbgv,  chbgvd, chbgvx, chbtrd,
-    checon, cheev,  cheevd, cheevr, cheevx, chegs2, chegst,
-    chegv,  chegvd, chegvx, cherfs, chesv,  chesvx, chetd2,
-    chetf2, chetrd,
-    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,
-    clacgv, clacon, clacn2, clacp2, clacpy, clacrm, clacrt, cladiv,
-    claed0, claed7, claed8,
-    claein, claesy, claev2, clags2, clagtm,
-    clahef, clahqr,
-    clahr2, claic1, clals0, clalsa, clalsd, clangb, clange, clangt,
-    clanhb, clanhe,
-    clanhp, clanhs, clanht, clansb, clansp, clansy, clantb,
-    clantp, clantr, clapll, clapmt, clarcm, claqgb, claqge,
-    claqhb, claqhe, claqhp, claqp2, claqps, claqsb,
-    claqr0, claqr1, claqr2, claqr3, claqr4, claqr5,
-    claqsp, claqsy, clar1v, clar2v, ilaclr, ilaclc,
-    clarf,  clarfb, clarfg, clarft, clarfgp,
-    clarfx, clargv, clarnv, clarrv, clartg, clartv,
-    clarz,  clarzb, clarzt, clascl, claset, clasr,  classq,
-    clasyf, clatbs, clatdf, clatps, clatrd, clatrs, clatrz,
-    cpbcon, cpbequ, cpbrfs, cpbstf, cpbsv,
-    cpbsvx, cpbtf2, cpbtrf, cpbtrs, cpocon, cpoequ, cporfs,
-    cposv,  cposvx, 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,
-    csymv,
-    csyr, csyrfs, csysv,  csysvx, csytf2, csytrf, csytri, 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,
-    ctrsyl, ctrtrs, ctzrzf, cung2l, cung2r,
-    cungbr, cunghr, cungl2, cunglq, cungql, cungqr, cungr2,
-    cungrq, cungtr, cunm2l, cunm2r, cunmbr, cunmhr, cunml2,
-    cunmlq, cunmql, cunmqr, cunmr2, cunmr3, cunmrq, cunmrz,
-    cunmtr, cupgtr, cupmtr, icmax1, scsum1, cstemr,
-    chfrk, ctfttp, clanhf, cpftrf, cpftri, cpftrs, ctfsm, ctftri,
-    ctfttr, ctpttf, ctpttr, ctrttf, ctrttp,
-    cgeequb, cgbequb, csyequb, cpoequb, cheequb,
-    cbbcsd, clapmr, cunbdb, cunbdb1, cunbdb2, cunbdb3, cunbdb4,
-    cunbdb5, cunbdb6, cuncsd, cuncsd2by1,
-    cgeqrt, cgeqrt2, cgeqrt3, cgemqrt,
-    ctpqrt, ctpqrt2, ctpmqrt, ctprfb,
-);
-@lapackobjs2zc = (
-    # ZCLASRC -- Double-single mixed precision complex routines called from
-    # single, single-extra and double precision complex LAPACK
-    # routines (i.e. from CLASRC, CXLASRC, ZLASRC).
-    #
-    # already provided by @lapackobjs:
-    #     cgetrs, cpotrf, cgetrf
-    cpotrs,
-);
-
-@lapackobjs2d = (
-    # DLASRC  -- Double precision real LAPACK routines
-    # already provided by @lapackobjs:
-    #     dgesv, dgetf2, dgetrs, dlaswp, dlauu2, dlauum, dpotf2, dpotrf, dpotri,
-    #     dtrti2, dtrtri
-    dgbbrd, dgbcon, dgbequ, dgbrfs, dgbsv,
-    dgbsvx, dgbtf2, dgbtrf, dgbtrs, dgebak, dgebal, dgebd2,
-    dgebrd, dgecon, dgeequ, dgees,  dgeesx, dgeev,  dgeevx,
-    dgehd2, dgehrd, dgelq2, dgelqf,
-    dgels,  dgelsd, dgelss, dgelsy, dgeql2, dgeqlf,
-    dgeqp3, dgeqr2, dgeqr2p, dgeqrf, dgeqrfp, dgerfs,
-    dgerq2, dgerqf, dgesc2, dgesdd, dgesvd, dgesvx,
-    dgetc2, dgetri,
-    dggbak, dggbal, dgges,  dggesx, dggev,  dggevx,
-    dggglm, dgghrd, dgglse, dggqrf,
-    dggrqf, dgtcon, dgtrfs, dgtsv,
-    dgtsvx, dgttrf, dgttrs, dgtts2, dhgeqz,
-    dhsein, dhseqr, dlabrd, dlacon, dlacn2,
-    dlaein, dlaexc, dlag2,  dlags2, dlagtm, dlagv2, dlahqr,
-    dlahr2, dlaic1, dlaln2, dlals0, dlalsa, dlalsd,
-    dlangb, dlange, dlangt, dlanhs, dlansb, dlansp,
-    dlansy, dlantb, dlantp, dlantr, dlanv2,
-    dlapll, dlapmt,
-    dlaqgb, dlaqge, dlaqp2, dlaqps, dlaqsb, dlaqsp, dlaqsy,
-    dlaqr0, dlaqr1, dlaqr2, dlaqr3, dlaqr4, dlaqr5,
-    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,
-    dopgtr, dopmtr, dorg2l, dorg2r,
-    dorgbr, dorghr, dorgl2, dorglq, dorgql, dorgqr, dorgr2,
-    dorgrq, dorgtr, dorm2l, dorm2r,
-    dormbr, dormhr, dorml2, dormlq, dormql, dormqr, dormr2,
-    dormr3, dormrq, dormrz, dormtr, dpbcon, dpbequ, dpbrfs,
-    dpbstf, dpbsv,  dpbsvx,
-    dpbtf2, dpbtrf, dpbtrs, dpocon, dpoequ, dporfs, dposv,
-    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,
-    dsbtrd,  dspcon, dspev,  dspevd, dspevx, dspgst,
-    dspgv,  dspgvd, dspgvx, dsprfs, dspsv,  dspsvx, dsptrd,
-    dsptrf, dsptri, dsptrs, dstegr, dstein, dstev,  dstevd, dstevr,
-    dstevx,
-    dsycon, dsyev,  dsyevd, dsyevr,
-    dsyevx, dsygs2, dsygst, dsygv,  dsygvd, dsygvx, dsyrfs,
-    dsysv,  dsysvx,
-    dsytd2, dsytf2, dsytrd, dsytrf, dsytri, dsytri2, dsytri2x,
-    dsyswapr, dsytrs, dsytrs2, dsyconv,
-    dtbcon, dtbrfs, dtbtrs, dtgevc, dtgex2, dtgexc, dtgsen,
-    dtgsja, dtgsna, dtgsy2, dtgsyl, dtpcon, dtprfs, dtptri,
-    dtptrs,
-    dtrcon, dtrevc, dtrexc, dtrrfs, dtrsen, dtrsna, dtrsyl,
-    dtrtrs, dtzrzf, dstemr,
-    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, dorbdb1, dorbdb2, dorbdb3, dorbdb4,
-    dorbdb5, dorbdb6, dorcsd, dorcsd2by1,
-    dgeqrt, dgeqrt2, dgeqrt3, dgemqrt,
-    dtpqrt, dtpqrt2, dtpmqrt, dtprfb,
-);
-@lapackobjs2z = (
-    # ZLASRC  -- Double precision complex LAPACK routines
-    # already provided by @blasobjs:
-    # already provided by @lapackobjs:
-    #     zgesv, zgetrs, zgetf2, zlaswp, zlauu2, zlauum, zpotf2, zpotrf, zpotri,
-    #     ztrti2, ztrtri
-    zbdsqr, zgbbrd, zgbcon, zgbequ, zgbrfs, zgbsv,  zgbsvx,
-    zgbtf2, zgbtrf, zgbtrs, zgebak, zgebal, zgebd2, zgebrd,
-    zgecon, zgeequ, zgees,  zgeesx, zgeev,  zgeevx,
-    zgehd2, zgehrd, zgelq2, zgelqf,
-    zgels,  zgelsd, zgelss, zgelsy, zgeql2, zgeqlf, zgeqp3,
-    zgeqr2, zgeqr2p, zgeqrf, zgeqrfp, zgerfs, zgerq2, zgerqf,
-    zgesc2, zgesdd, zgesvd, zgesvx, zgetc2,
-    zgetri,
-    zggbak, zggbal, zgges,  zggesx, zggev,  zggevx, zggglm,
-    zgghrd, zgglse, zggqrf, zggrqf,
-    zgtcon, zgtrfs, zgtsv,  zgtsvx, zgttrf, zgttrs, zgtts2, zhbev,
-    zhbevd, zhbevx, zhbgst, zhbgv,  zhbgvd, zhbgvx, zhbtrd,
-    zhecon, zheev,  zheevd, zheevr, zheevx, zhegs2, zhegst,
-    zhegv,  zhegvd, zhegvx, zherfs, zhesv,  zhesvx, zhetd2,
-    zhetf2, zhetrd,
-    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,
-    zlacgv, zlacon, zlacn2, zlacp2, zlacpy, zlacrm, zlacrt, zladiv,
-    zlaed0, zlaed7, zlaed8,
-    zlaein, zlaesy, zlaev2, zlags2, zlagtm,
-    zlahef, zlahqr,
-    zlahr2, zlaic1, zlals0, zlalsa, zlalsd, zlangb, zlange,
-    zlangt, zlanhb,
-    zlanhe,
-    zlanhp, zlanhs, zlanht, zlansb, zlansp, zlansy, zlantb,
-    zlantp, zlantr, zlapll, zlapmt, zlaqgb, zlaqge,
-    zlaqhb, zlaqhe, zlaqhp, zlaqp2, zlaqps, zlaqsb,
-    zlaqr0, zlaqr1, zlaqr2, zlaqr3, zlaqr4, zlaqr5,
-    zlaqsp, zlaqsy, zlar1v, zlar2v, ilazlr, ilazlc,
-    zlarcm, zlarf,  zlarfb,
-    zlarfg, zlarft, zlarfgp,
-    zlarfx, zlargv, zlarnv, zlarrv, zlartg, zlartv,
-    zlarz,  zlarzb, zlarzt, zlascl, zlaset, zlasr,
-    zlassq, zlasyf,
-    zlatbs, zlatdf, zlatps, zlatrd, zlatrs, zlatrz,
-    zpbcon, zpbequ, zpbrfs, zpbstf, zpbsv,
-    zpbsvx, zpbtf2, zpbtrf, zpbtrs, zpocon, zpoequ, zporfs,
-    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,
-    zsymv,
-    zsyr, zsyrfs, zsysv,  zsysvx, zsytf2, zsytrf, zsytri, 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,
-    ztrsyl, ztrtrs, ztzrzf, zung2l,
-    zung2r, zungbr, zunghr, zungl2, zunglq, zungql, zungqr, zungr2,
-    zungrq, zungtr, zunm2l, zunm2r, zunmbr, zunmhr, zunml2,
-    zunmlq, zunmql, zunmqr, zunmr2, zunmr3, zunmrq, zunmrz,
-    zunmtr, zupgtr,
-    zupmtr, izmax1, dzsum1, zstemr,
-    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, zunbdb1, zunbdb2, zunbdb3, zunbdb4,
-    zunbdb5, zunbdb6, zuncsd, zuncsd2by1,
-    zgeqrt, zgeqrt2, zgeqrt3, zgemqrt,
-    ztpqrt, ztpqrt2, ztpmqrt, ztprfb,
-);
-    # functions added for lapack-3.6.0
-
-@lapackobjs2c = ( @lapackobjs2c,
-    cgejsv,
-    cgesvdx,
-    cgesvj,
-    cgetrf2,
-    cgges3,
-    cggev3,
-    cgghd3,
-    cggsvd3,
-    cggsvp3,
-    cgsvj0,
-    cgsvj1,
-    clagge,
-    claghe,
-    clagsy,
-    clahilb,
-    clakf2,
-    clarge,
-    clarnd,
-    claror,
-    clarot,
-    clatm1,
-    clatm2,
-    clatm3,
-    clatm5,
-    clatm6,
-    clatme,
-    clatmr,
-    clatms,
-    clatmt,
-    cpotrf2,
-    csbmv,
-    cspr2,
-    csyr2,
-    cunm22,
-);
-@lapackobjs2d = (@lapackobjs2d,
-    dbdsvdx,
-    dgesvdx,
-    dgetrf2,
-    dgges3,
-    dggev3,
-    dgghd3,
-    dggsvd3,
-    dggsvp3,
-    dladiv2,
-    dlagge,
-    dlagsy,
-    dlahilb,
-    dlakf2,
-    dlaran,
-    dlarge,
-    dlarnd,
-    dlaror,
-    dlarot,
-    dlatm1,
-    dlatm2,
-    dlatm3,
-    dlatm5,
-    dlatm6,
-    dlatm7,
-    dlatme,
-    dlatmr,
-    dlatms,
-    dlatmt,
-    dorm22,
-    dpotrf2,
-    dsecnd,
-    );
-    @lapackobjs2s = (@lapackobjs2s,
-    sbdsvdx,
-    second,
-    sgesvdx,
-    sgetrf2,
-    sgges3,
-    sggev3,
-    sgghd3,
-    sggsvd3,
-    sggsvp3,
-    sladiv2,
-    slagge,
-    slagsy,
-    slahilb,
-    slakf2,
-    slaran,
-    slarge,
-    slarnd,
-    slaror,
-    slarot,
-    slatm1,
-    slatm2,
-    slatm3,
-    slatm5,
-    slatm6,
-    slatm7,
-    slatme,
-    slatmr,
-    slatms,
-    slatmt,
-    sorm22,
-    spotrf2,
-    );
-    @lapackobjs2z = (@lapackobjs2z,
-    zgejsv,
-    zgesvdx,
-    zgesvj,
-    zgetrf2,
-    zgges3,
-    zggev3,
-    zgghd3,
-    zggsvd3,
-    zggsvp3,
-    zgsvj0,
-    zgsvj1,
-    zlagge,
-    zlaghe,
-    zlagsy,
-    zlahilb,
-    zlakf2,
-    zlarge,
-    zlarnd,
-    zlaror,
-    zlarot,
-    zlatm1,
-    zlatm2,
-    zlatm3,
-    zlatm5,
-    zlatm6,
-    zlatme,
-    zlatmr,
-    zlatms,
-    zlatmt,
-    zpotrf2,
-    zsbmv,
-    zspr2,
-    zsyr2,
-    zunm22,
-);
-    # functions added for lapack-3.7.0
-@lapackobjs2s = (@lapackobjs2s,
-    slarfy,
-    strevc3,
-    sgelqt,
-    sgelqt3,
-    sgemlqt,
-    sgetsls,
-    sgeqr,
-    slatsqr,
-    slamtsqr,
-    sgemqr,
-    sgelq,
-    slaswlq,
-    slamswlq,
-    sgemlq,
-    stplqt,
-    stplqt2,
-    stpmlqt,
-    );
-    @lapackobjs2d = (@lapackobjs2d,
-    dlarfy,
-    dsyconvf,
-    dtrevc3,
-    dgelqt,
-    dgelqt3,
-    dgemlqt,
-    dgetsls,
-    dgeqr,
-    dlatsqr,
-    dlamtsqr,
-    dgemqr,
-    dgelq,
-    dlaswlq,
-    dlamswlq,
-    dgemlq,
-    dtplqt,
-    dtplqt2,
-    dtpmlqt,
-    );
-    @lapackobjs2c = (@lapackobjs2c,
-    clarfy,
-    csyconvf,
-    ctrevc3,
-    cgelqt,
-    cgelqt3,
-    cgemlqt,
-    cgetsls,
-    cgeqr,
-    clatsqr,
-    clamtsqr,
-    cgemqr,
-    cgelq,
-    claswlq,
-    clamswlq,
-    cgemlq,
-    ctplqt,
-    ctplqt2,
-    ctpmlqt,
-    );
-    @lapackobjs2z = (@lapackobjs2z,
-    zlarfy,
-    zsyconvf,
-    ztrevc3,
-    ztplqt,
-    ztplqt2,
-    ztpmlqt,
-    zgelqt,
-    zgelqt3,
-    zgemlqt,
-    zgetsls,
-    zgeqr,
-    zlatsqr,
-    zlamtsqr,
-    zgemqr,
-    zgelq,
-    zlaswlq,
-    zlamswlq,
-    zgemlq,
-    );
-    @lapackobjs2s = (@lapackobjs2s,
-    sladiv1);
-    @lapackobjs2d = (@lapackobjs2d,
-    dladiv1);
-    @lapackobjs = (@lapackobjs,
-    iparam2stage,
-    # functions added for lapack-3.8.0
-    ilaenv2stage,
-    );
-    # functions added for lapack-3.9.0
-@lapackobjs2c = (@lapackobjs2c,
-    cgesvdq,
+misc_common_objs="
+    openblas_get_parallel
+    openblas_get_num_procs
+    openblas_set_num_threads
+    openblas_get_num_threads
+"
+
+misc_no_underscore_objs="
+    goto_set_num_threads
+    openblas_get_config
+    openblas_get_corename
+"
+
+misc_underscore_objs=""
+
+# These routines are provided by OpenBLAS.
+lapackobjss="
+    sgesv
+    sgetf2
+    sgetrf
+    slaswp
+    sgetrs
+    slauu2
+    slauum
+    spotf2
+    spotrf
+    strti2
+    strtri
+    spotri
+"
+
+lapackobjsd="
+ dgesv
+ dgetf2
+ dgetrf
+ dlaswp
+ dgetrs
+ dlauu2
+ dlauum
+ dpotf2
+ dpotrf
+ dtrti2
+ dtrtri
+ dpotri
+"
+
+lapackobjsc="
+cgesv
+cgetf2
+cgetrf
+claswp
+cgetrs
+clauu2
+clauum
+cpotf2
+cpotrf
+ctrti2
+ctrtri
+cpotri
+"
+
+lapackobjsz="
+zgesv
+zgetf2
+zgetrf
+zlaswp
+zgetrs
+zlauu2
+zlauum
+zpotf2
+zpotrf
+ztrti2
+ztrtri
+zpotri
+"
+
+
+# These routines are provided by LAPACK (reference implementation).
+#
+# This list is prepared by copying all routines listed in
+# `lapack-3.4.1/SRC/Makefile` and replacing the '.o' suffix with a comma.
+# Thereafter the following routines should be removed:
+# - those provided by OpenBLAS (see @lapackobjs)
+# - extra precision routines (see @lapack_extendedprecision_objs)
+# Each of these have been marked individually with "already provided" or "excluded".
+
+# ALLAUX  -- Auxiliary routines called from all precisions
+# already provided by b"asobjs: xerbla lsame
+lapackobjs2="
+    ilaenv ieeeck lsamen  iparmq
+    ilaprec ilatrans ilauplo iladiag
+    ilaver slamch slamc3
+"
+
+# SCLAUX  -- Auxiliary routines called from both REAL and COMPLEX.
+# excluded: second_$(TIMER)
+lapackobjs2sc="
+    sbdsdc
+    sbdsqr sdisna slabad slacpy sladiv slae2  slaebz
+    slaed0 slaed1 slaed2 slaed3 slaed4 slaed5 slaed6
+    slaed7 slaed8 slaed9 slaeda slaev2 slagtf
+    slagts slamrg slanst
+    slapy2 slapy3 slarnv
+    slarra slarrb slarrc slarrd slarre slarrf slarrj
+    slarrk slarrr slaneg
+    slartg slaruv slas2  slascl
+    slasd0 slasd1 slasd2 slasd3 slasd4 slasd5 slasd6
+    slasd7 slasd8 slasda slasdq slasdt
+    slaset slasq1 slasq2 slasq3 slasq4 slasq5 slasq6
+    slasr  slasrt slassq slasv2 spttrf sstebz sstedc
+    ssteqr ssterf slaisnan sisnan
+    slartgp slartgs
+"
+
+# DZLAUX  -- Auxiliary routines called from both DOUBLE and COMPLEX*16.
+# excluded: dsecnd_$(TIMER)
+lapackobjs2dz="
+    dbdsdc
+    dbdsqr ddisna dlabad dlacpy dladiv dlae2  dlaebz
+    dlaed0 dlaed1 dlaed2 dlaed3 dlaed4 dlaed5 dlaed6
+    dlaed7 dlaed8 dlaed9 dlaeda dlaev2 dlagtf
+    dlagts dlamrg dlanst
+    dlapy2 dlapy3 dlarnv
+    dlarra dlarrb dlarrc dlarrd dlarre dlarrf dlarrj
+    dlarrk dlarrr dlaneg
+    dlartg dlaruv dlas2  dlascl
+    dlasd0 dlasd1 dlasd2 dlasd3 dlasd4 dlasd5 dlasd6
+    dlasd7 dlasd8 dlasda dlasdq dlasdt
+    dlaset dlasq1 dlasq2 dlasq3 dlasq4 dlasq5 dlasq6
+    dlasr  dlasrt dlassq dlasv2 dpttrf dstebz dstedc
+    dsteqr dsterf dlaisnan disnan
+    dlartgp dlartgs
+    dlamch dlamc3
+"
+
+# SLASRC  -- Single precision real LAPACK routines
+# already provided by l"packobjs:
+#     sgesv sgetf2 slaswp slauu2 slauum spotf2 spotri strti2 strtri
+lapackobjs2s="
+    sgbbrd sgbcon sgbequ sgbrfs sgbsv
+    sgbsvx sgbtf2 sgbtrf sgbtrs sgebak sgebal sgebd2
+    sgebrd sgecon sgeequ sgees  sgeesx sgeev  sgeevx
+    sgehd2 sgehrd sgelq2 sgelqf
+    sgels  sgelsd sgelss sgelsy sgeql2 sgeqlf
+    sgeqp3 sgeqr2 sgeqr2p sgeqrf sgeqrfp sgerfs
+    sgerq2 sgerqf sgesc2 sgesdd sgesvd sgesvx
+    sgetc2 sgetri
+    sggbak sggbal sgges  sggesx sggev  sggevx
+    sggglm sgghrd sgglse sggqrf
+    sggrqf sgtcon sgtrfs sgtsv
+    sgtsvx sgttrf sgttrs sgtts2 shgeqz
+    shsein shseqr slabrd slacon slacn2
+    slaein slaexc slag2  slags2 slagtm slagv2 slahqr
+    slahr2 slaic1 slaln2 slals0 slalsa slalsd
+    slangb slange slangt slanhs slansb slansp
+    slansy slantb slantp slantr slanv2
+    slapll slapmt
+    slaqgb slaqge slaqp2 slaqps slaqsb slaqsp slaqsy
+    slaqr0 slaqr1 slaqr2 slaqr3 slaqr4 slaqr5
+    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
+    sopgtr sopmtr sorg2l sorg2r
+    sorgbr sorghr sorgl2 sorglq sorgql sorgqr sorgr2
+    sorgrq sorgtr sorm2l sorm2r
+    sormbr sormhr sorml2 sormlq sormql sormqr sormr2
+    sormr3 sormrq sormrz sormtr spbcon spbequ spbrfs
+    spbstf spbsv  spbsvx
+    spbtf2 spbtrf spbtrs spocon spoequ sporfs sposv
+    sposvx 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
+    ssbtrd sspcon sspev  sspevd sspevx sspgst
+    sspgv  sspgvd sspgvx ssprfs sspsv  sspsvx ssptrd
+    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 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 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 sorbdb1 sorbdb2 sorbdb3 sorbdb4
+    sorbdb5 sorbdb6 sorcsd sorcsd2by1
+    sgeqrt sgeqrt2 sgeqrt3 sgemqrt
+    stpqrt stpqrt2 stpmqrt stprfb
+"
+
+# DSLASRC -- Double-single mixed precision real routines called from
+# single, single-extra and double precision real LAPACK
+# routines (i.e. from SLASRC, SXLASRC, DLASRC).
+#
+# already provided by @lapackobjs:
+#     sgetrs, spotrf, sgetrf
+lapackobjs2ds="
+    spotrs
+"
+
+# CLASRC  -- Single precision complex LAPACK routines
+# already provided by @blasobjs:
+# already provided by @lapackobjs:
+#     cgesv, cgetf2, claswp, clauu2, clauum, cpotf2, cpotri, ctrti2, ctrtri
+lapackobjs2c="
+    cbdsqr cgbbrd cgbcon cgbequ cgbrfs cgbsv  cgbsvx
+    cgbtf2 cgbtrf cgbtrs cgebak cgebal cgebd2 cgebrd
+    cgecon cgeequ cgees  cgeesx cgeev  cgeevx
+    cgehd2 cgehrd cgelq2 cgelqf
+    cgels  cgelsd cgelss cgelsy cgeql2 cgeqlf cgeqp3
+    cgeqr2 cgeqr2p cgeqrf cgeqrfp cgerfs
+    cgerq2 cgerqf cgesc2 cgesdd cgesvd
+    cgesvx cgetc2 cgetri
+    cggbak cggbal cgges  cggesx cggev  cggevx cggglm
+    cgghrd cgglse cggqrf cggrqf
+    cgtcon cgtrfs cgtsv  cgtsvx cgttrf cgttrs cgtts2 chbev
+    chbevd chbevx chbgst chbgv  chbgvd chbgvx chbtrd
+    checon cheev  cheevd cheevr cheevx chegs2 chegst
+    chegv  chegvd chegvx cherfs chesv  chesvx chetd2
+    chetf2 chetrd
+    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
+    clacgv clacon clacn2 clacp2 clacpy clacrm clacrt cladiv
+    claed0 claed7 claed8
+    claein claesy claev2 clags2 clagtm
+    clahef clahqr
+    clahr2 claic1 clals0 clalsa clalsd clangb clange clangt
+    clanhb clanhe
+    clanhp clanhs clanht clansb clansp clansy clantb
+    clantp clantr clapll clapmt clarcm claqgb claqge
+    claqhb claqhe claqhp claqp2 claqps claqsb
+    claqr0 claqr1 claqr2 claqr3 claqr4 claqr5
+    claqsp claqsy clar1v clar2v ilaclr ilaclc
+    clarf  clarfb clarfg clarft clarfgp
+    clarfx clargv clarnv clarrv clartg clartv
+    clarz  clarzb clarzt clascl claset clasr  classq
+    clasyf clatbs clatdf clatps clatrd clatrs clatrz
+    cpbcon cpbequ cpbrfs cpbstf cpbsv
+    cpbsvx cpbtf2 cpbtrf cpbtrs cpocon cpoequ cporfs
+    cposv  cposvx 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
+    csymv
+    csyr csyrfs csysv  csysvx csytf2 csytrf csytri 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
+    ctrsyl ctrtrs ctzrzf cung2l cung2r
+    cungbr cunghr cungl2 cunglq cungql cungqr cungr2
+    cungrq cungtr cunm2l cunm2r cunmbr cunmhr cunml2
+    cunmlq cunmql cunmqr cunmr2 cunmr3 cunmrq cunmrz
+    cunmtr cupgtr cupmtr icmax1 scsum1 cstemr
+    chfrk ctfttp clanhf cpftrf cpftri cpftrs ctfsm ctftri
+    ctfttr ctpttf ctpttr ctrttf ctrttp
+    cgeequb cgbequb csyequb cpoequb cheequb
+    cbbcsd clapmr cunbdb cunbdb1 cunbdb2 cunbdb3 cunbdb4
+    cunbdb5 cunbdb6 cuncsd cuncsd2by1
+    cgeqrt cgeqrt2 cgeqrt3 cgemqrt
+    ctpqrt ctpqrt2 ctpmqrt ctprfb
+"
+
+# ZCLASRC -- Double-single mixed precision complex routines called from
+# single, single-extra and double precision complex LAPACK
+# routines (i.e. from CLASRC, CXLASRC, ZLASRC).
+#
+# already provided by @lapackobjs:
+#     cgetrs, cpotrf, cgetrf
+lapackobjs2zc="
+    cpotrs
+"
+
+# DLASRC  -- Double precision real LAPACK routines
+# already provided by @lapackobjs:
+#     dgesv, dgetf2, dgetrs, dlaswp, dlauu2, dlauum, dpotf2, dpotrf, dpotri,
+#     dtrti2, dtrtri
+lapackobjs2d="
+    dgbbrd dgbcon dgbequ dgbrfs dgbsv
+    dgbsvx dgbtf2 dgbtrf dgbtrs dgebak dgebal dgebd2
+    dgebrd dgecon dgeequ dgees  dgeesx dgeev  dgeevx
+    dgehd2 dgehrd dgelq2 dgelqf
+    dgels  dgelsd dgelss dgelsy dgeql2 dgeqlf
+    dgeqp3 dgeqr2 dgeqr2p dgeqrf dgeqrfp dgerfs
+    dgerq2 dgerqf dgesc2 dgesdd dgesvd dgesvx
+    dgetc2 dgetri
+    dggbak dggbal dgges  dggesx dggev  dggevx
+    dggglm dgghrd dgglse dggqrf
+    dggrqf dgtcon dgtrfs dgtsv
+    dgtsvx dgttrf dgttrs dgtts2 dhgeqz
+    dhsein dhseqr dlabrd dlacon dlacn2
+    dlaein dlaexc dlag2  dlags2 dlagtm dlagv2 dlahqr
+    dlahr2 dlaic1 dlaln2 dlals0 dlalsa dlalsd
+    dlangb dlange dlangt dlanhs dlansb dlansp
+    dlansy dlantb dlantp dlantr dlanv2
+    dlapll dlapmt
+    dlaqgb dlaqge dlaqp2 dlaqps dlaqsb dlaqsp dlaqsy
+    dlaqr0 dlaqr1 dlaqr2 dlaqr3 dlaqr4 dlaqr5
+    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
+    dopgtr dopmtr dorg2l dorg2r
+    dorgbr dorghr dorgl2 dorglq dorgql dorgqr dorgr2
+    dorgrq dorgtr dorm2l dorm2r
+    dormbr dormhr dorml2 dormlq dormql dormqr dormr2
+    dormr3 dormrq dormrz dormtr dpbcon dpbequ dpbrfs
+    dpbstf dpbsv  dpbsvx
+    dpbtf2 dpbtrf dpbtrs dpocon dpoequ dporfs dposv
+    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
+    dsbtrd  dspcon dspev  dspevd dspevx dspgst
+    dspgv  dspgvd dspgvx dsprfs dspsv  dspsvx dsptrd
+    dsptrf dsptri dsptrs dstegr dstein dstev  dstevd dstevr
+    dstevx
+    dsycon dsyev  dsyevd dsyevr
+    dsyevx dsygs2 dsygst dsygv  dsygvd dsygvx dsyrfs
+    dsysv  dsysvx
+    dsytd2 dsytf2 dsytrd dsytrf dsytri dsytri2 dsytri2x
+    dsyswapr dsytrs dsytrs2 dsyconv
+    dtbcon dtbrfs dtbtrs dtgevc dtgex2 dtgexc dtgsen
+    dtgsja dtgsna dtgsy2 dtgsyl dtpcon dtprfs dtptri
+    dtptrs
+    dtrcon dtrevc dtrexc dtrrfs dtrsen dtrsna dtrsyl
+    dtrtrs dtzrzf dstemr
+    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 dorbdb1 dorbdb2 dorbdb3 dorbdb4
+    dorbdb5 dorbdb6 dorcsd dorcsd2by1
+    dgeqrt dgeqrt2 dgeqrt3 dgemqrt
+    dtpqrt dtpqrt2 dtpmqrt dtprfb
+"
+
+# ZLASRC  -- Double precision complex LAPACK routines
+# already provided by b"asobjs:
+# already provided by @lapackobjs:
+#     zgesv zgetrs zgetf2 zlaswp zlauu2 zlauum zpotf2 zpotrf zpotri
+#     ztrti2 ztrtri
+lapackobjs2z="
+    zbdsqr zgbbrd zgbcon zgbequ zgbrfs zgbsv  zgbsvx
+    zgbtf2 zgbtrf zgbtrs zgebak zgebal zgebd2 zgebrd
+    zgecon zgeequ zgees  zgeesx zgeev  zgeevx
+    zgehd2 zgehrd zgelq2 zgelqf
+    zgels  zgelsd zgelss zgelsy zgeql2 zgeqlf zgeqp3
+    zgeqr2 zgeqr2p zgeqrf zgeqrfp zgerfs zgerq2 zgerqf
+    zgesc2 zgesdd zgesvd zgesvx zgetc2
+    zgetri
+    zggbak zggbal zgges  zggesx zggev  zggevx zggglm
+    zgghrd zgglse zggqrf zggrqf
+    zgtcon zgtrfs zgtsv  zgtsvx zgttrf zgttrs zgtts2 zhbev
+    zhbevd zhbevx zhbgst zhbgv  zhbgvd zhbgvx zhbtrd
+    zhecon zheev  zheevd zheevr zheevx zhegs2 zhegst
+    zhegv  zhegvd zhegvx zherfs zhesv  zhesvx zhetd2
+    zhetf2 zhetrd
+    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
+    zlacgv zlacon zlacn2 zlacp2 zlacpy zlacrm zlacrt zladiv
+    zlaed0 zlaed7 zlaed8
+    zlaein zlaesy zlaev2 zlags2 zlagtm
+    zlahef zlahqr
+    zlahr2 zlaic1 zlals0 zlalsa zlalsd zlangb zlange
+    zlangt zlanhb
+    zlanhe
+    zlanhp zlanhs zlanht zlansb zlansp zlansy zlantb
+    zlantp zlantr zlapll zlapmt zlaqgb zlaqge
+    zlaqhb zlaqhe zlaqhp zlaqp2 zlaqps zlaqsb
+    zlaqr0 zlaqr1 zlaqr2 zlaqr3 zlaqr4 zlaqr5
+    zlaqsp zlaqsy zlar1v zlar2v ilazlr ilazlc
+    zlarcm zlarf  zlarfb
+    zlarfg zlarft zlarfgp
+    zlarfx zlargv zlarnv zlarrv zlartg zlartv
+    zlarz  zlarzb zlarzt zlascl zlaset zlasr
+    zlassq zlasyf
+    zlatbs zlatdf zlatps zlatrd zlatrs zlatrz
+    zpbcon zpbequ zpbrfs zpbstf zpbsv
+    zpbsvx zpbtf2 zpbtrf zpbtrs zpocon zpoequ zporfs
+    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
+    zsymv
+    zsyr zsyrfs zsysv  zsysvx zsytf2 zsytrf zsytri 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
+    ztrsyl ztrtrs ztzrzf zung2l
+    zung2r zungbr zunghr zungl2 zunglq zungql zungqr zungr2
+    zungrq zungtr zunm2l zunm2r zunmbr zunmhr zunml2
+    zunmlq zunmql zunmqr zunmr2 zunmr3 zunmrq zunmrz
+    zunmtr zupgtr
+    zupmtr izmax1 dzsum1 zstemr
+    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 zunbdb1 zunbdb2 zunbdb3 zunbdb4
+    zunbdb5 zunbdb6 zuncsd zuncsd2by1
+    zgeqrt zgeqrt2 zgeqrt3 zgemqrt
+    ztpqrt ztpqrt2 ztpmqrt ztprfb
+"
+
+# functions added for lapack-3.6.0
+
+lapackobjs2c="$lapackobjs2c
+    cgejsv
+    cgesvdx
+    cgesvj
+    cgetrf2
+    cgges3
+    cggev3
+    cgghd3
+    cggsvd3
+    cggsvp3
+    cgsvj0
+    cgsvj1
+    clagge
+    claghe
+    clagsy
+    clahilb
+    clakf2
+    clarge
+    clarnd
+    claror
+    clarot
+    clatm1
+    clatm2
+    clatm3
+    clatm5
+    clatm6
+    clatme
+    clatmr
+    clatms
+    clatmt
+    cpotrf2
+    csbmv
+    cspr2
+    csyr2
+    cunm22
+"
+
+lapackobjs2d="$lapackobjs2d
+    dbdsvdx
+    dgesvdx
+    dgetrf2
+    dgges3
+    dggev3
+    dgghd3
+    dggsvd3
+    dggsvp3
+    dladiv2
+    dlagge
+    dlagsy
+    dlahilb
+    dlakf2
+    dlaran
+    dlarge
+    dlarnd
+    dlaror
+    dlarot
+    dlatm1
+    dlatm2
+    dlatm3
+    dlatm5
+    dlatm6
+    dlatm7
+    dlatme
+    dlatmr
+    dlatms
+    dlatmt
+    dorm22
+    dpotrf2
+    dsecnd
+"
+
+lapackobjs2s="$lapackobjs2s
+    sbdsvdx
+    second
+    sgesvdx
+    sgetrf2
+    sgges3
+    sggev3
+    sgghd3
+    sggsvd3
+    sggsvp3
+    sladiv2
+    slagge
+    slagsy
+    slahilb
+    slakf2
+    slaran
+    slarge
+    slarnd
+    slaror
+    slarot
+    slatm1
+    slatm2
+    slatm3
+    slatm5
+    slatm6
+    slatm7
+    slatme
+    slatmr
+    slatms
+    slatmt
+    sorm22
+    spotrf2
+"
+
+lapackobjs2z="$lapackobjs2z
+    zgejsv
+    zgesvdx
+    zgesvj
+    zgetrf2
+    zgges3
+    zggev3
+    zgghd3
+    zggsvd3
+    zggsvp3
+    zgsvj0
+    zgsvj1
+    zlagge
+    zlaghe
+    zlagsy
+    zlahilb
+    zlakf2
+    zlarge
+    zlarnd
+    zlaror
+    zlarot
+    zlatm1
+    zlatm2
+    zlatm3
+    zlatm5
+    zlatm6
+    zlatme
+    zlatmr
+    zlatms
+    zlatmt
+    zpotrf2
+    zsbmv
+    zspr2
+    zsyr2
+    zunm22
+"
+
+# functions added for lapack-3.7.0
+lapackobjs2s="$lapackobjs2s
+    slarfy
+    strevc3
+    sgelqt
+    sgelqt3
+    sgemlqt
+    sgetsls
+    sgeqr
+    slatsqr
+    slamtsqr
+    sgemqr
+    sgelq
+    slaswlq
+    slamswlq
+    sgemlq
+    stplqt
+    stplqt2
+    stpmlqt
+"
+
+lapackobjs2d="$lapackobjs2d
+    dlarfy
+    dsyconvf
+    dtrevc3
+    dgelqt
+    dgelqt3
+    dgemlqt
+    dgetsls
+    dgeqr
+    dlatsqr
+    dlamtsqr
+    dgemqr
+    dgelq
+    dlaswlq
+    dlamswlq
+    dgemlq
+    dtplqt
+    dtplqt2
+    dtpmlqt
+    "
+lapackobjs2c="$lapackobjs2c
+    clarfy
+    csyconvf
+    ctrevc3
+    cgelqt
+    cgelqt3
+    cgemlqt
+    cgetsls
+    cgeqr
+    clatsqr
+    clamtsqr
+    cgemqr
+    cgelq
+    claswlq
+    clamswlq
+    cgemlq
+    ctplqt
+    ctplqt2
+    ctpmlqt
+"
+lapackobjs2z="$lapackobjs2z
+    zlarfy
+    zsyconvf
+    ztrevc3
+    ztplqt
+    ztplqt2
+    ztpmlqt
+    zgelqt
+    zgelqt3
+    zgemlqt
+    zgetsls
+    zgeqr
+    zlatsqr
+    zlamtsqr
+    zgemqr
+    zgelq
+    zlaswlq
+    zlamswlq
+    zgemlq
+"
+
+lapackobjs2s="$lapackobjs2s
+sladiv1"
+
+lapackobjs2d="$lapackobjs2d
+dladiv1"
+
+lapackobjs="$lapackobjs
+iparam2stage
+ilaenv2stage
+"
+
+# functions added for lapack-3.9.0
+lapackobjs2c="$lapackobjs2c
+    cgesvdq
     cungtsqr
-    );
-@lapackobjs2d = (@lapackobjs2d,
-    dcombssq,
-    dgesvdq,
-    dorgtsqr,
-    );
-@lapackobjs2s = (@lapackobjs2s,
-    scombssq,
-    sgesvdq,
-    sorgtsqr,
-    );
-@lapackobjs2z = (@lapackobjs2z,
-    zgesvdq,
+    "
+lapackobjs2d="$lapackobjs2d
+    dcombssq
+    dgesvdq
+    dorgtsqr
+    "
+lapackobjs2s="$lapackobjs2s
+    scombssq
+    sgesvdq
+    sorgtsqr
+    "
+lapackobjs2z="$lapackobjs2z
+    zgesvdq
     zungtsqr
-);
-    # functions added for lapack-3.10.1
-#@lapackobjs2d = (@lapackobjs2d,
-#    dlaqz0,
-#    dlaqz1,
-#    dlaqz2,
-#    dlaqz3,
-#    dlaqz4
-#    );
-#@lapackobjs2s = (@lapackobjs2s,
-#    slaqz0,
-#    slaqz1,
-#    slaqz2,
-#    slaqz3,
-#    slaqz4
-#    );
-#@lapackobjs2z = (@lapackobjs2z,
-#    zlaqz0,
-#    zlaqz1,
-#    zlaqz2,
-#    zlaqz3,
-#    zlaqz4
-#);
-
-@lapack_extendedprecision_objs = (
-    zposvxx, clagge, clatms, chesvxx, cposvxx, cgesvxx, ssyrfssx, csyrfsx,
-    dlagsy, dsysvxx, sporfsx, slatms, zlatms, zherfsx, csysvxx,
-);
-
-@lapack_deprecated_objsc = (
-    cgegs,   cggsvd,  
-    cgegv,   cggsvp,  
-    cgelsx,  clahrd,  
-    cgeqpf,  clatzm,  
-    ctzrqf,
-    );
-@lapack_deprecated_objsd = (
-    dgegs,   dgeqpf,
-    dgegv,   dggsvd,
-    dgelsx,  dggsvp,
-             dlahrd,
-  dlatzm,  dtzrqf);
-  
-@lapack_deprecated_objss = ( 
-  sgelsx,
-  sgegs,
-  sgegv,
-  sgeqpf,
-  sggsvd,
-  sggsvp,
-  slahrd,
-  slatzm,
+    "
+#functions added for lapack-3.10
+lapackobjs2c="$lapackobjs2c
+    cgetsqrhrt
+    cungtsqr_row
+    "
+lapackobjs2d="$lapackobjs2d
+    dgetsqrhrt
+    dorgtsqr_row
+    "
+lapackobjs2s="$lapackobjs2s
+    sgetsqrhrt
+    sorgtsqr_row
+    "
+lapackobjs2z="$lapackobjs2z
+    zgetsqrhrt
+    zungtsqr_row
+    "
+
+lapack_extendedprecision_objs="
+    zposvxx clagge clatms chesvxx cposvxx cgesvxx ssyrfssx csyrfsx
+    dlagsy dsysvxx sporfsx slatms zlatms zherfsx csysvxx
+"
+
+lapack_deprecated_objsc="
+    cgegs   cggsvd
+    cgegv   cggsvp
+    cgelsx  clahrd
+    cgeqpf  clatzm
+    ctzrqf
+    "
+
+lapack_deprecated_objsd="
+    dgegs   dgeqpf
+    dgegv   dggsvd
+    dgelsx  dggsvp
+             dlahrd
+  dlatzm  dtzrqf"
+
+lapack_deprecated_objss="
+  sgelsx
+  sgegs
+  sgegv
+  sgeqpf
+  sggsvd
+  sggsvp
+  slahrd
+  slatzm
   stzrqf
-  );
-
-@lapack_deprecated_objsz = ( 
-  zgegs,
-  zgegv,
-  zgelsx,
-  zgeqpf,
-  zggsvd,
-  zggsvp,
-  zlahrd,
-  zlatzm,
+  "
+
+lapack_deprecated_objsz="
+  zgegs
+  zgegv
+  zgelsx
+  zgeqpf
+  zggsvd
+  zggsvp
+  zlahrd
+  zlatzm
   ztzrqf
-  );
-
-@lapacke_deprecated_objsc = (
-    LAPACKE_cggsvp,
-    LAPACKE_cggsvp_work,
-    LAPACKE_cggsvd,
-    LAPACKE_cggsvd_work,
-    LAPACKE_cgeqpf,
-    LAPACKE_cgeqpf_work,
-);  
-@lapacke_deprecated_objsd = (    
-    LAPACKE_dggsvp,
-    LAPACKE_dggsvp_work,
-    LAPACKE_dggsvd,
-    LAPACKE_dggsvd_work,
-    LAPACKE_dgeqpf,
-    LAPACKE_dgeqpf_work,
-);    
-@lapacke_deprecated_objss = (    
-    LAPACKE_sggsvp,
-    LAPACKE_sggsvp_work,
-    LAPACKE_sggsvd,
-    LAPACKE_sggsvd_work,
-    LAPACKE_sgeqpf,
-    LAPACKE_sgeqpf_work,
-);    
-@lapacke_deprecated_objsz = (    
-    LAPACKE_zggsvp,
-    LAPACKE_zggsvp_work,
-    LAPACKE_zggsvd,
-    LAPACKE_zggsvd_work,
-    LAPACKE_zgeqpf,
-    LAPACKE_zgeqpf_work,
-);
-
-
-@lapackeobjs = (
-    # LAPACK C interface routines.
-    #
-    # This list is prepared in a similar manner to @lapackobjs2, however the
-    # functions all begin with an uppercase prefix (with the exception of the
-    # make_complex_* routines).
-    #
-    # The functions corresponding to @(MATGEN_OBJ) and @(SRCX_OBJ) are not
-    # exported since the respective LAPACK routines are not built by default.
-
-    # @(OBJ) from `lapack-3.4.1/lapacke/utils/Makefile`
-    LAPACKE_lsame,
-    LAPACKE_ilaver,
-    LAPACKE_xerbla,
-    lapack_make_complex_float,
-    lapack_make_complex_double,
-    LAPACKE_get_nancheck,
-    LAPACKE_set_nancheck,
-);
-@lapackeobjsc = (
-    LAPACKE_cgb_nancheck,
-    LAPACKE_cgb_trans,
-    LAPACKE_cge_nancheck,
-    LAPACKE_cge_trans,
-    LAPACKE_cgg_nancheck,
-    LAPACKE_cgg_trans,
-    LAPACKE_cgt_nancheck,
-    LAPACKE_chb_nancheck,
-    LAPACKE_chb_trans,
-    LAPACKE_che_nancheck,
-    LAPACKE_che_trans,
-    LAPACKE_chp_nancheck,
-    LAPACKE_chp_trans,
-    LAPACKE_chs_nancheck,
-    LAPACKE_chs_trans,
-    LAPACKE_c_nancheck,
-    LAPACKE_cpb_nancheck,
-    LAPACKE_cpb_trans,
-    LAPACKE_cpf_nancheck,
-    LAPACKE_cpf_trans,
-    LAPACKE_cpo_nancheck,
-    LAPACKE_cpo_trans,
-    LAPACKE_cpp_nancheck,
-    LAPACKE_cpp_trans,
-    LAPACKE_cpt_nancheck,
-    LAPACKE_csp_nancheck,
-    LAPACKE_csp_trans,
-    LAPACKE_cst_nancheck,
-    LAPACKE_csy_nancheck,
-    LAPACKE_csy_trans,
-    LAPACKE_ctb_nancheck,
-    LAPACKE_ctb_trans,
-    LAPACKE_ctf_nancheck,
-    LAPACKE_ctf_trans,
-    LAPACKE_ctp_nancheck,
-    LAPACKE_ctp_trans,
-    LAPACKE_ctr_nancheck,
-    LAPACKE_ctr_trans,
-    LAPACKE_cbbcsd,
-    LAPACKE_cbbcsd_work,
-    LAPACKE_cbdsqr,
-    LAPACKE_cbdsqr_work,
-    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_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_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_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_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_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_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_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_chsein,
-    LAPACKE_chsein_work,
-    LAPACKE_chseqr,
-    LAPACKE_chseqr_work,
-    LAPACKE_clacgv,
-    LAPACKE_clacgv_work,
-    LAPACKE_clacn2,
-    LAPACKE_clacn2_work,
-    LAPACKE_clacp2,
-    LAPACKE_clacp2_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_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_cpftrf,
-    LAPACKE_cpftrf_work,
-    LAPACKE_cpftri,
-    LAPACKE_cpftri_work,
-    LAPACKE_cpftrs,
-    LAPACKE_cpftrs_work,
-    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_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_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_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_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_csycon,
-    LAPACKE_csycon_work,
-    LAPACKE_csyconv,
-    LAPACKE_csyconv_work,
-    LAPACKE_csyequb,
-    LAPACKE_csyequb_work,
-    LAPACKE_csyrfs,
-    LAPACKE_csyrfs_work,
-    LAPACKE_csysv,
-    LAPACKE_csysv_rook,
-    LAPACKE_csysv_rook_work,
-    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_ctbcon,
-    LAPACKE_ctbcon_work,
-    LAPACKE_ctbrfs,
-    LAPACKE_ctbrfs_work,
-    LAPACKE_ctbtrs,
-    LAPACKE_ctbtrs_work,
-    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_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_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_csyr,
-    LAPACKE_csyr_work,
-    LAPACKE_clatms,
-    LAPACKE_clatms_work,
-    LAPACKE_clagge,
-    LAPACKE_clagge_work,
-    LAPACKE_claghe,
-    LAPACKE_claghe_work,
-    LAPACKE_clagsy,
-    LAPACKE_clagsy_work,
-    LAPACKE_cgejsv,
-    LAPACKE_cgejsv_work,
-    LAPACKE_cgesvdx,
-    LAPACKE_cgesvdx_work,
-    LAPACKE_cgesvj,
-    LAPACKE_cgesvj_work,
-    LAPACKE_cgetrf2,
-    LAPACKE_cgetrf2_work,
-    LAPACKE_cgges3,
-    LAPACKE_cgges3_work,
-    LAPACKE_cggev3,
-    LAPACKE_cggev3_work,
-    LAPACKE_cgghd3,
-    LAPACKE_cgghd3_work,
-    LAPACKE_cggsvd3,
-    LAPACKE_cggsvd3_work,
-    LAPACKE_cggsvp3,
-    LAPACKE_cggsvp3_work,
-    LAPACKE_chetrf_rook,
-    LAPACKE_chetrf_rook_work,
-    LAPACKE_chetrs_rook,
-    LAPACKE_chetrs_rook_work,
-    LAPACKE_clapmt,
-    LAPACKE_clapmt_work,
-    LAPACKE_clascl,
-    LAPACKE_clascl_work,
-    LAPACKE_cpotrf2,
-    LAPACKE_cpotrf2_work,
-    LAPACKE_csytrf_rook,
-    LAPACKE_csytrf_rook_work,
-    LAPACKE_csytrs_rook,
-    LAPACKE_csytrs_rook_work,
-    LAPACKE_cuncsd2by1,
-    LAPACKE_cuncsd2by1_work,
-    LAPACKE_cgelq,
-    LAPACKE_cgelq_work,
-    LAPACKE_cgemlq,
-    LAPACKE_cgemlq_work,
-    LAPACKE_cgemqr,
-    LAPACKE_cgemqr_work,
-    LAPACKE_cgeqr,
-    LAPACKE_cgeqr_work,
-    LAPACKE_cgetsls,
-    LAPACKE_cgetsls_work,
-    LAPACKE_chbev_2stage,
-    LAPACKE_chbev_2stage_work,
-    LAPACKE_chbevd_2stage,
-    LAPACKE_chbevd_2stage_work,
-    LAPACKE_chbevx_2stage,
-    LAPACKE_chbevx_2stage_work,
-    LAPACKE_checon_3,
-    LAPACKE_checon_3_work,
-    LAPACKE_cheev_2stage,
-    LAPACKE_cheev_2stage_work,
-    LAPACKE_cheevd_2stage,
-    LAPACKE_cheevd_2stage_work,
-    LAPACKE_cheevr_2stage,
-    LAPACKE_cheevr_2stage_work,
-    LAPACKE_cheevx_2stage,
-    LAPACKE_cheevx_2stage_work,
-    LAPACKE_chegv_2stage,
-    LAPACKE_chegv_2stage_work,
-    LAPACKE_chesv_aa,
-    LAPACKE_chesv_aa_work,
-    LAPACKE_chesv_rk,
-    LAPACKE_chesv_rk_work,
-    LAPACKE_chetrf_aa,
-    LAPACKE_chetrf_aa_work,
-    LAPACKE_chetrf_rk,
-    LAPACKE_chetrf_rk_work,
-    LAPACKE_chetri_3,
-    LAPACKE_chetri_3_work,
-    LAPACKE_chetrs_aa,
-    LAPACKE_chetrs_aa_work,
-    LAPACKE_chetrs_3,
-    LAPACKE_chetrs_3_work,
-    LAPACKE_csycon_3,
-    LAPACKE_csycon_3_work,
-    LAPACKE_csysv_aa,
-    LAPACKE_csysv_aa_work,
-    LAPACKE_csysv_rk,
-    LAPACKE_csysv_rk_work,
-    LAPACKE_csytrf_aa,
-    LAPACKE_csytrf_aa_work,
-    LAPACKE_csytrf_rk,
-    LAPACKE_csytrf_rk_work,
-    LAPACKE_csytri_3,
-    LAPACKE_csytri_3_work,
-    LAPACKE_csytrs_aa,
-    LAPACKE_csytrs_aa_work,
-    LAPACKE_csytrs_3,
-    LAPACKE_csytrs_3_work,
-    LAPACKE_chesv_aa_2stage,
-    LAPACKE_chesv_aa_2stage_work,
-    LAPACKE_chetrf_aa_2stage,
-    LAPACKE_chetrf_aa_2stage_work,
-    LAPACKE_chetrs_aa_2stage,
-    LAPACKE_chetrs_aa_2stage_work,
-    LAPACKE_clacrm,
-    LAPACKE_clacrm_work,
-    LAPACKE_clarcm,
-    LAPACKE_clarcm_work,
-    LAPACKE_classq,
-    LAPACKE_classq_work,
-    LAPACKE_csysv_aa_2stage,
-    LAPACKE_csysv_aa_2stage_work,
-    LAPACKE_csytrf_aa_2stage,
-    LAPACKE_csytrf_aa_2stage_work,
-    LAPACKE_csytrs_aa_2stage,
-    LAPACKE_csytrs_aa_2stage_work,
-);
-@lapackeobjsd = (
-    LAPACKE_dgb_nancheck,
-    LAPACKE_dgb_trans,
-    LAPACKE_dge_nancheck,
-    LAPACKE_dge_trans,
-    LAPACKE_dgg_nancheck,
-    LAPACKE_dgg_trans,
-    LAPACKE_dgt_nancheck,
-    LAPACKE_dhs_nancheck,
-    LAPACKE_dhs_trans,
-    LAPACKE_d_nancheck,
-    LAPACKE_dpb_nancheck,
-    LAPACKE_dpb_trans,
-    LAPACKE_dpf_nancheck,
-    LAPACKE_dpf_trans,
-    LAPACKE_dpo_nancheck,
-    LAPACKE_dpo_trans,
-    LAPACKE_dpp_nancheck,
-    LAPACKE_dpp_trans,
-    LAPACKE_dpt_nancheck,
-    LAPACKE_dsb_nancheck,
-    LAPACKE_dsb_trans,
-    LAPACKE_dsp_nancheck,
-    LAPACKE_dsp_trans,
-    LAPACKE_dst_nancheck,
-    LAPACKE_dsy_nancheck,
-    LAPACKE_dsy_trans,
-    LAPACKE_dtb_nancheck,
-    LAPACKE_dtb_trans,
-    LAPACKE_dtf_nancheck,
-    LAPACKE_dtf_trans,
-    LAPACKE_dtp_nancheck,
-    LAPACKE_dtp_trans,
-    LAPACKE_dtr_nancheck,
-    LAPACKE_dtr_trans,
-    LAPACKE_dbbcsd,
-    LAPACKE_dbbcsd_work,
-    LAPACKE_dbdsdc,
-    LAPACKE_dbdsdc_work,
-    LAPACKE_dbdsqr,
-    LAPACKE_dbdsqr_work,
-    LAPACKE_ddisna,
-    LAPACKE_ddisna_work,
-    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_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_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_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_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_dhsein,
-    LAPACKE_dhsein_work,
-    LAPACKE_dhseqr,
-    LAPACKE_dhseqr_work,
-    LAPACKE_dlacn2,
-    LAPACKE_dlacn2_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_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_dpftrf,
-    LAPACKE_dpftrf_work,
-    LAPACKE_dpftri,
-    LAPACKE_dpftri_work,
-    LAPACKE_dpftrs,
-    LAPACKE_dpftrs_work,
-    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_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_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_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_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_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_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_rook,
-    LAPACKE_dsysv_rook_work,
-    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_dtbcon,
-    LAPACKE_dtbcon_work,
-    LAPACKE_dtbrfs,
-    LAPACKE_dtbrfs_work,
-    LAPACKE_dtbtrs,
-    LAPACKE_dtbtrs_work,
-    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_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_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_dlatms,
-    LAPACKE_dlatms_work,
-    LAPACKE_dlagge,
-    LAPACKE_dlagge_work,
-    LAPACKE_dlagsy,
-    LAPACKE_dlagsy_work,
-    LAPACKE_dbdsvdx,
-    LAPACKE_dbdsvdx_work,
-    LAPACKE_dgesvdx,
-    LAPACKE_dgesvdx_work,
-    LAPACKE_dgetrf2,
-    LAPACKE_dgetrf2_work,
-    LAPACKE_dgges3,
-    LAPACKE_dgges3_work,
-    LAPACKE_dggev3,
-    LAPACKE_dggev3_work,
-    LAPACKE_dgghd3,
-    LAPACKE_dgghd3_work,
-    LAPACKE_dggsvd3,
-    LAPACKE_dggsvd3_work,
-    LAPACKE_dggsvp3,
-    LAPACKE_dggsvp3_work,
-    LAPACKE_dlapmt,
-    LAPACKE_dlapmt_work,
-    LAPACKE_dlascl,
-    LAPACKE_dlascl_work,
-    LAPACKE_dorcsd2by1,
-    LAPACKE_dorcsd2by1_work,
-    LAPACKE_dpotrf2,
-    LAPACKE_dpotrf2_work,
-    LAPACKE_dsytrf_rook,
-    LAPACKE_dsytrf_rook_work,
-    LAPACKE_dsytrs_rook,
-    LAPACKE_dsytrs_rook_work,
-    LAPACKE_dgelq,
-    LAPACKE_dgelq_work,
-    LAPACKE_dgemlq,
-    LAPACKE_dgemlq_work,
-    LAPACKE_dgemqr,
-    LAPACKE_dgemqr_work,
-    LAPACKE_dgeqr,
-    LAPACKE_dgeqr_work,
-    LAPACKE_dgetsls,
-    LAPACKE_dgetsls_work,
-    LAPACKE_dsbev_2stage,
-    LAPACKE_dsbev_2stage_work,
-    LAPACKE_dsbevd_2stage,
-    LAPACKE_dsbevd_2stage_work,
-    LAPACKE_dsbevx_2stage,
-    LAPACKE_dsbevx_2stage_work,
-    LAPACKE_dsycon_3,
-    LAPACKE_dsycon_3_work,
-    LAPACKE_dsyev_2stage,
-    LAPACKE_dsyev_2stage_work,
-    LAPACKE_dsyevd_2stage,
-    LAPACKE_dsyevd_2stage_work,
-    LAPACKE_dsyevr_2stage,
-    LAPACKE_dsyevr_2stage_work,
-    LAPACKE_dsyevx_2stage,
-    LAPACKE_dsyevx_2stage_work,
-    LAPACKE_dsygv_2stage,
-    LAPACKE_dsygv_2stage_work,
-    LAPACKE_dsysv_aa,
-    LAPACKE_dsysv_aa_work,
-    LAPACKE_dsysv_rk,
-    LAPACKE_dsysv_rk_work,
-    LAPACKE_dsytrf_aa,
-    LAPACKE_dsytrf_aa_work,
-    LAPACKE_dsytrf_rk,
-    LAPACKE_dsytrf_rk_work,
-    LAPACKE_dsytri_3,
-    LAPACKE_dsytri_3_work,
-    LAPACKE_dsytrs_aa,
-    LAPACKE_dsytrs_aa_work,
-    LAPACKE_dsytrs_3,
-    LAPACKE_dsytrs_3_work,
-    LAPACKE_dlassq,
-    LAPACKE_dlassq_work,
-    LAPACKE_dsysv_aa_2stage,
-    LAPACKE_dsysv_aa_2stage_work,
-    LAPACKE_dsytrf_aa_2stage,
-    LAPACKE_dsytrf_aa_2stage_work,
-    LAPACKE_dsytrs_aa_2stage,
-    LAPACKE_dsytrs_aa_2stage_work,
-    LAPACKE_dgesvdq,
-    LAPACKE_dgesvdq_work,
-    LAPACKE_slag2d,
-    LAPACKE_slag2d_work,
-);
-@lapackeobjss = (
-    LAPACKE_sgb_nancheck,
-    LAPACKE_sgb_trans,
-    LAPACKE_sge_nancheck,
-    LAPACKE_sge_trans,
-    LAPACKE_sgg_nancheck,
-    LAPACKE_sgg_trans,
-    LAPACKE_sgt_nancheck,
-    LAPACKE_shs_nancheck,
-    LAPACKE_shs_trans,
-    LAPACKE_s_nancheck,
-    LAPACKE_spb_nancheck,
-    LAPACKE_spb_trans,
-    LAPACKE_spf_nancheck,
-    LAPACKE_spf_trans,
-    LAPACKE_spo_nancheck,
-    LAPACKE_spo_trans,
-    LAPACKE_spp_nancheck,
-    LAPACKE_spp_trans,
-    LAPACKE_spt_nancheck,
-    LAPACKE_ssb_nancheck,
-    LAPACKE_ssb_trans,
-    LAPACKE_ssp_nancheck,
-    LAPACKE_ssp_trans,
-    LAPACKE_sst_nancheck,
-    LAPACKE_ssy_nancheck,
-    LAPACKE_ssy_trans,
-    LAPACKE_stb_nancheck,
-    LAPACKE_stb_trans,
-    LAPACKE_stf_nancheck,
-    LAPACKE_stf_trans,
-    LAPACKE_stp_nancheck,
-    LAPACKE_stp_trans,
-    LAPACKE_str_nancheck,
-    LAPACKE_str_trans,
-    LAPACKE_sbbcsd,
-    LAPACKE_sbbcsd_work,
-    LAPACKE_sbdsdc,
-    LAPACKE_sbdsdc_work,
-    LAPACKE_sbdsqr,
-    LAPACKE_sbdsqr_work,
-    LAPACKE_sdisna,
-    LAPACKE_sdisna_work,
-    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_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_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_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_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_shsein,
-    LAPACKE_shsein_work,
-    LAPACKE_shseqr,
-    LAPACKE_shseqr_work,
-    LAPACKE_slacn2,
-    LAPACKE_slacn2_work,
-    LAPACKE_slacpy,
-    LAPACKE_slacpy_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_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_spftrf,
-    LAPACKE_spftrf_work,
-    LAPACKE_spftri,
-    LAPACKE_spftri_work,
-    LAPACKE_spftrs,
-    LAPACKE_spftrs_work,
-    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_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_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_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_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_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_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_rook,
-    LAPACKE_ssysv_rook_work,
-    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_stbcon,
-    LAPACKE_stbcon_work,
-    LAPACKE_stbrfs,
-    LAPACKE_stbrfs_work,
-    LAPACKE_stbtrs,
-    LAPACKE_stbtrs_work,
-    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_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_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_slatms,
-    LAPACKE_slatms_work,
-    LAPACKE_slagge,
-    LAPACKE_slagge_work,
-    LAPACKE_slagsy,
-    LAPACKE_slagsy_work,
-    LAPACKE_sbdsvdx,
-    LAPACKE_sbdsvdx_work,
-    LAPACKE_sgesvdx,
-    LAPACKE_sgesvdx_work,
-    LAPACKE_sgetrf2,
-    LAPACKE_sgetrf2_work,
-    LAPACKE_sgges3,
-    LAPACKE_sgges3_work,
-    LAPACKE_sggev3,
-    LAPACKE_sggev3_work,
-    LAPACKE_sgghd3,
-    LAPACKE_sgghd3_work,
-    LAPACKE_sggsvd3,
-    LAPACKE_sggsvd3_work,
-    LAPACKE_sggsvp3,
-    LAPACKE_sggsvp3_work,
-    LAPACKE_slapmt,
-    LAPACKE_slapmt_work,
-    LAPACKE_slascl,
-    LAPACKE_slascl_work,
-    LAPACKE_sorcsd2by1,
-    LAPACKE_sorcsd2by1_work,
-    LAPACKE_spotrf2,
-    LAPACKE_spotrf2_work,
-    LAPACKE_ssytrf_rook,
-    LAPACKE_ssytrf_rook_work,
-    LAPACKE_ssytrs_rook,
-    LAPACKE_ssytrs_rook_work,
-    LAPACKE_stpqrt,
-    LAPACKE_stpqrt_work,
-    LAPACKE_sgelq,
-    LAPACKE_sgelq_work,
-    LAPACKE_sgemlq,
-    LAPACKE_sgemlq_work,
-    LAPACKE_sgemqr,
-    LAPACKE_sgemqr_work,
-    LAPACKE_sgeqr,
-    LAPACKE_sgeqr_work,
-    LAPACKE_sgetsls,
-    LAPACKE_sgetsls_work,
-    LAPACKE_ssbev_2stage,
-    LAPACKE_ssbev_2stage_work,
-    LAPACKE_ssbevd_2stage,
-    LAPACKE_ssbevd_2stage_work,
-    LAPACKE_ssbevx_2stage,
-    LAPACKE_ssbevx_2stage_work,
-    LAPACKE_ssycon_3,
-    LAPACKE_ssycon_3_work,
-    LAPACKE_ssyev_2stage,
-    LAPACKE_ssyev_2stage_work,
-    LAPACKE_ssyevd_2stage,
-    LAPACKE_ssyevd_2stage_work,
-    LAPACKE_ssyevr_2stage,
-    LAPACKE_ssyevr_2stage_work,
-    LAPACKE_ssyevx_2stage,
-    LAPACKE_ssyevx_2stage_work,
-    LAPACKE_ssygv_2stage,
-    LAPACKE_ssygv_2stage_work,
-    LAPACKE_ssysv_aa,
-    LAPACKE_ssysv_aa_work,
-    LAPACKE_ssysv_rk,
-    LAPACKE_ssysv_rk_work,
-    LAPACKE_ssytrf_aa,
-    LAPACKE_ssytrf_aa_work,
-    LAPACKE_ssytrf_rk,
-    LAPACKE_ssytrf_rk_work,
-    LAPACKE_ssytri_3,
-    LAPACKE_ssytri_3_work,
-    LAPACKE_ssytrs_aa,
-    LAPACKE_ssytrs_aa_work,
-    LAPACKE_ssytrs_3,
-    LAPACKE_ssytrs_3_work,
-    LAPACKE_slassq,
-    LAPACKE_slassq_work,
-    LAPACKE_ssysv_aa_2stage,
-    LAPACKE_ssysv_aa_2stage_work,
-    LAPACKE_ssytrf_aa_2stage,
-    LAPACKE_ssytrf_aa_2stage_work,
-    LAPACKE_ssytrs_aa_2stage,
-    LAPACKE_ssytrs_aa_2stage_work,
-    LAPACKE_sgesvdq,
-    LAPACKE_sgesvdq_work,
-);
-@lapackeobjsz = (    
-    LAPACKE_zgb_nancheck,
-    LAPACKE_zgb_trans,
-    LAPACKE_zge_nancheck,
-    LAPACKE_zge_trans,
-    LAPACKE_zgg_nancheck,
-    LAPACKE_zgg_trans,
-    LAPACKE_zgt_nancheck,
-    LAPACKE_zhb_nancheck,
-    LAPACKE_zhb_trans,
-    LAPACKE_zhe_nancheck,
-    LAPACKE_zhe_trans,
-    LAPACKE_zhp_nancheck,
-    LAPACKE_zhp_trans,
-    LAPACKE_zhs_nancheck,
-    LAPACKE_zhs_trans,
-    LAPACKE_z_nancheck,
-    LAPACKE_zpb_nancheck,
-    LAPACKE_zpb_trans,
-    LAPACKE_zpf_nancheck,
-    LAPACKE_zpf_trans,
-    LAPACKE_zpo_nancheck,
-    LAPACKE_zpo_trans,
-    LAPACKE_zpp_nancheck,
-    LAPACKE_zpp_trans,
-    LAPACKE_zpt_nancheck,
-    LAPACKE_zsp_nancheck,
-    LAPACKE_zsp_trans,
-    LAPACKE_zst_nancheck,
-    LAPACKE_zsy_nancheck,
-    LAPACKE_zsy_trans,
-    LAPACKE_ztb_nancheck,
-    LAPACKE_ztb_trans,
-    LAPACKE_ztf_nancheck,
-    LAPACKE_ztf_trans,
-    LAPACKE_ztp_nancheck,
-    LAPACKE_ztp_trans,
-    LAPACKE_ztr_nancheck,
-    LAPACKE_ztr_trans,
-    LAPACKE_zbbcsd,
-    LAPACKE_zbbcsd_work,
-    LAPACKE_zbdsqr,
-    LAPACKE_zbdsqr_work,
-    LAPACKE_zcgesv,
-    LAPACKE_zcgesv_work,
-    LAPACKE_zcposv,
-    LAPACKE_zcposv_work,
-    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_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_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_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_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_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_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_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_zhsein,
-    LAPACKE_zhsein_work,
-    LAPACKE_zhseqr,
-    LAPACKE_zhseqr_work,
-    LAPACKE_zlacgv,
-    LAPACKE_zlacgv_work,
-    LAPACKE_zlacn2,
-    LAPACKE_zlacn2_work,
-    LAPACKE_zlacp2,
-    LAPACKE_zlacp2_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_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_zpftrf,
-    LAPACKE_zpftrf_work,
-    LAPACKE_zpftri,
-    LAPACKE_zpftri_work,
-    LAPACKE_zpftrs,
-    LAPACKE_zpftrs_work,
-    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_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_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_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_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_zsycon,
-    LAPACKE_zsycon_work,
-    LAPACKE_zsyconv,
-    LAPACKE_zsyconv_work,
-    LAPACKE_zsyequb,
-    LAPACKE_zsyequb_work,
-    LAPACKE_zsyrfs,
-    LAPACKE_zsyrfs_work,
-    LAPACKE_zsysv,
-    LAPACKE_zsysv_rook,
-    LAPACKE_zsysv_rook_work,
-    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_ztbcon,
-    LAPACKE_ztbcon_work,
-    LAPACKE_ztbrfs,
-    LAPACKE_ztbrfs_work,
-    LAPACKE_ztbtrs,
-    LAPACKE_ztbtrs_work,
-    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_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_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,
-    LAPACKE_zsyr,
-    LAPACKE_zsyr_work,
-    ## @(SRCX_OBJ) from `lapack-3.4.1/lapacke/src/Makefile`
-    ## Not exported: requires LAPACKE_EXTENDED to be set and depends on the
-    ##               corresponding LAPACK extended precision routines.
-    #LAPACKE_cgbrfsx,
-    #LAPACKE_cporfsx,
-    #LAPACKE_dgerfsx,
-    #LAPACKE_sgbrfsx,
-    #LAPACKE_ssyrfsx,
-    #LAPACKE_zherfsx,
-    #LAPACKE_cgbrfsx_work,
-    #LAPACKE_cporfsx_work,
-    #LAPACKE_dgerfsx_work,
-    #LAPACKE_sgbrfsx_work,
-    #LAPACKE_ssyrfsx_work,
-    #LAPACKE_zherfsx_work,
-    #LAPACKE_cgerfsx,
-    #LAPACKE_csyrfsx,
-    #LAPACKE_dporfsx,
-    #LAPACKE_sgerfsx,
-    #LAPACKE_zgbrfsx,
-    #LAPACKE_zporfsx,
-    #LAPACKE_cgerfsx_work,
-    #LAPACKE_csyrfsx_work,
-    #LAPACKE_dporfsx_work,
-    #LAPACKE_sgerfsx_work,
-    #LAPACKE_zgbrfsx_work,
-    #LAPACKE_zporfsx_work,
-    #LAPACKE_cherfsx,
-    #LAPACKE_dgbrfsx,
-    #LAPACKE_dsyrfsx,
-    #LAPACKE_sporfsx,
-    #LAPACKE_zgerfsx,
-    #LAPACKE_zsyrfsx,
-    #LAPACKE_cherfsx_work,
-    #LAPACKE_dgbrfsx_work,
-    #LAPACKE_dsyrfsx_work,
-    #LAPACKE_sporfsx_work,
-    #LAPACKE_zgerfsx_work,
-    #LAPACKE_zsyrfsx_work,
-    #LAPACKE_cgbsvxx,
-    #LAPACKE_cposvxx,
-    #LAPACKE_dgesvxx,
-    #LAPACKE_sgbsvxx,
-    #LAPACKE_ssysvxx,
-    #LAPACKE_zhesvxx,
-    #LAPACKE_cgbsvxx_work,
-    #LAPACKE_cposvxx_work,
-    #LAPACKE_dgesvxx_work,
-    #LAPACKE_sgbsvxx_work,
-    #LAPACKE_ssysvxx_work,
-    #LAPACKE_zhesvxx_work,
-    #LAPACKE_cgesvxx,
-    #LAPACKE_csysvxx,
-    #LAPACKE_dposvxx,
-    #LAPACKE_sgesvxx,
-    #LAPACKE_zgbsvxx,
-    #LAPACKE_zposvxx,
-    #LAPACKE_cgesvxx_work,
-    #LAPACKE_csysvxx_work,
-    #LAPACKE_dposvxx_work,
-    #LAPACKE_sgesvxx_work,
-    #LAPACKE_zgbsvxx_work,
-    #LAPACKE_zposvxx_work,
-    #LAPACKE_chesvxx,
-    #LAPACKE_dgbsvxx,
-    #LAPACKE_dsysvxx,
-    #LAPACKE_sposvxx,
-    #LAPACKE_zgesvxx,
-    #LAPACKE_zsysvxx,
-    #LAPACKE_chesvxx_work,
-    #LAPACKE_dgbsvxx_work,
-    #LAPACKE_dsysvxx_work,
-    #LAPACKE_sposvxx_work,
-    #LAPACKE_zgesvxx_work,
-    #LAPACKE_zsysvxx_work,
-
-    ## @(MATGEN_OBJ) from `lapack-3.4.1/lapacke/src/Makefile`
-    ## Not exported: requires LAPACKE_TESTING to be set and depends on libtmg
-    ##               (see `lapack-3.4.1/TESTING/MATGEN`).
-    LAPACKE_zlatms,
-    LAPACKE_zlatms_work,
-    LAPACKE_zlagge,
-    LAPACKE_zlagge_work,
-    LAPACKE_zlaghe,
-    LAPACKE_zlaghe_work,
-    LAPACKE_zlagsy,
-    LAPACKE_zlagsy_work,
-    ## new function from lapack-3.6.0
-    LAPACKE_zgejsv,
-    LAPACKE_zgejsv_work,
-    LAPACKE_zgesvdx,
-    LAPACKE_zgesvdx_work,
-    LAPACKE_zgesvj,
-    LAPACKE_zgesvj_work,
-    LAPACKE_zgetrf2,
-    LAPACKE_zgetrf2_work,
-    LAPACKE_zgges3,
-    LAPACKE_zgges3_work,
-    LAPACKE_zggev3,
-    LAPACKE_zggev3_work,
-    LAPACKE_zgghd3,
-    LAPACKE_zgghd3_work,
-    LAPACKE_zggsvd3,
-    LAPACKE_zggsvd3_work,
-    LAPACKE_zggsvp3,
-    LAPACKE_zggsvp3_work,
-    LAPACKE_zhetrf_rook,
-    LAPACKE_zhetrf_rook_work,
-    LAPACKE_zhetrs_rook,
-    LAPACKE_zhetrs_rook_work,
-    LAPACKE_zlapmt,
-    LAPACKE_zlapmt_work,
-    LAPACKE_zlascl,
-    LAPACKE_zlascl_work,
-    LAPACKE_zpotrf2,
-    LAPACKE_zpotrf2_work,
-    LAPACKE_zsytrf_rook,
-    LAPACKE_zsytrf_rook_work,
-    LAPACKE_zsytrs_rook,
-    LAPACKE_zsytrs_rook_work,
-    LAPACKE_zuncsd2by1,
-    LAPACKE_zuncsd2by1_work,
-
-    ## new function from lapack-3.7.0
-    LAPACKE_zgelq,
-    LAPACKE_zgelq_work,
-    LAPACKE_zgemlq,
-    LAPACKE_zgemlq_work,
-    LAPACKE_zgemqr,
-    LAPACKE_zgemqr_work,
-    LAPACKE_zgeqr,
-    LAPACKE_zgeqr_work,
-    LAPACKE_zgetsls,
-    LAPACKE_zgetsls_work,
-    LAPACKE_zhbev_2stage,
-    LAPACKE_zhbev_2stage_work,
-    LAPACKE_zhbevd_2stage,
-    LAPACKE_zhbevd_2stage_work,
-    LAPACKE_zhbevx_2stage,
-    LAPACKE_zhbevx_2stage_work,
-    LAPACKE_zhecon_3,
-    LAPACKE_zhecon_3_work,
-    LAPACKE_zheev_2stage,
-    LAPACKE_zheev_2stage_work,
-    LAPACKE_zheevd_2stage,
-    LAPACKE_zheevd_2stage_work,
-    LAPACKE_zheevr_2stage,
-    LAPACKE_zheevr_2stage_work,
-    LAPACKE_zheevx_2stage,
-    LAPACKE_zheevx_2stage_work,
-    LAPACKE_zhegv_2stage,
-    LAPACKE_zhegv_2stage_work,
-    LAPACKE_zhesv_aa,
-    LAPACKE_zhesv_aa_work,
-    LAPACKE_zhesv_rk,
-    LAPACKE_zhesv_rk_work,
-    LAPACKE_zhetrf_aa,
-    LAPACKE_zhetrf_aa_work,
-    LAPACKE_zhetrf_rk,
-    LAPACKE_zhetrf_rk_work,
-    LAPACKE_zhetri_3,
-    LAPACKE_zhetri_3_work,
-    LAPACKE_zhetrs_aa,
-    LAPACKE_zhetrs_aa_work,
-    LAPACKE_zhetrs_3,
-    LAPACKE_zhetrs_3_work,
-    LAPACKE_zsycon_3,
-    LAPACKE_zsycon_3_work,
-    LAPACKE_zsysv_aa,
-    LAPACKE_zsysv_aa_work,
-    LAPACKE_zsysv_rk,
-    LAPACKE_zsysv_rk_work,
-    LAPACKE_zsytrf_aa,
-    LAPACKE_zsytrf_aa_work,
-    LAPACKE_zsytrf_rk,
-    LAPACKE_zsytrf_rk_work,
-    LAPACKE_zsytri_3,
-    LAPACKE_zsytri_3_work,
-    LAPACKE_zsytrs_aa,
-    LAPACKE_zsytrs_aa_work,
-    LAPACKE_zsytrs_3,
-    LAPACKE_zsytrs_3_work,
-    
-    ## new function from lapack-3.8.0
-    LAPACKE_zhesv_aa_2stage,
-    LAPACKE_zhesv_aa_2stage_work,
-    LAPACKE_zhetrf_aa_2stage,
-    LAPACKE_zhetrf_aa_2stage_work,
-    LAPACKE_zhetrs_aa_2stage,
-    LAPACKE_zhetrs_aa_2stage_work,
-    LAPACKE_zlacrm,
-    LAPACKE_zlacrm_work,
-    LAPACKE_zlarcm,
-    LAPACKE_zlarcm_work,
-    LAPACKE_zlassq,
-    LAPACKE_zlassq_work,
-    LAPACKE_zsysv_aa_2stage,
-    LAPACKE_zsysv_aa_2stage_work,
-    LAPACKE_zsytrf_aa_2stage,
-    LAPACKE_zsytrf_aa_2stage_work,
-    LAPACKE_zsytrs_aa_2stage,
-    LAPACKE_zsytrs_aa_2stage_work,
-    # new functions from 3.9.0
-    LAPACKE_zgesvdq,
+  "
+
+lapacke_deprecated_objsc="
+    LAPACKE_cggsvp
+    LAPACKE_cggsvp_work
+    LAPACKE_cggsvd
+    LAPACKE_cggsvd_work
+    LAPACKE_cgeqpf
+    LAPACKE_cgeqpf_work
+"
+
+lapacke_deprecated_objsd="
+    LAPACKE_dggsvp
+    LAPACKE_dggsvp_work
+    LAPACKE_dggsvd
+    LAPACKE_dggsvd_work
+    LAPACKE_dgeqpf
+    LAPACKE_dgeqpf_work
+"
+
+lapacke_deprecated_objss="
+    LAPACKE_sggsvp
+    LAPACKE_sggsvp_work
+    LAPACKE_sggsvd
+    LAPACKE_sggsvd_work
+    LAPACKE_sgeqpf
+    LAPACKE_sgeqpf_work
+"
+
+lapacke_deprecated_objsz="
+    LAPACKE_zggsvp
+    LAPACKE_zggsvp_work
+    LAPACKE_zggsvd
+    LAPACKE_zggsvd_work
+    LAPACKE_zgeqpf
+    LAPACKE_zgeqpf_work
+"
+
+# LAPACK C interface routines.
+#
+# This list is prepared in a similar manner to @lapackobjs2, however the
+# functions all begin with an uppercase prefix (with the exception of the
+# make_complex_* routines).
+#
+# The functions corresponding to @(MATGEN_OBJ) and @(SRCX_OBJ) are not
+# exported since the respective LAPACK routines are not built by default.
+
+# @(OBJ) from `lapack-3.4.1/lapacke/utils/Makefile`
+lapackeobjs="
+    LAPACKE_lsame
+    LAPACKE_ilaver
+    LAPACKE_xerbla
+    lapack_make_complex_float
+    lapack_make_complex_double
+    LAPACKE_get_nancheck
+    LAPACKE_set_nancheck
+"
+
+lapackeobjsc="
+    LAPACKE_cgb_nancheck
+    LAPACKE_cgb_trans
+    LAPACKE_cge_nancheck
+    LAPACKE_cge_trans
+    LAPACKE_cgg_nancheck
+    LAPACKE_cgg_trans
+    LAPACKE_cgt_nancheck
+    LAPACKE_chb_nancheck
+    LAPACKE_chb_trans
+    LAPACKE_che_nancheck
+    LAPACKE_che_trans
+    LAPACKE_chp_nancheck
+    LAPACKE_chp_trans
+    LAPACKE_chs_nancheck
+    LAPACKE_chs_trans
+    LAPACKE_c_nancheck
+    LAPACKE_cpb_nancheck
+    LAPACKE_cpb_trans
+    LAPACKE_cpf_nancheck
+    LAPACKE_cpf_trans
+    LAPACKE_cpo_nancheck
+    LAPACKE_cpo_trans
+    LAPACKE_cpp_nancheck
+    LAPACKE_cpp_trans
+    LAPACKE_cpt_nancheck
+    LAPACKE_csp_nancheck
+    LAPACKE_csp_trans
+    LAPACKE_cst_nancheck
+    LAPACKE_csy_nancheck
+    LAPACKE_csy_trans
+    LAPACKE_ctb_nancheck
+    LAPACKE_ctb_trans
+    LAPACKE_ctf_nancheck
+    LAPACKE_ctf_trans
+    LAPACKE_ctp_nancheck
+    LAPACKE_ctp_trans
+    LAPACKE_ctr_nancheck
+    LAPACKE_ctr_trans
+    LAPACKE_cbbcsd
+    LAPACKE_cbbcsd_work
+    LAPACKE_cbdsqr
+    LAPACKE_cbdsqr_work
+    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_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_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_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_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_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_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_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_chsein
+    LAPACKE_chsein_work
+    LAPACKE_chseqr
+    LAPACKE_chseqr_work
+    LAPACKE_clacgv
+    LAPACKE_clacgv_work
+    LAPACKE_clacn2
+    LAPACKE_clacn2_work
+    LAPACKE_clacp2
+    LAPACKE_clacp2_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_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_cpftrf
+    LAPACKE_cpftrf_work
+    LAPACKE_cpftri
+    LAPACKE_cpftri_work
+    LAPACKE_cpftrs
+    LAPACKE_cpftrs_work
+    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_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_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_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_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_csycon
+    LAPACKE_csycon_work
+    LAPACKE_csyconv
+    LAPACKE_csyconv_work
+    LAPACKE_csyequb
+    LAPACKE_csyequb_work
+    LAPACKE_csyrfs
+    LAPACKE_csyrfs_work
+    LAPACKE_csysv
+    LAPACKE_csysv_rook
+    LAPACKE_csysv_rook_work
+    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_ctbcon
+    LAPACKE_ctbcon_work
+    LAPACKE_ctbrfs
+    LAPACKE_ctbrfs_work
+    LAPACKE_ctbtrs
+    LAPACKE_ctbtrs_work
+    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_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_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_csyr
+    LAPACKE_csyr_work
+    LAPACKE_clatms
+    LAPACKE_clatms_work
+    LAPACKE_clagge
+    LAPACKE_clagge_work
+    LAPACKE_claghe
+    LAPACKE_claghe_work
+    LAPACKE_clagsy
+    LAPACKE_clagsy_work
+    LAPACKE_cgejsv
+    LAPACKE_cgejsv_work
+    LAPACKE_cgesvdx
+    LAPACKE_cgesvdx_work
+    LAPACKE_cgesvj
+    LAPACKE_cgesvj_work
+    LAPACKE_cgetrf2
+    LAPACKE_cgetrf2_work
+    LAPACKE_cgges3
+    LAPACKE_cgges3_work
+    LAPACKE_cggev3
+    LAPACKE_cggev3_work
+    LAPACKE_cgghd3
+    LAPACKE_cgghd3_work
+    LAPACKE_cggsvd3
+    LAPACKE_cggsvd3_work
+    LAPACKE_cggsvp3
+    LAPACKE_cggsvp3_work
+    LAPACKE_chetrf_rook
+    LAPACKE_chetrf_rook_work
+    LAPACKE_chetrs_rook
+    LAPACKE_chetrs_rook_work
+    LAPACKE_clapmt
+    LAPACKE_clapmt_work
+    LAPACKE_clascl
+    LAPACKE_clascl_work
+    LAPACKE_cpotrf2
+    LAPACKE_cpotrf2_work
+    LAPACKE_csytrf_rook
+    LAPACKE_csytrf_rook_work
+    LAPACKE_csytrs_rook
+    LAPACKE_csytrs_rook_work
+    LAPACKE_cuncsd2by1
+    LAPACKE_cuncsd2by1_work
+    LAPACKE_cgelq
+    LAPACKE_cgelq_work
+    LAPACKE_cgemlq
+    LAPACKE_cgemlq_work
+    LAPACKE_cgemqr
+    LAPACKE_cgemqr_work
+    LAPACKE_cgeqr
+    LAPACKE_cgeqr_work
+    LAPACKE_cgetsls
+    LAPACKE_cgetsls_work
+    LAPACKE_chbev_2stage
+    LAPACKE_chbev_2stage_work
+    LAPACKE_chbevd_2stage
+    LAPACKE_chbevd_2stage_work
+    LAPACKE_chbevx_2stage
+    LAPACKE_chbevx_2stage_work
+    LAPACKE_checon_3
+    LAPACKE_checon_3_work
+    LAPACKE_cheev_2stage
+    LAPACKE_cheev_2stage_work
+    LAPACKE_cheevd_2stage
+    LAPACKE_cheevd_2stage_work
+    LAPACKE_cheevr_2stage
+    LAPACKE_cheevr_2stage_work
+    LAPACKE_cheevx_2stage
+    LAPACKE_cheevx_2stage_work
+    LAPACKE_chegv_2stage
+    LAPACKE_chegv_2stage_work
+    LAPACKE_chesv_aa
+    LAPACKE_chesv_aa_work
+    LAPACKE_chesv_rk
+    LAPACKE_chesv_rk_work
+    LAPACKE_chetrf_aa
+    LAPACKE_chetrf_aa_work
+    LAPACKE_chetrf_rk
+    LAPACKE_chetrf_rk_work
+    LAPACKE_chetri_3
+    LAPACKE_chetri_3_work
+    LAPACKE_chetrs_aa
+    LAPACKE_chetrs_aa_work
+    LAPACKE_chetrs_3
+    LAPACKE_chetrs_3_work
+    LAPACKE_csycon_3
+    LAPACKE_csycon_3_work
+    LAPACKE_csysv_aa
+    LAPACKE_csysv_aa_work
+    LAPACKE_csysv_rk
+    LAPACKE_csysv_rk_work
+    LAPACKE_csytrf_aa
+    LAPACKE_csytrf_aa_work
+    LAPACKE_csytrf_rk
+    LAPACKE_csytrf_rk_work
+    LAPACKE_csytri_3
+    LAPACKE_csytri_3_work
+    LAPACKE_csytrs_aa
+    LAPACKE_csytrs_aa_work
+    LAPACKE_csytrs_3
+    LAPACKE_csytrs_3_work
+    LAPACKE_chesv_aa_2stage
+    LAPACKE_chesv_aa_2stage_work
+    LAPACKE_chetrf_aa_2stage
+    LAPACKE_chetrf_aa_2stage_work
+    LAPACKE_chetrs_aa_2stage
+    LAPACKE_chetrs_aa_2stage_work
+    LAPACKE_clacrm
+    LAPACKE_clacrm_work
+    LAPACKE_clarcm
+    LAPACKE_clarcm_work
+    LAPACKE_classq
+    LAPACKE_classq_work
+    LAPACKE_csysv_aa_2stage
+    LAPACKE_csysv_aa_2stage_work
+    LAPACKE_csytrf_aa_2stage
+    LAPACKE_csytrf_aa_2stage_work
+    LAPACKE_csytrs_aa_2stage
+    LAPACKE_csytrs_aa_2stage_work
+    LAPACKE_cgesvdq
+    LAPACKE_cgesvdq_work
+    LAPACKE_cgetsqrhrt
+    LAPACKE_cgetsqrhrt_work
+    LAPACKE_cungtsqr_row
+    LAPACKE_cungtsqr_row_work
+"
+
+lapackeobjsd="
+    LAPACKE_dgb_nancheck
+    LAPACKE_dgb_trans
+    LAPACKE_dge_nancheck
+    LAPACKE_dge_trans
+    LAPACKE_dgg_nancheck
+    LAPACKE_dgg_trans
+    LAPACKE_dgt_nancheck
+    LAPACKE_dhs_nancheck
+    LAPACKE_dhs_trans
+    LAPACKE_d_nancheck
+    LAPACKE_dpb_nancheck
+    LAPACKE_dpb_trans
+    LAPACKE_dpf_nancheck
+    LAPACKE_dpf_trans
+    LAPACKE_dpo_nancheck
+    LAPACKE_dpo_trans
+    LAPACKE_dpp_nancheck
+    LAPACKE_dpp_trans
+    LAPACKE_dpt_nancheck
+    LAPACKE_dsb_nancheck
+    LAPACKE_dsb_trans
+    LAPACKE_dsp_nancheck
+    LAPACKE_dsp_trans
+    LAPACKE_dst_nancheck
+    LAPACKE_dsy_nancheck
+    LAPACKE_dsy_trans
+    LAPACKE_dtb_nancheck
+    LAPACKE_dtb_trans
+    LAPACKE_dtf_nancheck
+    LAPACKE_dtf_trans
+    LAPACKE_dtp_nancheck
+    LAPACKE_dtp_trans
+    LAPACKE_dtr_nancheck
+    LAPACKE_dtr_trans
+    LAPACKE_dbbcsd
+    LAPACKE_dbbcsd_work
+    LAPACKE_dbdsdc
+    LAPACKE_dbdsdc_work
+    LAPACKE_dbdsqr
+    LAPACKE_dbdsqr_work
+    LAPACKE_ddisna
+    LAPACKE_ddisna_work
+    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_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_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_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_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_dhsein
+    LAPACKE_dhsein_work
+    LAPACKE_dhseqr
+    LAPACKE_dhseqr_work
+    LAPACKE_dlacn2
+    LAPACKE_dlacn2_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_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_dpftrf
+    LAPACKE_dpftrf_work
+    LAPACKE_dpftri
+    LAPACKE_dpftri_work
+    LAPACKE_dpftrs
+    LAPACKE_dpftrs_work
+    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_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_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_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_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_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_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_rook
+    LAPACKE_dsysv_rook_work
+    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_dtbcon
+    LAPACKE_dtbcon_work
+    LAPACKE_dtbrfs
+    LAPACKE_dtbrfs_work
+    LAPACKE_dtbtrs
+    LAPACKE_dtbtrs_work
+    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_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_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_dlatms
+    LAPACKE_dlatms_work
+    LAPACKE_dlagge
+    LAPACKE_dlagge_work
+    LAPACKE_dlagsy
+    LAPACKE_dlagsy_work
+    LAPACKE_dbdsvdx
+    LAPACKE_dbdsvdx_work
+    LAPACKE_dgesvdx
+    LAPACKE_dgesvdx_work
+    LAPACKE_dgetrf2
+    LAPACKE_dgetrf2_work
+    LAPACKE_dgges3
+    LAPACKE_dgges3_work
+    LAPACKE_dggev3
+    LAPACKE_dggev3_work
+    LAPACKE_dgghd3
+    LAPACKE_dgghd3_work
+    LAPACKE_dggsvd3
+    LAPACKE_dggsvd3_work
+    LAPACKE_dggsvp3
+    LAPACKE_dggsvp3_work
+    LAPACKE_dlapmt
+    LAPACKE_dlapmt_work
+    LAPACKE_dlascl
+    LAPACKE_dlascl_work
+    LAPACKE_dorcsd2by1
+    LAPACKE_dorcsd2by1_work
+    LAPACKE_dpotrf2
+    LAPACKE_dpotrf2_work
+    LAPACKE_dsytrf_rook
+    LAPACKE_dsytrf_rook_work
+    LAPACKE_dsytrs_rook
+    LAPACKE_dsytrs_rook_work
+    LAPACKE_dgelq
+    LAPACKE_dgelq_work
+    LAPACKE_dgemlq
+    LAPACKE_dgemlq_work
+    LAPACKE_dgemqr
+    LAPACKE_dgemqr_work
+    LAPACKE_dgeqr
+    LAPACKE_dgeqr_work
+    LAPACKE_dgetsls
+    LAPACKE_dgetsls_work
+    LAPACKE_dsbev_2stage
+    LAPACKE_dsbev_2stage_work
+    LAPACKE_dsbevd_2stage
+    LAPACKE_dsbevd_2stage_work
+    LAPACKE_dsbevx_2stage
+    LAPACKE_dsbevx_2stage_work
+    LAPACKE_dsycon_3
+    LAPACKE_dsycon_3_work
+    LAPACKE_dsyev_2stage
+    LAPACKE_dsyev_2stage_work
+    LAPACKE_dsyevd_2stage
+    LAPACKE_dsyevd_2stage_work
+    LAPACKE_dsyevr_2stage
+    LAPACKE_dsyevr_2stage_work
+    LAPACKE_dsyevx_2stage
+    LAPACKE_dsyevx_2stage_work
+    LAPACKE_dsygv_2stage
+    LAPACKE_dsygv_2stage_work
+    LAPACKE_dsysv_aa
+    LAPACKE_dsysv_aa_work
+    LAPACKE_dsysv_rk
+    LAPACKE_dsysv_rk_work
+    LAPACKE_dsytrf_aa
+    LAPACKE_dsytrf_aa_work
+    LAPACKE_dsytrf_rk
+    LAPACKE_dsytrf_rk_work
+    LAPACKE_dsytri_3
+    LAPACKE_dsytri_3_work
+    LAPACKE_dsytrs_aa
+    LAPACKE_dsytrs_aa_work
+    LAPACKE_dsytrs_3
+    LAPACKE_dsytrs_3_work
+    LAPACKE_dlassq
+    LAPACKE_dlassq_work
+    LAPACKE_dsysv_aa_2stage
+    LAPACKE_dsysv_aa_2stage_work
+    LAPACKE_dsytrf_aa_2stage
+    LAPACKE_dsytrf_aa_2stage_work
+    LAPACKE_dsytrs_aa_2stage
+    LAPACKE_dsytrs_aa_2stage_work
+    LAPACKE_dgesvdq
+    LAPACKE_dgesvdq_work
+    LAPACKE_slag2d
+    LAPACKE_slag2d_work
+    LAPACKE_dgetsqrhrt
+    LAPACKE_dgetsqrhrt_work
+    LAPACKE_dorgtsqr_row
+    LAPACKE_dorgtsqr_row_work
+"
+
+lapackeobjss="
+    LAPACKE_sgb_nancheck
+    LAPACKE_sgb_trans
+    LAPACKE_sge_nancheck
+    LAPACKE_sge_trans
+    LAPACKE_sgg_nancheck
+    LAPACKE_sgg_trans
+    LAPACKE_sgt_nancheck
+    LAPACKE_shs_nancheck
+    LAPACKE_shs_trans
+    LAPACKE_s_nancheck
+    LAPACKE_spb_nancheck
+    LAPACKE_spb_trans
+    LAPACKE_spf_nancheck
+    LAPACKE_spf_trans
+    LAPACKE_spo_nancheck
+    LAPACKE_spo_trans
+    LAPACKE_spp_nancheck
+    LAPACKE_spp_trans
+    LAPACKE_spt_nancheck
+    LAPACKE_ssb_nancheck
+    LAPACKE_ssb_trans
+    LAPACKE_ssp_nancheck
+    LAPACKE_ssp_trans
+    LAPACKE_sst_nancheck
+    LAPACKE_ssy_nancheck
+    LAPACKE_ssy_trans
+    LAPACKE_stb_nancheck
+    LAPACKE_stb_trans
+    LAPACKE_stf_nancheck
+    LAPACKE_stf_trans
+    LAPACKE_stp_nancheck
+    LAPACKE_stp_trans
+    LAPACKE_str_nancheck
+    LAPACKE_str_trans
+    LAPACKE_sbbcsd
+    LAPACKE_sbbcsd_work
+    LAPACKE_sbdsdc
+    LAPACKE_sbdsdc_work
+    LAPACKE_sbdsqr
+    LAPACKE_sbdsqr_work
+    LAPACKE_sdisna
+    LAPACKE_sdisna_work
+    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_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_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_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_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_shsein
+    LAPACKE_shsein_work
+    LAPACKE_shseqr
+    LAPACKE_shseqr_work
+    LAPACKE_slacn2
+    LAPACKE_slacn2_work
+    LAPACKE_slacpy
+    LAPACKE_slacpy_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_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_spftrf
+    LAPACKE_spftrf_work
+    LAPACKE_spftri
+    LAPACKE_spftri_work
+    LAPACKE_spftrs
+    LAPACKE_spftrs_work
+    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_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_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_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_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_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_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_rook
+    LAPACKE_ssysv_rook_work
+    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_stbcon
+    LAPACKE_stbcon_work
+    LAPACKE_stbrfs
+    LAPACKE_stbrfs_work
+    LAPACKE_stbtrs
+    LAPACKE_stbtrs_work
+    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_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_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_slatms
+    LAPACKE_slatms_work
+    LAPACKE_slagge
+    LAPACKE_slagge_work
+    LAPACKE_slagsy
+    LAPACKE_slagsy_work
+    LAPACKE_sbdsvdx
+    LAPACKE_sbdsvdx_work
+    LAPACKE_sgesvdx
+    LAPACKE_sgesvdx_work
+    LAPACKE_sgetrf2
+    LAPACKE_sgetrf2_work
+    LAPACKE_sgges3
+    LAPACKE_sgges3_work
+    LAPACKE_sggev3
+    LAPACKE_sggev3_work
+    LAPACKE_sgghd3
+    LAPACKE_sgghd3_work
+    LAPACKE_sggsvd3
+    LAPACKE_sggsvd3_work
+    LAPACKE_sggsvp3
+    LAPACKE_sggsvp3_work
+    LAPACKE_slapmt
+    LAPACKE_slapmt_work
+    LAPACKE_slascl
+    LAPACKE_slascl_work
+    LAPACKE_sorcsd2by1
+    LAPACKE_sorcsd2by1_work
+    LAPACKE_spotrf2
+    LAPACKE_spotrf2_work
+    LAPACKE_ssytrf_rook
+    LAPACKE_ssytrf_rook_work
+    LAPACKE_ssytrs_rook
+    LAPACKE_ssytrs_rook_work
+    LAPACKE_stpqrt
+    LAPACKE_stpqrt_work
+    LAPACKE_sgelq
+    LAPACKE_sgelq_work
+    LAPACKE_sgemlq
+    LAPACKE_sgemlq_work
+    LAPACKE_sgemqr
+    LAPACKE_sgemqr_work
+    LAPACKE_sgeqr
+    LAPACKE_sgeqr_work
+    LAPACKE_sgetsls
+    LAPACKE_sgetsls_work
+    LAPACKE_ssbev_2stage
+    LAPACKE_ssbev_2stage_work
+    LAPACKE_ssbevd_2stage
+    LAPACKE_ssbevd_2stage_work
+    LAPACKE_ssbevx_2stage
+    LAPACKE_ssbevx_2stage_work
+    LAPACKE_ssycon_3
+    LAPACKE_ssycon_3_work
+    LAPACKE_ssyev_2stage
+    LAPACKE_ssyev_2stage_work
+    LAPACKE_ssyevd_2stage
+    LAPACKE_ssyevd_2stage_work
+    LAPACKE_ssyevr_2stage
+    LAPACKE_ssyevr_2stage_work
+    LAPACKE_ssyevx_2stage
+    LAPACKE_ssyevx_2stage_work
+    LAPACKE_ssygv_2stage
+    LAPACKE_ssygv_2stage_work
+    LAPACKE_ssysv_aa
+    LAPACKE_ssysv_aa_work
+    LAPACKE_ssysv_rk
+    LAPACKE_ssysv_rk_work
+    LAPACKE_ssytrf_aa
+    LAPACKE_ssytrf_aa_work
+    LAPACKE_ssytrf_rk
+    LAPACKE_ssytrf_rk_work
+    LAPACKE_ssytri_3
+    LAPACKE_ssytri_3_work
+    LAPACKE_ssytrs_aa
+    LAPACKE_ssytrs_aa_work
+    LAPACKE_ssytrs_3
+    LAPACKE_ssytrs_3_work
+    LAPACKE_slassq
+    LAPACKE_slassq_work
+    LAPACKE_ssysv_aa_2stage
+    LAPACKE_ssysv_aa_2stage_work
+    LAPACKE_ssytrf_aa_2stage
+    LAPACKE_ssytrf_aa_2stage_work
+    LAPACKE_ssytrs_aa_2stage
+    LAPACKE_ssytrs_aa_2stage_work
+    LAPACKE_sgesvdq
+    LAPACKE_sgesvdq_work
+    LAPACKE_sgetsqrhrt
+    LAPACKE_sgetsqrhrt_work
+    LAPACKE_sorgtsqr_row
+    LAPACKE_sorgtsqr_row_work
+"
+
+lapackeobjsz="
+    LAPACKE_zgb_nancheck
+    LAPACKE_zgb_trans
+    LAPACKE_zge_nancheck
+    LAPACKE_zge_trans
+    LAPACKE_zgg_nancheck
+    LAPACKE_zgg_trans
+    LAPACKE_zgt_nancheck
+    LAPACKE_zhb_nancheck
+    LAPACKE_zhb_trans
+    LAPACKE_zhe_nancheck
+    LAPACKE_zhe_trans
+    LAPACKE_zhp_nancheck
+    LAPACKE_zhp_trans
+    LAPACKE_zhs_nancheck
+    LAPACKE_zhs_trans
+    LAPACKE_z_nancheck
+    LAPACKE_zpb_nancheck
+    LAPACKE_zpb_trans
+    LAPACKE_zpf_nancheck
+    LAPACKE_zpf_trans
+    LAPACKE_zpo_nancheck
+    LAPACKE_zpo_trans
+    LAPACKE_zpp_nancheck
+    LAPACKE_zpp_trans
+    LAPACKE_zpt_nancheck
+    LAPACKE_zsp_nancheck
+    LAPACKE_zsp_trans
+    LAPACKE_zst_nancheck
+    LAPACKE_zsy_nancheck
+    LAPACKE_zsy_trans
+    LAPACKE_ztb_nancheck
+    LAPACKE_ztb_trans
+    LAPACKE_ztf_nancheck
+    LAPACKE_ztf_trans
+    LAPACKE_ztp_nancheck
+    LAPACKE_ztp_trans
+    LAPACKE_ztr_nancheck
+    LAPACKE_ztr_trans
+    LAPACKE_zbbcsd
+    LAPACKE_zbbcsd_work
+    LAPACKE_zbdsqr
+    LAPACKE_zbdsqr_work
+    LAPACKE_zcgesv
+    LAPACKE_zcgesv_work
+    LAPACKE_zcposv
+    LAPACKE_zcposv_work
+    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_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_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_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_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_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_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_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_zhsein
+    LAPACKE_zhsein_work
+    LAPACKE_zhseqr
+    LAPACKE_zhseqr_work
+    LAPACKE_zlacgv
+    LAPACKE_zlacgv_work
+    LAPACKE_zlacn2
+    LAPACKE_zlacn2_work
+    LAPACKE_zlacp2
+    LAPACKE_zlacp2_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_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_zpftrf
+    LAPACKE_zpftrf_work
+    LAPACKE_zpftri
+    LAPACKE_zpftri_work
+    LAPACKE_zpftrs
+    LAPACKE_zpftrs_work
+    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_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_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_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_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_zsycon
+    LAPACKE_zsycon_work
+    LAPACKE_zsyconv
+    LAPACKE_zsyconv_work
+    LAPACKE_zsyequb
+    LAPACKE_zsyequb_work
+    LAPACKE_zsyrfs
+    LAPACKE_zsyrfs_work
+    LAPACKE_zsysv
+    LAPACKE_zsysv_rook
+    LAPACKE_zsysv_rook_work
+    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_ztbcon
+    LAPACKE_ztbcon_work
+    LAPACKE_ztbrfs
+    LAPACKE_ztbrfs_work
+    LAPACKE_ztbtrs
+    LAPACKE_ztbtrs_work
+    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_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_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
+    LAPACKE_zsyr
+    LAPACKE_zsyr_work
+    LAPACKE_zlatms
+    LAPACKE_zlatms_work
+    LAPACKE_zlagge
+    LAPACKE_zlagge_work
+    LAPACKE_zlaghe
+    LAPACKE_zlaghe_work
+    LAPACKE_zlagsy
+    LAPACKE_zlagsy_work
+    LAPACKE_zgejsv
+    LAPACKE_zgejsv_work
+    LAPACKE_zgesvdx
+    LAPACKE_zgesvdx_work
+    LAPACKE_zgesvj
+    LAPACKE_zgesvj_work
+    LAPACKE_zgetrf2
+    LAPACKE_zgetrf2_work
+    LAPACKE_zgges3
+    LAPACKE_zgges3_work
+    LAPACKE_zggev3
+    LAPACKE_zggev3_work
+    LAPACKE_zgghd3
+    LAPACKE_zgghd3_work
+    LAPACKE_zggsvd3
+    LAPACKE_zggsvd3_work
+    LAPACKE_zggsvp3
+    LAPACKE_zggsvp3_work
+    LAPACKE_zhetrf_rook
+    LAPACKE_zhetrf_rook_work
+    LAPACKE_zhetrs_rook
+    LAPACKE_zhetrs_rook_work
+    LAPACKE_zlapmt
+    LAPACKE_zlapmt_work
+    LAPACKE_zlascl
+    LAPACKE_zlascl_work
+    LAPACKE_zpotrf2
+    LAPACKE_zpotrf2_work
+    LAPACKE_zsytrf_rook
+    LAPACKE_zsytrf_rook_work
+    LAPACKE_zsytrs_rook
+    LAPACKE_zsytrs_rook_work
+    LAPACKE_zuncsd2by1
+    LAPACKE_zuncsd2by1_work
+    LAPACKE_zgelq
+    LAPACKE_zgelq_work
+    LAPACKE_zgemlq
+    LAPACKE_zgemlq_work
+    LAPACKE_zgemqr
+    LAPACKE_zgemqr_work
+    LAPACKE_zgeqr
+    LAPACKE_zgeqr_work
+    LAPACKE_zgetsls
+    LAPACKE_zgetsls_work
+    LAPACKE_zhbev_2stage
+    LAPACKE_zhbev_2stage_work
+    LAPACKE_zhbevd_2stage
+    LAPACKE_zhbevd_2stage_work
+    LAPACKE_zhbevx_2stage
+    LAPACKE_zhbevx_2stage_work
+    LAPACKE_zhecon_3
+    LAPACKE_zhecon_3_work
+    LAPACKE_zheev_2stage
+    LAPACKE_zheev_2stage_work
+    LAPACKE_zheevd_2stage
+    LAPACKE_zheevd_2stage_work
+    LAPACKE_zheevr_2stage
+    LAPACKE_zheevr_2stage_work
+    LAPACKE_zheevx_2stage
+    LAPACKE_zheevx_2stage_work
+    LAPACKE_zhegv_2stage
+    LAPACKE_zhegv_2stage_work
+    LAPACKE_zhesv_aa
+    LAPACKE_zhesv_aa_work
+    LAPACKE_zhesv_rk
+    LAPACKE_zhesv_rk_work
+    LAPACKE_zhetrf_aa
+    LAPACKE_zhetrf_aa_work
+    LAPACKE_zhetrf_rk
+    LAPACKE_zhetrf_rk_work
+    LAPACKE_zhetri_3
+    LAPACKE_zhetri_3_work
+    LAPACKE_zhetrs_aa
+    LAPACKE_zhetrs_aa_work
+    LAPACKE_zhetrs_3
+    LAPACKE_zhetrs_3_work
+    LAPACKE_zsycon_3
+    LAPACKE_zsycon_3_work
+    LAPACKE_zsysv_aa
+    LAPACKE_zsysv_aa_work
+    LAPACKE_zsysv_rk
+    LAPACKE_zsysv_rk_work
+    LAPACKE_zsytrf_aa
+    LAPACKE_zsytrf_aa_work
+    LAPACKE_zsytrf_rk
+    LAPACKE_zsytrf_rk_work
+    LAPACKE_zsytri_3
+    LAPACKE_zsytri_3_work
+    LAPACKE_zsytrs_aa
+    LAPACKE_zsytrs_aa_work
+    LAPACKE_zsytrs_3
+    LAPACKE_zsytrs_3_work
+    LAPACKE_zhesv_aa_2stage
+    LAPACKE_zhesv_aa_2stage_work
+    LAPACKE_zhetrf_aa_2stage
+    LAPACKE_zhetrf_aa_2stage_work
+    LAPACKE_zhetrs_aa_2stage
+    LAPACKE_zhetrs_aa_2stage_work
+    LAPACKE_zlacrm
+    LAPACKE_zlacrm_work
+    LAPACKE_zlarcm
+    LAPACKE_zlarcm_work
+    LAPACKE_zlassq
+    LAPACKE_zlassq_work
+    LAPACKE_zsysv_aa_2stage
+    LAPACKE_zsysv_aa_2stage_work
+    LAPACKE_zsytrf_aa_2stage
+    LAPACKE_zsytrf_aa_2stage_work
+    LAPACKE_zsytrs_aa_2stage
+    LAPACKE_zsytrs_aa_2stage_work
+    LAPACKE_zgesvdq
     LAPACKE_zgesvdq_work
-);
+    LAPACKE_zgetsqrhrt
+    LAPACKE_zgetsqrhrt_work
+    LAPACKE_zungtsqr_row
+    LAPACKE_zungtsqr_row_work
+"
+## @(SRCX_OBJ) from `lapack-3.4.1/lapacke/src/Makefile`
+## Not exported: requires LAPACKE_EXTENDED to be set and depends on the
+##               corresponding LAPACK extended precision routines.
+#LAPACKE_cgbrfsx,
+#LAPACKE_cporfsx,
+#LAPACKE_dgerfsx,
+#LAPACKE_sgbrfsx,
+#LAPACKE_ssyrfsx,
+#LAPACKE_zherfsx,
+#LAPACKE_cgbrfsx_work,
+#LAPACKE_cporfsx_work,
+#LAPACKE_dgerfsx_work,
+#LAPACKE_sgbrfsx_work,
+#LAPACKE_ssyrfsx_work,
+#LAPACKE_zherfsx_work,
+#LAPACKE_cgerfsx,
+#LAPACKE_csyrfsx,
+#LAPACKE_dporfsx,
+#LAPACKE_sgerfsx,
+#LAPACKE_zgbrfsx,
+#LAPACKE_zporfsx,
+#LAPACKE_cgerfsx_work,
+#LAPACKE_csyrfsx_work,
+#LAPACKE_dporfsx_work,
+#LAPACKE_sgerfsx_work,
+#LAPACKE_zgbrfsx_work,
+#LAPACKE_zporfsx_work,
+#LAPACKE_cherfsx,
+#LAPACKE_dgbrfsx,
+#LAPACKE_dsyrfsx,
+#LAPACKE_sporfsx,
+#LAPACKE_zgerfsx,
+#LAPACKE_zsyrfsx,
+#LAPACKE_cherfsx_work,
+#LAPACKE_dgbrfsx_work,
+#LAPACKE_dsyrfsx_work,
+#LAPACKE_sporfsx_work,
+#LAPACKE_zgerfsx_work,
+#LAPACKE_zsyrfsx_work,
+#LAPACKE_cgbsvxx,
+#LAPACKE_cposvxx,
+#LAPACKE_dgesvxx,
+#LAPACKE_sgbsvxx,
+#LAPACKE_ssysvxx,
+#LAPACKE_zhesvxx,
+#LAPACKE_cgbsvxx_work,
+#LAPACKE_cposvxx_work,
+#LAPACKE_dgesvxx_work,
+#LAPACKE_sgbsvxx_work,
+#LAPACKE_ssysvxx_work,
+#LAPACKE_zhesvxx_work,
+#LAPACKE_cgesvxx,
+#LAPACKE_csysvxx,
+#LAPACKE_dposvxx,
+#LAPACKE_sgesvxx,
+#LAPACKE_zgbsvxx,
+#LAPACKE_zposvxx,
+#LAPACKE_cgesvxx_work,
+#LAPACKE_csysvxx_work,
+#LAPACKE_dposvxx_work,
+#LAPACKE_sgesvxx_work,
+#LAPACKE_zgbsvxx_work,
+#LAPACKE_zposvxx_work,
+#LAPACKE_chesvxx,
+#LAPACKE_dgbsvxx,
+#LAPACKE_dsysvxx,
+#LAPACKE_sposvxx,
+#LAPACKE_zgesvxx,
+#LAPACKE_zsysvxx,
+#LAPACKE_chesvxx_work,
+#LAPACKE_dgbsvxx_work,
+#LAPACKE_dsysvxx_work,
+#LAPACKE_sposvxx_work,
+#LAPACKE_zgesvxx_work,
+#LAPACKE_zsysvxx_work,
+
+## @(MATGEN_OBJ) from `lapack-3.4.1/lapacke/src/Makefile`
+## Not exported: requires LAPACKE_TESTING to be set and depends on libtmg
+##               (see `lapack-3.4.1/TESTING/MATGEN`).
 
 #These function may need 2 underscores.
-@lapack_embeded_underscore_objs=(
-    xerbla_array, chla_transtype,
-    );
-@lapack_embeded_underscore_objs_s=(    
-     slasyf_rook,
-    ssytf2_rook, ssytrf_rook, ssytrs_rook,
-    ssytri_rook, ssycon_rook, ssysv_rook,
-    slasyf_rk, ssyconvf_rook, ssytf2_rk,
-    ssytrf_rk, ssytrs_3, ssytri_3,
-    ssytri_3x, ssycon_3, ssysv_rk,
-    slasyf_aa, ssysv_aa, ssytrf_aa,
-    ssytrs_aa, ssytrd_2stage, ssytrd_sy2sb,
-    ssytrd_sb2st, ssb2st_kernels, ssyevd_2stage,
-    ssyev_2stage, ssyevx_2stage, ssyevr_2stage,
-    ssbev_2stage, ssbevx_2stage, ssbevd_2stage,
-    ssygv_2stage, 
-    ssysv_aa_2stage, ssytrf_aa_2stage,
-    ssytrs_aa_2stage, 
-    slaorhr_col_getrfnp, slaorhr_col_getrfnp2, sorhr_col,
-);
-@lapack_embeded_underscore_objs_c=(    
-    chetf2_rook, chetrf_rook, chetri_rook,
-    chetrs_rook, checon_rook, chesv_rook,
-    clahef_rook, clasyf_rook,
-    csytf2_rook, csytrf_rook, csytrs_rook,
-    csytri_rook, csycon_rook, csysv_rook,
-    chetf2_rk,
-    chetrf_rk, chetri_3, chetri_3x,
-    chetrs_3, checon_3, chesv_rk,
-    chesv_aa, chetrf_aa, chetrs_aa,
-    clahef_aa, clahef_rk, clasyf_rk,
-    clasyf_aa, csytf2_rk, csytrf_rk,
-    csytrf_aa, csytrs_3, csytrs_aa,
-    csytri_3, csytri_3x, csycon_3,
-    csysv_rk, csysv_aa, csyconvf_rook,
-    chetrd_2stage, chetrd_he2hb, chetrd_hb2st,
-    chb2st_kernels, cheevd_2stage, cheev_2stage,
-    cheevx_2stage, cheevr_2stage, chbev_2stage,
-    chbevx_2stage, chbevd_2stage, chegv_2stage,
-    chesv_aa_2stage,
-    chetrf_aa_2stage, chetrs_aa_2stage,
-    csysv_aa_2stage, csytrf_aa_2stage,
-    csytrs_aa_2stage,
-    claunhr_col_getrfnp, claunhr_col_getrfnp2, cunhr_col,
-);
-@lapack_embeded_underscore_objs_d=(    
-    dlasyf_rook,
-    dsytf2_rook, dsytrf_rook, dsytrs_rook,
-    dsytri_rook, dsycon_rook, dsysv_rook,
-    dlasyf_rk, dsyconvf_rook,
-    dsytf2_rk, dsytrf_rk, dsytrs_3,
-    dsytri_3, dsytri_3x, dsycon_3,
-    dsysv_rk, dlasyf_aa, dsysv_aa,
-    dsytrf_aa, dsytrs_aa, dsytrd_2stage,
-    dsytrd_sy2sb, dsytrd_sb2st, dsb2st_kernels,
-    dsyevd_2stage, dsyev_2stage, dsyevx_2stage,
-    dsyevr_2stage, dsbev_2stage, dsbevx_2stage,
-    dsbevd_2stage, dsygv_2stage, 
-     dsysv_aa_2stage,
-    dsytrf_aa_2stage, dsytrs_aa_2stage,
-    dlaorhr_col_getrfnp, dlaorhr_col_getrfnp2, dorhr_col,
-);
-@lapack_embeded_underscore_objs_z=(    
-    zhetf2_rook, zhetrf_rook, zhetri_rook,
-    zhetrs_rook, zhecon_rook, zhesv_rook,
-    zlahef_rook, zlasyf_rook,
-    zsytf2_rook, zsytrf_rook, zsytrs_rook,
-    zsytri_rook, zsycon_rook, zsysv_rook,
-    zhetf2_rk, zhetrf_rk, zhetri_3,
-    zhetri_3x, zhetrs_3, zhecon_3,
-    zhesv_rk, zhesv_aa, zhetrf_aa,
-    zhetrs_aa, zlahef_aa, zlahef_rk,
-    zlasyf_rk, zlasyf_aa, zsyconvf_rook,
-    zsytrs_aa, zsytf2_rk, zsytrf_rk,
-    zsytrf_aa, zsytrs_3, zsytri_3,
-    zsytri_3x, zsycon_3, zsysv_rk,
-    zsysv_aa, zhetrd_2stage, zhetrd_he2hb,
-    zhetrd_hb2st, zhb2st_kernels, zheevd_2stage,
-    zheev_2stage, zheevx_2stage, zheevr_2stage,
-    zhbev_2stage, zhbevx_2stage, zhbevd_2stage,
-    zhegv_2stage,
-    zhesv_aa_2stage, zhetrf_aa_2stage,
-    zhetrs_aa_2stage, zsysv_aa_2stage,
-    zsytrf_aa_2stage, zsytrs_aa_2stage,
-    zlaunhr_col_getrfnp, zlaunhr_col_getrfnp2, zunhr_col
-);
-
-
-use File::Spec;
-use File::Basename;
-my $dirname = File::Spec->catfile(dirname(dirname(File::Spec->rel2abs(__FILE__))), "lapack-netlib");
-
-if ($ARGV[12] == 1) {
-       @blasobjs = (@blasobjs, @bfblasobjs);
-       @cblasobjs = (@cblasobjs, @bfcblasobjs);
-}
-if ($ARGV[13] == 1) {
-       @blasobjs = (@blasobjs, @blasobjss);
-       @cblasobjs = (@cblasobjs, @cblasobjss);
-       @lapackobjs = (@lapackobjs, @lapackobjss);
-       @lapackobjs2 = (@lapackobjs2, @lapackobjs2s);
-       @lapackobjs2 = (@lapackobjs2, @lapackobjs2sc);
-       @lapackobjs2 = (@lapackobjs2, @lapackobjs2ds);
-       @lapack_deprecated_objs = (@lapack_deprecated_objs, @lapack_deprecated_objss);
-       @lapacke_deprecated_objs = (@lapacke_deprecated_objs, @lapacke_deprecated_objss);
-       @lapack_embeded_underscore_objs = (@lapack_embeded_underscore_objs,  @lapack_embeded_underscore_objs_s); 
-       @lapackeobjs = (@lapackeobjs, @lapackeobjss);
-}
-if ($ARGV[14] == 1) {
-       @blasobjs = (@blasobjs, @blasobjsd);
-       @cblasobjs = (@cblasobjs, @cblasobjsd);
-       @lapackobjs = (@lapackobjs, @lapackobjsd);
-       if ($ARGV[13] == 0) { 
-               @lapackobjs2 = (@lapackobjs2, @lapackobjs2ds);
-       }
-       @lapackobjs2 = (@lapackobjs2, @lapackobjs2d, @lapackobjs2dz);
-       @lapack_deprecated_objs = (@lapack_deprecated_objs, @lapack_deprecated_objsd);
-       @lapacke_deprecated_objs = (@lapacke_deprecated_objs, @lapacke_deprecated_objsd);
-       @lapack_embeded_underscore_objs = (@lapack_embeded_underscore_objs,  @lapack_embeded_underscore_objs_d);
-       @lapackeobjs = (@lapackeobjs, @lapackeobjsd);
-}
-if ($ARGV[15] == 1) {
-       @blasobjs = (@blasobjs, @blasobjsc);
-       @cblasobjs = (@cblasobjs, @cblasobjsc);
-       @gemm3mobjs = (@gemm3mobjs, @gemm3mobjsc);
-       @cblasgemm3mobjs = (@cblasgemm3mobjs, @cblasgemm3mobjsc);
-       @lapackobjs = (@lapackobjs, @lapackobjsc);
-       @lapackobjs2 = (@lapackobjs2, @lapackobjs2c, @lapackobjs2zc);
-       if ($ARGV[13] == 0) { 
-               @lapackobjs2 = (@lapackobjs2, @lapackobjs2sc);
-       }
-       @lapack_deprecated_objs = (@lapack_deprecated_objs, @lapack_deprecated_objsc);
-       @lapacke_deprecated_objs = (@lapacke_deprecated_objs, @lapacke_deprecated_objsc);
-       @lapack_embeded_underscore_objs = (@lapack_embeded_underscore_objs,  @lapack_embeded_underscore_objs_c);
-       @lapackeobjs = (@lapackeobjs, @lapackeobjsc);
-}
-if ($ARGV[16] == 1) {
-       @blasobjs = (@blasobjs, @blasobjsz);
-       @cblasobjs = (@cblasobjs, @cblasobjsz);
-       @gemm3mobjs = (@gemm3mobjs, @gemm3mobjsz);
-       @cblasgemm3mobjs = (@cblasgemm3mobjs, @cblasgemm3mobjsz);
-       @lapackobjs = (@lapackobjs, @lapackobjsz);
-       @lapackobjs2 = (@lapackobjs2, @lapackobjs2z);
-       if ($ARGV[15] == 0) { 
-               @lapackobjs2 = (@lapackobjs2, @lapackobjs2zc);
-       }
-       if ($ARGV[14] == 0) { 
-               @lapackobjs2 = (@lapackobjs2, @lapackobjs2dz);
-       }
-       @lapack_deprecated_objs = (@lapack_deprecated_objs, @lapack_deprecated_objsz);
-       @lapacke_deprecated_objs = (@lapacke_deprecated_objs, @lapacke_deprecated_objsz);
-       @lapack_embeded_underscore_objs = (@lapack_embeded_underscore_objs,  @lapack_embeded_underscore_objs_z);
-       @lapackeobjs = (@lapackeobjs, @lapackeobjsz);
-}
-if ($ARGV[8] == 1) {
+lapack_embeded_underscore_objs="
+    xerbla_array chla_transtype
+    "
+lapack_embeded_underscore_objs_s="
+     slasyf_rook
+    ssytf2_rook ssytrf_rook ssytrs_rook
+    ssytri_rook ssycon_rook ssysv_rook
+    slasyf_rk ssyconvf_rook ssytf2_rk
+    ssytrf_rk ssytrs_3 ssytri_3
+    ssytri_3x ssycon_3 ssysv_rk
+    slasyf_aa ssysv_aa ssytrf_aa
+    ssytrs_aa ssytrd_2stage ssytrd_sy2sb
+    ssytrd_sb2st ssb2st_kernels ssyevd_2stage
+    ssyev_2stage ssyevx_2stage ssyevr_2stage
+    ssbev_2stage ssbevx_2stage ssbevd_2stage
+    ssygv_2stage
+    ssysv_aa_2stage ssytrf_aa_2stage
+    ssytrs_aa_2stage
+    slaorhr_col_getrfnp slaorhr_col_getrfnp2 sorhr_col
+"
+lapack_embeded_underscore_objs_c="
+    chetf2_rook chetrf_rook chetri_rook
+    chetrs_rook checon_rook chesv_rook
+    clahef_rook clasyf_rook
+    csytf2_rook csytrf_rook csytrs_rook
+    csytri_rook csycon_rook csysv_rook
+    chetf2_rk
+    chetrf_rk chetri_3 chetri_3x
+    chetrs_3 checon_3 chesv_rk
+    chesv_aa chetrf_aa chetrs_aa
+    clahef_aa clahef_rk clasyf_rk
+    clasyf_aa csytf2_rk csytrf_rk
+    csytrf_aa csytrs_3 csytrs_aa
+    csytri_3 csytri_3x csycon_3
+    csysv_rk csysv_aa csyconvf_rook
+    chetrd_2stage chetrd_he2hb chetrd_hb2st
+    chb2st_kernels cheevd_2stage cheev_2stage
+    cheevx_2stage cheevr_2stage chbev_2stage
+    chbevx_2stage chbevd_2stage chegv_2stage
+    chesv_aa_2stage
+    chetrf_aa_2stage chetrs_aa_2stage
+    csysv_aa_2stage csytrf_aa_2stage
+    csytrs_aa_2stage
+    claunhr_col_getrfnp claunhr_col_getrfnp2 cunhr_col
+"
+lapack_embeded_underscore_objs_d="
+    dlasyf_rook
+    dsytf2_rook dsytrf_rook dsytrs_rook
+    dsytri_rook dsycon_rook dsysv_rook
+    dlasyf_rk dsyconvf_rook
+    dsytf2_rk dsytrf_rk dsytrs_3
+    dsytri_3 dsytri_3x dsycon_3
+    dsysv_rk dlasyf_aa dsysv_aa
+    dsytrf_aa dsytrs_aa dsytrd_2stage
+    dsytrd_sy2sb dsytrd_sb2st dsb2st_kernels
+    dsyevd_2stage dsyev_2stage dsyevx_2stage
+    dsyevr_2stage dsbev_2stage dsbevx_2stage
+    dsbevd_2stage dsygv_2stage
+     dsysv_aa_2stage
+    dsytrf_aa_2stage dsytrs_aa_2stage
+    dlaorhr_col_getrfnp dlaorhr_col_getrfnp2 dorhr_col
+"
+lapack_embeded_underscore_objs_z="
+    zhetf2_rook zhetrf_rook zhetri_rook
+    zhetrs_rook zhecon_rook zhesv_rook
+    zlahef_rook zlasyf_rook
+    zsytf2_rook zsytrf_rook zsytrs_rook
+    zsytri_rook zsycon_rook zsysv_rook
+    zhetf2_rk zhetrf_rk zhetri_3
+    zhetri_3x zhetrs_3 zhecon_3
+    zhesv_rk zhesv_aa zhetrf_aa
+    zhetrs_aa zlahef_aa zlahef_rk
+    zlasyf_rk zlasyf_aa zsyconvf_rook
+    zsytrs_aa zsytf2_rk zsytrf_rk
+    zsytrf_aa zsytrs_3 zsytri_3
+    zsytri_3x zsycon_3 zsysv_rk
+    zsysv_aa zhetrd_2stage zhetrd_he2hb
+    zhetrd_hb2st zhb2st_kernels zheevd_2stage
+    zheev_2stage zheevx_2stage zheevr_2stage
+    zhbev_2stage zhbevx_2stage zhbevd_2stage
+    zhegv_2stage
+    zhesv_aa_2stage zhetrf_aa_2stage
+    zhetrs_aa_2stage zsysv_aa_2stage
+    zsytrf_aa_2stage zsytrs_aa_2stage
+    zlaunhr_col_getrfnp zlaunhr_col_getrfnp2 zunhr_col
+"
+
+dirname=`pwd -P`/../lapack-netlib
+
+p1=$1
+p2=$2
+p3=$3
+p4=$4
+p5=$5
+p6=$6
+p7=$7
+p8=$8
+p9=$9
+shift
+p10=$9
+shift
+p11=$9
+shift
+p12=$9
+shift
+p13=$9
+shift
+p14=$9
+shift
+p15=$9
+shift
+p16=$9
+shift
+p17=$9
+
+if [ $p13 -eq 1 ]; then
+       blasobjs="$blasobjs $bfblasobjs"
+       cblasobjs="$cblasobjs $bfcblasobjs"
+fi
+
+if [ $p14 -eq 1 ]; then
+       blasobjs="$blasobjs $blasobjss"
+       cblasobjs="$cblasobjs $cblasobjss"
+       lapackobjs="$lapackobjs $lapackobjss"
+       lapackobjs2="$lapackobjs2 $lapackobjs2s"
+       lapackobjs2="$lapackobjs2 $lapackobjs2sc"
+       lapackobjs2="$lapackobjs2 $lapackobjs2ds"
+       lapack_deprecated_objs="$lapack_deprecated_objs $lapack_deprecated_objss"
+       lapacke_deprecated_objs="$lapacke_deprecated_objs $lapacke_deprecated_objss"
+       lapack_embeded_underscore_objs="$lapack_embeded_underscore_objs  $lapack_embeded_underscore_objs_s"
+       lapackeobjs="$lapackeobjs $lapackeobjss"
+fi
+
+if [ $p15 -eq 1 ]; then
+       blasobjs="$blasobjs $blasobjsd"
+       cblasobjs="$cblasobjs $cblasobjsd"
+       lapackobjs="$lapackobjs $lapackobjsd"
+    if [ $p14 -eq 0 ]; then
+               lapackobjs2="$lapackobjs2 $lapackobjs2ds"
+       fi
+       lapackobjs2="$lapackobjs2 $lapackobjs2d $lapackobjs2dz"
+       lapack_deprecated_objs="$lapack_deprecated_objs $lapack_deprecated_objsd"
+       lapacke_deprecated_objs="$lapacke_deprecated_objs $lapacke_deprecated_objsd"
+       lapack_embeded_underscore_objs="$lapack_embeded_underscore_objs  $lapack_embeded_underscore_objs_d"
+       lapackeobjs="$lapackeobjs $lapackeobjsd"
+fi
+
+if [ $p16 -eq 1 ]; then
+       blasobjs="$blasobjs $blasobjsc"
+       cblasobjs="$cblasobjs $cblasobjsc"
+       gemm3mobjs="$gemm3mobjs $gemm3mobjsc"
+       cblasgemm3mobjs="$cblasgemm3mobjs $cblasgemm3mobjsc"
+       lapackobjs="$lapackobjs $lapackobjsc"
+       lapackobjs2="$lapackobjs2 $lapackobjs2c $lapackobjs2zc"
+    if [ $p14 -eq 0 ]; then
+               lapackobjs2="$lapackobjs2 $lapackobjs2sc"
+       fi
+       lapack_deprecated_objs="$lapack_deprecated_objs $lapack_deprecated_objsc"
+       lapacke_deprecated_objs="$lapacke_deprecated_objs $lapacke_deprecated_objsc"
+       lapack_embeded_underscore_objs="$lapack_embeded_underscore_objs  $lapack_embeded_underscore_objs_c"
+       lapackeobjs="$lapackeobjs $lapackeobjsc"
+fi
+
+if [ $p17 -eq 1 ]; then
+       blasobjs="$blasobjs $blasobjsz"
+       cblasobjs="$cblasobjs $cblasobjsz"
+       gemm3mobjs="$gemm3mobjs $gemm3mobjsz"
+       cblasgemm3mobjs="$cblasgemm3mobjs $cblasgemm3mobjsz"
+       lapackobjs="$lapackobjs $lapackobjsz"
+       lapackobjs2="$lapackobjs2 $lapackobjs2z"
+       if [ $p16 -eq 0 ]; then
+               lapackobjs2="$lapackobjs2 $lapackobjs2zc"
+       fi
+       if [ $p15 -eq 0 ]; then
+               lapackobjs2="$lapackobjs2 $lapackobjs2dz"
+       fi
+       lapack_deprecated_objs="$lapack_deprecated_objs $lapack_deprecated_objsz"
+       lapacke_deprecated_objs="$lapacke_deprecated_objs $lapacke_deprecated_objsz"
+       lapack_embeded_underscore_objs="$lapack_embeded_underscore_objs  $lapack_embeded_underscore_objs_z"
+       lapackeobjs="$lapackeobjs $lapackeobjsz"
+fi
+
+if [ $p9 -eq 1 ]; then
     #ONLY_CBLAS=1
-    @underscore_objs = (@misc_underscore_objs);
-} elsif ($ARGV[5] == 1) {
+    underscore_objs="$misc_underscore_objs"
+elif [ $p6 -eq 1 ]; then
     #NO_LAPACK=1
-    @underscore_objs = (@blasobjs, @misc_underscore_objs);
-} elsif (-d $dirname) {
-    if ($ARGV[7] == 0) {
+    underscore_objs="$blasobjs $misc_underscore_objs"
+elif [ -d "$dirname" ]; then
+    if [ $p8 -eq 0 ]; then
         # NEED2UNDERSCORES=0
         # Don't need 2 underscores
-        @underscore_objs = (@blasobjs, @lapackobjs, @lapackobjs2, @misc_underscore_objs, @lapack_embeded_underscore_objs);
-    } else {
+        underscore_objs="$blasobjs $lapackobjs $lapackobjs2 $misc_underscore_objs $lapack_embeded_underscore_objs"
+    else
         # Need 2 underscores
-        @underscore_objs = (@blasobjs, @lapackobjs, @lapackobjs2, @misc_underscore_objs);
-        @need_2underscore_objs = (@lapack_embeded_underscore_objs);
-    };
-
-    if ($ARGV[11] == 1) {
-        #BUILD_LAPACK_DEPRECATED=1
-        @underscore_objs = (@underscore_objs, @lapack_deprecated_objs);
-    }
-} else {
-    @underscore_objs = (@blasobjs, @lapackobjs, @misc_underscore_objs);
-}
+        underscore_objs="$blasobjs $lapackobjs $lapackobjs2 $misc_underscore_objs"
+        need_2underscore_objs="$lapack_embeded_underscore_objs"
+    fi
 
-if ($ARGV[8] == 1) {
-    #ONLY_CBLAS=1
-    @gemm3mobjs=();
-    @exblasobjs=();
-}
-
-if ($ARGV[3] == 1) {
-    @underscore_objs = (@underscore_objs, @exblasobjs);
-};
-
-if ($ARGV[1] eq "x86_64") { @underscore_objs = (@underscore_objs, @gemm3mobjs); };
-if ($ARGV[1] eq "x86")    { @underscore_objs = (@underscore_objs, @gemm3mobjs); };
-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, @misc_no_underscore_objs);
-    if ($ARGV[1] eq "x86_64") { @no_underscore_objs = (@no_underscore_objs, @cblasgemm3mobjs); };
-    if ($ARGV[1] eq "x86")    { @no_underscore_objs = (@no_underscore_objs, @cblasgemm3mobjs); };
-    if ($ARGV[1] eq "ia64")   { @no_underscore_objs = (@no_underscore_objs, @cblasgemm3mobjs); };
-    if ($ARGV[1] eq "MIPS")   { @no_underscore_objs = (@no_underscore_objs, @cblasgemm3mobjs); };
-}else{
-    #NO_CBLAS=1
-    @no_underscore_objs = (@misc_no_underscore_objs);
-}
-if ($ARGV[6] == 1) {
-    #NO_LAPACKE=1
-    @no_underscore_objs = (@no_underscore_objs);
-} else {
-    if ($ARGV[11] == 1) {
+    if [ $p12 -eq 1 ]; then
         #BUILD_LAPACK_DEPRECATED=1
-        @no_underscore_objs = (@no_underscore_objs, @lapackeobjs, @lapacke_deprecated_objs);
-    } else {
-        @no_underscore_objs = (@no_underscore_objs, @lapackeobjs);
-    }
-}
-
-@hplobjs  = (daxpy, dcopy, dscal, idamax, dgemv, dtrsv, dger, dgemm, dtrsm);
-@hplobjs2 = (HPL_dlaswp00N, HPL_dlaswp01N, HPL_dlaswp01T);
-
-$bu = $ARGV[2];
-
-$bu = "" if (($bu eq "0") || ($bu eq "1"));
-
-$symbolprefix = $ARGV[9];
-
-$symbolsuffix = $ARGV[10];
-
-if ($ARGV[0] eq "osx") {
-    @underscore_objs = (@underscore_objs, @misc_common_objs);
-    @no_underscore_objs = (@no_underscore_objs, @misc_common_objs);
-
-    foreach $objs (@underscore_objs) {
-        print "_", $symbolprefix, $objs, $bu, $symbolsuffix, "\n";
-    }
-
-    foreach $objs (@need_2underscore_objs) {
-        print "_", $symbolprefix, $objs, $bu, $bu, $symbolsuffix, "\n";
-    }
-
-    foreach $objs (@no_underscore_objs) {
-        print "_", $symbolprefix, $objs, $symbolsuffix, "\n";
-    }
-    exit(0);
-}
-
-if ($ARGV[0] eq "aix"){
-    @underscore_objs = (@underscore_objs, @misc_common_objs);
-    @no_underscore_objs = (@no_underscore_objs, @misc_common_objs);
-
-    foreach $objs (@underscore_objs) {
-        print $symbolprefix, $objs, $bu, $symbolsuffix, "\n";
-    }
-
-    foreach $objs (@need_2underscore_objs) {
-        print $symbolprefix, $objs, $bu, $bu, $symbolsuffix, "\n";
-    }
-
-    foreach $objs (@no_underscore_objs) {
-        print $symbolprefix, $objs, $symbolsuffix, "\n";
-    }
-    exit(0);
-}
-
-if ($ARGV[0] eq "objcopy") {
-    @underscore_objs = (@underscore_objs, @misc_common_objs);
-    @no_underscore_objs = (@no_underscore_objs, @misc_common_objs);
-
-    foreach $objs (@underscore_objs) {
-        print $objs, $bu, " ", $symbolprefix, $objs, $bu, $symbolsuffix, "\n";
-    }
-
-    foreach $objs (@need_2underscore_objs) {
-        print $objs, $bu, $bu, " ", $symbolprefix, $objs, $bu, $bu, $symbolsuffix, "\n";
-    }
-
-    foreach $objs (@no_underscore_objs) {
-        print $objs, " ", $symbolprefix, $objs, $symbolsuffix, "\n";
-    }
-    exit(0);
-}
-
-if ($ARGV[0] eq "objconv") {
-    @underscore_objs = (@underscore_objs, @misc_common_objs);
-    @no_underscore_objs = (@no_underscore_objs, @misc_common_objs);
-
-    foreach $objs (@underscore_objs) {
-        print "-nr:_", $objs, $bu, ":_", $symbolprefix, $objs, $bu, $symbolsuffix, "\n";
-    }
-
-    foreach $objs (@need_2underscore_objs) {
-        print "-nr:_", $objs, $bu, $bu, ":_", $symbolprefix, $objs, $bu, $bu, $symbolsuffix, "\n";
-    }
-
-    foreach $objs (@no_underscore_objs) {
-        print "-nr:_", $objs, ":_", $symbolprefix, $objs, $symbolsuffix, "\n";
-    }
-    exit(0);
-}
-
-if ($ARGV[0] eq "win2k"){
-    print "EXPORTS\n";
-    $count = 1;
-
-    @no_underscore_objs = (@no_underscore_objs, @misc_common_objs);
-
-    foreach $objs (@underscore_objs) {
-        $uppercase = $objs;
-        $uppercase =~ tr/[a-z]/[A-Z]/;
-        print "\t",$symbolprefix, $objs, $symbolsuffix, "=$objs","_  \@", $count, "\n";
-        $count ++;
-        print "\t",$symbolprefix, $objs, "_", $symbolsuffix, "=$objs","_  \@", $count, "\n";
-        $count ++;
-        print "\t",$symbolprefix, $uppercase, $symbolsuffix, "=$objs", "_  \@", $count, "\n";
-        $count ++;
-    }
-
-    foreach $objs (@need_2underscore_objs) {
-        $uppercase = $objs;
-        $uppercase =~ tr/[a-z]/[A-Z]/;
-        print "\t",$symbolprefix, $objs, $symbolsuffix, "=$objs","__  \@", $count, "\n";
-        $count ++;
-        print "\t",$symbolprefix, $objs, "__", $symbolsuffix, "=$objs","__  \@", $count, "\n";
-        $count ++;
-        print "\t",$symbolprefix, $uppercase, $symbolsuffix, "=$objs", "__  \@", $count, "\n";
-        $count ++;
-    }
-
-    #for misc_common_objs
-    foreach $objs (@misc_common_objs) {
-        $uppercase = $objs;
-        $uppercase =~ tr/[a-z]/[A-Z]/;
-        print "\t",$symbolprefix, $objs, "_", $symbolsuffix, "=$objs","_  \@", $count, "\n";
-        $count ++;
-        print "\t",$symbolprefix, $uppercase, $symbolsuffix, "=$objs", "_  \@", $count, "\n";
-        $count ++;
-    }
-
-
-    foreach $objs (@no_underscore_objs) {
-        print "\t",$symbolprefix,$objs,$symbolsuffix,"=$objs","  \@", $count, "\n";
-        $count ++;
-    }
-
-    exit(0);
-}
-
-if ($ARGV[0] eq "win2khpl") {
-    print "EXPORTS\n";
-    $count = 1;
-    foreach $objs (@hplobjs) {
-        $uppercase = $objs;
-        $uppercase =~ tr/[a-z]/[A-Z]/;
-        print "\t",$symbolprefix, $objs, $symbolsuffix, "=$objs","_  \@", $count, "\n";
-        $count ++;
-        print "\t",$symbolprefix, $objs, "_", $symbolsuffix, "=$objs","_  \@", $count, "\n";
-        $count ++;
-        print "\t",$symbolprefix, $uppercase, $symbolsuffix, "=$objs", "_  \@", $count, "\n";
-        $count ++;
-    }
-
-    exit(0);
-}
-
-if ($ARGV[0] eq "microsoft"){
-    @underscore_objs = (@underscore_objs, @misc_common_objs);
-
-    print "EXPORTS\n";
-    $count = 1;
-    foreach $objs (@underscore_objs) {
-        $uppercase = $objs;
-        $uppercase =~ tr/[a-z]/[A-Z]/;
-        print "\t",$symbolprefix, $objs, $symbolsuffix, " = $objs","_\n";
-        $count ++;
-        print "\t",$symbolprefix, $objs, "\_", $symbolsuffix, " = $objs","_\n";
-        $count ++;
-        print "\t",$symbolprefix, $uppercase, $symbolsuffix, " = $objs","_\n";
-        $count ++;
-        print "\t",$symbolprefix, $uppercase, "\_", $symbolsuffix, " = $objs","_\n";
-        $count ++;
-    }
-
-    foreach $objs (@need_2underscore_objs) {
-        $uppercase = $objs;
-        $uppercase =~ tr/[a-z]/[A-Z]/;
-        print "\t",$symbolprefix, $objs, $symbolsuffix, "=$objs","__  \@", $count, "\n";
-        $count ++;
-        print "\t",$symbolprefix, $objs, "__", $symbolsuffix, "=$objs","__  \@", $count, "\n";
-        $count ++;
-        print "\t",$symbolprefix, $uppercase, $symbolsuffix, "=$objs", "__  \@", $count, "\n";
-        $count ++;
-    }
-
-    exit(0);
-}
-
-if ($ARGV[0] eq "linktest") {
-    @underscore_objs = (@underscore_objs, @misc_common_objs);
-    @no_underscore_objs = (@no_underscore_objs, @misc_common_objs);
-
-    print "int main(void){\n";
-    foreach $objs (@underscore_objs) {
-        print $symbolprefix, $objs, $bu, $symbolsuffix, "();\n" if $objs ne "xerbla";
-    }
-
-    foreach $objs (@need_2underscore_objs) {
-        print $symbolprefix, $objs, $bu, $bu, $symbolsuffix, "();\n";
-    }
-
-    foreach $objs (@no_underscore_objs) {
-        print $symbolprefix, $objs, $symbolsuffix, "();\n";
-    }
-
-    print "return 0;}\n";
-    exit(0);
-}
+        underscore_objs="$underscore_objs $lapack_deprecated_objs"
+    fi
+else
+    underscore_objs="$blasobjs $lapackobjs $misc_underscore_objs"
+fi
+
+if [ $p9 -eq 1 ]; then
+    # ONLY_CBLAS=1
+    gemm3mobjs=''
+    exblasobjs=''
+fi
+
+if [ $p4 -eq 1 ]; then
+    underscore_objs="$underscore_objs $exblasobjs"
+fi
+
+case $p2 in
+    x86_64|x86|ia64|MIPS)
+        underscore_objs="$underscore_objs $gemm3mobjs"
+    ;;
+esac
+
+if [ $p5 -eq 0 ]; then
+    no_underscore_objs="$cblasobjs $misc_no_underscore_objs"
+    case $p2 in
+        x86_64|x86|ia64|MIPS)
+            no_underscore_objs="$no_underscore_objs $cblasgemm3mobjs"
+        ;;
+    esac
+else
+    # NO_CBLAS=1
+    no_underscore_objs="$misc_no_underscore_objs"
+fi
+
+if [ $p7 -ne 1 ]; then
+    if [ $p12 -eq 1 ]; then
+        # BUILD_LAPACK_DEPRECATED=1
+        no_underscore_objs="$no_underscore_objs $lapackeobjs $lapacke_deprecated_objs"
+    else
+        no_underscore_objs="$no_underscore_objs $lapackeobjs"
+    fi
+fi
+
+hplobjs="daxpy dcopy dscal idamax dgemv dtrsv dger dgemm dtrsm"
+#hplobjs2="HPL_dlaswp00N HPL_dlaswp01N HPL_dlaswp01T"
+
+bu="$p3"
+
+if [ "$bu" = "0" ] || [ "$bu" = "1" ]; then
+    bu=""
+fi
+
+symbolprefix=$p10
+symbolsuffix=$p11
+
+case "$p1" in
+    osx)
+        underscore_objs="$underscore_objs $misc_common_objs"
+        no_underscore_objs="$no_underscore_objs $misc_common_objs"
+
+        for obj in $underscore_objs; do
+            printf '_%s%s%s%s\n' "$symbolprefix" "$obj" "$bu" "$symbolsuffix"
+        done
+
+        for obj in $need_2underscore_objs; do
+            printf '_%s%s%s%s%s\n' "$symbolprefix" "$obj" "$bu" "$bu" "$symbolsuffix"
+        done
+
+        for obj in $no_underscore_objs; do
+            printf '_%s%s%s\n' "$symbolprefix" "$obj" "$symbolsuffix"
+        done
+    ;;
+
+    aix)
+        underscore_objs="$underscore_objs $misc_common_objs"
+        no_underscore_objs="$no_underscore_objs $misc_common_objs"
+
+        for obj in $underscore_objs; do
+            printf '_%s%s%s%s\n' "$symbolprefix" "$obj" "$bu" "$symbolsuffix"
+        done
+
+        for obj in $need_2underscore_objs; do
+            printf '_%s%s%s%s%s\n' "$symbolprefix" "$obj" "$bu" "$bu" "$symbolsuffix"
+        done
+
+        for obj in $no_underscore_objs; do
+            printf '_%s%s%s\n' "$symbolprefix" "$obj" "$symbolsuffix"
+        done
+    ;;
+
+    objcopy)
+        underscore_objs="$underscore_objs $misc_common_objs"
+        no_underscore_objs="$no_underscore_objs $misc_common_objs"
+
+        for obj in $underscore_objs; do
+            printf '%s%s %s%s%s%s\n' "$obj" "$bu" \
+                "$symbolprefix" "$obj" "$bu" "$symbolsuffix"
+        done
+
+        for obj in $need_2underscore_objs; do
+            printf '%s%s%s %s%s%s%s%s\n' "$obj" "$bu" "$bu" \
+                "$symbolprefix" "$obj" "$bu" "$bu" "$symbolsuffix"
+        done
+
+        for obj in $no_underscore_objs; do
+            printf '%s %s%s%s\n' "$obj" "$symbolprefix" "$obj" "$symbolsuffix"
+        done
+    ;;
+
+    objconv)
+        underscore_objs="$underscore_objs $misc_common_objs"
+        no_underscore_objs="$no_underscore_objs $misc_common_objs"
+
+        for obj in $underscore_objs; do
+            printf -- '-nr:_%s%s:_%s%s%s%s\n' "$obj" "$bu" \
+                "$symbolprefix" "$obj" "$bu" "$symbolsuffix"
+        done
+
+        for obj in $need_2underscore_objs; do
+            printf -- '-nr:_%s%s%s:_%s%s%s%s%s\n' "$obj" "$bu" "$bu" \
+                "$symbolprefix" "$obj" "$bu" "$bu" "$symbolsuffix"
+        done
+
+        for obj in $no_underscore_objs; do
+            printf -- '-nr:_%s:_%s%s%s\n' "$obj" \
+                "$symbolprefix" "$obj" "$symbolsuffix"
+        done
+    ;;
+
+    win2k)
+        printf 'EXPORTS\n'
+        count=1
+
+        no_underscore_objs="$no_underscore_objs $misc_common_objs"
+
+        for obj in $underscore_objs; do
+            uppercase=`echo "$obj" | tr '[[:lower:]]' '[[:upper:]]'`
+            printf '\t%s%s%s=%s_ @%s\n' \
+                "$symbolprefix" "$obj" "$symbolsuffix" "$obj" "$count"
+            count=`expr $count + 1`
+            printf '\t%s%s_%s=%s_ @%s\n' \
+                "$symbolprefix" "$obj" "$symbolsuffix" "$obj" "$count"
+            count=`expr $count + 1`
+            printf '\t%s%s%s=%s_ @%s\n' \
+                "$symbolprefix" "$uppercase" "$symbolsuffix" "$obj" "$count"
+            count=`expr $count + 1`
+        done
+
+        for obj in $need_2underscore_objs; do
+            uppercase=`echo "$obj" | tr '[[:lower:]]' '[[:upper:]]'`
+            printf '\t%s%s%s=%s__ @%s\n' \
+                "$symbolprefix" "$obj" "$symbolsuffix" "$obj" "$count"
+            count=`expr $count + 1`
+            printf '\t%s%s__%s=%s__ @%s\n' \
+                "$symbolprefix" "$obj" "$symbolsuffix" "$obj" "$count"
+            count=`expr $count + 1`
+            printf '\t%s%s%s=%s__ @%s\n' \
+                "$symbolprefix" "$uppercase" "$symbolsuffix" "$obj" "$count"
+            count=`expr $count + 1`
+        done
+
+        for obj in $misc_common_objs; do
+            uppercase=`echo "$obj" | tr '[[:lower:]]' '[[:upper:]]'`
+            printf '\t%s%s_%s=%s_ @%s\n' \
+                "$symbolprefix" "$obj" "$symbolsuffix" "$obj" "$count"
+            count=`expr $count + 1`
+            printf '\t%s%s%s=%s_ @%s\n' \
+                "$symbolprefix" "$uppercase" "$symbolsuffix" "$obj" "$count"
+            count=`expr $count + 1`
+        done
+
+        for obj in $no_underscore_objs; do
+            printf '\t%s%s%s=%s  @%s\n' \
+                "$symbolprefix" "$obj" "$symbolsuffix" "$obj" "$count"
+            count=`expr $count + 1`
+        done
+    ;;
+
+    win2khpl)
+        printf 'EXPORTS\n'
+        count=1
+        for obj in $hplobjs; do
+            uppercase=`echo "$obj" | tr '[[:lower:]]' '[[:upper:]]'`
+            printf '\t%s%s%s=%s_  @%s\n' \
+                "$symbolprefix" "$obj" "$symbolsuffix" "$obj" "$count"
+            count=`expr $count + 1`
+            printf '\t%s%s_%s=%s_  @%s\n' \
+                "$symbolprefix" "$obj" "$symbolsuffix" "$obj" "$count"
+            count=`expr $count + 1`
+            printf '\t%s%s%s=%s_  @%s\n' \
+                "$symbolprefix" "$uppercase" "$symbolsuffix" "$obj" "$count"
+            count=`expr $count + 1`
+        done
+    ;;
+
+    microsoft)
+        underscore_objs="$underscore_objs $misc_common_objs"
+
+        printf 'EXPORTS\n'
+        count=1
+        for obj in $underscore_objs; do
+            uppercase=`echo "$obj" | tr '[[:lower:]]' '[[:upper:]]'`
+            printf '\t%s%s%s = %s_\n' \
+                "$symbolprefix" "$obj" "$symbolsuffix" "$obj"
+            count=`expr $count + 1`
+            printf '\t%s%s_%s = %s_\n' \
+                "$symbolprefix" "$obj" "$symbolsuffix" "$obj"
+            count=`expr $count + 1`
+            printf '\t%s%s%s = %s_\n' \
+                "$symbolprefix" "$uppercase" "$symbolsuffix" "$obj"
+            count=`expr $count + 1`
+            printf '\t%s%s_%s = %s_\n' \
+                "$symbolprefix" "$uppercase" "$symbolsuffix" "$obj"
+            count=`expr $count + 1`
+        done
+
+        for obj in $need_2underscore_objs; do
+            uppercase=`echo "$obj" | tr '[[:lower:]]' '[[:upper:]]'`
+            printf '\t%s%s%s=%s__  @%s\n' \
+                "$symbolprefix" "$obj" "$symbolsuffix" "$obj" "$count"
+            count=`expr $count + 1`
+            printf '\t%s%s__%s=%s__  @%s\n' \
+                "$symbolprefix" "$obj" "$symbolsuffix" "$obj" "$count"
+            count=`expr $count + 1`
+            printf '\t%s%s%s=%s__  @%s\n' \
+                "$symbolprefix" "$uppercase" "$symbolsuffix" "$obj" "$count"
+            count=`expr $count + 1`
+        done
+    ;;
+
+    linktest)
+
+        underscore_objs="$underscore_objs $misc_common_objs"
+        no_underscore_objs="$no_underscore_objs $misc_common_objs"
+
+        printf 'int main(void){\n'
+        for obj in $underscore_objs; do
+            [ "$obj" != "xerbla" ] && printf '%s%s%s%s();\n' \
+                "$symbolprefix" "$obj" "$bu" "$symbolsuffix"
+        done
+
+        for obj in $need_2underscore_objs; do
+            printf '%s%s%s%s%s();\n' \
+                "$symbolprefix" "$obj" "$bu" "$bu" "$symbolsuffix"
+        done
+
+        for obj in $no_underscore_objs; do
+            printf '%s%s%s();\n' \
+                "$symbolprefix" "$obj" "$symbolsuffix"
+        done
+
+        printf 'return 0;}\n'
+    ;;
+esac
diff --git a/exports/gensymbol.pl b/exports/gensymbol.pl
new file mode 100644 (file)
index 0000000..ac62bc0
--- /dev/null
@@ -0,0 +1,3972 @@
+#!/usr/bin/env perl
+
+# Changelog
+# 2017/09/03 staticfloat
+# Added zsymv and csymv into @lapackobjs2 so they are properly renamed
+#
+# 2017/07/01 Saar
+# removed zsymv_ and csymv_ from @blasobs, because these functions
+# are now in lapack-3.7.0
+# added blas_thread_shutdown_
+# added Cblas_cgemm3m and Cblas_zgemm3m
+# added somatcopy_, simatcopy_ ...
+# added new functions from lapack-3.7.0
+# added LAPACKE deprecated objs from lapack-3.7.0
+#
+# 2017/08/01 Saar
+# removed blas_thread_shutdown_
+#
+@blasobjsc = (
+    caxpy,caxpby,ccopy,cdotc,cdotu,cgbmv,cgemm,cgemv,cgerc,cgeru,
+    chbmv,chemm,chemv,cher2,cher2k,cher,cherk,scabs1,scamax,
+    chpmv,chpr2,chpr,crotg,cscal,csrot,csscal,cswap,scamin,scasum,scnrm2,
+    csymm,csyr2k,csyrk,ctbmv,ctbsv,ctpmv,ctpsv,ctrmm,ctrmv,ctrsm,
+    ctrsv,icamax,icamin,cimatcopy,comatcopy,cgeadd,scsum);
+    
+@blasobjsd = (
+    damax,damin,dasum,daxpy,daxpby,dcabs1,dcopy,ddot,dgbmv,dgemm,
+    dgemv,dger,dmax,dmin,dnrm2,drot,drotg,drotm,drotmg,dsbmv,
+    dscal,dsdot,dspmv,dspr2,dimatcopy,domatcopy,
+    dspr,dswap,dsymm,dsymv,dsyr2,dsyr2k,dsyr,dsyrk,dtbmv,dtbsv,
+    dtpmv,dtpsv,dtrmm,dtrmv,dtrsm,dtrsv,
+        idamax,idamin,idmax,idmin,dgeadd,dsum);
+    
+@blasobjss = (
+    isamax,isamin,ismax,ismin,
+    samax,samin,sasum,saxpy, saxpby, 
+    scopy,sdot,sdsdot,sgbmv,sgemm,sgemv,sger,
+    smax,smin,snrm2,simatcopy,somatcopy,
+    srot,srotg,srotm,srotmg,ssbmv,sscal,sspmv,sspr2,sspr,sswap,
+    ssymm,ssymv,ssyr2,ssyr2k,ssyr,ssyrk,stbmv,stbsv,stpmv,stpsv,
+    strmm,strmv,strsm,strsv, sgeadd,ssum);
+     
+@blasobjsz = (
+    izamax,izamin,,
+    zaxpy,zaxpby,zcopy,zdotc,zdotu,zdrot,
+    zdscal,zgbmv,zgemm,zgemv,zgerc,zgeru,
+    zhbmv,zhemm,zhemv,zher2,zher2k,zher,zherk,zhpmv,zhpr2,
+    zhpr,zrotg,zscal,zswap,zsymm,zsyr2k,zsyrk,ztbmv,
+    ztbsv,ztpmv,ztpsv,ztrmm,ztrmv,ztrsm,ztrsv,
+    zomatcopy, zimatcopy,dzamax,dzamin,dzasum,dznrm2,
+    zgeadd, dzsum);
+
+@blasobjs = (lsame, xerbla);
+@bfblasobjs = (sbgemm, sbgemv, sbdot, sbstobf16, sbdtobf16, sbf16tos, dbf16tod);
+@cblasobjsc = (
+    cblas_caxpy, cblas_ccopy, cblas_cdotc, cblas_cdotu, cblas_cgbmv, cblas_cgemm, cblas_cgemv,
+    cblas_cgerc, cblas_cgeru, cblas_chbmv, cblas_chemm, cblas_chemv, cblas_cher2, cblas_cher2k,
+    cblas_cher, cblas_cherk,  cblas_chpmv, cblas_chpr2, cblas_chpr, cblas_cscal, cblas_caxpby,
+    cblas_csscal, cblas_cswap, cblas_csymm, cblas_csyr2k, cblas_csyrk, cblas_ctbmv, cblas_cgeadd,
+    cblas_ctbsv, cblas_ctpmv, cblas_ctpsv, cblas_ctrmm, cblas_ctrmv, cblas_ctrsm, cblas_ctrsv, 
+    cblas_scnrm2, cblas_scasum,
+    cblas_icamax, cblas_icamin, cblas_icmin, cblas_icmax, cblas_scsum,cblas_cimatcopy,cblas_comatcopy
+    );
+@cblasobjsd = (
+    cblas_dasum, cblas_daxpy, cblas_dcopy, cblas_ddot,
+    cblas_dgbmv, cblas_dgemm, cblas_dgemv, cblas_dger, cblas_dnrm2,
+    cblas_drot, cblas_drotg, cblas_drotm, cblas_drotmg, cblas_dsbmv, cblas_dscal, cblas_dsdot,
+    cblas_dspmv, cblas_dspr2, cblas_dspr, cblas_dswap, cblas_dsymm, cblas_dsymv, cblas_dsyr2,
+    cblas_dsyr2k, cblas_dsyr, cblas_dsyrk, cblas_dtbmv, cblas_dtbsv, cblas_dtpmv, cblas_dtpsv,
+    cblas_dtrmm, cblas_dtrmv, cblas_dtrsm, cblas_dtrsv, cblas_daxpby, cblas_dgeadd,
+    cblas_idamax, cblas_idamin, cblas_idmin, cblas_idmax, cblas_dsum,cblas_dimatcopy,cblas_domatcopy
+    );
+    
+@cblasobjss = (
+    cblas_sasum, cblas_saxpy, cblas_saxpby,
+    cblas_scopy, cblas_sdot, cblas_sdsdot, cblas_sgbmv, cblas_sgemm,
+    cblas_sgemv, cblas_sger, cblas_snrm2, cblas_srot, cblas_srotg,
+    cblas_srotm, cblas_srotmg, cblas_ssbmv, cblas_sscal, cblas_sspmv, cblas_sspr2, cblas_sspr,
+    cblas_sswap, cblas_ssymm, cblas_ssymv, cblas_ssyr2, cblas_ssyr2k, cblas_ssyr, cblas_ssyrk,
+    cblas_stbmv, cblas_stbsv, cblas_stpmv, cblas_stpsv, cblas_strmm, cblas_strmv, cblas_strsm,
+    cblas_strsv, cblas_sgeadd,
+    cblas_isamax, cblas_isamin, cblas_ismin, cblas_ismax, cblas_ssum,cblas_simatcopy,cblas_somatcopy
+    );
+@cblasobjsz = (
+    cblas_dzasum, cblas_dznrm2, cblas_zaxpy, cblas_zcopy, cblas_zdotc, cblas_zdotu, cblas_zdscal,
+    cblas_zgbmv, cblas_zgemm, cblas_zgemv, cblas_zgerc, cblas_zgeru, cblas_zhbmv, cblas_zhemm,
+    cblas_zhemv, cblas_zher2, cblas_zher2k, cblas_zher, cblas_zherk, cblas_zhpmv, cblas_zhpr2,
+    cblas_zhpr, cblas_zscal, cblas_zswap, cblas_zsymm, cblas_zsyr2k, cblas_zsyrk,
+    cblas_ztbmv, cblas_ztbsv, cblas_ztpmv, cblas_ztpsv, cblas_ztrmm, cblas_ztrmv, cblas_ztrsm,
+    cblas_ztrsv, cblas_cdotc_sub, cblas_cdotu_sub, cblas_zdotc_sub, cblas_zdotu_sub,
+    cblas_zaxpby, cblas_zgeadd,
+    cblas_izamax, cblas_izamin, cblas_izmin, cblas_izmax, cblas_dzsum,cblas_zimatcopy,cblas_zomatcopy
+);
+
+@cblasobjs = (  cblas_xerbla );
+
+@bfcblasobjs = (cblas_sbgemm, cblas_sbgemv, cblas_sbdot, cblas_sbstobf16, cblas_sbdtobf16, cblas_sbf16tos, cblas_dbf16tod);
+
+@exblasobjs = (
+    qamax,qamin,qasum,qaxpy,qcabs1,qcopy,qdot,qgbmv,qgemm,
+    qgemv,qger,qmax,qmin,
+    qnrm2,
+    qsbmv,qscal,qspmv,qspr2,
+    qspr,qswap,qsymm,qsymv,qsyr2,qsyr2k,qsyr,qsyrk,qtbmv,qtbsv,
+    qtpmv,qtpsv,qtrmm,qtrmv,qtrsm,qtrsv,
+    qxamax,qxamin,qxasum,qxnrm2,
+    xaxpy,xcopy,xdotc,xdotu,
+    xqscal,xgbmv,xgemm,xgemv,xgerc,xgeru,
+    xhbmv,xhemm,xhemv,xher2,xher2k,xher,xherk,xhpmv,xhpr2,
+    xhpr,xscal,xswap,xsymm,xsyr2k,xsyrk,xtbmv,
+    xtbsv,xtpmv,xtpsv,xtrmm,xtrmv,xtrsm,xtrsv,
+#           qrot,qrotg,qrotm,qrotmg,
+#           xdrot,xrotg,
+);
+
+    @gemm3mobjs=();
+
+    @cblasgemm3mobjs=();
+
+@gemm3mobjsc = (
+    cgemm3m,
+);
+@gemm3mobjsz = (    
+    zgemm3m
+);
+
+@cblasgemm3mobjsc = (
+    cblas_cgemm3m
+);
+@cblasgemm3mobjsz = (
+    cblas_zgemm3m
+);
+
+
+
+
+#both underscore and no underscore
+@misc_common_objs = (
+    openblas_get_parallel,
+    openblas_get_num_procs,
+    openblas_set_num_threads,
+    openblas_get_num_threads,
+);
+
+@misc_no_underscore_objs = (
+    goto_set_num_threads,
+    openblas_get_config,
+    openblas_get_corename,
+);
+
+@misc_underscore_objs = (
+);
+
+@lapackobjss = (
+    # These routines are provided by OpenBLAS.
+    sgesv, 
+    sgetf2,
+    sgetrf,
+    slaswp,
+    sgetrs,
+    slauu2,
+    slauum,
+    spotf2,
+    spotrf,
+    strti2,
+    strtri,
+    spotri,
+);
+
+@lapackobjsd = (
+ dgesv,  
+ dgetf2, 
+ dgetrf, 
+ dlaswp, 
+ dgetrs, 
+ dlauu2, 
+ dlauum, 
+ dpotf2, 
+ dpotrf, 
+ dtrti2, 
+ dtrtri, 
+ dpotri, 
+);
+
+@lapackobjsc = (
+cgesv,  
+cgetf2, 
+cgetrf, 
+claswp, 
+cgetrs, 
+clauu2, 
+clauum, 
+cpotf2, 
+cpotrf, 
+ctrti2, 
+ctrtri, 
+cpotri, 
+);
+
+@lapackobjsz = (
+zgesv,
+zgetf2,
+zgetrf,
+zlaswp,
+zgetrs,
+zlauu2,
+zlauum,
+zpotf2,
+zpotrf,
+ztrti2,
+ztrtri,
+zpotri,
+);
+
+
+@lapackobjs2 = (
+    # These routines are provided by LAPACK (reference implementation).
+    #
+    # This list is prepared by copying all routines listed in
+    # `lapack-3.4.1/SRC/Makefile` and replacing the '.o' suffix with a comma.
+    # Thereafter the following routines should be removed:
+    # - those provided by OpenBLAS (see @lapackobjs)
+    # - extra precision routines (see @lapack_extendedprecision_objs)
+    # Each of these have been marked individually with "already provided" or "excluded".
+
+    # ALLAUX  -- Auxiliary routines called from all precisions
+    # already provided by @blasobjs: xerbla, lsame
+    ilaenv, ieeeck, lsamen,  iparmq,
+    ilaprec, ilatrans, ilauplo, iladiag,
+    ilaver, slamch, slamc3,
+);
+
+@lapackobjs2sc = (    
+    # SCLAUX  -- Auxiliary routines called from both REAL and COMPLEX.
+    # excluded: second_$(TIMER)
+    sbdsdc,
+    sbdsqr, sdisna, slabad, slacpy, sladiv, slae2,  slaebz,
+    slaed0, slaed1, slaed2, slaed3, slaed4, slaed5, slaed6,
+    slaed7, slaed8, slaed9, slaeda, slaev2, slagtf,
+    slagts, slamrg, slanst,
+    slapy2, slapy3, slarnv,
+    slarra, slarrb, slarrc, slarrd, slarre, slarrf, slarrj,
+    slarrk, slarrr, slaneg,
+    slartg, slaruv, slas2,  slascl,
+    slasd0, slasd1, slasd2, slasd3, slasd4, slasd5, slasd6,
+    slasd7, slasd8, slasda, slasdq, slasdt,
+    slaset, slasq1, slasq2, slasq3, slasq4, slasq5, slasq6,
+    slasr,  slasrt, slassq, slasv2, spttrf, sstebz, sstedc,
+    ssteqr, ssterf, slaisnan, sisnan,
+    slartgp, slartgs,
+);
+
+@lapackobjs2dz = (
+    # DZLAUX  -- Auxiliary routines called from both DOUBLE and COMPLEX*16.
+    # excluded: dsecnd_$(TIMER)
+    dbdsdc,
+    dbdsqr, ddisna, dlabad, dlacpy, dladiv, dlae2,  dlaebz,
+    dlaed0, dlaed1, dlaed2, dlaed3, dlaed4, dlaed5, dlaed6,
+    dlaed7, dlaed8, dlaed9, dlaeda, dlaev2, dlagtf,
+    dlagts, dlamrg, dlanst,
+    dlapy2, dlapy3, dlarnv,
+    dlarra, dlarrb, dlarrc, dlarrd, dlarre, dlarrf, dlarrj,
+    dlarrk, dlarrr, dlaneg,
+    dlartg, dlaruv, dlas2,  dlascl,
+    dlasd0, dlasd1, dlasd2, dlasd3, dlasd4, dlasd5, dlasd6,
+    dlasd7, dlasd8, dlasda, dlasdq, dlasdt,
+    dlaset, dlasq1, dlasq2, dlasq3, dlasq4, dlasq5, dlasq6,
+    dlasr,  dlasrt, dlassq, dlasv2, dpttrf, dstebz, dstedc,
+    dsteqr, dsterf, dlaisnan, disnan,
+    dlartgp, dlartgs,
+    dlamch, dlamc3,
+);
+
+@lapackobjs2s = (
+    # SLASRC  -- Single precision real LAPACK routines
+    # already provided by @lapackobjs:
+    #     sgesv, sgetf2, slaswp, slauu2, slauum, spotf2, spotri, strti2, strtri
+    sgbbrd, sgbcon, sgbequ, sgbrfs, sgbsv,
+    sgbsvx, sgbtf2, sgbtrf, sgbtrs, sgebak, sgebal, sgebd2,
+    sgebrd, sgecon, sgeequ, sgees,  sgeesx, sgeev,  sgeevx,
+    sgehd2, sgehrd, sgelq2, sgelqf,
+    sgels,  sgelsd, sgelss, sgelsy, sgeql2, sgeqlf,
+    sgeqp3, sgeqr2, sgeqr2p, sgeqrf, sgeqrfp, sgerfs,
+    sgerq2, sgerqf, sgesc2, sgesdd, sgesvd, sgesvx,
+    sgetc2, sgetri,
+    sggbak, sggbal, sgges,  sggesx, sggev,  sggevx,
+    sggglm, sgghrd, sgglse, sggqrf,
+    sggrqf, sgtcon, sgtrfs, sgtsv,
+    sgtsvx, sgttrf, sgttrs, sgtts2, shgeqz,
+    shsein, shseqr, slabrd, slacon, slacn2,
+    slaein, slaexc, slag2,  slags2, slagtm, slagv2, slahqr,
+    slahr2, slaic1, slaln2, slals0, slalsa, slalsd,
+    slangb, slange, slangt, slanhs, slansb, slansp,
+    slansy, slantb, slantp, slantr, slanv2,
+    slapll, slapmt,
+    slaqgb, slaqge, slaqp2, slaqps, slaqsb, slaqsp, slaqsy,
+    slaqr0, slaqr1, slaqr2, slaqr3, slaqr4, slaqr5,
+    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,
+    sopgtr, sopmtr, sorg2l, sorg2r,
+    sorgbr, sorghr, sorgl2, sorglq, sorgql, sorgqr, sorgr2,
+    sorgrq, sorgtr, sorm2l, sorm2r,
+    sormbr, sormhr, sorml2, sormlq, sormql, sormqr, sormr2,
+    sormr3, sormrq, sormrz, sormtr, spbcon, spbequ, spbrfs,
+    spbstf, spbsv,  spbsvx,
+    spbtf2, spbtrf, spbtrs, spocon, spoequ, sporfs, sposv,
+    sposvx, 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,
+    ssbtrd, sspcon, sspev,  sspevd, sspevx, sspgst,
+    sspgv,  sspgvd, sspgvx, ssprfs, sspsv,  sspsvx, ssptrd,
+    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, 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, 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, sorbdb1, sorbdb2, sorbdb3, sorbdb4,
+    sorbdb5, sorbdb6, sorcsd, sorcsd2by1,
+    sgeqrt, sgeqrt2, sgeqrt3, sgemqrt,
+    stpqrt, stpqrt2, stpmqrt, stprfb,
+);
+
+@lapackobjs2ds = (
+    # DSLASRC -- Double-single mixed precision real routines called from
+    # single, single-extra and double precision real LAPACK
+    # routines (i.e. from SLASRC, SXLASRC, DLASRC).
+    #
+    # already provided by @lapackobjs:
+    #     sgetrs, spotrf, sgetrf
+    spotrs,
+);
+
+@lapackobjs2c = (
+    # CLASRC  -- Single precision complex LAPACK routines
+    # already provided by @blasobjs:
+    # already provided by @lapackobjs:
+    #     cgesv, cgetf2, claswp, clauu2, clauum, cpotf2, cpotri, ctrti2, ctrtri
+    cbdsqr, cgbbrd, cgbcon, cgbequ, cgbrfs, cgbsv,  cgbsvx,
+    cgbtf2, cgbtrf, cgbtrs, cgebak, cgebal, cgebd2, cgebrd,
+    cgecon, cgeequ, cgees,  cgeesx, cgeev,  cgeevx,
+    cgehd2, cgehrd, cgelq2, cgelqf,
+    cgels,  cgelsd, cgelss, cgelsy, cgeql2, cgeqlf, cgeqp3,
+    cgeqr2, cgeqr2p, cgeqrf, cgeqrfp, cgerfs,
+    cgerq2, cgerqf, cgesc2, cgesdd, cgesvd,
+    cgesvx, cgetc2, cgetri,
+    cggbak, cggbal, cgges,  cggesx, cggev,  cggevx, cggglm,
+    cgghrd, cgglse, cggqrf, cggrqf,
+    cgtcon, cgtrfs, cgtsv,  cgtsvx, cgttrf, cgttrs, cgtts2, chbev,
+    chbevd, chbevx, chbgst, chbgv,  chbgvd, chbgvx, chbtrd,
+    checon, cheev,  cheevd, cheevr, cheevx, chegs2, chegst,
+    chegv,  chegvd, chegvx, cherfs, chesv,  chesvx, chetd2,
+    chetf2, chetrd,
+    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,
+    clacgv, clacon, clacn2, clacp2, clacpy, clacrm, clacrt, cladiv,
+    claed0, claed7, claed8,
+    claein, claesy, claev2, clags2, clagtm,
+    clahef, clahqr,
+    clahr2, claic1, clals0, clalsa, clalsd, clangb, clange, clangt,
+    clanhb, clanhe,
+    clanhp, clanhs, clanht, clansb, clansp, clansy, clantb,
+    clantp, clantr, clapll, clapmt, clarcm, claqgb, claqge,
+    claqhb, claqhe, claqhp, claqp2, claqps, claqsb,
+    claqr0, claqr1, claqr2, claqr3, claqr4, claqr5,
+    claqsp, claqsy, clar1v, clar2v, ilaclr, ilaclc,
+    clarf,  clarfb, clarfg, clarft, clarfgp,
+    clarfx, clargv, clarnv, clarrv, clartg, clartv,
+    clarz,  clarzb, clarzt, clascl, claset, clasr,  classq,
+    clasyf, clatbs, clatdf, clatps, clatrd, clatrs, clatrz,
+    cpbcon, cpbequ, cpbrfs, cpbstf, cpbsv,
+    cpbsvx, cpbtf2, cpbtrf, cpbtrs, cpocon, cpoequ, cporfs,
+    cposv,  cposvx, 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,
+    csymv,
+    csyr, csyrfs, csysv,  csysvx, csytf2, csytrf, csytri, 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,
+    ctrsyl, ctrtrs, ctzrzf, cung2l, cung2r,
+    cungbr, cunghr, cungl2, cunglq, cungql, cungqr, cungr2,
+    cungrq, cungtr, cunm2l, cunm2r, cunmbr, cunmhr, cunml2,
+    cunmlq, cunmql, cunmqr, cunmr2, cunmr3, cunmrq, cunmrz,
+    cunmtr, cupgtr, cupmtr, icmax1, scsum1, cstemr,
+    chfrk, ctfttp, clanhf, cpftrf, cpftri, cpftrs, ctfsm, ctftri,
+    ctfttr, ctpttf, ctpttr, ctrttf, ctrttp,
+    cgeequb, cgbequb, csyequb, cpoequb, cheequb,
+    cbbcsd, clapmr, cunbdb, cunbdb1, cunbdb2, cunbdb3, cunbdb4,
+    cunbdb5, cunbdb6, cuncsd, cuncsd2by1,
+    cgeqrt, cgeqrt2, cgeqrt3, cgemqrt,
+    ctpqrt, ctpqrt2, ctpmqrt, ctprfb,
+);
+@lapackobjs2zc = (
+    # ZCLASRC -- Double-single mixed precision complex routines called from
+    # single, single-extra and double precision complex LAPACK
+    # routines (i.e. from CLASRC, CXLASRC, ZLASRC).
+    #
+    # already provided by @lapackobjs:
+    #     cgetrs, cpotrf, cgetrf
+    cpotrs,
+);
+
+@lapackobjs2d = (
+    # DLASRC  -- Double precision real LAPACK routines
+    # already provided by @lapackobjs:
+    #     dgesv, dgetf2, dgetrs, dlaswp, dlauu2, dlauum, dpotf2, dpotrf, dpotri,
+    #     dtrti2, dtrtri
+    dgbbrd, dgbcon, dgbequ, dgbrfs, dgbsv,
+    dgbsvx, dgbtf2, dgbtrf, dgbtrs, dgebak, dgebal, dgebd2,
+    dgebrd, dgecon, dgeequ, dgees,  dgeesx, dgeev,  dgeevx,
+    dgehd2, dgehrd, dgelq2, dgelqf,
+    dgels,  dgelsd, dgelss, dgelsy, dgeql2, dgeqlf,
+    dgeqp3, dgeqr2, dgeqr2p, dgeqrf, dgeqrfp, dgerfs,
+    dgerq2, dgerqf, dgesc2, dgesdd, dgesvd, dgesvx,
+    dgetc2, dgetri,
+    dggbak, dggbal, dgges,  dggesx, dggev,  dggevx,
+    dggglm, dgghrd, dgglse, dggqrf,
+    dggrqf, dgtcon, dgtrfs, dgtsv,
+    dgtsvx, dgttrf, dgttrs, dgtts2, dhgeqz,
+    dhsein, dhseqr, dlabrd, dlacon, dlacn2,
+    dlaein, dlaexc, dlag2,  dlags2, dlagtm, dlagv2, dlahqr,
+    dlahr2, dlaic1, dlaln2, dlals0, dlalsa, dlalsd,
+    dlangb, dlange, dlangt, dlanhs, dlansb, dlansp,
+    dlansy, dlantb, dlantp, dlantr, dlanv2,
+    dlapll, dlapmt,
+    dlaqgb, dlaqge, dlaqp2, dlaqps, dlaqsb, dlaqsp, dlaqsy,
+    dlaqr0, dlaqr1, dlaqr2, dlaqr3, dlaqr4, dlaqr5,
+    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,
+    dopgtr, dopmtr, dorg2l, dorg2r,
+    dorgbr, dorghr, dorgl2, dorglq, dorgql, dorgqr, dorgr2,
+    dorgrq, dorgtr, dorm2l, dorm2r,
+    dormbr, dormhr, dorml2, dormlq, dormql, dormqr, dormr2,
+    dormr3, dormrq, dormrz, dormtr, dpbcon, dpbequ, dpbrfs,
+    dpbstf, dpbsv,  dpbsvx,
+    dpbtf2, dpbtrf, dpbtrs, dpocon, dpoequ, dporfs, dposv,
+    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,
+    dsbtrd,  dspcon, dspev,  dspevd, dspevx, dspgst,
+    dspgv,  dspgvd, dspgvx, dsprfs, dspsv,  dspsvx, dsptrd,
+    dsptrf, dsptri, dsptrs, dstegr, dstein, dstev,  dstevd, dstevr,
+    dstevx,
+    dsycon, dsyev,  dsyevd, dsyevr,
+    dsyevx, dsygs2, dsygst, dsygv,  dsygvd, dsygvx, dsyrfs,
+    dsysv,  dsysvx,
+    dsytd2, dsytf2, dsytrd, dsytrf, dsytri, dsytri2, dsytri2x,
+    dsyswapr, dsytrs, dsytrs2, dsyconv,
+    dtbcon, dtbrfs, dtbtrs, dtgevc, dtgex2, dtgexc, dtgsen,
+    dtgsja, dtgsna, dtgsy2, dtgsyl, dtpcon, dtprfs, dtptri,
+    dtptrs,
+    dtrcon, dtrevc, dtrexc, dtrrfs, dtrsen, dtrsna, dtrsyl,
+    dtrtrs, dtzrzf, dstemr,
+    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, dorbdb1, dorbdb2, dorbdb3, dorbdb4,
+    dorbdb5, dorbdb6, dorcsd, dorcsd2by1,
+    dgeqrt, dgeqrt2, dgeqrt3, dgemqrt,
+    dtpqrt, dtpqrt2, dtpmqrt, dtprfb,
+);
+@lapackobjs2z = (
+    # ZLASRC  -- Double precision complex LAPACK routines
+    # already provided by @blasobjs:
+    # already provided by @lapackobjs:
+    #     zgesv, zgetrs, zgetf2, zlaswp, zlauu2, zlauum, zpotf2, zpotrf, zpotri,
+    #     ztrti2, ztrtri
+    zbdsqr, zgbbrd, zgbcon, zgbequ, zgbrfs, zgbsv,  zgbsvx,
+    zgbtf2, zgbtrf, zgbtrs, zgebak, zgebal, zgebd2, zgebrd,
+    zgecon, zgeequ, zgees,  zgeesx, zgeev,  zgeevx,
+    zgehd2, zgehrd, zgelq2, zgelqf,
+    zgels,  zgelsd, zgelss, zgelsy, zgeql2, zgeqlf, zgeqp3,
+    zgeqr2, zgeqr2p, zgeqrf, zgeqrfp, zgerfs, zgerq2, zgerqf,
+    zgesc2, zgesdd, zgesvd, zgesvx, zgetc2,
+    zgetri,
+    zggbak, zggbal, zgges,  zggesx, zggev,  zggevx, zggglm,
+    zgghrd, zgglse, zggqrf, zggrqf,
+    zgtcon, zgtrfs, zgtsv,  zgtsvx, zgttrf, zgttrs, zgtts2, zhbev,
+    zhbevd, zhbevx, zhbgst, zhbgv,  zhbgvd, zhbgvx, zhbtrd,
+    zhecon, zheev,  zheevd, zheevr, zheevx, zhegs2, zhegst,
+    zhegv,  zhegvd, zhegvx, zherfs, zhesv,  zhesvx, zhetd2,
+    zhetf2, zhetrd,
+    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,
+    zlacgv, zlacon, zlacn2, zlacp2, zlacpy, zlacrm, zlacrt, zladiv,
+    zlaed0, zlaed7, zlaed8,
+    zlaein, zlaesy, zlaev2, zlags2, zlagtm,
+    zlahef, zlahqr,
+    zlahr2, zlaic1, zlals0, zlalsa, zlalsd, zlangb, zlange,
+    zlangt, zlanhb,
+    zlanhe,
+    zlanhp, zlanhs, zlanht, zlansb, zlansp, zlansy, zlantb,
+    zlantp, zlantr, zlapll, zlapmt, zlaqgb, zlaqge,
+    zlaqhb, zlaqhe, zlaqhp, zlaqp2, zlaqps, zlaqsb,
+    zlaqr0, zlaqr1, zlaqr2, zlaqr3, zlaqr4, zlaqr5,
+    zlaqsp, zlaqsy, zlar1v, zlar2v, ilazlr, ilazlc,
+    zlarcm, zlarf,  zlarfb,
+    zlarfg, zlarft, zlarfgp,
+    zlarfx, zlargv, zlarnv, zlarrv, zlartg, zlartv,
+    zlarz,  zlarzb, zlarzt, zlascl, zlaset, zlasr,
+    zlassq, zlasyf,
+    zlatbs, zlatdf, zlatps, zlatrd, zlatrs, zlatrz,
+    zpbcon, zpbequ, zpbrfs, zpbstf, zpbsv,
+    zpbsvx, zpbtf2, zpbtrf, zpbtrs, zpocon, zpoequ, zporfs,
+    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,
+    zsymv,
+    zsyr, zsyrfs, zsysv,  zsysvx, zsytf2, zsytrf, zsytri, 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,
+    ztrsyl, ztrtrs, ztzrzf, zung2l,
+    zung2r, zungbr, zunghr, zungl2, zunglq, zungql, zungqr, zungr2,
+    zungrq, zungtr, zunm2l, zunm2r, zunmbr, zunmhr, zunml2,
+    zunmlq, zunmql, zunmqr, zunmr2, zunmr3, zunmrq, zunmrz,
+    zunmtr, zupgtr,
+    zupmtr, izmax1, dzsum1, zstemr,
+    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, zunbdb1, zunbdb2, zunbdb3, zunbdb4,
+    zunbdb5, zunbdb6, zuncsd, zuncsd2by1,
+    zgeqrt, zgeqrt2, zgeqrt3, zgemqrt,
+    ztpqrt, ztpqrt2, ztpmqrt, ztprfb,
+);
+    # functions added for lapack-3.6.0
+
+@lapackobjs2c = ( @lapackobjs2c,
+    cgejsv,
+    cgesvdx,
+    cgesvj,
+    cgetrf2,
+    cgges3,
+    cggev3,
+    cgghd3,
+    cggsvd3,
+    cggsvp3,
+    cgsvj0,
+    cgsvj1,
+    clagge,
+    claghe,
+    clagsy,
+    clahilb,
+    clakf2,
+    clarge,
+    clarnd,
+    claror,
+    clarot,
+    clatm1,
+    clatm2,
+    clatm3,
+    clatm5,
+    clatm6,
+    clatme,
+    clatmr,
+    clatms,
+    clatmt,
+    cpotrf2,
+    csbmv,
+    cspr2,
+    csyr2,
+    cunm22,
+);
+@lapackobjs2d = (@lapackobjs2d,
+    dbdsvdx,
+    dgesvdx,
+    dgetrf2,
+    dgges3,
+    dggev3,
+    dgghd3,
+    dggsvd3,
+    dggsvp3,
+    dladiv2,
+    dlagge,
+    dlagsy,
+    dlahilb,
+    dlakf2,
+    dlaran,
+    dlarge,
+    dlarnd,
+    dlaror,
+    dlarot,
+    dlatm1,
+    dlatm2,
+    dlatm3,
+    dlatm5,
+    dlatm6,
+    dlatm7,
+    dlatme,
+    dlatmr,
+    dlatms,
+    dlatmt,
+    dorm22,
+    dpotrf2,
+    dsecnd,
+    );
+    @lapackobjs2s = (@lapackobjs2s,
+    sbdsvdx,
+    second,
+    sgesvdx,
+    sgetrf2,
+    sgges3,
+    sggev3,
+    sgghd3,
+    sggsvd3,
+    sggsvp3,
+    sladiv2,
+    slagge,
+    slagsy,
+    slahilb,
+    slakf2,
+    slaran,
+    slarge,
+    slarnd,
+    slaror,
+    slarot,
+    slatm1,
+    slatm2,
+    slatm3,
+    slatm5,
+    slatm6,
+    slatm7,
+    slatme,
+    slatmr,
+    slatms,
+    slatmt,
+    sorm22,
+    spotrf2,
+    );
+    @lapackobjs2z = (@lapackobjs2z,
+    zgejsv,
+    zgesvdx,
+    zgesvj,
+    zgetrf2,
+    zgges3,
+    zggev3,
+    zgghd3,
+    zggsvd3,
+    zggsvp3,
+    zgsvj0,
+    zgsvj1,
+    zlagge,
+    zlaghe,
+    zlagsy,
+    zlahilb,
+    zlakf2,
+    zlarge,
+    zlarnd,
+    zlaror,
+    zlarot,
+    zlatm1,
+    zlatm2,
+    zlatm3,
+    zlatm5,
+    zlatm6,
+    zlatme,
+    zlatmr,
+    zlatms,
+    zlatmt,
+    zpotrf2,
+    zsbmv,
+    zspr2,
+    zsyr2,
+    zunm22,
+);
+    # functions added for lapack-3.7.0
+@lapackobjs2s = (@lapackobjs2s,
+    slarfy,
+    strevc3,
+    sgelqt,
+    sgelqt3,
+    sgemlqt,
+    sgetsls,
+    sgeqr,
+    slatsqr,
+    slamtsqr,
+    sgemqr,
+    sgelq,
+    slaswlq,
+    slamswlq,
+    sgemlq,
+    stplqt,
+    stplqt2,
+    stpmlqt,
+    );
+    @lapackobjs2d = (@lapackobjs2d,
+    dlarfy,
+    dsyconvf,
+    dtrevc3,
+    dgelqt,
+    dgelqt3,
+    dgemlqt,
+    dgetsls,
+    dgeqr,
+    dlatsqr,
+    dlamtsqr,
+    dgemqr,
+    dgelq,
+    dlaswlq,
+    dlamswlq,
+    dgemlq,
+    dtplqt,
+    dtplqt2,
+    dtpmlqt,
+    );
+    @lapackobjs2c = (@lapackobjs2c,
+    clarfy,
+    csyconvf,
+    ctrevc3,
+    cgelqt,
+    cgelqt3,
+    cgemlqt,
+    cgetsls,
+    cgeqr,
+    clatsqr,
+    clamtsqr,
+    cgemqr,
+    cgelq,
+    claswlq,
+    clamswlq,
+    cgemlq,
+    ctplqt,
+    ctplqt2,
+    ctpmlqt,
+    );
+    @lapackobjs2z = (@lapackobjs2z,
+    zlarfy,
+    zsyconvf,
+    ztrevc3,
+    ztplqt,
+    ztplqt2,
+    ztpmlqt,
+    zgelqt,
+    zgelqt3,
+    zgemlqt,
+    zgetsls,
+    zgeqr,
+    zlatsqr,
+    zlamtsqr,
+    zgemqr,
+    zgelq,
+    zlaswlq,
+    zlamswlq,
+    zgemlq,
+    );
+    @lapackobjs2s = (@lapackobjs2s,
+    sladiv1);
+    @lapackobjs2d = (@lapackobjs2d,
+    dladiv1);
+    @lapackobjs = (@lapackobjs,
+    iparam2stage,
+    # functions added for lapack-3.8.0
+    ilaenv2stage,
+    );
+    # functions added for lapack-3.9.0
+@lapackobjs2c = (@lapackobjs2c,
+    cgesvdq,
+    cungtsqr
+    );
+@lapackobjs2d = (@lapackobjs2d,
+    dcombssq,
+    dgesvdq,
+    dorgtsqr,
+    );
+@lapackobjs2s = (@lapackobjs2s,
+    scombssq,
+    sgesvdq,
+    sorgtsqr,
+    );
+@lapackobjs2z = (@lapackobjs2z,
+    zgesvdq,
+    zungtsqr
+);
+    #functions added for lapack-3.10
+@lapackobjs2c = (@lapackobjs2c,
+    cgetsqrhrt,
+    cungtsqr_row
+    );
+@lapackobjs2d = (@lapackobjs2d,
+    dgetsqrhrt,
+    dorgtsqr_row
+    );
+@lapackobjs2s = (@lapackobjs2s,
+    sgetsqrhrt,
+    sorgtsqr_row
+    );
+@lapackobjs2z = (@lapackobjs2z,
+    zgetsqrhrt,
+    zungtsqr_row
+    );
+
+@lapack_extendedprecision_objs = (
+    zposvxx, clagge, clatms, chesvxx, cposvxx, cgesvxx, ssyrfssx, csyrfsx,
+    dlagsy, dsysvxx, sporfsx, slatms, zlatms, zherfsx, csysvxx,
+);
+
+@lapack_deprecated_objsc = (
+    cgegs,   cggsvd,  
+    cgegv,   cggsvp,  
+    cgelsx,  clahrd,  
+    cgeqpf,  clatzm,  
+    ctzrqf,
+    );
+@lapack_deprecated_objsd = (
+    dgegs,   dgeqpf,
+    dgegv,   dggsvd,
+    dgelsx,  dggsvp,
+             dlahrd,
+  dlatzm,  dtzrqf);
+  
+@lapack_deprecated_objss = ( 
+  sgelsx,
+  sgegs,
+  sgegv,
+  sgeqpf,
+  sggsvd,
+  sggsvp,
+  slahrd,
+  slatzm,
+  stzrqf
+  );
+
+@lapack_deprecated_objsz = ( 
+  zgegs,
+  zgegv,
+  zgelsx,
+  zgeqpf,
+  zggsvd,
+  zggsvp,
+  zlahrd,
+  zlatzm,
+  ztzrqf
+  );
+
+@lapacke_deprecated_objsc = (
+    LAPACKE_cggsvp,
+    LAPACKE_cggsvp_work,
+    LAPACKE_cggsvd,
+    LAPACKE_cggsvd_work,
+    LAPACKE_cgeqpf,
+    LAPACKE_cgeqpf_work,
+);  
+@lapacke_deprecated_objsd = (    
+    LAPACKE_dggsvp,
+    LAPACKE_dggsvp_work,
+    LAPACKE_dggsvd,
+    LAPACKE_dggsvd_work,
+    LAPACKE_dgeqpf,
+    LAPACKE_dgeqpf_work,
+);    
+@lapacke_deprecated_objss = (    
+    LAPACKE_sggsvp,
+    LAPACKE_sggsvp_work,
+    LAPACKE_sggsvd,
+    LAPACKE_sggsvd_work,
+    LAPACKE_sgeqpf,
+    LAPACKE_sgeqpf_work,
+);    
+@lapacke_deprecated_objsz = (    
+    LAPACKE_zggsvp,
+    LAPACKE_zggsvp_work,
+    LAPACKE_zggsvd,
+    LAPACKE_zggsvd_work,
+    LAPACKE_zgeqpf,
+    LAPACKE_zgeqpf_work,
+);
+
+
+@lapackeobjs = (
+    # LAPACK C interface routines.
+    #
+    # This list is prepared in a similar manner to @lapackobjs2, however the
+    # functions all begin with an uppercase prefix (with the exception of the
+    # make_complex_* routines).
+    #
+    # The functions corresponding to @(MATGEN_OBJ) and @(SRCX_OBJ) are not
+    # exported since the respective LAPACK routines are not built by default.
+
+    # @(OBJ) from `lapack-3.4.1/lapacke/utils/Makefile`
+    LAPACKE_lsame,
+    LAPACKE_ilaver,
+    LAPACKE_xerbla,
+    lapack_make_complex_float,
+    lapack_make_complex_double,
+    LAPACKE_get_nancheck,
+    LAPACKE_set_nancheck,
+);
+@lapackeobjsc = (
+    LAPACKE_cgb_nancheck,
+    LAPACKE_cgb_trans,
+    LAPACKE_cge_nancheck,
+    LAPACKE_cge_trans,
+    LAPACKE_cgg_nancheck,
+    LAPACKE_cgg_trans,
+    LAPACKE_cgt_nancheck,
+    LAPACKE_chb_nancheck,
+    LAPACKE_chb_trans,
+    LAPACKE_che_nancheck,
+    LAPACKE_che_trans,
+    LAPACKE_chp_nancheck,
+    LAPACKE_chp_trans,
+    LAPACKE_chs_nancheck,
+    LAPACKE_chs_trans,
+    LAPACKE_c_nancheck,
+    LAPACKE_cpb_nancheck,
+    LAPACKE_cpb_trans,
+    LAPACKE_cpf_nancheck,
+    LAPACKE_cpf_trans,
+    LAPACKE_cpo_nancheck,
+    LAPACKE_cpo_trans,
+    LAPACKE_cpp_nancheck,
+    LAPACKE_cpp_trans,
+    LAPACKE_cpt_nancheck,
+    LAPACKE_csp_nancheck,
+    LAPACKE_csp_trans,
+    LAPACKE_cst_nancheck,
+    LAPACKE_csy_nancheck,
+    LAPACKE_csy_trans,
+    LAPACKE_ctb_nancheck,
+    LAPACKE_ctb_trans,
+    LAPACKE_ctf_nancheck,
+    LAPACKE_ctf_trans,
+    LAPACKE_ctp_nancheck,
+    LAPACKE_ctp_trans,
+    LAPACKE_ctr_nancheck,
+    LAPACKE_ctr_trans,
+    LAPACKE_cbbcsd,
+    LAPACKE_cbbcsd_work,
+    LAPACKE_cbdsqr,
+    LAPACKE_cbdsqr_work,
+    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_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_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_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_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_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_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_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_chsein,
+    LAPACKE_chsein_work,
+    LAPACKE_chseqr,
+    LAPACKE_chseqr_work,
+    LAPACKE_clacgv,
+    LAPACKE_clacgv_work,
+    LAPACKE_clacn2,
+    LAPACKE_clacn2_work,
+    LAPACKE_clacp2,
+    LAPACKE_clacp2_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_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_cpftrf,
+    LAPACKE_cpftrf_work,
+    LAPACKE_cpftri,
+    LAPACKE_cpftri_work,
+    LAPACKE_cpftrs,
+    LAPACKE_cpftrs_work,
+    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_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_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_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_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_csycon,
+    LAPACKE_csycon_work,
+    LAPACKE_csyconv,
+    LAPACKE_csyconv_work,
+    LAPACKE_csyequb,
+    LAPACKE_csyequb_work,
+    LAPACKE_csyrfs,
+    LAPACKE_csyrfs_work,
+    LAPACKE_csysv,
+    LAPACKE_csysv_rook,
+    LAPACKE_csysv_rook_work,
+    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_ctbcon,
+    LAPACKE_ctbcon_work,
+    LAPACKE_ctbrfs,
+    LAPACKE_ctbrfs_work,
+    LAPACKE_ctbtrs,
+    LAPACKE_ctbtrs_work,
+    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_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_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_csyr,
+    LAPACKE_csyr_work,
+    LAPACKE_clatms,
+    LAPACKE_clatms_work,
+    LAPACKE_clagge,
+    LAPACKE_clagge_work,
+    LAPACKE_claghe,
+    LAPACKE_claghe_work,
+    LAPACKE_clagsy,
+    LAPACKE_clagsy_work,
+    LAPACKE_cgejsv,
+    LAPACKE_cgejsv_work,
+    LAPACKE_cgesvdx,
+    LAPACKE_cgesvdx_work,
+    LAPACKE_cgesvj,
+    LAPACKE_cgesvj_work,
+    LAPACKE_cgetrf2,
+    LAPACKE_cgetrf2_work,
+    LAPACKE_cgges3,
+    LAPACKE_cgges3_work,
+    LAPACKE_cggev3,
+    LAPACKE_cggev3_work,
+    LAPACKE_cgghd3,
+    LAPACKE_cgghd3_work,
+    LAPACKE_cggsvd3,
+    LAPACKE_cggsvd3_work,
+    LAPACKE_cggsvp3,
+    LAPACKE_cggsvp3_work,
+    LAPACKE_chetrf_rook,
+    LAPACKE_chetrf_rook_work,
+    LAPACKE_chetrs_rook,
+    LAPACKE_chetrs_rook_work,
+    LAPACKE_clapmt,
+    LAPACKE_clapmt_work,
+    LAPACKE_clascl,
+    LAPACKE_clascl_work,
+    LAPACKE_cpotrf2,
+    LAPACKE_cpotrf2_work,
+    LAPACKE_csytrf_rook,
+    LAPACKE_csytrf_rook_work,
+    LAPACKE_csytrs_rook,
+    LAPACKE_csytrs_rook_work,
+    LAPACKE_cuncsd2by1,
+    LAPACKE_cuncsd2by1_work,
+    LAPACKE_cgelq,
+    LAPACKE_cgelq_work,
+    LAPACKE_cgemlq,
+    LAPACKE_cgemlq_work,
+    LAPACKE_cgemqr,
+    LAPACKE_cgemqr_work,
+    LAPACKE_cgeqr,
+    LAPACKE_cgeqr_work,
+    LAPACKE_cgetsls,
+    LAPACKE_cgetsls_work,
+    LAPACKE_chbev_2stage,
+    LAPACKE_chbev_2stage_work,
+    LAPACKE_chbevd_2stage,
+    LAPACKE_chbevd_2stage_work,
+    LAPACKE_chbevx_2stage,
+    LAPACKE_chbevx_2stage_work,
+    LAPACKE_checon_3,
+    LAPACKE_checon_3_work,
+    LAPACKE_cheev_2stage,
+    LAPACKE_cheev_2stage_work,
+    LAPACKE_cheevd_2stage,
+    LAPACKE_cheevd_2stage_work,
+    LAPACKE_cheevr_2stage,
+    LAPACKE_cheevr_2stage_work,
+    LAPACKE_cheevx_2stage,
+    LAPACKE_cheevx_2stage_work,
+    LAPACKE_chegv_2stage,
+    LAPACKE_chegv_2stage_work,
+    LAPACKE_chesv_aa,
+    LAPACKE_chesv_aa_work,
+    LAPACKE_chesv_rk,
+    LAPACKE_chesv_rk_work,
+    LAPACKE_chetrf_aa,
+    LAPACKE_chetrf_aa_work,
+    LAPACKE_chetrf_rk,
+    LAPACKE_chetrf_rk_work,
+    LAPACKE_chetri_3,
+    LAPACKE_chetri_3_work,
+    LAPACKE_chetrs_aa,
+    LAPACKE_chetrs_aa_work,
+    LAPACKE_chetrs_3,
+    LAPACKE_chetrs_3_work,
+    LAPACKE_csycon_3,
+    LAPACKE_csycon_3_work,
+    LAPACKE_csysv_aa,
+    LAPACKE_csysv_aa_work,
+    LAPACKE_csysv_rk,
+    LAPACKE_csysv_rk_work,
+    LAPACKE_csytrf_aa,
+    LAPACKE_csytrf_aa_work,
+    LAPACKE_csytrf_rk,
+    LAPACKE_csytrf_rk_work,
+    LAPACKE_csytri_3,
+    LAPACKE_csytri_3_work,
+    LAPACKE_csytrs_aa,
+    LAPACKE_csytrs_aa_work,
+    LAPACKE_csytrs_3,
+    LAPACKE_csytrs_3_work,
+    LAPACKE_chesv_aa_2stage,
+    LAPACKE_chesv_aa_2stage_work,
+    LAPACKE_chetrf_aa_2stage,
+    LAPACKE_chetrf_aa_2stage_work,
+    LAPACKE_chetrs_aa_2stage,
+    LAPACKE_chetrs_aa_2stage_work,
+    LAPACKE_clacrm,
+    LAPACKE_clacrm_work,
+    LAPACKE_clarcm,
+    LAPACKE_clarcm_work,
+    LAPACKE_classq,
+    LAPACKE_classq_work,
+    LAPACKE_csysv_aa_2stage,
+    LAPACKE_csysv_aa_2stage_work,
+    LAPACKE_csytrf_aa_2stage,
+    LAPACKE_csytrf_aa_2stage_work,
+    LAPACKE_csytrs_aa_2stage,
+    LAPACKE_csytrs_aa_2stage_work,
+    LAPACKE_cgesvdq,
+    LAPACKE_cgesvdq_work,
+    LAPACKE_cgetsqrhrt,
+    LAPACKE_cgetsqrhrt_work,
+    LAPACKE_cungtsqr_row,
+    LAPACKE_cungtsqr_row_work
+
+);
+@lapackeobjsd = (
+    LAPACKE_dgb_nancheck,
+    LAPACKE_dgb_trans,
+    LAPACKE_dge_nancheck,
+    LAPACKE_dge_trans,
+    LAPACKE_dgg_nancheck,
+    LAPACKE_dgg_trans,
+    LAPACKE_dgt_nancheck,
+    LAPACKE_dhs_nancheck,
+    LAPACKE_dhs_trans,
+    LAPACKE_d_nancheck,
+    LAPACKE_dpb_nancheck,
+    LAPACKE_dpb_trans,
+    LAPACKE_dpf_nancheck,
+    LAPACKE_dpf_trans,
+    LAPACKE_dpo_nancheck,
+    LAPACKE_dpo_trans,
+    LAPACKE_dpp_nancheck,
+    LAPACKE_dpp_trans,
+    LAPACKE_dpt_nancheck,
+    LAPACKE_dsb_nancheck,
+    LAPACKE_dsb_trans,
+    LAPACKE_dsp_nancheck,
+    LAPACKE_dsp_trans,
+    LAPACKE_dst_nancheck,
+    LAPACKE_dsy_nancheck,
+    LAPACKE_dsy_trans,
+    LAPACKE_dtb_nancheck,
+    LAPACKE_dtb_trans,
+    LAPACKE_dtf_nancheck,
+    LAPACKE_dtf_trans,
+    LAPACKE_dtp_nancheck,
+    LAPACKE_dtp_trans,
+    LAPACKE_dtr_nancheck,
+    LAPACKE_dtr_trans,
+    LAPACKE_dbbcsd,
+    LAPACKE_dbbcsd_work,
+    LAPACKE_dbdsdc,
+    LAPACKE_dbdsdc_work,
+    LAPACKE_dbdsqr,
+    LAPACKE_dbdsqr_work,
+    LAPACKE_ddisna,
+    LAPACKE_ddisna_work,
+    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_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_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_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_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_dhsein,
+    LAPACKE_dhsein_work,
+    LAPACKE_dhseqr,
+    LAPACKE_dhseqr_work,
+    LAPACKE_dlacn2,
+    LAPACKE_dlacn2_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_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_dpftrf,
+    LAPACKE_dpftrf_work,
+    LAPACKE_dpftri,
+    LAPACKE_dpftri_work,
+    LAPACKE_dpftrs,
+    LAPACKE_dpftrs_work,
+    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_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_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_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_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_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_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_rook,
+    LAPACKE_dsysv_rook_work,
+    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_dtbcon,
+    LAPACKE_dtbcon_work,
+    LAPACKE_dtbrfs,
+    LAPACKE_dtbrfs_work,
+    LAPACKE_dtbtrs,
+    LAPACKE_dtbtrs_work,
+    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_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_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_dlatms,
+    LAPACKE_dlatms_work,
+    LAPACKE_dlagge,
+    LAPACKE_dlagge_work,
+    LAPACKE_dlagsy,
+    LAPACKE_dlagsy_work,
+    LAPACKE_dbdsvdx,
+    LAPACKE_dbdsvdx_work,
+    LAPACKE_dgesvdx,
+    LAPACKE_dgesvdx_work,
+    LAPACKE_dgetrf2,
+    LAPACKE_dgetrf2_work,
+    LAPACKE_dgges3,
+    LAPACKE_dgges3_work,
+    LAPACKE_dggev3,
+    LAPACKE_dggev3_work,
+    LAPACKE_dgghd3,
+    LAPACKE_dgghd3_work,
+    LAPACKE_dggsvd3,
+    LAPACKE_dggsvd3_work,
+    LAPACKE_dggsvp3,
+    LAPACKE_dggsvp3_work,
+    LAPACKE_dlapmt,
+    LAPACKE_dlapmt_work,
+    LAPACKE_dlascl,
+    LAPACKE_dlascl_work,
+    LAPACKE_dorcsd2by1,
+    LAPACKE_dorcsd2by1_work,
+    LAPACKE_dpotrf2,
+    LAPACKE_dpotrf2_work,
+    LAPACKE_dsytrf_rook,
+    LAPACKE_dsytrf_rook_work,
+    LAPACKE_dsytrs_rook,
+    LAPACKE_dsytrs_rook_work,
+    LAPACKE_dgelq,
+    LAPACKE_dgelq_work,
+    LAPACKE_dgemlq,
+    LAPACKE_dgemlq_work,
+    LAPACKE_dgemqr,
+    LAPACKE_dgemqr_work,
+    LAPACKE_dgeqr,
+    LAPACKE_dgeqr_work,
+    LAPACKE_dgetsls,
+    LAPACKE_dgetsls_work,
+    LAPACKE_dsbev_2stage,
+    LAPACKE_dsbev_2stage_work,
+    LAPACKE_dsbevd_2stage,
+    LAPACKE_dsbevd_2stage_work,
+    LAPACKE_dsbevx_2stage,
+    LAPACKE_dsbevx_2stage_work,
+    LAPACKE_dsycon_3,
+    LAPACKE_dsycon_3_work,
+    LAPACKE_dsyev_2stage,
+    LAPACKE_dsyev_2stage_work,
+    LAPACKE_dsyevd_2stage,
+    LAPACKE_dsyevd_2stage_work,
+    LAPACKE_dsyevr_2stage,
+    LAPACKE_dsyevr_2stage_work,
+    LAPACKE_dsyevx_2stage,
+    LAPACKE_dsyevx_2stage_work,
+    LAPACKE_dsygv_2stage,
+    LAPACKE_dsygv_2stage_work,
+    LAPACKE_dsysv_aa,
+    LAPACKE_dsysv_aa_work,
+    LAPACKE_dsysv_rk,
+    LAPACKE_dsysv_rk_work,
+    LAPACKE_dsytrf_aa,
+    LAPACKE_dsytrf_aa_work,
+    LAPACKE_dsytrf_rk,
+    LAPACKE_dsytrf_rk_work,
+    LAPACKE_dsytri_3,
+    LAPACKE_dsytri_3_work,
+    LAPACKE_dsytrs_aa,
+    LAPACKE_dsytrs_aa_work,
+    LAPACKE_dsytrs_3,
+    LAPACKE_dsytrs_3_work,
+    LAPACKE_dlassq,
+    LAPACKE_dlassq_work,
+    LAPACKE_dsysv_aa_2stage,
+    LAPACKE_dsysv_aa_2stage_work,
+    LAPACKE_dsytrf_aa_2stage,
+    LAPACKE_dsytrf_aa_2stage_work,
+    LAPACKE_dsytrs_aa_2stage,
+    LAPACKE_dsytrs_aa_2stage_work,
+    LAPACKE_dgesvdq,
+    LAPACKE_dgesvdq_work,
+    LAPACKE_slag2d,
+    LAPACKE_slag2d_work,
+    LAPACKE_dgetsqrhrt,
+    LAPACKE_dgetsqrhrt_work,
+    LAPACKE_dorgtsqr_row,
+    LAPACKE_dorgtsqr_row_work
+
+);
+@lapackeobjss = (
+    LAPACKE_sgb_nancheck,
+    LAPACKE_sgb_trans,
+    LAPACKE_sge_nancheck,
+    LAPACKE_sge_trans,
+    LAPACKE_sgg_nancheck,
+    LAPACKE_sgg_trans,
+    LAPACKE_sgt_nancheck,
+    LAPACKE_shs_nancheck,
+    LAPACKE_shs_trans,
+    LAPACKE_s_nancheck,
+    LAPACKE_spb_nancheck,
+    LAPACKE_spb_trans,
+    LAPACKE_spf_nancheck,
+    LAPACKE_spf_trans,
+    LAPACKE_spo_nancheck,
+    LAPACKE_spo_trans,
+    LAPACKE_spp_nancheck,
+    LAPACKE_spp_trans,
+    LAPACKE_spt_nancheck,
+    LAPACKE_ssb_nancheck,
+    LAPACKE_ssb_trans,
+    LAPACKE_ssp_nancheck,
+    LAPACKE_ssp_trans,
+    LAPACKE_sst_nancheck,
+    LAPACKE_ssy_nancheck,
+    LAPACKE_ssy_trans,
+    LAPACKE_stb_nancheck,
+    LAPACKE_stb_trans,
+    LAPACKE_stf_nancheck,
+    LAPACKE_stf_trans,
+    LAPACKE_stp_nancheck,
+    LAPACKE_stp_trans,
+    LAPACKE_str_nancheck,
+    LAPACKE_str_trans,
+    LAPACKE_sbbcsd,
+    LAPACKE_sbbcsd_work,
+    LAPACKE_sbdsdc,
+    LAPACKE_sbdsdc_work,
+    LAPACKE_sbdsqr,
+    LAPACKE_sbdsqr_work,
+    LAPACKE_sdisna,
+    LAPACKE_sdisna_work,
+    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_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_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_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_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_shsein,
+    LAPACKE_shsein_work,
+    LAPACKE_shseqr,
+    LAPACKE_shseqr_work,
+    LAPACKE_slacn2,
+    LAPACKE_slacn2_work,
+    LAPACKE_slacpy,
+    LAPACKE_slacpy_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_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_spftrf,
+    LAPACKE_spftrf_work,
+    LAPACKE_spftri,
+    LAPACKE_spftri_work,
+    LAPACKE_spftrs,
+    LAPACKE_spftrs_work,
+    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_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_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_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_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_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_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_rook,
+    LAPACKE_ssysv_rook_work,
+    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_stbcon,
+    LAPACKE_stbcon_work,
+    LAPACKE_stbrfs,
+    LAPACKE_stbrfs_work,
+    LAPACKE_stbtrs,
+    LAPACKE_stbtrs_work,
+    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_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_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_slatms,
+    LAPACKE_slatms_work,
+    LAPACKE_slagge,
+    LAPACKE_slagge_work,
+    LAPACKE_slagsy,
+    LAPACKE_slagsy_work,
+    LAPACKE_sbdsvdx,
+    LAPACKE_sbdsvdx_work,
+    LAPACKE_sgesvdx,
+    LAPACKE_sgesvdx_work,
+    LAPACKE_sgetrf2,
+    LAPACKE_sgetrf2_work,
+    LAPACKE_sgges3,
+    LAPACKE_sgges3_work,
+    LAPACKE_sggev3,
+    LAPACKE_sggev3_work,
+    LAPACKE_sgghd3,
+    LAPACKE_sgghd3_work,
+    LAPACKE_sggsvd3,
+    LAPACKE_sggsvd3_work,
+    LAPACKE_sggsvp3,
+    LAPACKE_sggsvp3_work,
+    LAPACKE_slapmt,
+    LAPACKE_slapmt_work,
+    LAPACKE_slascl,
+    LAPACKE_slascl_work,
+    LAPACKE_sorcsd2by1,
+    LAPACKE_sorcsd2by1_work,
+    LAPACKE_spotrf2,
+    LAPACKE_spotrf2_work,
+    LAPACKE_ssytrf_rook,
+    LAPACKE_ssytrf_rook_work,
+    LAPACKE_ssytrs_rook,
+    LAPACKE_ssytrs_rook_work,
+    LAPACKE_stpqrt,
+    LAPACKE_stpqrt_work,
+    LAPACKE_sgelq,
+    LAPACKE_sgelq_work,
+    LAPACKE_sgemlq,
+    LAPACKE_sgemlq_work,
+    LAPACKE_sgemqr,
+    LAPACKE_sgemqr_work,
+    LAPACKE_sgeqr,
+    LAPACKE_sgeqr_work,
+    LAPACKE_sgetsls,
+    LAPACKE_sgetsls_work,
+    LAPACKE_ssbev_2stage,
+    LAPACKE_ssbev_2stage_work,
+    LAPACKE_ssbevd_2stage,
+    LAPACKE_ssbevd_2stage_work,
+    LAPACKE_ssbevx_2stage,
+    LAPACKE_ssbevx_2stage_work,
+    LAPACKE_ssycon_3,
+    LAPACKE_ssycon_3_work,
+    LAPACKE_ssyev_2stage,
+    LAPACKE_ssyev_2stage_work,
+    LAPACKE_ssyevd_2stage,
+    LAPACKE_ssyevd_2stage_work,
+    LAPACKE_ssyevr_2stage,
+    LAPACKE_ssyevr_2stage_work,
+    LAPACKE_ssyevx_2stage,
+    LAPACKE_ssyevx_2stage_work,
+    LAPACKE_ssygv_2stage,
+    LAPACKE_ssygv_2stage_work,
+    LAPACKE_ssysv_aa,
+    LAPACKE_ssysv_aa_work,
+    LAPACKE_ssysv_rk,
+    LAPACKE_ssysv_rk_work,
+    LAPACKE_ssytrf_aa,
+    LAPACKE_ssytrf_aa_work,
+    LAPACKE_ssytrf_rk,
+    LAPACKE_ssytrf_rk_work,
+    LAPACKE_ssytri_3,
+    LAPACKE_ssytri_3_work,
+    LAPACKE_ssytrs_aa,
+    LAPACKE_ssytrs_aa_work,
+    LAPACKE_ssytrs_3,
+    LAPACKE_ssytrs_3_work,
+    LAPACKE_slassq,
+    LAPACKE_slassq_work,
+    LAPACKE_ssysv_aa_2stage,
+    LAPACKE_ssysv_aa_2stage_work,
+    LAPACKE_ssytrf_aa_2stage,
+    LAPACKE_ssytrf_aa_2stage_work,
+    LAPACKE_ssytrs_aa_2stage,
+    LAPACKE_ssytrs_aa_2stage_work,
+    LAPACKE_sgesvdq,
+    LAPACKE_sgesvdq_work,
+    LAPACKE_sgetsqrhrt,
+    LAPACKE_sgetsqrhrt_work,
+    LAPACKE_sorgtsqr_row,
+    LAPACKE_sorgtsqr_row_work
+
+);
+@lapackeobjsz = (    
+    LAPACKE_zgb_nancheck,
+    LAPACKE_zgb_trans,
+    LAPACKE_zge_nancheck,
+    LAPACKE_zge_trans,
+    LAPACKE_zgg_nancheck,
+    LAPACKE_zgg_trans,
+    LAPACKE_zgt_nancheck,
+    LAPACKE_zhb_nancheck,
+    LAPACKE_zhb_trans,
+    LAPACKE_zhe_nancheck,
+    LAPACKE_zhe_trans,
+    LAPACKE_zhp_nancheck,
+    LAPACKE_zhp_trans,
+    LAPACKE_zhs_nancheck,
+    LAPACKE_zhs_trans,
+    LAPACKE_z_nancheck,
+    LAPACKE_zpb_nancheck,
+    LAPACKE_zpb_trans,
+    LAPACKE_zpf_nancheck,
+    LAPACKE_zpf_trans,
+    LAPACKE_zpo_nancheck,
+    LAPACKE_zpo_trans,
+    LAPACKE_zpp_nancheck,
+    LAPACKE_zpp_trans,
+    LAPACKE_zpt_nancheck,
+    LAPACKE_zsp_nancheck,
+    LAPACKE_zsp_trans,
+    LAPACKE_zst_nancheck,
+    LAPACKE_zsy_nancheck,
+    LAPACKE_zsy_trans,
+    LAPACKE_ztb_nancheck,
+    LAPACKE_ztb_trans,
+    LAPACKE_ztf_nancheck,
+    LAPACKE_ztf_trans,
+    LAPACKE_ztp_nancheck,
+    LAPACKE_ztp_trans,
+    LAPACKE_ztr_nancheck,
+    LAPACKE_ztr_trans,
+    LAPACKE_zbbcsd,
+    LAPACKE_zbbcsd_work,
+    LAPACKE_zbdsqr,
+    LAPACKE_zbdsqr_work,
+    LAPACKE_zcgesv,
+    LAPACKE_zcgesv_work,
+    LAPACKE_zcposv,
+    LAPACKE_zcposv_work,
+    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_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_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_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_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_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_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_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_zhsein,
+    LAPACKE_zhsein_work,
+    LAPACKE_zhseqr,
+    LAPACKE_zhseqr_work,
+    LAPACKE_zlacgv,
+    LAPACKE_zlacgv_work,
+    LAPACKE_zlacn2,
+    LAPACKE_zlacn2_work,
+    LAPACKE_zlacp2,
+    LAPACKE_zlacp2_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_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_zpftrf,
+    LAPACKE_zpftrf_work,
+    LAPACKE_zpftri,
+    LAPACKE_zpftri_work,
+    LAPACKE_zpftrs,
+    LAPACKE_zpftrs_work,
+    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_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_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_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_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_zsycon,
+    LAPACKE_zsycon_work,
+    LAPACKE_zsyconv,
+    LAPACKE_zsyconv_work,
+    LAPACKE_zsyequb,
+    LAPACKE_zsyequb_work,
+    LAPACKE_zsyrfs,
+    LAPACKE_zsyrfs_work,
+    LAPACKE_zsysv,
+    LAPACKE_zsysv_rook,
+    LAPACKE_zsysv_rook_work,
+    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_ztbcon,
+    LAPACKE_ztbcon_work,
+    LAPACKE_ztbrfs,
+    LAPACKE_ztbrfs_work,
+    LAPACKE_ztbtrs,
+    LAPACKE_ztbtrs_work,
+    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_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_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,
+    LAPACKE_zsyr,
+    LAPACKE_zsyr_work,
+    LAPACKE_zgetsqrhrt,
+    LAPACKE_zgetsqrhrt_work,
+    LAPACKE_zungtsqr_row,
+    LAPACKE_zungtsqr_row_work
+
+    ## @(SRCX_OBJ) from `lapack-3.4.1/lapacke/src/Makefile`
+    ## Not exported: requires LAPACKE_EXTENDED to be set and depends on the
+    ##               corresponding LAPACK extended precision routines.
+    #LAPACKE_cgbrfsx,
+    #LAPACKE_cporfsx,
+    #LAPACKE_dgerfsx,
+    #LAPACKE_sgbrfsx,
+    #LAPACKE_ssyrfsx,
+    #LAPACKE_zherfsx,
+    #LAPACKE_cgbrfsx_work,
+    #LAPACKE_cporfsx_work,
+    #LAPACKE_dgerfsx_work,
+    #LAPACKE_sgbrfsx_work,
+    #LAPACKE_ssyrfsx_work,
+    #LAPACKE_zherfsx_work,
+    #LAPACKE_cgerfsx,
+    #LAPACKE_csyrfsx,
+    #LAPACKE_dporfsx,
+    #LAPACKE_sgerfsx,
+    #LAPACKE_zgbrfsx,
+    #LAPACKE_zporfsx,
+    #LAPACKE_cgerfsx_work,
+    #LAPACKE_csyrfsx_work,
+    #LAPACKE_dporfsx_work,
+    #LAPACKE_sgerfsx_work,
+    #LAPACKE_zgbrfsx_work,
+    #LAPACKE_zporfsx_work,
+    #LAPACKE_cherfsx,
+    #LAPACKE_dgbrfsx,
+    #LAPACKE_dsyrfsx,
+    #LAPACKE_sporfsx,
+    #LAPACKE_zgerfsx,
+    #LAPACKE_zsyrfsx,
+    #LAPACKE_cherfsx_work,
+    #LAPACKE_dgbrfsx_work,
+    #LAPACKE_dsyrfsx_work,
+    #LAPACKE_sporfsx_work,
+    #LAPACKE_zgerfsx_work,
+    #LAPACKE_zsyrfsx_work,
+    #LAPACKE_cgbsvxx,
+    #LAPACKE_cposvxx,
+    #LAPACKE_dgesvxx,
+    #LAPACKE_sgbsvxx,
+    #LAPACKE_ssysvxx,
+    #LAPACKE_zhesvxx,
+    #LAPACKE_cgbsvxx_work,
+    #LAPACKE_cposvxx_work,
+    #LAPACKE_dgesvxx_work,
+    #LAPACKE_sgbsvxx_work,
+    #LAPACKE_ssysvxx_work,
+    #LAPACKE_zhesvxx_work,
+    #LAPACKE_cgesvxx,
+    #LAPACKE_csysvxx,
+    #LAPACKE_dposvxx,
+    #LAPACKE_sgesvxx,
+    #LAPACKE_zgbsvxx,
+    #LAPACKE_zposvxx,
+    #LAPACKE_cgesvxx_work,
+    #LAPACKE_csysvxx_work,
+    #LAPACKE_dposvxx_work,
+    #LAPACKE_sgesvxx_work,
+    #LAPACKE_zgbsvxx_work,
+    #LAPACKE_zposvxx_work,
+    #LAPACKE_chesvxx,
+    #LAPACKE_dgbsvxx,
+    #LAPACKE_dsysvxx,
+    #LAPACKE_sposvxx,
+    #LAPACKE_zgesvxx,
+    #LAPACKE_zsysvxx,
+    #LAPACKE_chesvxx_work,
+    #LAPACKE_dgbsvxx_work,
+    #LAPACKE_dsysvxx_work,
+    #LAPACKE_sposvxx_work,
+    #LAPACKE_zgesvxx_work,
+    #LAPACKE_zsysvxx_work,
+
+    ## @(MATGEN_OBJ) from `lapack-3.4.1/lapacke/src/Makefile`
+    ## Not exported: requires LAPACKE_TESTING to be set and depends on libtmg
+    ##               (see `lapack-3.4.1/TESTING/MATGEN`).
+    LAPACKE_zlatms,
+    LAPACKE_zlatms_work,
+    LAPACKE_zlagge,
+    LAPACKE_zlagge_work,
+    LAPACKE_zlaghe,
+    LAPACKE_zlaghe_work,
+    LAPACKE_zlagsy,
+    LAPACKE_zlagsy_work,
+    ## new function from lapack-3.6.0
+    LAPACKE_zgejsv,
+    LAPACKE_zgejsv_work,
+    LAPACKE_zgesvdx,
+    LAPACKE_zgesvdx_work,
+    LAPACKE_zgesvj,
+    LAPACKE_zgesvj_work,
+    LAPACKE_zgetrf2,
+    LAPACKE_zgetrf2_work,
+    LAPACKE_zgges3,
+    LAPACKE_zgges3_work,
+    LAPACKE_zggev3,
+    LAPACKE_zggev3_work,
+    LAPACKE_zgghd3,
+    LAPACKE_zgghd3_work,
+    LAPACKE_zggsvd3,
+    LAPACKE_zggsvd3_work,
+    LAPACKE_zggsvp3,
+    LAPACKE_zggsvp3_work,
+    LAPACKE_zhetrf_rook,
+    LAPACKE_zhetrf_rook_work,
+    LAPACKE_zhetrs_rook,
+    LAPACKE_zhetrs_rook_work,
+    LAPACKE_zlapmt,
+    LAPACKE_zlapmt_work,
+    LAPACKE_zlascl,
+    LAPACKE_zlascl_work,
+    LAPACKE_zpotrf2,
+    LAPACKE_zpotrf2_work,
+    LAPACKE_zsytrf_rook,
+    LAPACKE_zsytrf_rook_work,
+    LAPACKE_zsytrs_rook,
+    LAPACKE_zsytrs_rook_work,
+    LAPACKE_zuncsd2by1,
+    LAPACKE_zuncsd2by1_work,
+
+    ## new function from lapack-3.7.0
+    LAPACKE_zgelq,
+    LAPACKE_zgelq_work,
+    LAPACKE_zgemlq,
+    LAPACKE_zgemlq_work,
+    LAPACKE_zgemqr,
+    LAPACKE_zgemqr_work,
+    LAPACKE_zgeqr,
+    LAPACKE_zgeqr_work,
+    LAPACKE_zgetsls,
+    LAPACKE_zgetsls_work,
+    LAPACKE_zhbev_2stage,
+    LAPACKE_zhbev_2stage_work,
+    LAPACKE_zhbevd_2stage,
+    LAPACKE_zhbevd_2stage_work,
+    LAPACKE_zhbevx_2stage,
+    LAPACKE_zhbevx_2stage_work,
+    LAPACKE_zhecon_3,
+    LAPACKE_zhecon_3_work,
+    LAPACKE_zheev_2stage,
+    LAPACKE_zheev_2stage_work,
+    LAPACKE_zheevd_2stage,
+    LAPACKE_zheevd_2stage_work,
+    LAPACKE_zheevr_2stage,
+    LAPACKE_zheevr_2stage_work,
+    LAPACKE_zheevx_2stage,
+    LAPACKE_zheevx_2stage_work,
+    LAPACKE_zhegv_2stage,
+    LAPACKE_zhegv_2stage_work,
+    LAPACKE_zhesv_aa,
+    LAPACKE_zhesv_aa_work,
+    LAPACKE_zhesv_rk,
+    LAPACKE_zhesv_rk_work,
+    LAPACKE_zhetrf_aa,
+    LAPACKE_zhetrf_aa_work,
+    LAPACKE_zhetrf_rk,
+    LAPACKE_zhetrf_rk_work,
+    LAPACKE_zhetri_3,
+    LAPACKE_zhetri_3_work,
+    LAPACKE_zhetrs_aa,
+    LAPACKE_zhetrs_aa_work,
+    LAPACKE_zhetrs_3,
+    LAPACKE_zhetrs_3_work,
+    LAPACKE_zsycon_3,
+    LAPACKE_zsycon_3_work,
+    LAPACKE_zsysv_aa,
+    LAPACKE_zsysv_aa_work,
+    LAPACKE_zsysv_rk,
+    LAPACKE_zsysv_rk_work,
+    LAPACKE_zsytrf_aa,
+    LAPACKE_zsytrf_aa_work,
+    LAPACKE_zsytrf_rk,
+    LAPACKE_zsytrf_rk_work,
+    LAPACKE_zsytri_3,
+    LAPACKE_zsytri_3_work,
+    LAPACKE_zsytrs_aa,
+    LAPACKE_zsytrs_aa_work,
+    LAPACKE_zsytrs_3,
+    LAPACKE_zsytrs_3_work,
+    
+    ## new function from lapack-3.8.0
+    LAPACKE_zhesv_aa_2stage,
+    LAPACKE_zhesv_aa_2stage_work,
+    LAPACKE_zhetrf_aa_2stage,
+    LAPACKE_zhetrf_aa_2stage_work,
+    LAPACKE_zhetrs_aa_2stage,
+    LAPACKE_zhetrs_aa_2stage_work,
+    LAPACKE_zlacrm,
+    LAPACKE_zlacrm_work,
+    LAPACKE_zlarcm,
+    LAPACKE_zlarcm_work,
+    LAPACKE_zlassq,
+    LAPACKE_zlassq_work,
+    LAPACKE_zsysv_aa_2stage,
+    LAPACKE_zsysv_aa_2stage_work,
+    LAPACKE_zsytrf_aa_2stage,
+    LAPACKE_zsytrf_aa_2stage_work,
+    LAPACKE_zsytrs_aa_2stage,
+    LAPACKE_zsytrs_aa_2stage_work,
+    # new functions from 3.9.0
+    LAPACKE_zgesvdq,
+    LAPACKE_zgesvdq_work
+);
+
+#These function may need 2 underscores.
+@lapack_embeded_underscore_objs=(
+    xerbla_array, chla_transtype,
+    );
+@lapack_embeded_underscore_objs_s=(    
+     slasyf_rook,
+    ssytf2_rook, ssytrf_rook, ssytrs_rook,
+    ssytri_rook, ssycon_rook, ssysv_rook,
+    slasyf_rk, ssyconvf_rook, ssytf2_rk,
+    ssytrf_rk, ssytrs_3, ssytri_3,
+    ssytri_3x, ssycon_3, ssysv_rk,
+    slasyf_aa, ssysv_aa, ssytrf_aa,
+    ssytrs_aa, ssytrd_2stage, ssytrd_sy2sb,
+    ssytrd_sb2st, ssb2st_kernels, ssyevd_2stage,
+    ssyev_2stage, ssyevx_2stage, ssyevr_2stage,
+    ssbev_2stage, ssbevx_2stage, ssbevd_2stage,
+    ssygv_2stage, 
+    ssysv_aa_2stage, ssytrf_aa_2stage,
+    ssytrs_aa_2stage, 
+    slaorhr_col_getrfnp, slaorhr_col_getrfnp2, sorhr_col,
+);
+@lapack_embeded_underscore_objs_c=(    
+    chetf2_rook, chetrf_rook, chetri_rook,
+    chetrs_rook, checon_rook, chesv_rook,
+    clahef_rook, clasyf_rook,
+    csytf2_rook, csytrf_rook, csytrs_rook,
+    csytri_rook, csycon_rook, csysv_rook,
+    chetf2_rk,
+    chetrf_rk, chetri_3, chetri_3x,
+    chetrs_3, checon_3, chesv_rk,
+    chesv_aa, chetrf_aa, chetrs_aa,
+    clahef_aa, clahef_rk, clasyf_rk,
+    clasyf_aa, csytf2_rk, csytrf_rk,
+    csytrf_aa, csytrs_3, csytrs_aa,
+    csytri_3, csytri_3x, csycon_3,
+    csysv_rk, csysv_aa, csyconvf_rook,
+    chetrd_2stage, chetrd_he2hb, chetrd_hb2st,
+    chb2st_kernels, cheevd_2stage, cheev_2stage,
+    cheevx_2stage, cheevr_2stage, chbev_2stage,
+    chbevx_2stage, chbevd_2stage, chegv_2stage,
+    chesv_aa_2stage,
+    chetrf_aa_2stage, chetrs_aa_2stage,
+    csysv_aa_2stage, csytrf_aa_2stage,
+    csytrs_aa_2stage,
+    claunhr_col_getrfnp, claunhr_col_getrfnp2, cunhr_col,
+);
+@lapack_embeded_underscore_objs_d=(    
+    dlasyf_rook,
+    dsytf2_rook, dsytrf_rook, dsytrs_rook,
+    dsytri_rook, dsycon_rook, dsysv_rook,
+    dlasyf_rk, dsyconvf_rook,
+    dsytf2_rk, dsytrf_rk, dsytrs_3,
+    dsytri_3, dsytri_3x, dsycon_3,
+    dsysv_rk, dlasyf_aa, dsysv_aa,
+    dsytrf_aa, dsytrs_aa, dsytrd_2stage,
+    dsytrd_sy2sb, dsytrd_sb2st, dsb2st_kernels,
+    dsyevd_2stage, dsyev_2stage, dsyevx_2stage,
+    dsyevr_2stage, dsbev_2stage, dsbevx_2stage,
+    dsbevd_2stage, dsygv_2stage, 
+     dsysv_aa_2stage,
+    dsytrf_aa_2stage, dsytrs_aa_2stage,
+    dlaorhr_col_getrfnp, dlaorhr_col_getrfnp2, dorhr_col,
+);
+@lapack_embeded_underscore_objs_z=(    
+    zhetf2_rook, zhetrf_rook, zhetri_rook,
+    zhetrs_rook, zhecon_rook, zhesv_rook,
+    zlahef_rook, zlasyf_rook,
+    zsytf2_rook, zsytrf_rook, zsytrs_rook,
+    zsytri_rook, zsycon_rook, zsysv_rook,
+    zhetf2_rk, zhetrf_rk, zhetri_3,
+    zhetri_3x, zhetrs_3, zhecon_3,
+    zhesv_rk, zhesv_aa, zhetrf_aa,
+    zhetrs_aa, zlahef_aa, zlahef_rk,
+    zlasyf_rk, zlasyf_aa, zsyconvf_rook,
+    zsytrs_aa, zsytf2_rk, zsytrf_rk,
+    zsytrf_aa, zsytrs_3, zsytri_3,
+    zsytri_3x, zsycon_3, zsysv_rk,
+    zsysv_aa, zhetrd_2stage, zhetrd_he2hb,
+    zhetrd_hb2st, zhb2st_kernels, zheevd_2stage,
+    zheev_2stage, zheevx_2stage, zheevr_2stage,
+    zhbev_2stage, zhbevx_2stage, zhbevd_2stage,
+    zhegv_2stage,
+    zhesv_aa_2stage, zhetrf_aa_2stage,
+    zhetrs_aa_2stage, zsysv_aa_2stage,
+    zsytrf_aa_2stage, zsytrs_aa_2stage,
+    zlaunhr_col_getrfnp, zlaunhr_col_getrfnp2, zunhr_col
+);
+
+
+use File::Spec;
+use File::Basename;
+my $dirname = File::Spec->catfile(dirname(dirname(File::Spec->rel2abs(__FILE__))), "lapack-netlib");
+
+if ($ARGV[12] == 1) {
+       @blasobjs = (@blasobjs, @bfblasobjs);
+       @cblasobjs = (@cblasobjs, @bfcblasobjs);
+}
+if ($ARGV[13] == 1) {
+       @blasobjs = (@blasobjs, @blasobjss);
+       @cblasobjs = (@cblasobjs, @cblasobjss);
+       @lapackobjs = (@lapackobjs, @lapackobjss);
+       @lapackobjs2 = (@lapackobjs2, @lapackobjs2s);
+       @lapackobjs2 = (@lapackobjs2, @lapackobjs2sc);
+       @lapackobjs2 = (@lapackobjs2, @lapackobjs2ds);
+       @lapack_deprecated_objs = (@lapack_deprecated_objs, @lapack_deprecated_objss);
+       @lapacke_deprecated_objs = (@lapacke_deprecated_objs, @lapacke_deprecated_objss);
+       @lapack_embeded_underscore_objs = (@lapack_embeded_underscore_objs,  @lapack_embeded_underscore_objs_s); 
+       @lapackeobjs = (@lapackeobjs, @lapackeobjss);
+}
+if ($ARGV[14] == 1) {
+       @blasobjs = (@blasobjs, @blasobjsd);
+       @cblasobjs = (@cblasobjs, @cblasobjsd);
+       @lapackobjs = (@lapackobjs, @lapackobjsd);
+       if ($ARGV[13] == 0) { 
+               @lapackobjs2 = (@lapackobjs2, @lapackobjs2ds);
+       }
+       @lapackobjs2 = (@lapackobjs2, @lapackobjs2d, @lapackobjs2dz);
+       @lapack_deprecated_objs = (@lapack_deprecated_objs, @lapack_deprecated_objsd);
+       @lapacke_deprecated_objs = (@lapacke_deprecated_objs, @lapacke_deprecated_objsd);
+       @lapack_embeded_underscore_objs = (@lapack_embeded_underscore_objs,  @lapack_embeded_underscore_objs_d);
+       @lapackeobjs = (@lapackeobjs, @lapackeobjsd);
+}
+if ($ARGV[15] == 1) {
+       @blasobjs = (@blasobjs, @blasobjsc);
+       @cblasobjs = (@cblasobjs, @cblasobjsc);
+       @gemm3mobjs = (@gemm3mobjs, @gemm3mobjsc);
+       @cblasgemm3mobjs = (@cblasgemm3mobjs, @cblasgemm3mobjsc);
+       @lapackobjs = (@lapackobjs, @lapackobjsc);
+       @lapackobjs2 = (@lapackobjs2, @lapackobjs2c, @lapackobjs2zc);
+       if ($ARGV[13] == 0) { 
+               @lapackobjs2 = (@lapackobjs2, @lapackobjs2sc);
+       }
+       @lapack_deprecated_objs = (@lapack_deprecated_objs, @lapack_deprecated_objsc);
+       @lapacke_deprecated_objs = (@lapacke_deprecated_objs, @lapacke_deprecated_objsc);
+       @lapack_embeded_underscore_objs = (@lapack_embeded_underscore_objs,  @lapack_embeded_underscore_objs_c);
+       @lapackeobjs = (@lapackeobjs, @lapackeobjsc);
+}
+if ($ARGV[16] == 1) {
+       @blasobjs = (@blasobjs, @blasobjsz);
+       @cblasobjs = (@cblasobjs, @cblasobjsz);
+       @gemm3mobjs = (@gemm3mobjs, @gemm3mobjsz);
+       @cblasgemm3mobjs = (@cblasgemm3mobjs, @cblasgemm3mobjsz);
+       @lapackobjs = (@lapackobjs, @lapackobjsz);
+       @lapackobjs2 = (@lapackobjs2, @lapackobjs2z);
+       if ($ARGV[15] == 0) { 
+               @lapackobjs2 = (@lapackobjs2, @lapackobjs2zc);
+       }
+       if ($ARGV[14] == 0) { 
+               @lapackobjs2 = (@lapackobjs2, @lapackobjs2dz);
+       }
+       @lapack_deprecated_objs = (@lapack_deprecated_objs, @lapack_deprecated_objsz);
+       @lapacke_deprecated_objs = (@lapacke_deprecated_objs, @lapacke_deprecated_objsz);
+       @lapack_embeded_underscore_objs = (@lapack_embeded_underscore_objs,  @lapack_embeded_underscore_objs_z);
+       @lapackeobjs = (@lapackeobjs, @lapackeobjsz);
+}
+if ($ARGV[8] == 1) {
+    #ONLY_CBLAS=1
+    @underscore_objs = (@misc_underscore_objs);
+} elsif ($ARGV[5] == 1) {
+    #NO_LAPACK=1
+    @underscore_objs = (@blasobjs, @misc_underscore_objs);
+} elsif (-d $dirname) {
+    if ($ARGV[7] == 0) {
+        # NEED2UNDERSCORES=0
+        # Don't need 2 underscores
+        @underscore_objs = (@blasobjs, @lapackobjs, @lapackobjs2, @misc_underscore_objs, @lapack_embeded_underscore_objs);
+    } else {
+        # Need 2 underscores
+        @underscore_objs = (@blasobjs, @lapackobjs, @lapackobjs2, @misc_underscore_objs);
+        @need_2underscore_objs = (@lapack_embeded_underscore_objs);
+    };
+
+    if ($ARGV[11] == 1) {
+        #BUILD_LAPACK_DEPRECATED=1
+        @underscore_objs = (@underscore_objs, @lapack_deprecated_objs);
+    }
+} else {
+    @underscore_objs = (@blasobjs, @lapackobjs, @misc_underscore_objs);
+}
+
+if ($ARGV[8] == 1) {
+    #ONLY_CBLAS=1
+    @gemm3mobjs=();
+    @exblasobjs=();
+}
+
+if ($ARGV[3] == 1) {
+    @underscore_objs = (@underscore_objs, @exblasobjs);
+};
+
+if ($ARGV[1] eq "x86_64") { @underscore_objs = (@underscore_objs, @gemm3mobjs); };
+if ($ARGV[1] eq "x86")    { @underscore_objs = (@underscore_objs, @gemm3mobjs); };
+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, @misc_no_underscore_objs);
+    if ($ARGV[1] eq "x86_64") { @no_underscore_objs = (@no_underscore_objs, @cblasgemm3mobjs); };
+    if ($ARGV[1] eq "x86")    { @no_underscore_objs = (@no_underscore_objs, @cblasgemm3mobjs); };
+    if ($ARGV[1] eq "ia64")   { @no_underscore_objs = (@no_underscore_objs, @cblasgemm3mobjs); };
+    if ($ARGV[1] eq "MIPS")   { @no_underscore_objs = (@no_underscore_objs, @cblasgemm3mobjs); };
+}else{
+    #NO_CBLAS=1
+    @no_underscore_objs = (@misc_no_underscore_objs);
+}
+if ($ARGV[6] == 1) {
+    #NO_LAPACKE=1
+    @no_underscore_objs = (@no_underscore_objs);
+} else {
+    if ($ARGV[11] == 1) {
+        #BUILD_LAPACK_DEPRECATED=1
+        @no_underscore_objs = (@no_underscore_objs, @lapackeobjs, @lapacke_deprecated_objs);
+    } else {
+        @no_underscore_objs = (@no_underscore_objs, @lapackeobjs);
+    }
+}
+
+@hplobjs  = (daxpy, dcopy, dscal, idamax, dgemv, dtrsv, dger, dgemm, dtrsm);
+@hplobjs2 = (HPL_dlaswp00N, HPL_dlaswp01N, HPL_dlaswp01T);
+
+$bu = $ARGV[2];
+
+$bu = "" if (($bu eq "0") || ($bu eq "1"));
+
+$symbolprefix = $ARGV[9];
+
+$symbolsuffix = $ARGV[10];
+
+if ($ARGV[0] eq "osx") {
+    @underscore_objs = (@underscore_objs, @misc_common_objs);
+    @no_underscore_objs = (@no_underscore_objs, @misc_common_objs);
+
+    foreach $objs (@underscore_objs) {
+        print "_", $symbolprefix, $objs, $bu, $symbolsuffix, "\n";
+    }
+
+    foreach $objs (@need_2underscore_objs) {
+        print "_", $symbolprefix, $objs, $bu, $bu, $symbolsuffix, "\n";
+    }
+
+    foreach $objs (@no_underscore_objs) {
+        print "_", $symbolprefix, $objs, $symbolsuffix, "\n";
+    }
+    exit(0);
+}
+
+if ($ARGV[0] eq "aix"){
+    @underscore_objs = (@underscore_objs, @misc_common_objs);
+    @no_underscore_objs = (@no_underscore_objs, @misc_common_objs);
+
+    foreach $objs (@underscore_objs) {
+        print $symbolprefix, $objs, $bu, $symbolsuffix, "\n";
+    }
+
+    foreach $objs (@need_2underscore_objs) {
+        print $symbolprefix, $objs, $bu, $bu, $symbolsuffix, "\n";
+    }
+
+    foreach $objs (@no_underscore_objs) {
+        print $symbolprefix, $objs, $symbolsuffix, "\n";
+    }
+    exit(0);
+}
+
+if ($ARGV[0] eq "objcopy") {
+    @underscore_objs = (@underscore_objs, @misc_common_objs);
+    @no_underscore_objs = (@no_underscore_objs, @misc_common_objs);
+
+    foreach $objs (@underscore_objs) {
+        print $objs, $bu, " ", $symbolprefix, $objs, $bu, $symbolsuffix, "\n";
+    }
+
+    foreach $objs (@need_2underscore_objs) {
+        print $objs, $bu, $bu, " ", $symbolprefix, $objs, $bu, $bu, $symbolsuffix, "\n";
+    }
+
+    foreach $objs (@no_underscore_objs) {
+        print $objs, " ", $symbolprefix, $objs, $symbolsuffix, "\n";
+    }
+    exit(0);
+}
+
+if ($ARGV[0] eq "objconv") {
+    @underscore_objs = (@underscore_objs, @misc_common_objs);
+    @no_underscore_objs = (@no_underscore_objs, @misc_common_objs);
+
+    foreach $objs (@underscore_objs) {
+        print "-nr:_", $objs, $bu, ":_", $symbolprefix, $objs, $bu, $symbolsuffix, "\n";
+    }
+
+    foreach $objs (@need_2underscore_objs) {
+        print "-nr:_", $objs, $bu, $bu, ":_", $symbolprefix, $objs, $bu, $bu, $symbolsuffix, "\n";
+    }
+
+    foreach $objs (@no_underscore_objs) {
+        print "-nr:_", $objs, ":_", $symbolprefix, $objs, $symbolsuffix, "\n";
+    }
+    exit(0);
+}
+
+if ($ARGV[0] eq "win2k"){
+    print "EXPORTS\n";
+    $count = 1;
+
+    @no_underscore_objs = (@no_underscore_objs, @misc_common_objs);
+
+    foreach $objs (@underscore_objs) {
+        $uppercase = $objs;
+        $uppercase =~ tr/[a-z]/[A-Z]/;
+        print "\t",$symbolprefix, $objs, $symbolsuffix, "=$objs","_  \@", $count, "\n";
+        $count ++;
+        print "\t",$symbolprefix, $objs, "_", $symbolsuffix, "=$objs","_  \@", $count, "\n";
+        $count ++;
+        print "\t",$symbolprefix, $uppercase, $symbolsuffix, "=$objs", "_  \@", $count, "\n";
+        $count ++;
+    }
+
+    foreach $objs (@need_2underscore_objs) {
+        $uppercase = $objs;
+        $uppercase =~ tr/[a-z]/[A-Z]/;
+        print "\t",$symbolprefix, $objs, $symbolsuffix, "=$objs","__  \@", $count, "\n";
+        $count ++;
+        print "\t",$symbolprefix, $objs, "__", $symbolsuffix, "=$objs","__  \@", $count, "\n";
+        $count ++;
+        print "\t",$symbolprefix, $uppercase, $symbolsuffix, "=$objs", "__  \@", $count, "\n";
+        $count ++;
+    }
+
+    #for misc_common_objs
+    foreach $objs (@misc_common_objs) {
+        $uppercase = $objs;
+        $uppercase =~ tr/[a-z]/[A-Z]/;
+        print "\t",$symbolprefix, $objs, "_", $symbolsuffix, "=$objs","_  \@", $count, "\n";
+        $count ++;
+        print "\t",$symbolprefix, $uppercase, $symbolsuffix, "=$objs", "_  \@", $count, "\n";
+        $count ++;
+    }
+
+
+    foreach $objs (@no_underscore_objs) {
+        print "\t",$symbolprefix,$objs,$symbolsuffix,"=$objs","  \@", $count, "\n";
+        $count ++;
+    }
+
+    exit(0);
+}
+
+if ($ARGV[0] eq "win2khpl") {
+    print "EXPORTS\n";
+    $count = 1;
+    foreach $objs (@hplobjs) {
+        $uppercase = $objs;
+        $uppercase =~ tr/[a-z]/[A-Z]/;
+        print "\t",$symbolprefix, $objs, $symbolsuffix, "=$objs","_  \@", $count, "\n";
+        $count ++;
+        print "\t",$symbolprefix, $objs, "_", $symbolsuffix, "=$objs","_  \@", $count, "\n";
+        $count ++;
+        print "\t",$symbolprefix, $uppercase, $symbolsuffix, "=$objs", "_  \@", $count, "\n";
+        $count ++;
+    }
+
+    exit(0);
+}
+
+if ($ARGV[0] eq "microsoft"){
+    @underscore_objs = (@underscore_objs, @misc_common_objs);
+
+    print "EXPORTS\n";
+    $count = 1;
+    foreach $objs (@underscore_objs) {
+        $uppercase = $objs;
+        $uppercase =~ tr/[a-z]/[A-Z]/;
+        print "\t",$symbolprefix, $objs, $symbolsuffix, " = $objs","_\n";
+        $count ++;
+        print "\t",$symbolprefix, $objs, "\_", $symbolsuffix, " = $objs","_\n";
+        $count ++;
+        print "\t",$symbolprefix, $uppercase, $symbolsuffix, " = $objs","_\n";
+        $count ++;
+        print "\t",$symbolprefix, $uppercase, "\_", $symbolsuffix, " = $objs","_\n";
+        $count ++;
+    }
+
+    foreach $objs (@need_2underscore_objs) {
+        $uppercase = $objs;
+        $uppercase =~ tr/[a-z]/[A-Z]/;
+        print "\t",$symbolprefix, $objs, $symbolsuffix, "=$objs","__  \@", $count, "\n";
+        $count ++;
+        print "\t",$symbolprefix, $objs, "__", $symbolsuffix, "=$objs","__  \@", $count, "\n";
+        $count ++;
+        print "\t",$symbolprefix, $uppercase, $symbolsuffix, "=$objs", "__  \@", $count, "\n";
+        $count ++;
+    }
+
+    exit(0);
+}
+
+if ($ARGV[0] eq "linktest") {
+    @underscore_objs = (@underscore_objs, @misc_common_objs);
+    @no_underscore_objs = (@no_underscore_objs, @misc_common_objs);
+
+    print "int main(void){\n";
+    foreach $objs (@underscore_objs) {
+        print $symbolprefix, $objs, $bu, $symbolsuffix, "();\n" if $objs ne "xerbla";
+    }
+
+    foreach $objs (@need_2underscore_objs) {
+        print $symbolprefix, $objs, $bu, $bu, $symbolsuffix, "();\n";
+    }
+
+    foreach $objs (@no_underscore_objs) {
+        print $symbolprefix, $objs, $symbolsuffix, "();\n";
+    }
+
+    print "return 0;}\n";
+    exit(0);
+}