├── .github
└── ISSUE_TEMPLATE.md
├── .gitignore
├── LICENSE.txt
├── README.md
├── all
└── pom.xml
├── core
└── pom.xml
├── generator
├── LICENSE.txt
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── com
│ │ └── github
│ │ └── fommil
│ │ └── netlib
│ │ └── generator
│ │ ├── AbstractJavaGenerator.java
│ │ ├── AbstractNetlibGenerator.java
│ │ ├── F2jImplGenerator.java
│ │ ├── F2jJavadocExtractor.java
│ │ ├── JarMethodScanner.java
│ │ ├── JavaInterfaceGenerator.java
│ │ ├── NativeImplJavaGenerator.java
│ │ └── NativeImplJniGenerator.java
│ └── resources
│ └── com
│ └── github
│ └── fommil
│ └── netlib
│ └── generator
│ ├── netlib-common.stg
│ ├── netlib-java.stg
│ └── netlib-jni.stg
├── legacy
├── pom.xml
└── src
│ └── main
│ └── java
│ └── org
│ └── netlib
│ ├── arpack
│ └── ARPACK.java
│ ├── blas
│ └── BLAS.java
│ └── lapack
│ └── LAPACK.java
├── native_ref
├── java
│ └── pom.xml
├── osx-x86_64
│ └── pom.xml
├── pom.xml
├── win-i686
│ └── pom.xml
├── win-x86_64
│ └── pom.xml
└── xbuilds
│ ├── linux-aarch64
│ └── pom.xml
│ ├── linux-armhf
│ ├── pom.xml
│ └── rpi
│ ├── linux-i686
│ └── pom.xml
│ ├── linux-ppc64le
│ └── pom.xml
│ ├── linux-x86_64
│ └── pom.xml
│ └── pom.xml
├── native_system
├── java
│ └── pom.xml
├── osx-x86_64
│ └── pom.xml
├── pom.xml
├── win-i686
│ └── pom.xml
├── win-x86_64
│ └── pom.xml
└── xbuilds
│ ├── linux-aarch64
│ └── pom.xml
│ ├── linux-armhf
│ └── pom.xml
│ ├── linux-i686
│ └── pom.xml
│ ├── linux-ppc64le
│ └── pom.xml
│ ├── linux-x86_64
│ └── pom.xml
│ └── pom.xml
├── netlib
├── ARPACK
│ ├── arpack.h
│ ├── debug.h
│ ├── dgetv0.f
│ ├── dlaqrb.f
│ ├── dmout.f
│ ├── dnaitr.f
│ ├── dnapps.f
│ ├── dnaup2.f
│ ├── dnaupd.f
│ ├── dnconv.f
│ ├── dneigh.f
│ ├── dneupd.f
│ ├── dngets.f
│ ├── dsaitr.f
│ ├── dsapps.f
│ ├── dsaup2.f
│ ├── dsaupd.f
│ ├── dsconv.f
│ ├── dseigt.f
│ ├── dsesrt.f
│ ├── dseupd.f
│ ├── dsgets.f
│ ├── dsortc.f
│ ├── dsortr.f
│ ├── dstatn.f
│ ├── dstats.f
│ ├── dstqrb.f
│ ├── dvout.f
│ ├── icnteq.f
│ ├── icopy.f
│ ├── iset.f
│ ├── iswap.f
│ ├── ivout.f
│ ├── second.f
│ ├── sgetv0.f
│ ├── slaqrb.f
│ ├── smout.f
│ ├── snaitr.f
│ ├── snapps.f
│ ├── snaup2.f
│ ├── snaupd.f
│ ├── snconv.f
│ ├── sneigh.f
│ ├── sneupd.f
│ ├── sngets.f
│ ├── ssaitr.f
│ ├── ssapps.f
│ ├── ssaup2.f
│ ├── ssaupd.f
│ ├── ssconv.f
│ ├── sseigt.f
│ ├── ssesrt.f
│ ├── sseupd.f
│ ├── ssgets.f
│ ├── ssortc.f
│ ├── ssortr.f
│ ├── sstatn.f
│ ├── sstats.f
│ ├── sstqrb.f
│ ├── stat.h
│ ├── svout.f
│ └── version.h
├── BLAS
│ ├── dasum.f
│ ├── daxpy.f
│ ├── dcabs1.f
│ ├── dcopy.f
│ ├── ddot.f
│ ├── dgbmv.f
│ ├── dgemm.f
│ ├── dgemv.f
│ ├── dger.f
│ ├── dnrm2.f
│ ├── drot.f
│ ├── drotg.f
│ ├── drotm.f
│ ├── drotmg.f
│ ├── dsbmv.f
│ ├── dscal.f
│ ├── dsdot.f
│ ├── dspmv.f
│ ├── dspr.f
│ ├── dspr2.f
│ ├── dswap.f
│ ├── dsymm.f
│ ├── dsymv.f
│ ├── dsyr.f
│ ├── dsyr2.f
│ ├── dsyr2k.f
│ ├── dsyrk.f
│ ├── dtbmv.f
│ ├── dtbsv.f
│ ├── dtpmv.f
│ ├── dtpsv.f
│ ├── dtrmm.f
│ ├── dtrmv.f
│ ├── dtrsm.f
│ ├── dtrsv.f
│ ├── dzasum.f
│ ├── dznrm2.f
│ ├── icamax.f
│ ├── idamax.f
│ ├── isamax.f
│ ├── izamax.f
│ ├── lsame.f
│ ├── sasum.f
│ ├── saxpy.f
│ ├── scabs1.f
│ ├── scasum.f
│ ├── scnrm2.f
│ ├── scopy.f
│ ├── sdot.f
│ ├── sdsdot.f
│ ├── sgbmv.f
│ ├── sgemm.f
│ ├── sgemv.f
│ ├── sger.f
│ ├── snrm2.f
│ ├── srot.f
│ ├── srotg.f
│ ├── srotm.f
│ ├── srotmg.f
│ ├── ssbmv.f
│ ├── sscal.f
│ ├── sspmv.f
│ ├── sspr.f
│ ├── sspr2.f
│ ├── sswap.f
│ ├── ssymm.f
│ ├── ssymv.f
│ ├── ssyr.f
│ ├── ssyr2.f
│ ├── ssyr2k.f
│ ├── ssyrk.f
│ ├── stbmv.f
│ ├── stbsv.f
│ ├── stpmv.f
│ ├── stpsv.f
│ ├── strmm.f
│ ├── strmv.f
│ ├── strsm.f
│ ├── strsv.f
│ └── xerbla.f
├── CBLAS
│ ├── cblas.h
│ ├── cblas_dasum.c
│ ├── cblas_daxpy.c
│ ├── cblas_dcopy.c
│ ├── cblas_ddot.c
│ ├── cblas_dgbmv.c
│ ├── cblas_dgemm.c
│ ├── cblas_dgemv.c
│ ├── cblas_dger.c
│ ├── cblas_dnrm2.c
│ ├── cblas_drot.c
│ ├── cblas_drotg.c
│ ├── cblas_drotm.c
│ ├── cblas_drotmg.c
│ ├── cblas_dsbmv.c
│ ├── cblas_dscal.c
│ ├── cblas_dsdot.c
│ ├── cblas_dspmv.c
│ ├── cblas_dspr.c
│ ├── cblas_dspr2.c
│ ├── cblas_dswap.c
│ ├── cblas_dsymm.c
│ ├── cblas_dsymv.c
│ ├── cblas_dsyr.c
│ ├── cblas_dsyr2.c
│ ├── cblas_dsyr2k.c
│ ├── cblas_dsyrk.c
│ ├── cblas_dtbmv.c
│ ├── cblas_dtbsv.c
│ ├── cblas_dtpmv.c
│ ├── cblas_dtpsv.c
│ ├── cblas_dtrmm.c
│ ├── cblas_dtrmv.c
│ ├── cblas_dtrsm.c
│ ├── cblas_dtrsv.c
│ ├── cblas_dzasum.c
│ ├── cblas_dznrm2.c
│ ├── cblas_f77.h
│ ├── cblas_globals.c
│ ├── cblas_icamax.c
│ ├── cblas_idamax.c
│ ├── cblas_isamax.c
│ ├── cblas_izamax.c
│ ├── cblas_sasum.c
│ ├── cblas_saxpy.c
│ ├── cblas_scasum.c
│ ├── cblas_scnrm2.c
│ ├── cblas_scopy.c
│ ├── cblas_sdot.c
│ ├── cblas_sdsdot.c
│ ├── cblas_sgbmv.c
│ ├── cblas_sgemm.c
│ ├── cblas_sgemv.c
│ ├── cblas_sger.c
│ ├── cblas_snrm2.c
│ ├── cblas_srot.c
│ ├── cblas_srotg.c
│ ├── cblas_srotm.c
│ ├── cblas_srotmg.c
│ ├── cblas_ssbmv.c
│ ├── cblas_sscal.c
│ ├── cblas_sspmv.c
│ ├── cblas_sspr.c
│ ├── cblas_sspr2.c
│ ├── cblas_sswap.c
│ ├── cblas_ssymm.c
│ ├── cblas_ssymv.c
│ ├── cblas_ssyr.c
│ ├── cblas_ssyr2.c
│ ├── cblas_ssyr2k.c
│ ├── cblas_ssyrk.c
│ ├── cblas_stbmv.c
│ ├── cblas_stbsv.c
│ ├── cblas_stpmv.c
│ ├── cblas_stpsv.c
│ ├── cblas_strmm.c
│ ├── cblas_strmv.c
│ ├── cblas_strsm.c
│ ├── cblas_strsv.c
│ ├── cblas_xerbla.c
│ ├── dasumsub.f
│ ├── ddotsub.f
│ ├── dnrm2sub.f
│ ├── dsdotsub.f
│ ├── dzasumsub.f
│ ├── dznrm2sub.f
│ ├── icamaxsub.f
│ ├── idamaxsub.f
│ ├── isamaxsub.f
│ ├── izamaxsub.f
│ ├── sasumsub.f
│ ├── scasumsub.f
│ ├── scnrm2sub.f
│ ├── sdotsub.f
│ ├── sdsdotsub.f
│ └── snrm2sub.f
├── JNI
│ ├── netlib-jni.c
│ └── netlib-jni.h
├── LAPACK
│ ├── VARIANTS
│ │ ├── cholesky
│ │ │ ├── RL
│ │ │ │ ├── dpotrf.f
│ │ │ │ └── spotrf.f
│ │ │ └── TOP
│ │ │ │ ├── dpotrf.f
│ │ │ │ └── spotrf.f
│ │ ├── lu
│ │ │ ├── CR
│ │ │ │ ├── dgetrf.f
│ │ │ │ └── sgetrf.f
│ │ │ ├── LL
│ │ │ │ ├── dgetrf.f
│ │ │ │ └── sgetrf.f
│ │ │ └── REC
│ │ │ │ ├── dgetrf.f
│ │ │ │ └── sgetrf.f
│ │ └── qr
│ │ │ └── LL
│ │ │ ├── dgeqrf.f
│ │ │ ├── sceil.f
│ │ │ └── sgeqrf.f
│ ├── chla_transtype.f
│ ├── dbbcsd.f
│ ├── dbdsdc.f
│ ├── dbdsqr.f
│ ├── ddisna.f
│ ├── dgbbrd.f
│ ├── dgbcon.f
│ ├── dgbequ.f
│ ├── dgbequb.f
│ ├── dgbrfs.f
│ ├── dgbsv.f
│ ├── dgbsvx.f
│ ├── dgbtf2.f
│ ├── dgbtrf.f
│ ├── dgbtrs.f
│ ├── dgebak.f
│ ├── dgebal.f
│ ├── dgebd2.f
│ ├── dgebrd.f
│ ├── dgecon.f
│ ├── dgeequ.f
│ ├── dgeequb.f
│ ├── dgees.f
│ ├── dgeesx.f
│ ├── dgeev.f
│ ├── dgeevx.f
│ ├── dgegs.f
│ ├── dgegv.f
│ ├── dgehd2.f
│ ├── dgehrd.f
│ ├── dgejsv.f
│ ├── dgelq2.f
│ ├── dgelqf.f
│ ├── dgels.f
│ ├── dgelsd.f
│ ├── dgelss.f
│ ├── dgelsx.f
│ ├── dgelsy.f
│ ├── dgemqrt.f
│ ├── dgeql2.f
│ ├── dgeqlf.f
│ ├── dgeqp3.f
│ ├── dgeqpf.f
│ ├── dgeqr2.f
│ ├── dgeqr2p.f
│ ├── dgeqrf.f
│ ├── dgeqrfp.f
│ ├── dgeqrt.f
│ ├── dgeqrt2.f
│ ├── dgeqrt3.f
│ ├── dgerfs.f
│ ├── dgerq2.f
│ ├── dgerqf.f
│ ├── dgesc2.f
│ ├── dgesdd.f
│ ├── dgesv.f
│ ├── dgesvd.f
│ ├── dgesvj.f
│ ├── dgesvx.f
│ ├── dgetc2.f
│ ├── dgetf2.f
│ ├── dgetrf.f
│ ├── dgetri.f
│ ├── dgetrs.f
│ ├── dggbak.f
│ ├── dggbal.f
│ ├── dgges.f
│ ├── dggesx.f
│ ├── dggev.f
│ ├── dggevx.f
│ ├── dggglm.f
│ ├── dgghrd.f
│ ├── dgglse.f
│ ├── dggqrf.f
│ ├── dggrqf.f
│ ├── dggsvd.f
│ ├── dggsvp.f
│ ├── dgsvj0.f
│ ├── dgsvj1.f
│ ├── dgtcon.f
│ ├── dgtrfs.f
│ ├── dgtsv.f
│ ├── dgtsvx.f
│ ├── dgttrf.f
│ ├── dgttrs.f
│ ├── dgtts2.f
│ ├── dhgeqz.f
│ ├── dhsein.f
│ ├── dhseqr.f
│ ├── disnan.f
│ ├── dla_gbamv.f
│ ├── dla_gbrcond.f
│ ├── dla_gbrpvgrw.f
│ ├── dla_geamv.f
│ ├── dla_gercond.f
│ ├── dla_gerpvgrw.f
│ ├── dla_lin_berr.f
│ ├── dla_porcond.f
│ ├── dla_porpvgrw.f
│ ├── dla_syamv.f
│ ├── dla_syrcond.f
│ ├── dla_syrpvgrw.f
│ ├── dla_wwaddw.f
│ ├── dlabad.f
│ ├── dlabrd.f
│ ├── dlacn2.f
│ ├── dlacon.f
│ ├── dlacpy.f
│ ├── dladiv.f
│ ├── dlae2.f
│ ├── dlaebz.f
│ ├── dlaed0.f
│ ├── dlaed1.f
│ ├── dlaed2.f
│ ├── dlaed3.f
│ ├── dlaed4.f
│ ├── dlaed5.f
│ ├── dlaed6.f
│ ├── dlaed7.f
│ ├── dlaed8.f
│ ├── dlaed9.f
│ ├── dlaeda.f
│ ├── dlaein.f
│ ├── dlaev2.f
│ ├── dlaexc.f
│ ├── dlag2.f
│ ├── dlag2s.f
│ ├── dlagge.f
│ ├── dlags2.f
│ ├── dlagsy.f
│ ├── dlagtf.f
│ ├── dlagtm.f
│ ├── dlagts.f
│ ├── dlagv2.f
│ ├── dlahilb.f
│ ├── dlahqr.f
│ ├── dlahr2.f
│ ├── dlahrd.f
│ ├── dlaic1.f
│ ├── dlaisnan.f
│ ├── dlakf2.f
│ ├── dlaln2.f
│ ├── dlals0.f
│ ├── dlalsa.f
│ ├── dlalsd.f
│ ├── dlamch.f
│ ├── dlamrg.f
│ ├── dlaneg.f
│ ├── dlangb.f
│ ├── dlange.f
│ ├── dlangt.f
│ ├── dlanhs.f
│ ├── dlansb.f
│ ├── dlansf.f
│ ├── dlansp.f
│ ├── dlanst.f
│ ├── dlansy.f
│ ├── dlantb.f
│ ├── dlantp.f
│ ├── dlantr.f
│ ├── dlanv2.f
│ ├── dlapll.f
│ ├── dlapmr.f
│ ├── dlapmt.f
│ ├── dlapy2.f
│ ├── dlapy3.f
│ ├── dlaqgb.f
│ ├── dlaqge.f
│ ├── dlaqp2.f
│ ├── dlaqps.f
│ ├── dlaqr0.f
│ ├── dlaqr1.f
│ ├── dlaqr2.f
│ ├── dlaqr3.f
│ ├── dlaqr4.f
│ ├── dlaqr5.f
│ ├── dlaqsb.f
│ ├── dlaqsp.f
│ ├── dlaqsy.f
│ ├── dlaqtr.f
│ ├── dlar1v.f
│ ├── dlar2v.f
│ ├── dlaran.f
│ ├── dlarf.f
│ ├── dlarfb.f
│ ├── dlarfg.f
│ ├── dlarfgp.f
│ ├── dlarft.f
│ ├── dlarfx.f
│ ├── dlarge.f
│ ├── dlargv.f
│ ├── dlarnd.f
│ ├── dlarnv.f
│ ├── dlaror.f
│ ├── dlarot.f
│ ├── dlarra.f
│ ├── dlarrb.f
│ ├── dlarrc.f
│ ├── dlarrd.f
│ ├── dlarre.f
│ ├── dlarrf.f
│ ├── dlarrj.f
│ ├── dlarrk.f
│ ├── dlarrr.f
│ ├── dlarrv.f
│ ├── dlarscl2.f
│ ├── dlartg.f
│ ├── dlartgp.f
│ ├── dlartgs.f
│ ├── dlartv.f
│ ├── dlaruv.f
│ ├── dlarz.f
│ ├── dlarzb.f
│ ├── dlarzt.f
│ ├── dlas2.f
│ ├── dlascl.f
│ ├── dlascl2.f
│ ├── dlasd0.f
│ ├── dlasd1.f
│ ├── dlasd2.f
│ ├── dlasd3.f
│ ├── dlasd4.f
│ ├── dlasd5.f
│ ├── dlasd6.f
│ ├── dlasd7.f
│ ├── dlasd8.f
│ ├── dlasda.f
│ ├── dlasdq.f
│ ├── dlasdt.f
│ ├── dlaset.f
│ ├── dlasq1.f
│ ├── dlasq2.f
│ ├── dlasq3.f
│ ├── dlasq4.f
│ ├── dlasq5.f
│ ├── dlasq6.f
│ ├── dlasr.f
│ ├── dlasrt.f
│ ├── dlassq.f
│ ├── dlasv2.f
│ ├── dlaswp.f
│ ├── dlasy2.f
│ ├── dlasyf.f
│ ├── dlat2s.f
│ ├── dlatbs.f
│ ├── dlatdf.f
│ ├── dlatm1.f
│ ├── dlatm2.f
│ ├── dlatm3.f
│ ├── dlatm5.f
│ ├── dlatm6.f
│ ├── dlatm7.f
│ ├── dlatme.f
│ ├── dlatmr.f
│ ├── dlatms.f
│ ├── dlatmt.f
│ ├── dlatps.f
│ ├── dlatrd.f
│ ├── dlatrs.f
│ ├── dlatrz.f
│ ├── dlatzm.f
│ ├── dlauu2.f
│ ├── dlauum.f
│ ├── dopgtr.f
│ ├── dopmtr.f
│ ├── dorbdb.f
│ ├── dorcsd.f
│ ├── dorg2l.f
│ ├── dorg2r.f
│ ├── dorgbr.f
│ ├── dorghr.f
│ ├── dorgl2.f
│ ├── dorglq.f
│ ├── dorgql.f
│ ├── dorgqr.f
│ ├── dorgr2.f
│ ├── dorgrq.f
│ ├── dorgtr.f
│ ├── dorm2l.f
│ ├── dorm2r.f
│ ├── dormbr.f
│ ├── dormhr.f
│ ├── dorml2.f
│ ├── dormlq.f
│ ├── dormql.f
│ ├── dormqr.f
│ ├── dormr2.f
│ ├── dormr3.f
│ ├── dormrq.f
│ ├── dormrz.f
│ ├── dormtr.f
│ ├── dpbcon.f
│ ├── dpbequ.f
│ ├── dpbrfs.f
│ ├── dpbstf.f
│ ├── dpbsv.f
│ ├── dpbsvx.f
│ ├── dpbtf2.f
│ ├── dpbtrf.f
│ ├── dpbtrs.f
│ ├── dpftrf.f
│ ├── dpftri.f
│ ├── dpftrs.f
│ ├── dpocon.f
│ ├── dpoequ.f
│ ├── dpoequb.f
│ ├── dporfs.f
│ ├── dposv.f
│ ├── dposvx.f
│ ├── dpotf2.f
│ ├── dpotrf.f
│ ├── dpotri.f
│ ├── dpotrs.f
│ ├── dppcon.f
│ ├── dppequ.f
│ ├── dpprfs.f
│ ├── dppsv.f
│ ├── dppsvx.f
│ ├── dpptrf.f
│ ├── dpptri.f
│ ├── dpptrs.f
│ ├── dpstf2.f
│ ├── dpstrf.f
│ ├── dptcon.f
│ ├── dpteqr.f
│ ├── dptrfs.f
│ ├── dptsv.f
│ ├── dptsvx.f
│ ├── dpttrf.f
│ ├── dpttrs.f
│ ├── dptts2.f
│ ├── drscl.f
│ ├── dsbev.f
│ ├── dsbevd.f
│ ├── dsbevx.f
│ ├── dsbgst.f
│ ├── dsbgv.f
│ ├── dsbgvd.f
│ ├── dsbgvx.f
│ ├── dsbtrd.f
│ ├── dsfrk.f
│ ├── dsgesv.f
│ ├── dspcon.f
│ ├── dspev.f
│ ├── dspevd.f
│ ├── dspevx.f
│ ├── dspgst.f
│ ├── dspgv.f
│ ├── dspgvd.f
│ ├── dspgvx.f
│ ├── dsposv.f
│ ├── dsprfs.f
│ ├── dspsv.f
│ ├── dspsvx.f
│ ├── dsptrd.f
│ ├── dsptrf.f
│ ├── dsptri.f
│ ├── dsptrs.f
│ ├── dstebz.f
│ ├── dstedc.f
│ ├── dstegr.f
│ ├── dstein.f
│ ├── dstemr.f
│ ├── dsteqr.f
│ ├── dsterf.f
│ ├── dstev.f
│ ├── dstevd.f
│ ├── dstevr.f
│ ├── dstevx.f
│ ├── dsycon.f
│ ├── dsyconv.f
│ ├── dsyequb.f
│ ├── dsyev.f
│ ├── dsyevd.f
│ ├── dsyevr.f
│ ├── dsyevx.f
│ ├── dsygs2.f
│ ├── dsygst.f
│ ├── dsygv.f
│ ├── dsygvd.f
│ ├── dsygvx.f
│ ├── dsyrfs.f
│ ├── dsysv.f
│ ├── dsysvx.f
│ ├── dsyswapr.f
│ ├── dsytd2.f
│ ├── dsytf2.f
│ ├── dsytrd.f
│ ├── dsytrf.f
│ ├── dsytri.f
│ ├── dsytri2.f
│ ├── dsytri2x.f
│ ├── dsytrs.f
│ ├── dsytrs2.f
│ ├── dtbcon.f
│ ├── dtbrfs.f
│ ├── dtbtrs.f
│ ├── dtfsm.f
│ ├── dtftri.f
│ ├── dtfttp.f
│ ├── dtfttr.f
│ ├── dtgevc.f
│ ├── dtgex2.f
│ ├── dtgexc.f
│ ├── dtgsen.f
│ ├── dtgsja.f
│ ├── dtgsna.f
│ ├── dtgsy2.f
│ ├── dtgsyl.f
│ ├── dtpcon.f
│ ├── dtpmqrt.f
│ ├── dtpqrt.f
│ ├── dtpqrt2.f
│ ├── dtprfb.f
│ ├── dtprfs.f
│ ├── dtptri.f
│ ├── dtptrs.f
│ ├── dtpttf.f
│ ├── dtpttr.f
│ ├── dtrcon.f
│ ├── dtrevc.f
│ ├── dtrexc.f
│ ├── dtrrfs.f
│ ├── dtrsen.f
│ ├── dtrsna.f
│ ├── dtrsyl.f
│ ├── dtrti2.f
│ ├── dtrtri.f
│ ├── dtrtrs.f
│ ├── dtrttf.f
│ ├── dtrttp.f
│ ├── dtzrqf.f
│ ├── dtzrzf.f
│ ├── dzsum1.f
│ ├── icmax1.f
│ ├── ieeeck.f
│ ├── ilaclc.f
│ ├── ilaclr.f
│ ├── iladiag.f
│ ├── iladlc.f
│ ├── iladlr.f
│ ├── ilaenv.f
│ ├── ilaprec.f
│ ├── ilaslc.f
│ ├── ilaslr.f
│ ├── ilatrans.f
│ ├── ilauplo.f
│ ├── ilaver.f
│ ├── ilazlc.f
│ ├── ilazlr.f
│ ├── iparmq.f
│ ├── izmax1.f
│ ├── lsamen.f
│ ├── sbbcsd.f
│ ├── sbdsdc.f
│ ├── sbdsqr.f
│ ├── scsum1.f
│ ├── sdisna.f
│ ├── sgbbrd.f
│ ├── sgbcon.f
│ ├── sgbequ.f
│ ├── sgbequb.f
│ ├── sgbrfs.f
│ ├── sgbsv.f
│ ├── sgbsvx.f
│ ├── sgbtf2.f
│ ├── sgbtrf.f
│ ├── sgbtrs.f
│ ├── sgebak.f
│ ├── sgebal.f
│ ├── sgebd2.f
│ ├── sgebrd.f
│ ├── sgecon.f
│ ├── sgeequ.f
│ ├── sgeequb.f
│ ├── sgees.f
│ ├── sgeesx.f
│ ├── sgeev.f
│ ├── sgeevx.f
│ ├── sgegs.f
│ ├── sgegv.f
│ ├── sgehd2.f
│ ├── sgehrd.f
│ ├── sgejsv.f
│ ├── sgelq2.f
│ ├── sgelqf.f
│ ├── sgels.f
│ ├── sgelsd.f
│ ├── sgelss.f
│ ├── sgelsx.f
│ ├── sgelsy.f
│ ├── sgemqrt.f
│ ├── sgeql2.f
│ ├── sgeqlf.f
│ ├── sgeqp3.f
│ ├── sgeqpf.f
│ ├── sgeqr2.f
│ ├── sgeqr2p.f
│ ├── sgeqrf.f
│ ├── sgeqrfp.f
│ ├── sgeqrt.f
│ ├── sgeqrt2.f
│ ├── sgeqrt3.f
│ ├── sgerfs.f
│ ├── sgerq2.f
│ ├── sgerqf.f
│ ├── sgesc2.f
│ ├── sgesdd.f
│ ├── sgesv.f
│ ├── sgesvd.f
│ ├── sgesvj.f
│ ├── sgesvx.f
│ ├── sgetc2.f
│ ├── sgetf2.f
│ ├── sgetrf.f
│ ├── sgetri.f
│ ├── sgetrs.f
│ ├── sggbak.f
│ ├── sggbal.f
│ ├── sgges.f
│ ├── sggesx.f
│ ├── sggev.f
│ ├── sggevx.f
│ ├── sggglm.f
│ ├── sgghrd.f
│ ├── sgglse.f
│ ├── sggqrf.f
│ ├── sggrqf.f
│ ├── sggsvd.f
│ ├── sggsvp.f
│ ├── sgsvj0.f
│ ├── sgsvj1.f
│ ├── sgtcon.f
│ ├── sgtrfs.f
│ ├── sgtsv.f
│ ├── sgtsvx.f
│ ├── sgttrf.f
│ ├── sgttrs.f
│ ├── sgtts2.f
│ ├── shgeqz.f
│ ├── shsein.f
│ ├── shseqr.f
│ ├── sisnan.f
│ ├── sla_gbamv.f
│ ├── sla_gbrcond.f
│ ├── sla_gbrpvgrw.f
│ ├── sla_geamv.f
│ ├── sla_gercond.f
│ ├── sla_gerpvgrw.f
│ ├── sla_lin_berr.f
│ ├── sla_porcond.f
│ ├── sla_porpvgrw.f
│ ├── sla_syamv.f
│ ├── sla_syrcond.f
│ ├── sla_syrpvgrw.f
│ ├── sla_wwaddw.f
│ ├── slabad.f
│ ├── slabrd.f
│ ├── slacn2.f
│ ├── slacon.f
│ ├── slacpy.f
│ ├── sladiv.f
│ ├── slae2.f
│ ├── slaebz.f
│ ├── slaed0.f
│ ├── slaed1.f
│ ├── slaed2.f
│ ├── slaed3.f
│ ├── slaed4.f
│ ├── slaed5.f
│ ├── slaed6.f
│ ├── slaed7.f
│ ├── slaed8.f
│ ├── slaed9.f
│ ├── slaeda.f
│ ├── slaein.f
│ ├── slaev2.f
│ ├── slaexc.f
│ ├── slag2.f
│ ├── slag2d.f
│ ├── slagge.f
│ ├── slags2.f
│ ├── slagsy.f
│ ├── slagtf.f
│ ├── slagtm.f
│ ├── slagts.f
│ ├── slagv2.f
│ ├── slahilb.f
│ ├── slahqr.f
│ ├── slahr2.f
│ ├── slahrd.f
│ ├── slaic1.f
│ ├── slaisnan.f
│ ├── slakf2.f
│ ├── slaln2.f
│ ├── slals0.f
│ ├── slalsa.f
│ ├── slalsd.f
│ ├── slamch.f
│ ├── slamrg.f
│ ├── slaneg.f
│ ├── slangb.f
│ ├── slange.f
│ ├── slangt.f
│ ├── slanhs.f
│ ├── slansb.f
│ ├── slansf.f
│ ├── slansp.f
│ ├── slanst.f
│ ├── slansy.f
│ ├── slantb.f
│ ├── slantp.f
│ ├── slantr.f
│ ├── slanv2.f
│ ├── slapll.f
│ ├── slapmr.f
│ ├── slapmt.f
│ ├── slapy2.f
│ ├── slapy3.f
│ ├── slaqgb.f
│ ├── slaqge.f
│ ├── slaqp2.f
│ ├── slaqps.f
│ ├── slaqr0.f
│ ├── slaqr1.f
│ ├── slaqr2.f
│ ├── slaqr3.f
│ ├── slaqr4.f
│ ├── slaqr5.f
│ ├── slaqsb.f
│ ├── slaqsp.f
│ ├── slaqsy.f
│ ├── slaqtr.f
│ ├── slar1v.f
│ ├── slar2v.f
│ ├── slaran.f
│ ├── slarf.f
│ ├── slarfb.f
│ ├── slarfg.f
│ ├── slarfgp.f
│ ├── slarft.f
│ ├── slarfx.f
│ ├── slarge.f
│ ├── slargv.f
│ ├── slarnd.f
│ ├── slarnv.f
│ ├── slaror.f
│ ├── slarot.f
│ ├── slarra.f
│ ├── slarrb.f
│ ├── slarrc.f
│ ├── slarrd.f
│ ├── slarre.f
│ ├── slarrf.f
│ ├── slarrj.f
│ ├── slarrk.f
│ ├── slarrr.f
│ ├── slarrv.f
│ ├── slarscl2.f
│ ├── slartg.f
│ ├── slartgp.f
│ ├── slartgs.f
│ ├── slartv.f
│ ├── slaruv.f
│ ├── slarz.f
│ ├── slarzb.f
│ ├── slarzt.f
│ ├── slas2.f
│ ├── slascl.f
│ ├── slascl2.f
│ ├── slasd0.f
│ ├── slasd1.f
│ ├── slasd2.f
│ ├── slasd3.f
│ ├── slasd4.f
│ ├── slasd5.f
│ ├── slasd6.f
│ ├── slasd7.f
│ ├── slasd8.f
│ ├── slasda.f
│ ├── slasdq.f
│ ├── slasdt.f
│ ├── slaset.f
│ ├── slasq1.f
│ ├── slasq2.f
│ ├── slasq3.f
│ ├── slasq4.f
│ ├── slasq5.f
│ ├── slasq6.f
│ ├── slasr.f
│ ├── slasrt.f
│ ├── slassq.f
│ ├── slasv2.f
│ ├── slaswp.f
│ ├── slasy2.f
│ ├── slasyf.f
│ ├── slatbs.f
│ ├── slatdf.f
│ ├── slatm1.f
│ ├── slatm2.f
│ ├── slatm3.f
│ ├── slatm5.f
│ ├── slatm6.f
│ ├── slatm7.f
│ ├── slatme.f
│ ├── slatmr.f
│ ├── slatms.f
│ ├── slatmt.f
│ ├── slatps.f
│ ├── slatrd.f
│ ├── slatrs.f
│ ├── slatrz.f
│ ├── slatzm.f
│ ├── slauu2.f
│ ├── slauum.f
│ ├── sopgtr.f
│ ├── sopmtr.f
│ ├── sorbdb.f
│ ├── sorcsd.f
│ ├── sorg2l.f
│ ├── sorg2r.f
│ ├── sorgbr.f
│ ├── sorghr.f
│ ├── sorgl2.f
│ ├── sorglq.f
│ ├── sorgql.f
│ ├── sorgqr.f
│ ├── sorgr2.f
│ ├── sorgrq.f
│ ├── sorgtr.f
│ ├── sorm2l.f
│ ├── sorm2r.f
│ ├── sormbr.f
│ ├── sormhr.f
│ ├── sorml2.f
│ ├── sormlq.f
│ ├── sormql.f
│ ├── sormqr.f
│ ├── sormr2.f
│ ├── sormr3.f
│ ├── sormrq.f
│ ├── sormrz.f
│ ├── sormtr.f
│ ├── spbcon.f
│ ├── spbequ.f
│ ├── spbrfs.f
│ ├── spbstf.f
│ ├── spbsv.f
│ ├── spbsvx.f
│ ├── spbtf2.f
│ ├── spbtrf.f
│ ├── spbtrs.f
│ ├── spftrf.f
│ ├── spftri.f
│ ├── spftrs.f
│ ├── spocon.f
│ ├── spoequ.f
│ ├── spoequb.f
│ ├── sporfs.f
│ ├── sposv.f
│ ├── sposvx.f
│ ├── spotf2.f
│ ├── spotrf.f
│ ├── spotri.f
│ ├── spotrs.f
│ ├── sppcon.f
│ ├── sppequ.f
│ ├── spprfs.f
│ ├── sppsv.f
│ ├── sppsvx.f
│ ├── spptrf.f
│ ├── spptri.f
│ ├── spptrs.f
│ ├── spstf2.f
│ ├── spstrf.f
│ ├── sptcon.f
│ ├── spteqr.f
│ ├── sptrfs.f
│ ├── sptsv.f
│ ├── sptsvx.f
│ ├── spttrf.f
│ ├── spttrs.f
│ ├── sptts2.f
│ ├── srscl.f
│ ├── ssbev.f
│ ├── ssbevd.f
│ ├── ssbevx.f
│ ├── ssbgst.f
│ ├── ssbgv.f
│ ├── ssbgvd.f
│ ├── ssbgvx.f
│ ├── ssbtrd.f
│ ├── ssfrk.f
│ ├── sspcon.f
│ ├── sspev.f
│ ├── sspevd.f
│ ├── sspevx.f
│ ├── sspgst.f
│ ├── sspgv.f
│ ├── sspgvd.f
│ ├── sspgvx.f
│ ├── ssprfs.f
│ ├── sspsv.f
│ ├── sspsvx.f
│ ├── ssptrd.f
│ ├── ssptrf.f
│ ├── ssptri.f
│ ├── ssptrs.f
│ ├── sstebz.f
│ ├── sstedc.f
│ ├── sstegr.f
│ ├── sstein.f
│ ├── sstemr.f
│ ├── ssteqr.f
│ ├── ssterf.f
│ ├── sstev.f
│ ├── sstevd.f
│ ├── sstevr.f
│ ├── sstevx.f
│ ├── ssycon.f
│ ├── ssyconv.f
│ ├── ssyequb.f
│ ├── ssyev.f
│ ├── ssyevd.f
│ ├── ssyevr.f
│ ├── ssyevx.f
│ ├── ssygs2.f
│ ├── ssygst.f
│ ├── ssygv.f
│ ├── ssygvd.f
│ ├── ssygvx.f
│ ├── ssyrfs.f
│ ├── ssysv.f
│ ├── ssysvx.f
│ ├── ssyswapr.f
│ ├── ssytd2.f
│ ├── ssytf2.f
│ ├── ssytrd.f
│ ├── ssytrf.f
│ ├── ssytri.f
│ ├── ssytri2.f
│ ├── ssytri2x.f
│ ├── ssytrs.f
│ ├── ssytrs2.f
│ ├── stbcon.f
│ ├── stbrfs.f
│ ├── stbtrs.f
│ ├── stfsm.f
│ ├── stftri.f
│ ├── stfttp.f
│ ├── stfttr.f
│ ├── stgevc.f
│ ├── stgex2.f
│ ├── stgexc.f
│ ├── stgsen.f
│ ├── stgsja.f
│ ├── stgsna.f
│ ├── stgsy2.f
│ ├── stgsyl.f
│ ├── stpcon.f
│ ├── stpmqrt.f
│ ├── stpqrt.f
│ ├── stpqrt2.f
│ ├── stprfb.f
│ ├── stprfs.f
│ ├── stptri.f
│ ├── stptrs.f
│ ├── stpttf.f
│ ├── stpttr.f
│ ├── strcon.f
│ ├── strevc.f
│ ├── strexc.f
│ ├── strrfs.f
│ ├── strsen.f
│ ├── strsna.f
│ ├── strsyl.f
│ ├── strti2.f
│ ├── strtri.f
│ ├── strtrs.f
│ ├── strttf.f
│ ├── strttp.f
│ ├── stzrqf.f
│ ├── stzrzf.f
│ └── xerbla_array.f
├── LAPACKE
│ ├── lapacke.h
│ ├── lapacke_config.h
│ ├── lapacke_d_nancheck.c
│ ├── lapacke_dbbcsd.c
│ ├── lapacke_dbbcsd_work.c
│ ├── lapacke_dbdsdc.c
│ ├── lapacke_dbdsdc_work.c
│ ├── lapacke_dbdsqr.c
│ ├── lapacke_dbdsqr_work.c
│ ├── lapacke_ddisna.c
│ ├── lapacke_ddisna_work.c
│ ├── lapacke_dgb_nancheck.c
│ ├── lapacke_dgb_trans.c
│ ├── lapacke_dgbbrd.c
│ ├── lapacke_dgbbrd_work.c
│ ├── lapacke_dgbcon.c
│ ├── lapacke_dgbcon_work.c
│ ├── lapacke_dgbequ.c
│ ├── lapacke_dgbequ_work.c
│ ├── lapacke_dgbequb.c
│ ├── lapacke_dgbequb_work.c
│ ├── lapacke_dgbrfs.c
│ ├── lapacke_dgbrfs_work.c
│ ├── lapacke_dgbsv.c
│ ├── lapacke_dgbsv_work.c
│ ├── lapacke_dgbsvx.c
│ ├── lapacke_dgbsvx_work.c
│ ├── lapacke_dgbtrf.c
│ ├── lapacke_dgbtrf_work.c
│ ├── lapacke_dgbtrs.c
│ ├── lapacke_dgbtrs_work.c
│ ├── lapacke_dge_nancheck.c
│ ├── lapacke_dge_trans.c
│ ├── lapacke_dgebak.c
│ ├── lapacke_dgebak_work.c
│ ├── lapacke_dgebal.c
│ ├── lapacke_dgebal_work.c
│ ├── lapacke_dgebrd.c
│ ├── lapacke_dgebrd_work.c
│ ├── lapacke_dgecon.c
│ ├── lapacke_dgecon_work.c
│ ├── lapacke_dgeequ.c
│ ├── lapacke_dgeequ_work.c
│ ├── lapacke_dgeequb.c
│ ├── lapacke_dgeequb_work.c
│ ├── lapacke_dgees.c
│ ├── lapacke_dgees_work.c
│ ├── lapacke_dgeesx.c
│ ├── lapacke_dgeesx_work.c
│ ├── lapacke_dgeev.c
│ ├── lapacke_dgeev_work.c
│ ├── lapacke_dgeevx.c
│ ├── lapacke_dgeevx_work.c
│ ├── lapacke_dgehrd.c
│ ├── lapacke_dgehrd_work.c
│ ├── lapacke_dgejsv.c
│ ├── lapacke_dgejsv_work.c
│ ├── lapacke_dgelq2.c
│ ├── lapacke_dgelq2_work.c
│ ├── lapacke_dgelqf.c
│ ├── lapacke_dgelqf_work.c
│ ├── lapacke_dgels.c
│ ├── lapacke_dgels_work.c
│ ├── lapacke_dgelsd.c
│ ├── lapacke_dgelsd_work.c
│ ├── lapacke_dgelss.c
│ ├── lapacke_dgelss_work.c
│ ├── lapacke_dgelsy.c
│ ├── lapacke_dgelsy_work.c
│ ├── lapacke_dgemqrt.c
│ ├── lapacke_dgemqrt_work.c
│ ├── lapacke_dgeqlf.c
│ ├── lapacke_dgeqlf_work.c
│ ├── lapacke_dgeqp3.c
│ ├── lapacke_dgeqp3_work.c
│ ├── lapacke_dgeqpf.c
│ ├── lapacke_dgeqpf_work.c
│ ├── lapacke_dgeqr2.c
│ ├── lapacke_dgeqr2_work.c
│ ├── lapacke_dgeqrf.c
│ ├── lapacke_dgeqrf_work.c
│ ├── lapacke_dgeqrfp.c
│ ├── lapacke_dgeqrfp_work.c
│ ├── lapacke_dgeqrt.c
│ ├── lapacke_dgeqrt2.c
│ ├── lapacke_dgeqrt2_work.c
│ ├── lapacke_dgeqrt3.c
│ ├── lapacke_dgeqrt3_work.c
│ ├── lapacke_dgeqrt_work.c
│ ├── lapacke_dgerfs.c
│ ├── lapacke_dgerfs_work.c
│ ├── lapacke_dgerqf.c
│ ├── lapacke_dgerqf_work.c
│ ├── lapacke_dgesdd.c
│ ├── lapacke_dgesdd_work.c
│ ├── lapacke_dgesv.c
│ ├── lapacke_dgesv_work.c
│ ├── lapacke_dgesvd.c
│ ├── lapacke_dgesvd_work.c
│ ├── lapacke_dgesvj.c
│ ├── lapacke_dgesvj_work.c
│ ├── lapacke_dgesvx.c
│ ├── lapacke_dgesvx_work.c
│ ├── lapacke_dgetf2.c
│ ├── lapacke_dgetf2_work.c
│ ├── lapacke_dgetrf.c
│ ├── lapacke_dgetrf_work.c
│ ├── lapacke_dgetri.c
│ ├── lapacke_dgetri_work.c
│ ├── lapacke_dgetrs.c
│ ├── lapacke_dgetrs_work.c
│ ├── lapacke_dgg_nancheck.c
│ ├── lapacke_dgg_trans.c
│ ├── lapacke_dggbak.c
│ ├── lapacke_dggbak_work.c
│ ├── lapacke_dggbal.c
│ ├── lapacke_dggbal_work.c
│ ├── lapacke_dgges.c
│ ├── lapacke_dgges_work.c
│ ├── lapacke_dggesx.c
│ ├── lapacke_dggesx_work.c
│ ├── lapacke_dggev.c
│ ├── lapacke_dggev_work.c
│ ├── lapacke_dggevx.c
│ ├── lapacke_dggevx_work.c
│ ├── lapacke_dggglm.c
│ ├── lapacke_dggglm_work.c
│ ├── lapacke_dgghrd.c
│ ├── lapacke_dgghrd_work.c
│ ├── lapacke_dgglse.c
│ ├── lapacke_dgglse_work.c
│ ├── lapacke_dggqrf.c
│ ├── lapacke_dggqrf_work.c
│ ├── lapacke_dggrqf.c
│ ├── lapacke_dggrqf_work.c
│ ├── lapacke_dggsvd.c
│ ├── lapacke_dggsvd_work.c
│ ├── lapacke_dggsvp.c
│ ├── lapacke_dggsvp_work.c
│ ├── lapacke_dgt_nancheck.c
│ ├── lapacke_dgtcon.c
│ ├── lapacke_dgtcon_work.c
│ ├── lapacke_dgtrfs.c
│ ├── lapacke_dgtrfs_work.c
│ ├── lapacke_dgtsv.c
│ ├── lapacke_dgtsv_work.c
│ ├── lapacke_dgtsvx.c
│ ├── lapacke_dgtsvx_work.c
│ ├── lapacke_dgttrf.c
│ ├── lapacke_dgttrf_work.c
│ ├── lapacke_dgttrs.c
│ ├── lapacke_dgttrs_work.c
│ ├── lapacke_dhgeqz.c
│ ├── lapacke_dhgeqz_work.c
│ ├── lapacke_dhs_nancheck.c
│ ├── lapacke_dhs_trans.c
│ ├── lapacke_dhsein.c
│ ├── lapacke_dhsein_work.c
│ ├── lapacke_dhseqr.c
│ ├── lapacke_dhseqr_work.c
│ ├── lapacke_dlacpy.c
│ ├── lapacke_dlacpy_work.c
│ ├── lapacke_dlag2s.c
│ ├── lapacke_dlag2s_work.c
│ ├── lapacke_dlagge.c
│ ├── lapacke_dlagge_work.c
│ ├── lapacke_dlagsy.c
│ ├── lapacke_dlagsy_work.c
│ ├── lapacke_dlamch.c
│ ├── lapacke_dlamch_work.c
│ ├── lapacke_dlange.c
│ ├── lapacke_dlange_work.c
│ ├── lapacke_dlansy.c
│ ├── lapacke_dlansy_work.c
│ ├── lapacke_dlantr.c
│ ├── lapacke_dlantr_work.c
│ ├── lapacke_dlapmr.c
│ ├── lapacke_dlapmr_work.c
│ ├── lapacke_dlapy2.c
│ ├── lapacke_dlapy2_work.c
│ ├── lapacke_dlapy3.c
│ ├── lapacke_dlapy3_work.c
│ ├── lapacke_dlarfb.c
│ ├── lapacke_dlarfb_work.c
│ ├── lapacke_dlarfg.c
│ ├── lapacke_dlarfg_work.c
│ ├── lapacke_dlarft.c
│ ├── lapacke_dlarft_work.c
│ ├── lapacke_dlarfx.c
│ ├── lapacke_dlarfx_work.c
│ ├── lapacke_dlarnv.c
│ ├── lapacke_dlarnv_work.c
│ ├── lapacke_dlartgp.c
│ ├── lapacke_dlartgp_work.c
│ ├── lapacke_dlartgs.c
│ ├── lapacke_dlartgs_work.c
│ ├── lapacke_dlaset.c
│ ├── lapacke_dlaset_work.c
│ ├── lapacke_dlasrt.c
│ ├── lapacke_dlasrt_work.c
│ ├── lapacke_dlaswp.c
│ ├── lapacke_dlaswp_work.c
│ ├── lapacke_dlatms.c
│ ├── lapacke_dlatms_work.c
│ ├── lapacke_dlauum.c
│ ├── lapacke_dlauum_work.c
│ ├── lapacke_dopgtr.c
│ ├── lapacke_dopgtr_work.c
│ ├── lapacke_dopmtr.c
│ ├── lapacke_dopmtr_work.c
│ ├── lapacke_dorbdb.c
│ ├── lapacke_dorbdb_work.c
│ ├── lapacke_dorcsd.c
│ ├── lapacke_dorcsd_work.c
│ ├── lapacke_dorgbr.c
│ ├── lapacke_dorgbr_work.c
│ ├── lapacke_dorghr.c
│ ├── lapacke_dorghr_work.c
│ ├── lapacke_dorglq.c
│ ├── lapacke_dorglq_work.c
│ ├── lapacke_dorgql.c
│ ├── lapacke_dorgql_work.c
│ ├── lapacke_dorgqr.c
│ ├── lapacke_dorgqr_work.c
│ ├── lapacke_dorgrq.c
│ ├── lapacke_dorgrq_work.c
│ ├── lapacke_dorgtr.c
│ ├── lapacke_dorgtr_work.c
│ ├── lapacke_dormbr.c
│ ├── lapacke_dormbr_work.c
│ ├── lapacke_dormhr.c
│ ├── lapacke_dormhr_work.c
│ ├── lapacke_dormlq.c
│ ├── lapacke_dormlq_work.c
│ ├── lapacke_dormql.c
│ ├── lapacke_dormql_work.c
│ ├── lapacke_dormqr.c
│ ├── lapacke_dormqr_work.c
│ ├── lapacke_dormrq.c
│ ├── lapacke_dormrq_work.c
│ ├── lapacke_dormrz.c
│ ├── lapacke_dormrz_work.c
│ ├── lapacke_dormtr.c
│ ├── lapacke_dormtr_work.c
│ ├── lapacke_dpb_nancheck.c
│ ├── lapacke_dpb_trans.c
│ ├── lapacke_dpbcon.c
│ ├── lapacke_dpbcon_work.c
│ ├── lapacke_dpbequ.c
│ ├── lapacke_dpbequ_work.c
│ ├── lapacke_dpbrfs.c
│ ├── lapacke_dpbrfs_work.c
│ ├── lapacke_dpbstf.c
│ ├── lapacke_dpbstf_work.c
│ ├── lapacke_dpbsv.c
│ ├── lapacke_dpbsv_work.c
│ ├── lapacke_dpbsvx.c
│ ├── lapacke_dpbsvx_work.c
│ ├── lapacke_dpbtrf.c
│ ├── lapacke_dpbtrf_work.c
│ ├── lapacke_dpbtrs.c
│ ├── lapacke_dpbtrs_work.c
│ ├── lapacke_dpf_nancheck.c
│ ├── lapacke_dpf_trans.c
│ ├── lapacke_dpftrf.c
│ ├── lapacke_dpftrf_work.c
│ ├── lapacke_dpftri.c
│ ├── lapacke_dpftri_work.c
│ ├── lapacke_dpftrs.c
│ ├── lapacke_dpftrs_work.c
│ ├── lapacke_dpo_nancheck.c
│ ├── lapacke_dpo_trans.c
│ ├── lapacke_dpocon.c
│ ├── lapacke_dpocon_work.c
│ ├── lapacke_dpoequ.c
│ ├── lapacke_dpoequ_work.c
│ ├── lapacke_dpoequb.c
│ ├── lapacke_dpoequb_work.c
│ ├── lapacke_dporfs.c
│ ├── lapacke_dporfs_work.c
│ ├── lapacke_dposv.c
│ ├── lapacke_dposv_work.c
│ ├── lapacke_dposvx.c
│ ├── lapacke_dposvx_work.c
│ ├── lapacke_dpotrf.c
│ ├── lapacke_dpotrf_work.c
│ ├── lapacke_dpotri.c
│ ├── lapacke_dpotri_work.c
│ ├── lapacke_dpotrs.c
│ ├── lapacke_dpotrs_work.c
│ ├── lapacke_dpp_nancheck.c
│ ├── lapacke_dpp_trans.c
│ ├── lapacke_dppcon.c
│ ├── lapacke_dppcon_work.c
│ ├── lapacke_dppequ.c
│ ├── lapacke_dppequ_work.c
│ ├── lapacke_dpprfs.c
│ ├── lapacke_dpprfs_work.c
│ ├── lapacke_dppsv.c
│ ├── lapacke_dppsv_work.c
│ ├── lapacke_dppsvx.c
│ ├── lapacke_dppsvx_work.c
│ ├── lapacke_dpptrf.c
│ ├── lapacke_dpptrf_work.c
│ ├── lapacke_dpptri.c
│ ├── lapacke_dpptri_work.c
│ ├── lapacke_dpptrs.c
│ ├── lapacke_dpptrs_work.c
│ ├── lapacke_dpstrf.c
│ ├── lapacke_dpstrf_work.c
│ ├── lapacke_dpt_nancheck.c
│ ├── lapacke_dptcon.c
│ ├── lapacke_dptcon_work.c
│ ├── lapacke_dpteqr.c
│ ├── lapacke_dpteqr_work.c
│ ├── lapacke_dptrfs.c
│ ├── lapacke_dptrfs_work.c
│ ├── lapacke_dptsv.c
│ ├── lapacke_dptsv_work.c
│ ├── lapacke_dptsvx.c
│ ├── lapacke_dptsvx_work.c
│ ├── lapacke_dpttrf.c
│ ├── lapacke_dpttrf_work.c
│ ├── lapacke_dpttrs.c
│ ├── lapacke_dpttrs_work.c
│ ├── lapacke_dsb_nancheck.c
│ ├── lapacke_dsb_trans.c
│ ├── lapacke_dsbev.c
│ ├── lapacke_dsbev_work.c
│ ├── lapacke_dsbevd.c
│ ├── lapacke_dsbevd_work.c
│ ├── lapacke_dsbevx.c
│ ├── lapacke_dsbevx_work.c
│ ├── lapacke_dsbgst.c
│ ├── lapacke_dsbgst_work.c
│ ├── lapacke_dsbgv.c
│ ├── lapacke_dsbgv_work.c
│ ├── lapacke_dsbgvd.c
│ ├── lapacke_dsbgvd_work.c
│ ├── lapacke_dsbgvx.c
│ ├── lapacke_dsbgvx_work.c
│ ├── lapacke_dsbtrd.c
│ ├── lapacke_dsbtrd_work.c
│ ├── lapacke_dsfrk.c
│ ├── lapacke_dsfrk_work.c
│ ├── lapacke_dsgesv.c
│ ├── lapacke_dsgesv_work.c
│ ├── lapacke_dsp_nancheck.c
│ ├── lapacke_dsp_trans.c
│ ├── lapacke_dspcon.c
│ ├── lapacke_dspcon_work.c
│ ├── lapacke_dspev.c
│ ├── lapacke_dspev_work.c
│ ├── lapacke_dspevd.c
│ ├── lapacke_dspevd_work.c
│ ├── lapacke_dspevx.c
│ ├── lapacke_dspevx_work.c
│ ├── lapacke_dspgst.c
│ ├── lapacke_dspgst_work.c
│ ├── lapacke_dspgv.c
│ ├── lapacke_dspgv_work.c
│ ├── lapacke_dspgvd.c
│ ├── lapacke_dspgvd_work.c
│ ├── lapacke_dspgvx.c
│ ├── lapacke_dspgvx_work.c
│ ├── lapacke_dsposv.c
│ ├── lapacke_dsposv_work.c
│ ├── lapacke_dsprfs.c
│ ├── lapacke_dsprfs_work.c
│ ├── lapacke_dspsv.c
│ ├── lapacke_dspsv_work.c
│ ├── lapacke_dspsvx.c
│ ├── lapacke_dspsvx_work.c
│ ├── lapacke_dsptrd.c
│ ├── lapacke_dsptrd_work.c
│ ├── lapacke_dsptrf.c
│ ├── lapacke_dsptrf_work.c
│ ├── lapacke_dsptri.c
│ ├── lapacke_dsptri_work.c
│ ├── lapacke_dsptrs.c
│ ├── lapacke_dsptrs_work.c
│ ├── lapacke_dst_nancheck.c
│ ├── lapacke_dstebz.c
│ ├── lapacke_dstebz_work.c
│ ├── lapacke_dstedc.c
│ ├── lapacke_dstedc_work.c
│ ├── lapacke_dstegr.c
│ ├── lapacke_dstegr_work.c
│ ├── lapacke_dstein.c
│ ├── lapacke_dstein_work.c
│ ├── lapacke_dstemr.c
│ ├── lapacke_dstemr_work.c
│ ├── lapacke_dsteqr.c
│ ├── lapacke_dsteqr_work.c
│ ├── lapacke_dsterf.c
│ ├── lapacke_dsterf_work.c
│ ├── lapacke_dstev.c
│ ├── lapacke_dstev_work.c
│ ├── lapacke_dstevd.c
│ ├── lapacke_dstevd_work.c
│ ├── lapacke_dstevr.c
│ ├── lapacke_dstevr_work.c
│ ├── lapacke_dstevx.c
│ ├── lapacke_dstevx_work.c
│ ├── lapacke_dsy_nancheck.c
│ ├── lapacke_dsy_trans.c
│ ├── lapacke_dsycon.c
│ ├── lapacke_dsycon_work.c
│ ├── lapacke_dsyconv.c
│ ├── lapacke_dsyconv_work.c
│ ├── lapacke_dsyequb.c
│ ├── lapacke_dsyequb_work.c
│ ├── lapacke_dsyev.c
│ ├── lapacke_dsyev_work.c
│ ├── lapacke_dsyevd.c
│ ├── lapacke_dsyevd_work.c
│ ├── lapacke_dsyevr.c
│ ├── lapacke_dsyevr_work.c
│ ├── lapacke_dsyevx.c
│ ├── lapacke_dsyevx_work.c
│ ├── lapacke_dsygst.c
│ ├── lapacke_dsygst_work.c
│ ├── lapacke_dsygv.c
│ ├── lapacke_dsygv_work.c
│ ├── lapacke_dsygvd.c
│ ├── lapacke_dsygvd_work.c
│ ├── lapacke_dsygvx.c
│ ├── lapacke_dsygvx_work.c
│ ├── lapacke_dsyrfs.c
│ ├── lapacke_dsyrfs_work.c
│ ├── lapacke_dsysv.c
│ ├── lapacke_dsysv_work.c
│ ├── lapacke_dsysvx.c
│ ├── lapacke_dsysvx_work.c
│ ├── lapacke_dsyswapr.c
│ ├── lapacke_dsyswapr_work.c
│ ├── lapacke_dsytrd.c
│ ├── lapacke_dsytrd_work.c
│ ├── lapacke_dsytrf.c
│ ├── lapacke_dsytrf_work.c
│ ├── lapacke_dsytri.c
│ ├── lapacke_dsytri2.c
│ ├── lapacke_dsytri2_work.c
│ ├── lapacke_dsytri2x.c
│ ├── lapacke_dsytri2x_work.c
│ ├── lapacke_dsytri_work.c
│ ├── lapacke_dsytrs.c
│ ├── lapacke_dsytrs2.c
│ ├── lapacke_dsytrs2_work.c
│ ├── lapacke_dsytrs_work.c
│ ├── lapacke_dtb_nancheck.c
│ ├── lapacke_dtb_trans.c
│ ├── lapacke_dtbcon.c
│ ├── lapacke_dtbcon_work.c
│ ├── lapacke_dtbrfs.c
│ ├── lapacke_dtbrfs_work.c
│ ├── lapacke_dtbtrs.c
│ ├── lapacke_dtbtrs_work.c
│ ├── lapacke_dtf_nancheck.c
│ ├── lapacke_dtf_trans.c
│ ├── lapacke_dtfsm.c
│ ├── lapacke_dtfsm_work.c
│ ├── lapacke_dtftri.c
│ ├── lapacke_dtftri_work.c
│ ├── lapacke_dtfttp.c
│ ├── lapacke_dtfttp_work.c
│ ├── lapacke_dtfttr.c
│ ├── lapacke_dtfttr_work.c
│ ├── lapacke_dtgevc.c
│ ├── lapacke_dtgevc_work.c
│ ├── lapacke_dtgexc.c
│ ├── lapacke_dtgexc_work.c
│ ├── lapacke_dtgsen.c
│ ├── lapacke_dtgsen_work.c
│ ├── lapacke_dtgsja.c
│ ├── lapacke_dtgsja_work.c
│ ├── lapacke_dtgsna.c
│ ├── lapacke_dtgsna_work.c
│ ├── lapacke_dtgsyl.c
│ ├── lapacke_dtgsyl_work.c
│ ├── lapacke_dtp_nancheck.c
│ ├── lapacke_dtp_trans.c
│ ├── lapacke_dtpcon.c
│ ├── lapacke_dtpcon_work.c
│ ├── lapacke_dtpmqrt.c
│ ├── lapacke_dtpmqrt_work.c
│ ├── lapacke_dtpqrt.c
│ ├── lapacke_dtpqrt2.c
│ ├── lapacke_dtpqrt2_work.c
│ ├── lapacke_dtpqrt_work.c
│ ├── lapacke_dtprfb.c
│ ├── lapacke_dtprfb_work.c
│ ├── lapacke_dtprfs.c
│ ├── lapacke_dtprfs_work.c
│ ├── lapacke_dtptri.c
│ ├── lapacke_dtptri_work.c
│ ├── lapacke_dtptrs.c
│ ├── lapacke_dtptrs_work.c
│ ├── lapacke_dtpttf.c
│ ├── lapacke_dtpttf_work.c
│ ├── lapacke_dtpttr.c
│ ├── lapacke_dtpttr_work.c
│ ├── lapacke_dtr_nancheck.c
│ ├── lapacke_dtr_trans.c
│ ├── lapacke_dtrcon.c
│ ├── lapacke_dtrcon_work.c
│ ├── lapacke_dtrevc.c
│ ├── lapacke_dtrevc_work.c
│ ├── lapacke_dtrexc.c
│ ├── lapacke_dtrexc_work.c
│ ├── lapacke_dtrrfs.c
│ ├── lapacke_dtrrfs_work.c
│ ├── lapacke_dtrsen.c
│ ├── lapacke_dtrsen_work.c
│ ├── lapacke_dtrsna.c
│ ├── lapacke_dtrsna_work.c
│ ├── lapacke_dtrsyl.c
│ ├── lapacke_dtrsyl_work.c
│ ├── lapacke_dtrtri.c
│ ├── lapacke_dtrtri_work.c
│ ├── lapacke_dtrtrs.c
│ ├── lapacke_dtrtrs_work.c
│ ├── lapacke_dtrttf.c
│ ├── lapacke_dtrttf_work.c
│ ├── lapacke_dtrttp.c
│ ├── lapacke_dtrttp_work.c
│ ├── lapacke_dtzrzf.c
│ ├── lapacke_dtzrzf_work.c
│ ├── lapacke_ilaver.c
│ ├── lapacke_lsame.c
│ ├── lapacke_make_complex_double.c
│ ├── lapacke_make_complex_float.c
│ ├── lapacke_mangling.h
│ ├── lapacke_mangling_with_flags.h
│ ├── lapacke_s_nancheck.c
│ ├── lapacke_sbbcsd.c
│ ├── lapacke_sbbcsd_work.c
│ ├── lapacke_sbdsdc.c
│ ├── lapacke_sbdsdc_work.c
│ ├── lapacke_sbdsqr.c
│ ├── lapacke_sbdsqr_work.c
│ ├── lapacke_sdisna.c
│ ├── lapacke_sdisna_work.c
│ ├── lapacke_sgb_nancheck.c
│ ├── lapacke_sgb_trans.c
│ ├── lapacke_sgbbrd.c
│ ├── lapacke_sgbbrd_work.c
│ ├── lapacke_sgbcon.c
│ ├── lapacke_sgbcon_work.c
│ ├── lapacke_sgbequ.c
│ ├── lapacke_sgbequ_work.c
│ ├── lapacke_sgbequb.c
│ ├── lapacke_sgbequb_work.c
│ ├── lapacke_sgbrfs.c
│ ├── lapacke_sgbrfs_work.c
│ ├── lapacke_sgbsv.c
│ ├── lapacke_sgbsv_work.c
│ ├── lapacke_sgbsvx.c
│ ├── lapacke_sgbsvx_work.c
│ ├── lapacke_sgbtrf.c
│ ├── lapacke_sgbtrf_work.c
│ ├── lapacke_sgbtrs.c
│ ├── lapacke_sgbtrs_work.c
│ ├── lapacke_sge_nancheck.c
│ ├── lapacke_sge_trans.c
│ ├── lapacke_sgebak.c
│ ├── lapacke_sgebak_work.c
│ ├── lapacke_sgebal.c
│ ├── lapacke_sgebal_work.c
│ ├── lapacke_sgebrd.c
│ ├── lapacke_sgebrd_work.c
│ ├── lapacke_sgecon.c
│ ├── lapacke_sgecon_work.c
│ ├── lapacke_sgeequ.c
│ ├── lapacke_sgeequ_work.c
│ ├── lapacke_sgeequb.c
│ ├── lapacke_sgeequb_work.c
│ ├── lapacke_sgees.c
│ ├── lapacke_sgees_work.c
│ ├── lapacke_sgeesx.c
│ ├── lapacke_sgeesx_work.c
│ ├── lapacke_sgeev.c
│ ├── lapacke_sgeev_work.c
│ ├── lapacke_sgeevx.c
│ ├── lapacke_sgeevx_work.c
│ ├── lapacke_sgehrd.c
│ ├── lapacke_sgehrd_work.c
│ ├── lapacke_sgejsv.c
│ ├── lapacke_sgejsv_work.c
│ ├── lapacke_sgelq2.c
│ ├── lapacke_sgelq2_work.c
│ ├── lapacke_sgelqf.c
│ ├── lapacke_sgelqf_work.c
│ ├── lapacke_sgels.c
│ ├── lapacke_sgels_work.c
│ ├── lapacke_sgelsd.c
│ ├── lapacke_sgelsd_work.c
│ ├── lapacke_sgelss.c
│ ├── lapacke_sgelss_work.c
│ ├── lapacke_sgelsy.c
│ ├── lapacke_sgelsy_work.c
│ ├── lapacke_sgemqrt.c
│ ├── lapacke_sgemqrt_work.c
│ ├── lapacke_sgeqlf.c
│ ├── lapacke_sgeqlf_work.c
│ ├── lapacke_sgeqp3.c
│ ├── lapacke_sgeqp3_work.c
│ ├── lapacke_sgeqpf.c
│ ├── lapacke_sgeqpf_work.c
│ ├── lapacke_sgeqr2.c
│ ├── lapacke_sgeqr2_work.c
│ ├── lapacke_sgeqrf.c
│ ├── lapacke_sgeqrf_work.c
│ ├── lapacke_sgeqrfp.c
│ ├── lapacke_sgeqrfp_work.c
│ ├── lapacke_sgeqrt.c
│ ├── lapacke_sgeqrt2.c
│ ├── lapacke_sgeqrt2_work.c
│ ├── lapacke_sgeqrt3.c
│ ├── lapacke_sgeqrt3_work.c
│ ├── lapacke_sgeqrt_work.c
│ ├── lapacke_sgerfs.c
│ ├── lapacke_sgerfs_work.c
│ ├── lapacke_sgerqf.c
│ ├── lapacke_sgerqf_work.c
│ ├── lapacke_sgesdd.c
│ ├── lapacke_sgesdd_work.c
│ ├── lapacke_sgesv.c
│ ├── lapacke_sgesv_work.c
│ ├── lapacke_sgesvd.c
│ ├── lapacke_sgesvd_work.c
│ ├── lapacke_sgesvj.c
│ ├── lapacke_sgesvj_work.c
│ ├── lapacke_sgesvx.c
│ ├── lapacke_sgesvx_work.c
│ ├── lapacke_sgetf2.c
│ ├── lapacke_sgetf2_work.c
│ ├── lapacke_sgetrf.c
│ ├── lapacke_sgetrf_work.c
│ ├── lapacke_sgetri.c
│ ├── lapacke_sgetri_work.c
│ ├── lapacke_sgetrs.c
│ ├── lapacke_sgetrs_work.c
│ ├── lapacke_sgg_nancheck.c
│ ├── lapacke_sgg_trans.c
│ ├── lapacke_sggbak.c
│ ├── lapacke_sggbak_work.c
│ ├── lapacke_sggbal.c
│ ├── lapacke_sggbal_work.c
│ ├── lapacke_sgges.c
│ ├── lapacke_sgges_work.c
│ ├── lapacke_sggesx.c
│ ├── lapacke_sggesx_work.c
│ ├── lapacke_sggev.c
│ ├── lapacke_sggev_work.c
│ ├── lapacke_sggevx.c
│ ├── lapacke_sggevx_work.c
│ ├── lapacke_sggglm.c
│ ├── lapacke_sggglm_work.c
│ ├── lapacke_sgghrd.c
│ ├── lapacke_sgghrd_work.c
│ ├── lapacke_sgglse.c
│ ├── lapacke_sgglse_work.c
│ ├── lapacke_sggqrf.c
│ ├── lapacke_sggqrf_work.c
│ ├── lapacke_sggrqf.c
│ ├── lapacke_sggrqf_work.c
│ ├── lapacke_sggsvd.c
│ ├── lapacke_sggsvd_work.c
│ ├── lapacke_sggsvp.c
│ ├── lapacke_sggsvp_work.c
│ ├── lapacke_sgt_nancheck.c
│ ├── lapacke_sgtcon.c
│ ├── lapacke_sgtcon_work.c
│ ├── lapacke_sgtrfs.c
│ ├── lapacke_sgtrfs_work.c
│ ├── lapacke_sgtsv.c
│ ├── lapacke_sgtsv_work.c
│ ├── lapacke_sgtsvx.c
│ ├── lapacke_sgtsvx_work.c
│ ├── lapacke_sgttrf.c
│ ├── lapacke_sgttrf_work.c
│ ├── lapacke_sgttrs.c
│ ├── lapacke_sgttrs_work.c
│ ├── lapacke_shgeqz.c
│ ├── lapacke_shgeqz_work.c
│ ├── lapacke_shs_nancheck.c
│ ├── lapacke_shs_trans.c
│ ├── lapacke_shsein.c
│ ├── lapacke_shsein_work.c
│ ├── lapacke_shseqr.c
│ ├── lapacke_shseqr_work.c
│ ├── lapacke_slacpy.c
│ ├── lapacke_slacpy_work.c
│ ├── lapacke_slag2d.c
│ ├── lapacke_slag2d_work.c
│ ├── lapacke_slagge.c
│ ├── lapacke_slagge_work.c
│ ├── lapacke_slagsy.c
│ ├── lapacke_slagsy_work.c
│ ├── lapacke_slamch.c
│ ├── lapacke_slamch_work.c
│ ├── lapacke_slange.c
│ ├── lapacke_slange_work.c
│ ├── lapacke_slansy.c
│ ├── lapacke_slansy_work.c
│ ├── lapacke_slantr.c
│ ├── lapacke_slantr_work.c
│ ├── lapacke_slapmr.c
│ ├── lapacke_slapmr_work.c
│ ├── lapacke_slapy2.c
│ ├── lapacke_slapy2_work.c
│ ├── lapacke_slapy3.c
│ ├── lapacke_slapy3_work.c
│ ├── lapacke_slarfb.c
│ ├── lapacke_slarfb_work.c
│ ├── lapacke_slarfg.c
│ ├── lapacke_slarfg_work.c
│ ├── lapacke_slarft.c
│ ├── lapacke_slarft_work.c
│ ├── lapacke_slarfx.c
│ ├── lapacke_slarfx_work.c
│ ├── lapacke_slarnv.c
│ ├── lapacke_slarnv_work.c
│ ├── lapacke_slartgp.c
│ ├── lapacke_slartgp_work.c
│ ├── lapacke_slartgs.c
│ ├── lapacke_slartgs_work.c
│ ├── lapacke_slaset.c
│ ├── lapacke_slaset_work.c
│ ├── lapacke_slasrt.c
│ ├── lapacke_slasrt_work.c
│ ├── lapacke_slaswp.c
│ ├── lapacke_slaswp_work.c
│ ├── lapacke_slatms.c
│ ├── lapacke_slatms_work.c
│ ├── lapacke_slauum.c
│ ├── lapacke_slauum_work.c
│ ├── lapacke_sopgtr.c
│ ├── lapacke_sopgtr_work.c
│ ├── lapacke_sopmtr.c
│ ├── lapacke_sopmtr_work.c
│ ├── lapacke_sorbdb.c
│ ├── lapacke_sorbdb_work.c
│ ├── lapacke_sorcsd.c
│ ├── lapacke_sorcsd_work.c
│ ├── lapacke_sorgbr.c
│ ├── lapacke_sorgbr_work.c
│ ├── lapacke_sorghr.c
│ ├── lapacke_sorghr_work.c
│ ├── lapacke_sorglq.c
│ ├── lapacke_sorglq_work.c
│ ├── lapacke_sorgql.c
│ ├── lapacke_sorgql_work.c
│ ├── lapacke_sorgqr.c
│ ├── lapacke_sorgqr_work.c
│ ├── lapacke_sorgrq.c
│ ├── lapacke_sorgrq_work.c
│ ├── lapacke_sorgtr.c
│ ├── lapacke_sorgtr_work.c
│ ├── lapacke_sormbr.c
│ ├── lapacke_sormbr_work.c
│ ├── lapacke_sormhr.c
│ ├── lapacke_sormhr_work.c
│ ├── lapacke_sormlq.c
│ ├── lapacke_sormlq_work.c
│ ├── lapacke_sormql.c
│ ├── lapacke_sormql_work.c
│ ├── lapacke_sormqr.c
│ ├── lapacke_sormqr_work.c
│ ├── lapacke_sormrq.c
│ ├── lapacke_sormrq_work.c
│ ├── lapacke_sormrz.c
│ ├── lapacke_sormrz_work.c
│ ├── lapacke_sormtr.c
│ ├── lapacke_sormtr_work.c
│ ├── lapacke_spb_nancheck.c
│ ├── lapacke_spb_trans.c
│ ├── lapacke_spbcon.c
│ ├── lapacke_spbcon_work.c
│ ├── lapacke_spbequ.c
│ ├── lapacke_spbequ_work.c
│ ├── lapacke_spbrfs.c
│ ├── lapacke_spbrfs_work.c
│ ├── lapacke_spbstf.c
│ ├── lapacke_spbstf_work.c
│ ├── lapacke_spbsv.c
│ ├── lapacke_spbsv_work.c
│ ├── lapacke_spbsvx.c
│ ├── lapacke_spbsvx_work.c
│ ├── lapacke_spbtrf.c
│ ├── lapacke_spbtrf_work.c
│ ├── lapacke_spbtrs.c
│ ├── lapacke_spbtrs_work.c
│ ├── lapacke_spf_nancheck.c
│ ├── lapacke_spf_trans.c
│ ├── lapacke_spftrf.c
│ ├── lapacke_spftrf_work.c
│ ├── lapacke_spftri.c
│ ├── lapacke_spftri_work.c
│ ├── lapacke_spftrs.c
│ ├── lapacke_spftrs_work.c
│ ├── lapacke_spo_nancheck.c
│ ├── lapacke_spo_trans.c
│ ├── lapacke_spocon.c
│ ├── lapacke_spocon_work.c
│ ├── lapacke_spoequ.c
│ ├── lapacke_spoequ_work.c
│ ├── lapacke_spoequb.c
│ ├── lapacke_spoequb_work.c
│ ├── lapacke_sporfs.c
│ ├── lapacke_sporfs_work.c
│ ├── lapacke_sposv.c
│ ├── lapacke_sposv_work.c
│ ├── lapacke_sposvx.c
│ ├── lapacke_sposvx_work.c
│ ├── lapacke_spotrf.c
│ ├── lapacke_spotrf_work.c
│ ├── lapacke_spotri.c
│ ├── lapacke_spotri_work.c
│ ├── lapacke_spotrs.c
│ ├── lapacke_spotrs_work.c
│ ├── lapacke_spp_nancheck.c
│ ├── lapacke_spp_trans.c
│ ├── lapacke_sppcon.c
│ ├── lapacke_sppcon_work.c
│ ├── lapacke_sppequ.c
│ ├── lapacke_sppequ_work.c
│ ├── lapacke_spprfs.c
│ ├── lapacke_spprfs_work.c
│ ├── lapacke_sppsv.c
│ ├── lapacke_sppsv_work.c
│ ├── lapacke_sppsvx.c
│ ├── lapacke_sppsvx_work.c
│ ├── lapacke_spptrf.c
│ ├── lapacke_spptrf_work.c
│ ├── lapacke_spptri.c
│ ├── lapacke_spptri_work.c
│ ├── lapacke_spptrs.c
│ ├── lapacke_spptrs_work.c
│ ├── lapacke_spstrf.c
│ ├── lapacke_spstrf_work.c
│ ├── lapacke_spt_nancheck.c
│ ├── lapacke_sptcon.c
│ ├── lapacke_sptcon_work.c
│ ├── lapacke_spteqr.c
│ ├── lapacke_spteqr_work.c
│ ├── lapacke_sptrfs.c
│ ├── lapacke_sptrfs_work.c
│ ├── lapacke_sptsv.c
│ ├── lapacke_sptsv_work.c
│ ├── lapacke_sptsvx.c
│ ├── lapacke_sptsvx_work.c
│ ├── lapacke_spttrf.c
│ ├── lapacke_spttrf_work.c
│ ├── lapacke_spttrs.c
│ ├── lapacke_spttrs_work.c
│ ├── lapacke_ssb_nancheck.c
│ ├── lapacke_ssb_trans.c
│ ├── lapacke_ssbev.c
│ ├── lapacke_ssbev_work.c
│ ├── lapacke_ssbevd.c
│ ├── lapacke_ssbevd_work.c
│ ├── lapacke_ssbevx.c
│ ├── lapacke_ssbevx_work.c
│ ├── lapacke_ssbgst.c
│ ├── lapacke_ssbgst_work.c
│ ├── lapacke_ssbgv.c
│ ├── lapacke_ssbgv_work.c
│ ├── lapacke_ssbgvd.c
│ ├── lapacke_ssbgvd_work.c
│ ├── lapacke_ssbgvx.c
│ ├── lapacke_ssbgvx_work.c
│ ├── lapacke_ssbtrd.c
│ ├── lapacke_ssbtrd_work.c
│ ├── lapacke_ssfrk.c
│ ├── lapacke_ssfrk_work.c
│ ├── lapacke_ssp_nancheck.c
│ ├── lapacke_ssp_trans.c
│ ├── lapacke_sspcon.c
│ ├── lapacke_sspcon_work.c
│ ├── lapacke_sspev.c
│ ├── lapacke_sspev_work.c
│ ├── lapacke_sspevd.c
│ ├── lapacke_sspevd_work.c
│ ├── lapacke_sspevx.c
│ ├── lapacke_sspevx_work.c
│ ├── lapacke_sspgst.c
│ ├── lapacke_sspgst_work.c
│ ├── lapacke_sspgv.c
│ ├── lapacke_sspgv_work.c
│ ├── lapacke_sspgvd.c
│ ├── lapacke_sspgvd_work.c
│ ├── lapacke_sspgvx.c
│ ├── lapacke_sspgvx_work.c
│ ├── lapacke_ssprfs.c
│ ├── lapacke_ssprfs_work.c
│ ├── lapacke_sspsv.c
│ ├── lapacke_sspsv_work.c
│ ├── lapacke_sspsvx.c
│ ├── lapacke_sspsvx_work.c
│ ├── lapacke_ssptrd.c
│ ├── lapacke_ssptrd_work.c
│ ├── lapacke_ssptrf.c
│ ├── lapacke_ssptrf_work.c
│ ├── lapacke_ssptri.c
│ ├── lapacke_ssptri_work.c
│ ├── lapacke_ssptrs.c
│ ├── lapacke_ssptrs_work.c
│ ├── lapacke_sst_nancheck.c
│ ├── lapacke_sstebz.c
│ ├── lapacke_sstebz_work.c
│ ├── lapacke_sstedc.c
│ ├── lapacke_sstedc_work.c
│ ├── lapacke_sstegr.c
│ ├── lapacke_sstegr_work.c
│ ├── lapacke_sstein.c
│ ├── lapacke_sstein_work.c
│ ├── lapacke_sstemr.c
│ ├── lapacke_sstemr_work.c
│ ├── lapacke_ssteqr.c
│ ├── lapacke_ssteqr_work.c
│ ├── lapacke_ssterf.c
│ ├── lapacke_ssterf_work.c
│ ├── lapacke_sstev.c
│ ├── lapacke_sstev_work.c
│ ├── lapacke_sstevd.c
│ ├── lapacke_sstevd_work.c
│ ├── lapacke_sstevr.c
│ ├── lapacke_sstevr_work.c
│ ├── lapacke_sstevx.c
│ ├── lapacke_sstevx_work.c
│ ├── lapacke_ssy_nancheck.c
│ ├── lapacke_ssy_trans.c
│ ├── lapacke_ssycon.c
│ ├── lapacke_ssycon_work.c
│ ├── lapacke_ssyconv.c
│ ├── lapacke_ssyconv_work.c
│ ├── lapacke_ssyequb.c
│ ├── lapacke_ssyequb_work.c
│ ├── lapacke_ssyev.c
│ ├── lapacke_ssyev_work.c
│ ├── lapacke_ssyevd.c
│ ├── lapacke_ssyevd_work.c
│ ├── lapacke_ssyevr.c
│ ├── lapacke_ssyevr_work.c
│ ├── lapacke_ssyevx.c
│ ├── lapacke_ssyevx_work.c
│ ├── lapacke_ssygst.c
│ ├── lapacke_ssygst_work.c
│ ├── lapacke_ssygv.c
│ ├── lapacke_ssygv_work.c
│ ├── lapacke_ssygvd.c
│ ├── lapacke_ssygvd_work.c
│ ├── lapacke_ssygvx.c
│ ├── lapacke_ssygvx_work.c
│ ├── lapacke_ssyrfs.c
│ ├── lapacke_ssyrfs_work.c
│ ├── lapacke_ssysv.c
│ ├── lapacke_ssysv_work.c
│ ├── lapacke_ssysvx.c
│ ├── lapacke_ssysvx_work.c
│ ├── lapacke_ssyswapr.c
│ ├── lapacke_ssyswapr_work.c
│ ├── lapacke_ssytrd.c
│ ├── lapacke_ssytrd_work.c
│ ├── lapacke_ssytrf.c
│ ├── lapacke_ssytrf_work.c
│ ├── lapacke_ssytri.c
│ ├── lapacke_ssytri2.c
│ ├── lapacke_ssytri2_work.c
│ ├── lapacke_ssytri2x.c
│ ├── lapacke_ssytri2x_work.c
│ ├── lapacke_ssytri_work.c
│ ├── lapacke_ssytrs.c
│ ├── lapacke_ssytrs2.c
│ ├── lapacke_ssytrs2_work.c
│ ├── lapacke_ssytrs_work.c
│ ├── lapacke_stb_nancheck.c
│ ├── lapacke_stb_trans.c
│ ├── lapacke_stbcon.c
│ ├── lapacke_stbcon_work.c
│ ├── lapacke_stbrfs.c
│ ├── lapacke_stbrfs_work.c
│ ├── lapacke_stbtrs.c
│ ├── lapacke_stbtrs_work.c
│ ├── lapacke_stf_nancheck.c
│ ├── lapacke_stf_trans.c
│ ├── lapacke_stfsm.c
│ ├── lapacke_stfsm_work.c
│ ├── lapacke_stftri.c
│ ├── lapacke_stftri_work.c
│ ├── lapacke_stfttp.c
│ ├── lapacke_stfttp_work.c
│ ├── lapacke_stfttr.c
│ ├── lapacke_stfttr_work.c
│ ├── lapacke_stgevc.c
│ ├── lapacke_stgevc_work.c
│ ├── lapacke_stgexc.c
│ ├── lapacke_stgexc_work.c
│ ├── lapacke_stgsen.c
│ ├── lapacke_stgsen_work.c
│ ├── lapacke_stgsja.c
│ ├── lapacke_stgsja_work.c
│ ├── lapacke_stgsna.c
│ ├── lapacke_stgsna_work.c
│ ├── lapacke_stgsyl.c
│ ├── lapacke_stgsyl_work.c
│ ├── lapacke_stp_nancheck.c
│ ├── lapacke_stp_trans.c
│ ├── lapacke_stpcon.c
│ ├── lapacke_stpcon_work.c
│ ├── lapacke_stpmqrt.c
│ ├── lapacke_stpmqrt_work.c
│ ├── lapacke_stpqrt2.c
│ ├── lapacke_stpqrt2_work.c
│ ├── lapacke_stprfb.c
│ ├── lapacke_stprfb_work.c
│ ├── lapacke_stprfs.c
│ ├── lapacke_stprfs_work.c
│ ├── lapacke_stptri.c
│ ├── lapacke_stptri_work.c
│ ├── lapacke_stptrs.c
│ ├── lapacke_stptrs_work.c
│ ├── lapacke_stpttf.c
│ ├── lapacke_stpttf_work.c
│ ├── lapacke_stpttr.c
│ ├── lapacke_stpttr_work.c
│ ├── lapacke_str_nancheck.c
│ ├── lapacke_str_trans.c
│ ├── lapacke_strcon.c
│ ├── lapacke_strcon_work.c
│ ├── lapacke_strevc.c
│ ├── lapacke_strevc_work.c
│ ├── lapacke_strexc.c
│ ├── lapacke_strexc_work.c
│ ├── lapacke_strrfs.c
│ ├── lapacke_strrfs_work.c
│ ├── lapacke_strsen.c
│ ├── lapacke_strsen_work.c
│ ├── lapacke_strsna.c
│ ├── lapacke_strsna_work.c
│ ├── lapacke_strsyl.c
│ ├── lapacke_strsyl_work.c
│ ├── lapacke_strtri.c
│ ├── lapacke_strtri_work.c
│ ├── lapacke_strtrs.c
│ ├── lapacke_strtrs_work.c
│ ├── lapacke_strttf.c
│ ├── lapacke_strttf_work.c
│ ├── lapacke_strttp.c
│ ├── lapacke_strttp_work.c
│ ├── lapacke_stzrzf.c
│ ├── lapacke_stzrzf_work.c
│ ├── lapacke_utils.h
│ └── lapacke_xerbla.c
├── README
└── symbol.map
├── perf
├── logging.properties
├── pom.xml
├── results
│ ├── linux-arm-avian-ddot-f2jblas.csv.gz
│ ├── linux-arm-avian-dgemm-f2jblas.csv.gz
│ ├── linux-arm-avian-dgetri-f2jblas.csv.gz
│ ├── linux-arm-avian-linpack-f2jblas.csv.gz
│ ├── linux-arm-ddot-CBLAS.csv.gz
│ ├── linux-arm-ddot-atlas.csv.gz
│ ├── linux-arm-ddot-nativerefblas.csv.gz
│ ├── linux-arm-ddot-nativesystemblas.csv.gz
│ ├── linux-arm-dgemm-CBLAS.csv.gz
│ ├── linux-arm-dgemm-atlas.csv.gz
│ ├── linux-arm-dgemm-nativerefblas.csv.gz
│ ├── linux-arm-dgemm-nativesystemblas.csv.gz
│ ├── linux-arm-dgetri-CBLAS.csv.gz
│ ├── linux-arm-dgetri-atlas.csv.gz
│ ├── linux-arm-dgetri-nativerefblas.csv.gz
│ ├── linux-arm-dgetri-nativesystemblas.csv.gz
│ ├── linux-arm-jamvm-ddot-f2jblas.csv.gz
│ ├── linux-arm-jamvm-dgemm-f2jblas.csv.gz
│ ├── linux-arm-jamvm-dgetri-f2jblas.csv.gz
│ ├── linux-arm-jamvm-linpack-f2jblas.csv.gz
│ ├── linux-arm-jdk7-ddot-f2jblas.csv.gz
│ ├── linux-arm-jdk7-dgemm-f2jblas.csv.gz
│ ├── linux-arm-jdk7-dgetri-f2jblas.csv.gz
│ ├── linux-arm-jdk7-linpack-f2jblas.csv.gz
│ ├── linux-arm-jdk8-ddot-f2jblas.csv.gz
│ ├── linux-arm-jdk8-dgemm-f2jblas.csv.gz
│ ├── linux-arm-jdk8-dgetri-f2jblas.csv.gz
│ ├── linux-arm-jdk8-linpack-f2jblas.csv.gz
│ ├── linux-arm-linpack-nativerefblas.csv.gz
│ ├── linux-arm-linpack-nativesystemblas.csv.gz
│ ├── mac_os_x-x86_64-ddot-CBLAS.csv.gz
│ ├── mac_os_x-x86_64-ddot-atlas.csv.gz
│ ├── mac_os_x-x86_64-ddot-cuda.csv.gz
│ ├── mac_os_x-x86_64-ddot-cuda_nooh.csv.gz
│ ├── mac_os_x-x86_64-ddot-f2jblas.csv.gz
│ ├── mac_os_x-x86_64-ddot-mkl.csv.gz
│ ├── mac_os_x-x86_64-ddot-nativerefblas.csv.gz
│ ├── mac_os_x-x86_64-ddot-nativesystemblas.csv.gz
│ ├── mac_os_x-x86_64-ddot-veclib.csv.gz
│ ├── mac_os_x-x86_64-dgemm-CBLAS.csv.gz
│ ├── mac_os_x-x86_64-dgemm-atlas.csv.gz
│ ├── mac_os_x-x86_64-dgemm-cuda.csv.gz
│ ├── mac_os_x-x86_64-dgemm-cuda_nooh.csv.gz
│ ├── mac_os_x-x86_64-dgemm-f2jblas.csv.gz
│ ├── mac_os_x-x86_64-dgemm-mkl.csv.gz
│ ├── mac_os_x-x86_64-dgemm-nativerefblas.csv.gz
│ ├── mac_os_x-x86_64-dgemm-nativesystemblas.csv.gz
│ ├── mac_os_x-x86_64-dgemm-veclib.csv.gz
│ ├── mac_os_x-x86_64-dgetri-CBLAS.csv.gz
│ ├── mac_os_x-x86_64-dgetri-atlas.csv.gz
│ ├── mac_os_x-x86_64-dgetri-f2jblas.csv.gz
│ ├── mac_os_x-x86_64-dgetri-mkl.csv.gz
│ ├── mac_os_x-x86_64-dgetri-nativerefblas.csv.gz
│ ├── mac_os_x-x86_64-dgetri-nativesystemblas.csv.gz
│ ├── mac_os_x-x86_64-dgetri-veclib.csv.gz
│ ├── mac_os_x-x86_64-dsaupd-f2jblas.csv.gz
│ ├── mac_os_x-x86_64-dsaupd-nativerefblas.csv.gz
│ ├── mac_os_x-x86_64-dsaupd-nativesystemblas.csv.gz
│ ├── mac_os_x-x86_64-linpack-f2jblas.csv.gz
│ ├── mac_os_x-x86_64-linpack-nativerefblas.csv.gz
│ ├── mac_os_x-x86_64-linpack-nativesystemblas.csv.gz
│ └── plot.R
└── src
│ ├── main
│ ├── c
│ │ ├── clwrapper.c
│ │ ├── common.c
│ │ ├── common.h
│ │ ├── cudaddottest.c
│ │ ├── cudadgemmtest.c
│ │ ├── cudawrapper.c
│ │ ├── ddottest.c
│ │ ├── dgemmtest.c
│ │ └── dgetritest.c
│ └── java
│ │ └── com
│ │ └── github
│ │ └── fommil
│ │ └── netlib
│ │ ├── Benchmark.java
│ │ ├── Benchmarks.java
│ │ ├── Ddot.java
│ │ ├── Dgemm.java
│ │ ├── Dgetri.java
│ │ ├── Dsaupd.java
│ │ └── Linpack.java
│ └── test
│ └── java
│ └── com
│ └── github
│ └── fommil
│ └── netlib
│ ├── BLASTest.java
│ └── LAPACKTest.java
└── pom.xml
/.github/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | If you require support or wish to ensure the continuation of this library, you must get your company to respond to the Call For Funding
2 |
3 | https://github.com/fommil/netlib-java/wiki/CallForFunding
4 |
5 | I do not have the inclination to provide gratis assistance and this ticket will probably be closed without further comment.
6 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.class
2 |
3 | # Package Files #
4 | *.jar
5 | *.war
6 | *.ear
7 | *.iml
8 |
9 |
--------------------------------------------------------------------------------
/legacy/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 |
7 |
8 | com.github.fommil.netlib
9 | parent
10 | 1.2-SNAPSHOT
11 |
12 |
13 | com.googlecode.netlib-java
14 | netlib-java
15 | jar
16 |
17 |
18 |
19 | ${project.parent.groupId}
20 | core
21 | ${project.parent.version}
22 |
23 |
24 | org.projectlombok
25 | lombok
26 |
27 |
28 |
29 |
30 |
31 |
32 | org.apache.maven.plugins
33 | maven-compiler-plugin
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/legacy/src/main/java/org/netlib/arpack/ARPACK.java:
--------------------------------------------------------------------------------
1 | package org.netlib.arpack;
2 |
3 | import lombok.AccessLevel;
4 | import lombok.Delegate;
5 | import lombok.NoArgsConstructor;
6 | import lombok.extern.java.Log;
7 |
8 | /**
9 | * @deprecated use {@link com.github.fommil.netlib.ARPACK}
10 | */
11 | @Deprecated
12 | @NoArgsConstructor(access = AccessLevel.PRIVATE)
13 | @Log
14 | public class ARPACK extends com.github.fommil.netlib.ARPACK {
15 |
16 | private static final ARPACK INSTANCE = new ARPACK();
17 |
18 | /**
19 | * @return
20 | * @deprecated use {@link com.github.fommil.netlib.BLAS#getInstance()}
21 | */
22 | @Deprecated
23 | public static ARPACK getInstance() {
24 | log.warning("this API is deprecated and will be removed. Instead, use com.github.fommil.netlib.ARPACK");
25 | return INSTANCE;
26 | }
27 |
28 | @Delegate
29 | private final com.github.fommil.netlib.ARPACK DELEGATE = com.github.fommil.netlib.ARPACK.getInstance();
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/legacy/src/main/java/org/netlib/blas/BLAS.java:
--------------------------------------------------------------------------------
1 | package org.netlib.blas;
2 |
3 | import lombok.AccessLevel;
4 | import lombok.Delegate;
5 | import lombok.NoArgsConstructor;
6 | import lombok.extern.java.Log;
7 |
8 | /**
9 | * @deprecated use {@link com.github.fommil.netlib.BLAS}
10 | */
11 | @Deprecated
12 | @NoArgsConstructor(access = AccessLevel.PRIVATE)
13 | @Log
14 | public class BLAS extends com.github.fommil.netlib.BLAS {
15 |
16 | private static final BLAS INSTANCE = new BLAS();
17 |
18 | /**
19 | * @return
20 | * @deprecated use {@link com.github.fommil.netlib.BLAS#getInstance()}
21 | */
22 | @Deprecated
23 | public static BLAS getInstance() {
24 | log.warning("this API is deprecated and will be removed. Instead, use com.github.fommil.netlib.BLAS");
25 | return INSTANCE;
26 | }
27 |
28 | @Delegate
29 | private final com.github.fommil.netlib.BLAS DELEGATE = com.github.fommil.netlib.BLAS.getInstance();
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/legacy/src/main/java/org/netlib/lapack/LAPACK.java:
--------------------------------------------------------------------------------
1 | package org.netlib.lapack;
2 |
3 | import lombok.AccessLevel;
4 | import lombok.Delegate;
5 | import lombok.NoArgsConstructor;
6 | import lombok.extern.java.Log;
7 |
8 | /**
9 | * @deprecated use {@link com.github.fommil.netlib.LAPACK}
10 | */
11 | @Deprecated
12 | @NoArgsConstructor(access = AccessLevel.PRIVATE)
13 | @Log
14 | public class LAPACK extends com.github.fommil.netlib.LAPACK {
15 |
16 | private static final LAPACK INSTANCE = new LAPACK();
17 |
18 | /**
19 | * @return
20 | * @deprecated use {@link com.github.fommil.netlib.LAPACK#getInstance()}
21 | */
22 | @Deprecated
23 | public static LAPACK getInstance() {
24 | log.warning("this API is deprecated and will be removed. Instead, use com.github.fommil.netlib.LAPACK");
25 | return INSTANCE;
26 | }
27 |
28 | @Delegate
29 | private final com.github.fommil.netlib.LAPACK DELEGATE = com.github.fommil.netlib.LAPACK.getInstance();
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/native_ref/xbuilds/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 |
7 |
12 |
13 |
14 | com.github.fommil.netlib
15 | native_ref
16 | 1.2-SNAPSHOT
17 |
18 |
19 | native_ref-xbuilds
20 | pom
21 |
22 |
23 |
24 | aarch64-profile
25 |
26 | aarch64
27 |
28 |
29 | linux-aarch64
30 |
31 |
32 |
33 | ppc64le-profile
34 |
35 | ppc64le
36 |
37 |
38 | linux-ppc64le
39 |
40 |
41 |
42 | default-profile
43 |
44 | true
45 |
46 |
47 | linux-x86_64
48 | linux-i686
49 | linux-armhf
50 |
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/native_system/xbuilds/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 |
7 |
12 |
13 |
14 | com.github.fommil.netlib
15 | native_system
16 | 1.2-SNAPSHOT
17 |
18 |
19 | native_system-xbuilds
20 | pom
21 |
22 |
23 |
24 | aarch64-profile
25 |
26 | aarch64
27 |
28 |
29 | linux-aarch64
30 |
31 |
32 |
33 | ppc64le-profile
34 |
35 | ppc64le
36 |
37 |
38 | linux-ppc64le
39 |
40 |
41 |
42 | default-profile
43 |
44 | true
45 |
46 |
47 | linux-x86_64
48 | linux-i686
49 | linux-armhf
50 |
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/netlib/ARPACK/debug.h:
--------------------------------------------------------------------------------
1 | c
2 | c\SCCS Information: @(#)
3 | c FILE: debug.h SID: 2.3 DATE OF SID: 11/16/95 RELEASE: 2
4 | c
5 | c %---------------------------------%
6 | c | See debug.doc for documentation |
7 | c %---------------------------------%
8 | integer logfil, ndigit, mgetv0,
9 | & msaupd, msaup2, msaitr, mseigt, msapps, msgets, mseupd,
10 | & mnaupd, mnaup2, mnaitr, mneigh, mnapps, mngets, mneupd,
11 | & mcaupd, mcaup2, mcaitr, mceigh, mcapps, mcgets, mceupd
12 | common /debug/
13 | & logfil, ndigit, mgetv0,
14 | & msaupd, msaup2, msaitr, mseigt, msapps, msgets, mseupd,
15 | & mnaupd, mnaup2, mnaitr, mneigh, mnapps, mngets, mneupd,
16 | & mcaupd, mcaup2, mcaitr, mceigh, mcapps, mcgets, mceupd
17 |
--------------------------------------------------------------------------------
/netlib/ARPACK/dstatn.f:
--------------------------------------------------------------------------------
1 | c
2 | c %---------------------------------------------%
3 | c | Initialize statistic and timing information |
4 | c | for nonsymmetric Arnoldi code. |
5 | c %---------------------------------------------%
6 | c
7 | c\Author
8 | c Danny Sorensen Phuong Vu
9 | c Richard Lehoucq CRPC / Rice University
10 | c Dept. of Computational & Houston, Texas
11 | c Applied Mathematics
12 | c Rice University
13 | c Houston, Texas
14 | c
15 | c\SCCS Information: @(#)
16 | c FILE: statn.F SID: 2.4 DATE OF SID: 4/20/96 RELEASE: 2
17 | c
18 | subroutine dstatn
19 | c
20 | c %--------------------------------%
21 | c | See stat.doc for documentation |
22 | c %--------------------------------%
23 | c
24 | include 'stat.h'
25 | c
26 | c %-----------------------%
27 | c | Executable Statements |
28 | c %-----------------------%
29 | c
30 | nopx = 0
31 | nbx = 0
32 | nrorth = 0
33 | nitref = 0
34 | nrstrt = 0
35 | c
36 | tnaupd = 0.0D+0
37 | tnaup2 = 0.0D+0
38 | tnaitr = 0.0D+0
39 | tneigh = 0.0D+0
40 | tngets = 0.0D+0
41 | tnapps = 0.0D+0
42 | tnconv = 0.0D+0
43 | titref = 0.0D+0
44 | tgetv0 = 0.0D+0
45 | trvec = 0.0D+0
46 | c
47 | c %----------------------------------------------------%
48 | c | User time including reverse communication overhead |
49 | c %----------------------------------------------------%
50 | c
51 | tmvopx = 0.0D+0
52 | tmvbx = 0.0D+0
53 | c
54 | return
55 | c
56 | c
57 | c %---------------%
58 | c | End of dstatn |
59 | c %---------------%
60 | c
61 | end
62 |
--------------------------------------------------------------------------------
/netlib/ARPACK/dstats.f:
--------------------------------------------------------------------------------
1 | c
2 | c\SCCS Information: @(#)
3 | c FILE: stats.F SID: 2.1 DATE OF SID: 4/19/96 RELEASE: 2
4 | c %---------------------------------------------%
5 | c | Initialize statistic and timing information |
6 | c | for symmetric Arnoldi code. |
7 | c %---------------------------------------------%
8 |
9 | subroutine dstats
10 |
11 | c %--------------------------------%
12 | c | See stat.doc for documentation |
13 | c %--------------------------------%
14 | include 'stat.h'
15 |
16 | c %-----------------------%
17 | c | Executable Statements |
18 | c %-----------------------%
19 |
20 | nopx = 0
21 | nbx = 0
22 | nrorth = 0
23 | nitref = 0
24 | nrstrt = 0
25 |
26 | tsaupd = 0.0D+0
27 | tsaup2 = 0.0D+0
28 | tsaitr = 0.0D+0
29 | tseigt = 0.0D+0
30 | tsgets = 0.0D+0
31 | tsapps = 0.0D+0
32 | tsconv = 0.0D+0
33 | titref = 0.0D+0
34 | tgetv0 = 0.0D+0
35 | trvec = 0.0D+0
36 |
37 | c %----------------------------------------------------%
38 | c | User time including reverse communication overhead |
39 | c %----------------------------------------------------%
40 | tmvopx = 0.0D+0
41 | tmvbx = 0.0D+0
42 |
43 | return
44 | c
45 | c End of dstats
46 | c
47 | end
48 |
--------------------------------------------------------------------------------
/netlib/ARPACK/icnteq.f:
--------------------------------------------------------------------------------
1 | c
2 | c-----------------------------------------------------------------------
3 | c
4 | c Count the number of elements equal to a specified integer value.
5 | c
6 | integer function icnteq (n, array, value)
7 | c
8 | integer n, value
9 | integer array(*)
10 | c
11 | k = 0
12 | do 10 i = 1, n
13 | if (array(i) .eq. value) k = k + 1
14 | 10 continue
15 | icnteq = k
16 | c
17 | return
18 | end
19 |
--------------------------------------------------------------------------------
/netlib/ARPACK/icopy.f:
--------------------------------------------------------------------------------
1 | *--------------------------------------------------------------------
2 | *\Documentation
3 | *
4 | *\Name: ICOPY
5 | *
6 | *\Description:
7 | * ICOPY copies an integer vector lx to an integer vector ly.
8 | *
9 | *\Usage:
10 | * call icopy ( n, lx, inc, ly, incy )
11 | *
12 | *\Arguments:
13 | * n integer (input)
14 | * On entry, n is the number of elements of lx to be
15 | c copied to ly.
16 | *
17 | * lx integer array (input)
18 | * On entry, lx is the integer vector to be copied.
19 | *
20 | * incx integer (input)
21 | * On entry, incx is the increment between elements of lx.
22 | *
23 | * ly integer array (input)
24 | * On exit, ly is the integer vector that contains the
25 | * copy of lx.
26 | *
27 | * incy integer (input)
28 | * On entry, incy is the increment between elements of ly.
29 | *
30 | *\Enddoc
31 | *
32 | *--------------------------------------------------------------------
33 | *
34 | subroutine icopy( n, lx, incx, ly, incy )
35 | *
36 | * ----------------------------
37 | * Specifications for arguments
38 | * ----------------------------
39 | integer incx, incy, n
40 | integer lx( 1 ), ly( 1 )
41 | *
42 | * ----------------------------------
43 | * Specifications for local variables
44 | * ----------------------------------
45 | integer i, ix, iy
46 | *
47 | * --------------------------
48 | * First executable statement
49 | * --------------------------
50 | if( n.le.0 )
51 | $ return
52 | if( incx.eq.1 .and. incy.eq.1 )
53 | $ go to 20
54 | c
55 | c.....code for unequal increments or equal increments
56 | c not equal to 1
57 | ix = 1
58 | iy = 1
59 | if( incx.lt.0 )
60 | $ ix = ( -n+1 )*incx + 1
61 | if( incy.lt.0 )
62 | $ iy = ( -n+1 )*incy + 1
63 | do 10 i = 1, n
64 | ly( iy ) = lx( ix )
65 | ix = ix + incx
66 | iy = iy + incy
67 | 10 continue
68 | return
69 | c
70 | c.....code for both increments equal to 1
71 | c
72 | 20 continue
73 | do 30 i = 1, n
74 | ly( i ) = lx( i )
75 | 30 continue
76 | return
77 | end
78 |
--------------------------------------------------------------------------------
/netlib/ARPACK/iset.f:
--------------------------------------------------------------------------------
1 | c
2 | c-----------------------------------------------------------------------
3 | c
4 | c Only work with increment equal to 1 right now.
5 | c
6 | subroutine iset (n, value, array, inc)
7 | c
8 | integer n, value, inc
9 | integer array(*)
10 | c
11 | do 10 i = 1, n
12 | array(i) = value
13 | 10 continue
14 | c
15 | return
16 | end
17 |
--------------------------------------------------------------------------------
/netlib/ARPACK/iswap.f:
--------------------------------------------------------------------------------
1 | subroutine iswap (n,sx,incx,sy,incy)
2 | c
3 | c interchanges two vectors.
4 | c uses unrolled loops for increments equal to 1.
5 | c jack dongarra, linpack, 3/11/78.
6 | c
7 | integer sx(1),sy(1),stemp
8 | integer i,incx,incy,ix,iy,m,mp1,n
9 | c
10 | if(n.le.0)return
11 | if(incx.eq.1.and.incy.eq.1)go to 20
12 | c
13 | c code for unequal increments or equal increments not equal
14 | c to 1
15 | c
16 | ix = 1
17 | iy = 1
18 | if(incx.lt.0)ix = (-n+1)*incx + 1
19 | if(incy.lt.0)iy = (-n+1)*incy + 1
20 | do 10 i = 1,n
21 | stemp = sx(ix)
22 | sx(ix) = sy(iy)
23 | sy(iy) = stemp
24 | ix = ix + incx
25 | iy = iy + incy
26 | 10 continue
27 | return
28 | c
29 | c code for both increments equal to 1
30 | c
31 | c
32 | c clean-up loop
33 | c
34 | 20 m = mod(n,3)
35 | if( m .eq. 0 ) go to 40
36 | do 30 i = 1,m
37 | stemp = sx(i)
38 | sx(i) = sy(i)
39 | sy(i) = stemp
40 | 30 continue
41 | if( n .lt. 3 ) return
42 | 40 mp1 = m + 1
43 | do 50 i = mp1,n,3
44 | stemp = sx(i)
45 | sx(i) = sy(i)
46 | sy(i) = stemp
47 | stemp = sx(i + 1)
48 | sx(i + 1) = sy(i + 1)
49 | sy(i + 1) = stemp
50 | stemp = sx(i + 2)
51 | sx(i + 2) = sy(i + 2)
52 | sy(i + 2) = stemp
53 | 50 continue
54 | return
55 | end
56 |
--------------------------------------------------------------------------------
/netlib/ARPACK/second.f:
--------------------------------------------------------------------------------
1 | SUBROUTINE ARSCND( T )
2 | *
3 | REAL T
4 | *
5 | * -- LAPACK auxiliary routine (preliminary version) --
6 | * Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
7 | * Courant Institute, Argonne National Lab, and Rice University
8 | * July 26, 1991
9 | *
10 | * Purpose
11 | * =======
12 | *
13 | * SECOND returns the user time for a process in seconds.
14 | * This version gets the time from the system function ETIME.
15 | *
16 | * .. Local Scalars ..
17 | REAL T1
18 | * ..
19 | * .. Local Arrays ..
20 | REAL TARRAY( 2 )
21 | * ..
22 | * .. External Functions ..
23 | REAL ETIME
24 | INTRINSIC ETIME
25 | * ..
26 | * .. Executable Statements ..
27 | *
28 |
29 | T1 = ETIME( TARRAY )
30 | T = TARRAY( 1 )
31 |
32 | RETURN
33 | *
34 | * End of ARSCND
35 | *
36 | END
37 |
--------------------------------------------------------------------------------
/netlib/ARPACK/sstatn.f:
--------------------------------------------------------------------------------
1 | c
2 | c %---------------------------------------------%
3 | c | Initialize statistic and timing information |
4 | c | for nonsymmetric Arnoldi code. |
5 | c %---------------------------------------------%
6 | c
7 | c\Author
8 | c Danny Sorensen Phuong Vu
9 | c Richard Lehoucq CRPC / Rice University
10 | c Dept. of Computational & Houston, Texas
11 | c Applied Mathematics
12 | c Rice University
13 | c Houston, Texas
14 | c
15 | c\SCCS Information: @(#)
16 | c FILE: statn.F SID: 2.4 DATE OF SID: 4/20/96 RELEASE: 2
17 | c
18 | subroutine sstatn
19 | c
20 | c %--------------------------------%
21 | c | See stat.doc for documentation |
22 | c %--------------------------------%
23 | c
24 | include 'stat.h'
25 | c
26 | c %-----------------------%
27 | c | Executable Statements |
28 | c %-----------------------%
29 | c
30 | nopx = 0
31 | nbx = 0
32 | nrorth = 0
33 | nitref = 0
34 | nrstrt = 0
35 | c
36 | tnaupd = 0.0E+0
37 | tnaup2 = 0.0E+0
38 | tnaitr = 0.0E+0
39 | tneigh = 0.0E+0
40 | tngets = 0.0E+0
41 | tnapps = 0.0E+0
42 | tnconv = 0.0E+0
43 | titref = 0.0E+0
44 | tgetv0 = 0.0E+0
45 | trvec = 0.0E+0
46 | c
47 | c %----------------------------------------------------%
48 | c | User time including reverse communication overhead |
49 | c %----------------------------------------------------%
50 | c
51 | tmvopx = 0.0E+0
52 | tmvbx = 0.0E+0
53 | c
54 | return
55 | c
56 | c
57 | c %---------------%
58 | c | End of sstatn |
59 | c %---------------%
60 | c
61 | end
62 |
--------------------------------------------------------------------------------
/netlib/ARPACK/sstats.f:
--------------------------------------------------------------------------------
1 | c
2 | c\SCCS Information: @(#)
3 | c FILE: stats.F SID: 2.1 DATE OF SID: 4/19/96 RELEASE: 2
4 | c %---------------------------------------------%
5 | c | Initialize statistic and timing information |
6 | c | for symmetric Arnoldi code. |
7 | c %---------------------------------------------%
8 |
9 | subroutine sstats
10 |
11 | c %--------------------------------%
12 | c | See stat.doc for documentation |
13 | c %--------------------------------%
14 | include 'stat.h'
15 |
16 | c %-----------------------%
17 | c | Executable Statements |
18 | c %-----------------------%
19 |
20 | nopx = 0
21 | nbx = 0
22 | nrorth = 0
23 | nitref = 0
24 | nrstrt = 0
25 |
26 | tsaupd = 0.0E+0
27 | tsaup2 = 0.0E+0
28 | tsaitr = 0.0E+0
29 | tseigt = 0.0E+0
30 | tsgets = 0.0E+0
31 | tsapps = 0.0E+0
32 | tsconv = 0.0E+0
33 | titref = 0.0E+0
34 | tgetv0 = 0.0E+0
35 | trvec = 0.0E+0
36 |
37 | c %----------------------------------------------------%
38 | c | User time including reverse communication overhead |
39 | c %----------------------------------------------------%
40 | tmvopx = 0.0E+0
41 | tmvbx = 0.0E+0
42 |
43 | return
44 | c
45 | c End of sstats
46 | c
47 | end
48 |
--------------------------------------------------------------------------------
/netlib/ARPACK/stat.h:
--------------------------------------------------------------------------------
1 | c %--------------------------------%
2 | c | See stat.doc for documentation |
3 | c %--------------------------------%
4 | c
5 | c\SCCS Information: @(#)
6 | c FILE: stat.h SID: 2.2 DATE OF SID: 11/16/95 RELEASE: 2
7 | c
8 | real t0, t1, t2, t3, t4, t5
9 | save t0, t1, t2, t3, t4, t5
10 | c
11 | integer nopx, nbx, nrorth, nitref, nrstrt
12 | real tsaupd, tsaup2, tsaitr, tseigt, tsgets, tsapps, tsconv,
13 | & tnaupd, tnaup2, tnaitr, tneigh, tngets, tnapps, tnconv,
14 | & tcaupd, tcaup2, tcaitr, tceigh, tcgets, tcapps, tcconv,
15 | & tmvopx, tmvbx, tgetv0, titref, trvec
16 | common /timing/
17 | & nopx, nbx, nrorth, nitref, nrstrt,
18 | & tsaupd, tsaup2, tsaitr, tseigt, tsgets, tsapps, tsconv,
19 | & tnaupd, tnaup2, tnaitr, tneigh, tngets, tnapps, tnconv,
20 | & tcaupd, tcaup2, tcaitr, tceigh, tcgets, tcapps, tcconv,
21 | & tmvopx, tmvbx, tgetv0, titref, trvec
22 |
--------------------------------------------------------------------------------
/netlib/ARPACK/version.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | In the current version, the parameter KAPPA in the Kahan's test
4 | for orthogonality is set to 0.717, the same as used by Gragg & Reichel.
5 | However computational experience indicates that this is a little too
6 | strict and will frequently force reorthogonalization when it is not
7 | necessary to do so.
8 |
9 | Also the "moving boundary" idea is not currently activated in the nonsymmetric
10 | code since it is not conclusive that it's the right thing to do all the time.
11 | Requires further investigation.
12 |
13 | As of 02/01/93 Richard Lehoucq assumes software control of the codes from
14 | Phuong Vu. On 03/01/93 all the *.F files were migrated SCCS. The 1.1 version
15 | of codes are those received from Phuong Vu. The frozen version of 07/08/92
16 | is now considered version 1.1.
17 |
18 | Version 2.1 contains two new symmetric routines, sesrt and seupd.
19 | Changes as well as bug fixes for version 1.1 codes that were only corrected
20 | for programming bugs are version 1.2. These 1.2 versions will also be in version 2.1.
21 | Subroutine [d,s]saupd now requires slightly more workspace. See [d,s]saupd for the
22 | details.
23 |
24 | \SCCS Information: @(#)
25 | FILE: version.h SID: 2.3 DATE OF SID: 11/16/95 RELEASE: 2
26 |
27 | */
28 |
29 | #define VERSION_NUMBER ' 2.1'
30 | #define VERSION_DATE ' 11/15/95'
31 |
--------------------------------------------------------------------------------
/netlib/BLAS/dasum.f:
--------------------------------------------------------------------------------
1 | DOUBLE PRECISION FUNCTION DASUM(N,DX,INCX)
2 | * .. Scalar Arguments ..
3 | INTEGER INCX,N
4 | * ..
5 | * .. Array Arguments ..
6 | DOUBLE PRECISION DX(*)
7 | * ..
8 | *
9 | * Purpose
10 | * =======
11 | *
12 | * DASUM takes the sum of the absolute values.
13 | *
14 | * Further Details
15 | * ===============
16 | *
17 | * jack dongarra, linpack, 3/11/78.
18 | * modified 3/93 to return if incx .le. 0.
19 | * modified 12/3/93, array(1) declarations changed to array(*)
20 | *
21 | * =====================================================================
22 | *
23 | * .. Local Scalars ..
24 | DOUBLE PRECISION DTEMP
25 | INTEGER I,M,MP1,NINCX
26 | * ..
27 | * .. Intrinsic Functions ..
28 | INTRINSIC DABS,MOD
29 | * ..
30 | DASUM = 0.0d0
31 | DTEMP = 0.0d0
32 | IF (N.LE.0 .OR. INCX.LE.0) RETURN
33 | IF (INCX.EQ.1) THEN
34 | * code for increment equal to 1
35 | *
36 | *
37 | * clean-up loop
38 | *
39 | M = MOD(N,6)
40 | IF (M.NE.0) THEN
41 | DO I = 1,M
42 | DTEMP = DTEMP + DABS(DX(I))
43 | END DO
44 | IF (N.LT.6) THEN
45 | DASUM = DTEMP
46 | RETURN
47 | END IF
48 | END IF
49 | MP1 = M + 1
50 | DO I = MP1,N,6
51 | DTEMP = DTEMP + DABS(DX(I)) + DABS(DX(I+1)) +
52 | $ DABS(DX(I+2)) + DABS(DX(I+3)) +
53 | $ DABS(DX(I+4)) + DABS(DX(I+5))
54 | END DO
55 | ELSE
56 | *
57 | * code for increment not equal to 1
58 | *
59 | NINCX = N*INCX
60 | DO I = 1,NINCX,INCX
61 | DTEMP = DTEMP + DABS(DX(I))
62 | END DO
63 | END IF
64 | DASUM = DTEMP
65 | RETURN
66 | END
67 |
--------------------------------------------------------------------------------
/netlib/BLAS/daxpy.f:
--------------------------------------------------------------------------------
1 | SUBROUTINE DAXPY(N,DA,DX,INCX,DY,INCY)
2 | * .. Scalar Arguments ..
3 | DOUBLE PRECISION DA
4 | INTEGER INCX,INCY,N
5 | * ..
6 | * .. Array Arguments ..
7 | DOUBLE PRECISION DX(*),DY(*)
8 | * ..
9 | *
10 | * Purpose
11 | * =======
12 | *
13 | * DAXPY constant times a vector plus a vector.
14 | * uses unrolled loops for increments equal to one.
15 | *
16 | * Further Details
17 | * ===============
18 | *
19 | * jack dongarra, linpack, 3/11/78.
20 | * modified 12/3/93, array(1) declarations changed to array(*)
21 | *
22 | * =====================================================================
23 | *
24 | * .. Local Scalars ..
25 | INTEGER I,IX,IY,M,MP1
26 | * ..
27 | * .. Intrinsic Functions ..
28 | INTRINSIC MOD
29 | * ..
30 | IF (N.LE.0) RETURN
31 | IF (DA.EQ.0.0d0) RETURN
32 | IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN
33 | *
34 | * code for both increments equal to 1
35 | *
36 | *
37 | * clean-up loop
38 | *
39 | M = MOD(N,4)
40 | IF (M.NE.0) THEN
41 | DO I = 1,M
42 | DY(I) = DY(I) + DA*DX(I)
43 | END DO
44 | END IF
45 | IF (N.LT.4) RETURN
46 | MP1 = M + 1
47 | DO I = MP1,N,4
48 | DY(I) = DY(I) + DA*DX(I)
49 | DY(I+1) = DY(I+1) + DA*DX(I+1)
50 | DY(I+2) = DY(I+2) + DA*DX(I+2)
51 | DY(I+3) = DY(I+3) + DA*DX(I+3)
52 | END DO
53 | ELSE
54 | *
55 | * code for unequal increments or equal increments
56 | * not equal to 1
57 | *
58 | IX = 1
59 | IY = 1
60 | IF (INCX.LT.0) IX = (-N+1)*INCX + 1
61 | IF (INCY.LT.0) IY = (-N+1)*INCY + 1
62 | DO I = 1,N
63 | DY(IY) = DY(IY) + DA*DX(IX)
64 | IX = IX + INCX
65 | IY = IY + INCY
66 | END DO
67 | END IF
68 | RETURN
69 | END
70 |
--------------------------------------------------------------------------------
/netlib/BLAS/dcabs1.f:
--------------------------------------------------------------------------------
1 | DOUBLE PRECISION FUNCTION DCABS1(Z)
2 | * .. Scalar Arguments ..
3 | DOUBLE COMPLEX Z
4 | * ..
5 | * ..
6 | * Purpose
7 | * =======
8 | *
9 | * DCABS1 computes absolute value of a double complex number
10 | *
11 | * =====================================================================
12 | *
13 | * .. Intrinsic Functions ..
14 | INTRINSIC ABS,DBLE,DIMAG
15 | *
16 | DCABS1 = ABS(DBLE(Z)) + ABS(DIMAG(Z))
17 | RETURN
18 | END
19 |
--------------------------------------------------------------------------------
/netlib/BLAS/dcopy.f:
--------------------------------------------------------------------------------
1 | SUBROUTINE DCOPY(N,DX,INCX,DY,INCY)
2 | * .. Scalar Arguments ..
3 | INTEGER INCX,INCY,N
4 | * ..
5 | * .. Array Arguments ..
6 | DOUBLE PRECISION DX(*),DY(*)
7 | * ..
8 | *
9 | * Purpose
10 | * =======
11 | *
12 | * DCOPY copies a vector, x, to a vector, y.
13 | * uses unrolled loops for increments equal to one.
14 | *
15 | * Further Details
16 | * ===============
17 | *
18 | * jack dongarra, linpack, 3/11/78.
19 | * modified 12/3/93, array(1) declarations changed to array(*)
20 | *
21 | * =====================================================================
22 | *
23 | * .. Local Scalars ..
24 | INTEGER I,IX,IY,M,MP1
25 | * ..
26 | * .. Intrinsic Functions ..
27 | INTRINSIC MOD
28 | * ..
29 | IF (N.LE.0) RETURN
30 | IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN
31 | *
32 | * code for both increments equal to 1
33 | *
34 | *
35 | * clean-up loop
36 | *
37 | M = MOD(N,7)
38 | IF (M.NE.0) THEN
39 | DO I = 1,M
40 | DY(I) = DX(I)
41 | END DO
42 | IF (N.LT.7) RETURN
43 | END IF
44 | MP1 = M + 1
45 | DO I = MP1,N,7
46 | DY(I) = DX(I)
47 | DY(I+1) = DX(I+1)
48 | DY(I+2) = DX(I+2)
49 | DY(I+3) = DX(I+3)
50 | DY(I+4) = DX(I+4)
51 | DY(I+5) = DX(I+5)
52 | DY(I+6) = DX(I+6)
53 | END DO
54 | ELSE
55 | *
56 | * code for unequal increments or equal increments
57 | * not equal to 1
58 | *
59 | IX = 1
60 | IY = 1
61 | IF (INCX.LT.0) IX = (-N+1)*INCX + 1
62 | IF (INCY.LT.0) IY = (-N+1)*INCY + 1
63 | DO I = 1,N
64 | DY(IY) = DX(IX)
65 | IX = IX + INCX
66 | IY = IY + INCY
67 | END DO
68 | END IF
69 | RETURN
70 | END
71 |
--------------------------------------------------------------------------------
/netlib/BLAS/ddot.f:
--------------------------------------------------------------------------------
1 | DOUBLE PRECISION FUNCTION DDOT(N,DX,INCX,DY,INCY)
2 | * .. Scalar Arguments ..
3 | INTEGER INCX,INCY,N
4 | * ..
5 | * .. Array Arguments ..
6 | DOUBLE PRECISION DX(*),DY(*)
7 | * ..
8 | *
9 | * Purpose
10 | * =======
11 | *
12 | * DDOT forms the dot product of two vectors.
13 | * uses unrolled loops for increments equal to one.
14 | *
15 | * Further Details
16 | * ===============
17 | *
18 | * jack dongarra, linpack, 3/11/78.
19 | * modified 12/3/93, array(1) declarations changed to array(*)
20 | *
21 | * =====================================================================
22 | *
23 | * .. Local Scalars ..
24 | DOUBLE PRECISION DTEMP
25 | INTEGER I,IX,IY,M,MP1
26 | * ..
27 | * .. Intrinsic Functions ..
28 | INTRINSIC MOD
29 | * ..
30 | DDOT = 0.0d0
31 | DTEMP = 0.0d0
32 | IF (N.LE.0) RETURN
33 | IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN
34 | *
35 | * code for both increments equal to 1
36 | *
37 | *
38 | * clean-up loop
39 | *
40 | M = MOD(N,5)
41 | IF (M.NE.0) THEN
42 | DO I = 1,M
43 | DTEMP = DTEMP + DX(I)*DY(I)
44 | END DO
45 | IF (N.LT.5) THEN
46 | DDOT=DTEMP
47 | RETURN
48 | END IF
49 | END IF
50 | MP1 = M + 1
51 | DO I = MP1,N,5
52 | DTEMP = DTEMP + DX(I)*DY(I) + DX(I+1)*DY(I+1) +
53 | $ DX(I+2)*DY(I+2) + DX(I+3)*DY(I+3) + DX(I+4)*DY(I+4)
54 | END DO
55 | ELSE
56 | *
57 | * code for unequal increments or equal increments
58 | * not equal to 1
59 | *
60 | IX = 1
61 | IY = 1
62 | IF (INCX.LT.0) IX = (-N+1)*INCX + 1
63 | IF (INCY.LT.0) IY = (-N+1)*INCY + 1
64 | DO I = 1,N
65 | DTEMP = DTEMP + DX(IX)*DY(IY)
66 | IX = IX + INCX
67 | IY = IY + INCY
68 | END DO
69 | END IF
70 | DDOT = DTEMP
71 | RETURN
72 | END
73 |
--------------------------------------------------------------------------------
/netlib/BLAS/dnrm2.f:
--------------------------------------------------------------------------------
1 | DOUBLE PRECISION FUNCTION DNRM2(N,X,INCX)
2 | * .. Scalar Arguments ..
3 | INTEGER INCX,N
4 | * ..
5 | * .. Array Arguments ..
6 | DOUBLE PRECISION X(*)
7 | * ..
8 | *
9 | * Purpose
10 | * =======
11 | *
12 | * DNRM2 returns the euclidean norm of a vector via the function
13 | * name, so that
14 | *
15 | * DNRM2 := sqrt( x'*x )
16 | *
17 | * Further Details
18 | * ===============
19 | *
20 | * -- This version written on 25-October-1982.
21 | * Modified on 14-October-1993 to inline the call to DLASSQ.
22 | * Sven Hammarling, Nag Ltd.
23 | *
24 | * =====================================================================
25 | *
26 | * .. Parameters ..
27 | DOUBLE PRECISION ONE,ZERO
28 | PARAMETER (ONE=1.0D+0,ZERO=0.0D+0)
29 | * ..
30 | * .. Local Scalars ..
31 | DOUBLE PRECISION ABSXI,NORM,SCALE,SSQ
32 | INTEGER IX
33 | * ..
34 | * .. Intrinsic Functions ..
35 | INTRINSIC ABS,SQRT
36 | * ..
37 | IF (N.LT.1 .OR. INCX.LT.1) THEN
38 | NORM = ZERO
39 | ELSE IF (N.EQ.1) THEN
40 | NORM = ABS(X(1))
41 | ELSE
42 | SCALE = ZERO
43 | SSQ = ONE
44 | * The following loop is equivalent to this call to the LAPACK
45 | * auxiliary routine:
46 | * CALL DLASSQ( N, X, INCX, SCALE, SSQ )
47 | *
48 | DO 10 IX = 1,1 + (N-1)*INCX,INCX
49 | IF (X(IX).NE.ZERO) THEN
50 | ABSXI = ABS(X(IX))
51 | IF (SCALE.LT.ABSXI) THEN
52 | SSQ = ONE + SSQ* (SCALE/ABSXI)**2
53 | SCALE = ABSXI
54 | ELSE
55 | SSQ = SSQ + (ABSXI/SCALE)**2
56 | END IF
57 | END IF
58 | 10 CONTINUE
59 | NORM = SCALE*SQRT(SSQ)
60 | END IF
61 | *
62 | DNRM2 = NORM
63 | RETURN
64 | *
65 | * End of DNRM2.
66 | *
67 | END
68 |
--------------------------------------------------------------------------------
/netlib/BLAS/drot.f:
--------------------------------------------------------------------------------
1 | SUBROUTINE DROT(N,DX,INCX,DY,INCY,C,S)
2 | * .. Scalar Arguments ..
3 | DOUBLE PRECISION C,S
4 | INTEGER INCX,INCY,N
5 | * ..
6 | * .. Array Arguments ..
7 | DOUBLE PRECISION DX(*),DY(*)
8 | * ..
9 | *
10 | * Purpose
11 | * =======
12 | *
13 | * DROT applies a plane rotation.
14 | *
15 | * Further Details
16 | * ===============
17 | *
18 | * jack dongarra, linpack, 3/11/78.
19 | * modified 12/3/93, array(1) declarations changed to array(*)
20 | *
21 | * =====================================================================
22 | *
23 | * .. Local Scalars ..
24 | DOUBLE PRECISION DTEMP
25 | INTEGER I,IX,IY
26 | * ..
27 | IF (N.LE.0) RETURN
28 | IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN
29 | *
30 | * code for both increments equal to 1
31 | *
32 | DO I = 1,N
33 | DTEMP = C*DX(I) + S*DY(I)
34 | DY(I) = C*DY(I) - S*DX(I)
35 | DX(I) = DTEMP
36 | END DO
37 | ELSE
38 | *
39 | * code for unequal increments or equal increments not equal
40 | * to 1
41 | *
42 | IX = 1
43 | IY = 1
44 | IF (INCX.LT.0) IX = (-N+1)*INCX + 1
45 | IF (INCY.LT.0) IY = (-N+1)*INCY + 1
46 | DO I = 1,N
47 | DTEMP = C*DX(IX) + S*DY(IY)
48 | DY(IY) = C*DY(IY) - S*DX(IX)
49 | DX(IX) = DTEMP
50 | IX = IX + INCX
51 | IY = IY + INCY
52 | END DO
53 | END IF
54 | RETURN
55 | END
56 |
--------------------------------------------------------------------------------
/netlib/BLAS/drotg.f:
--------------------------------------------------------------------------------
1 | SUBROUTINE DROTG(DA,DB,C,S)
2 | * .. Scalar Arguments ..
3 | DOUBLE PRECISION C,DA,DB,S
4 | * ..
5 | *
6 | * Purpose
7 | * =======
8 | *
9 | * DROTG construct givens plane rotation.
10 | *
11 | * Further Details
12 | * ===============
13 | *
14 | * jack dongarra, linpack, 3/11/78.
15 | *
16 | * =====================================================================
17 | *
18 | * .. Local Scalars ..
19 | DOUBLE PRECISION R,ROE,SCALE,Z
20 | * ..
21 | * .. Intrinsic Functions ..
22 | INTRINSIC DABS,DSIGN,DSQRT
23 | * ..
24 | ROE = DB
25 | IF (DABS(DA).GT.DABS(DB)) ROE = DA
26 | SCALE = DABS(DA) + DABS(DB)
27 | IF (SCALE.EQ.0.0d0) THEN
28 | C = 1.0d0
29 | S = 0.0d0
30 | R = 0.0d0
31 | Z = 0.0d0
32 | ELSE
33 | R = SCALE*DSQRT((DA/SCALE)**2+ (DB/SCALE)**2)
34 | R = DSIGN(1.0d0,ROE)*R
35 | C = DA/R
36 | S = DB/R
37 | Z = 1.0d0
38 | IF (DABS(DA).GT.DABS(DB)) Z = S
39 | IF (DABS(DB).GE.DABS(DA) .AND. C.NE.0.0d0) Z = 1.0d0/C
40 | END IF
41 | DA = R
42 | DB = Z
43 | RETURN
44 | END
45 |
--------------------------------------------------------------------------------
/netlib/BLAS/dscal.f:
--------------------------------------------------------------------------------
1 | SUBROUTINE DSCAL(N,DA,DX,INCX)
2 | * .. Scalar Arguments ..
3 | DOUBLE PRECISION DA
4 | INTEGER INCX,N
5 | * ..
6 | * .. Array Arguments ..
7 | DOUBLE PRECISION DX(*)
8 | * ..
9 | *
10 | * Purpose
11 | * =======
12 | *
13 | * DSCAL scales a vector by a constant.
14 | * uses unrolled loops for increment equal to one.
15 | *
16 | * Further Details
17 | * ===============
18 | *
19 | * jack dongarra, linpack, 3/11/78.
20 | * modified 3/93 to return if incx .le. 0.
21 | * modified 12/3/93, array(1) declarations changed to array(*)
22 | *
23 | * =====================================================================
24 | *
25 | * .. Local Scalars ..
26 | INTEGER I,M,MP1,NINCX
27 | * ..
28 | * .. Intrinsic Functions ..
29 | INTRINSIC MOD
30 | * ..
31 | IF (N.LE.0 .OR. INCX.LE.0) RETURN
32 | IF (INCX.EQ.1) THEN
33 | *
34 | * code for increment equal to 1
35 | *
36 | *
37 | * clean-up loop
38 | *
39 | M = MOD(N,5)
40 | IF (M.NE.0) THEN
41 | DO I = 1,M
42 | DX(I) = DA*DX(I)
43 | END DO
44 | IF (N.LT.5) RETURN
45 | END IF
46 | MP1 = M + 1
47 | DO I = MP1,N,5
48 | DX(I) = DA*DX(I)
49 | DX(I+1) = DA*DX(I+1)
50 | DX(I+2) = DA*DX(I+2)
51 | DX(I+3) = DA*DX(I+3)
52 | DX(I+4) = DA*DX(I+4)
53 | END DO
54 | ELSE
55 | *
56 | * code for increment not equal to 1
57 | *
58 | NINCX = N*INCX
59 | DO I = 1,NINCX,INCX
60 | DX(I) = DA*DX(I)
61 | END DO
62 | END IF
63 | RETURN
64 | END
65 |
--------------------------------------------------------------------------------
/netlib/BLAS/dswap.f:
--------------------------------------------------------------------------------
1 | SUBROUTINE DSWAP(N,DX,INCX,DY,INCY)
2 | * .. Scalar Arguments ..
3 | INTEGER INCX,INCY,N
4 | * ..
5 | * .. Array Arguments ..
6 | DOUBLE PRECISION DX(*),DY(*)
7 | * ..
8 | *
9 | * Purpose
10 | * =======
11 | *
12 | * interchanges two vectors.
13 | * uses unrolled loops for increments equal one.
14 | *
15 | * Further Details
16 | * ===============
17 | *
18 | * jack dongarra, linpack, 3/11/78.
19 | * modified 12/3/93, array(1) declarations changed to array(*)
20 | *
21 | * =====================================================================
22 | *
23 | * .. Local Scalars ..
24 | DOUBLE PRECISION DTEMP
25 | INTEGER I,IX,IY,M,MP1
26 | * ..
27 | * .. Intrinsic Functions ..
28 | INTRINSIC MOD
29 | * ..
30 | IF (N.LE.0) RETURN
31 | IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN
32 | *
33 | * code for both increments equal to 1
34 | *
35 | *
36 | * clean-up loop
37 | *
38 | M = MOD(N,3)
39 | IF (M.NE.0) THEN
40 | DO I = 1,M
41 | DTEMP = DX(I)
42 | DX(I) = DY(I)
43 | DY(I) = DTEMP
44 | END DO
45 | IF (N.LT.3) RETURN
46 | END IF
47 | MP1 = M + 1
48 | DO I = MP1,N,3
49 | DTEMP = DX(I)
50 | DX(I) = DY(I)
51 | DY(I) = DTEMP
52 | DTEMP = DX(I+1)
53 | DX(I+1) = DY(I+1)
54 | DY(I+1) = DTEMP
55 | DTEMP = DX(I+2)
56 | DX(I+2) = DY(I+2)
57 | DY(I+2) = DTEMP
58 | END DO
59 | ELSE
60 | *
61 | * code for unequal increments or equal increments not equal
62 | * to 1
63 | *
64 | IX = 1
65 | IY = 1
66 | IF (INCX.LT.0) IX = (-N+1)*INCX + 1
67 | IF (INCY.LT.0) IY = (-N+1)*INCY + 1
68 | DO I = 1,N
69 | DTEMP = DX(IX)
70 | DX(IX) = DY(IY)
71 | DY(IY) = DTEMP
72 | IX = IX + INCX
73 | IY = IY + INCY
74 | END DO
75 | END IF
76 | RETURN
77 | END
78 |
--------------------------------------------------------------------------------
/netlib/BLAS/dzasum.f:
--------------------------------------------------------------------------------
1 | DOUBLE PRECISION FUNCTION DZASUM(N,ZX,INCX)
2 | * .. Scalar Arguments ..
3 | INTEGER INCX,N
4 | * ..
5 | * .. Array Arguments ..
6 | DOUBLE COMPLEX ZX(*)
7 | * ..
8 | *
9 | * Purpose
10 | * =======
11 | *
12 | * DZASUM takes the sum of the absolute values.
13 | *
14 | * Further Details
15 | * ===============
16 | *
17 | * jack dongarra, 3/11/78.
18 | * modified 3/93 to return if incx .le. 0.
19 | * modified 12/3/93, array(1) declarations changed to array(*)
20 | *
21 | * =====================================================================
22 | *
23 | * .. Local Scalars ..
24 | DOUBLE PRECISION STEMP
25 | INTEGER I,NINCX
26 | * ..
27 | * .. External Functions ..
28 | DOUBLE PRECISION DCABS1
29 | EXTERNAL DCABS1
30 | * ..
31 | DZASUM = 0.0d0
32 | STEMP = 0.0d0
33 | IF (N.LE.0 .OR. INCX.LE.0) RETURN
34 | IF (INCX.EQ.1) THEN
35 | *
36 | * code for increment equal to 1
37 | *
38 | DO I = 1,N
39 | STEMP = STEMP + DCABS1(ZX(I))
40 | END DO
41 | ELSE
42 | *
43 | * code for increment not equal to 1
44 | *
45 | NINCX = N*INCX
46 | DO I = 1,NINCX,INCX
47 | STEMP = STEMP + DCABS1(ZX(I))
48 | END DO
49 | END IF
50 | DZASUM = STEMP
51 | RETURN
52 | END
53 |
--------------------------------------------------------------------------------
/netlib/BLAS/dznrm2.f:
--------------------------------------------------------------------------------
1 | DOUBLE PRECISION FUNCTION DZNRM2(N,X,INCX)
2 | * .. Scalar Arguments ..
3 | INTEGER INCX,N
4 | * ..
5 | * .. Array Arguments ..
6 | DOUBLE COMPLEX X(*)
7 | * ..
8 | *
9 | * Purpose
10 | * =======
11 | *
12 | * DZNRM2 returns the euclidean norm of a vector via the function
13 | * name, so that
14 | *
15 | * DZNRM2 := sqrt( x**H*x )
16 | *
17 | * Further Details
18 | * ===============
19 | *
20 | * -- This version written on 25-October-1982.
21 | * Modified on 14-October-1993 to inline the call to ZLASSQ.
22 | * Sven Hammarling, Nag Ltd.
23 | *
24 | * =====================================================================
25 | *
26 | * .. Parameters ..
27 | DOUBLE PRECISION ONE,ZERO
28 | PARAMETER (ONE=1.0D+0,ZERO=0.0D+0)
29 | * ..
30 | * .. Local Scalars ..
31 | DOUBLE PRECISION NORM,SCALE,SSQ,TEMP
32 | INTEGER IX
33 | * ..
34 | * .. Intrinsic Functions ..
35 | INTRINSIC ABS,DBLE,DIMAG,SQRT
36 | * ..
37 | IF (N.LT.1 .OR. INCX.LT.1) THEN
38 | NORM = ZERO
39 | ELSE
40 | SCALE = ZERO
41 | SSQ = ONE
42 | * The following loop is equivalent to this call to the LAPACK
43 | * auxiliary routine:
44 | * CALL ZLASSQ( N, X, INCX, SCALE, SSQ )
45 | *
46 | DO 10 IX = 1,1 + (N-1)*INCX,INCX
47 | IF (DBLE(X(IX)).NE.ZERO) THEN
48 | TEMP = ABS(DBLE(X(IX)))
49 | IF (SCALE.LT.TEMP) THEN
50 | SSQ = ONE + SSQ* (SCALE/TEMP)**2
51 | SCALE = TEMP
52 | ELSE
53 | SSQ = SSQ + (TEMP/SCALE)**2
54 | END IF
55 | END IF
56 | IF (DIMAG(X(IX)).NE.ZERO) THEN
57 | TEMP = ABS(DIMAG(X(IX)))
58 | IF (SCALE.LT.TEMP) THEN
59 | SSQ = ONE + SSQ* (SCALE/TEMP)**2
60 | SCALE = TEMP
61 | ELSE
62 | SSQ = SSQ + (TEMP/SCALE)**2
63 | END IF
64 | END IF
65 | 10 CONTINUE
66 | NORM = SCALE*SQRT(SSQ)
67 | END IF
68 | *
69 | DZNRM2 = NORM
70 | RETURN
71 | *
72 | * End of DZNRM2.
73 | *
74 | END
75 |
--------------------------------------------------------------------------------
/netlib/BLAS/icamax.f:
--------------------------------------------------------------------------------
1 | INTEGER FUNCTION ICAMAX(N,CX,INCX)
2 | * .. Scalar Arguments ..
3 | INTEGER INCX,N
4 | * ..
5 | * .. Array Arguments ..
6 | COMPLEX CX(*)
7 | * ..
8 | *
9 | * Purpose
10 | * =======
11 | *
12 | * ICAMAX finds the index of element having max. absolute value.
13 | *
14 | * Further Details
15 | * ===============
16 | *
17 | * jack dongarra, linpack, 3/11/78.
18 | * modified 3/93 to return if incx .le. 0.
19 | * modified 12/3/93, array(1) declarations changed to array(*)
20 | *
21 | * =====================================================================
22 | *
23 | * .. Local Scalars ..
24 | REAL SMAX
25 | INTEGER I,IX
26 | * ..
27 | * .. External Functions ..
28 | REAL SCABS1
29 | EXTERNAL SCABS1
30 | * ..
31 | ICAMAX = 0
32 | IF (N.LT.1 .OR. INCX.LE.0) RETURN
33 | ICAMAX = 1
34 | IF (N.EQ.1) RETURN
35 | IF (INCX.EQ.1) THEN
36 | *
37 | * code for increment equal to 1
38 | *
39 | SMAX = SCABS1(CX(1))
40 | DO I = 2,N
41 | IF (SCABS1(CX(I)).GT.SMAX) THEN
42 | ICAMAX = I
43 | SMAX = SCABS1(CX(I))
44 | END IF
45 | END DO
46 | ELSE
47 | *
48 | * code for increment not equal to 1
49 | *
50 | IX = 1
51 | SMAX = SCABS1(CX(1))
52 | IX = IX + INCX
53 | DO I = 2,N
54 | IF (SCABS1(CX(IX)).GT.SMAX) THEN
55 | ICAMAX = I
56 | SMAX = SCABS1(CX(IX))
57 | END IF
58 | IX = IX + INCX
59 | END DO
60 | END IF
61 | RETURN
62 | END
63 |
--------------------------------------------------------------------------------
/netlib/BLAS/idamax.f:
--------------------------------------------------------------------------------
1 | INTEGER FUNCTION IDAMAX(N,DX,INCX)
2 | * .. Scalar Arguments ..
3 | INTEGER INCX,N
4 | * ..
5 | * .. Array Arguments ..
6 | DOUBLE PRECISION DX(*)
7 | * ..
8 | *
9 | * Purpose
10 | * =======
11 | *
12 | * IDAMAX finds the index of element having max. absolute value.
13 | *
14 | * Further Details
15 | * ===============
16 | *
17 | * jack dongarra, linpack, 3/11/78.
18 | * modified 3/93 to return if incx .le. 0.
19 | * modified 12/3/93, array(1) declarations changed to array(*)
20 | *
21 | * =====================================================================
22 | *
23 | * .. Local Scalars ..
24 | DOUBLE PRECISION DMAX
25 | INTEGER I,IX
26 | * ..
27 | * .. Intrinsic Functions ..
28 | INTRINSIC DABS
29 | * ..
30 | IDAMAX = 0
31 | IF (N.LT.1 .OR. INCX.LE.0) RETURN
32 | IDAMAX = 1
33 | IF (N.EQ.1) RETURN
34 | IF (INCX.EQ.1) THEN
35 | *
36 | * code for increment equal to 1
37 | *
38 | DMAX = DABS(DX(1))
39 | DO I = 2,N
40 | IF (DABS(DX(I)).GT.DMAX) THEN
41 | IDAMAX = I
42 | DMAX = DABS(DX(I))
43 | END IF
44 | END DO
45 | ELSE
46 | *
47 | * code for increment not equal to 1
48 | *
49 | IX = 1
50 | DMAX = DABS(DX(1))
51 | IX = IX + INCX
52 | DO I = 2,N
53 | IF (DABS(DX(IX)).GT.DMAX) THEN
54 | IDAMAX = I
55 | DMAX = DABS(DX(IX))
56 | END IF
57 | IX = IX + INCX
58 | END DO
59 | END IF
60 | RETURN
61 | END
62 |
--------------------------------------------------------------------------------
/netlib/BLAS/isamax.f:
--------------------------------------------------------------------------------
1 | INTEGER FUNCTION ISAMAX(N,SX,INCX)
2 | * .. Scalar Arguments ..
3 | INTEGER INCX,N
4 | * ..
5 | * .. Array Arguments ..
6 | REAL SX(*)
7 | * ..
8 | *
9 | * Purpose
10 | * =======
11 | *
12 | * ISAMAX finds the index of element having max. absolute value.
13 | *
14 | * Further Details
15 | * ===============
16 | *
17 | * jack dongarra, linpack, 3/11/78.
18 | * modified 3/93 to return if incx .le. 0.
19 | * modified 12/3/93, array(1) declarations changed to array(*)
20 | *
21 | * =====================================================================
22 | *
23 | * .. Local Scalars ..
24 | REAL SMAX
25 | INTEGER I,IX
26 | * ..
27 | * .. Intrinsic Functions ..
28 | INTRINSIC ABS
29 | * ..
30 | ISAMAX = 0
31 | IF (N.LT.1 .OR. INCX.LE.0) RETURN
32 | ISAMAX = 1
33 | IF (N.EQ.1) RETURN
34 | IF (INCX.EQ.1) THEN
35 | *
36 | * code for increment equal to 1
37 | *
38 | SMAX = ABS(SX(1))
39 | DO I = 2,N
40 | IF (ABS(SX(I)).GT.SMAX) THEN
41 | ISAMAX = I
42 | SMAX = ABS(SX(I))
43 | END IF
44 | END DO
45 | ELSE
46 | *
47 | * code for increment not equal to 1
48 | *
49 | IX = 1
50 | SMAX = ABS(SX(1))
51 | IX = IX + INCX
52 | DO I = 2,N
53 | IF (ABS(SX(IX)).GT.SMAX) THEN
54 | ISAMAX = I
55 | SMAX = ABS(SX(IX))
56 | END IF
57 | IX = IX + INCX
58 | END DO
59 | END IF
60 | RETURN
61 | END
62 |
--------------------------------------------------------------------------------
/netlib/BLAS/izamax.f:
--------------------------------------------------------------------------------
1 | INTEGER FUNCTION IZAMAX(N,ZX,INCX)
2 | * .. Scalar Arguments ..
3 | INTEGER INCX,N
4 | * ..
5 | * .. Array Arguments ..
6 | DOUBLE COMPLEX ZX(*)
7 | * ..
8 | *
9 | * Purpose
10 | * =======
11 | *
12 | * IZAMAX finds the index of element having max. absolute value.
13 | *
14 | * Further Details
15 | * ===============
16 | *
17 | * jack dongarra, 1/15/85.
18 | * modified 3/93 to return if incx .le. 0.
19 | * modified 12/3/93, array(1) declarations changed to array(*)
20 | *
21 | * =====================================================================
22 | *
23 | * .. Local Scalars ..
24 | DOUBLE PRECISION DMAX
25 | INTEGER I,IX
26 | * ..
27 | * .. External Functions ..
28 | DOUBLE PRECISION DCABS1
29 | EXTERNAL DCABS1
30 | * ..
31 | IZAMAX = 0
32 | IF (N.LT.1 .OR. INCX.LE.0) RETURN
33 | IZAMAX = 1
34 | IF (N.EQ.1) RETURN
35 | IF (INCX.EQ.1) THEN
36 | *
37 | * code for increment equal to 1
38 | *
39 | DMAX = DCABS1(ZX(1))
40 | DO I = 2,N
41 | IF (DCABS1(ZX(I)).GT.DMAX) THEN
42 | IZAMAX = I
43 | DMAX = DCABS1(ZX(I))
44 | END IF
45 | END DO
46 | ELSE
47 | *
48 | * code for increment not equal to 1
49 | *
50 | IX = 1
51 | DMAX = DCABS1(ZX(1))
52 | IX = IX + INCX
53 | DO I = 2,N
54 | IF (DCABS1(ZX(IX)).GT.DMAX) THEN
55 | IZAMAX = I
56 | DMAX = DCABS1(ZX(IX))
57 | END IF
58 | IX = IX + INCX
59 | END DO
60 | END IF
61 | RETURN
62 | END
63 |
--------------------------------------------------------------------------------
/netlib/BLAS/sasum.f:
--------------------------------------------------------------------------------
1 | REAL FUNCTION SASUM(N,SX,INCX)
2 | * .. Scalar Arguments ..
3 | INTEGER INCX,N
4 | * ..
5 | * .. Array Arguments ..
6 | REAL SX(*)
7 | * ..
8 | *
9 | * Purpose
10 | * =======
11 | *
12 | * SASUM takes the sum of the absolute values.
13 | * uses unrolled loops for increment equal to one.
14 | *
15 | * Further Details
16 | * ===============
17 | *
18 | * jack dongarra, linpack, 3/11/78.
19 | * modified 3/93 to return if incx .le. 0.
20 | * modified 12/3/93, array(1) declarations changed to array(*)
21 | *
22 | * =====================================================================
23 | *
24 | * .. Local Scalars ..
25 | REAL STEMP
26 | INTEGER I,M,MP1,NINCX
27 | * ..
28 | * .. Intrinsic Functions ..
29 | INTRINSIC ABS,MOD
30 | * ..
31 | SASUM = 0.0e0
32 | STEMP = 0.0e0
33 | IF (N.LE.0 .OR. INCX.LE.0) RETURN
34 | IF (INCX.EQ.1) THEN
35 | * code for increment equal to 1
36 | *
37 | *
38 | * clean-up loop
39 | *
40 | M = MOD(N,6)
41 | IF (M.NE.0) THEN
42 | DO I = 1,M
43 | STEMP = STEMP + ABS(SX(I))
44 | END DO
45 | IF (N.LT.6) THEN
46 | SASUM = STEMP
47 | RETURN
48 | END IF
49 | END IF
50 | MP1 = M + 1
51 | DO I = MP1,N,6
52 | STEMP = STEMP + ABS(SX(I)) + ABS(SX(I+1)) +
53 | $ ABS(SX(I+2)) + ABS(SX(I+3)) +
54 | $ ABS(SX(I+4)) + ABS(SX(I+5))
55 | END DO
56 | ELSE
57 | *
58 | * code for increment not equal to 1
59 | *
60 | NINCX = N*INCX
61 | DO I = 1,NINCX,INCX
62 | STEMP = STEMP + ABS(SX(I))
63 | END DO
64 | END IF
65 | SASUM = STEMP
66 | RETURN
67 | END
68 |
--------------------------------------------------------------------------------
/netlib/BLAS/saxpy.f:
--------------------------------------------------------------------------------
1 | SUBROUTINE SAXPY(N,SA,SX,INCX,SY,INCY)
2 | * .. Scalar Arguments ..
3 | REAL SA
4 | INTEGER INCX,INCY,N
5 | * ..
6 | * .. Array Arguments ..
7 | REAL SX(*),SY(*)
8 | * ..
9 | *
10 | * Purpose
11 | * =======
12 | *
13 | * SAXPY constant times a vector plus a vector.
14 | * uses unrolled loops for increments equal to one.
15 | *
16 | * Further Details
17 | * ===============
18 | *
19 | * jack dongarra, linpack, 3/11/78.
20 | * modified 12/3/93, array(1) declarations changed to array(*)
21 | *
22 | * =====================================================================
23 | *
24 | * .. Local Scalars ..
25 | INTEGER I,IX,IY,M,MP1
26 | * ..
27 | * .. Intrinsic Functions ..
28 | INTRINSIC MOD
29 | * ..
30 | IF (N.LE.0) RETURN
31 | IF (SA.EQ.0.0) RETURN
32 | IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN
33 | *
34 | * code for both increments equal to 1
35 | *
36 | *
37 | * clean-up loop
38 | *
39 | M = MOD(N,4)
40 | IF (M.NE.0) THEN
41 | DO I = 1,M
42 | SY(I) = SY(I) + SA*SX(I)
43 | END DO
44 | END IF
45 | IF (N.LT.4) RETURN
46 | MP1 = M + 1
47 | DO I = MP1,N,4
48 | SY(I) = SY(I) + SA*SX(I)
49 | SY(I+1) = SY(I+1) + SA*SX(I+1)
50 | SY(I+2) = SY(I+2) + SA*SX(I+2)
51 | SY(I+3) = SY(I+3) + SA*SX(I+3)
52 | END DO
53 | ELSE
54 | *
55 | * code for unequal increments or equal increments
56 | * not equal to 1
57 | *
58 | IX = 1
59 | IY = 1
60 | IF (INCX.LT.0) IX = (-N+1)*INCX + 1
61 | IF (INCY.LT.0) IY = (-N+1)*INCY + 1
62 | DO I = 1,N
63 | SY(IY) = SY(IY) + SA*SX(IX)
64 | IX = IX + INCX
65 | IY = IY + INCY
66 | END DO
67 | END IF
68 | RETURN
69 | END
70 |
--------------------------------------------------------------------------------
/netlib/BLAS/scabs1.f:
--------------------------------------------------------------------------------
1 | REAL FUNCTION SCABS1(Z)
2 | * .. Scalar Arguments ..
3 | COMPLEX Z
4 | * ..
5 | *
6 | * Purpose
7 | * =======
8 | *
9 | * SCABS1 computes absolute value of a complex number
10 | *
11 | * =====================================================================
12 | *
13 | * .. Intrinsic Functions ..
14 | INTRINSIC ABS,AIMAG,REAL
15 | * ..
16 | SCABS1 = ABS(REAL(Z)) + ABS(AIMAG(Z))
17 | RETURN
18 | END
19 |
--------------------------------------------------------------------------------
/netlib/BLAS/scasum.f:
--------------------------------------------------------------------------------
1 | REAL FUNCTION SCASUM(N,CX,INCX)
2 | * .. Scalar Arguments ..
3 | INTEGER INCX,N
4 | * ..
5 | * .. Array Arguments ..
6 | COMPLEX CX(*)
7 | * ..
8 | *
9 | * Purpose
10 | * =======
11 | *
12 | * SCASUM takes the sum of the absolute values of a complex vector and
13 | * returns a single precision result.
14 | *
15 | * Further Details
16 | * ===============
17 | *
18 | * jack dongarra, linpack, 3/11/78.
19 | * modified 3/93 to return if incx .le. 0.
20 | * modified 12/3/93, array(1) declarations changed to array(*)
21 | *
22 | * =====================================================================
23 | *
24 | * .. Local Scalars ..
25 | REAL STEMP
26 | INTEGER I,NINCX
27 | * ..
28 | * .. Intrinsic Functions ..
29 | INTRINSIC ABS,AIMAG,REAL
30 | * ..
31 | SCASUM = 0.0e0
32 | STEMP = 0.0e0
33 | IF (N.LE.0 .OR. INCX.LE.0) RETURN
34 | IF (INCX.EQ.1) THEN
35 | *
36 | * code for increment equal to 1
37 | *
38 | DO I = 1,N
39 | STEMP = STEMP + ABS(REAL(CX(I))) + ABS(AIMAG(CX(I)))
40 | END DO
41 | ELSE
42 | *
43 | * code for increment not equal to 1
44 | *
45 | NINCX = N*INCX
46 | DO I = 1,NINCX,INCX
47 | STEMP = STEMP + ABS(REAL(CX(I))) + ABS(AIMAG(CX(I)))
48 | END DO
49 | END IF
50 | SCASUM = STEMP
51 | RETURN
52 | END
53 |
--------------------------------------------------------------------------------
/netlib/BLAS/scnrm2.f:
--------------------------------------------------------------------------------
1 | REAL FUNCTION SCNRM2(N,X,INCX)
2 | * .. Scalar Arguments ..
3 | INTEGER INCX,N
4 | * ..
5 | * .. Array Arguments ..
6 | COMPLEX X(*)
7 | * ..
8 | *
9 | * Purpose
10 | * =======
11 | *
12 | * SCNRM2 returns the euclidean norm of a vector via the function
13 | * name, so that
14 | *
15 | * SCNRM2 := sqrt( x**H*x )
16 | *
17 | * Further Details
18 | * ===============
19 | *
20 | * -- This version written on 25-October-1982.
21 | * Modified on 14-October-1993 to inline the call to CLASSQ.
22 | * Sven Hammarling, Nag Ltd.
23 | *
24 | * =====================================================================
25 | *
26 | * .. Parameters ..
27 | REAL ONE,ZERO
28 | PARAMETER (ONE=1.0E+0,ZERO=0.0E+0)
29 | * ..
30 | * .. Local Scalars ..
31 | REAL NORM,SCALE,SSQ,TEMP
32 | INTEGER IX
33 | * ..
34 | * .. Intrinsic Functions ..
35 | INTRINSIC ABS,AIMAG,REAL,SQRT
36 | * ..
37 | IF (N.LT.1 .OR. INCX.LT.1) THEN
38 | NORM = ZERO
39 | ELSE
40 | SCALE = ZERO
41 | SSQ = ONE
42 | * The following loop is equivalent to this call to the LAPACK
43 | * auxiliary routine:
44 | * CALL CLASSQ( N, X, INCX, SCALE, SSQ )
45 | *
46 | DO 10 IX = 1,1 + (N-1)*INCX,INCX
47 | IF (REAL(X(IX)).NE.ZERO) THEN
48 | TEMP = ABS(REAL(X(IX)))
49 | IF (SCALE.LT.TEMP) THEN
50 | SSQ = ONE + SSQ* (SCALE/TEMP)**2
51 | SCALE = TEMP
52 | ELSE
53 | SSQ = SSQ + (TEMP/SCALE)**2
54 | END IF
55 | END IF
56 | IF (AIMAG(X(IX)).NE.ZERO) THEN
57 | TEMP = ABS(AIMAG(X(IX)))
58 | IF (SCALE.LT.TEMP) THEN
59 | SSQ = ONE + SSQ* (SCALE/TEMP)**2
60 | SCALE = TEMP
61 | ELSE
62 | SSQ = SSQ + (TEMP/SCALE)**2
63 | END IF
64 | END IF
65 | 10 CONTINUE
66 | NORM = SCALE*SQRT(SSQ)
67 | END IF
68 | *
69 | SCNRM2 = NORM
70 | RETURN
71 | *
72 | * End of SCNRM2.
73 | *
74 | END
75 |
--------------------------------------------------------------------------------
/netlib/BLAS/scopy.f:
--------------------------------------------------------------------------------
1 | SUBROUTINE SCOPY(N,SX,INCX,SY,INCY)
2 | * .. Scalar Arguments ..
3 | INTEGER INCX,INCY,N
4 | * ..
5 | * .. Array Arguments ..
6 | REAL SX(*),SY(*)
7 | * ..
8 | *
9 | * Purpose
10 | * =======
11 | *
12 | * SCOPY copies a vector, x, to a vector, y.
13 | * uses unrolled loops for increments equal to 1.
14 | *
15 | * Further Details
16 | * ===============
17 | *
18 | * jack dongarra, linpack, 3/11/78.
19 | * modified 12/3/93, array(1) declarations changed to array(*)
20 | *
21 | * =====================================================================
22 | *
23 | * .. Local Scalars ..
24 | INTEGER I,IX,IY,M,MP1
25 | * ..
26 | * .. Intrinsic Functions ..
27 | INTRINSIC MOD
28 | * ..
29 | IF (N.LE.0) RETURN
30 | IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN
31 | *
32 | * code for both increments equal to 1
33 | *
34 | *
35 | * clean-up loop
36 | *
37 | M = MOD(N,7)
38 | IF (M.NE.0) THEN
39 | DO I = 1,M
40 | SY(I) = SX(I)
41 | END DO
42 | IF (N.LT.7) RETURN
43 | END IF
44 | MP1 = M + 1
45 | DO I = MP1,N,7
46 | SY(I) = SX(I)
47 | SY(I+1) = SX(I+1)
48 | SY(I+2) = SX(I+2)
49 | SY(I+3) = SX(I+3)
50 | SY(I+4) = SX(I+4)
51 | SY(I+5) = SX(I+5)
52 | SY(I+6) = SX(I+6)
53 | END DO
54 | ELSE
55 | *
56 | * code for unequal increments or equal increments
57 | * not equal to 1
58 | *
59 | IX = 1
60 | IY = 1
61 | IF (INCX.LT.0) IX = (-N+1)*INCX + 1
62 | IF (INCY.LT.0) IY = (-N+1)*INCY + 1
63 | DO I = 1,N
64 | SY(IY) = SX(IX)
65 | IX = IX + INCX
66 | IY = IY + INCY
67 | END DO
68 | END IF
69 | RETURN
70 | END
71 |
--------------------------------------------------------------------------------
/netlib/BLAS/sdot.f:
--------------------------------------------------------------------------------
1 | REAL FUNCTION SDOT(N,SX,INCX,SY,INCY)
2 | * .. Scalar Arguments ..
3 | INTEGER INCX,INCY,N
4 | * ..
5 | * .. Array Arguments ..
6 | REAL SX(*),SY(*)
7 | * ..
8 | *
9 | * Purpose
10 | * =======
11 | *
12 | * SDOT forms the dot product of two vectors.
13 | * uses unrolled loops for increments equal to one.
14 | *
15 | * Further Details
16 | * ===============
17 | *
18 | * jack dongarra, linpack, 3/11/78.
19 | * modified 12/3/93, array(1) declarations changed to array(*)
20 | *
21 | * =====================================================================
22 | *
23 | * .. Local Scalars ..
24 | REAL STEMP
25 | INTEGER I,IX,IY,M,MP1
26 | * ..
27 | * .. Intrinsic Functions ..
28 | INTRINSIC MOD
29 | * ..
30 | STEMP = 0.0e0
31 | SDOT = 0.0e0
32 | IF (N.LE.0) RETURN
33 | IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN
34 | *
35 | * code for both increments equal to 1
36 | *
37 | *
38 | * clean-up loop
39 | *
40 | M = MOD(N,5)
41 | IF (M.NE.0) THEN
42 | DO I = 1,M
43 | STEMP = STEMP + SX(I)*SY(I)
44 | END DO
45 | IF (N.LT.5) THEN
46 | SDOT=STEMP
47 | RETURN
48 | END IF
49 | END IF
50 | MP1 = M + 1
51 | DO I = MP1,N,5
52 | STEMP = STEMP + SX(I)*SY(I) + SX(I+1)*SY(I+1) +
53 | $ SX(I+2)*SY(I+2) + SX(I+3)*SY(I+3) + SX(I+4)*SY(I+4)
54 | END DO
55 | ELSE
56 | *
57 | * code for unequal increments or equal increments
58 | * not equal to 1
59 | *
60 | IX = 1
61 | IY = 1
62 | IF (INCX.LT.0) IX = (-N+1)*INCX + 1
63 | IF (INCY.LT.0) IY = (-N+1)*INCY + 1
64 | DO I = 1,N
65 | STEMP = STEMP + SX(IX)*SY(IY)
66 | IX = IX + INCX
67 | IY = IY + INCY
68 | END DO
69 | END IF
70 | SDOT = STEMP
71 | RETURN
72 | END
73 |
--------------------------------------------------------------------------------
/netlib/BLAS/snrm2.f:
--------------------------------------------------------------------------------
1 | REAL FUNCTION SNRM2(N,X,INCX)
2 | * .. Scalar Arguments ..
3 | INTEGER INCX,N
4 | * ..
5 | * .. Array Arguments ..
6 | REAL X(*)
7 | * ..
8 | *
9 | * Purpose
10 | * =======
11 | *
12 | * SNRM2 returns the euclidean norm of a vector via the function
13 | * name, so that
14 | *
15 | * SNRM2 := sqrt( x'*x ).
16 | *
17 | * Further Details
18 | * ===============
19 | *
20 | * -- This version written on 25-October-1982.
21 | * Modified on 14-October-1993 to inline the call to SLASSQ.
22 | * Sven Hammarling, Nag Ltd.
23 | *
24 | * =====================================================================
25 | *
26 | * .. Parameters ..
27 | REAL ONE,ZERO
28 | PARAMETER (ONE=1.0E+0,ZERO=0.0E+0)
29 | * ..
30 | * .. Local Scalars ..
31 | REAL ABSXI,NORM,SCALE,SSQ
32 | INTEGER IX
33 | * ..
34 | * .. Intrinsic Functions ..
35 | INTRINSIC ABS,SQRT
36 | * ..
37 | IF (N.LT.1 .OR. INCX.LT.1) THEN
38 | NORM = ZERO
39 | ELSE IF (N.EQ.1) THEN
40 | NORM = ABS(X(1))
41 | ELSE
42 | SCALE = ZERO
43 | SSQ = ONE
44 | * The following loop is equivalent to this call to the LAPACK
45 | * auxiliary routine:
46 | * CALL SLASSQ( N, X, INCX, SCALE, SSQ )
47 | *
48 | DO 10 IX = 1,1 + (N-1)*INCX,INCX
49 | IF (X(IX).NE.ZERO) THEN
50 | ABSXI = ABS(X(IX))
51 | IF (SCALE.LT.ABSXI) THEN
52 | SSQ = ONE + SSQ* (SCALE/ABSXI)**2
53 | SCALE = ABSXI
54 | ELSE
55 | SSQ = SSQ + (ABSXI/SCALE)**2
56 | END IF
57 | END IF
58 | 10 CONTINUE
59 | NORM = SCALE*SQRT(SSQ)
60 | END IF
61 | *
62 | SNRM2 = NORM
63 | RETURN
64 | *
65 | * End of SNRM2.
66 | *
67 | END
68 |
--------------------------------------------------------------------------------
/netlib/BLAS/srot.f:
--------------------------------------------------------------------------------
1 | SUBROUTINE SROT(N,SX,INCX,SY,INCY,C,S)
2 | * .. Scalar Arguments ..
3 | REAL C,S
4 | INTEGER INCX,INCY,N
5 | * ..
6 | * .. Array Arguments ..
7 | REAL SX(*),SY(*)
8 | * ..
9 | *
10 | * Purpose
11 | * =======
12 | *
13 | * applies a plane rotation.
14 | *
15 | * Further Details
16 | * ===============
17 | *
18 | * jack dongarra, linpack, 3/11/78.
19 | * modified 12/3/93, array(1) declarations changed to array(*)
20 | *
21 | * =====================================================================
22 | *
23 | * .. Local Scalars ..
24 | REAL STEMP
25 | INTEGER I,IX,IY
26 | * ..
27 | IF (N.LE.0) RETURN
28 | IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN
29 | *
30 | * code for both increments equal to 1
31 | *
32 | DO I = 1,N
33 | STEMP = C*SX(I) + S*SY(I)
34 | SY(I) = C*SY(I) - S*SX(I)
35 | SX(I) = STEMP
36 | END DO
37 | ELSE
38 | *
39 | * code for unequal increments or equal increments not equal
40 | * to 1
41 | *
42 | IX = 1
43 | IY = 1
44 | IF (INCX.LT.0) IX = (-N+1)*INCX + 1
45 | IF (INCY.LT.0) IY = (-N+1)*INCY + 1
46 | DO I = 1,N
47 | STEMP = C*SX(IX) + S*SY(IY)
48 | SY(IY) = C*SY(IY) - S*SX(IX)
49 | SX(IX) = STEMP
50 | IX = IX + INCX
51 | IY = IY + INCY
52 | END DO
53 | END IF
54 | RETURN
55 | END
56 |
--------------------------------------------------------------------------------
/netlib/BLAS/srotg.f:
--------------------------------------------------------------------------------
1 | SUBROUTINE SROTG(SA,SB,C,S)
2 | * .. Scalar Arguments ..
3 | REAL C,S,SA,SB
4 | * ..
5 | *
6 | * Purpose
7 | * =======
8 | *
9 | * SROTG construct givens plane rotation.
10 | *
11 | * Further Details
12 | * ===============
13 | *
14 | * jack dongarra, linpack, 3/11/78.
15 | *
16 | * =====================================================================
17 | *
18 | * .. Local Scalars ..
19 | REAL R,ROE,SCALE,Z
20 | * ..
21 | * .. Intrinsic Functions ..
22 | INTRINSIC ABS,SIGN,SQRT
23 | * ..
24 | ROE = SB
25 | IF (ABS(SA).GT.ABS(SB)) ROE = SA
26 | SCALE = ABS(SA) + ABS(SB)
27 | IF (SCALE.EQ.0.0) THEN
28 | C = 1.0
29 | S = 0.0
30 | R = 0.0
31 | Z = 0.0
32 | ELSE
33 | R = SCALE*SQRT((SA/SCALE)**2+ (SB/SCALE)**2)
34 | R = SIGN(1.0,ROE)*R
35 | C = SA/R
36 | S = SB/R
37 | Z = 1.0
38 | IF (ABS(SA).GT.ABS(SB)) Z = S
39 | IF (ABS(SB).GE.ABS(SA) .AND. C.NE.0.0) Z = 1.0/C
40 | END IF
41 | SA = R
42 | SB = Z
43 | RETURN
44 | END
45 |
--------------------------------------------------------------------------------
/netlib/BLAS/sscal.f:
--------------------------------------------------------------------------------
1 | SUBROUTINE SSCAL(N,SA,SX,INCX)
2 | * .. Scalar Arguments ..
3 | REAL SA
4 | INTEGER INCX,N
5 | * ..
6 | * .. Array Arguments ..
7 | REAL SX(*)
8 | * ..
9 | *
10 | * Purpose
11 | * =======
12 | *
13 | * scales a vector by a constant.
14 | * uses unrolled loops for increment equal to 1.
15 | *
16 | * Further Details
17 | * ===============
18 | *
19 | * jack dongarra, linpack, 3/11/78.
20 | * modified 3/93 to return if incx .le. 0.
21 | * modified 12/3/93, array(1) declarations changed to array(*)
22 | *
23 | * =====================================================================
24 | *
25 | * .. Local Scalars ..
26 | INTEGER I,M,MP1,NINCX
27 | * ..
28 | * .. Intrinsic Functions ..
29 | INTRINSIC MOD
30 | * ..
31 | IF (N.LE.0 .OR. INCX.LE.0) RETURN
32 | IF (INCX.EQ.1) THEN
33 | *
34 | * code for increment equal to 1
35 | *
36 | *
37 | * clean-up loop
38 | *
39 | M = MOD(N,5)
40 | IF (M.NE.0) THEN
41 | DO I = 1,M
42 | SX(I) = SA*SX(I)
43 | END DO
44 | IF (N.LT.5) RETURN
45 | END IF
46 | MP1 = M + 1
47 | DO I = MP1,N,5
48 | SX(I) = SA*SX(I)
49 | SX(I+1) = SA*SX(I+1)
50 | SX(I+2) = SA*SX(I+2)
51 | SX(I+3) = SA*SX(I+3)
52 | SX(I+4) = SA*SX(I+4)
53 | END DO
54 | ELSE
55 | *
56 | * code for increment not equal to 1
57 | *
58 | NINCX = N*INCX
59 | DO I = 1,NINCX,INCX
60 | SX(I) = SA*SX(I)
61 | END DO
62 | END IF
63 | RETURN
64 | END
65 |
--------------------------------------------------------------------------------
/netlib/BLAS/sswap.f:
--------------------------------------------------------------------------------
1 | SUBROUTINE SSWAP(N,SX,INCX,SY,INCY)
2 | * .. Scalar Arguments ..
3 | INTEGER INCX,INCY,N
4 | * ..
5 | * .. Array Arguments ..
6 | REAL SX(*),SY(*)
7 | * ..
8 | *
9 | * Purpose
10 | * =======
11 | *
12 | * interchanges two vectors.
13 | * uses unrolled loops for increments equal to 1.
14 | *
15 | * Further Details
16 | * ===============
17 | *
18 | * jack dongarra, linpack, 3/11/78.
19 | * modified 12/3/93, array(1) declarations changed to array(*)
20 | *
21 | * =====================================================================
22 | *
23 | * .. Local Scalars ..
24 | REAL STEMP
25 | INTEGER I,IX,IY,M,MP1
26 | * ..
27 | * .. Intrinsic Functions ..
28 | INTRINSIC MOD
29 | * ..
30 | IF (N.LE.0) RETURN
31 | IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN
32 | *
33 | * code for both increments equal to 1
34 | *
35 | *
36 | * clean-up loop
37 | *
38 | M = MOD(N,3)
39 | IF (M.NE.0) THEN
40 | DO I = 1,M
41 | STEMP = SX(I)
42 | SX(I) = SY(I)
43 | SY(I) = STEMP
44 | END DO
45 | IF (N.LT.3) RETURN
46 | END IF
47 | MP1 = M + 1
48 | DO I = MP1,N,3
49 | STEMP = SX(I)
50 | SX(I) = SY(I)
51 | SY(I) = STEMP
52 | STEMP = SX(I+1)
53 | SX(I+1) = SY(I+1)
54 | SY(I+1) = STEMP
55 | STEMP = SX(I+2)
56 | SX(I+2) = SY(I+2)
57 | SY(I+2) = STEMP
58 | END DO
59 | ELSE
60 | *
61 | * code for unequal increments or equal increments not equal
62 | * to 1
63 | *
64 | IX = 1
65 | IY = 1
66 | IF (INCX.LT.0) IX = (-N+1)*INCX + 1
67 | IF (INCY.LT.0) IY = (-N+1)*INCY + 1
68 | DO I = 1,N
69 | STEMP = SX(IX)
70 | SX(IX) = SY(IY)
71 | SY(IY) = STEMP
72 | IX = IX + INCX
73 | IY = IY + INCY
74 | END DO
75 | END IF
76 | RETURN
77 | END
78 |
--------------------------------------------------------------------------------
/netlib/BLAS/xerbla.f:
--------------------------------------------------------------------------------
1 | SUBROUTINE XERBLA( SRNAME, INFO )
2 | *
3 | * -- LAPACK auxiliary routine (preliminary version) --
4 | * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
5 | * November 2006
6 | *
7 | * .. Scalar Arguments ..
8 | CHARACTER*(*) SRNAME
9 | INTEGER INFO
10 | * ..
11 | *
12 | * Purpose
13 | * =======
14 | *
15 | * XERBLA is an error handler for the LAPACK routines.
16 | * It is called by an LAPACK routine if an input parameter has an
17 | * invalid value. A message is printed and execution stops.
18 | *
19 | * Installers may consider modifying the STOP statement in order to
20 | * call system-specific exception-handling facilities.
21 | *
22 | * Arguments
23 | * =========
24 | *
25 | * SRNAME (input) CHARACTER*(*)
26 | * The name of the routine which called XERBLA.
27 | *
28 | * INFO (input) INTEGER
29 | * The position of the invalid parameter in the parameter list
30 | * of the calling routine.
31 | *
32 | * =====================================================================
33 | *
34 | * .. Intrinsic Functions ..
35 | INTRINSIC LEN_TRIM
36 | * ..
37 | * .. Executable Statements ..
38 | *
39 | WRITE( *, FMT = 9999 )SRNAME( 1:LEN_TRIM( SRNAME ) ), INFO
40 | *
41 | STOP
42 | *
43 | 9999 FORMAT( ' ** On entry to ', A, ' parameter number ', I2, ' had ',
44 | $ 'an illegal value' )
45 | *
46 | * End of XERBLA
47 | *
48 | END
49 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_dasum.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_dasum.c
3 | *
4 | * The program is a C interface to dasum.
5 | * It calls the fortran wrapper before calling dasum.
6 | *
7 | * Written by Keita Teranishi. 2/11/1998
8 | *
9 | */
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | double cblas_dasum( const int N, const double *X, const int incX)
13 | {
14 | double asum;
15 | #ifdef F77_INT
16 | F77_INT F77_N=N, F77_incX=incX;
17 | #else
18 | #define F77_N N
19 | #define F77_incX incX
20 | #endif
21 | F77_dasum_sub( &F77_N, X, &F77_incX, &asum);
22 | return asum;
23 | }
24 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_daxpy.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_daxpy.c
3 | *
4 | * The program is a C interface to daxpy.
5 | *
6 | * Written by Keita Teranishi. 2/11/1998
7 | *
8 | */
9 | #include "cblas.h"
10 | #include "cblas_f77.h"
11 | void cblas_daxpy( const int N, const double alpha, const double *X,
12 | const int incX, double *Y, const int incY)
13 | {
14 | #ifdef F77_INT
15 | F77_INT F77_N=N, F77_incX=incX, F77_incY=incY;
16 | #else
17 | #define F77_N N
18 | #define F77_incX incX
19 | #define F77_incY incY
20 | #endif
21 | F77_daxpy( &F77_N, &alpha, X, &F77_incX, Y, &F77_incY);
22 | }
23 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_dcopy.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_dcopy.c
3 | *
4 | * The program is a C interface to dcopy.
5 | *
6 | * Written by Keita Teranishi. 2/11/1998
7 | *
8 | */
9 | #include "cblas.h"
10 | #include "cblas_f77.h"
11 | void cblas_dcopy( const int N, const double *X,
12 | const int incX, double *Y, const int incY)
13 | {
14 | #ifdef F77_INT
15 | F77_INT F77_N=N, F77_incX=incX, F77_incY=incY;
16 | #else
17 | #define F77_N N
18 | #define F77_incX incX
19 | #define F77_incY incY
20 | #endif
21 | F77_dcopy( &F77_N, X, &F77_incX, Y, &F77_incY);
22 | }
23 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_ddot.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_ddot.c
3 | *
4 | * The program is a C interface to ddot.
5 | * It calls the fortran wrapper before calling ddot.
6 | *
7 | * Written by Keita Teranishi. 2/11/1998
8 | *
9 | */
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | double cblas_ddot( const int N, const double *X,
13 | const int incX, const double *Y, const int incY)
14 | {
15 | double dot;
16 | #ifdef F77_INT
17 | F77_INT F77_N=N, F77_incX=incX, F77_incY=incY;
18 | #else
19 | #define F77_N N
20 | #define F77_incX incX
21 | #define F77_incY incY
22 | #endif
23 | F77_ddot_sub( &F77_N, X, &F77_incX, Y, &F77_incY, &dot);
24 | return dot;
25 | }
26 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_dger.c:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * cblas_dger.c
4 | * This program is a C interface to dger.
5 | * Written by Keita Teranishi
6 | * 4/6/1998
7 | *
8 | */
9 |
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | void cblas_dger(const enum CBLAS_ORDER order, const int M, const int N,
13 | const double alpha, const double *X, const int incX,
14 | const double *Y, const int incY, double *A, const int lda)
15 | {
16 | #ifdef F77_INT
17 | F77_INT F77_M=M, F77_N=N, F77_lda=lda, F77_incX=incX, F77_incY=incY;
18 | #else
19 | #define F77_M M
20 | #define F77_N N
21 | #define F77_incX incX
22 | #define F77_incY incY
23 | #define F77_lda lda
24 | #endif
25 |
26 | extern int CBLAS_CallFromC;
27 | extern int RowMajorStrg;
28 | RowMajorStrg = 0;
29 |
30 | CBLAS_CallFromC = 1;
31 | if (order == CblasColMajor)
32 | {
33 | F77_dger( &F77_M, &F77_N, &alpha, X, &F77_incX, Y, &F77_incY, A,
34 | &F77_lda);
35 | }
36 | else if (order == CblasRowMajor)
37 | {
38 | RowMajorStrg = 1;
39 | F77_dger( &F77_N, &F77_M ,&alpha, Y, &F77_incY, X, &F77_incX, A,
40 | &F77_lda);
41 |
42 | }
43 | else cblas_xerbla(1, "cblas_dger", "Illegal Order setting, %d\n", order);
44 | CBLAS_CallFromC = 0;
45 | RowMajorStrg = 0;
46 | return;
47 | }
48 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_dnrm2.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_dnrm2.c
3 | *
4 | * The program is a C interface to dnrm2.
5 | * It calls the fortranwrapper before calling dnrm2.
6 | *
7 | * Written by Keita Teranishi. 2/11/1998
8 | *
9 | */
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | double cblas_dnrm2( const int N, const double *X, const int incX)
13 | {
14 | double nrm2;
15 | #ifdef F77_INT
16 | F77_INT F77_N=N, F77_incX=incX;
17 | #else
18 | #define F77_N N
19 | #define F77_incX incX
20 | #endif
21 | F77_dnrm2_sub( &F77_N, X, &F77_incX, &nrm2);
22 | return nrm2;
23 | }
24 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_drot.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_drot.c
3 | *
4 | * The program is a C interface to drot.
5 | *
6 | * Written by Keita Teranishi. 2/11/1998
7 | *
8 | */
9 | #include "cblas.h"
10 | #include "cblas_f77.h"
11 | void cblas_drot(const int N, double *X, const int incX,
12 | double *Y, const int incY, const double c, const double s)
13 | {
14 | #ifdef F77_INT
15 | F77_INT F77_N=N, F77_incX=incX, F77_incY=incY;
16 | #else
17 | #define F77_N N
18 | #define F77_incX incX
19 | #define F77_incY incY
20 | #endif
21 | F77_drot(&F77_N, X, &F77_incX, Y, &F77_incY, &c, &s);
22 | return;
23 | }
24 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_drotg.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_drotg.c
3 | *
4 | * The program is a C interface to drotg.
5 | *
6 | * Written by Keita Teranishi. 2/11/1998
7 | *
8 | */
9 | #include "cblas.h"
10 | #include "cblas_f77.h"
11 | void cblas_drotg( double *a, double *b, double *c, double *s)
12 | {
13 | F77_drotg(a,b,c,s);
14 | }
15 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_drotm.c:
--------------------------------------------------------------------------------
1 | #include "cblas.h"
2 | #include "cblas_f77.h"
3 | void cblas_drotm( const int N, double *X, const int incX, double *Y,
4 | const int incY, const double *P)
5 | {
6 | #ifdef F77_INT
7 | F77_INT F77_N=N, F77_incX=incX, F77_incY=incY;
8 | #else
9 | #define F77_N N
10 | #define F77_incX incX
11 | #define F77_incY incY
12 | #endif
13 | F77_drotm( &F77_N, X, &F77_incX, Y, &F77_incY, P);
14 | }
15 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_drotmg.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_drotmg.c
3 | *
4 | * The program is a C interface to drotmg.
5 | *
6 | * Written by Keita Teranishi. 2/11/1998
7 | *
8 | */
9 | #include "cblas.h"
10 | #include "cblas_f77.h"
11 | void cblas_drotmg( double *d1, double *d2, double *b1,
12 | const double b2, double *p)
13 | {
14 | F77_drotmg(d1,d2,b1,&b2,p);
15 | }
16 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_dsbmv.c:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * cblas_dsbmv.c
4 | * This program is a C interface to dsbmv.
5 | * Written by Keita Teranishi
6 | * 4/6/1998
7 | *
8 | */
9 |
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | void cblas_dsbmv(const enum CBLAS_ORDER order,
13 | const enum CBLAS_UPLO Uplo, const int N, const int K,
14 | const double alpha, const double *A, const int lda,
15 | const double *X, const int incX, const double beta,
16 | double *Y, const int incY)
17 | {
18 | char UL;
19 | #ifdef F77_CHAR
20 | F77_CHAR F77_UL;
21 | #else
22 | #define F77_UL &UL
23 | #endif
24 | #ifdef F77_INT
25 | F77_INT F77_N=N, F77_K=K, F77_lda=lda, F77_incX=incX, F77_incY=incY;
26 | #else
27 | #define F77_N N
28 | #define F77_K K
29 | #define F77_lda lda
30 | #define F77_incX incX
31 | #define F77_incY incY
32 | #endif
33 | extern int CBLAS_CallFromC;
34 | extern int RowMajorStrg;
35 | RowMajorStrg = 0;
36 |
37 | CBLAS_CallFromC = 1;
38 | if (order == CblasColMajor)
39 | {
40 | if (Uplo == CblasUpper) UL = 'U';
41 | else if (Uplo == CblasLower) UL = 'L';
42 | else
43 | {
44 | cblas_xerbla(2, "cblas_dsbmv","Illegal Uplo setting, %d\n",Uplo );
45 | CBLAS_CallFromC = 0;
46 | RowMajorStrg = 0;
47 | return;
48 | }
49 | #ifdef F77_CHAR
50 | F77_UL = C2F_CHAR(&UL);
51 | #endif
52 | F77_dsbmv(F77_UL, &F77_N, &F77_K, &alpha, A, &F77_lda, X,
53 | &F77_incX, &beta, Y, &F77_incY);
54 | }
55 | else if (order == CblasRowMajor)
56 | {
57 | RowMajorStrg = 1;
58 | if (Uplo == CblasUpper) UL = 'L';
59 | else if (Uplo == CblasLower) UL = 'U';
60 | else
61 | {
62 | cblas_xerbla(2, "cblas_dsbmv","Illegal Uplo setting, %d\n", Uplo);
63 | CBLAS_CallFromC = 0;
64 | RowMajorStrg = 0;
65 | return;
66 | }
67 | #ifdef F77_CHAR
68 | F77_UL = C2F_CHAR(&UL);
69 | #endif
70 | F77_dsbmv(F77_UL, &F77_N, &F77_K, &alpha,
71 | A ,&F77_lda, X,&F77_incX, &beta, Y, &F77_incY);
72 | }
73 | else cblas_xerbla(1, "cblas_dsbmv", "Illegal Order setting, %d\n", order);
74 | CBLAS_CallFromC = 0;
75 | RowMajorStrg = 0;
76 | return;
77 | }
78 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_dscal.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_dscal.c
3 | *
4 | * The program is a C interface to dscal.
5 | *
6 | * Written by Keita Teranishi. 2/11/1998
7 | *
8 | */
9 | #include "cblas.h"
10 | #include "cblas_f77.h"
11 | void cblas_dscal( const int N, const double alpha, double *X,
12 | const int incX)
13 | {
14 | #ifdef F77_INT
15 | F77_INT F77_N=N, F77_incX=incX;
16 | #else
17 | #define F77_N N
18 | #define F77_incX incX
19 | #endif
20 | F77_dscal( &F77_N, &alpha, X, &F77_incX);
21 | }
22 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_dsdot.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_dsdot.c
3 | *
4 | * The program is a C interface to dsdot.
5 | * It calls fthe fortran wrapper before calling dsdot.
6 | *
7 | * Written by Keita Teranishi. 2/11/1998
8 | *
9 | */
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | double cblas_dsdot( const int N, const float *X,
13 | const int incX, const float *Y, const int incY)
14 | {
15 | double dot;
16 | #ifdef F77_INT
17 | F77_INT F77_N=N, F77_incX=incX, F77_incY=incY;
18 | #else
19 | #define F77_N N
20 | #define F77_incX incX
21 | #define F77_incY incY
22 | #endif
23 | F77_dsdot_sub( &F77_N, X, &F77_incX, Y, &F77_incY, &dot);
24 | return dot;
25 | }
26 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_dspmv.c:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * cblas_dspmv.c
4 | * This program is a C interface to dspmv.
5 | * Written by Keita Teranishi
6 | * 4/6/1998
7 | *
8 | */
9 |
10 |
11 | #include "cblas.h"
12 | #include "cblas_f77.h"
13 | void cblas_dspmv(const enum CBLAS_ORDER order,
14 | const enum CBLAS_UPLO Uplo, const int N,
15 | const double alpha, const double *AP,
16 | const double *X, const int incX, const double beta,
17 | double *Y, const int incY)
18 | {
19 | char UL;
20 | #ifdef F77_CHAR
21 | F77_CHAR F77_UL;
22 | #else
23 | #define F77_UL &UL
24 | #endif
25 | #ifdef F77_INT
26 | F77_INT F77_N=N, F77_incX=incX, F77_incY=incY;
27 | #else
28 | #define F77_N N
29 | #define F77_incX incX
30 | #define F77_incY incY
31 | #endif
32 | extern int CBLAS_CallFromC;
33 | extern int RowMajorStrg;
34 | RowMajorStrg = 0;
35 |
36 | CBLAS_CallFromC = 1;
37 | if (order == CblasColMajor)
38 | {
39 | if (Uplo == CblasUpper) UL = 'U';
40 | else if (Uplo == CblasLower) UL = 'L';
41 | else
42 | {
43 | cblas_xerbla(2, "cblas_dspmv","Illegal Uplo setting, %d\n",Uplo );
44 | CBLAS_CallFromC = 0;
45 | RowMajorStrg = 0;
46 | return;
47 | }
48 | #ifdef F77_CHAR
49 | F77_UL = C2F_CHAR(&UL);
50 | #endif
51 | F77_dspmv(F77_UL, &F77_N, &alpha, AP, X,
52 | &F77_incX, &beta, Y, &F77_incY);
53 | }
54 | else if (order == CblasRowMajor)
55 | {
56 | RowMajorStrg = 1;
57 | if (Uplo == CblasUpper) UL = 'L';
58 | else if (Uplo == CblasLower) UL = 'U';
59 | else
60 | {
61 | cblas_xerbla(2, "cblas_dspmv","Illegal Uplo setting, %d\n", Uplo);
62 | CBLAS_CallFromC = 0;
63 | RowMajorStrg = 0;
64 | return;
65 | }
66 | #ifdef F77_CHAR
67 | F77_UL = C2F_CHAR(&UL);
68 | #endif
69 | F77_dspmv(F77_UL, &F77_N, &alpha,
70 | AP, X,&F77_incX, &beta, Y, &F77_incY);
71 | }
72 | else cblas_xerbla(1, "cblas_dspmv", "Illegal Order setting, %d\n", order);
73 | CBLAS_CallFromC = 0;
74 | RowMajorStrg = 0;
75 | return;
76 | }
77 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_dspr.c:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * cblas_dspr.c
4 | * This program is a C interface to dspr.
5 | * Written by Keita Teranishi
6 | * 4/6/1998
7 | *
8 | */
9 |
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | void cblas_dspr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
13 | const int N, const double alpha, const double *X,
14 | const int incX, double *Ap)
15 | {
16 | char UL;
17 | #ifdef F77_CHAR
18 | F77_CHAR F77_UL;
19 | #else
20 | #define F77_UL &UL
21 | #endif
22 |
23 | #ifdef F77_INT
24 | F77_INT F77_N=N, F77_incX=incX;
25 | #else
26 | #define F77_N N
27 | #define F77_incX incX
28 | #endif
29 | extern int CBLAS_CallFromC;
30 | extern int RowMajorStrg;
31 | RowMajorStrg = 0;
32 | CBLAS_CallFromC = 1;
33 | if (order == CblasColMajor)
34 | {
35 | if (Uplo == CblasLower) UL = 'L';
36 | else if (Uplo == CblasUpper) UL = 'U';
37 | else
38 | {
39 | cblas_xerbla(2, "cblas_dspr","Illegal Uplo setting, %d\n",Uplo );
40 | CBLAS_CallFromC = 0;
41 | RowMajorStrg = 0;
42 | return;
43 | }
44 | #ifdef F77_CHAR
45 | F77_UL = C2F_CHAR(&UL);
46 | #endif
47 |
48 | F77_dspr(F77_UL, &F77_N, &alpha, X, &F77_incX, Ap);
49 |
50 | } else if (order == CblasRowMajor)
51 | {
52 | RowMajorStrg = 1;
53 | if (Uplo == CblasLower) UL = 'U';
54 | else if (Uplo == CblasUpper) UL = 'L';
55 | else
56 | {
57 | cblas_xerbla(2, "cblas_dspr","Illegal Uplo setting, %d\n",Uplo );
58 | CBLAS_CallFromC = 0;
59 | RowMajorStrg = 0;
60 | return;
61 | }
62 | #ifdef F77_CHAR
63 | F77_UL = C2F_CHAR(&UL);
64 | #endif
65 | F77_dspr(F77_UL, &F77_N, &alpha, X, &F77_incX, Ap);
66 | } else cblas_xerbla(1, "cblas_dspr", "Illegal Order setting, %d\n", order);
67 | CBLAS_CallFromC = 0;
68 | RowMajorStrg = 0;
69 | return;
70 | }
71 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_dspr2.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_dspr2.c
3 | * The program is a C interface to dspr2.
4 | *
5 | * Keita Teranishi 5/20/98
6 | *
7 | */
8 | #include "cblas.h"
9 | #include "cblas_f77.h"
10 | void cblas_dspr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
11 | const int N, const double alpha, const double *X,
12 | const int incX, const double *Y, const int incY, double *A)
13 | {
14 | char UL;
15 | #ifdef F77_CHAR
16 | F77_CHAR F77_UL;
17 | #else
18 | #define F77_UL &UL
19 | #endif
20 |
21 | #ifdef F77_INT
22 | F77_INT F77_N=N, F77_incX=incX, F77_incY=incY;
23 | #else
24 | #define F77_N N
25 | #define F77_incX incX
26 | #define F77_incY incY
27 | #endif
28 |
29 | extern int CBLAS_CallFromC;
30 | extern int RowMajorStrg;
31 | RowMajorStrg = 0;
32 | CBLAS_CallFromC = 1;
33 | if (order == CblasColMajor)
34 | {
35 | if (Uplo == CblasLower) UL = 'L';
36 | else if (Uplo == CblasUpper) UL = 'U';
37 | else
38 | {
39 | cblas_xerbla(2, "cblas_dspr2","Illegal Uplo setting, %d\n",Uplo );
40 | CBLAS_CallFromC = 0;
41 | RowMajorStrg = 0;
42 | return;
43 | }
44 | #ifdef F77_CHAR
45 | F77_UL = C2F_CHAR(&UL);
46 | #endif
47 |
48 | F77_dspr2(F77_UL, &F77_N, &alpha, X, &F77_incX, Y, &F77_incY, A);
49 |
50 | } else if (order == CblasRowMajor)
51 | {
52 | RowMajorStrg = 1;
53 | if (Uplo == CblasLower) UL = 'U';
54 | else if (Uplo == CblasUpper) UL = 'L';
55 | else
56 | {
57 | cblas_xerbla(2, "cblas_dspr2","Illegal Uplo setting, %d\n",Uplo );
58 | CBLAS_CallFromC = 0;
59 | RowMajorStrg = 0;
60 | return;
61 | }
62 | #ifdef F77_CHAR
63 | F77_UL = C2F_CHAR(&UL);
64 | #endif
65 | F77_dspr2(F77_UL, &F77_N, &alpha, X, &F77_incX, Y, &F77_incY, A);
66 | } else cblas_xerbla(1, "cblas_dspr2", "Illegal Order setting, %d\n", order);
67 | CBLAS_CallFromC = 0;
68 | RowMajorStrg = 0;
69 | return;
70 | }
71 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_dswap.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_dswap.c
3 | *
4 | * The program is a C interface to dswap.
5 | *
6 | * Written by Keita Teranishi. 2/11/1998
7 | *
8 | */
9 | #include "cblas.h"
10 | #include "cblas_f77.h"
11 | void cblas_dswap( const int N, double *X, const int incX, double *Y,
12 | const int incY)
13 | {
14 | #ifdef F77_INT
15 | F77_INT F77_N=N, F77_incX=incX, F77_incY=incY;
16 | #else
17 | #define F77_N N
18 | #define F77_incX incX
19 | #define F77_incY incY
20 | #endif
21 | F77_dswap( &F77_N, X, &F77_incX, Y, &F77_incY);
22 | }
23 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_dsymv.c:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * cblas_dsymv.c
4 | * This program is a C interface to dsymv.
5 | * Written by Keita Teranishi
6 | * 4/6/1998
7 | *
8 | */
9 |
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | void cblas_dsymv(const enum CBLAS_ORDER order,
13 | const enum CBLAS_UPLO Uplo, const int N,
14 | const double alpha, const double *A, const int lda,
15 | const double *X, const int incX, const double beta,
16 | double *Y, const int incY)
17 | {
18 | char UL;
19 | #ifdef F77_CHAR
20 | F77_CHAR F77_UL;
21 | #else
22 | #define F77_UL &UL
23 | #endif
24 | #ifdef F77_INT
25 | F77_INT F77_N=N, F77_lda=lda, F77_incX=incX, F77_incY=incY;
26 | #else
27 | #define F77_N N
28 | #define F77_lda lda
29 | #define F77_incX incX
30 | #define F77_incY incY
31 | #endif
32 | extern int CBLAS_CallFromC;
33 | extern int RowMajorStrg;
34 | RowMajorStrg = 0;
35 |
36 | CBLAS_CallFromC = 1;
37 | if (order == CblasColMajor)
38 | {
39 | if (Uplo == CblasUpper) UL = 'U';
40 | else if (Uplo == CblasLower) UL = 'L';
41 | else
42 | {
43 | cblas_xerbla(2, "cblas_dsymv","Illegal Uplo setting, %d\n",Uplo );
44 | CBLAS_CallFromC = 0;
45 | RowMajorStrg = 0;
46 | return;
47 | }
48 | #ifdef F77_CHAR
49 | F77_UL = C2F_CHAR(&UL);
50 | #endif
51 | F77_dsymv(F77_UL, &F77_N, &alpha, A, &F77_lda, X,
52 | &F77_incX, &beta, Y, &F77_incY);
53 | }
54 | else if (order == CblasRowMajor)
55 | {
56 | RowMajorStrg = 1;
57 | if (Uplo == CblasUpper) UL = 'L';
58 | else if (Uplo == CblasLower) UL = 'U';
59 | else
60 | {
61 | cblas_xerbla(2, "cblas_dsymv","Illegal Uplo setting, %d\n", Uplo);
62 | CBLAS_CallFromC = 0;
63 | RowMajorStrg = 0;
64 | return;
65 | }
66 | #ifdef F77_CHAR
67 | F77_UL = C2F_CHAR(&UL);
68 | #endif
69 | F77_dsymv(F77_UL, &F77_N, &alpha,
70 | A ,&F77_lda, X,&F77_incX, &beta, Y, &F77_incY);
71 | }
72 | else cblas_xerbla(1, "cblas_dsymv", "Illegal Order setting, %d\n", order);
73 | CBLAS_CallFromC = 0;
74 | RowMajorStrg = 0;
75 | return;
76 | }
77 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_dsyr.c:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * cblas_dsyr.c
4 | * This program is a C interface to dsyr.
5 | * Written by Keita Teranishi
6 | * 4/6/1998
7 | *
8 | */
9 |
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | void cblas_dsyr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
13 | const int N, const double alpha, const double *X,
14 | const int incX, double *A, const int lda)
15 | {
16 | char UL;
17 | #ifdef F77_CHAR
18 | F77_CHAR F77_UL;
19 | #else
20 | #define F77_UL &UL
21 | #endif
22 |
23 | #ifdef F77_INT
24 | F77_INT F77_N=N, F77_incX=incX, F77_lda=lda;
25 | #else
26 | #define F77_N N
27 | #define F77_incX incX
28 | #define F77_lda lda
29 | #endif
30 | extern int CBLAS_CallFromC;
31 | extern int RowMajorStrg;
32 | RowMajorStrg = 0;
33 | CBLAS_CallFromC = 1;
34 | if (order == CblasColMajor)
35 | {
36 | if (Uplo == CblasLower) UL = 'L';
37 | else if (Uplo == CblasUpper) UL = 'U';
38 | else
39 | {
40 | cblas_xerbla(2, "cblas_dsyr","Illegal Uplo setting, %d\n",Uplo );
41 | CBLAS_CallFromC = 0;
42 | RowMajorStrg = 0;
43 | return;
44 | }
45 | #ifdef F77_CHAR
46 | F77_UL = C2F_CHAR(&UL);
47 | #endif
48 |
49 | F77_dsyr(F77_UL, &F77_N, &alpha, X, &F77_incX, A, &F77_lda);
50 |
51 | } else if (order == CblasRowMajor)
52 | {
53 | RowMajorStrg = 1;
54 | if (Uplo == CblasLower) UL = 'U';
55 | else if (Uplo == CblasUpper) UL = 'L';
56 | else
57 | {
58 | cblas_xerbla(2, "cblas_dsyr","Illegal Uplo setting, %d\n",Uplo );
59 | CBLAS_CallFromC = 0;
60 | RowMajorStrg = 0;
61 | return;
62 | }
63 | #ifdef F77_CHAR
64 | F77_UL = C2F_CHAR(&UL);
65 | #endif
66 | F77_dsyr(F77_UL, &F77_N, &alpha, X, &F77_incX, A, &F77_lda);
67 | } else cblas_xerbla(1, "cblas_dsyr", "Illegal Order setting, %d\n", order);
68 | CBLAS_CallFromC = 0;
69 | RowMajorStrg = 0;
70 | return;
71 | }
72 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_dsyr2.c:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * cblas_dsyr2.c
4 | * This program is a C interface to dsyr2.
5 | * Written by Keita Teranishi
6 | * 4/6/1998
7 | *
8 | */
9 |
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | void cblas_dsyr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
13 | const int N, const double alpha, const double *X,
14 | const int incX, const double *Y, const int incY, double *A,
15 | const int lda)
16 | {
17 | char UL;
18 | #ifdef F77_CHAR
19 | F77_CHAR F77_UL;
20 | #else
21 | #define F77_UL &UL
22 | #endif
23 |
24 | #ifdef F77_INT
25 | F77_INT F77_N=N, F77_incX=incX, F77_incY=incY, F77__lda=lda;
26 | #else
27 | #define F77_N N
28 | #define F77_incX incX
29 | #define F77_incY incY
30 | #define F77_lda lda
31 | #endif
32 |
33 | extern int CBLAS_CallFromC;
34 | extern int RowMajorStrg;
35 | RowMajorStrg = 0;
36 | CBLAS_CallFromC = 1;
37 | if (order == CblasColMajor)
38 | {
39 | if (Uplo == CblasLower) UL = 'L';
40 | else if (Uplo == CblasUpper) UL = 'U';
41 | else
42 | {
43 | cblas_xerbla(2, "cblas_dsyr2","Illegal Uplo setting, %d\n",Uplo );
44 | CBLAS_CallFromC = 0;
45 | RowMajorStrg = 0;
46 | return;
47 | }
48 | #ifdef F77_CHAR
49 | F77_UL = C2F_CHAR(&UL);
50 | #endif
51 |
52 | F77_dsyr2(F77_UL, &F77_N, &alpha, X, &F77_incX, Y, &F77_incY, A,
53 | &F77_lda);
54 |
55 | } else if (order == CblasRowMajor)
56 | {
57 | RowMajorStrg = 1;
58 | if (Uplo == CblasLower) UL = 'U';
59 | else if (Uplo == CblasUpper) UL = 'L';
60 | else
61 | {
62 | cblas_xerbla(2, "cblas_dsyr2","Illegal Uplo setting, %d\n",Uplo );
63 | CBLAS_CallFromC = 0;
64 | RowMajorStrg = 0;
65 | return;
66 | }
67 | #ifdef F77_CHAR
68 | F77_UL = C2F_CHAR(&UL);
69 | #endif
70 | F77_dsyr2(F77_UL, &F77_N, &alpha, X, &F77_incX, Y, &F77_incY, A,
71 | &F77_lda);
72 | } else cblas_xerbla(1, "cblas_dsyr2", "Illegal Order setting, %d\n", order);
73 | CBLAS_CallFromC = 0;
74 | RowMajorStrg = 0;
75 | return;
76 | }
77 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_dzasum.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_dzasum.c
3 | *
4 | * The program is a C interface to dzasum.
5 | * It calls the fortran wrapper before calling dzasum.
6 | *
7 | * Written by Keita Teranishi. 2/11/1998
8 | *
9 | */
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | double cblas_dzasum( const int N, const void *X, const int incX)
13 | {
14 | double asum;
15 | #ifdef F77_INT
16 | F77_INT F77_N=N, F77_incX=incX;
17 | #else
18 | #define F77_N N
19 | #define F77_incX incX
20 | #endif
21 | F77_dzasum_sub( &F77_N, X, &F77_incX, &asum);
22 | return asum;
23 | }
24 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_dznrm2.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_dznrm2.c
3 | *
4 | * The program is a C interface to dznrm2.
5 | * It calls the fortran wrapper before calling dznrm2.
6 | *
7 | * Written by Keita Teranishi. 2/11/1998
8 | *
9 | */
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | double cblas_dznrm2( const int N, const void *X, const int incX)
13 | {
14 | double nrm2;
15 | #ifdef F77_INT
16 | F77_INT F77_N=N, F77_incX=incX;
17 | #else
18 | #define F77_N N
19 | #define F77_incX incX
20 | #endif
21 | F77_dznrm2_sub( &F77_N, X, &F77_incX, &nrm2);
22 | return nrm2;
23 | }
24 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_globals.c:
--------------------------------------------------------------------------------
1 | int CBLAS_CallFromC=0;
2 | int RowMajorStrg=0;
3 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_icamax.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_icamax.c
3 | *
4 | * The program is a C interface to icamax.
5 | * It calls the fortran wrapper before calling icamax.
6 | *
7 | * Written by Keita Teranishi. 2/11/1998
8 | *
9 | */
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | CBLAS_INDEX cblas_icamax( const int N, const void *X, const int incX)
13 | {
14 | int iamax;
15 | #ifdef F77_INT
16 | F77_INT F77_N=N, F77_incX=incX;
17 | #else
18 | #define F77_N N
19 | #define F77_incX incX
20 | #endif
21 | F77_icamax_sub( &F77_N, X, &F77_incX, &iamax);
22 | return iamax ? iamax-1 : 0;
23 | }
24 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_idamax.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_idamax.c
3 | *
4 | * The program is a C interface to idamax.
5 | * It calls the fortran wrapper before calling idamax.
6 | *
7 | * Written by Keita Teranishi. 2/11/1998
8 | *
9 | */
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | CBLAS_INDEX cblas_idamax( const int N, const double *X, const int incX)
13 | {
14 | int iamax;
15 | #ifdef F77_INT
16 | F77_INT F77_N=N, F77_incX=incX;
17 | #else
18 | #define F77_N N
19 | #define F77_incX incX
20 | #endif
21 | F77_idamax_sub( &F77_N, X, &F77_incX, &iamax);
22 | return iamax ? iamax-1 : 0;
23 | }
24 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_isamax.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_isamax.c
3 | *
4 | * The program is a C interface to isamax.
5 | * It calls the fortran wrapper before calling isamax.
6 | *
7 | * Written by Keita Teranishi. 2/11/1998
8 | *
9 | */
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | CBLAS_INDEX cblas_isamax( const int N, const float *X, const int incX)
13 | {
14 | int iamax;
15 | #ifdef F77_INT
16 | F77_INT F77_N=N, F77_incX=incX;
17 | #else
18 | #define F77_N N
19 | #define F77_incX incX
20 | #endif
21 | F77_isamax_sub( &F77_N, X, &F77_incX, &iamax);
22 | return iamax ? iamax-1 : 0;
23 | }
24 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_izamax.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_izamax.c
3 | *
4 | * The program is a C interface to izamax.
5 | * It calls the fortran wrapper before calling izamax.
6 | *
7 | * Written by Keita Teranishi. 2/11/1998
8 | *
9 | */
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | CBLAS_INDEX cblas_izamax( const int N, const void *X, const int incX)
13 | {
14 | int iamax;
15 | #ifdef F77_INT
16 | F77_INT F77_N=N, F77_incX=incX;
17 | #else
18 | #define F77_N N
19 | #define F77_incX incX
20 | #endif
21 | F77_izamax_sub( &F77_N, X, &F77_incX, &iamax);
22 | return (iamax ? iamax-1 : 0);
23 | }
24 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_sasum.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_sasum.c
3 | *
4 | * The program is a C interface to sasum.
5 | * It calls the fortran wrapper before calling sasum.
6 | *
7 | * Written by Keita Teranishi. 2/11/1998
8 | *
9 | */
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | float cblas_sasum( const int N, const float *X, const int incX)
13 | {
14 | float asum;
15 | #ifdef F77_INT
16 | F77_INT F77_N=N, F77_incX=incX;
17 | #else
18 | #define F77_N N
19 | #define F77_incX incX
20 | #endif
21 | F77_sasum_sub( &F77_N, X, &F77_incX, &asum);
22 | return asum;
23 | }
24 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_saxpy.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_saxpy.c
3 | *
4 | * The program is a C interface to saxpy.
5 | * It calls the fortran wrapper before calling saxpy.
6 | *
7 | * Written by Keita Teranishi. 2/11/1998
8 | *
9 | */
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | void cblas_saxpy( const int N, const float alpha, const float *X,
13 | const int incX, float *Y, const int incY)
14 | {
15 | #ifdef F77_INT
16 | F77_INT F77_N=N, F77_incX=incX, F77_incY=incY;
17 | #else
18 | #define F77_N N
19 | #define F77_incX incX
20 | #define F77_incY incY
21 | #endif
22 | F77_saxpy( &F77_N, &alpha, X, &F77_incX, Y, &F77_incY);
23 | }
24 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_scasum.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_scasum.c
3 | *
4 | * The program is a C interface to scasum.
5 | * It calls the fortran wrapper before calling scasum.
6 | *
7 | * Written by Keita Teranishi. 2/11/1998
8 | *
9 | */
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | float cblas_scasum( const int N, const void *X, const int incX)
13 | {
14 | float asum;
15 | #ifdef F77_INT
16 | F77_INT F77_N=N, F77_incX=incX;
17 | #else
18 | #define F77_N N
19 | #define F77_incX incX
20 | #endif
21 | F77_scasum_sub( &F77_N, X, &F77_incX, &asum);
22 | return asum;
23 | }
24 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_scnrm2.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_scnrm2.c
3 | *
4 | * The program is a C interface to scnrm2.
5 | * It calls the fortran wrapper before calling scnrm2.
6 | *
7 | * Written by Keita Teranishi. 2/11/1998
8 | *
9 | */
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | float cblas_scnrm2( const int N, const void *X, const int incX)
13 | {
14 | float nrm2;
15 | #ifdef F77_INT
16 | F77_INT F77_N=N, F77_incX=incX;
17 | #else
18 | #define F77_N N
19 | #define F77_incX incX
20 | #endif
21 | F77_scnrm2_sub( &F77_N, X, &F77_incX, &nrm2);
22 | return nrm2;
23 | }
24 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_scopy.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_scopy.c
3 | *
4 | * The program is a C interface to scopy.
5 | *
6 | * Written by Keita Teranishi. 2/11/1998
7 | *
8 | */
9 | #include "cblas.h"
10 | #include "cblas_f77.h"
11 | void cblas_scopy( const int N, const float *X,
12 | const int incX, float *Y, const int incY)
13 | {
14 | #ifdef F77_INT
15 | F77_INT F77_N=N, F77_incX=incX, F77_incY=incY;
16 | #else
17 | #define F77_N N
18 | #define F77_incX incX
19 | #define F77_incY incY
20 | #endif
21 | F77_scopy( &F77_N, X, &F77_incX, Y, &F77_incY);
22 | }
23 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_sdot.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_sdot.c
3 | *
4 | * The program is a C interface to sdot.
5 | * It calls the fortran wrapper before calling sdot.
6 | *
7 | * Written by Keita Teranishi. 2/11/1998
8 | *
9 | */
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | float cblas_sdot( const int N, const float *X,
13 | const int incX, const float *Y, const int incY)
14 | {
15 | float dot;
16 | #ifdef F77_INT
17 | F77_INT F77_N=N, F77_incX=incX, F77_incY=incY;
18 | #else
19 | #define F77_N N
20 | #define F77_incX incX
21 | #define F77_incY incY
22 | #endif
23 | F77_sdot_sub( &F77_N, X, &F77_incX, Y, &F77_incY, &dot);
24 | return dot;
25 | }
26 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_sdsdot.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_sdsdot.c
3 | *
4 | * The program is a C interface to sdsdot.
5 | * It calls the fortran wrapper before calling sdsdot.
6 | *
7 | * Written by Keita Teranishi. 2/11/1998
8 | *
9 | */
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | float cblas_sdsdot( const int N, const float alpha, const float *X,
13 | const int incX, const float *Y, const int incY)
14 | {
15 | float dot;
16 | #ifdef F77_INT
17 | F77_INT F77_N=N, F77_incX=incX, F77_incY=incY;
18 | #else
19 | #define F77_N N
20 | #define F77_incX incX
21 | #define F77_incY incY
22 | #endif
23 | F77_sdsdot_sub( &F77_N, &alpha, X, &F77_incX, Y, &F77_incY, &dot);
24 | return dot;
25 | }
26 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_sger.c:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * cblas_sger.c
4 | * This program is a C interface to sger.
5 | * Written by Keita Teranishi
6 | * 4/6/1998
7 | *
8 | */
9 |
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | void cblas_sger(const enum CBLAS_ORDER order, const int M, const int N,
13 | const float alpha, const float *X, const int incX,
14 | const float *Y, const int incY, float *A, const int lda)
15 | {
16 | #ifdef F77_INT
17 | F77_INT F77_M=M, F77_N=N, F77_lda=lda, F77_incX=incX, F77_incY=incY;
18 | #else
19 | #define F77_M M
20 | #define F77_N N
21 | #define F77_incX incX
22 | #define F77_incY incY
23 | #define F77_lda lda
24 | #endif
25 |
26 | extern int CBLAS_CallFromC;
27 | extern int RowMajorStrg;
28 | RowMajorStrg = 0;
29 |
30 | CBLAS_CallFromC = 1;
31 | if (order == CblasColMajor)
32 | {
33 | F77_sger( &F77_M, &F77_N, &alpha, X, &F77_incX, Y, &F77_incY, A,
34 | &F77_lda);
35 | }
36 | else if (order == CblasRowMajor)
37 | {
38 | RowMajorStrg = 1;
39 | F77_sger( &F77_N, &F77_M, &alpha, Y, &F77_incY, X, &F77_incX, A,
40 | &F77_lda);
41 | }
42 | else cblas_xerbla(1, "cblas_sger", "Illegal Order setting, %d\n", order);
43 | CBLAS_CallFromC = 0;
44 | RowMajorStrg = 0;
45 | return;
46 | }
47 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_snrm2.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_snrm2.c
3 | *
4 | * The program is a C interface to snrm2.
5 | * It calls the fortran wrapper before calling snrm2.
6 | *
7 | * Written by Keita Teranishi. 2/11/1998
8 | *
9 | */
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | float cblas_snrm2( const int N, const float *X, const int incX)
13 | {
14 | float nrm2;
15 | #ifdef F77_INT
16 | F77_INT F77_N=N, F77_incX=incX;
17 | #else
18 | #define F77_N N
19 | #define F77_incX incX
20 | #endif
21 | F77_snrm2_sub( &F77_N, X, &F77_incX, &nrm2);
22 | return nrm2;
23 | }
24 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_srot.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_srot.c
3 | *
4 | * The program is a C interface to srot.
5 | *
6 | * Written by Keita Teranishi. 2/11/1998
7 | *
8 | */
9 | #include "cblas.h"
10 | #include "cblas_f77.h"
11 | void cblas_srot( const int N, float *X, const int incX, float *Y,
12 | const int incY, const float c, const float s)
13 | {
14 | #ifdef F77_INT
15 | F77_INT F77_N=N, F77_incX=incX, F77_incY=incY;
16 | #else
17 | #define F77_N N
18 | #define F77_incX incX
19 | #define F77_incY incY
20 | #endif
21 | F77_srot(&F77_N, X, &F77_incX, Y, &F77_incY, &c, &s);
22 | }
23 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_srotg.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_srotg.c
3 | *
4 | * The program is a C interface to srotg.
5 | *
6 | * Written by Keita Teranishi. 2/11/1998
7 | *
8 | */
9 | #include "cblas.h"
10 | #include "cblas_f77.h"
11 | void cblas_srotg( float *a, float *b, float *c, float *s)
12 | {
13 | F77_srotg(a,b,c,s);
14 | }
15 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_srotm.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_srotm.c
3 | *
4 | * The program is a C interface to srotm.
5 | *
6 | * Written by Keita Teranishi. 2/11/1998
7 | *
8 | */
9 | #include "cblas.h"
10 | #include "cblas_f77.h"
11 | void cblas_srotm( const int N, float *X, const int incX, float *Y,
12 | const int incY, const float *P)
13 | {
14 | #ifdef F77_INT
15 | F77_INT F77_N=N, F77_incX=incX, F77_incY=incY;
16 | #else
17 | #define F77_N N
18 | #define F77_incX incX
19 | #define F77_incY incY
20 | #endif
21 | F77_srotm( &F77_N, X, &F77_incX, Y, &F77_incY, P);
22 | }
23 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_srotmg.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_srotmg.c
3 | *
4 | * The program is a C interface to srotmg.
5 | *
6 | * Written by Keita Teranishi. 2/11/1998
7 | *
8 | */
9 | #include "cblas.h"
10 | #include "cblas_f77.h"
11 | void cblas_srotmg( float *d1, float *d2, float *b1,
12 | const float b2, float *p)
13 | {
14 | F77_srotmg(d1,d2,b1,&b2,p);
15 | }
16 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_ssbmv.c:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * cblas_ssbmv.c
4 | * This program is a C interface to ssbmv.
5 | * Written by Keita Teranishi
6 | * 4/6/1998
7 | *
8 | */
9 | #include "cblas.h"
10 | #include "cblas_f77.h"
11 | void cblas_ssbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
12 | const int N, const int K, const float alpha, const float *A,
13 | const int lda, const float *X, const int incX,
14 | const float beta, float *Y, const int incY)
15 | {
16 | char UL;
17 | #ifdef F77_CHAR
18 | F77_CHAR F77_UL;
19 | #else
20 | #define F77_UL &UL
21 | #endif
22 |
23 | #ifdef F77_INT
24 | F77_INT F77_N=N, F77_K=K, F77_lda=lda, F77_incX=incX, F77_incY=incY;
25 | #else
26 | #define F77_N N
27 | #define F77_K K
28 | #define F77_lda lda
29 | #define F77_incX incX
30 | #define F77_incY incY
31 | #endif
32 | extern int CBLAS_CallFromC;
33 | extern int RowMajorStrg;
34 | RowMajorStrg = 0;
35 |
36 | CBLAS_CallFromC = 1;
37 | if (order == CblasColMajor)
38 | {
39 |
40 | if (Uplo == CblasUpper) UL = 'U';
41 | else if (Uplo == CblasLower) UL = 'L';
42 | else
43 | {
44 | cblas_xerbla(2, "cblas_ssbmv","Illegal Uplo setting, %d\n",Uplo );
45 | CBLAS_CallFromC = 0;
46 | RowMajorStrg = 0;
47 | return;
48 | }
49 | #ifdef F77_CHAR
50 | F77_UL = C2F_CHAR(&UL);
51 | #endif
52 | F77_ssbmv(F77_UL, &F77_N, &F77_K, &alpha, A, &F77_lda, X,
53 | &F77_incX, &beta, Y, &F77_incY);
54 | }else if (order == CblasRowMajor)
55 | {
56 | RowMajorStrg = 1;
57 | if (Uplo == CblasUpper) UL = 'L';
58 | else if (Uplo == CblasLower) UL = 'U';
59 | else
60 | {
61 | cblas_xerbla(2, "cblas_ssbmv","Illegal Uplo setting, %d\n", Uplo);
62 | CBLAS_CallFromC = 0;
63 | RowMajorStrg = 0;
64 | return;
65 | }
66 | #ifdef F77_CHAR
67 | F77_UL = C2F_CHAR(&UL);
68 | #endif
69 | F77_ssbmv(F77_UL, &F77_N, &F77_K, &alpha, A, &F77_lda, X,
70 | &F77_incX, &beta, Y, &F77_incY);
71 | }
72 | else cblas_xerbla(1, "cblas_ssbmv", "Illegal Order setting, %d\n", order);
73 | CBLAS_CallFromC = 0;
74 | RowMajorStrg = 0;
75 | return;
76 | }
77 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_sscal.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_sscal.c
3 | *
4 | * The program is a C interface to sscal.
5 | *
6 | * Written by Keita Teranishi. 2/11/1998
7 | *
8 | */
9 | #include "cblas.h"
10 | #include "cblas_f77.h"
11 | void cblas_sscal( const int N, const float alpha, float *X,
12 | const int incX)
13 | {
14 | #ifdef F77_INT
15 | F77_INT F77_N=N, F77_incX=incX;
16 | #else
17 | #define F77_N N
18 | #define F77_incX incX
19 | #endif
20 | F77_sscal( &F77_N, &alpha, X, &F77_incX);
21 | }
22 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_sspmv.c:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * cblas_sspmv.c
4 | * This program is a C interface to sspmv.
5 | * Written by Keita Teranishi
6 | * 4/6/1998
7 | *
8 | */
9 | #include "cblas.h"
10 | #include "cblas_f77.h"
11 | void cblas_sspmv(const enum CBLAS_ORDER order,
12 | const enum CBLAS_UPLO Uplo, const int N,
13 | const float alpha, const float *AP,
14 | const float *X, const int incX, const float beta,
15 | float *Y, const int incY)
16 | {
17 | char UL;
18 | #ifdef F77_CHAR
19 | F77_CHAR F77_UL;
20 | #else
21 | #define F77_UL &UL
22 | #endif
23 | #ifdef F77_INT
24 | F77_INT F77_N=N, F77_incX=incX, F77_incY=incY;
25 | #else
26 | #define F77_N N
27 | #define F77_incX incX
28 | #define F77_incY incY
29 | #endif
30 | extern int CBLAS_CallFromC;
31 | extern int RowMajorStrg;
32 | RowMajorStrg = 0;
33 |
34 | CBLAS_CallFromC = 1;
35 | if (order == CblasColMajor)
36 | {
37 | if (Uplo == CblasUpper) UL = 'U';
38 | else if (Uplo == CblasLower) UL = 'L';
39 | else
40 | {
41 | cblas_xerbla(2, "cblas_sspmv","Illegal Uplo setting, %d\n",Uplo );
42 | CBLAS_CallFromC = 0;
43 | RowMajorStrg = 0;
44 | return;
45 | }
46 | #ifdef F77_CHAR
47 | F77_UL = C2F_CHAR(&UL);
48 | #endif
49 | F77_sspmv(F77_UL, &F77_N, &alpha, AP, X,
50 | &F77_incX, &beta, Y, &F77_incY);
51 | }
52 | else if (order == CblasRowMajor)
53 | {
54 | RowMajorStrg = 1;
55 | if (Uplo == CblasUpper) UL = 'L';
56 | else if (Uplo == CblasLower) UL = 'U';
57 | else
58 | {
59 | cblas_xerbla(2, "cblas_sspmv","Illegal Uplo setting, %d\n", Uplo);
60 | CBLAS_CallFromC = 0;
61 | RowMajorStrg = 0;
62 | return;
63 | }
64 | #ifdef F77_CHAR
65 | F77_UL = C2F_CHAR(&UL);
66 | #endif
67 | F77_sspmv(F77_UL, &F77_N, &alpha,
68 | AP, X,&F77_incX, &beta, Y, &F77_incY);
69 | }
70 | else cblas_xerbla(1, "cblas_sspmv", "Illegal Order setting, %d\n", order);
71 | CBLAS_CallFromC = 0;
72 | RowMajorStrg = 0;
73 | }
74 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_sspr.c:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * cblas_sspr.c
4 | * This program is a C interface to sspr.
5 | * Written by Keita Teranishi
6 | * 4/6/1998
7 | *
8 | */
9 |
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | void cblas_sspr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
13 | const int N, const float alpha, const float *X,
14 | const int incX, float *Ap)
15 | {
16 | char UL;
17 | #ifdef F77_CHAR
18 | F77_CHAR F77_UL;
19 | #else
20 | #define F77_UL &UL
21 | #endif
22 |
23 | #ifdef F77_INT
24 | F77_INT F77_N=N, F77_incX=incX;
25 | #else
26 | #define F77_N N
27 | #define F77_incX incX
28 | #endif
29 |
30 | extern int CBLAS_CallFromC;
31 | extern int RowMajorStrg;
32 | RowMajorStrg = 0;
33 |
34 | CBLAS_CallFromC = 1;
35 | if (order == CblasColMajor)
36 | {
37 | if (Uplo == CblasLower) UL = 'L';
38 | else if (Uplo == CblasUpper) UL = 'U';
39 | else
40 | {
41 | cblas_xerbla(2, "cblas_sspr","Illegal Uplo setting, %d\n",Uplo );
42 | CBLAS_CallFromC = 0;
43 | RowMajorStrg = 0;
44 | return;
45 | }
46 | #ifdef F77_CHAR
47 | F77_UL = C2F_CHAR(&UL);
48 | #endif
49 |
50 | F77_sspr(F77_UL, &F77_N, &alpha, X, &F77_incX, Ap);
51 |
52 | } else if (order == CblasRowMajor)
53 | {
54 | RowMajorStrg = 1;
55 | if (Uplo == CblasLower) UL = 'U';
56 | else if (Uplo == CblasUpper) UL = 'L';
57 | else
58 | {
59 | cblas_xerbla(2, "cblas_sspr","Illegal Uplo setting, %d\n",Uplo );
60 | CBLAS_CallFromC = 0;
61 | RowMajorStrg = 0;
62 | return;
63 | }
64 | #ifdef F77_CHAR
65 | F77_UL = C2F_CHAR(&UL);
66 | #endif
67 | F77_sspr(F77_UL, &F77_N, &alpha, X, &F77_incX, Ap);
68 | } else cblas_xerbla(1, "cblas_sspr", "Illegal Order setting, %d\n", order);
69 | CBLAS_CallFromC = 0;
70 | RowMajorStrg = 0;
71 | return;
72 | }
73 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_sspr2.c:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * cblas_sspr2.c
4 | * This program is a C interface to sspr2.
5 | * Written by Keita Teranishi
6 | * 4/6/1998
7 | *
8 | */
9 |
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | void cblas_sspr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
13 | const int N, const float alpha, const float *X,
14 | const int incX, const float *Y, const int incY, float *A)
15 | {
16 | char UL;
17 | #ifdef F77_CHAR
18 | F77_CHAR F77_UL;
19 | #else
20 | #define F77_UL &UL
21 | #endif
22 |
23 | #ifdef F77_INT
24 | F77_INT F77_N=N, F77_incX=incX, F77_incY=incY;
25 | #else
26 | #define F77_N N
27 | #define F77_incX incX
28 | #define F77_incY incY
29 | #endif
30 |
31 | extern int CBLAS_CallFromC;
32 | extern int RowMajorStrg;
33 | RowMajorStrg = 0;
34 | CBLAS_CallFromC = 1;
35 | if (order == CblasColMajor)
36 | {
37 | if (Uplo == CblasLower) UL = 'L';
38 | else if (Uplo == CblasUpper) UL = 'U';
39 | else
40 | {
41 | cblas_xerbla(2, "cblas_sspr2","Illegal Uplo setting, %d\n",Uplo );
42 | CBLAS_CallFromC = 0;
43 | RowMajorStrg = 0;
44 | return;
45 | }
46 | #ifdef F77_CHAR
47 | F77_UL = C2F_CHAR(&UL);
48 | #endif
49 |
50 | F77_sspr2(F77_UL, &F77_N, &alpha, X, &F77_incX, Y, &F77_incY, A);
51 |
52 | } else if (order == CblasRowMajor)
53 | {
54 | RowMajorStrg = 1;
55 | if (Uplo == CblasLower) UL = 'U';
56 | else if (Uplo == CblasUpper) UL = 'L';
57 | else
58 | {
59 | cblas_xerbla(2, "cblas_sspr2","Illegal Uplo setting, %d\n",Uplo );
60 | CBLAS_CallFromC = 0;
61 | RowMajorStrg = 0;
62 | return;
63 | }
64 | #ifdef F77_CHAR
65 | F77_UL = C2F_CHAR(&UL);
66 | #endif
67 | F77_sspr2(F77_UL, &F77_N, &alpha, X, &F77_incX, Y, &F77_incY, A);
68 | } else cblas_xerbla(1, "cblas_sspr2", "Illegal Order setting, %d\n", order);
69 | CBLAS_CallFromC = 0;
70 | RowMajorStrg = 0;
71 | }
72 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_sswap.c:
--------------------------------------------------------------------------------
1 | /*
2 | * cblas_sswap.c
3 | *
4 | * The program is a C interface to sswap.
5 | *
6 | * Written by Keita Teranishi. 2/11/1998
7 | *
8 | */
9 | #include "cblas.h"
10 | #include "cblas_f77.h"
11 | void cblas_sswap( const int N, float *X, const int incX, float *Y,
12 | const int incY)
13 | {
14 | #ifdef F77_INT
15 | F77_INT F77_N=N, F77_incX=incX, F77_incY=incY;
16 | #else
17 | #define F77_N N
18 | #define F77_incX incX
19 | #define F77_incY incY
20 | #endif
21 | F77_sswap( &F77_N, X, &F77_incX, Y, &F77_incY);
22 | }
23 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_ssymv.c:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * cblas_ssymv.c
4 | * This program is a C interface to ssymv.
5 | * Written by Keita Teranishi
6 | * 4/6/1998
7 | *
8 | */
9 |
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | void cblas_ssymv(const enum CBLAS_ORDER order,
13 | const enum CBLAS_UPLO Uplo, const int N,
14 | const float alpha, const float *A, const int lda,
15 | const float *X, const int incX, const float beta,
16 | float *Y, const int incY)
17 | {
18 | char UL;
19 | #ifdef F77_CHAR
20 | F77_CHAR F77_UL;
21 | #else
22 | #define F77_UL &UL
23 | #endif
24 | #ifdef F77_INT
25 | F77_INT F77_N=N, F77_lda=lda, F77_incX=incX, F77_incY=incY;
26 | #else
27 | #define F77_N N
28 | #define F77_lda lda
29 | #define F77_incX incX
30 | #define F77_incY incY
31 | #endif
32 | extern int CBLAS_CallFromC;
33 | extern int RowMajorStrg;
34 | RowMajorStrg = 0;
35 |
36 | CBLAS_CallFromC = 1;
37 | if (order == CblasColMajor)
38 | {
39 | if (Uplo == CblasUpper) UL = 'U';
40 | else if (Uplo == CblasLower) UL = 'L';
41 | else
42 | {
43 | cblas_xerbla(2, "cblas_ssymv","Illegal Uplo setting, %d\n",Uplo );
44 | CBLAS_CallFromC = 0;
45 | RowMajorStrg = 0;
46 | return;
47 | }
48 | #ifdef F77_CHAR
49 | F77_UL = C2F_CHAR(&UL);
50 | #endif
51 | F77_ssymv(F77_UL, &F77_N, &alpha, A, &F77_lda, X,
52 | &F77_incX, &beta, Y, &F77_incY);
53 | }
54 | else if (order == CblasRowMajor)
55 | {
56 | RowMajorStrg = 1;
57 | if (Uplo == CblasUpper) UL = 'L';
58 | else if (Uplo == CblasLower) UL = 'U';
59 | else
60 | {
61 | cblas_xerbla(2, "cblas_ssymv","Illegal Uplo setting, %d\n", Uplo);
62 | CBLAS_CallFromC = 0;
63 | RowMajorStrg = 0;
64 | return;
65 | }
66 | #ifdef F77_CHAR
67 | F77_UL = C2F_CHAR(&UL);
68 | #endif
69 | F77_ssymv(F77_UL, &F77_N, &alpha,
70 | A ,&F77_lda, X,&F77_incX, &beta, Y, &F77_incY);
71 | }
72 | else cblas_xerbla(1, "cblas_ssymv", "Illegal Order setting, %d\n", order);
73 | CBLAS_CallFromC = 0;
74 | RowMajorStrg = 0;
75 | return;
76 | }
77 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_ssyr.c:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * cblas_ssyr.c
4 | * This program is a C interface to ssyr.
5 | * Written by Keita Teranishi
6 | * 4/6/1998
7 | *
8 | */
9 | #include "cblas.h"
10 | #include "cblas_f77.h"
11 | void cblas_ssyr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
12 | const int N, const float alpha, const float *X,
13 | const int incX, float *A, const int lda)
14 | {
15 | char UL;
16 | #ifdef F77_CHAR
17 | F77_CHAR F77_UL;
18 | #else
19 | #define F77_UL &UL
20 | #endif
21 |
22 | #ifdef F77_INT
23 | F77_INT F77_N=N, F77_incX=incX, F77_lda=lda;
24 | #else
25 | #define F77_N N
26 | #define F77_incX incX
27 | #define F77_lda lda
28 | #endif
29 | extern int CBLAS_CallFromC;
30 | extern int RowMajorStrg;
31 | RowMajorStrg = 0;
32 | CBLAS_CallFromC = 1;
33 | if (order == CblasColMajor)
34 | {
35 | if (Uplo == CblasLower) UL = 'L';
36 | else if (Uplo == CblasUpper) UL = 'U';
37 | else
38 | {
39 | cblas_xerbla(2, "cblas_ssyr","Illegal Uplo setting, %d\n",Uplo );
40 | CBLAS_CallFromC = 0;
41 | RowMajorStrg = 0;
42 | return;
43 | }
44 | #ifdef F77_CHAR
45 | F77_UL = C2F_CHAR(&UL);
46 | #endif
47 |
48 | F77_ssyr(F77_UL, &F77_N, &alpha, X, &F77_incX, A, &F77_lda);
49 |
50 | } else if (order == CblasRowMajor)
51 | {
52 | RowMajorStrg = 1;
53 | if (Uplo == CblasLower) UL = 'U';
54 | else if (Uplo == CblasUpper) UL = 'L';
55 | else
56 | {
57 | cblas_xerbla(2, "cblas_ssyr","Illegal Uplo setting, %d\n",Uplo );
58 | CBLAS_CallFromC = 0;
59 | RowMajorStrg = 0;
60 | return;
61 | }
62 | #ifdef F77_CHAR
63 | F77_UL = C2F_CHAR(&UL);
64 | #endif
65 | F77_ssyr(F77_UL, &F77_N, &alpha, X, &F77_incX, A, &F77_lda);
66 | } else cblas_xerbla(1, "cblas_ssyr", "Illegal Order setting, %d\n", order);
67 | CBLAS_CallFromC = 0;
68 | RowMajorStrg = 0;
69 | return;
70 | }
71 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_ssyr2.c:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * cblas_ssyr2.c
4 | * This program is a C interface to ssyr2.
5 | * Written by Keita Teranishi
6 | * 4/6/1998
7 | *
8 | */
9 |
10 | #include "cblas.h"
11 | #include "cblas_f77.h"
12 | void cblas_ssyr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
13 | const int N, const float alpha, const float *X,
14 | const int incX, const float *Y, const int incY, float *A,
15 | const int lda)
16 | {
17 | char UL;
18 | #ifdef F77_CHAR
19 | F77_CHAR F77_UL;
20 | #else
21 | #define F77_UL &UL
22 | #endif
23 |
24 | #ifdef F77_INT
25 | F77_INT F77_N=N, F77_incX=incX, F77_incY=incY, F77__lda=lda;
26 | #else
27 | #define F77_N N
28 | #define F77_incX incX
29 | #define F77_incY incY
30 | #define F77_lda lda
31 | #endif
32 |
33 | extern int CBLAS_CallFromC;
34 | extern int RowMajorStrg;
35 | RowMajorStrg = 0;
36 | CBLAS_CallFromC = 1;
37 | if (order == CblasColMajor)
38 | {
39 | if (Uplo == CblasLower) UL = 'L';
40 | else if (Uplo == CblasUpper) UL = 'U';
41 | else
42 | {
43 | cblas_xerbla(2, "cblas_ssyr2","Illegal Uplo setting, %d\n",Uplo );
44 | CBLAS_CallFromC = 0;
45 | RowMajorStrg = 0;
46 | return;
47 | }
48 | #ifdef F77_CHAR
49 | F77_UL = C2F_CHAR(&UL);
50 | #endif
51 |
52 | F77_ssyr2(F77_UL, &F77_N, &alpha, X, &F77_incX, Y, &F77_incY, A,
53 | &F77_lda);
54 |
55 | } else if (order == CblasRowMajor)
56 | {
57 | RowMajorStrg = 1;
58 | if (Uplo == CblasLower) UL = 'U';
59 | else if (Uplo == CblasUpper) UL = 'L';
60 | else
61 | {
62 | cblas_xerbla(2, "cblas_ssyr2","Illegal Uplo setting, %d\n",Uplo );
63 | CBLAS_CallFromC = 0;
64 | RowMajorStrg = 0;
65 | return;
66 | }
67 | #ifdef F77_CHAR
68 | F77_UL = C2F_CHAR(&UL);
69 | #endif
70 | F77_ssyr2(F77_UL, &F77_N, &alpha, X, &F77_incX, Y, &F77_incY, A,
71 | &F77_lda);
72 | } else cblas_xerbla(1, "cblas_ssyr2", "Illegal Order setting, %d\n", order);
73 | CBLAS_CallFromC = 0;
74 | RowMajorStrg = 0;
75 | return;
76 | }
77 |
--------------------------------------------------------------------------------
/netlib/CBLAS/cblas_xerbla.c:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include
5 | #include "cblas.h"
6 | #include "cblas_f77.h"
7 |
8 | void cblas_xerbla(int info, const char *rout, const char *form, ...)
9 | {
10 | extern int RowMajorStrg;
11 | char empty[1] = "";
12 | va_list argptr;
13 |
14 | va_start(argptr, form);
15 |
16 | if (RowMajorStrg)
17 | {
18 | if (strstr(rout,"gemm") != 0)
19 | {
20 | if (info == 5 ) info = 4;
21 | else if (info == 4 ) info = 5;
22 | else if (info == 11) info = 9;
23 | else if (info == 9 ) info = 11;
24 | }
25 | else if (strstr(rout,"symm") != 0 || strstr(rout,"hemm") != 0)
26 | {
27 | if (info == 5 ) info = 4;
28 | else if (info == 4 ) info = 5;
29 | }
30 | else if (strstr(rout,"trmm") != 0 || strstr(rout,"trsm") != 0)
31 | {
32 | if (info == 7 ) info = 6;
33 | else if (info == 6 ) info = 7;
34 | }
35 | else if (strstr(rout,"gemv") != 0)
36 | {
37 | if (info == 4) info = 3;
38 | else if (info == 3) info = 4;
39 | }
40 | else if (strstr(rout,"gbmv") != 0)
41 | {
42 | if (info == 4) info = 3;
43 | else if (info == 3) info = 4;
44 | else if (info == 6) info = 5;
45 | else if (info == 5) info = 6;
46 | }
47 | else if (strstr(rout,"ger") != 0)
48 | {
49 | if (info == 3) info = 2;
50 | else if (info == 2) info = 3;
51 | else if (info == 8) info = 6;
52 | else if (info == 6) info = 8;
53 | }
54 | else if ( (strstr(rout,"her2") != 0 || strstr(rout,"hpr2") != 0)
55 | && strstr(rout,"her2k") == 0 )
56 | {
57 | if (info == 8) info = 6;
58 | else if (info == 6) info = 8;
59 | }
60 | }
61 | if (info)
62 | fprintf(stderr, "Parameter %d to routine %s was incorrect\n", info, rout);
63 | vfprintf(stderr, form, argptr);
64 | va_end(argptr);
65 | if (info && !info)
66 | F77_xerbla(empty, &info); /* Force link of our F77 error handler */
67 | exit(-1);
68 | }
69 |
--------------------------------------------------------------------------------
/netlib/CBLAS/dasumsub.f:
--------------------------------------------------------------------------------
1 | c dasumsun.f
2 | c
3 | c The program is a fortran wrapper for dasum..
4 | c Witten by Keita Teranishi. 2/11/1998
5 | c
6 | subroutine dasumsub(n,x,incx,asum)
7 | c
8 | external dasum
9 | double precision dasum,asum
10 | integer n,incx
11 | double precision x(*)
12 | c
13 | asum=dasum(n,x,incx)
14 | return
15 | end
16 |
--------------------------------------------------------------------------------
/netlib/CBLAS/ddotsub.f:
--------------------------------------------------------------------------------
1 | c ddotsub.f
2 | c
3 | c The program is a fortran wrapper for ddot.
4 | c Witten by Keita Teranishi. 2/11/1998
5 | c
6 | subroutine ddotsub(n,x,incx,y,incy,dot)
7 | c
8 | external ddot
9 | double precision ddot
10 | integer n,incx,incy
11 | double precision x(*),y(*),dot
12 | c
13 | dot=ddot(n,x,incx,y,incy)
14 | return
15 | end
16 |
--------------------------------------------------------------------------------
/netlib/CBLAS/dnrm2sub.f:
--------------------------------------------------------------------------------
1 | c dnrm2sub.f
2 | c
3 | c The program is a fortran wrapper for dnrm2.
4 | c Witten by Keita Teranishi. 2/11/1998
5 | c
6 | subroutine dnrm2sub(n,x,incx,nrm2)
7 | c
8 | external dnrm2
9 | double precision dnrm2,nrm2
10 | integer n,incx
11 | double precision x(*)
12 | c
13 | nrm2=dnrm2(n,x,incx)
14 | return
15 | end
16 |
--------------------------------------------------------------------------------
/netlib/CBLAS/dsdotsub.f:
--------------------------------------------------------------------------------
1 | c dsdotsub.f
2 | c
3 | c The program is a fortran wrapper for dsdot.
4 | c Witten by Keita Teranishi. 2/11/1998
5 | c
6 | subroutine dsdotsub(n,x,incx,y,incy,dot)
7 | c
8 | external dsdot
9 | double precision dsdot,dot
10 | integer n,incx,incy
11 | real x(*),y(*)
12 | c
13 | dot=dsdot(n,x,incx,y,incy)
14 | return
15 | end
16 |
--------------------------------------------------------------------------------
/netlib/CBLAS/dzasumsub.f:
--------------------------------------------------------------------------------
1 | c dzasumsub.f
2 | c
3 | c The program is a fortran wrapper for dzasum.
4 | c Witten by Keita Teranishi. 2/11/1998
5 | c
6 | subroutine dzasumsub(n,x,incx,asum)
7 | c
8 | external dzasum
9 | double precision dzasum,asum
10 | integer n,incx
11 | double complex x(*)
12 | c
13 | asum=dzasum(n,x,incx)
14 | return
15 | end
16 |
--------------------------------------------------------------------------------
/netlib/CBLAS/dznrm2sub.f:
--------------------------------------------------------------------------------
1 | c dznrm2sub.f
2 | c
3 | c The program is a fortran wrapper for dznrm2.
4 | c Witten by Keita Teranishi. 2/11/1998
5 | c
6 | subroutine dznrm2sub(n,x,incx,nrm2)
7 | c
8 | external dznrm2
9 | double precision dznrm2,nrm2
10 | integer n,incx
11 | double complex x(*)
12 | c
13 | nrm2=dznrm2(n,x,incx)
14 | return
15 | end
16 |
--------------------------------------------------------------------------------
/netlib/CBLAS/icamaxsub.f:
--------------------------------------------------------------------------------
1 | c icamaxsub.f
2 | c
3 | c The program is a fortran wrapper for icamax.
4 | c Witten by Keita Teranishi. 2/11/1998
5 | c
6 | subroutine icamaxsub(n,x,incx,iamax)
7 | c
8 | external icamax
9 | integer icamax,iamax
10 | integer n,incx
11 | complex x(*)
12 | c
13 | iamax=icamax(n,x,incx)
14 | return
15 | end
16 |
--------------------------------------------------------------------------------
/netlib/CBLAS/idamaxsub.f:
--------------------------------------------------------------------------------
1 | c icamaxsub.f
2 | c
3 | c The program is a fortran wrapper for idamax.
4 | c Witten by Keita Teranishi. 2/22/1998
5 | c
6 | subroutine idamaxsub(n,x,incx,iamax)
7 | c
8 | external idamax
9 | integer idamax,iamax
10 | integer n,incx
11 | double precision x(*)
12 | c
13 | iamax=idamax(n,x,incx)
14 | return
15 | end
16 |
--------------------------------------------------------------------------------
/netlib/CBLAS/isamaxsub.f:
--------------------------------------------------------------------------------
1 | c isamaxsub.f
2 | c
3 | c The program is a fortran wrapper for isamax.
4 | c Witten by Keita Teranishi. 2/11/1998
5 | c
6 | subroutine isamaxsub(n,x,incx,iamax)
7 | c
8 | external isamax
9 | integer isamax,iamax
10 | integer n,incx
11 | real x(*)
12 | c
13 | iamax=isamax(n,x,incx)
14 | return
15 | end
16 |
--------------------------------------------------------------------------------
/netlib/CBLAS/izamaxsub.f:
--------------------------------------------------------------------------------
1 | c izamaxsub.f
2 | c
3 | c The program is a fortran wrapper for izamax.
4 | c Witten by Keita Teranishi. 2/11/1998
5 | c
6 | subroutine izamaxsub(n,x,incx,iamax)
7 | c
8 | external izamax
9 | integer izamax,iamax
10 | integer n,incx
11 | double complex x(*)
12 | c
13 | iamax=izamax(n,x,incx)
14 | return
15 | end
16 |
--------------------------------------------------------------------------------
/netlib/CBLAS/sasumsub.f:
--------------------------------------------------------------------------------
1 | c sasumsub.f
2 | c
3 | c The program is a fortran wrapper for sasum.
4 | c Witten by Keita Teranishi. 2/11/1998
5 | c
6 | subroutine sasumsub(n,x,incx,asum)
7 | c
8 | external sasum
9 | real sasum,asum
10 | integer n,incx
11 | real x(*)
12 | c
13 | asum=sasum(n,x,incx)
14 | return
15 | end
16 |
--------------------------------------------------------------------------------
/netlib/CBLAS/scasumsub.f:
--------------------------------------------------------------------------------
1 | c scasumsub.f
2 | c
3 | c The program is a fortran wrapper for scasum.
4 | c Witten by Keita Teranishi. 2/11/1998
5 | c
6 | subroutine scasumsub(n,x,incx,asum)
7 | c
8 | external scasum
9 | real scasum,asum
10 | integer n,incx
11 | complex x(*)
12 | c
13 | asum=scasum(n,x,incx)
14 | return
15 | end
16 |
--------------------------------------------------------------------------------
/netlib/CBLAS/scnrm2sub.f:
--------------------------------------------------------------------------------
1 | c scnrm2sub.f
2 | c
3 | c The program is a fortran wrapper for scnrm2.
4 | c Witten by Keita Teranishi. 2/11/1998
5 | c
6 | subroutine scnrm2sub(n,x,incx,nrm2)
7 | c
8 | external scnrm2
9 | real scnrm2,nrm2
10 | integer n,incx
11 | complex x(*)
12 | c
13 | nrm2=scnrm2(n,x,incx)
14 | return
15 | end
16 |
--------------------------------------------------------------------------------
/netlib/CBLAS/sdotsub.f:
--------------------------------------------------------------------------------
1 | c sdotsub.f
2 | c
3 | c The program is a fortran wrapper for sdot.
4 | c Witten by Keita Teranishi. 2/11/1998
5 | c
6 | subroutine sdotsub(n,x,incx,y,incy,dot)
7 | c
8 | external sdot
9 | real sdot
10 | integer n,incx,incy
11 | real x(*),y(*),dot
12 | c
13 | dot=sdot(n,x,incx,y,incy)
14 | return
15 | end
16 |
--------------------------------------------------------------------------------
/netlib/CBLAS/sdsdotsub.f:
--------------------------------------------------------------------------------
1 | c sdsdotsub.f
2 | c
3 | c The program is a fortran wrapper for sdsdot.
4 | c Witten by Keita Teranishi. 2/11/1998
5 | c
6 | subroutine sdsdotsub(n,x,incx,y,incy,dot)
7 | c
8 | external sdsdot
9 | real sdsdot,dot
10 | integer n,incx,incy
11 | real x(*),y(*)
12 | c
13 | dot=sdsdot(n,x,incx,y,incy)
14 | return
15 | end
16 |
--------------------------------------------------------------------------------
/netlib/CBLAS/snrm2sub.f:
--------------------------------------------------------------------------------
1 | c snrm2sub.f
2 | c
3 | c The program is a fortran wrapper for snrm2.
4 | c Witten by Keita Teranishi. 2/11/1998
5 | c
6 | subroutine snrm2sub(n,x,incx,nrm2)
7 | c
8 | external snrm2
9 | real snrm2,nrm2
10 | integer n,incx
11 | real x(*)
12 | c
13 | nrm2=snrm2(n,x,incx)
14 | return
15 | end
16 |
--------------------------------------------------------------------------------
/netlib/JNI/netlib-jni.h:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | typedef jobject jfloatw;
5 | typedef jobject jdoublew;
6 | typedef jobject jintw;
7 | typedef jobject jstringw;
8 | typedef jobject jbooleanw;
9 |
10 |
11 | // convenience methods for dealing with the CBLAS (not BLAS) specific enums
12 | // our API is using the Fortran-style char* system.
13 | enum CBLAS_TRANSPOSE getCblasTrans(const char *);
14 | enum CBLAS_UPLO getCblasUpLo(const char *);
15 | enum CBLAS_SIDE getCblasSide(const char *);
16 | enum CBLAS_DIAG getCblasDiag(const char *);
17 |
18 |
19 | /* Convenience for checking if we ran out of memory */
20 | void check_memory(JNIEnv *, void *);
21 |
22 |
23 | /* Convenience for converting between jboolean (Java Boolean) and int (Fortran LOGICAL). */
24 | int jboolean2int(jboolean b);
25 | jboolean int2jboolean(int i);
26 | int* jbooleanArray2intArray(JNIEnv * env, jboolean * a, jint size);
27 | void intArray2jbooleanArray(int * a, jboolean * b, jint size);
28 |
--------------------------------------------------------------------------------
/netlib/LAPACK/VARIANTS/qr/LL/sceil.f:
--------------------------------------------------------------------------------
1 | C> \brief \b SCEIL
2 | *
3 | * =========== DOCUMENTATION ===========
4 | *
5 | * Online html documentation available at
6 | * http://www.netlib.org/lapack/explore-html/
7 | *
8 | * Definition:
9 | * ===========
10 | *
11 | * REAL FUNCTION SCEIL( A )
12 | *
13 | * .. Scalar Arguments ..
14 | * REAL A
15 | * ..
16 | *
17 | * =====================================================================
18 | *
19 | * .. Intrinsic Functions ..
20 | * INTRINSIC INT
21 | * ..
22 | * .. Executable Statements ..*
23 | *
24 | * IF (A-INT(A).EQ.0) THEN
25 | * SCEIL = A
26 | * ELSE IF (A.GT.0) THEN
27 | * SCEIL = INT(A)+1;
28 | * ELSE
29 | * SCEIL = INT(A)
30 | * END IF
31 | *
32 | * RETURN
33 | *
34 | * END
35 | * Purpose
36 | * =======
37 | *
38 | C>\details \b Purpose:
39 | C>\verbatim
40 | C>\endverbatim
41 | *
42 | * Arguments:
43 | * ==========
44 | *
45 | *
46 | * Authors:
47 | * ========
48 | *
49 | C> \author Univ. of Tennessee
50 | C> \author Univ. of California Berkeley
51 | C> \author Univ. of Colorado Denver
52 | C> \author NAG Ltd.
53 | *
54 | C> \date November 2011
55 | *
56 | C> \ingroup variantsOTHERcomputational
57 | *
58 | * =====================================================================
59 | REAL FUNCTION SCEIL( A )
60 | *
61 | * -- LAPACK computational routine (version 3.1) --
62 | * -- LAPACK is a software package provided by Univ. of Tennessee, --
63 | * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
64 | * November 2011
65 | *
66 | * .. Scalar Arguments ..*
67 | REAL A
68 | * ..
69 | *
70 | * =====================================================================
71 | *
72 | * .. Intrinsic Functions ..
73 | INTRINSIC INT
74 | * ..
75 | * .. Executable Statements ..*
76 | *
77 | IF (A-INT(A).EQ.0) THEN
78 | SCEIL = A
79 | ELSE IF (A.GT.0) THEN
80 | SCEIL = INT(A)+1;
81 | ELSE
82 | SCEIL = INT(A)
83 | END IF
84 |
85 | RETURN
86 | *
87 | END
88 |
--------------------------------------------------------------------------------
/netlib/LAPACK/disnan.f:
--------------------------------------------------------------------------------
1 | *> \brief \b DISNAN tests input for NaN.
2 | *
3 | * =========== DOCUMENTATION ===========
4 | *
5 | * Online html documentation available at
6 | * http://www.netlib.org/lapack/explore-html/
7 | *
8 | *> \htmlonly
9 | *> Download DISNAN + dependencies
10 | *>
11 | *> [TGZ]
12 | *>
13 | *> [ZIP]
14 | *>
15 | *> [TXT]
16 | *> \endhtmlonly
17 | *
18 | * Definition:
19 | * ===========
20 | *
21 | * LOGICAL FUNCTION DISNAN( DIN )
22 | *
23 | * .. Scalar Arguments ..
24 | * DOUBLE PRECISION DIN
25 | * ..
26 | *
27 | *
28 | *> \par Purpose:
29 | * =============
30 | *>
31 | *> \verbatim
32 | *>
33 | *> DISNAN returns .TRUE. if its argument is NaN, and .FALSE.
34 | *> otherwise. To be replaced by the Fortran 2003 intrinsic in the
35 | *> future.
36 | *> \endverbatim
37 | *
38 | * Arguments:
39 | * ==========
40 | *
41 | *> \param[in] DIN
42 | *> \verbatim
43 | *> DIN is DOUBLE PRECISION
44 | *> Input to test for NaN.
45 | *> \endverbatim
46 | *
47 | * Authors:
48 | * ========
49 | *
50 | *> \author Univ. of Tennessee
51 | *> \author Univ. of California Berkeley
52 | *> \author Univ. of Colorado Denver
53 | *> \author NAG Ltd.
54 | *
55 | *> \date September 2012
56 | *
57 | *> \ingroup auxOTHERauxiliary
58 | *
59 | * =====================================================================
60 | LOGICAL FUNCTION DISNAN( DIN )
61 | *
62 | * -- LAPACK auxiliary routine (version 3.4.2) --
63 | * -- LAPACK is a software package provided by Univ. of Tennessee, --
64 | * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
65 | * September 2012
66 | *
67 | * .. Scalar Arguments ..
68 | DOUBLE PRECISION DIN
69 | * ..
70 | *
71 | * =====================================================================
72 | *
73 | * .. External Functions ..
74 | LOGICAL DLAISNAN
75 | EXTERNAL DLAISNAN
76 | * ..
77 | * .. Executable Statements ..
78 | DISNAN = DLAISNAN(DIN,DIN)
79 | RETURN
80 | END
81 |
--------------------------------------------------------------------------------
/netlib/LAPACK/ilaver.f:
--------------------------------------------------------------------------------
1 | *> \brief \b ILAVER returns the LAPACK version.
2 | **
3 | * =========== DOCUMENTATION ===========
4 | *
5 | * Online html documentation available at
6 | * http://www.netlib.org/lapack/explore-html/
7 | *
8 | * Definition:
9 | * ===========
10 | *
11 | * SUBROUTINE ILAVER( VERS_MAJOR, VERS_MINOR, VERS_PATCH )
12 | *
13 | * INTEGER VERS_MAJOR, VERS_MINOR, VERS_PATCH
14 | *
15 | *
16 | *> \par Purpose:
17 | * =============
18 | *>
19 | *> \verbatim
20 | *>
21 | *> This subroutine returns the LAPACK version.
22 | *> \endverbatim
23 | *
24 | * Arguments:
25 | * ==========
26 | *
27 | *> \param[out] VERS_MAJOR
28 | *> return the lapack major version
29 | *>
30 | *> \param[out] VERS_MINOR
31 | *> return the lapack minor version from the major version
32 | *>
33 | *> \param[out] VERS_PATCH
34 | *> return the lapack patch version from the minor version
35 | *
36 | * Authors:
37 | * ========
38 | *
39 | *> \author Univ. of Tennessee
40 | *> \author Univ. of California Berkeley
41 | *> \author Univ. of Colorado Denver
42 | *> \author NAG Ltd.
43 | *
44 | *> \date September 2012
45 | *
46 | *> \ingroup auxOTHERauxiliary
47 | *
48 | * =====================================================================
49 | SUBROUTINE ILAVER( VERS_MAJOR, VERS_MINOR, VERS_PATCH )
50 | *
51 | * -- LAPACK computational routine (version 3.4.2) --
52 | * -- LAPACK is a software package provided by Univ. of Tennessee, --
53 | * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
54 | * September 2012
55 | *
56 | * =====================================================================
57 | *
58 | INTEGER VERS_MAJOR, VERS_MINOR, VERS_PATCH
59 | * =====================================================================
60 | VERS_MAJOR = 3
61 | VERS_MINOR = 4
62 | VERS_PATCH = 2
63 | * =====================================================================
64 | *
65 | RETURN
66 | END
67 |
--------------------------------------------------------------------------------
/netlib/LAPACK/sisnan.f:
--------------------------------------------------------------------------------
1 | *> \brief \b SISNAN tests input for NaN.
2 | *
3 | * =========== DOCUMENTATION ===========
4 | *
5 | * Online html documentation available at
6 | * http://www.netlib.org/lapack/explore-html/
7 | *
8 | *> \htmlonly
9 | *> Download SISNAN + dependencies
10 | *>
11 | *> [TGZ]
12 | *>
13 | *> [ZIP]
14 | *>
15 | *> [TXT]
16 | *> \endhtmlonly
17 | *
18 | * Definition:
19 | * ===========
20 | *
21 | * LOGICAL FUNCTION SISNAN( SIN )
22 | *
23 | * .. Scalar Arguments ..
24 | * REAL SIN
25 | * ..
26 | *
27 | *
28 | *> \par Purpose:
29 | * =============
30 | *>
31 | *> \verbatim
32 | *>
33 | *> SISNAN returns .TRUE. if its argument is NaN, and .FALSE.
34 | *> otherwise. To be replaced by the Fortran 2003 intrinsic in the
35 | *> future.
36 | *> \endverbatim
37 | *
38 | * Arguments:
39 | * ==========
40 | *
41 | *> \param[in] SIN
42 | *> \verbatim
43 | *> SIN is REAL
44 | *> Input to test for NaN.
45 | *> \endverbatim
46 | *
47 | * Authors:
48 | * ========
49 | *
50 | *> \author Univ. of Tennessee
51 | *> \author Univ. of California Berkeley
52 | *> \author Univ. of Colorado Denver
53 | *> \author NAG Ltd.
54 | *
55 | *> \date September 2012
56 | *
57 | *> \ingroup auxOTHERauxiliary
58 | *
59 | * =====================================================================
60 | LOGICAL FUNCTION SISNAN( SIN )
61 | *
62 | * -- LAPACK auxiliary routine (version 3.4.2) --
63 | * -- LAPACK is a software package provided by Univ. of Tennessee, --
64 | * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
65 | * September 2012
66 | *
67 | * .. Scalar Arguments ..
68 | REAL SIN
69 | * ..
70 | *
71 | * =====================================================================
72 | *
73 | * .. External Functions ..
74 | LOGICAL SLAISNAN
75 | EXTERNAL SLAISNAN
76 | * ..
77 | * .. Executable Statements ..
78 | SISNAN = SLAISNAN(SIN,SIN)
79 | RETURN
80 | END
81 |
--------------------------------------------------------------------------------
/netlib/LAPACKE/lapacke_dlamch.c:
--------------------------------------------------------------------------------
1 | /*****************************************************************************
2 | Copyright (c) 2011, Intel Corp.
3 | All rights reserved.
4 |
5 | Redistribution and use in source and binary forms, with or without
6 | modification, are permitted provided that the following conditions are met:
7 |
8 | * Redistributions of source code must retain the above copyright notice,
9 | this list of conditions and the following disclaimer.
10 | * Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 | * Neither the name of Intel Corporation nor the names of its contributors
14 | may be used to endorse or promote products derived from this software
15 | without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27 | THE POSSIBILITY OF SUCH DAMAGE.
28 | *****************************************************************************
29 | * Contents: Native high-level C interface to LAPACK function dlamch
30 | * Author: Intel Corporation
31 | * Generated November, 2011
32 | *****************************************************************************/
33 |
34 | #include "lapacke_utils.h"
35 |
36 | double LAPACKE_dlamch( char cmach )
37 | {
38 | return LAPACKE_dlamch_work( cmach );
39 | }
40 |
--------------------------------------------------------------------------------
/netlib/LAPACKE/lapacke_dlamch_work.c:
--------------------------------------------------------------------------------
1 | /*****************************************************************************
2 | Copyright (c) 2011, Intel Corp.
3 | All rights reserved.
4 |
5 | Redistribution and use in source and binary forms, with or without
6 | modification, are permitted provided that the following conditions are met:
7 |
8 | * Redistributions of source code must retain the above copyright notice,
9 | this list of conditions and the following disclaimer.
10 | * Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 | * Neither the name of Intel Corporation nor the names of its contributors
14 | may be used to endorse or promote products derived from this software
15 | without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27 | THE POSSIBILITY OF SUCH DAMAGE.
28 | *****************************************************************************
29 | * Contents: Native middle-level C interface to LAPACK function dlamch
30 | * Author: Intel Corporation
31 | * Generated November, 2011
32 | *****************************************************************************/
33 |
34 | #include "lapacke_utils.h"
35 |
36 | double LAPACKE_dlamch_work( char cmach )
37 | {
38 | lapack_int info = 0;
39 | double res;
40 | /* Call LAPACK function and adjust info */
41 | res = LAPACK_dlamch( &cmach );
42 | return res;
43 | }
44 |
--------------------------------------------------------------------------------
/netlib/LAPACKE/lapacke_dlapy2_work.c:
--------------------------------------------------------------------------------
1 | /*****************************************************************************
2 | Copyright (c) 2011, Intel Corp.
3 | All rights reserved.
4 |
5 | Redistribution and use in source and binary forms, with or without
6 | modification, are permitted provided that the following conditions are met:
7 |
8 | * Redistributions of source code must retain the above copyright notice,
9 | this list of conditions and the following disclaimer.
10 | * Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 | * Neither the name of Intel Corporation nor the names of its contributors
14 | may be used to endorse or promote products derived from this software
15 | without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27 | THE POSSIBILITY OF SUCH DAMAGE.
28 | *****************************************************************************
29 | * Contents: Native middle-level C interface to LAPACK function dlapy2
30 | * Author: Intel Corporation
31 | * Generated November, 2011
32 | *****************************************************************************/
33 |
34 | #include "lapacke_utils.h"
35 |
36 | double LAPACKE_dlapy2_work( double x, double y )
37 | {
38 | double res = 0.;
39 | /* Call LAPACK function and adjust info */
40 | res = LAPACK_dlapy2( &x, &y );
41 | return res;
42 | }
43 |
--------------------------------------------------------------------------------
/netlib/LAPACKE/lapacke_dlapy3_work.c:
--------------------------------------------------------------------------------
1 | /*****************************************************************************
2 | Copyright (c) 2011, Intel Corp.
3 | All rights reserved.
4 |
5 | Redistribution and use in source and binary forms, with or without
6 | modification, are permitted provided that the following conditions are met:
7 |
8 | * Redistributions of source code must retain the above copyright notice,
9 | this list of conditions and the following disclaimer.
10 | * Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 | * Neither the name of Intel Corporation nor the names of its contributors
14 | may be used to endorse or promote products derived from this software
15 | without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27 | THE POSSIBILITY OF SUCH DAMAGE.
28 | *****************************************************************************
29 | * Contents: Native middle-level C interface to LAPACK function dlapy3
30 | * Author: Intel Corporation
31 | * Generated November, 2011
32 | *****************************************************************************/
33 |
34 | #include "lapacke_utils.h"
35 |
36 | double LAPACKE_dlapy3_work( double x, double y, double z )
37 | {
38 | double res = 0.;
39 | /* Call LAPACK function and adjust info */
40 | res = LAPACK_dlapy3( &x, &y, &z );
41 | return res;
42 | }
43 |
--------------------------------------------------------------------------------
/netlib/LAPACKE/lapacke_dlarnv.c:
--------------------------------------------------------------------------------
1 | /*****************************************************************************
2 | Copyright (c) 2011, Intel Corp.
3 | All rights reserved.
4 |
5 | Redistribution and use in source and binary forms, with or without
6 | modification, are permitted provided that the following conditions are met:
7 |
8 | * Redistributions of source code must retain the above copyright notice,
9 | this list of conditions and the following disclaimer.
10 | * Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 | * Neither the name of Intel Corporation nor the names of its contributors
14 | may be used to endorse or promote products derived from this software
15 | without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27 | THE POSSIBILITY OF SUCH DAMAGE.
28 | *****************************************************************************
29 | * Contents: Native high-level C interface to LAPACK function dlarnv
30 | * Author: Intel Corporation
31 | * Generated November, 2011
32 | *****************************************************************************/
33 |
34 | #include "lapacke_utils.h"
35 |
36 | lapack_int LAPACKE_dlarnv( lapack_int idist, lapack_int* iseed, lapack_int n,
37 | double* x )
38 | {
39 | return LAPACKE_dlarnv_work( idist, iseed, n, x );
40 | }
41 |
--------------------------------------------------------------------------------
/netlib/LAPACKE/lapacke_dlasrt_work.c:
--------------------------------------------------------------------------------
1 | /*****************************************************************************
2 | Copyright (c) 2011, Intel Corp.
3 | All rights reserved.
4 |
5 | Redistribution and use in source and binary forms, with or without
6 | modification, are permitted provided that the following conditions are met:
7 |
8 | * Redistributions of source code must retain the above copyright notice,
9 | this list of conditions and the following disclaimer.
10 | * Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 | * Neither the name of Intel Corporation nor the names of its contributors
14 | may be used to endorse or promote products derived from this software
15 | without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27 | THE POSSIBILITY OF SUCH DAMAGE.
28 | *****************************************************************************
29 | * Contents: Native middle-level C interface to LAPACK function dlasrt
30 | * Author: Intel Corporation
31 | * Generated May, 2011
32 | *****************************************************************************/
33 |
34 | #include "lapacke_utils.h"
35 |
36 | lapack_int LAPACKE_dlasrt_work( char id, lapack_int n, double* d )
37 | {
38 | lapack_int info = 0;
39 | /* Call LAPACK function and adjust info */
40 | LAPACK_dlasrt( &id, &n, d, &info );
41 | return info;
42 | }
43 |
--------------------------------------------------------------------------------
/netlib/LAPACKE/lapacke_dpttrf_work.c:
--------------------------------------------------------------------------------
1 | /*****************************************************************************
2 | Copyright (c) 2011, Intel Corp.
3 | All rights reserved.
4 |
5 | Redistribution and use in source and binary forms, with or without
6 | modification, are permitted provided that the following conditions are met:
7 |
8 | * Redistributions of source code must retain the above copyright notice,
9 | this list of conditions and the following disclaimer.
10 | * Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 | * Neither the name of Intel Corporation nor the names of its contributors
14 | may be used to endorse or promote products derived from this software
15 | without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27 | THE POSSIBILITY OF SUCH DAMAGE.
28 | *****************************************************************************
29 | * Contents: Native middle-level C interface to LAPACK function dpttrf
30 | * Author: Intel Corporation
31 | * Generated November, 2011
32 | *****************************************************************************/
33 |
34 | #include "lapacke_utils.h"
35 |
36 | lapack_int LAPACKE_dpttrf_work( lapack_int n, double* d, double* e )
37 | {
38 | lapack_int info = 0;
39 | /* Call LAPACK function and adjust info */
40 | LAPACK_dpttrf( &n, d, e, &info );
41 | return info;
42 | }
43 |
--------------------------------------------------------------------------------
/netlib/LAPACKE/lapacke_dsterf_work.c:
--------------------------------------------------------------------------------
1 | /*****************************************************************************
2 | Copyright (c) 2011, Intel Corp.
3 | All rights reserved.
4 |
5 | Redistribution and use in source and binary forms, with or without
6 | modification, are permitted provided that the following conditions are met:
7 |
8 | * Redistributions of source code must retain the above copyright notice,
9 | this list of conditions and the following disclaimer.
10 | * Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 | * Neither the name of Intel Corporation nor the names of its contributors
14 | may be used to endorse or promote products derived from this software
15 | without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27 | THE POSSIBILITY OF SUCH DAMAGE.
28 | *****************************************************************************
29 | * Contents: Native middle-level C interface to LAPACK function dsterf
30 | * Author: Intel Corporation
31 | * Generated November, 2011
32 | *****************************************************************************/
33 |
34 | #include "lapacke_utils.h"
35 |
36 | lapack_int LAPACKE_dsterf_work( lapack_int n, double* d, double* e )
37 | {
38 | lapack_int info = 0;
39 | /* Call LAPACK function and adjust info */
40 | LAPACK_dsterf( &n, d, e, &info );
41 | return info;
42 | }
43 |
--------------------------------------------------------------------------------
/netlib/LAPACKE/lapacke_lsame.c:
--------------------------------------------------------------------------------
1 | /*****************************************************************************
2 | Copyright (c) 2010, Intel Corp.
3 | All rights reserved.
4 |
5 | Redistribution and use in source and binary forms, with or without
6 | modification, are permitted provided that the following conditions are met:
7 |
8 | * Redistributions of source code must retain the above copyright notice,
9 | this list of conditions and the following disclaimer.
10 | * Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 | * Neither the name of Intel Corporation nor the names of its contributors
14 | may be used to endorse or promote products derived from this software
15 | without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27 | THE POSSIBILITY OF SUCH DAMAGE.
28 | ******************************************************************************
29 | * Contents: Native C interface to LAPACK lsame
30 | * Author: Intel Corporation
31 | * Created in January, 2010
32 | *****************************************************************************/
33 |
34 | #include "lapacke_utils.h"
35 |
36 | lapack_logical LAPACKE_lsame( char ca, char cb )
37 | {
38 | return (lapack_logical) LAPACK_lsame( &ca, &cb, 1, 1 );
39 | }
40 |
41 |
42 |
--------------------------------------------------------------------------------
/netlib/LAPACKE/lapacke_mangling.h:
--------------------------------------------------------------------------------
1 | #ifndef LAPACK_HEADER_INCLUDED
2 | #define LAPACK_HEADER_INCLUDED
3 |
4 | #ifndef LAPACK_GLOBAL
5 | #if defined(LAPACK_GLOBAL_PATTERN_LC) || defined(ADD_)
6 | #define LAPACK_GLOBAL(lcname,UCNAME) lcname##_
7 | #elif defined(LAPACK_GLOBAL_PATTERN_UC) || defined(UPPER)
8 | #define LAPACK_GLOBAL(lcname,UCNAME) UCNAME
9 | #elif defined(LAPACK_GLOBAL_PATTERN_MC) || defined(NOCHANGE)
10 | #define LAPACK_GLOBAL(lcname,UCNAME) lcname
11 | #else
12 | #define LAPACK_GLOBAL(lcname,UCNAME) lcname##_
13 | #endif
14 | #endif
15 |
16 | #endif
17 |
18 |
--------------------------------------------------------------------------------
/netlib/LAPACKE/lapacke_mangling_with_flags.h:
--------------------------------------------------------------------------------
1 | #ifndef LAPACK_HEADER_INCLUDED
2 | #define LAPACK_HEADER_INCLUDED
3 |
4 | #ifndef LAPACK_GLOBAL
5 | #if defined(LAPACK_GLOBAL_PATTERN_LC) || defined(ADD_)
6 | #define LAPACK_GLOBAL(lcname,UCNAME) lcname##_
7 | #elif defined(LAPACK_GLOBAL_PATTERN_UC) || defined(UPPER)
8 | #define LAPACK_GLOBAL(lcname,UCNAME) UCNAME
9 | #elif defined(LAPACK_GLOBAL_PATTERN_MC) || defined(NOCHANGE)
10 | #define LAPACK_GLOBAL(lcname,UCNAME) lcname
11 | #else
12 | #define LAPACK_GLOBAL(lcname,UCNAME) lcname##_
13 | #endif
14 | #endif
15 |
16 | #endif
17 |
18 |
--------------------------------------------------------------------------------
/netlib/LAPACKE/lapacke_slamch.c:
--------------------------------------------------------------------------------
1 | /*****************************************************************************
2 | Copyright (c) 2011, Intel Corp.
3 | All rights reserved.
4 |
5 | Redistribution and use in source and binary forms, with or without
6 | modification, are permitted provided that the following conditions are met:
7 |
8 | * Redistributions of source code must retain the above copyright notice,
9 | this list of conditions and the following disclaimer.
10 | * Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 | * Neither the name of Intel Corporation nor the names of its contributors
14 | may be used to endorse or promote products derived from this software
15 | without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27 | THE POSSIBILITY OF SUCH DAMAGE.
28 | *****************************************************************************
29 | * Contents: Native high-level C interface to LAPACK function slamch
30 | * Author: Intel Corporation
31 | * Generated November, 2011
32 | *****************************************************************************/
33 |
34 | #include "lapacke_utils.h"
35 |
36 | float LAPACKE_slamch( char cmach )
37 | {
38 | return LAPACKE_slamch_work( cmach );
39 | }
40 |
--------------------------------------------------------------------------------
/netlib/LAPACKE/lapacke_slamch_work.c:
--------------------------------------------------------------------------------
1 | /*****************************************************************************
2 | Copyright (c) 2011, Intel Corp.
3 | All rights reserved.
4 |
5 | Redistribution and use in source and binary forms, with or without
6 | modification, are permitted provided that the following conditions are met:
7 |
8 | * Redistributions of source code must retain the above copyright notice,
9 | this list of conditions and the following disclaimer.
10 | * Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 | * Neither the name of Intel Corporation nor the names of its contributors
14 | may be used to endorse or promote products derived from this software
15 | without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27 | THE POSSIBILITY OF SUCH DAMAGE.
28 | *****************************************************************************
29 | * Contents: Native middle-level C interface to LAPACK function slamch
30 | * Author: Intel Corporation
31 | * Generated November, 2011
32 | *****************************************************************************/
33 |
34 | #include "lapacke_utils.h"
35 |
36 | float LAPACKE_slamch_work( char cmach )
37 | {
38 | lapack_int info = 0;
39 | float res;
40 | /* Call LAPACK function and adjust info */
41 | res = LAPACK_slamch( &cmach );
42 | return res;
43 | }
44 |
--------------------------------------------------------------------------------
/netlib/LAPACKE/lapacke_slapy2_work.c:
--------------------------------------------------------------------------------
1 | /*****************************************************************************
2 | Copyright (c) 2011, Intel Corp.
3 | All rights reserved.
4 |
5 | Redistribution and use in source and binary forms, with or without
6 | modification, are permitted provided that the following conditions are met:
7 |
8 | * Redistributions of source code must retain the above copyright notice,
9 | this list of conditions and the following disclaimer.
10 | * Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 | * Neither the name of Intel Corporation nor the names of its contributors
14 | may be used to endorse or promote products derived from this software
15 | without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27 | THE POSSIBILITY OF SUCH DAMAGE.
28 | *****************************************************************************
29 | * Contents: Native middle-level C interface to LAPACK function slapy2
30 | * Author: Intel Corporation
31 | * Generated November, 2011
32 | *****************************************************************************/
33 |
34 | #include "lapacke_utils.h"
35 |
36 | float LAPACKE_slapy2_work( float x, float y )
37 | {
38 | float res = 0.;
39 | /* Call LAPACK function and adjust info */
40 | res = LAPACK_slapy2( &x, &y );
41 | return res;
42 | }
43 |
--------------------------------------------------------------------------------
/netlib/LAPACKE/lapacke_slapy3_work.c:
--------------------------------------------------------------------------------
1 | /*****************************************************************************
2 | Copyright (c) 2011, Intel Corp.
3 | All rights reserved.
4 |
5 | Redistribution and use in source and binary forms, with or without
6 | modification, are permitted provided that the following conditions are met:
7 |
8 | * Redistributions of source code must retain the above copyright notice,
9 | this list of conditions and the following disclaimer.
10 | * Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 | * Neither the name of Intel Corporation nor the names of its contributors
14 | may be used to endorse or promote products derived from this software
15 | without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27 | THE POSSIBILITY OF SUCH DAMAGE.
28 | *****************************************************************************
29 | * Contents: Native middle-level C interface to LAPACK function slapy3
30 | * Author: Intel Corporation
31 | * Generated November, 2011
32 | *****************************************************************************/
33 |
34 | #include "lapacke_utils.h"
35 |
36 | float LAPACKE_slapy3_work( float x, float y, float z )
37 | {
38 | float res = 0.;
39 | /* Call LAPACK function and adjust info */
40 | res = LAPACK_slapy3( &x, &y, &z );
41 | return res;
42 | }
43 |
--------------------------------------------------------------------------------
/netlib/LAPACKE/lapacke_slarnv.c:
--------------------------------------------------------------------------------
1 | /*****************************************************************************
2 | Copyright (c) 2011, Intel Corp.
3 | All rights reserved.
4 |
5 | Redistribution and use in source and binary forms, with or without
6 | modification, are permitted provided that the following conditions are met:
7 |
8 | * Redistributions of source code must retain the above copyright notice,
9 | this list of conditions and the following disclaimer.
10 | * Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 | * Neither the name of Intel Corporation nor the names of its contributors
14 | may be used to endorse or promote products derived from this software
15 | without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27 | THE POSSIBILITY OF SUCH DAMAGE.
28 | *****************************************************************************
29 | * Contents: Native high-level C interface to LAPACK function slarnv
30 | * Author: Intel Corporation
31 | * Generated November, 2011
32 | *****************************************************************************/
33 |
34 | #include "lapacke_utils.h"
35 |
36 | lapack_int LAPACKE_slarnv( lapack_int idist, lapack_int* iseed, lapack_int n,
37 | float* x )
38 | {
39 | return LAPACKE_slarnv_work( idist, iseed, n, x );
40 | }
41 |
--------------------------------------------------------------------------------
/netlib/LAPACKE/lapacke_slasrt_work.c:
--------------------------------------------------------------------------------
1 | /*****************************************************************************
2 | Copyright (c) 2011, Intel Corp.
3 | All rights reserved.
4 |
5 | Redistribution and use in source and binary forms, with or without
6 | modification, are permitted provided that the following conditions are met:
7 |
8 | * Redistributions of source code must retain the above copyright notice,
9 | this list of conditions and the following disclaimer.
10 | * Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 | * Neither the name of Intel Corporation nor the names of its contributors
14 | may be used to endorse or promote products derived from this software
15 | without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27 | THE POSSIBILITY OF SUCH DAMAGE.
28 | *****************************************************************************
29 | * Contents: Native middle-level C interface to LAPACK function slasrt
30 | * Author: Intel Corporation
31 | * Generated May, 2011
32 | *****************************************************************************/
33 |
34 | #include "lapacke_utils.h"
35 |
36 | lapack_int LAPACKE_slasrt_work( char id, lapack_int n, float* d )
37 | {
38 | lapack_int info = 0;
39 | /* Call LAPACK function and adjust info */
40 | LAPACK_slasrt( &id, &n, d, &info );
41 | return info;
42 | }
43 |
--------------------------------------------------------------------------------
/netlib/LAPACKE/lapacke_spttrf_work.c:
--------------------------------------------------------------------------------
1 | /*****************************************************************************
2 | Copyright (c) 2011, Intel Corp.
3 | All rights reserved.
4 |
5 | Redistribution and use in source and binary forms, with or without
6 | modification, are permitted provided that the following conditions are met:
7 |
8 | * Redistributions of source code must retain the above copyright notice,
9 | this list of conditions and the following disclaimer.
10 | * Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 | * Neither the name of Intel Corporation nor the names of its contributors
14 | may be used to endorse or promote products derived from this software
15 | without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27 | THE POSSIBILITY OF SUCH DAMAGE.
28 | *****************************************************************************
29 | * Contents: Native middle-level C interface to LAPACK function spttrf
30 | * Author: Intel Corporation
31 | * Generated November, 2011
32 | *****************************************************************************/
33 |
34 | #include "lapacke_utils.h"
35 |
36 | lapack_int LAPACKE_spttrf_work( lapack_int n, float* d, float* e )
37 | {
38 | lapack_int info = 0;
39 | /* Call LAPACK function and adjust info */
40 | LAPACK_spttrf( &n, d, e, &info );
41 | return info;
42 | }
43 |
--------------------------------------------------------------------------------
/netlib/LAPACKE/lapacke_ssterf_work.c:
--------------------------------------------------------------------------------
1 | /*****************************************************************************
2 | Copyright (c) 2011, Intel Corp.
3 | All rights reserved.
4 |
5 | Redistribution and use in source and binary forms, with or without
6 | modification, are permitted provided that the following conditions are met:
7 |
8 | * Redistributions of source code must retain the above copyright notice,
9 | this list of conditions and the following disclaimer.
10 | * Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 | * Neither the name of Intel Corporation nor the names of its contributors
14 | may be used to endorse or promote products derived from this software
15 | without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27 | THE POSSIBILITY OF SUCH DAMAGE.
28 | *****************************************************************************
29 | * Contents: Native middle-level C interface to LAPACK function ssterf
30 | * Author: Intel Corporation
31 | * Generated November, 2011
32 | *****************************************************************************/
33 |
34 | #include "lapacke_utils.h"
35 |
36 | lapack_int LAPACKE_ssterf_work( lapack_int n, float* d, float* e )
37 | {
38 | lapack_int info = 0;
39 | /* Call LAPACK function and adjust info */
40 | LAPACK_ssterf( &n, d, e, &info );
41 | return info;
42 | }
43 |
--------------------------------------------------------------------------------
/netlib/README:
--------------------------------------------------------------------------------
1 | This folder contains the netlib reference implementations.
2 |
3 | The netlib API is a Fortran API. The recommended C interface is via
4 | the CBLAS wrapper (for BLAS) and the LAPACKE wrapper (for LAPACK).
5 |
6 | netlib-java uses the C interface for native calls.
7 |
8 | Note that the CLAPACK effort is a translation of the Fortran codes into C
9 | and is therefore not as performant as the original Fortran codes - we
10 | do not use CLAPACK.
11 |
12 | There is no official C interface to ARPACK:
13 | [ARPACK-1287](http://forge.scilab.org/index.php/p/arpack-ng/issues/1287/).
14 |
15 | Files extracted from:
16 |
17 | http://www.netlib.org/blas/blas.tgz
18 | http://www.netlib.org/blas/blast-forum/cblas.tgz
19 |
20 | http://www.netlib.org/lapack/lapack-3.4.2.tgz (from various folders)
21 | http://www.netlib.org/lapack/lapacke_mangling.h (missing file)
22 |
23 | http://forge.scilab.org/index.php/p/arpack-ng/downloads/607/
24 | http://www.caam.rice.edu/software/ARPACK/ARPACK++/arpack++.tar.gz (modified arpack.h)
25 |
26 | Complex and double complex routines are not included because they are not
27 | supported by netlib-java.
28 |
29 | The following files have been removed because they don't compile:
30 |
31 | BLAS/xerbla.c
32 | LAPACK/xerbla.f
33 | LAPACK/*_extended.f
34 | LAPACK/{d,s}{gb,ge,po,sy}{rfs,svx}x.f
35 | LAPACKE/lapacke_{d,s}{gb,ge,po,sy}{rfs,svx}x{_work,}.c
36 |
37 |
38 | LAPACK ships with a bundled version of BLAS, but we use the original BLAS.
39 | Likewise for ARPACK and BLAS/LAPACK.
40 |
--------------------------------------------------------------------------------
/netlib/symbol.map:
--------------------------------------------------------------------------------
1 | { global: Java_*; _Java_*; local: *; };
--------------------------------------------------------------------------------
/perf/logging.properties:
--------------------------------------------------------------------------------
1 | handlers = java.util.logging.ConsoleHandler
2 | java.util.logging.ConsoleHandler.level = ALL
3 | java.util.logging.ConsoleHandler.formatter = com.github.fommil.logging.CustomFormatter
4 | com.github.fommil.logging.CustomFormatter.format = %L: %m [%c] (%n) %e %E %S
5 | com.github.fommil.logging.CustomFormatter.stackExclude = \
6 | org.jetbrains. com.intellij java. sun. com.sun
7 |
8 | com.github.fommil.level = ALL
9 | .level = WARNING
10 |
--------------------------------------------------------------------------------
/perf/results/linux-arm-avian-ddot-f2jblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-avian-ddot-f2jblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-avian-dgemm-f2jblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-avian-dgemm-f2jblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-avian-dgetri-f2jblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-avian-dgetri-f2jblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-avian-linpack-f2jblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-avian-linpack-f2jblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-ddot-CBLAS.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-ddot-CBLAS.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-ddot-atlas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-ddot-atlas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-ddot-nativerefblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-ddot-nativerefblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-ddot-nativesystemblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-ddot-nativesystemblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-dgemm-CBLAS.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-dgemm-CBLAS.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-dgemm-atlas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-dgemm-atlas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-dgemm-nativerefblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-dgemm-nativerefblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-dgemm-nativesystemblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-dgemm-nativesystemblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-dgetri-CBLAS.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-dgetri-CBLAS.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-dgetri-atlas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-dgetri-atlas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-dgetri-nativerefblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-dgetri-nativerefblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-dgetri-nativesystemblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-dgetri-nativesystemblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-jamvm-ddot-f2jblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-jamvm-ddot-f2jblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-jamvm-dgemm-f2jblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-jamvm-dgemm-f2jblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-jamvm-dgetri-f2jblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-jamvm-dgetri-f2jblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-jamvm-linpack-f2jblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-jamvm-linpack-f2jblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-jdk7-ddot-f2jblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-jdk7-ddot-f2jblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-jdk7-dgemm-f2jblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-jdk7-dgemm-f2jblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-jdk7-dgetri-f2jblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-jdk7-dgetri-f2jblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-jdk7-linpack-f2jblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-jdk7-linpack-f2jblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-jdk8-ddot-f2jblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-jdk8-ddot-f2jblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-jdk8-dgemm-f2jblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-jdk8-dgemm-f2jblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-jdk8-dgetri-f2jblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-jdk8-dgetri-f2jblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-jdk8-linpack-f2jblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-jdk8-linpack-f2jblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-linpack-nativerefblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-linpack-nativerefblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/linux-arm-linpack-nativesystemblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/linux-arm-linpack-nativesystemblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-ddot-CBLAS.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-ddot-CBLAS.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-ddot-atlas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-ddot-atlas.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-ddot-cuda.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-ddot-cuda.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-ddot-cuda_nooh.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-ddot-cuda_nooh.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-ddot-f2jblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-ddot-f2jblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-ddot-mkl.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-ddot-mkl.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-ddot-nativerefblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-ddot-nativerefblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-ddot-nativesystemblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-ddot-nativesystemblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-ddot-veclib.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-ddot-veclib.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-dgemm-CBLAS.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-dgemm-CBLAS.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-dgemm-atlas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-dgemm-atlas.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-dgemm-cuda.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-dgemm-cuda.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-dgemm-cuda_nooh.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-dgemm-cuda_nooh.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-dgemm-f2jblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-dgemm-f2jblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-dgemm-mkl.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-dgemm-mkl.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-dgemm-nativerefblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-dgemm-nativerefblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-dgemm-nativesystemblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-dgemm-nativesystemblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-dgemm-veclib.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-dgemm-veclib.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-dgetri-CBLAS.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-dgetri-CBLAS.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-dgetri-atlas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-dgetri-atlas.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-dgetri-f2jblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-dgetri-f2jblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-dgetri-mkl.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-dgetri-mkl.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-dgetri-nativerefblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-dgetri-nativerefblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-dgetri-nativesystemblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-dgetri-nativesystemblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-dgetri-veclib.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-dgetri-veclib.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-dsaupd-f2jblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-dsaupd-f2jblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-dsaupd-nativerefblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-dsaupd-nativerefblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-dsaupd-nativesystemblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-dsaupd-nativesystemblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-linpack-f2jblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-linpack-f2jblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-linpack-nativerefblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-linpack-nativerefblas.csv.gz
--------------------------------------------------------------------------------
/perf/results/mac_os_x-x86_64-linpack-nativesystemblas.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fommil/netlib-java/52b3a8beb23ee98d26eb66fa67d904c704e01e45/perf/results/mac_os_x-x86_64-linpack-nativesystemblas.csv.gz
--------------------------------------------------------------------------------
/perf/src/main/c/common.c:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include
5 |
6 |
7 | #include
8 | #include
9 |
10 | // http://stackoverflow.com/questions/5167269
11 | #ifdef __MACH__
12 | #include
13 | #include
14 | #endif
15 |
16 |
17 | // http://stackoverflow.com/questions/7034930
18 | double drand() {
19 | return (rand()+1.0)/(RAND_MAX+1.0);
20 | }
21 |
22 | double random_normal() {
23 | return sqrt(-2*log(drand())) * cos(2*M_PI*drand());
24 | }
25 |
26 | double* random_array(int size) {
27 | double *a = malloc(sizeof(double) * size);
28 | int i;
29 |
30 | for (i = 0 ; i < size; i++) {
31 | a[i] = random_normal();
32 | }
33 |
34 | return a;
35 | }
36 |
37 | long currentTimeNanos() {
38 | struct timespec ts;
39 |
40 | #ifdef __MACH__
41 | clock_serv_t cclock;
42 | mach_timespec_t mts;
43 | host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock);
44 | clock_get_time(cclock, &mts);
45 | mach_port_deallocate(mach_task_self(), cclock);
46 | ts.tv_sec = mts.tv_sec;
47 | ts.tv_nsec = mts.tv_nsec;
48 |
49 | #else
50 | clock_gettime(CLOCK_REALTIME, &ts);
51 | #endif
52 |
53 | return (ts.tv_sec * 1000000000) + ts.tv_nsec;
54 | }
55 |
--------------------------------------------------------------------------------
/perf/src/main/c/common.h:
--------------------------------------------------------------------------------
1 | long currentTimeNanos();
2 |
3 | double* random_array(int size);
--------------------------------------------------------------------------------
/perf/src/main/c/cudaddottest.c:
--------------------------------------------------------------------------------
1 | /*
2 |
3 |
4 | gcc-mp-4.8 -O3 cudaddottest.c common.c -o cudaddottest -I../../../../netlib/CBLAS -I/usr/local/cuda/include/ -L/usr/local/cuda/lib -lcublas
5 | export DYLD_LIBRARY_PATH=/usr/local/cuda/lib
6 | ./cudaddottest > ../../../results/mac_os_x-x86_64-ddot-cuda_nooh.csv
7 |
8 | */
9 |
10 | #include
11 | #include
12 | #include
13 | #include
14 | #include "common.h"
15 | #include
16 |
17 | void checkStatus(char* message, cublasStatus status) {
18 | if (status != CUBLAS_STATUS_SUCCESS) {
19 | fprintf (stderr, "!!!! %s fail %d\n", message, status);
20 | exit(EXIT_FAILURE);
21 | }
22 | }
23 |
24 | long benchmark(int size) {
25 | long requestStart, requestEnd;
26 | int incx = 1, incy = 1, n = size;
27 | double *cuA, *cuB;
28 | cublasStatus status;
29 |
30 |
31 | double* a = random_array(size);
32 | double* b = random_array(size);
33 |
34 | status = cublasAlloc(n, sizeof(double),(void**)&cuA);
35 | checkStatus("A", status);
36 | status = cublasAlloc(n, sizeof(double),(void**)&cuB);
37 | checkStatus("B", status);
38 |
39 | status = cublasSetVector(n, sizeof(double), a, incx, cuA, incx);
40 | checkStatus("setA", status);
41 |
42 | status = cublasSetVector(n, sizeof(double), b, incy, cuB, incy);
43 | checkStatus("setB", status);
44 |
45 | requestStart = currentTimeNanos();
46 |
47 | cublasDdot(n, cuA, incx, cuB, incy);
48 |
49 | requestEnd = currentTimeNanos();
50 |
51 | status = cublasFree(cuA);
52 | checkStatus("freeA", status);
53 | status = cublasFree(cuB);
54 | checkStatus("freeB", status);
55 |
56 | free(a);
57 | free(b);
58 |
59 | return (requestEnd - requestStart);
60 | }
61 |
62 | main()
63 | {
64 | cublasStatus status;
65 |
66 | status = cublasInit();
67 | checkStatus("init", status);
68 |
69 | srand(time(NULL));
70 |
71 | double factor = 6.0 / 100.0;
72 | int i, j;
73 | for (i = 0 ; i < 10 ; i++) {
74 | for (j = 1 ; j <= 100 ; j++) {
75 | int size = (int) pow(10.0, factor * j);
76 | if (size < 10) continue;
77 | long took = benchmark(size);
78 | printf("\"%d\",\"%lu\"\n", size, took);
79 | }
80 | }
81 | }
--------------------------------------------------------------------------------
/perf/src/main/c/ddottest.c:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | cp ../../../../native_ref/ libnetlib.so
4 |
5 | gcc-mp-4.8 -O3 ddottest.c common.c -o ddottest -L. -lnetlib -I../../../../netlib/CBLAS
6 | ./ddottest > ../../../results/mac_os_x-x86_64-ddot-CBLAS.csv
7 |
8 | gcc-mp-4.8 -O3 ddottest.c common.c -o ddottest -I/System/Library/Frameworks/vecLib.framework/Headers -framework veclib
9 | ./ddottest > ../../../results/mac_os_x-x86_64-ddot-veclib.csv
10 |
11 | gcc-mp-4.8 -O3 ddottest.c common.c -o ddottest -I/opt/local/include /opt/local/lib/libatlas.a /opt/local/lib/libcblas.a /opt/local/lib/liblapack.a /opt/local/lib/libf77blas.a -lgfortran
12 | ./ddottest > ../../../results/mac_os_x-x86_64-ddot-atlas.csv
13 |
14 | gcc-mp-4.8 -O3 ddottest.c common.c -o ddottest -I../../../../netlib/CBLAS -L/opt/intel/composerxe/mkl/lib -lmkl_rt
15 | export DYLD_LIBRARY_PATH=/opt/intel/composerxe/mkl/lib:/opt/intel/composerxe/lib/
16 | ./ddottest > ../../../results/mac_os_x-x86_64-ddot-mkl.csv
17 |
18 | gcc-mp-4.8 -O3 ddottest.c cudawrapper.c common.c -o ddottest -I../../../../netlib/CBLAS -I/usr/local/cuda/include/ -L/usr/local/cuda/lib -lcublas
19 | export DYLD_LIBRARY_PATH=/usr/local/cuda/lib
20 | ./ddottest > ../../../results/mac_os_x-x86_64-ddot-cuda.csv
21 |
22 |
23 |
24 | */
25 |
26 | #include
27 | #include
28 | #include
29 | #include
30 | #include "common.h"
31 |
32 | long benchmark(int size) {
33 | long requestStart, requestEnd;
34 |
35 | double* a = random_array(size);
36 | double* b = random_array(size);
37 |
38 | requestStart = currentTimeNanos();
39 |
40 | cblas_ddot(size, a, 1, b, 1);
41 |
42 | requestEnd = currentTimeNanos();
43 |
44 | free(a);
45 | free(b);
46 |
47 | return (requestEnd - requestStart);
48 | }
49 |
50 | main()
51 | {
52 | srand(time(NULL));
53 |
54 | double factor = 6.0 / 100.0;
55 | int i, j;
56 | for (i = 0 ; i < 10 ; i++) {
57 | for (j = 1 ; j <= 100 ; j++) {
58 | int size = (int) pow(10.0, factor * j);
59 | if (size < 10) continue;
60 | long took = benchmark(size);
61 | printf("\"%d\",\"%lu\"\n", size, took);
62 | }
63 | }
64 | }
--------------------------------------------------------------------------------
/perf/src/main/java/com/github/fommil/netlib/Benchmark.java:
--------------------------------------------------------------------------------
1 | package com.github.fommil.netlib;
2 |
3 | /**
4 | * @author Sam Halliday
5 | */
6 | public interface Benchmark {
7 |
8 | // returns nanoseconds spent in computations
9 | long benchmark();
10 |
11 | public interface Parameterised {
12 | // size is a parameter > 0
13 | long benchmark(int size);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/perf/src/main/java/com/github/fommil/netlib/Ddot.java:
--------------------------------------------------------------------------------
1 | package com.github.fommil.netlib;
2 |
3 | import com.google.common.base.Stopwatch;
4 |
5 | import java.util.concurrent.TimeUnit;
6 |
7 | import static com.github.fommil.netlib.Benchmarks.randomArray;
8 |
9 | /**
10 | * @author Sam Halliday
11 | */
12 | public class Ddot implements Benchmark.Parameterised {
13 |
14 | @Override
15 | public long benchmark(int size) {
16 | Stopwatch stopwatch = new Stopwatch();
17 |
18 | double[] array1 = randomArray(size);
19 | double[] array2 = randomArray(size);
20 | stopwatch.start();
21 | BLAS.getInstance().ddot(size, array1, 1, array2, 1);
22 | stopwatch.stop();
23 |
24 | return stopwatch.elapsed(TimeUnit.NANOSECONDS);
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/perf/src/main/java/com/github/fommil/netlib/Dgemm.java:
--------------------------------------------------------------------------------
1 | package com.github.fommil.netlib;
2 |
3 | import com.google.common.base.Stopwatch;
4 |
5 | import java.util.concurrent.TimeUnit;
6 |
7 | /**
8 | * @author Sam Halliday
9 | */
10 | public class Dgemm implements Benchmark.Parameterised {
11 | @Override
12 | public long benchmark(int size) {
13 | int m = (int) Math.sqrt(size);
14 |
15 | double[] a = Benchmarks.randomArray(m * m);
16 | double[] b = Benchmarks.randomArray(m * m);
17 | double[] c = new double[m * m];
18 |
19 | Stopwatch watch = new Stopwatch();
20 | watch.start();
21 | BLAS.getInstance().dgemm("N", "N", m, m, m, 1, a, m, b, m, 0, c, m);
22 | watch.stop();
23 |
24 | return watch.elapsed(TimeUnit.NANOSECONDS);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/perf/src/main/java/com/github/fommil/netlib/Dgetri.java:
--------------------------------------------------------------------------------
1 | package com.github.fommil.netlib;
2 |
3 | import com.google.common.base.Stopwatch;
4 | import lombok.extern.java.Log;
5 | import org.netlib.util.intW;
6 |
7 | import java.util.Arrays;
8 | import java.util.concurrent.TimeUnit;
9 |
10 | /**
11 | * @author Sam Halliday
12 | */
13 | @Log
14 | public class Dgetri implements Benchmark.Parameterised {
15 | @Override
16 | public long benchmark(int size) {
17 | int m = (int) Math.sqrt(size);
18 |
19 | // random matrices are full rank (and can always be inverted if square)
20 | // http://www.sciencedirect.com/science/article/pii/S0096300306009040
21 | double[] a = Benchmarks.randomArray(m * m);
22 | double[] aOrig = Arrays.copyOf(a, a.length);
23 | double[] b = new double[1];
24 | int[] p = new int[m];
25 | intW info = new intW(0);
26 |
27 | Stopwatch watch = new Stopwatch();
28 |
29 | LAPACK.getInstance().dgetri(m, a, m, p, b, -1, info);
30 | //log.info(m + " supposedly has optimal work of " + b[0]);
31 | b = new double[(int)b[0]];
32 |
33 | watch.start();
34 | LAPACK.getInstance().dgetrf(m, m, a, m, p, info);
35 | if (info.val != 0)
36 | throw new IllegalArgumentException();
37 | LAPACK.getInstance().dgetri(m, a, m, p, b, b.length, info);
38 | if (info.val != 0)
39 | throw new IllegalArgumentException();
40 | watch.stop();
41 |
42 | // quick check
43 | double[] c = new double[m * m];
44 | BLAS.getInstance().dgemm("N", "N", m, m, m, 1, aOrig, m, a, m, 0, c, m);
45 | if (!Benchmarks.isUnit(c, m, 0.000001)) {
46 | Dgetri.log.warning("failed to invert matrix");
47 | }
48 |
49 | return watch.elapsed(TimeUnit.NANOSECONDS);
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/perf/src/test/java/com/github/fommil/netlib/BLASTest.java:
--------------------------------------------------------------------------------
1 | package com.github.fommil.netlib;
2 |
3 | import org.junit.Assert;
4 | import org.junit.Test;
5 |
6 | import java.util.Arrays;
7 |
8 | public class BLASTest {
9 | private final BLAS blas = BLAS.getInstance();
10 |
11 | @Test
12 | public void offsets() {
13 | double[] matrix = new double[]{
14 | 1, 1, 1, 1, 1,
15 | 1, 1, 1, 1, 1,
16 | 1, 1, 1, 1, 1,
17 | 1, 1, 1, 1, 1,
18 | 1, 1, 1, 1, 1
19 | };
20 | blas.dscal(5, 2.0, matrix, 2, 5);
21 | double[] expected = new double[]{
22 | 1, 1, 2, 1, 1,
23 | 1, 1, 2, 1, 1,
24 | 1, 1, 2, 1, 1,
25 | 1, 1, 2, 1, 1,
26 | 1, 1, 2, 1, 1
27 | };
28 | Assert.assertArrayEquals(Arrays.toString(matrix), expected, matrix, 0.0);
29 | }
30 |
31 | @Test
32 | public void ddot() {
33 | double[] dx = {1.1, 2.2, 3.3, 4.4};
34 | double[] dy = {1.1, 2.2, 3.3, 4.4};
35 | int n = dx.length;
36 |
37 | double answer = blas.ddot(n, dx, 1, dy, 1);
38 | Assert.assertTrue(Math.abs(answer - 36.3) < 0.00001d);
39 | }
40 | }
41 |
--------------------------------------------------------------------------------