kangwonlee / Slycot

Other
0 stars 0 forks source link

Cython for Slycot #5

Open beachdweller opened 6 years ago

beachdweller commented 6 years ago

https://github.com/explosion/cython-blis/tree/master/blis

beachdweller commented 6 years ago
beachdweller commented 6 years ago

From https://github.com/autodrive/cython_practice/commit/0bf14b30c6c16d7bee9a188c8dbadc9e4a2969ef probably the followings would work.

from f2c cimport *

# cdefine the signature of our c function
cdef extern from "lsame.h":
    logical lsame_(char *ca, char *cb, ftnlen ca_len, ftnlen cb_len)

def lsame_numpy_func(str a, str b):
    # input argument processing
    cdef a_bytes = a.encode()
    cdef b_bytes = b.encode()

    return bool(lsame_(a_bytes, b_bytes, len(a_bytes), len(b_bytes)))

import numpy from Cython.Distutils import build_ext

print('for NumPy Support of Cython '.ljust(60, '#')) setup(cmdclass={'build_ext': build_ext}, ext_modules=[Extension("lsame", sources=['_lsame.pyx', "lsame.c"], include_dirs=[numpy.get_include()])], )


* `f2c.pxd`
```cython
cdef extern from "f2c.h":
    ctypedef short ftnlen
    ctypedef long int logical

ref : Passing python strings, through cython, to C

beachdweller commented 6 years ago

Consider a standard procedure (hopefully travis-ci compatible && friendly)

Check :

beachdweller commented 6 years ago

One possible alternative if the plan above does not work :

beachdweller commented 6 years ago

Results from 91825f4b66576c8d594916def10e60ad2b96801b

Functions that slycot seems to call : 259

Functions seemingly missing their definitions : {xerbla_, dlarft_}

lib # arg return type calls
ma02ad_ slycot 8 int {lsame_}
sb02mw_ slycot 2 logical {dlapy2_}
sb04qu_ slycot 12 int {dcopy_, daxpy_, dtrmv_, sb04qr_}
tb01id_ slycot 14 int {xerbla_, dasum_, dscal_, idamax_, dlamch_, lsame_}
tb01zd_ slycot 17 int {mb01pd_, dgehrd_, dlarfg_, dlamch_, dlange_, dlaset_, dlacpy_, xerbla_, dorgqr_, dlarf_, dormhr_, lsame_}
mb01sd_ slycot 8 int {lsame_}
sb03sy_ slycot 19 int {dsyr2k_, dlamch_, mb01ru_, dlacon_, dscal_, dlacpy_, sb03mx_, xerbla_, ma02ed_, dlansy_, lsame_}
mb01pd_ slycot 14 int {dlabad_, mb01qd_, xerbla_, dlamch_, lsame_}
ab09ad_ slycot 25 int {ab09ax_, xerbla_, tb01wd_, tb01id_, lsame_}
tb01xd_ slycot 16 int {xerbla_, dcopy_, dswap_, lsame_}
sb02oy_ slycot 38 int {dgeqlf_, dlamch_, dlaset_, dcopy_, dlacpy_, dtrcon_, dsyrk_, xerbla_, dormql_, lsame_}
sb10ud_ slycot 20 int {dlacpy_, dscal_, xerbla_, dlamch_, dgesvd_, dgemm_, dswap_}
mb03qx_ slycot 6 int {xerbla_, dlanv2_}
sb03sx_ slycot 19 int {mb01ru_, dlacon_, dscal_, lsame_, sb03mx_, xerbla_, dlansy_, ma02ed_}
sb04px_ slycot 16 int {idamax_, dlamch_, dswap_}
sb10wd_ slycot 30 int {xerbla_, dlacpy_, dgemm_, dlaset_}
mb02uv_ slycot 6 int {dger_, dscal_, dlabad_, dlamch_, dswap_}
sb02md_ slycot 29 int {sb02mw_, sb02mu_, dlamch_, dcopy_, dlascl_, dgees_, dgetrf_, lsame_, dgetrs_, sb02mr_, dgecon_, dlange_, dlaset_, daxpy_, dscal_, dlacpy_, sb02mv_, xerbla_, dlansy_, sb02ms_, dswap_}
sb04mw_ slycot 4 int {daxpy_}
sb03ov_ slycot 4 int {dlapy3_}
sb04mu_ slycot 12 int {daxpy_, sb04mr_}
mb02vd_ slycot 10 int {dtrsm_, dgetrf_, ma02gd_, xerbla_, lsame_}
sg03ax_ slycot 11 int {dgemv_, mb02uv_, dgemm_, dcopy_, daxpy_, dscal_, xerbla_, mb02uu_, lsame_}
td04ad_ slycot 24 int {td03ay_, lsame_, tb01pd_, xerbla_, tb01xd_, dswap_, dlaset_}
mb02pd_ slycot 25 int {dlantr_, dgecon_, dgerfs_, dgeequ_, dlamch_, dlange_, dlaqge_, dlacpy_, dgetrf_, xerbla_, dgetrs_, lsame_}
tb01ld_ slycot 24 int {mb03qx_, dgemv_, dgemm_, dlaset_, dcopy_, dlacpy_, xerbla_, mb03qd_, dgees_, select_, lsame_}
mb04oy_ slycot 9 int {dcopy_, daxpy_, dger_, dgemv_}
sb02od_ slycot 43 int {dlamch_, sb02ov_, dcopy_, dgges_, dlascl_, sb02ow_, dgees_, dgetrf_, lsame_, dgetrs_, sb02mr_, dgecon_, sb02oy_, dlange_, dlaset_, sb02ou_, daxpy_, dscal_, dlacpy_, sb02mv_, xerbla_, dlansy_, dswap_}
sb10ld_ slycot 33 int {dgecon_, dlamch_, dgemm_, dlange_, dlaset_, dlacpy_, xerbla_, dgetri_, dgetrf_}
sb03ou_ slycot 15 int {dcopy_, sb03ot_, dlacpy_, dgeqrf_, xerbla_, dgerqf_, dlaset_}
mb01ru_ slycot 17 int {dsyr2k_, dtrmm_, dlaset_, dlascl_, dscal_, dlacpy_, xerbla_, lsame_}
tb04ad_ slycot 26 int {ab07md_, lsame_, xerbla_, tb01xd_, tb04ay_, dswap_, dlaset_}
sb01bd_ slycot 24 int {drot_, sb01bx_, dswap_, dlamch_, dlaexc_, dgemm_, dlange_, dlaset_, mb03qy_, xerbla_, mb03qd_, dgees_, sb01by_, select_, lsame_}
mb01rd_ slycot 17 int {dtrmm_, dgemm_, dlaset_, dcopy_, daxpy_, dscal_, dlascl_, dlacpy_, xerbla_, lsame_}
sb10vd_ slycot 25 int {sb02rd_, dlacpy_, dsyrk_, xerbla_, dgemm_, dlaset_}
mb01rw_ slycot 12 int {xerbla_, dgemv_, dcopy_, lsame_}
sb02qd_ slycot 30 int {sb03my_, sb03qy_, dlamch_, dcopy_, mb01ru_, dgees_, mb01ud_, dlanhs_, lsame_, dsyr2k_, dsymm_, sb03qx_, dlange_, dlacon_, dscal_, daxpy_, dlacpy_, xerbla_, dlansy_, select_, ma02ed_}
sb02sd_ slycot 30 int {sb03sx_, dlamch_, dcopy_, mb01ru_, sb03mx_, sb03sy_, dgees_, dswap_, mb01ud_, lsame_, dlanhs_, mb01rx_, dsymm_, dgesv_, dlange_, dlaset_, dgemm_, dlacon_, dscal_, daxpy_, dlacpy_, mb01ry_, xerbla_, dlansy_, select_, ma02ed_}
mb03oy_ slycot 12 int {dlarfg_, idamax_, dlaic1_, dscal_, dnrm2_, xerbla_, dlarf_, dswap_}
sg03ad_ slycot 31 int {mb01rd_, sg03ax_, dgegs_, dlamch_, sg03ay_, dcopy_, dlacon_, dnrm2_, xerbla_, mb01rw_, lsame_}
mb02uu_ slycot 7 int {daxpy_, dscal_, dlabad_, idamax_, dlamch_}
td03ay_ slycot 18 int {dcopy_, daxpy_, dscal_, idamax_, dlamch_, dlaset_}
mb04ny_ slycot 10 int {dcopy_, daxpy_, dger_, dgemv_}
mb01rx_ slycot 17 int {dlascl_, lsame_, xerbla_, dgemv_, dlaset_}
mb01qd_ slycot 13 int {dlamch_, lsame_}
sb03mv_ slycot 11 int {dlamch_, dswap_}
sb02mv_ slycot 2 logical
sb04my_ slycot 12 int {dcopy_, daxpy_, sb04mw_}
sb02mu_ slycot 19 int {dgecon_, dlamch_, ilaenv_, dgemm_, dlange_, dgetri_, dcopy_, dlacpy_, dgetrf_, xerbla_, dgetrs_, dswap_, lsame_}
sb03my_ slycot 9 int {dlasy2_, ddot_, dlaln2_, dlamch_, sb03mw_, dscal_, dlabad_, lsame_, xerbla_, dlanhs_}
sb03md_ slycot 24 int {mb01rd_, sb03my_, dlamch_, dlanhs_, dcopy_, dlacon_, sb03mx_, xerbla_, dgees_, select_, lsame_}
ab09dd_ slycot 18 int {dgecon_, dlamch_, dgemm_, dlange_, lsame_, xerbla_, dgetrs_, dgetrf_}
sb03mx_ slycot 10 int {ddot_, dlaln2_, sb04px_, dlamch_, sb03mv_, dsymv_, dscal_, dlabad_, lsame_, xerbla_, dlanhs_}
tb01wd_ slycot 16 int {dcopy_, dlacpy_, select_, xerbla_, dgemm_, dgees_, dgemv_}
sb02mr_ slycot 2 logical
tb01pd_ slycot 19 int {ab07md_, xerbla_, tb01xd_, tb01ud_, tb01id_, lsame_}
sb03ot_ slycot 10 int {dlarfg_, sb03or_, dlamch_, dtrmm_, sb03oy_, mb04nd_, dcopy_, daxpy_, dscal_, dlabad_, dtrmv_, xerbla_, mb04od_, dswap_, dlanhs_}
sb04md_ slycot 14 int {dswap_, dgemv_, sb04mu_, dgemm_, dcopy_, dlacpy_, sb04my_, xerbla_, dgees_, dormhr_, dgehrd_}
ab09ax_ slycot 27 int {ma02dd_, ma02ad_, dtpmv_, mb03ud_, dlamch_, sb03ou_, dtrmv_, dgeqrf_, dorgqr_, dgetrf_, lsame_, dtrmm_, dgemm_, dlacpy_, dscal_, xerbla_, dgetrs_, dgemv_}
ab09nd_ slycot 30 int {lsame_, xerbla_, dlamch_, ab09bx_, tb01id_, tb01kd_}
mb04od_ slycot 15 int {dlarfg_, mb04oy_, lsame_}
sb02ms_ slycot 2 logical {dlapy2_}
sb02ru_ slycot 21 int {ma02ad_, mb02pd_, dgemm_, dlaset_, dcopy_, dlacpy_, lsame_, xerbla_, dswap_, ma02ed_}
sb03qy_ slycot 19 int {sb03my_, dsyr2k_, dlamch_, mb01ru_, dlacon_, dscal_, dlacpy_, xerbla_, ma02ed_, dlansy_, lsame_}
sb02ow_ slycot 3 logical
ma02gd_ slycot 7 int {dswap_}
mb03qd_ slycot 17 int {dtrexc_, lsame_, mb03qy_, xerbla_, dlapy2_, dlaset_}
mb01ud_ slycot 14 int {daxpy_, dlacpy_, lsame_, xerbla_, dtrmm_, dswap_, dlaset_}
tb01ud_ slycot 22 int {mb01pd_, dlapmt_, dormqr_, dlamch_, dlange_, dlaset_, dlapy2_, dcopy_, dlacpy_, mb03oy_, xerbla_, dorgqr_, lsame_}
mb04nd_ slycot 15 int {dlarfg_, mb04ny_, lsame_}
sb04qd_ slycot 14 int {dswap_, dgemv_, sb04qu_, dgemm_, dcopy_, dlacpy_, sb04qy_, xerbla_, dgees_, dormhr_, dgehrd_}
sb01by_ slycot 10 int {drot_, dlanv2_, dlasv2_, dlarfg_, dlamch_, dlaset_, dlamc3_, dlatzm_}
select_ slycot 2 logical
ma02dd_ slycot 8 int {dcopy_, lsame_}
sb02rd_ slycot 43 int {ma02ad_, sb02mw_, sb02sd_, mb01sd_, dcopy_, mb01ru_, dlascl_, dgees_, lsame_, mb02pd_, sb02mr_, sb02ru_, dsymm_, dgesv_, dlaset_, daxpy_, dscal_, dlacpy_, sb02mv_, xerbla_, ma02ed_, dlansy_, sb02ms_, sb02qd_, dswap_}
sb10rd_ slycot 38 int {ma02ad_, dsytrs_, dlamch_, dlansy_, dsytrf_, dgetri_, dgetrf_, mb01rx_, dgecon_, dtrmm_, dgemm_, dlange_, dlaset_, dlacpy_, dsyrk_, xerbla_, dpotrf_, dgetrs_, dsycon_}
sg03ay_ slycot 11 int {dgemv_, mb02uv_, dgemm_, dcopy_, daxpy_, dscal_, xerbla_, mb02uu_, lsame_}
tb01kd_ slycot 24 int {dlaset_, lsame_, dtrsyl_, xerbla_, dgemm_, tb01ld_}
sb03od_ slycot 20 int {dgemv_, dtrmm_, dgerqf_, dgemm_, dlaset_, dlapy2_, dcopy_, sb03ou_, dlacpy_, dgeqrf_, xerbla_, dgees_, select_, lsame_}
sg02ad_ slycot 50 int {dlamch_, sb02ov_, mb01sd_, dcopy_, dgges_, dlascl_, sb02ow_, dgeqrf_, dorgqr_, lsame_, mb02vd_, mb02pd_, dgecon_, sb02oy_, dgemm_, dlange_, dlaset_, sb02ou_, daxpy_, dscal_, dlacpy_, xerbla_, dlansy_, dswap_}
sb03or_ slycot 12 int {dlasy2_, ddot_, dscal_, sb04px_, xerbla_}
ab09bx_ slycot 30 int {ma02dd_, ma02ad_, dtpmv_, mb03ud_, dlamch_, sb03ou_, dtrmv_, ab09dd_, dgeqrf_, dorgqr_, dgetrf_, lsame_, dtrmm_, dgemm_, dlacpy_, dscal_, xerbla_, dgetrs_, dgemv_}
sb03qx_ slycot 19 int {sb03my_, mb01ru_, dlacon_, dscal_, lsame_, xerbla_, dlansy_, ma02ed_}
sb03mw_ slycot 11 int {dlamch_, dswap_}
mb03qy_ slycot 9 int {xerbla_, dlanv2_, drot_}
mb01ry_ slycot 17 int {ddot_, dlaset_, dcopy_, dlascl_, lsame_, dtrmv_, dscal_, xerbla_, dgemv_, dswap_}
ab09md_ slycot 27 int {ab09ax_, xerbla_, dlamch_, tb01kd_, tb01id_, lsame_}
ma02ed_ slycot 5 int {dcopy_, lsame_}
mb03ud_ slycot 13 int {dlantr_, dgebrd_, dlamch_, ilaenv_, dlaset_, dbdsqr_, dlascl_, dlacpy_, dorgbr_, xerbla_, lsame_}
sb04qr_ slycot 4 int {daxpy_}
sb02mt_ slycot 28 int {dsytrs_, dlamch_, dpocon_, dgemm_, dcopy_, dsytrf_, dtrsm_, dsyrk_, xerbla_, dpotrf_, dlansy_, dsycon_, dgemv_, lsame_}
sb02ov_ slycot 3 logical {dlapy2_}
sb03oy_ slycot 11 int {dlanv2_, dlapy3_, dlabad_, dlamch_, sb03ov_, dlapy2_}
sb10pd_ slycot 22 int {dlacpy_, dscal_, xerbla_, dlamch_, dgesvd_, dgemm_, dswap_}
sb10qd_ slycot 28 int {sb02rd_, mb01rx_, dsytri_, dlamch_, dsymm_, dgemm_, dlaset_, dsytrf_, mb01ru_, dlacpy_, dsyrk_, xerbla_, dlansy_, dsycon_}
ab07md_ slycot 14 int {xerbla_, dcopy_, dswap_, lsame_}
sb01bx_ slycot 8 int
sb10ad_ slycot 41 int {dlamch_, sb10rd_, sb10pd_, dgesvd_, sb10ld_, dlacpy_, xerbla_, sb10qd_, dgees_, select_}
sb04mr_ slycot 4 int {daxpy_}
sb02ou_ slycot 3 logical
sb04qy_ slycot 12 int {dcopy_, daxpy_, dscal_, sb04mw_, dtrmv_}
sb10hd_ slycot 28 int {dlacpy_, sb10vd_, xerbla_, dlamch_, sb10wd_, sb10ud_}
tb04ay_ slycot 27 int {dcopy_, tb01zd_, daxpy_, ddot_, dscal_, tb01ud_}
dlamc3_ lapack install 2 doublereal {lsame_}
ieeeck_ lapack install 3 integer
ilaenv_ lapack install 9 integer {iparmq_, ieeeck_}
dlamch_ lapack install 2 doublereal {lsame_}
dgetf2_ lapack 6 int {xerbla_, dger_, dscal_, idamax_, dlamch_, dswap_}
dlapy2_ lapack 2 doublereal
drscl_ lapack 4 int {dlamch_, dscal_, dlabad_}
dlasq5_ lapack 14 int
dgeqrf_ lapack 8 int {dgeqr2_, dlarft_, dlarfb_, xerbla_, ilaenv_}
dlanhs_ lapack 6 doublereal {disnan_, dlassq_, lsame_}
dlaqr4_ lapack 16 int {dlanv2_, dlaqr2_, dlacpy_, dlaqr5_, ilaenv_, dlahqr_}
dgerfs_ lapack 18 int {dlacn2_, dlamch_, dcopy_, daxpy_, xerbla_, dgetrs_, dgemv_, lsame_}
dgeqlf_ lapack 8 int {dlarft_, dlarfb_, dgeql2_, xerbla_, ilaenv_}
dlahr2_ lapack 10 int {dlarfg_, dtrmm_, dgemm_, dcopy_, daxpy_, dscal_, dlacpy_, dtrmv_, dgemv_}
dsytri_ lapack 8 int {dcopy_, ddot_, lsame_, xerbla_, dsymv_, dswap_}
dlasq1_ lapack 5 int {dcopy_, dlasrt_, dlascl_, dlasq2_, xerbla_, dlamch_, dlas2_}
dlagv2_ lapack 11 int {drot_, dlasv2_, dlartg_, dlamch_, dlag2_, dlapy2_}
dgebal_ lapack 9 int {idamax_, dlamch_, disnan_, dscal_, lsame_, dnrm2_, xerbla_, dswap_}
dorg2r_ lapack 8 int {xerbla_, dscal_, dlarf_}
dpotf2_ lapack 6 int {ddot_, dscal_, xerbla_, disnan_, dgemv_, lsame_}
dgeqr2_ lapack 7 int {xerbla_, dlarf_, dlarfg_}
dlatrs_ lapack 15 int {dasum_, ddot_, idamax_, dlamch_, dtrsv_, daxpy_, dscal_, xerbla_, lsame_}
dorglq_ lapack 9 int {dorgl2_, dlarft_, dlarfb_, xerbla_, ilaenv_}
dorgqr_ lapack 9 int {dlarft_, dorg2r_, dlarfb_, xerbla_, ilaenv_}
dlantr_ lapack 11 doublereal {disnan_, dlassq_, lsame_}
dlasq4_ lapack 14 int
dlaisnan_ lapack 2 logical
dlansy_ lapack 8 doublereal {disnan_, dlassq_, lsame_}
dlasyf_ lapack 11 int {dcopy_, dscal_, dswap_, idamax_, dgemv_, dgemm_, lsame_}
dhgeqz_ lapack 23 int {drot_, dlasv2_, dlarfg_, dlartg_, dlamch_, dlag2_, dlanhs_, dlapy2_, dlaset_, dlapy3_, xerbla_, lsame_}
dlasq6_ lapack 10 int {dlamch_}
dlatdf_ lapack 9 int {dgesc2_, dasum_, ddot_, dgecon_, dcopy_, daxpy_, dscal_, dlassq_, dlaswp_}
iladlc_ lapack 4 integer
dlaswp_ lapack 7 int
dgebd2_ lapack 10 int {xerbla_, dlarf_, dlarfg_}
dlaset_ lapack 8 int {lsame_}
dtrti2_ lapack 8 int {xerbla_, dscal_, dtrmv_, lsame_}
dlas2_ lapack 5 int
dgebrd_ lapack 11 int {dgebd2_, dlabrd_, xerbla_, ilaenv_, dgemm_}
dgerq2_ lapack 7 int {xerbla_, dlarf_, dlarfg_}
dsytrs_ lapack 10 int {dger_, dscal_, dswap_, xerbla_, dgemv_, lsame_}
dlaln2_ lapack 18 int {dlamch_, dladiv_}
dlaqge_ lapack 11 int {dlamch_}
dtgexc_ lapack 16 int {xerbla_, dtgex2_}
dgges_ lapack 24 int {dlamch_, dhgeqz_, dlascl_, dlabad_, dgeqrf_, dorgqr_, dggbal_, lsame_, dormqr_, dgghrd_, ilaenv_, dlange_, dlaset_, dlacpy_, xerbla_, dggbak_, dtgsen_}
dlasq3_ lapack 20 int {dlasq4_, dlasq6_, dlasq5_, disnan_, dlamch_}
dtgsyl_ lapack 23 int {ilaenv_, dgemm_, dlaset_, dlacpy_, dscal_, xerbla_, dtgsy2_, lsame_}
dgetri_ lapack 7 int {dtrsm_, xerbla_, dgemv_, dtrtri_, ilaenv_, dgemm_, dswap_}
dsytf2_ lapack 7 int {xerbla_, dsyr_, dscal_, idamax_, disnan_, dswap_, lsame_}
dlahqr_ lapack 14 int {dlanv2_, drot_, dcopy_, dlabad_, dlarfg_, dlamch_}
dorml2_ lapack 14 int {xerbla_, dlarf_, lsame_}
dgecon_ lapack 10 int {drscl_, xerbla_, dlacn2_, dlamch_, idamax_, dlatrs_, lsame_}
dormr2_ lapack 14 int {xerbla_, dlarf_, lsame_}
dgerqf_ lapack 8 int {dgerq2_, dlarft_, dlarfb_, xerbla_, ilaenv_}
dgelqf_ lapack 8 int {dlarft_, dlarfb_, xerbla_, dgelq2_, ilaenv_}
dgebak_ lapack 12 int {xerbla_, dscal_, dswap_, lsame_}
dlasrt_ lapack 5 int {xerbla_, lsame_}
dlassq_ lapack 5 int {disnan_}
dggbak_ lapack 13 int {xerbla_, dscal_, dswap_, lsame_}
dtgsen_ lapack 25 int {dlacn2_, dlamch_, dlag2_, dtgexc_, dlacpy_, dlassq_, xerbla_, dtgsyl_}
dgehd2_ lapack 8 int {xerbla_, dlarf_, dlarfg_}
dlasv2_ lapack 9 int {dlamch_}
dtrtri_ lapack 8 int {dtrsm_, dtrti2_, xerbla_, dtrmm_, ilaenv_, lsame_}
dgegs_ lapack 19 int {dormqr_, dlamch_, dhgeqz_, dgghrd_, ilaenv_, dlange_, dlaset_, dlascl_, dlacpy_, dgeqrf_, xerbla_, dggbak_, dorgqr_, dggbal_, lsame_}
dpocon_ lapack 10 int {drscl_, xerbla_, dlacn2_, dlamch_, idamax_, dlatrs_, lsame_}
dgesvd_ lapack 16 int {dgebrd_, dlamch_, dlascl_, dgeqrf_, dorglq_, dorgqr_, dorgbr_, lsame_, ilaenv_, dgemm_, dlange_, dlaset_, dbdsqr_, dgelqf_, dlacpy_, xerbla_, dormbr_}
dtrsen_ lapack 20 int {dtrexc_, dlacpy_, lsame_, dlacn2_, xerbla_, dlange_, dtrsyl_}
dlaqr1_ lapack 8 int
dlascl_ lapack 11 int {xerbla_, disnan_, dlamch_, lsame_}
dlatzm_ lapack 11 int {dcopy_, daxpy_, dger_, dgemv_, lsame_}
dgetrf_ lapack 6 int {dtrsm_, dgetf2_, xerbla_, dlaswp_, ilaenv_, dgemm_}
dlanv2_ lapack 10 int {dlamch_, dlapy2_}
dgehrd_ lapack 9 int {dgehd2_, dlarfb_, dlahr2_, dtrmm_, ilaenv_, dgemm_, daxpy_, xerbla_}
dorgbr_ lapack 11 int {dorglq_, xerbla_, dorgqr_, lsame_}
dormqr_ lapack 15 int {dorm2r_, dlarft_, dlarfb_, xerbla_, ilaenv_, lsame_}
dgeql2_ lapack 7 int {xerbla_, dlarf_, dlarfg_}
dgesv_ lapack 8 int {xerbla_, dgetrs_, dgetrf_}
dlange_ lapack 7 doublereal {disnan_, dlassq_, lsame_}
dbdsqr_ lapack 16 int {drot_, dlasv2_, dlartg_, dlamch_, dlasq1_, dlasr_, dscal_, xerbla_, dlas2_, dswap_, lsame_}
dlacon_ lapack 6 int {dcopy_, dasum_, idamax_}
dorgr2_ lapack 8 int {xerbla_, dscal_, dlarf_}
dlabrd_ lapack 13 int {dscal_, dgemv_, dlarfg_}
dsycon_ lapack 11 int {dlacn2_, xerbla_, dsytrs_, lsame_}
disnan_ lapack 1 logical {dlaisnan_}
dlaexc_ lapack 11 int {drot_, dlasy2_, dlanv2_, dlarfg_, dlartg_, dlamch_, dlarfx_, dlange_, dlacpy_}
dlag2_ lapack 10 int
dsytrf_ lapack 9 int {dlasyf_, xerbla_, dsytf2_, ilaenv_, lsame_}
dlabad_ lapack 2 int
dgelq2_ lapack 7 int {xerbla_, dlarf_, dlarfg_}
dtrsyl_ lapack 15 int {dlasy2_, ddot_, dlaln2_, dlamch_, dlange_, dscal_, dlabad_, xerbla_, lsame_}
dgesc2_ lapack 7 int {dlaswp_, dscal_, dlabad_, idamax_, dlamch_}
dlaqr0_ lapack 16 int {dlanv2_, dlacpy_, dlaqr4_, dlaqr5_, dlaqr3_, ilaenv_, dlahqr_}
dlarfb_ lapack 19 int {dcopy_, dtrmm_, dgemm_, lsame_}
dlarfx_ lapack 9 int {dlarf_, lsame_}
dgghrd_ lapack 16 int {drot_, lsame_, dlartg_, xerbla_, dlaset_}
dlacpy_ lapack 8 int {lsame_}
dtgex2_ lapack 17 int {drot_, dgerq2_, dorg2r_, dlamch_, dorm2r_, dgeqr2_, dormr2_, dlartg_, dgemm_, dlaset_, dlacpy_, dscal_, dorgr2_, dlassq_, dlagv2_, dtgsy2_}
dgetrs_ lapack 10 int {xerbla_, dlaswp_, dtrsm_, lsame_}
dormbr_ lapack 17 int {dormqr_, xerbla_, ilaenv_, dormlq_, lsame_}
dtrexc_ lapack 11 int {xerbla_, dlaexc_, lsame_}
dlapmt_ lapack 6 int
dlaqr3_ lapack 26 int {dtrexc_, dlanv2_, dlaqr4_, dlarfg_, dlamch_, ilaenv_, dgemm_, dlaset_, dcopy_, dormhr_, dlacpy_, dlabad_, dlarf_, dlahqr_, dgehrd_}
dorghr_ lapack 9 int {xerbla_, dorgqr_, ilaenv_}
iladlr_ lapack 4 integer
dlasq2_ lapack 3 int {dlasrt_, xerbla_, dlamch_, ilaenv_, dlasq3_}
dlarf_ lapack 10 int {iladlr_, dger_, iladlc_, dgemv_, lsame_}
dggbal_ lapack 13 int {ddot_, idamax_, dlamch_, daxpy_, dscal_, lsame_, xerbla_, dswap_}
dorm2l_ lapack 14 int {xerbla_, dlarf_, lsame_}
dlarft_ lapack 11 14
dlarfg_ lapack 5 int {dlamch_, dscal_, dnrm2_, dlapy2_}
dgeequ_ lapack 10 int {xerbla_, dlamch_}
dladiv_ lapack 6 int {dlamch_}
dgetc2_ lapack 6 int {dlamch_, dger_, dlabad_, dswap_}
dtrcon_ lapack 13 int {dlantr_, dlacn2_, dlamch_, idamax_, dlatrs_, drscl_, xerbla_, lsame_}
dhseqr_ lapack 16 int {dlacpy_, dlaqr0_, lsame_, xerbla_, ilaenv_, dlahqr_, dlaset_}
dormhr_ lapack 16 int {xerbla_, ilaenv_, lsame_, dormqr_}
dormlq_ lapack 15 int {dorml2_, dlarft_, dlarfb_, xerbla_, ilaenv_, lsame_}
dlaqr2_ lapack 26 int {dtrexc_, dlanv2_, dlarfg_, dlamch_, dgemm_, dlaset_, dcopy_, dormhr_, dlacpy_, dlabad_, dlarf_, dlahqr_, dgehrd_}
dlacn2_ lapack 7 int {dcopy_, dasum_, idamax_}
dorm2r_ lapack 14 int {xerbla_, dlarf_, lsame_}
dlasr_ lapack 12 int {xerbla_, lsame_}
dlapy3_ lapack 3 doublereal
dgees_ lapack 17 int {dlamch_, dorghr_, dtrsen_, dcopy_, dlascl_, dlabad_, dgehrd_, lsame_, ilaenv_, dlange_, dlacpy_, dgebak_, xerbla_, dhseqr_, dgebal_, dswap_}
dormql_ lapack 15 int {dorm2l_, dlarft_, dlarfb_, xerbla_, ilaenv_, lsame_}
dlasy2_ lapack 16 int {idamax_, dlamch_, dcopy_, dswap_}
dlartg_ lapack 5 int {dlamch_}
dlaic1_ lapack 9 int {dlamch_, ddot_}
dorgl2_ lapack 8 int {xerbla_, dscal_, dlarf_}
iparmq_ lapack 9 integer
dlaqr5_ lapack 25 int {dlarfg_, dlamch_, dtrmm_, dgemm_, dlaset_, dlaqr1_, dlacpy_, dlabad_}
dpotrf_ lapack 6 int {dtrsm_, dsyrk_, xerbla_, dpotf2_, ilaenv_, dgemm_, lsame_}
dtgsy2_ lapack 23 int {dgesc2_, dger_, dgemm_, dlaset_, dcopy_, daxpy_, dscal_, dlatdf_, dgetc2_, xerbla_, dgemv_, lsame_}
idamax_ blas 3 integer
dsyrk_ blas 12 int {xerbla_, lsame_}
dswap_ blas 5 int
dsymm_ blas 14 int {xerbla_, lsame_}
dtrsv_ blas 11 int {xerbla_, lsame_}
dtpmv_ blas 10 int {xerbla_, lsame_}
ddot_ blas 5 doublereal
dscal_ blas 4 int
drot_ blas 7 int
dgemm_ blas 15 int {xerbla_, lsame_}
daxpy_ blas 6 int
dgemv_ blas 12 int {xerbla_, lsame_}
dtrsm_ blas 15 int {xerbla_, lsame_}
lsame_ blas 4 logical
dger_ blas 9 int {xerbla_}
dasum_ blas 3 doublereal
dnrm2_ blas 3 doublereal
dcopy_ blas 5 int
dtrmv_ blas 11 int {xerbla_, lsame_}
dtrmm_ blas 15 int {xerbla_, lsame_}
dsymv_ blas 11 int {xerbla_, lsame_}
dsyr_ blas 8 int {xerbla_, lsame_}
dsyr2k_ blas 14 int {xerbla_, lsame_}
xerbla_ blas 3 14
beachdweller commented 6 years ago