From 1e9430426df69781e934495128fa2a2cf49650c2 Mon Sep 17 00:00:00 2001 From: Dsplib Date: Sun, 27 Oct 2019 21:09:21 +0300 Subject: [PATCH] changed project structure. Added CodeBlocks IDE projects --- Makefile | 28 +- Makefile.examples | 28 - Makefile.verif | 28 - {examples/bin => bin}/gnuplot/bessel_i0.plt | 0 .../bin => bin}/gnuplot/bilinear_test.plt | 0 .../bin => bin}/gnuplot/butter_ap_test.plt | 0 .../bin => bin}/gnuplot/cheby1_ap_test.plt | 0 {examples/bin => bin}/gnuplot/cheby_poly1.plt | 0 {examples/bin => bin}/gnuplot/cheby_poly2.plt | 0 {examples/bin => bin}/gnuplot/filter_iir.plt | 11 +- {examples/bin => bin}/gnuplot/iir_bstop.plt | 0 {examples/bin => bin}/gnuplot/iir_lpf.plt | 0 {examples/bin => bin}/gnuplot/iir_test.plt | 0 {examples/bin => bin}/gnuplot/sinc_test.plt | 0 {examples/bin => bin}/gnuplot/sine_int.plt | 0 bin/libdspl.def | 119 ++ blas/Makefile | 42 + blas/blas.cbp | 499 ++++++ blas/blas.depend | 1 + blas/blas.layout | 5 + {dspl/libblas/SRC => blas/src}/Makefile | 0 {dspl/libblas/SRC => blas/src}/caxpy.f | 0 {dspl/libblas/SRC => blas/src}/ccopy.f | 0 {dspl/libblas/SRC => blas/src}/cdotc.f | 0 {dspl/libblas/SRC => blas/src}/cdotu.f | 0 {dspl/libblas/SRC => blas/src}/cgbmv.f | 0 {dspl/libblas/SRC => blas/src}/cgemm.f | 0 {dspl/libblas/SRC => blas/src}/cgemv.f | 0 {dspl/libblas/SRC => blas/src}/cgerc.f | 0 {dspl/libblas/SRC => blas/src}/cgeru.f | 0 {dspl/libblas/SRC => blas/src}/chbmv.f | 0 {dspl/libblas/SRC => blas/src}/chemm.f | 0 {dspl/libblas/SRC => blas/src}/chemv.f | 0 {dspl/libblas/SRC => blas/src}/cher.f | 0 {dspl/libblas/SRC => blas/src}/cher2.f | 0 {dspl/libblas/SRC => blas/src}/cher2k.f | 0 {dspl/libblas/SRC => blas/src}/cherk.f | 0 {dspl/libblas/SRC => blas/src}/chpmv.f | 0 {dspl/libblas/SRC => blas/src}/chpr.f | 0 {dspl/libblas/SRC => blas/src}/chpr2.f | 0 {dspl/libblas/SRC => blas/src}/crotg.f | 0 {dspl/libblas/SRC => blas/src}/cscal.f | 0 {dspl/libblas/SRC => blas/src}/csrot.f | 0 {dspl/libblas/SRC => blas/src}/csscal.f | 0 {dspl/libblas/SRC => blas/src}/cswap.f | 0 {dspl/libblas/SRC => blas/src}/csymm.f | 0 {dspl/libblas/SRC => blas/src}/csyr2k.f | 0 {dspl/libblas/SRC => blas/src}/csyrk.f | 0 {dspl/libblas/SRC => blas/src}/ctbmv.f | 0 {dspl/libblas/SRC => blas/src}/ctbsv.f | 0 {dspl/libblas/SRC => blas/src}/ctpmv.f | 0 {dspl/libblas/SRC => blas/src}/ctpsv.f | 0 {dspl/libblas/SRC => blas/src}/ctrmm.f | 0 {dspl/libblas/SRC => blas/src}/ctrmv.f | 0 {dspl/libblas/SRC => blas/src}/ctrsm.f | 0 {dspl/libblas/SRC => blas/src}/ctrsv.f | 0 {dspl/libblas/SRC => blas/src}/dasum.f | 0 {dspl/libblas/SRC => blas/src}/daxpy.f | 0 {dspl/libblas/SRC => blas/src}/dcabs1.f | 0 {dspl/libblas/SRC => blas/src}/dcopy.f | 0 {dspl/libblas/SRC => blas/src}/ddot.f | 0 {dspl/libblas/SRC => blas/src}/dgbmv.f | 0 {dspl/libblas/SRC => blas/src}/dgemm.f | 0 {dspl/libblas/SRC => blas/src}/dgemv.f | 0 {dspl/libblas/SRC => blas/src}/dger.f | 0 {dspl/libblas/SRC => blas/src}/dnrm2.f | 0 {dspl/libblas/SRC => blas/src}/drot.f | 0 {dspl/libblas/SRC => blas/src}/drotg.f | 0 {dspl/libblas/SRC => blas/src}/drotm.f | 0 {dspl/libblas/SRC => blas/src}/drotmg.f | 0 {dspl/libblas/SRC => blas/src}/dsbmv.f | 0 {dspl/libblas/SRC => blas/src}/dscal.f | 0 {dspl/libblas/SRC => blas/src}/dsdot.f | 0 {dspl/libblas/SRC => blas/src}/dspmv.f | 0 {dspl/libblas/SRC => blas/src}/dspr.f | 0 {dspl/libblas/SRC => blas/src}/dspr2.f | 0 {dspl/libblas/SRC => blas/src}/dswap.f | 0 {dspl/libblas/SRC => blas/src}/dsymm.f | 0 {dspl/libblas/SRC => blas/src}/dsymv.f | 0 {dspl/libblas/SRC => blas/src}/dsyr.f | 0 {dspl/libblas/SRC => blas/src}/dsyr2.f | 0 {dspl/libblas/SRC => blas/src}/dsyr2k.f | 0 {dspl/libblas/SRC => blas/src}/dsyrk.f | 0 {dspl/libblas/SRC => blas/src}/dtbmv.f | 0 {dspl/libblas/SRC => blas/src}/dtbsv.f | 0 {dspl/libblas/SRC => blas/src}/dtpmv.f | 0 {dspl/libblas/SRC => blas/src}/dtpsv.f | 0 {dspl/libblas/SRC => blas/src}/dtrmm.f | 0 {dspl/libblas/SRC => blas/src}/dtrmv.f | 0 {dspl/libblas/SRC => blas/src}/dtrsm.f | 0 {dspl/libblas/SRC => blas/src}/dtrsv.f | 0 {dspl/libblas/SRC => blas/src}/dzasum.f | 0 {dspl/libblas/SRC => blas/src}/dznrm2.f | 0 {dspl/libblas/SRC => blas/src}/icamax.f | 0 {dspl/libblas/SRC => blas/src}/idamax.f | 0 {dspl/libblas/SRC => blas/src}/isamax.f | 0 {dspl/libblas/SRC => blas/src}/izamax.f | 0 {dspl/libblas/SRC => blas/src}/lsame.f | 0 {dspl/libblas/SRC => blas/src}/make.inc | 0 {dspl/libblas/SRC => blas/src}/sasum.f | 0 {dspl/libblas/SRC => blas/src}/saxpy.f | 0 {dspl/libblas/SRC => blas/src}/scabs1.f | 0 {dspl/libblas/SRC => blas/src}/scasum.f | 0 {dspl/libblas/SRC => blas/src}/scnrm2.f | 0 {dspl/libblas/SRC => blas/src}/scopy.f | 0 {dspl/libblas/SRC => blas/src}/sdot.f | 0 {dspl/libblas/SRC => blas/src}/sdsdot.f | 0 {dspl/libblas/SRC => blas/src}/sgbmv.f | 0 {dspl/libblas/SRC => blas/src}/sgemm.f | 0 {dspl/libblas/SRC => blas/src}/sgemv.f | 0 {dspl/libblas/SRC => blas/src}/sger.f | 0 {dspl/libblas/SRC => blas/src}/snrm2.f | 0 {dspl/libblas/SRC => blas/src}/srot.f | 0 {dspl/libblas/SRC => blas/src}/srotg.f | 0 {dspl/libblas/SRC => blas/src}/srotm.f | 0 {dspl/libblas/SRC => blas/src}/srotmg.f | 0 {dspl/libblas/SRC => blas/src}/ssbmv.f | 0 {dspl/libblas/SRC => blas/src}/sscal.f | 0 {dspl/libblas/SRC => blas/src}/sspmv.f | 0 {dspl/libblas/SRC => blas/src}/sspr.f | 0 {dspl/libblas/SRC => blas/src}/sspr2.f | 0 {dspl/libblas/SRC => blas/src}/sswap.f | 0 {dspl/libblas/SRC => blas/src}/ssymm.f | 0 {dspl/libblas/SRC => blas/src}/ssymv.f | 0 {dspl/libblas/SRC => blas/src}/ssyr.f | 0 {dspl/libblas/SRC => blas/src}/ssyr2.f | 0 {dspl/libblas/SRC => blas/src}/ssyr2k.f | 0 {dspl/libblas/SRC => blas/src}/ssyrk.f | 0 {dspl/libblas/SRC => blas/src}/stbmv.f | 0 {dspl/libblas/SRC => blas/src}/stbsv.f | 0 {dspl/libblas/SRC => blas/src}/stpmv.f | 0 {dspl/libblas/SRC => blas/src}/stpsv.f | 0 {dspl/libblas/SRC => blas/src}/strmm.f | 0 {dspl/libblas/SRC => blas/src}/strmv.f | 0 {dspl/libblas/SRC => blas/src}/strsm.f | 0 {dspl/libblas/SRC => blas/src}/strsv.f | 0 {dspl/libblas/SRC => blas/src}/xerbla.f | 0 {dspl/libblas/SRC => blas/src}/xerbla_array.f | 0 {dspl/libblas/SRC => blas/src}/zaxpy.f | 0 {dspl/libblas/SRC => blas/src}/zcopy.f | 0 {dspl/libblas/SRC => blas/src}/zdotc.f | 0 {dspl/libblas/SRC => blas/src}/zdotu.f | 0 {dspl/libblas/SRC => blas/src}/zdrot.f | 0 {dspl/libblas/SRC => blas/src}/zdscal.f | 0 {dspl/libblas/SRC => blas/src}/zgbmv.f | 0 {dspl/libblas/SRC => blas/src}/zgemm.f | 0 {dspl/libblas/SRC => blas/src}/zgemv.f | 0 {dspl/libblas/SRC => blas/src}/zgerc.f | 0 {dspl/libblas/SRC => blas/src}/zgeru.f | 0 {dspl/libblas/SRC => blas/src}/zhbmv.f | 0 {dspl/libblas/SRC => blas/src}/zhemm.f | 0 {dspl/libblas/SRC => blas/src}/zhemv.f | 0 {dspl/libblas/SRC => blas/src}/zher.f | 0 {dspl/libblas/SRC => blas/src}/zher2.f | 0 {dspl/libblas/SRC => blas/src}/zher2k.f | 0 {dspl/libblas/SRC => blas/src}/zherk.f | 0 {dspl/libblas/SRC => blas/src}/zhpmv.f | 0 {dspl/libblas/SRC => blas/src}/zhpr.f | 0 {dspl/libblas/SRC => blas/src}/zhpr2.f | 0 {dspl/libblas/SRC => blas/src}/zrotg.f | 0 {dspl/libblas/SRC => blas/src}/zscal.f | 0 {dspl/libblas/SRC => blas/src}/zswap.f | 0 {dspl/libblas/SRC => blas/src}/zsymm.f | 0 {dspl/libblas/SRC => blas/src}/zsyr2k.f | 0 {dspl/libblas/SRC => blas/src}/zsyrk.f | 0 {dspl/libblas/SRC => blas/src}/ztbmv.f | 0 {dspl/libblas/SRC => blas/src}/ztbsv.f | 0 {dspl/libblas/SRC => blas/src}/ztpmv.f | 0 {dspl/libblas/SRC => blas/src}/ztpsv.f | 0 {dspl/libblas/SRC => blas/src}/ztrmm.f | 0 {dspl/libblas/SRC => blas/src}/ztrmv.f | 0 {dspl/libblas/SRC => blas/src}/ztrsm.f | 0 {dspl/libblas/SRC => blas/src}/ztrsv.f | 0 dspl.project.win.geany | 83 - dspl.workspace | 16 + dspl.workspace.layout | 5 + dspl.workspace.mak | 44 + dspl/LICENSE | 165 ++ Makefile.dspl => dspl/Makefile | 61 +- {dox => dspl/dox}/doxy_stylesheet.css | 0 {dox => dspl/dox}/doxyfile_ru | 0 {dox => dspl/dox}/doxygen_style.css | 0 {dox => dspl/dox}/footer.html | 0 {dox => dspl/dox}/header.html | 0 {dox => dspl/dox}/makedoc.sh | 0 dspl/{dspl_dox => dox}/ru/array.dox | 0 dspl/{dspl_dox => dox}/ru/cheby.dox | 0 dspl/{dspl_dox => dox}/ru/complex.dox | 0 dspl/{dspl_dox => dox}/ru/conv.dox | 0 dspl/{dspl_dox => dox}/ru/dft.dox | 0 dspl/{dspl_dox => dox}/ru/ellipj.dox | 0 {dox => dspl/dox}/ru/error_list.dox | 230 +-- dspl/{dspl_dox => dox}/ru/fft.dox | 0 dspl/{dspl_dox => dox}/ru/fillarray.dox | 0 dspl/{dspl_dox => dox}/ru/filter_an.dox | 0 dspl/{dspl_dox => dox}/ru/filter_ap.dox | 0 dspl/{dspl_dox => dox}/ru/filter_ft.dox | 0 dspl/{dspl_dox => dox}/ru/filter_iir.dox | 0 dspl/{dspl_dox => dox}/ru/fourier_series.dox | 0 .../dox}/ru/getting_started_mingw.dox | 0 dspl/{dspl_dox => dox}/ru/goertzel.dox | 0 {dox => dspl/dox}/ru/groups_define.dox | 0 {dox => dspl/dox}/ru/img/compileproc.png | Bin {dox => dspl/dox}/ru/img/dspl_dir.png | Bin {dox => dspl/dox}/ru/img/dspl_exe.png | Bin {dox => dspl/dox}/ru/img/dspl_github.png | Bin {dox => dspl/dox}/ru/img/far_manager.png | Bin {dox => dspl/dox}/ru/img/gcc_ver.png | Bin {dox => dspl/dox}/ru/img/gnuplot.png | Bin {dox => dspl/dox}/ru/img/mingw_bin.png | Bin {dox => dspl/dox}/ru/img/path_1.png | Bin {dox => dspl/dox}/ru/img/path_2.png | Bin {dox => dspl/dox}/ru/img/path_3.png | Bin {dox => dspl/dox}/ru/img/path_gnuplot.png | Bin {dox => dspl/dox}/ru/img/path_old.png | Bin {dox => dspl/dox}/ru/img/path_unx.png | Bin {dox => dspl/dox}/ru/img/unxutils.png | Bin {dox => dspl/dox}/ru/img/vs_build.png | Bin {dox => dspl/dox}/ru/img/vs_build_success.png | Bin {dox => dspl/dox}/ru/img/vs_output.png | Bin {dox => dspl/dox}/ru/img/vs_path.png | Bin {dox => dspl/dox}/ru/img/vs_run.png | Bin dspl/{dspl_dox => dox}/ru/inout.dox | 0 {dox => dspl/dox}/ru/mainpage.dox | 116 +- dspl/{dspl_dox => dox}/ru/math.dox | 0 dspl/{dspl_dox => dox}/ru/matrix.dox | 0 dspl/{dspl_dox => dox}/ru/polyval.dox | 0 dspl/{dspl_dox => dox}/ru/randgen.dox | 0 dspl/{dspl_dox => dox}/ru/resampling.dox | 0 dspl/{dspl_dox => dox}/ru/win.dox | 0 dspl/dspl.cbp | 152 ++ dspl/dspl.depend | 1 + dspl/dspl.layout | 50 + dspl/dspl_obj/.gitignore | 8 - dspl/libblas/SRC/._Makefile | Bin 227 -> 0 bytes dspl/libblas/SRC/._caxpy.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ccopy.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._cdotc.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._cdotu.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._cgbmv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._cgemm.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._cgemv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._cgerc.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._cgeru.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._chbmv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._chemm.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._chemv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._cher.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._cher2.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._cher2k.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._cherk.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._chpmv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._chpr.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._chpr2.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._crotg.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._cscal.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._csrot.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._csscal.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._cswap.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._csymm.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._csyr2k.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._csyrk.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ctbmv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ctbsv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ctpmv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ctpsv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ctrmm.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ctrmv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ctrsm.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ctrsv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dasum.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._daxpy.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dcabs1.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dcopy.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ddot.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dgbmv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dgemm.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dgemv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dger.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dnrm2.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._drot.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._drotg.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._drotm.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._drotmg.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dsbmv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dscal.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dsdot.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dspmv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dspr.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dspr2.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dswap.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dsymm.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dsymv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dsyr.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dsyr2.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dsyr2k.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dsyrk.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dtbmv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dtbsv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dtpmv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dtpsv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dtrmm.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dtrmv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dtrsm.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dtrsv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dzasum.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._dznrm2.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._icamax.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._idamax.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._isamax.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._izamax.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._lsame.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._make.inc | Bin 176 -> 0 bytes dspl/libblas/SRC/._sasum.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._saxpy.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._scabs1.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._scasum.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._scnrm2.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._scopy.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._sdot.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._sdsdot.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._sgbmv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._sgemm.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._sgemv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._sger.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._snrm2.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._srot.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._srotg.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._srotm.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._srotmg.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ssbmv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._sscal.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._sspmv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._sspr.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._sspr2.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._sswap.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ssymm.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ssymv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ssyr.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ssyr2.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ssyr2k.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ssyrk.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._stbmv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._stbsv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._stpmv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._stpsv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._strmm.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._strmv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._strsm.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._strsv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._xerbla.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._xerbla_array.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zaxpy.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zcopy.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zdotc.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zdotu.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zdrot.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zdscal.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zgbmv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zgemm.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zgemv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zgerc.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zgeru.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zhbmv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zhemm.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zhemv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zher.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zher2.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zher2k.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zherk.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zhpmv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zhpr.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zhpr2.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zrotg.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zscal.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zswap.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zsymm.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zsyr2k.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._zsyrk.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ztbmv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ztbsv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ztpmv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ztpsv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ztrmm.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ztrmv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ztrsm.f | Bin 176 -> 0 bytes dspl/libblas/SRC/._ztrsv.f | Bin 176 -> 0 bytes dspl/libblas/SRC/.gitignore | 9 - dspl/liblapack/INSTALL/.gitignore | 9 - dspl/liblapack/INSTALL/LAPACK_version.f | 41 - dspl/liblapack/INSTALL/Makefile | 50 - dspl/liblapack/INSTALL/dlamchf77.f | 919 ---------- dspl/liblapack/INSTALL/dlamchtst.f | 67 - dspl/liblapack/INSTALL/dsecnd_EXT_ETIME.f | 64 - dspl/liblapack/INSTALL/dsecnd_EXT_ETIME_.f | 61 - dspl/liblapack/INSTALL/dsecnd_INT_CPU_TIME.f | 61 - dspl/liblapack/INSTALL/dsecnd_INT_ETIME.f | 63 - dspl/liblapack/INSTALL/dsecnd_NONE.f | 52 - dspl/liblapack/INSTALL/dsecndtst.f | 127 -- dspl/liblapack/INSTALL/ilaver.f | 66 - dspl/liblapack/INSTALL/lsame.f | 125 -- dspl/liblapack/INSTALL/lsametst.f | 88 - dspl/liblapack/INSTALL/make.inc.ALPHA | 82 - dspl/liblapack/INSTALL/make.inc.HPPA | 82 - dspl/liblapack/INSTALL/make.inc.IRIX64 | 85 - dspl/liblapack/INSTALL/make.inc.O2K | 86 - dspl/liblapack/INSTALL/make.inc.SGI5 | 82 - dspl/liblapack/INSTALL/make.inc.SUN4 | 82 - dspl/liblapack/INSTALL/make.inc.SUN4SOL2 | 87 - dspl/liblapack/INSTALL/make.inc.XLF | 83 - dspl/liblapack/INSTALL/make.inc.gfortran | 85 - .../liblapack/INSTALL/make.inc.gfortran_debug | 85 - dspl/liblapack/INSTALL/make.inc.ifort | 81 - dspl/liblapack/INSTALL/make.inc.pgf95 | 81 - dspl/liblapack/INSTALL/make.inc.pghpf | 82 - dspl/liblapack/INSTALL/second_EXT_ETIME.f | 63 - dspl/liblapack/INSTALL/second_EXT_ETIME_.f | 62 - dspl/liblapack/INSTALL/second_INT_CPU_TIME.f | 61 - dspl/liblapack/INSTALL/second_INT_ETIME.f | 63 - dspl/liblapack/INSTALL/second_NONE.f | 52 - dspl/liblapack/INSTALL/secondtst.f | 123 -- dspl/liblapack/INSTALL/slamch.f | 192 -- dspl/liblapack/INSTALL/slamchf77.f | 924 ---------- dspl/liblapack/INSTALL/slamchtst.f | 63 - dspl/liblapack/INSTALL/tstiee.f | 770 -------- dspl/liblapack/SRC/.gitignore | 9 - dspl/liblapack/SRC/DEPRECATED/cgegs.f | 531 ------ dspl/liblapack/SRC/DEPRECATED/cgegv.f | 706 -------- dspl/liblapack/SRC/DEPRECATED/cgelsx.f | 447 ----- dspl/liblapack/SRC/DEPRECATED/cgeqpf.f | 313 ---- dspl/liblapack/SRC/DEPRECATED/cggsvd.f | 466 ----- dspl/liblapack/SRC/DEPRECATED/cggsvp.f | 536 ------ dspl/liblapack/SRC/DEPRECATED/clahrd.f | 292 --- dspl/liblapack/SRC/DEPRECATED/clatzm.f | 225 --- dspl/liblapack/SRC/DEPRECATED/ctzrqf.f | 241 --- dspl/liblapack/SRC/DEPRECATED/dgegs.f | 541 ------ dspl/liblapack/SRC/DEPRECATED/dgegv.f | 769 -------- dspl/liblapack/SRC/DEPRECATED/dgelsx.f | 435 ----- dspl/liblapack/SRC/DEPRECATED/dgeqpf.f | 306 ---- dspl/liblapack/SRC/DEPRECATED/dggsvd.f | 464 ----- dspl/liblapack/SRC/DEPRECATED/dggsvp.f | 522 ------ dspl/liblapack/SRC/DEPRECATED/dlahrd.f | 286 --- dspl/liblapack/SRC/DEPRECATED/dlatzm.f | 221 --- dspl/liblapack/SRC/DEPRECATED/dtzrqf.f | 232 --- dspl/liblapack/SRC/DEPRECATED/sgegs.f | 541 ------ dspl/liblapack/SRC/DEPRECATED/sgegv.f | 769 -------- dspl/liblapack/SRC/DEPRECATED/sgelsx.f | 435 ----- dspl/liblapack/SRC/DEPRECATED/sgeqpf.f | 306 ---- dspl/liblapack/SRC/DEPRECATED/sggsvd.f | 464 ----- dspl/liblapack/SRC/DEPRECATED/sggsvp.f | 522 ------ dspl/liblapack/SRC/DEPRECATED/slahrd.f | 286 --- dspl/liblapack/SRC/DEPRECATED/slatzm.f | 221 --- dspl/liblapack/SRC/DEPRECATED/stzrqf.f | 232 --- dspl/liblapack/SRC/DEPRECATED/zgegs.f | 531 ------ dspl/liblapack/SRC/DEPRECATED/zgegv.f | 706 -------- dspl/liblapack/SRC/DEPRECATED/zgelsx.f | 447 ----- dspl/liblapack/SRC/DEPRECATED/zgeqpf.f | 313 ---- dspl/liblapack/SRC/DEPRECATED/zggsvd.f | 465 ----- dspl/liblapack/SRC/DEPRECATED/zggsvp.f | 539 ------ dspl/liblapack/SRC/DEPRECATED/zlahrd.f | 292 --- dspl/liblapack/SRC/DEPRECATED/zlatzm.f | 225 --- dspl/liblapack/SRC/DEPRECATED/ztzrqf.f | 241 --- dspl/liblapack/SRC/VARIANTS/Makefile | 66 - dspl/liblapack/SRC/VARIANTS/README | 84 - .../SRC/VARIANTS/cholesky/RL/cpotrf.f | 243 --- .../SRC/VARIANTS/cholesky/RL/dpotrf.f | 242 --- .../SRC/VARIANTS/cholesky/RL/spotrf.f | 242 --- .../SRC/VARIANTS/cholesky/RL/zpotrf.f | 243 --- .../SRC/VARIANTS/cholesky/TOP/cpotrf.f | 237 --- .../SRC/VARIANTS/cholesky/TOP/dpotrf.f | 238 --- .../SRC/VARIANTS/cholesky/TOP/spotrf.f | 237 --- .../SRC/VARIANTS/cholesky/TOP/zpotrf.f | 237 --- dspl/liblapack/SRC/VARIANTS/lu/CR/cgetrf.f | 223 --- dspl/liblapack/SRC/VARIANTS/lu/CR/dgetrf.f | 223 --- dspl/liblapack/SRC/VARIANTS/lu/CR/sgetrf.f | 223 --- dspl/liblapack/SRC/VARIANTS/lu/CR/zgetrf.f | 223 --- dspl/liblapack/SRC/VARIANTS/lu/LL/cgetrf.f | 248 --- dspl/liblapack/SRC/VARIANTS/lu/LL/dgetrf.f | 247 --- dspl/liblapack/SRC/VARIANTS/lu/LL/sgetrf.f | 248 --- dspl/liblapack/SRC/VARIANTS/lu/LL/zgetrf.f | 248 --- dspl/liblapack/SRC/VARIANTS/lu/REC/cgetrf.f | 281 --- dspl/liblapack/SRC/VARIANTS/lu/REC/dgetrf.f | 277 --- dspl/liblapack/SRC/VARIANTS/lu/REC/sgetrf.f | 277 --- dspl/liblapack/SRC/VARIANTS/lu/REC/zgetrf.f | 281 --- dspl/liblapack/SRC/VARIANTS/qr/LL/cgeqrf.f | 416 ----- dspl/liblapack/SRC/VARIANTS/qr/LL/dgeqrf.f | 417 ----- dspl/liblapack/SRC/VARIANTS/qr/LL/sceil.f | 87 - dspl/liblapack/SRC/VARIANTS/qr/LL/sgeqrf.f | 416 ----- dspl/liblapack/SRC/VARIANTS/qr/LL/zgeqrf.f | 416 ----- dspl/liblapack/make.inc | 85 - dspl/{dspl_src => src}/array.c | 0 dspl/{dspl_src => src}/blas.h | 0 dspl/{dspl_src => src}/cheby.c | 0 dspl/{dspl_src => src}/complex.c | 0 dspl/{dspl_src => src}/conv.c | 0 dspl/{dspl_src => src}/dft.c | 0 dspl/{dspl_src => src}/dspl_internal.h | 0 dspl/{dspl_src => src}/ellipj.c | 0 dspl/{dspl_src => src}/fft.c | 0 dspl/{dspl_src => src}/fft_subkernel.c | 0 dspl/{dspl_src => src}/fillarray.c | 0 dspl/{dspl_src => src}/filter_an.c | 0 dspl/{dspl_src => src}/filter_ap.c | 0 dspl/{dspl_src => src}/filter_fir.c | 0 dspl/{dspl_src => src}/filter_ft.c | 0 dspl/{dspl_src => src}/filter_iir.c | 0 dspl/{dspl_src => src}/fourier_series.c | 0 dspl/{dspl_src => src}/goertzel.c | 0 dspl/{dspl_src => src}/inout.c | 72 +- dspl/{dspl_src => src}/math.c | 0 dspl/{dspl_src => src}/matrix.c | 0 dspl/{dspl_src => src}/mt19937.c | 0 dspl/{dspl_src => src}/mt19937.h | 0 dspl/{dspl_src => src}/polyval.c | 0 dspl/{dspl_src => src}/randgen.c | 57 +- dspl/{dspl_src => src}/resampling.c | 0 dspl/{dspl_src => src}/signals.c | 0 dspl/{dspl_src => src}/statistic.c | 0 dspl/{dspl_src => src}/trapint.c | 0 dspl/{dspl_src => src}/win.c | 0 examples/bin/.gitignore | 8 - examples/bin/dat/.gitignore | 4 - examples/bin/img/.gitignore | 1 - examples/examples.cbp | 62 + examples/examples.cbp.mak | 100 ++ examples/examples.depend | 22 + examples/examples.layout | 20 + examples/obj/.gitignore | 0 examples/src/filter_iir_test.c | 31 +- examples/src/test.c | 32 + ide/visualstudio/libdspl-2.0.sln | 41 - ide/visualstudio/libdspl-2.0.vcxproj | 211 --- ide/visualstudio/libdspl-2.0.vcxproj.filters | 87 - ide/visualstudio/libdspl-2.0.vcxproj.user | 4 - ide/visualstudio/test.vcxproj | 150 -- ide/visualstudio/test.vcxproj.filters | 30 - ide/visualstudio/test.vcxproj.user | 19 - include/dspl.c | 48 +- include/dspl.h | 5 + lapack/Makefile | 55 + lapack/lapack_complex.cbp | 1567 +++++++++++++++++ lapack/lapack_complex.cbp.mak | 80 + lapack/lapack_complex.depend | 1 + lapack/lapack_complex.inc | 3 + lapack/lapack_complex.layout | 10 + lapack/lapack_double.cbp | 1561 ++++++++++++++++ lapack/lapack_double.depend | 1 + lapack/lapack_double.inc | 92 + lapack/lapack_double.layout | 5 + {dspl/libblas => lapack/src}/.gitignore | 0 {dspl/liblapack/SRC => lapack/src}/Makefile | 0 {dspl/liblapack/SRC => lapack/src}/cbbcsd.f | 0 {dspl/liblapack/SRC => lapack/src}/cbdsqr.f | 0 {dspl/liblapack/SRC => lapack/src}/cgbbrd.f | 0 {dspl/liblapack/SRC => lapack/src}/cgbcon.f | 0 {dspl/liblapack/SRC => lapack/src}/cgbequ.f | 0 {dspl/liblapack/SRC => lapack/src}/cgbequb.f | 0 {dspl/liblapack/SRC => lapack/src}/cgbrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/cgbrfsx.f | 0 {dspl/liblapack/SRC => lapack/src}/cgbsv.f | 0 {dspl/liblapack/SRC => lapack/src}/cgbsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/cgbsvxx.f | 0 {dspl/liblapack/SRC => lapack/src}/cgbtf2.f | 0 {dspl/liblapack/SRC => lapack/src}/cgbtrf.f | 0 {dspl/liblapack/SRC => lapack/src}/cgbtrs.f | 0 {dspl/liblapack/SRC => lapack/src}/cgebak.f | 0 {dspl/liblapack/SRC => lapack/src}/cgebal.f | 0 {dspl/liblapack/SRC => lapack/src}/cgebd2.f | 0 {dspl/liblapack/SRC => lapack/src}/cgebrd.f | 0 {dspl/liblapack/SRC => lapack/src}/cgecon.f | 0 {dspl/liblapack/SRC => lapack/src}/cgeequ.f | 0 {dspl/liblapack/SRC => lapack/src}/cgeequb.f | 0 {dspl/liblapack/SRC => lapack/src}/cgees.f | 0 {dspl/liblapack/SRC => lapack/src}/cgeesx.f | 0 {dspl/liblapack/SRC => lapack/src}/cgeev.f | 0 {dspl/liblapack/SRC => lapack/src}/cgeevx.f | 0 {dspl/liblapack/SRC => lapack/src}/cgehd2.f | 0 {dspl/liblapack/SRC => lapack/src}/cgehrd.f | 0 {dspl/liblapack/SRC => lapack/src}/cgejsv.f | 0 {dspl/liblapack/SRC => lapack/src}/cgelq.f | 0 {dspl/liblapack/SRC => lapack/src}/cgelq2.f | 0 {dspl/liblapack/SRC => lapack/src}/cgelqf.f | 0 {dspl/liblapack/SRC => lapack/src}/cgelqt.f | 0 {dspl/liblapack/SRC => lapack/src}/cgelqt3.f | 0 {dspl/liblapack/SRC => lapack/src}/cgels.f | 0 {dspl/liblapack/SRC => lapack/src}/cgelsd.f | 0 {dspl/liblapack/SRC => lapack/src}/cgelss.f | 0 {dspl/liblapack/SRC => lapack/src}/cgelsy.f | 0 {dspl/liblapack/SRC => lapack/src}/cgemlq.f | 0 {dspl/liblapack/SRC => lapack/src}/cgemlqt.f | 0 {dspl/liblapack/SRC => lapack/src}/cgemqr.f | 0 {dspl/liblapack/SRC => lapack/src}/cgemqrt.f | 0 {dspl/liblapack/SRC => lapack/src}/cgeql2.f | 0 {dspl/liblapack/SRC => lapack/src}/cgeqlf.f | 0 {dspl/liblapack/SRC => lapack/src}/cgeqp3.f | 0 {dspl/liblapack/SRC => lapack/src}/cgeqr.f | 0 {dspl/liblapack/SRC => lapack/src}/cgeqr2.f | 0 {dspl/liblapack/SRC => lapack/src}/cgeqr2p.f | 0 {dspl/liblapack/SRC => lapack/src}/cgeqrf.f | 0 {dspl/liblapack/SRC => lapack/src}/cgeqrfp.f | 0 {dspl/liblapack/SRC => lapack/src}/cgeqrt.f | 0 {dspl/liblapack/SRC => lapack/src}/cgeqrt2.f | 0 {dspl/liblapack/SRC => lapack/src}/cgeqrt3.f | 0 {dspl/liblapack/SRC => lapack/src}/cgerfs.f | 0 {dspl/liblapack/SRC => lapack/src}/cgerfsx.f | 0 {dspl/liblapack/SRC => lapack/src}/cgerq2.f | 0 {dspl/liblapack/SRC => lapack/src}/cgerqf.f | 0 {dspl/liblapack/SRC => lapack/src}/cgesc2.f | 0 {dspl/liblapack/SRC => lapack/src}/cgesdd.f | 0 {dspl/liblapack/SRC => lapack/src}/cgesv.f | 0 {dspl/liblapack/SRC => lapack/src}/cgesvd.f | 0 {dspl/liblapack/SRC => lapack/src}/cgesvdx.f | 0 {dspl/liblapack/SRC => lapack/src}/cgesvj.f | 0 {dspl/liblapack/SRC => lapack/src}/cgesvx.f | 0 {dspl/liblapack/SRC => lapack/src}/cgesvxx.f | 0 {dspl/liblapack/SRC => lapack/src}/cgetc2.f | 0 {dspl/liblapack/SRC => lapack/src}/cgetf2.f | 0 {dspl/liblapack/SRC => lapack/src}/cgetrf.f | 0 {dspl/liblapack/SRC => lapack/src}/cgetrf2.f | 0 {dspl/liblapack/SRC => lapack/src}/cgetri.f | 0 {dspl/liblapack/SRC => lapack/src}/cgetrs.f | 0 {dspl/liblapack/SRC => lapack/src}/cgetsls.f | 0 {dspl/liblapack/SRC => lapack/src}/cggbak.f | 0 {dspl/liblapack/SRC => lapack/src}/cggbal.f | 0 {dspl/liblapack/SRC => lapack/src}/cgges.f | 0 {dspl/liblapack/SRC => lapack/src}/cgges3.f | 0 {dspl/liblapack/SRC => lapack/src}/cggesx.f | 0 {dspl/liblapack/SRC => lapack/src}/cggev.f | 0 {dspl/liblapack/SRC => lapack/src}/cggev3.f | 0 {dspl/liblapack/SRC => lapack/src}/cggevx.f | 0 {dspl/liblapack/SRC => lapack/src}/cggglm.f | 0 {dspl/liblapack/SRC => lapack/src}/cgghd3.f | 0 {dspl/liblapack/SRC => lapack/src}/cgghrd.f | 0 {dspl/liblapack/SRC => lapack/src}/cgglse.f | 0 {dspl/liblapack/SRC => lapack/src}/cggqrf.f | 0 {dspl/liblapack/SRC => lapack/src}/cggrqf.f | 0 {dspl/liblapack/SRC => lapack/src}/cggsvd3.f | 0 {dspl/liblapack/SRC => lapack/src}/cggsvp3.f | 0 {dspl/liblapack/SRC => lapack/src}/cgsvj0.f | 0 {dspl/liblapack/SRC => lapack/src}/cgsvj1.f | 0 {dspl/liblapack/SRC => lapack/src}/cgtcon.f | 0 {dspl/liblapack/SRC => lapack/src}/cgtrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/cgtsv.f | 0 {dspl/liblapack/SRC => lapack/src}/cgtsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/cgttrf.f | 0 {dspl/liblapack/SRC => lapack/src}/cgttrs.f | 0 {dspl/liblapack/SRC => lapack/src}/cgtts2.f | 0 .../SRC => lapack/src}/chb2st_kernels.f | 0 {dspl/liblapack/SRC => lapack/src}/chbev.f | 0 .../SRC => lapack/src}/chbev_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/chbevd.f | 0 .../SRC => lapack/src}/chbevd_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/chbevx.f | 0 .../SRC => lapack/src}/chbevx_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/chbgst.f | 0 {dspl/liblapack/SRC => lapack/src}/chbgv.f | 0 {dspl/liblapack/SRC => lapack/src}/chbgvd.f | 0 {dspl/liblapack/SRC => lapack/src}/chbgvx.f | 0 {dspl/liblapack/SRC => lapack/src}/chbtrd.f | 0 {dspl/liblapack/SRC => lapack/src}/checon.f | 0 {dspl/liblapack/SRC => lapack/src}/checon_3.f | 0 .../SRC => lapack/src}/checon_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/cheequb.f | 0 {dspl/liblapack/SRC => lapack/src}/cheev.f | 0 .../SRC => lapack/src}/cheev_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/cheevd.f | 0 .../SRC => lapack/src}/cheevd_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/cheevr.f | 0 .../SRC => lapack/src}/cheevr_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/cheevx.f | 0 .../SRC => lapack/src}/cheevx_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/chegs2.f | 0 {dspl/liblapack/SRC => lapack/src}/chegst.f | 0 {dspl/liblapack/SRC => lapack/src}/chegv.f | 0 .../SRC => lapack/src}/chegv_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/chegvd.f | 0 {dspl/liblapack/SRC => lapack/src}/chegvx.f | 0 {dspl/liblapack/SRC => lapack/src}/cherfs.f | 0 {dspl/liblapack/SRC => lapack/src}/cherfsx.f | 0 {dspl/liblapack/SRC => lapack/src}/chesv.f | 0 {dspl/liblapack/SRC => lapack/src}/chesv_aa.f | 0 .../SRC => lapack/src}/chesv_aa_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/chesv_rk.f | 0 .../liblapack/SRC => lapack/src}/chesv_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/chesvx.f | 0 {dspl/liblapack/SRC => lapack/src}/chesvxx.f | 0 {dspl/liblapack/SRC => lapack/src}/cheswapr.f | 0 {dspl/liblapack/SRC => lapack/src}/chetd2.f | 0 {dspl/liblapack/SRC => lapack/src}/chetf2.f | 0 .../liblapack/SRC => lapack/src}/chetf2_rk.f | 0 .../SRC => lapack/src}/chetf2_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/chetrd.f | 0 .../SRC => lapack/src}/chetrd_2stage.f | 0 .../SRC => lapack/src}/chetrd_hb2st.F | 0 .../SRC => lapack/src}/chetrd_he2hb.f | 0 {dspl/liblapack/SRC => lapack/src}/chetrf.f | 0 .../liblapack/SRC => lapack/src}/chetrf_aa.f | 0 .../SRC => lapack/src}/chetrf_aa_2stage.f | 0 .../liblapack/SRC => lapack/src}/chetrf_rk.f | 0 .../SRC => lapack/src}/chetrf_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/chetri.f | 0 {dspl/liblapack/SRC => lapack/src}/chetri2.f | 0 {dspl/liblapack/SRC => lapack/src}/chetri2x.f | 0 {dspl/liblapack/SRC => lapack/src}/chetri_3.f | 0 .../liblapack/SRC => lapack/src}/chetri_3x.f | 0 .../SRC => lapack/src}/chetri_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/chetrs.f | 0 {dspl/liblapack/SRC => lapack/src}/chetrs2.f | 0 {dspl/liblapack/SRC => lapack/src}/chetrs_3.f | 0 .../liblapack/SRC => lapack/src}/chetrs_aa.f | 0 .../SRC => lapack/src}/chetrs_aa_2stage.f | 0 .../SRC => lapack/src}/chetrs_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/chfrk.f | 0 {dspl/liblapack/SRC => lapack/src}/chgeqz.f | 0 .../SRC => lapack/src}/chla_transtype.f | 0 {dspl/liblapack/SRC => lapack/src}/chpcon.f | 0 {dspl/liblapack/SRC => lapack/src}/chpev.f | 0 {dspl/liblapack/SRC => lapack/src}/chpevd.f | 0 {dspl/liblapack/SRC => lapack/src}/chpevx.f | 0 {dspl/liblapack/SRC => lapack/src}/chpgst.f | 0 {dspl/liblapack/SRC => lapack/src}/chpgv.f | 0 {dspl/liblapack/SRC => lapack/src}/chpgvd.f | 0 {dspl/liblapack/SRC => lapack/src}/chpgvx.f | 0 {dspl/liblapack/SRC => lapack/src}/chprfs.f | 0 {dspl/liblapack/SRC => lapack/src}/chpsv.f | 0 {dspl/liblapack/SRC => lapack/src}/chpsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/chptrd.f | 0 {dspl/liblapack/SRC => lapack/src}/chptrf.f | 0 {dspl/liblapack/SRC => lapack/src}/chptri.f | 0 {dspl/liblapack/SRC => lapack/src}/chptrs.f | 0 {dspl/liblapack/SRC => lapack/src}/chsein.f | 0 {dspl/liblapack/SRC => lapack/src}/chseqr.f | 0 .../liblapack/SRC => lapack/src}/cla_gbamv.f | 0 .../SRC => lapack/src}/cla_gbrcond_c.f | 0 .../SRC => lapack/src}/cla_gbrcond_x.f | 0 .../SRC => lapack/src}/cla_gbrfsx_extended.f | 0 .../SRC => lapack/src}/cla_gbrpvgrw.f | 0 .../liblapack/SRC => lapack/src}/cla_geamv.f | 0 .../SRC => lapack/src}/cla_gercond_c.f | 0 .../SRC => lapack/src}/cla_gercond_x.f | 0 .../SRC => lapack/src}/cla_gerfsx_extended.f | 0 .../SRC => lapack/src}/cla_gerpvgrw.f | 0 .../liblapack/SRC => lapack/src}/cla_heamv.f | 0 .../SRC => lapack/src}/cla_hercond_c.f | 0 .../SRC => lapack/src}/cla_hercond_x.f | 0 .../SRC => lapack/src}/cla_herfsx_extended.f | 0 .../SRC => lapack/src}/cla_herpvgrw.f | 0 .../SRC => lapack/src}/cla_lin_berr.f | 0 .../SRC => lapack/src}/cla_porcond_c.f | 0 .../SRC => lapack/src}/cla_porcond_x.f | 0 .../SRC => lapack/src}/cla_porfsx_extended.f | 0 .../SRC => lapack/src}/cla_porpvgrw.f | 0 .../liblapack/SRC => lapack/src}/cla_syamv.f | 0 .../SRC => lapack/src}/cla_syrcond_c.f | 0 .../SRC => lapack/src}/cla_syrcond_x.f | 0 .../SRC => lapack/src}/cla_syrfsx_extended.f | 0 .../SRC => lapack/src}/cla_syrpvgrw.f | 0 .../liblapack/SRC => lapack/src}/cla_wwaddw.f | 0 {dspl/liblapack/SRC => lapack/src}/clabrd.f | 0 {dspl/liblapack/SRC => lapack/src}/clacgv.f | 0 {dspl/liblapack/SRC => lapack/src}/clacn2.f | 0 {dspl/liblapack/SRC => lapack/src}/clacon.f | 0 {dspl/liblapack/SRC => lapack/src}/clacp2.f | 0 {dspl/liblapack/SRC => lapack/src}/clacpy.f | 0 {dspl/liblapack/SRC => lapack/src}/clacrm.f | 0 {dspl/liblapack/SRC => lapack/src}/clacrt.f | 0 {dspl/liblapack/SRC => lapack/src}/cladiv.f | 0 {dspl/liblapack/SRC => lapack/src}/claed0.f | 0 {dspl/liblapack/SRC => lapack/src}/claed7.f | 0 {dspl/liblapack/SRC => lapack/src}/claed8.f | 0 {dspl/liblapack/SRC => lapack/src}/claein.f | 0 {dspl/liblapack/SRC => lapack/src}/claesy.f | 0 {dspl/liblapack/SRC => lapack/src}/claev2.f | 0 {dspl/liblapack/SRC => lapack/src}/clag2z.f | 0 {dspl/liblapack/SRC => lapack/src}/clags2.f | 0 {dspl/liblapack/SRC => lapack/src}/clagtm.f | 0 {dspl/liblapack/SRC => lapack/src}/clahef.f | 0 .../liblapack/SRC => lapack/src}/clahef_aa.f | 0 .../liblapack/SRC => lapack/src}/clahef_rk.f | 0 .../SRC => lapack/src}/clahef_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/clahqr.f | 0 {dspl/liblapack/SRC => lapack/src}/clahr2.f | 0 {dspl/liblapack/SRC => lapack/src}/claic1.f | 0 {dspl/liblapack/SRC => lapack/src}/clals0.f | 0 {dspl/liblapack/SRC => lapack/src}/clalsa.f | 0 {dspl/liblapack/SRC => lapack/src}/clalsd.f | 0 {dspl/liblapack/SRC => lapack/src}/clamswlq.f | 0 {dspl/liblapack/SRC => lapack/src}/clamtsqr.f | 0 {dspl/liblapack/SRC => lapack/src}/clangb.f | 0 {dspl/liblapack/SRC => lapack/src}/clange.f | 0 {dspl/liblapack/SRC => lapack/src}/clangt.f | 0 {dspl/liblapack/SRC => lapack/src}/clanhb.f | 0 {dspl/liblapack/SRC => lapack/src}/clanhe.f | 0 {dspl/liblapack/SRC => lapack/src}/clanhf.f | 0 {dspl/liblapack/SRC => lapack/src}/clanhp.f | 0 {dspl/liblapack/SRC => lapack/src}/clanhs.f | 0 {dspl/liblapack/SRC => lapack/src}/clanht.f | 0 {dspl/liblapack/SRC => lapack/src}/clansb.f | 0 {dspl/liblapack/SRC => lapack/src}/clansp.f | 0 {dspl/liblapack/SRC => lapack/src}/clansy.f | 0 {dspl/liblapack/SRC => lapack/src}/clantb.f | 0 {dspl/liblapack/SRC => lapack/src}/clantp.f | 0 {dspl/liblapack/SRC => lapack/src}/clantr.f | 0 {dspl/liblapack/SRC => lapack/src}/clapll.f | 0 {dspl/liblapack/SRC => lapack/src}/clapmr.f | 0 {dspl/liblapack/SRC => lapack/src}/clapmt.f | 0 {dspl/liblapack/SRC => lapack/src}/claqgb.f | 0 {dspl/liblapack/SRC => lapack/src}/claqge.f | 0 {dspl/liblapack/SRC => lapack/src}/claqhb.f | 0 {dspl/liblapack/SRC => lapack/src}/claqhe.f | 0 {dspl/liblapack/SRC => lapack/src}/claqhp.f | 0 {dspl/liblapack/SRC => lapack/src}/claqp2.f | 0 {dspl/liblapack/SRC => lapack/src}/claqps.f | 0 {dspl/liblapack/SRC => lapack/src}/claqr0.f | 0 {dspl/liblapack/SRC => lapack/src}/claqr1.f | 0 {dspl/liblapack/SRC => lapack/src}/claqr2.f | 0 {dspl/liblapack/SRC => lapack/src}/claqr3.f | 0 {dspl/liblapack/SRC => lapack/src}/claqr4.f | 0 {dspl/liblapack/SRC => lapack/src}/claqr5.f | 0 {dspl/liblapack/SRC => lapack/src}/claqsb.f | 0 {dspl/liblapack/SRC => lapack/src}/claqsp.f | 0 {dspl/liblapack/SRC => lapack/src}/claqsy.f | 0 {dspl/liblapack/SRC => lapack/src}/clar1v.f | 0 {dspl/liblapack/SRC => lapack/src}/clar2v.f | 0 {dspl/liblapack/SRC => lapack/src}/clarcm.f | 0 {dspl/liblapack/SRC => lapack/src}/clarf.f | 0 {dspl/liblapack/SRC => lapack/src}/clarfb.f | 0 {dspl/liblapack/SRC => lapack/src}/clarfg.f | 0 {dspl/liblapack/SRC => lapack/src}/clarfgp.f | 0 {dspl/liblapack/SRC => lapack/src}/clarft.f | 0 {dspl/liblapack/SRC => lapack/src}/clarfx.f | 0 {dspl/liblapack/SRC => lapack/src}/clarfy.f | 0 {dspl/liblapack/SRC => lapack/src}/clargv.f | 0 {dspl/liblapack/SRC => lapack/src}/clarnv.f | 0 {dspl/liblapack/SRC => lapack/src}/clarrv.f | 0 {dspl/liblapack/SRC => lapack/src}/clarscl2.f | 0 {dspl/liblapack/SRC => lapack/src}/clartg.f | 0 {dspl/liblapack/SRC => lapack/src}/clartv.f | 0 {dspl/liblapack/SRC => lapack/src}/clarz.f | 0 {dspl/liblapack/SRC => lapack/src}/clarzb.f | 0 {dspl/liblapack/SRC => lapack/src}/clarzt.f | 0 {dspl/liblapack/SRC => lapack/src}/clascl.f | 0 {dspl/liblapack/SRC => lapack/src}/clascl2.f | 0 {dspl/liblapack/SRC => lapack/src}/claset.f | 0 {dspl/liblapack/SRC => lapack/src}/clasr.f | 0 {dspl/liblapack/SRC => lapack/src}/classq.f | 0 {dspl/liblapack/SRC => lapack/src}/claswlq.f | 0 {dspl/liblapack/SRC => lapack/src}/claswp.f | 0 {dspl/liblapack/SRC => lapack/src}/clasyf.f | 0 .../liblapack/SRC => lapack/src}/clasyf_aa.f | 0 .../liblapack/SRC => lapack/src}/clasyf_rk.f | 0 .../SRC => lapack/src}/clasyf_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/clatbs.f | 0 {dspl/liblapack/SRC => lapack/src}/clatdf.f | 0 {dspl/liblapack/SRC => lapack/src}/clatps.f | 0 {dspl/liblapack/SRC => lapack/src}/clatrd.f | 0 {dspl/liblapack/SRC => lapack/src}/clatrs.f | 0 {dspl/liblapack/SRC => lapack/src}/clatrz.f | 0 {dspl/liblapack/SRC => lapack/src}/clatsqr.f | 0 {dspl/liblapack/SRC => lapack/src}/clauu2.f | 0 {dspl/liblapack/SRC => lapack/src}/clauum.f | 0 {dspl/liblapack/SRC => lapack/src}/cpbcon.f | 0 {dspl/liblapack/SRC => lapack/src}/cpbequ.f | 0 {dspl/liblapack/SRC => lapack/src}/cpbrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/cpbstf.f | 0 {dspl/liblapack/SRC => lapack/src}/cpbsv.f | 0 {dspl/liblapack/SRC => lapack/src}/cpbsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/cpbtf2.f | 0 {dspl/liblapack/SRC => lapack/src}/cpbtrf.f | 0 {dspl/liblapack/SRC => lapack/src}/cpbtrs.f | 0 {dspl/liblapack/SRC => lapack/src}/cpftrf.f | 0 {dspl/liblapack/SRC => lapack/src}/cpftri.f | 0 {dspl/liblapack/SRC => lapack/src}/cpftrs.f | 0 {dspl/liblapack/SRC => lapack/src}/cpocon.f | 0 {dspl/liblapack/SRC => lapack/src}/cpoequ.f | 0 {dspl/liblapack/SRC => lapack/src}/cpoequb.f | 0 {dspl/liblapack/SRC => lapack/src}/cporfs.f | 0 {dspl/liblapack/SRC => lapack/src}/cporfsx.f | 0 {dspl/liblapack/SRC => lapack/src}/cposv.f | 0 {dspl/liblapack/SRC => lapack/src}/cposvx.f | 0 {dspl/liblapack/SRC => lapack/src}/cposvxx.f | 0 {dspl/liblapack/SRC => lapack/src}/cpotf2.f | 0 {dspl/liblapack/SRC => lapack/src}/cpotrf.f | 0 {dspl/liblapack/SRC => lapack/src}/cpotrf2.f | 0 {dspl/liblapack/SRC => lapack/src}/cpotri.f | 0 {dspl/liblapack/SRC => lapack/src}/cpotrs.f | 0 {dspl/liblapack/SRC => lapack/src}/cppcon.f | 0 {dspl/liblapack/SRC => lapack/src}/cppequ.f | 0 {dspl/liblapack/SRC => lapack/src}/cpprfs.f | 0 {dspl/liblapack/SRC => lapack/src}/cppsv.f | 0 {dspl/liblapack/SRC => lapack/src}/cppsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/cpptrf.f | 0 {dspl/liblapack/SRC => lapack/src}/cpptri.f | 0 {dspl/liblapack/SRC => lapack/src}/cpptrs.f | 0 {dspl/liblapack/SRC => lapack/src}/cpstf2.f | 0 {dspl/liblapack/SRC => lapack/src}/cpstrf.f | 0 {dspl/liblapack/SRC => lapack/src}/cptcon.f | 0 {dspl/liblapack/SRC => lapack/src}/cpteqr.f | 0 {dspl/liblapack/SRC => lapack/src}/cptrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/cptsv.f | 0 {dspl/liblapack/SRC => lapack/src}/cptsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/cpttrf.f | 0 {dspl/liblapack/SRC => lapack/src}/cpttrs.f | 0 {dspl/liblapack/SRC => lapack/src}/cptts2.f | 0 {dspl/liblapack/SRC => lapack/src}/crot.f | 0 {dspl/liblapack/SRC => lapack/src}/cspcon.f | 0 {dspl/liblapack/SRC => lapack/src}/cspmv.f | 0 {dspl/liblapack/SRC => lapack/src}/cspr.f | 0 {dspl/liblapack/SRC => lapack/src}/csprfs.f | 0 {dspl/liblapack/SRC => lapack/src}/cspsv.f | 0 {dspl/liblapack/SRC => lapack/src}/cspsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/csptrf.f | 0 {dspl/liblapack/SRC => lapack/src}/csptri.f | 0 {dspl/liblapack/SRC => lapack/src}/csptrs.f | 0 {dspl/liblapack/SRC => lapack/src}/csrscl.f | 0 {dspl/liblapack/SRC => lapack/src}/cstedc.f | 0 {dspl/liblapack/SRC => lapack/src}/cstegr.f | 0 {dspl/liblapack/SRC => lapack/src}/cstein.f | 0 {dspl/liblapack/SRC => lapack/src}/cstemr.f | 0 {dspl/liblapack/SRC => lapack/src}/csteqr.f | 0 {dspl/liblapack/SRC => lapack/src}/csycon.f | 0 {dspl/liblapack/SRC => lapack/src}/csycon_3.f | 0 .../SRC => lapack/src}/csycon_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/csyconv.f | 0 {dspl/liblapack/SRC => lapack/src}/csyconvf.f | 0 .../SRC => lapack/src}/csyconvf_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/csyequb.f | 0 {dspl/liblapack/SRC => lapack/src}/csymv.f | 0 {dspl/liblapack/SRC => lapack/src}/csyr.f | 0 {dspl/liblapack/SRC => lapack/src}/csyrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/csyrfsx.f | 0 {dspl/liblapack/SRC => lapack/src}/csysv.f | 0 {dspl/liblapack/SRC => lapack/src}/csysv_aa.f | 0 .../SRC => lapack/src}/csysv_aa_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/csysv_rk.f | 0 .../liblapack/SRC => lapack/src}/csysv_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/csysvx.f | 0 {dspl/liblapack/SRC => lapack/src}/csysvxx.f | 0 {dspl/liblapack/SRC => lapack/src}/csyswapr.f | 0 {dspl/liblapack/SRC => lapack/src}/csytf2.f | 0 .../liblapack/SRC => lapack/src}/csytf2_rk.f | 0 .../SRC => lapack/src}/csytf2_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/csytrf.f | 0 .../liblapack/SRC => lapack/src}/csytrf_aa.f | 0 .../SRC => lapack/src}/csytrf_aa_2stage.f | 0 .../liblapack/SRC => lapack/src}/csytrf_rk.f | 0 .../SRC => lapack/src}/csytrf_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/csytri.f | 0 {dspl/liblapack/SRC => lapack/src}/csytri2.f | 0 {dspl/liblapack/SRC => lapack/src}/csytri2x.f | 0 {dspl/liblapack/SRC => lapack/src}/csytri_3.f | 0 .../liblapack/SRC => lapack/src}/csytri_3x.f | 0 .../SRC => lapack/src}/csytri_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/csytrs.f | 0 {dspl/liblapack/SRC => lapack/src}/csytrs2.f | 0 {dspl/liblapack/SRC => lapack/src}/csytrs_3.f | 0 .../liblapack/SRC => lapack/src}/csytrs_aa.f | 0 .../SRC => lapack/src}/csytrs_aa_2stage.f | 0 .../SRC => lapack/src}/csytrs_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/ctbcon.f | 0 {dspl/liblapack/SRC => lapack/src}/ctbrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/ctbtrs.f | 0 {dspl/liblapack/SRC => lapack/src}/ctfsm.f | 0 {dspl/liblapack/SRC => lapack/src}/ctftri.f | 0 {dspl/liblapack/SRC => lapack/src}/ctfttp.f | 0 {dspl/liblapack/SRC => lapack/src}/ctfttr.f | 0 {dspl/liblapack/SRC => lapack/src}/ctgevc.f | 0 {dspl/liblapack/SRC => lapack/src}/ctgex2.f | 0 {dspl/liblapack/SRC => lapack/src}/ctgexc.f | 0 {dspl/liblapack/SRC => lapack/src}/ctgsen.f | 0 {dspl/liblapack/SRC => lapack/src}/ctgsja.f | 0 {dspl/liblapack/SRC => lapack/src}/ctgsna.f | 0 {dspl/liblapack/SRC => lapack/src}/ctgsy2.f | 0 {dspl/liblapack/SRC => lapack/src}/ctgsyl.f | 0 {dspl/liblapack/SRC => lapack/src}/ctpcon.f | 0 {dspl/liblapack/SRC => lapack/src}/ctplqt.f | 0 {dspl/liblapack/SRC => lapack/src}/ctplqt2.f | 0 {dspl/liblapack/SRC => lapack/src}/ctpmlqt.f | 0 {dspl/liblapack/SRC => lapack/src}/ctpmqrt.f | 0 {dspl/liblapack/SRC => lapack/src}/ctpqrt.f | 0 {dspl/liblapack/SRC => lapack/src}/ctpqrt2.f | 0 {dspl/liblapack/SRC => lapack/src}/ctprfb.f | 0 {dspl/liblapack/SRC => lapack/src}/ctprfs.f | 0 {dspl/liblapack/SRC => lapack/src}/ctptri.f | 0 {dspl/liblapack/SRC => lapack/src}/ctptrs.f | 0 {dspl/liblapack/SRC => lapack/src}/ctpttf.f | 0 {dspl/liblapack/SRC => lapack/src}/ctpttr.f | 0 {dspl/liblapack/SRC => lapack/src}/ctrcon.f | 0 {dspl/liblapack/SRC => lapack/src}/ctrevc.f | 0 {dspl/liblapack/SRC => lapack/src}/ctrevc3.f | 0 {dspl/liblapack/SRC => lapack/src}/ctrexc.f | 0 {dspl/liblapack/SRC => lapack/src}/ctrrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/ctrsen.f | 0 {dspl/liblapack/SRC => lapack/src}/ctrsna.f | 0 {dspl/liblapack/SRC => lapack/src}/ctrsyl.f | 0 {dspl/liblapack/SRC => lapack/src}/ctrti2.f | 0 {dspl/liblapack/SRC => lapack/src}/ctrtri.f | 0 {dspl/liblapack/SRC => lapack/src}/ctrtrs.f | 0 {dspl/liblapack/SRC => lapack/src}/ctrttf.f | 0 {dspl/liblapack/SRC => lapack/src}/ctrttp.f | 0 {dspl/liblapack/SRC => lapack/src}/ctzrzf.f | 0 {dspl/liblapack/SRC => lapack/src}/cunbdb.f | 0 {dspl/liblapack/SRC => lapack/src}/cunbdb1.f | 0 {dspl/liblapack/SRC => lapack/src}/cunbdb2.f | 0 {dspl/liblapack/SRC => lapack/src}/cunbdb3.f | 0 {dspl/liblapack/SRC => lapack/src}/cunbdb4.f | 0 {dspl/liblapack/SRC => lapack/src}/cunbdb5.f | 0 {dspl/liblapack/SRC => lapack/src}/cunbdb6.f | 0 {dspl/liblapack/SRC => lapack/src}/cuncsd.f | 0 .../liblapack/SRC => lapack/src}/cuncsd2by1.f | 0 {dspl/liblapack/SRC => lapack/src}/cung2l.f | 0 {dspl/liblapack/SRC => lapack/src}/cung2r.f | 0 {dspl/liblapack/SRC => lapack/src}/cungbr.f | 0 {dspl/liblapack/SRC => lapack/src}/cunghr.f | 0 {dspl/liblapack/SRC => lapack/src}/cungl2.f | 0 {dspl/liblapack/SRC => lapack/src}/cunglq.f | 0 {dspl/liblapack/SRC => lapack/src}/cungql.f | 0 {dspl/liblapack/SRC => lapack/src}/cungqr.f | 0 {dspl/liblapack/SRC => lapack/src}/cungr2.f | 0 {dspl/liblapack/SRC => lapack/src}/cungrq.f | 0 {dspl/liblapack/SRC => lapack/src}/cungtr.f | 0 {dspl/liblapack/SRC => lapack/src}/cunm22.f | 0 {dspl/liblapack/SRC => lapack/src}/cunm2l.f | 0 {dspl/liblapack/SRC => lapack/src}/cunm2r.f | 0 {dspl/liblapack/SRC => lapack/src}/cunmbr.f | 0 {dspl/liblapack/SRC => lapack/src}/cunmhr.f | 0 {dspl/liblapack/SRC => lapack/src}/cunml2.f | 0 {dspl/liblapack/SRC => lapack/src}/cunmlq.f | 0 {dspl/liblapack/SRC => lapack/src}/cunmql.f | 0 {dspl/liblapack/SRC => lapack/src}/cunmqr.f | 0 {dspl/liblapack/SRC => lapack/src}/cunmr2.f | 0 {dspl/liblapack/SRC => lapack/src}/cunmr3.f | 0 {dspl/liblapack/SRC => lapack/src}/cunmrq.f | 0 {dspl/liblapack/SRC => lapack/src}/cunmrz.f | 0 {dspl/liblapack/SRC => lapack/src}/cunmtr.f | 0 {dspl/liblapack/SRC => lapack/src}/cupgtr.f | 0 {dspl/liblapack/SRC => lapack/src}/cupmtr.f | 0 {dspl/liblapack/SRC => lapack/src}/dbbcsd.f | 0 {dspl/liblapack/SRC => lapack/src}/dbdsdc.f | 0 {dspl/liblapack/SRC => lapack/src}/dbdsqr.f | 0 {dspl/liblapack/SRC => lapack/src}/dbdsvdx.f | 0 {dspl/liblapack/SRC => lapack/src}/ddisna.f | 0 {dspl/liblapack/SRC => lapack/src}/dgbbrd.f | 0 {dspl/liblapack/SRC => lapack/src}/dgbcon.f | 0 {dspl/liblapack/SRC => lapack/src}/dgbequ.f | 0 {dspl/liblapack/SRC => lapack/src}/dgbequb.f | 0 {dspl/liblapack/SRC => lapack/src}/dgbrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/dgbrfsx.f | 0 {dspl/liblapack/SRC => lapack/src}/dgbsv.f | 0 {dspl/liblapack/SRC => lapack/src}/dgbsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/dgbsvxx.f | 0 {dspl/liblapack/SRC => lapack/src}/dgbtf2.f | 0 {dspl/liblapack/SRC => lapack/src}/dgbtrf.f | 0 {dspl/liblapack/SRC => lapack/src}/dgbtrs.f | 0 {dspl/liblapack/SRC => lapack/src}/dgebak.f | 0 {dspl/liblapack/SRC => lapack/src}/dgebal.f | 0 {dspl/liblapack/SRC => lapack/src}/dgebd2.f | 0 {dspl/liblapack/SRC => lapack/src}/dgebrd.f | 0 {dspl/liblapack/SRC => lapack/src}/dgecon.f | 0 {dspl/liblapack/SRC => lapack/src}/dgeequ.f | 0 {dspl/liblapack/SRC => lapack/src}/dgeequb.f | 0 {dspl/liblapack/SRC => lapack/src}/dgees.f | 0 {dspl/liblapack/SRC => lapack/src}/dgeesx.f | 0 {dspl/liblapack/SRC => lapack/src}/dgeev.f | 0 {dspl/liblapack/SRC => lapack/src}/dgeevx.f | 0 {dspl/liblapack/SRC => lapack/src}/dgehd2.f | 0 {dspl/liblapack/SRC => lapack/src}/dgehrd.f | 0 {dspl/liblapack/SRC => lapack/src}/dgejsv.f | 0 {dspl/liblapack/SRC => lapack/src}/dgelq.f | 0 {dspl/liblapack/SRC => lapack/src}/dgelq2.f | 0 {dspl/liblapack/SRC => lapack/src}/dgelqf.f | 0 {dspl/liblapack/SRC => lapack/src}/dgelqt.f | 0 {dspl/liblapack/SRC => lapack/src}/dgelqt3.f | 0 {dspl/liblapack/SRC => lapack/src}/dgels.f | 0 {dspl/liblapack/SRC => lapack/src}/dgelsd.f | 0 {dspl/liblapack/SRC => lapack/src}/dgelss.f | 0 {dspl/liblapack/SRC => lapack/src}/dgelsy.f | 0 {dspl/liblapack/SRC => lapack/src}/dgemlq.f | 0 {dspl/liblapack/SRC => lapack/src}/dgemlqt.f | 0 {dspl/liblapack/SRC => lapack/src}/dgemqr.f | 0 {dspl/liblapack/SRC => lapack/src}/dgemqrt.f | 0 {dspl/liblapack/SRC => lapack/src}/dgeql2.f | 0 {dspl/liblapack/SRC => lapack/src}/dgeqlf.f | 0 {dspl/liblapack/SRC => lapack/src}/dgeqp3.f | 0 {dspl/liblapack/SRC => lapack/src}/dgeqr.f | 0 {dspl/liblapack/SRC => lapack/src}/dgeqr2.f | 0 {dspl/liblapack/SRC => lapack/src}/dgeqr2p.f | 0 {dspl/liblapack/SRC => lapack/src}/dgeqrf.f | 0 {dspl/liblapack/SRC => lapack/src}/dgeqrfp.f | 0 {dspl/liblapack/SRC => lapack/src}/dgeqrt.f | 0 {dspl/liblapack/SRC => lapack/src}/dgeqrt2.f | 0 {dspl/liblapack/SRC => lapack/src}/dgeqrt3.f | 0 {dspl/liblapack/SRC => lapack/src}/dgerfs.f | 0 {dspl/liblapack/SRC => lapack/src}/dgerfsx.f | 0 {dspl/liblapack/SRC => lapack/src}/dgerq2.f | 0 {dspl/liblapack/SRC => lapack/src}/dgerqf.f | 0 {dspl/liblapack/SRC => lapack/src}/dgesc2.f | 0 {dspl/liblapack/SRC => lapack/src}/dgesdd.f | 0 {dspl/liblapack/SRC => lapack/src}/dgesv.f | 0 {dspl/liblapack/SRC => lapack/src}/dgesvd.f | 0 {dspl/liblapack/SRC => lapack/src}/dgesvdx.f | 0 {dspl/liblapack/SRC => lapack/src}/dgesvj.f | 0 {dspl/liblapack/SRC => lapack/src}/dgesvx.f | 0 {dspl/liblapack/SRC => lapack/src}/dgesvxx.f | 0 {dspl/liblapack/SRC => lapack/src}/dgetc2.f | 0 {dspl/liblapack/SRC => lapack/src}/dgetf2.f | 0 {dspl/liblapack/SRC => lapack/src}/dgetrf.f | 0 {dspl/liblapack/SRC => lapack/src}/dgetrf2.f | 0 {dspl/liblapack/SRC => lapack/src}/dgetri.f | 0 {dspl/liblapack/SRC => lapack/src}/dgetrs.f | 0 {dspl/liblapack/SRC => lapack/src}/dgetsls.f | 0 {dspl/liblapack/SRC => lapack/src}/dggbak.f | 0 {dspl/liblapack/SRC => lapack/src}/dggbal.f | 0 {dspl/liblapack/SRC => lapack/src}/dgges.f | 0 {dspl/liblapack/SRC => lapack/src}/dgges3.f | 0 {dspl/liblapack/SRC => lapack/src}/dggesx.f | 0 {dspl/liblapack/SRC => lapack/src}/dggev.f | 0 {dspl/liblapack/SRC => lapack/src}/dggev3.f | 0 {dspl/liblapack/SRC => lapack/src}/dggevx.f | 0 {dspl/liblapack/SRC => lapack/src}/dggglm.f | 0 {dspl/liblapack/SRC => lapack/src}/dgghd3.f | 0 {dspl/liblapack/SRC => lapack/src}/dgghrd.f | 0 {dspl/liblapack/SRC => lapack/src}/dgglse.f | 0 {dspl/liblapack/SRC => lapack/src}/dggqrf.f | 0 {dspl/liblapack/SRC => lapack/src}/dggrqf.f | 0 {dspl/liblapack/SRC => lapack/src}/dggsvd3.f | 0 {dspl/liblapack/SRC => lapack/src}/dggsvp3.f | 0 {dspl/liblapack/SRC => lapack/src}/dgsvj0.f | 0 {dspl/liblapack/SRC => lapack/src}/dgsvj1.f | 0 {dspl/liblapack/SRC => lapack/src}/dgtcon.f | 0 {dspl/liblapack/SRC => lapack/src}/dgtrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/dgtsv.f | 0 {dspl/liblapack/SRC => lapack/src}/dgtsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/dgttrf.f | 0 {dspl/liblapack/SRC => lapack/src}/dgttrs.f | 0 {dspl/liblapack/SRC => lapack/src}/dgtts2.f | 0 {dspl/liblapack/SRC => lapack/src}/dhgeqz.f | 0 {dspl/liblapack/SRC => lapack/src}/dhsein.f | 0 {dspl/liblapack/SRC => lapack/src}/dhseqr.f | 0 {dspl/liblapack/SRC => lapack/src}/disnan.f | 0 .../liblapack/SRC => lapack/src}/dla_gbamv.f | 0 .../SRC => lapack/src}/dla_gbrcond.f | 0 .../SRC => lapack/src}/dla_gbrfsx_extended.f | 0 .../SRC => lapack/src}/dla_gbrpvgrw.f | 0 .../liblapack/SRC => lapack/src}/dla_geamv.f | 0 .../SRC => lapack/src}/dla_gercond.f | 0 .../SRC => lapack/src}/dla_gerfsx_extended.f | 0 .../SRC => lapack/src}/dla_gerpvgrw.f | 0 .../SRC => lapack/src}/dla_lin_berr.f | 0 .../SRC => lapack/src}/dla_porcond.f | 0 .../SRC => lapack/src}/dla_porfsx_extended.f | 0 .../SRC => lapack/src}/dla_porpvgrw.f | 0 .../liblapack/SRC => lapack/src}/dla_syamv.f | 0 .../SRC => lapack/src}/dla_syrcond.f | 0 .../SRC => lapack/src}/dla_syrfsx_extended.f | 0 .../SRC => lapack/src}/dla_syrpvgrw.f | 0 .../liblapack/SRC => lapack/src}/dla_wwaddw.f | 0 {dspl/liblapack/SRC => lapack/src}/dlabad.f | 0 {dspl/liblapack/SRC => lapack/src}/dlabrd.f | 0 {dspl/liblapack/SRC => lapack/src}/dlacn2.f | 0 {dspl/liblapack/SRC => lapack/src}/dlacon.f | 0 {dspl/liblapack/SRC => lapack/src}/dlacpy.f | 0 {dspl/liblapack/SRC => lapack/src}/dladiv.f | 0 {dspl/liblapack/SRC => lapack/src}/dlae2.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaebz.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaed0.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaed1.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaed2.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaed3.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaed4.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaed5.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaed6.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaed7.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaed8.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaed9.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaeda.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaein.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaev2.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaexc.f | 0 {dspl/liblapack/SRC => lapack/src}/dlag2.f | 0 {dspl/liblapack/SRC => lapack/src}/dlag2s.f | 0 {dspl/liblapack/SRC => lapack/src}/dlags2.f | 0 {dspl/liblapack/SRC => lapack/src}/dlagtf.f | 0 {dspl/liblapack/SRC => lapack/src}/dlagtm.f | 0 {dspl/liblapack/SRC => lapack/src}/dlagts.f | 0 {dspl/liblapack/SRC => lapack/src}/dlagv2.f | 0 {dspl/liblapack/SRC => lapack/src}/dlahqr.f | 0 {dspl/liblapack/SRC => lapack/src}/dlahr2.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaic1.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaisnan.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaln2.f | 0 {dspl/liblapack/SRC => lapack/src}/dlals0.f | 0 {dspl/liblapack/SRC => lapack/src}/dlalsa.f | 0 {dspl/liblapack/SRC => lapack/src}/dlalsd.f | 0 .../liblapack/INSTALL => lapack/src}/dlamch.f | 0 {dspl/liblapack/SRC => lapack/src}/dlamrg.f | 0 {dspl/liblapack/SRC => lapack/src}/dlamswlq.f | 0 {dspl/liblapack/SRC => lapack/src}/dlamtsqr.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaneg.f | 0 {dspl/liblapack/SRC => lapack/src}/dlangb.f | 0 {dspl/liblapack/SRC => lapack/src}/dlange.f | 0 {dspl/liblapack/SRC => lapack/src}/dlangt.f | 0 {dspl/liblapack/SRC => lapack/src}/dlanhs.f | 0 {dspl/liblapack/SRC => lapack/src}/dlansb.f | 0 {dspl/liblapack/SRC => lapack/src}/dlansf.f | 0 {dspl/liblapack/SRC => lapack/src}/dlansp.f | 0 {dspl/liblapack/SRC => lapack/src}/dlanst.f | 0 {dspl/liblapack/SRC => lapack/src}/dlansy.f | 0 {dspl/liblapack/SRC => lapack/src}/dlantb.f | 0 {dspl/liblapack/SRC => lapack/src}/dlantp.f | 0 {dspl/liblapack/SRC => lapack/src}/dlantr.f | 0 {dspl/liblapack/SRC => lapack/src}/dlanv2.f | 0 {dspl/liblapack/SRC => lapack/src}/dlapll.f | 0 {dspl/liblapack/SRC => lapack/src}/dlapmr.f | 0 {dspl/liblapack/SRC => lapack/src}/dlapmt.f | 0 {dspl/liblapack/SRC => lapack/src}/dlapy2.f | 0 {dspl/liblapack/SRC => lapack/src}/dlapy3.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaqgb.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaqge.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaqp2.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaqps.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaqr0.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaqr1.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaqr2.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaqr3.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaqr4.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaqr5.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaqsb.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaqsp.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaqsy.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaqtr.f | 0 {dspl/liblapack/SRC => lapack/src}/dlar1v.f | 0 {dspl/liblapack/SRC => lapack/src}/dlar2v.f | 0 {dspl/liblapack/SRC => lapack/src}/dlarf.f | 0 {dspl/liblapack/SRC => lapack/src}/dlarfb.f | 0 {dspl/liblapack/SRC => lapack/src}/dlarfg.f | 0 {dspl/liblapack/SRC => lapack/src}/dlarfgp.f | 0 {dspl/liblapack/SRC => lapack/src}/dlarft.f | 0 {dspl/liblapack/SRC => lapack/src}/dlarfx.f | 0 {dspl/liblapack/SRC => lapack/src}/dlarfy.f | 0 {dspl/liblapack/SRC => lapack/src}/dlargv.f | 0 {dspl/liblapack/SRC => lapack/src}/dlarnv.f | 0 {dspl/liblapack/SRC => lapack/src}/dlarra.f | 0 {dspl/liblapack/SRC => lapack/src}/dlarrb.f | 0 {dspl/liblapack/SRC => lapack/src}/dlarrc.f | 0 {dspl/liblapack/SRC => lapack/src}/dlarrd.f | 0 {dspl/liblapack/SRC => lapack/src}/dlarre.f | 0 {dspl/liblapack/SRC => lapack/src}/dlarrf.f | 0 {dspl/liblapack/SRC => lapack/src}/dlarrj.f | 0 {dspl/liblapack/SRC => lapack/src}/dlarrk.f | 0 {dspl/liblapack/SRC => lapack/src}/dlarrr.f | 0 {dspl/liblapack/SRC => lapack/src}/dlarrv.f | 0 {dspl/liblapack/SRC => lapack/src}/dlarscl2.f | 0 {dspl/liblapack/SRC => lapack/src}/dlartg.f | 0 {dspl/liblapack/SRC => lapack/src}/dlartgp.f | 0 {dspl/liblapack/SRC => lapack/src}/dlartgs.f | 0 {dspl/liblapack/SRC => lapack/src}/dlartv.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaruv.f | 0 {dspl/liblapack/SRC => lapack/src}/dlarz.f | 0 {dspl/liblapack/SRC => lapack/src}/dlarzb.f | 0 {dspl/liblapack/SRC => lapack/src}/dlarzt.f | 0 {dspl/liblapack/SRC => lapack/src}/dlas2.f | 0 {dspl/liblapack/SRC => lapack/src}/dlascl.f | 0 {dspl/liblapack/SRC => lapack/src}/dlascl2.f | 0 {dspl/liblapack/SRC => lapack/src}/dlasd0.f | 0 {dspl/liblapack/SRC => lapack/src}/dlasd1.f | 0 {dspl/liblapack/SRC => lapack/src}/dlasd2.f | 0 {dspl/liblapack/SRC => lapack/src}/dlasd3.f | 0 {dspl/liblapack/SRC => lapack/src}/dlasd4.f | 0 {dspl/liblapack/SRC => lapack/src}/dlasd5.f | 0 {dspl/liblapack/SRC => lapack/src}/dlasd6.f | 0 {dspl/liblapack/SRC => lapack/src}/dlasd7.f | 0 {dspl/liblapack/SRC => lapack/src}/dlasd8.f | 0 {dspl/liblapack/SRC => lapack/src}/dlasda.f | 0 {dspl/liblapack/SRC => lapack/src}/dlasdq.f | 0 {dspl/liblapack/SRC => lapack/src}/dlasdt.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaset.f | 0 {dspl/liblapack/SRC => lapack/src}/dlasq1.f | 0 {dspl/liblapack/SRC => lapack/src}/dlasq2.f | 0 {dspl/liblapack/SRC => lapack/src}/dlasq3.f | 0 {dspl/liblapack/SRC => lapack/src}/dlasq4.f | 0 {dspl/liblapack/SRC => lapack/src}/dlasq5.f | 0 {dspl/liblapack/SRC => lapack/src}/dlasq6.f | 0 {dspl/liblapack/SRC => lapack/src}/dlasr.f | 0 {dspl/liblapack/SRC => lapack/src}/dlasrt.f | 0 {dspl/liblapack/SRC => lapack/src}/dlassq.f | 0 {dspl/liblapack/SRC => lapack/src}/dlasv2.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaswlq.f | 0 {dspl/liblapack/SRC => lapack/src}/dlaswp.f | 0 {dspl/liblapack/SRC => lapack/src}/dlasy2.f | 0 {dspl/liblapack/SRC => lapack/src}/dlasyf.f | 0 .../liblapack/SRC => lapack/src}/dlasyf_aa.f | 0 .../liblapack/SRC => lapack/src}/dlasyf_rk.f | 0 .../SRC => lapack/src}/dlasyf_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/dlat2s.f | 0 {dspl/liblapack/SRC => lapack/src}/dlatbs.f | 0 {dspl/liblapack/SRC => lapack/src}/dlatdf.f | 0 {dspl/liblapack/SRC => lapack/src}/dlatps.f | 0 {dspl/liblapack/SRC => lapack/src}/dlatrd.f | 0 {dspl/liblapack/SRC => lapack/src}/dlatrs.f | 0 {dspl/liblapack/SRC => lapack/src}/dlatrz.f | 0 {dspl/liblapack/SRC => lapack/src}/dlatsqr.f | 0 {dspl/liblapack/SRC => lapack/src}/dlauu2.f | 0 {dspl/liblapack/SRC => lapack/src}/dlauum.f | 0 {dspl/liblapack/SRC => lapack/src}/dopgtr.f | 0 {dspl/liblapack/SRC => lapack/src}/dopmtr.f | 0 {dspl/liblapack/SRC => lapack/src}/dorbdb.f | 0 {dspl/liblapack/SRC => lapack/src}/dorbdb1.f | 0 {dspl/liblapack/SRC => lapack/src}/dorbdb2.f | 0 {dspl/liblapack/SRC => lapack/src}/dorbdb3.f | 0 {dspl/liblapack/SRC => lapack/src}/dorbdb4.f | 0 {dspl/liblapack/SRC => lapack/src}/dorbdb5.f | 0 {dspl/liblapack/SRC => lapack/src}/dorbdb6.f | 0 {dspl/liblapack/SRC => lapack/src}/dorcsd.f | 0 .../liblapack/SRC => lapack/src}/dorcsd2by1.f | 0 {dspl/liblapack/SRC => lapack/src}/dorg2l.f | 0 {dspl/liblapack/SRC => lapack/src}/dorg2r.f | 0 {dspl/liblapack/SRC => lapack/src}/dorgbr.f | 0 {dspl/liblapack/SRC => lapack/src}/dorghr.f | 0 {dspl/liblapack/SRC => lapack/src}/dorgl2.f | 0 {dspl/liblapack/SRC => lapack/src}/dorglq.f | 0 {dspl/liblapack/SRC => lapack/src}/dorgql.f | 0 {dspl/liblapack/SRC => lapack/src}/dorgqr.f | 0 {dspl/liblapack/SRC => lapack/src}/dorgr2.f | 0 {dspl/liblapack/SRC => lapack/src}/dorgrq.f | 0 {dspl/liblapack/SRC => lapack/src}/dorgtr.f | 0 {dspl/liblapack/SRC => lapack/src}/dorm22.f | 0 {dspl/liblapack/SRC => lapack/src}/dorm2l.f | 0 {dspl/liblapack/SRC => lapack/src}/dorm2r.f | 0 {dspl/liblapack/SRC => lapack/src}/dormbr.f | 0 {dspl/liblapack/SRC => lapack/src}/dormhr.f | 0 {dspl/liblapack/SRC => lapack/src}/dorml2.f | 0 {dspl/liblapack/SRC => lapack/src}/dormlq.f | 0 {dspl/liblapack/SRC => lapack/src}/dormql.f | 0 {dspl/liblapack/SRC => lapack/src}/dormqr.f | 0 {dspl/liblapack/SRC => lapack/src}/dormr2.f | 0 {dspl/liblapack/SRC => lapack/src}/dormr3.f | 0 {dspl/liblapack/SRC => lapack/src}/dormrq.f | 0 {dspl/liblapack/SRC => lapack/src}/dormrz.f | 0 {dspl/liblapack/SRC => lapack/src}/dormtr.f | 0 {dspl/liblapack/SRC => lapack/src}/dpbcon.f | 0 {dspl/liblapack/SRC => lapack/src}/dpbequ.f | 0 {dspl/liblapack/SRC => lapack/src}/dpbrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/dpbstf.f | 0 {dspl/liblapack/SRC => lapack/src}/dpbsv.f | 0 {dspl/liblapack/SRC => lapack/src}/dpbsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/dpbtf2.f | 0 {dspl/liblapack/SRC => lapack/src}/dpbtrf.f | 0 {dspl/liblapack/SRC => lapack/src}/dpbtrs.f | 0 {dspl/liblapack/SRC => lapack/src}/dpftrf.f | 0 {dspl/liblapack/SRC => lapack/src}/dpftri.f | 0 {dspl/liblapack/SRC => lapack/src}/dpftrs.f | 0 {dspl/liblapack/SRC => lapack/src}/dpocon.f | 0 {dspl/liblapack/SRC => lapack/src}/dpoequ.f | 0 {dspl/liblapack/SRC => lapack/src}/dpoequb.f | 0 {dspl/liblapack/SRC => lapack/src}/dporfs.f | 0 {dspl/liblapack/SRC => lapack/src}/dporfsx.f | 0 {dspl/liblapack/SRC => lapack/src}/dposv.f | 0 {dspl/liblapack/SRC => lapack/src}/dposvx.f | 0 {dspl/liblapack/SRC => lapack/src}/dposvxx.f | 0 {dspl/liblapack/SRC => lapack/src}/dpotf2.f | 0 {dspl/liblapack/SRC => lapack/src}/dpotrf.f | 0 {dspl/liblapack/SRC => lapack/src}/dpotrf2.f | 0 {dspl/liblapack/SRC => lapack/src}/dpotri.f | 0 {dspl/liblapack/SRC => lapack/src}/dpotrs.f | 0 {dspl/liblapack/SRC => lapack/src}/dppcon.f | 0 {dspl/liblapack/SRC => lapack/src}/dppequ.f | 0 {dspl/liblapack/SRC => lapack/src}/dpprfs.f | 0 {dspl/liblapack/SRC => lapack/src}/dppsv.f | 0 {dspl/liblapack/SRC => lapack/src}/dppsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/dpptrf.f | 0 {dspl/liblapack/SRC => lapack/src}/dpptri.f | 0 {dspl/liblapack/SRC => lapack/src}/dpptrs.f | 0 {dspl/liblapack/SRC => lapack/src}/dpstf2.f | 0 {dspl/liblapack/SRC => lapack/src}/dpstrf.f | 0 {dspl/liblapack/SRC => lapack/src}/dptcon.f | 0 {dspl/liblapack/SRC => lapack/src}/dpteqr.f | 0 {dspl/liblapack/SRC => lapack/src}/dptrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/dptsv.f | 0 {dspl/liblapack/SRC => lapack/src}/dptsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/dpttrf.f | 0 {dspl/liblapack/SRC => lapack/src}/dpttrs.f | 0 {dspl/liblapack/SRC => lapack/src}/dptts2.f | 0 {dspl/liblapack/SRC => lapack/src}/drscl.f | 0 .../SRC => lapack/src}/dsb2st_kernels.f | 0 {dspl/liblapack/SRC => lapack/src}/dsbev.f | 0 .../SRC => lapack/src}/dsbev_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/dsbevd.f | 0 .../SRC => lapack/src}/dsbevd_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/dsbevx.f | 0 .../SRC => lapack/src}/dsbevx_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/dsbgst.f | 0 {dspl/liblapack/SRC => lapack/src}/dsbgv.f | 0 {dspl/liblapack/SRC => lapack/src}/dsbgvd.f | 0 {dspl/liblapack/SRC => lapack/src}/dsbgvx.f | 0 {dspl/liblapack/SRC => lapack/src}/dsbtrd.f | 0 {dspl/liblapack/SRC => lapack/src}/dsfrk.f | 0 {dspl/liblapack/SRC => lapack/src}/dsgesv.f | 0 {dspl/liblapack/SRC => lapack/src}/dspcon.f | 0 {dspl/liblapack/SRC => lapack/src}/dspev.f | 0 {dspl/liblapack/SRC => lapack/src}/dspevd.f | 0 {dspl/liblapack/SRC => lapack/src}/dspevx.f | 0 {dspl/liblapack/SRC => lapack/src}/dspgst.f | 0 {dspl/liblapack/SRC => lapack/src}/dspgv.f | 0 {dspl/liblapack/SRC => lapack/src}/dspgvd.f | 0 {dspl/liblapack/SRC => lapack/src}/dspgvx.f | 0 {dspl/liblapack/SRC => lapack/src}/dsposv.f | 0 {dspl/liblapack/SRC => lapack/src}/dsprfs.f | 0 {dspl/liblapack/SRC => lapack/src}/dspsv.f | 0 {dspl/liblapack/SRC => lapack/src}/dspsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/dsptrd.f | 0 {dspl/liblapack/SRC => lapack/src}/dsptrf.f | 0 {dspl/liblapack/SRC => lapack/src}/dsptri.f | 0 {dspl/liblapack/SRC => lapack/src}/dsptrs.f | 0 {dspl/liblapack/SRC => lapack/src}/dstebz.f | 0 {dspl/liblapack/SRC => lapack/src}/dstedc.f | 0 {dspl/liblapack/SRC => lapack/src}/dstegr.f | 0 {dspl/liblapack/SRC => lapack/src}/dstein.f | 0 {dspl/liblapack/SRC => lapack/src}/dstemr.f | 0 {dspl/liblapack/SRC => lapack/src}/dsteqr.f | 0 {dspl/liblapack/SRC => lapack/src}/dsterf.f | 0 {dspl/liblapack/SRC => lapack/src}/dstev.f | 0 {dspl/liblapack/SRC => lapack/src}/dstevd.f | 0 {dspl/liblapack/SRC => lapack/src}/dstevr.f | 0 {dspl/liblapack/SRC => lapack/src}/dstevx.f | 0 {dspl/liblapack/SRC => lapack/src}/dsycon.f | 0 {dspl/liblapack/SRC => lapack/src}/dsycon_3.f | 0 .../SRC => lapack/src}/dsycon_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/dsyconv.f | 0 {dspl/liblapack/SRC => lapack/src}/dsyconvf.f | 0 .../SRC => lapack/src}/dsyconvf_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/dsyequb.f | 0 {dspl/liblapack/SRC => lapack/src}/dsyev.f | 0 .../SRC => lapack/src}/dsyev_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/dsyevd.f | 0 .../SRC => lapack/src}/dsyevd_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/dsyevr.f | 0 .../SRC => lapack/src}/dsyevr_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/dsyevx.f | 0 .../SRC => lapack/src}/dsyevx_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/dsygs2.f | 0 {dspl/liblapack/SRC => lapack/src}/dsygst.f | 0 {dspl/liblapack/SRC => lapack/src}/dsygv.f | 0 .../SRC => lapack/src}/dsygv_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/dsygvd.f | 0 {dspl/liblapack/SRC => lapack/src}/dsygvx.f | 0 {dspl/liblapack/SRC => lapack/src}/dsyrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/dsyrfsx.f | 0 {dspl/liblapack/SRC => lapack/src}/dsysv.f | 0 {dspl/liblapack/SRC => lapack/src}/dsysv_aa.f | 0 .../SRC => lapack/src}/dsysv_aa_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/dsysv_rk.f | 0 .../liblapack/SRC => lapack/src}/dsysv_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/dsysvx.f | 0 {dspl/liblapack/SRC => lapack/src}/dsysvxx.f | 0 {dspl/liblapack/SRC => lapack/src}/dsyswapr.f | 0 {dspl/liblapack/SRC => lapack/src}/dsytd2.f | 0 {dspl/liblapack/SRC => lapack/src}/dsytf2.f | 0 .../liblapack/SRC => lapack/src}/dsytf2_rk.f | 0 .../SRC => lapack/src}/dsytf2_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/dsytrd.f | 0 .../SRC => lapack/src}/dsytrd_2stage.f | 0 .../SRC => lapack/src}/dsytrd_sb2st.F | 0 .../SRC => lapack/src}/dsytrd_sy2sb.f | 0 {dspl/liblapack/SRC => lapack/src}/dsytrf.f | 0 .../liblapack/SRC => lapack/src}/dsytrf_aa.f | 0 .../SRC => lapack/src}/dsytrf_aa_2stage.f | 0 .../liblapack/SRC => lapack/src}/dsytrf_rk.f | 0 .../SRC => lapack/src}/dsytrf_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/dsytri.f | 0 {dspl/liblapack/SRC => lapack/src}/dsytri2.f | 0 {dspl/liblapack/SRC => lapack/src}/dsytri2x.f | 0 {dspl/liblapack/SRC => lapack/src}/dsytri_3.f | 0 .../liblapack/SRC => lapack/src}/dsytri_3x.f | 0 .../SRC => lapack/src}/dsytri_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/dsytrs.f | 0 {dspl/liblapack/SRC => lapack/src}/dsytrs2.f | 0 {dspl/liblapack/SRC => lapack/src}/dsytrs_3.f | 0 .../liblapack/SRC => lapack/src}/dsytrs_aa.f | 0 .../SRC => lapack/src}/dsytrs_aa_2stage.f | 0 .../SRC => lapack/src}/dsytrs_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/dtbcon.f | 0 {dspl/liblapack/SRC => lapack/src}/dtbrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/dtbtrs.f | 0 {dspl/liblapack/SRC => lapack/src}/dtfsm.f | 0 {dspl/liblapack/SRC => lapack/src}/dtftri.f | 0 {dspl/liblapack/SRC => lapack/src}/dtfttp.f | 0 {dspl/liblapack/SRC => lapack/src}/dtfttr.f | 0 {dspl/liblapack/SRC => lapack/src}/dtgevc.f | 0 {dspl/liblapack/SRC => lapack/src}/dtgex2.f | 0 {dspl/liblapack/SRC => lapack/src}/dtgexc.f | 0 {dspl/liblapack/SRC => lapack/src}/dtgsen.f | 0 {dspl/liblapack/SRC => lapack/src}/dtgsja.f | 0 {dspl/liblapack/SRC => lapack/src}/dtgsna.f | 0 {dspl/liblapack/SRC => lapack/src}/dtgsy2.f | 0 {dspl/liblapack/SRC => lapack/src}/dtgsyl.f | 0 {dspl/liblapack/SRC => lapack/src}/dtpcon.f | 0 {dspl/liblapack/SRC => lapack/src}/dtplqt.f | 0 {dspl/liblapack/SRC => lapack/src}/dtplqt2.f | 0 {dspl/liblapack/SRC => lapack/src}/dtpmlqt.f | 0 {dspl/liblapack/SRC => lapack/src}/dtpmqrt.f | 0 {dspl/liblapack/SRC => lapack/src}/dtpqrt.f | 0 {dspl/liblapack/SRC => lapack/src}/dtpqrt2.f | 0 {dspl/liblapack/SRC => lapack/src}/dtprfb.f | 0 {dspl/liblapack/SRC => lapack/src}/dtprfs.f | 0 {dspl/liblapack/SRC => lapack/src}/dtptri.f | 0 {dspl/liblapack/SRC => lapack/src}/dtptrs.f | 0 {dspl/liblapack/SRC => lapack/src}/dtpttf.f | 0 {dspl/liblapack/SRC => lapack/src}/dtpttr.f | 0 {dspl/liblapack/SRC => lapack/src}/dtrcon.f | 0 {dspl/liblapack/SRC => lapack/src}/dtrevc.f | 0 {dspl/liblapack/SRC => lapack/src}/dtrevc3.f | 0 {dspl/liblapack/SRC => lapack/src}/dtrexc.f | 0 {dspl/liblapack/SRC => lapack/src}/dtrrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/dtrsen.f | 0 {dspl/liblapack/SRC => lapack/src}/dtrsna.f | 0 {dspl/liblapack/SRC => lapack/src}/dtrsyl.f | 0 {dspl/liblapack/SRC => lapack/src}/dtrti2.f | 0 {dspl/liblapack/SRC => lapack/src}/dtrtri.f | 0 {dspl/liblapack/SRC => lapack/src}/dtrtrs.f | 0 {dspl/liblapack/SRC => lapack/src}/dtrttf.f | 0 {dspl/liblapack/SRC => lapack/src}/dtrttp.f | 0 {dspl/liblapack/SRC => lapack/src}/dtzrzf.f | 0 {dspl/liblapack/SRC => lapack/src}/dzsum1.f | 0 {dspl/liblapack/SRC => lapack/src}/icmax1.f | 0 {dspl/liblapack/SRC => lapack/src}/ieeeck.f | 0 {dspl/liblapack/SRC => lapack/src}/ilaclc.f | 0 {dspl/liblapack/SRC => lapack/src}/ilaclr.f | 0 {dspl/liblapack/SRC => lapack/src}/iladiag.f | 0 {dspl/liblapack/SRC => lapack/src}/iladlc.f | 0 {dspl/liblapack/SRC => lapack/src}/iladlr.f | 0 {dspl/liblapack/SRC => lapack/src}/ilaenv.f | 0 .../SRC => lapack/src}/ilaenv2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/ilaprec.f | 0 {dspl/liblapack/SRC => lapack/src}/ilaslc.f | 0 {dspl/liblapack/SRC => lapack/src}/ilaslr.f | 0 {dspl/liblapack/SRC => lapack/src}/ilatrans.f | 0 {dspl/liblapack/SRC => lapack/src}/ilauplo.f | 0 {dspl/liblapack/SRC => lapack/src}/ilazlc.f | 0 {dspl/liblapack/SRC => lapack/src}/ilazlr.f | 0 .../SRC => lapack/src}/iparam2stage.F | 0 {dspl/liblapack/SRC => lapack/src}/iparmq.f | 0 {dspl/liblapack/SRC => lapack/src}/izmax1.f | 0 {dspl/liblapack/SRC => lapack/src}/lsamen.f | 0 {dspl/liblapack/SRC => lapack/src}/sbbcsd.f | 0 {dspl/liblapack/SRC => lapack/src}/sbdsdc.f | 0 {dspl/liblapack/SRC => lapack/src}/sbdsqr.f | 0 {dspl/liblapack/SRC => lapack/src}/sbdsvdx.f | 0 {dspl/liblapack/SRC => lapack/src}/scsum1.f | 0 {dspl/liblapack/SRC => lapack/src}/sdisna.f | 0 {dspl/liblapack/SRC => lapack/src}/sgbbrd.f | 0 {dspl/liblapack/SRC => lapack/src}/sgbcon.f | 0 {dspl/liblapack/SRC => lapack/src}/sgbequ.f | 0 {dspl/liblapack/SRC => lapack/src}/sgbequb.f | 0 {dspl/liblapack/SRC => lapack/src}/sgbrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/sgbrfsx.f | 0 {dspl/liblapack/SRC => lapack/src}/sgbsv.f | 0 {dspl/liblapack/SRC => lapack/src}/sgbsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/sgbsvxx.f | 0 {dspl/liblapack/SRC => lapack/src}/sgbtf2.f | 0 {dspl/liblapack/SRC => lapack/src}/sgbtrf.f | 0 {dspl/liblapack/SRC => lapack/src}/sgbtrs.f | 0 {dspl/liblapack/SRC => lapack/src}/sgebak.f | 0 {dspl/liblapack/SRC => lapack/src}/sgebal.f | 0 {dspl/liblapack/SRC => lapack/src}/sgebd2.f | 0 {dspl/liblapack/SRC => lapack/src}/sgebrd.f | 0 {dspl/liblapack/SRC => lapack/src}/sgecon.f | 0 {dspl/liblapack/SRC => lapack/src}/sgeequ.f | 0 {dspl/liblapack/SRC => lapack/src}/sgeequb.f | 0 {dspl/liblapack/SRC => lapack/src}/sgees.f | 0 {dspl/liblapack/SRC => lapack/src}/sgeesx.f | 0 {dspl/liblapack/SRC => lapack/src}/sgeev.f | 0 {dspl/liblapack/SRC => lapack/src}/sgeevx.f | 0 {dspl/liblapack/SRC => lapack/src}/sgehd2.f | 0 {dspl/liblapack/SRC => lapack/src}/sgehrd.f | 0 {dspl/liblapack/SRC => lapack/src}/sgejsv.f | 0 {dspl/liblapack/SRC => lapack/src}/sgelq.f | 0 {dspl/liblapack/SRC => lapack/src}/sgelq2.f | 0 {dspl/liblapack/SRC => lapack/src}/sgelqf.f | 0 {dspl/liblapack/SRC => lapack/src}/sgelqt.f | 0 {dspl/liblapack/SRC => lapack/src}/sgelqt3.f | 0 {dspl/liblapack/SRC => lapack/src}/sgels.f | 0 {dspl/liblapack/SRC => lapack/src}/sgelsd.f | 0 {dspl/liblapack/SRC => lapack/src}/sgelss.f | 0 {dspl/liblapack/SRC => lapack/src}/sgelsy.f | 0 {dspl/liblapack/SRC => lapack/src}/sgemlq.f | 0 {dspl/liblapack/SRC => lapack/src}/sgemlqt.f | 0 {dspl/liblapack/SRC => lapack/src}/sgemqr.f | 0 {dspl/liblapack/SRC => lapack/src}/sgemqrt.f | 0 {dspl/liblapack/SRC => lapack/src}/sgeql2.f | 0 {dspl/liblapack/SRC => lapack/src}/sgeqlf.f | 0 {dspl/liblapack/SRC => lapack/src}/sgeqp3.f | 0 {dspl/liblapack/SRC => lapack/src}/sgeqr.f | 0 {dspl/liblapack/SRC => lapack/src}/sgeqr2.f | 0 {dspl/liblapack/SRC => lapack/src}/sgeqr2p.f | 0 {dspl/liblapack/SRC => lapack/src}/sgeqrf.f | 0 {dspl/liblapack/SRC => lapack/src}/sgeqrfp.f | 0 {dspl/liblapack/SRC => lapack/src}/sgeqrt.f | 0 {dspl/liblapack/SRC => lapack/src}/sgeqrt2.f | 0 {dspl/liblapack/SRC => lapack/src}/sgeqrt3.f | 0 {dspl/liblapack/SRC => lapack/src}/sgerfs.f | 0 {dspl/liblapack/SRC => lapack/src}/sgerfsx.f | 0 {dspl/liblapack/SRC => lapack/src}/sgerq2.f | 0 {dspl/liblapack/SRC => lapack/src}/sgerqf.f | 0 {dspl/liblapack/SRC => lapack/src}/sgesc2.f | 0 {dspl/liblapack/SRC => lapack/src}/sgesdd.f | 0 {dspl/liblapack/SRC => lapack/src}/sgesv.f | 0 {dspl/liblapack/SRC => lapack/src}/sgesvd.f | 0 {dspl/liblapack/SRC => lapack/src}/sgesvdx.f | 0 {dspl/liblapack/SRC => lapack/src}/sgesvj.f | 0 {dspl/liblapack/SRC => lapack/src}/sgesvx.f | 0 {dspl/liblapack/SRC => lapack/src}/sgesvxx.f | 0 {dspl/liblapack/SRC => lapack/src}/sgetc2.f | 0 {dspl/liblapack/SRC => lapack/src}/sgetf2.f | 0 {dspl/liblapack/SRC => lapack/src}/sgetrf.f | 0 {dspl/liblapack/SRC => lapack/src}/sgetrf2.f | 0 {dspl/liblapack/SRC => lapack/src}/sgetri.f | 0 {dspl/liblapack/SRC => lapack/src}/sgetrs.f | 0 {dspl/liblapack/SRC => lapack/src}/sgetsls.f | 0 {dspl/liblapack/SRC => lapack/src}/sggbak.f | 0 {dspl/liblapack/SRC => lapack/src}/sggbal.f | 0 {dspl/liblapack/SRC => lapack/src}/sgges.f | 0 {dspl/liblapack/SRC => lapack/src}/sgges3.f | 0 {dspl/liblapack/SRC => lapack/src}/sggesx.f | 0 {dspl/liblapack/SRC => lapack/src}/sggev.f | 0 {dspl/liblapack/SRC => lapack/src}/sggev3.f | 0 {dspl/liblapack/SRC => lapack/src}/sggevx.f | 0 {dspl/liblapack/SRC => lapack/src}/sggglm.f | 0 {dspl/liblapack/SRC => lapack/src}/sgghd3.f | 0 {dspl/liblapack/SRC => lapack/src}/sgghrd.f | 0 {dspl/liblapack/SRC => lapack/src}/sgglse.f | 0 {dspl/liblapack/SRC => lapack/src}/sggqrf.f | 0 {dspl/liblapack/SRC => lapack/src}/sggrqf.f | 0 {dspl/liblapack/SRC => lapack/src}/sggsvd3.f | 0 {dspl/liblapack/SRC => lapack/src}/sggsvp3.f | 0 {dspl/liblapack/SRC => lapack/src}/sgsvj0.f | 0 {dspl/liblapack/SRC => lapack/src}/sgsvj1.f | 0 {dspl/liblapack/SRC => lapack/src}/sgtcon.f | 0 {dspl/liblapack/SRC => lapack/src}/sgtrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/sgtsv.f | 0 {dspl/liblapack/SRC => lapack/src}/sgtsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/sgttrf.f | 0 {dspl/liblapack/SRC => lapack/src}/sgttrs.f | 0 {dspl/liblapack/SRC => lapack/src}/sgtts2.f | 0 {dspl/liblapack/SRC => lapack/src}/shgeqz.f | 0 {dspl/liblapack/SRC => lapack/src}/shsein.f | 0 {dspl/liblapack/SRC => lapack/src}/shseqr.f | 0 {dspl/liblapack/SRC => lapack/src}/sisnan.f | 0 .../liblapack/SRC => lapack/src}/sla_gbamv.f | 0 .../SRC => lapack/src}/sla_gbrcond.f | 0 .../SRC => lapack/src}/sla_gbrfsx_extended.f | 0 .../SRC => lapack/src}/sla_gbrpvgrw.f | 0 .../liblapack/SRC => lapack/src}/sla_geamv.f | 0 .../SRC => lapack/src}/sla_gercond.f | 0 .../SRC => lapack/src}/sla_gerfsx_extended.f | 0 .../SRC => lapack/src}/sla_gerpvgrw.f | 0 .../SRC => lapack/src}/sla_lin_berr.f | 0 .../SRC => lapack/src}/sla_porcond.f | 0 .../SRC => lapack/src}/sla_porfsx_extended.f | 0 .../SRC => lapack/src}/sla_porpvgrw.f | 0 .../liblapack/SRC => lapack/src}/sla_syamv.f | 0 .../SRC => lapack/src}/sla_syrcond.f | 0 .../SRC => lapack/src}/sla_syrfsx_extended.f | 0 .../SRC => lapack/src}/sla_syrpvgrw.f | 0 .../liblapack/SRC => lapack/src}/sla_wwaddw.f | 0 {dspl/liblapack/SRC => lapack/src}/slabad.f | 0 {dspl/liblapack/SRC => lapack/src}/slabrd.f | 0 {dspl/liblapack/SRC => lapack/src}/slacn2.f | 0 {dspl/liblapack/SRC => lapack/src}/slacon.f | 0 {dspl/liblapack/SRC => lapack/src}/slacpy.f | 0 {dspl/liblapack/SRC => lapack/src}/sladiv.f | 0 {dspl/liblapack/SRC => lapack/src}/slae2.f | 0 {dspl/liblapack/SRC => lapack/src}/slaebz.f | 0 {dspl/liblapack/SRC => lapack/src}/slaed0.f | 0 {dspl/liblapack/SRC => lapack/src}/slaed1.f | 0 {dspl/liblapack/SRC => lapack/src}/slaed2.f | 0 {dspl/liblapack/SRC => lapack/src}/slaed3.f | 0 {dspl/liblapack/SRC => lapack/src}/slaed4.f | 0 {dspl/liblapack/SRC => lapack/src}/slaed5.f | 0 {dspl/liblapack/SRC => lapack/src}/slaed6.f | 0 {dspl/liblapack/SRC => lapack/src}/slaed7.f | 0 {dspl/liblapack/SRC => lapack/src}/slaed8.f | 0 {dspl/liblapack/SRC => lapack/src}/slaed9.f | 0 {dspl/liblapack/SRC => lapack/src}/slaeda.f | 0 {dspl/liblapack/SRC => lapack/src}/slaein.f | 0 {dspl/liblapack/SRC => lapack/src}/slaev2.f | 0 {dspl/liblapack/SRC => lapack/src}/slaexc.f | 0 {dspl/liblapack/SRC => lapack/src}/slag2.f | 0 {dspl/liblapack/SRC => lapack/src}/slag2d.f | 0 {dspl/liblapack/SRC => lapack/src}/slags2.f | 0 {dspl/liblapack/SRC => lapack/src}/slagtf.f | 0 {dspl/liblapack/SRC => lapack/src}/slagtm.f | 0 {dspl/liblapack/SRC => lapack/src}/slagts.f | 0 {dspl/liblapack/SRC => lapack/src}/slagv2.f | 0 {dspl/liblapack/SRC => lapack/src}/slahqr.f | 0 {dspl/liblapack/SRC => lapack/src}/slahr2.f | 0 {dspl/liblapack/SRC => lapack/src}/slaic1.f | 0 {dspl/liblapack/SRC => lapack/src}/slaisnan.f | 0 {dspl/liblapack/SRC => lapack/src}/slaln2.f | 0 {dspl/liblapack/SRC => lapack/src}/slals0.f | 0 {dspl/liblapack/SRC => lapack/src}/slalsa.f | 0 {dspl/liblapack/SRC => lapack/src}/slalsd.f | 0 {dspl/liblapack/SRC => lapack/src}/slamrg.f | 0 {dspl/liblapack/SRC => lapack/src}/slamswlq.f | 0 {dspl/liblapack/SRC => lapack/src}/slamtsqr.f | 0 {dspl/liblapack/SRC => lapack/src}/slaneg.f | 0 {dspl/liblapack/SRC => lapack/src}/slangb.f | 0 {dspl/liblapack/SRC => lapack/src}/slange.f | 0 {dspl/liblapack/SRC => lapack/src}/slangt.f | 0 {dspl/liblapack/SRC => lapack/src}/slanhs.f | 0 {dspl/liblapack/SRC => lapack/src}/slansb.f | 0 {dspl/liblapack/SRC => lapack/src}/slansf.f | 0 {dspl/liblapack/SRC => lapack/src}/slansp.f | 0 {dspl/liblapack/SRC => lapack/src}/slanst.f | 0 {dspl/liblapack/SRC => lapack/src}/slansy.f | 0 {dspl/liblapack/SRC => lapack/src}/slantb.f | 0 {dspl/liblapack/SRC => lapack/src}/slantp.f | 0 {dspl/liblapack/SRC => lapack/src}/slantr.f | 0 {dspl/liblapack/SRC => lapack/src}/slanv2.f | 0 {dspl/liblapack/SRC => lapack/src}/slapll.f | 0 {dspl/liblapack/SRC => lapack/src}/slapmr.f | 0 {dspl/liblapack/SRC => lapack/src}/slapmt.f | 0 {dspl/liblapack/SRC => lapack/src}/slapy2.f | 0 {dspl/liblapack/SRC => lapack/src}/slapy3.f | 0 {dspl/liblapack/SRC => lapack/src}/slaqgb.f | 0 {dspl/liblapack/SRC => lapack/src}/slaqge.f | 0 {dspl/liblapack/SRC => lapack/src}/slaqp2.f | 0 {dspl/liblapack/SRC => lapack/src}/slaqps.f | 0 {dspl/liblapack/SRC => lapack/src}/slaqr0.f | 0 {dspl/liblapack/SRC => lapack/src}/slaqr1.f | 0 {dspl/liblapack/SRC => lapack/src}/slaqr2.f | 0 {dspl/liblapack/SRC => lapack/src}/slaqr3.f | 0 {dspl/liblapack/SRC => lapack/src}/slaqr4.f | 0 {dspl/liblapack/SRC => lapack/src}/slaqr5.f | 0 {dspl/liblapack/SRC => lapack/src}/slaqsb.f | 0 {dspl/liblapack/SRC => lapack/src}/slaqsp.f | 0 {dspl/liblapack/SRC => lapack/src}/slaqsy.f | 0 {dspl/liblapack/SRC => lapack/src}/slaqtr.f | 0 {dspl/liblapack/SRC => lapack/src}/slar1v.f | 0 {dspl/liblapack/SRC => lapack/src}/slar2v.f | 0 {dspl/liblapack/SRC => lapack/src}/slarf.f | 0 {dspl/liblapack/SRC => lapack/src}/slarfb.f | 0 {dspl/liblapack/SRC => lapack/src}/slarfg.f | 0 {dspl/liblapack/SRC => lapack/src}/slarfgp.f | 0 {dspl/liblapack/SRC => lapack/src}/slarft.f | 0 {dspl/liblapack/SRC => lapack/src}/slarfx.f | 0 {dspl/liblapack/SRC => lapack/src}/slarfy.f | 0 {dspl/liblapack/SRC => lapack/src}/slargv.f | 0 {dspl/liblapack/SRC => lapack/src}/slarnv.f | 0 {dspl/liblapack/SRC => lapack/src}/slarra.f | 0 {dspl/liblapack/SRC => lapack/src}/slarrb.f | 0 {dspl/liblapack/SRC => lapack/src}/slarrc.f | 0 {dspl/liblapack/SRC => lapack/src}/slarrd.f | 0 {dspl/liblapack/SRC => lapack/src}/slarre.f | 0 {dspl/liblapack/SRC => lapack/src}/slarrf.f | 0 {dspl/liblapack/SRC => lapack/src}/slarrj.f | 0 {dspl/liblapack/SRC => lapack/src}/slarrk.f | 0 {dspl/liblapack/SRC => lapack/src}/slarrr.f | 0 {dspl/liblapack/SRC => lapack/src}/slarrv.f | 0 {dspl/liblapack/SRC => lapack/src}/slarscl2.f | 0 {dspl/liblapack/SRC => lapack/src}/slartg.f | 0 {dspl/liblapack/SRC => lapack/src}/slartgp.f | 0 {dspl/liblapack/SRC => lapack/src}/slartgs.f | 0 {dspl/liblapack/SRC => lapack/src}/slartv.f | 0 {dspl/liblapack/SRC => lapack/src}/slaruv.f | 0 {dspl/liblapack/SRC => lapack/src}/slarz.f | 0 {dspl/liblapack/SRC => lapack/src}/slarzb.f | 0 {dspl/liblapack/SRC => lapack/src}/slarzt.f | 0 {dspl/liblapack/SRC => lapack/src}/slas2.f | 0 {dspl/liblapack/SRC => lapack/src}/slascl.f | 0 {dspl/liblapack/SRC => lapack/src}/slascl2.f | 0 {dspl/liblapack/SRC => lapack/src}/slasd0.f | 0 {dspl/liblapack/SRC => lapack/src}/slasd1.f | 0 {dspl/liblapack/SRC => lapack/src}/slasd2.f | 0 {dspl/liblapack/SRC => lapack/src}/slasd3.f | 0 {dspl/liblapack/SRC => lapack/src}/slasd4.f | 0 {dspl/liblapack/SRC => lapack/src}/slasd5.f | 0 {dspl/liblapack/SRC => lapack/src}/slasd6.f | 0 {dspl/liblapack/SRC => lapack/src}/slasd7.f | 0 {dspl/liblapack/SRC => lapack/src}/slasd8.f | 0 {dspl/liblapack/SRC => lapack/src}/slasda.f | 0 {dspl/liblapack/SRC => lapack/src}/slasdq.f | 0 {dspl/liblapack/SRC => lapack/src}/slasdt.f | 0 {dspl/liblapack/SRC => lapack/src}/slaset.f | 0 {dspl/liblapack/SRC => lapack/src}/slasq1.f | 0 {dspl/liblapack/SRC => lapack/src}/slasq2.f | 0 {dspl/liblapack/SRC => lapack/src}/slasq3.f | 0 {dspl/liblapack/SRC => lapack/src}/slasq4.f | 0 {dspl/liblapack/SRC => lapack/src}/slasq5.f | 0 {dspl/liblapack/SRC => lapack/src}/slasq6.f | 0 {dspl/liblapack/SRC => lapack/src}/slasr.f | 0 {dspl/liblapack/SRC => lapack/src}/slasrt.f | 0 {dspl/liblapack/SRC => lapack/src}/slassq.f | 0 {dspl/liblapack/SRC => lapack/src}/slasv2.f | 0 {dspl/liblapack/SRC => lapack/src}/slaswlq.f | 0 {dspl/liblapack/SRC => lapack/src}/slaswp.f | 0 {dspl/liblapack/SRC => lapack/src}/slasy2.f | 0 {dspl/liblapack/SRC => lapack/src}/slasyf.f | 0 .../liblapack/SRC => lapack/src}/slasyf_aa.f | 0 .../liblapack/SRC => lapack/src}/slasyf_rk.f | 0 .../SRC => lapack/src}/slasyf_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/slatbs.f | 0 {dspl/liblapack/SRC => lapack/src}/slatdf.f | 0 {dspl/liblapack/SRC => lapack/src}/slatps.f | 0 {dspl/liblapack/SRC => lapack/src}/slatrd.f | 0 {dspl/liblapack/SRC => lapack/src}/slatrs.f | 0 {dspl/liblapack/SRC => lapack/src}/slatrz.f | 0 {dspl/liblapack/SRC => lapack/src}/slatsqr.f | 0 {dspl/liblapack/SRC => lapack/src}/slauu2.f | 0 {dspl/liblapack/SRC => lapack/src}/slauum.f | 0 {dspl/liblapack/SRC => lapack/src}/sopgtr.f | 0 {dspl/liblapack/SRC => lapack/src}/sopmtr.f | 0 {dspl/liblapack/SRC => lapack/src}/sorbdb.f | 0 {dspl/liblapack/SRC => lapack/src}/sorbdb1.f | 0 {dspl/liblapack/SRC => lapack/src}/sorbdb2.f | 0 {dspl/liblapack/SRC => lapack/src}/sorbdb3.f | 0 {dspl/liblapack/SRC => lapack/src}/sorbdb4.f | 0 {dspl/liblapack/SRC => lapack/src}/sorbdb5.f | 0 {dspl/liblapack/SRC => lapack/src}/sorbdb6.f | 0 {dspl/liblapack/SRC => lapack/src}/sorcsd.f | 0 .../liblapack/SRC => lapack/src}/sorcsd2by1.f | 0 {dspl/liblapack/SRC => lapack/src}/sorg2l.f | 0 {dspl/liblapack/SRC => lapack/src}/sorg2r.f | 0 {dspl/liblapack/SRC => lapack/src}/sorgbr.f | 0 {dspl/liblapack/SRC => lapack/src}/sorghr.f | 0 {dspl/liblapack/SRC => lapack/src}/sorgl2.f | 0 {dspl/liblapack/SRC => lapack/src}/sorglq.f | 0 {dspl/liblapack/SRC => lapack/src}/sorgql.f | 0 {dspl/liblapack/SRC => lapack/src}/sorgqr.f | 0 {dspl/liblapack/SRC => lapack/src}/sorgr2.f | 0 {dspl/liblapack/SRC => lapack/src}/sorgrq.f | 0 {dspl/liblapack/SRC => lapack/src}/sorgtr.f | 0 {dspl/liblapack/SRC => lapack/src}/sorm22.f | 0 {dspl/liblapack/SRC => lapack/src}/sorm2l.f | 0 {dspl/liblapack/SRC => lapack/src}/sorm2r.f | 0 {dspl/liblapack/SRC => lapack/src}/sormbr.f | 0 {dspl/liblapack/SRC => lapack/src}/sormhr.f | 0 {dspl/liblapack/SRC => lapack/src}/sorml2.f | 0 {dspl/liblapack/SRC => lapack/src}/sormlq.f | 0 {dspl/liblapack/SRC => lapack/src}/sormql.f | 0 {dspl/liblapack/SRC => lapack/src}/sormqr.f | 0 {dspl/liblapack/SRC => lapack/src}/sormr2.f | 0 {dspl/liblapack/SRC => lapack/src}/sormr3.f | 0 {dspl/liblapack/SRC => lapack/src}/sormrq.f | 0 {dspl/liblapack/SRC => lapack/src}/sormrz.f | 0 {dspl/liblapack/SRC => lapack/src}/sormtr.f | 0 {dspl/liblapack/SRC => lapack/src}/spbcon.f | 0 {dspl/liblapack/SRC => lapack/src}/spbequ.f | 0 {dspl/liblapack/SRC => lapack/src}/spbrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/spbstf.f | 0 {dspl/liblapack/SRC => lapack/src}/spbsv.f | 0 {dspl/liblapack/SRC => lapack/src}/spbsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/spbtf2.f | 0 {dspl/liblapack/SRC => lapack/src}/spbtrf.f | 0 {dspl/liblapack/SRC => lapack/src}/spbtrs.f | 0 {dspl/liblapack/SRC => lapack/src}/spftrf.f | 0 {dspl/liblapack/SRC => lapack/src}/spftri.f | 0 {dspl/liblapack/SRC => lapack/src}/spftrs.f | 0 {dspl/liblapack/SRC => lapack/src}/spocon.f | 0 {dspl/liblapack/SRC => lapack/src}/spoequ.f | 0 {dspl/liblapack/SRC => lapack/src}/spoequb.f | 0 {dspl/liblapack/SRC => lapack/src}/sporfs.f | 0 {dspl/liblapack/SRC => lapack/src}/sporfsx.f | 0 {dspl/liblapack/SRC => lapack/src}/sposv.f | 0 {dspl/liblapack/SRC => lapack/src}/sposvx.f | 0 {dspl/liblapack/SRC => lapack/src}/sposvxx.f | 0 {dspl/liblapack/SRC => lapack/src}/spotf2.f | 0 {dspl/liblapack/SRC => lapack/src}/spotrf.f | 0 {dspl/liblapack/SRC => lapack/src}/spotrf2.f | 0 {dspl/liblapack/SRC => lapack/src}/spotri.f | 0 {dspl/liblapack/SRC => lapack/src}/spotrs.f | 0 {dspl/liblapack/SRC => lapack/src}/sppcon.f | 0 {dspl/liblapack/SRC => lapack/src}/sppequ.f | 0 {dspl/liblapack/SRC => lapack/src}/spprfs.f | 0 {dspl/liblapack/SRC => lapack/src}/sppsv.f | 0 {dspl/liblapack/SRC => lapack/src}/sppsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/spptrf.f | 0 {dspl/liblapack/SRC => lapack/src}/spptri.f | 0 {dspl/liblapack/SRC => lapack/src}/spptrs.f | 0 {dspl/liblapack/SRC => lapack/src}/spstf2.f | 0 {dspl/liblapack/SRC => lapack/src}/spstrf.f | 0 {dspl/liblapack/SRC => lapack/src}/sptcon.f | 0 {dspl/liblapack/SRC => lapack/src}/spteqr.f | 0 {dspl/liblapack/SRC => lapack/src}/sptrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/sptsv.f | 0 {dspl/liblapack/SRC => lapack/src}/sptsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/spttrf.f | 0 {dspl/liblapack/SRC => lapack/src}/spttrs.f | 0 {dspl/liblapack/SRC => lapack/src}/sptts2.f | 0 {dspl/liblapack/SRC => lapack/src}/srscl.f | 0 .../SRC => lapack/src}/ssb2st_kernels.f | 0 {dspl/liblapack/SRC => lapack/src}/ssbev.f | 0 .../SRC => lapack/src}/ssbev_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/ssbevd.f | 0 .../SRC => lapack/src}/ssbevd_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/ssbevx.f | 0 .../SRC => lapack/src}/ssbevx_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/ssbgst.f | 0 {dspl/liblapack/SRC => lapack/src}/ssbgv.f | 0 {dspl/liblapack/SRC => lapack/src}/ssbgvd.f | 0 {dspl/liblapack/SRC => lapack/src}/ssbgvx.f | 0 {dspl/liblapack/SRC => lapack/src}/ssbtrd.f | 0 {dspl/liblapack/SRC => lapack/src}/ssfrk.f | 0 {dspl/liblapack/SRC => lapack/src}/sspcon.f | 0 {dspl/liblapack/SRC => lapack/src}/sspev.f | 0 {dspl/liblapack/SRC => lapack/src}/sspevd.f | 0 {dspl/liblapack/SRC => lapack/src}/sspevx.f | 0 {dspl/liblapack/SRC => lapack/src}/sspgst.f | 0 {dspl/liblapack/SRC => lapack/src}/sspgv.f | 0 {dspl/liblapack/SRC => lapack/src}/sspgvd.f | 0 {dspl/liblapack/SRC => lapack/src}/sspgvx.f | 0 {dspl/liblapack/SRC => lapack/src}/ssprfs.f | 0 {dspl/liblapack/SRC => lapack/src}/sspsv.f | 0 {dspl/liblapack/SRC => lapack/src}/sspsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/ssptrd.f | 0 {dspl/liblapack/SRC => lapack/src}/ssptrf.f | 0 {dspl/liblapack/SRC => lapack/src}/ssptri.f | 0 {dspl/liblapack/SRC => lapack/src}/ssptrs.f | 0 {dspl/liblapack/SRC => lapack/src}/sstebz.f | 0 {dspl/liblapack/SRC => lapack/src}/sstedc.f | 0 {dspl/liblapack/SRC => lapack/src}/sstegr.f | 0 {dspl/liblapack/SRC => lapack/src}/sstein.f | 0 {dspl/liblapack/SRC => lapack/src}/sstemr.f | 0 {dspl/liblapack/SRC => lapack/src}/ssteqr.f | 0 {dspl/liblapack/SRC => lapack/src}/ssterf.f | 0 {dspl/liblapack/SRC => lapack/src}/sstev.f | 0 {dspl/liblapack/SRC => lapack/src}/sstevd.f | 0 {dspl/liblapack/SRC => lapack/src}/sstevr.f | 0 {dspl/liblapack/SRC => lapack/src}/sstevx.f | 0 {dspl/liblapack/SRC => lapack/src}/ssycon.f | 0 {dspl/liblapack/SRC => lapack/src}/ssycon_3.f | 0 .../SRC => lapack/src}/ssycon_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/ssyconv.f | 0 {dspl/liblapack/SRC => lapack/src}/ssyconvf.f | 0 .../SRC => lapack/src}/ssyconvf_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/ssyequb.f | 0 {dspl/liblapack/SRC => lapack/src}/ssyev.f | 0 .../SRC => lapack/src}/ssyev_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/ssyevd.f | 0 .../SRC => lapack/src}/ssyevd_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/ssyevr.f | 0 .../SRC => lapack/src}/ssyevr_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/ssyevx.f | 0 .../SRC => lapack/src}/ssyevx_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/ssygs2.f | 0 {dspl/liblapack/SRC => lapack/src}/ssygst.f | 0 {dspl/liblapack/SRC => lapack/src}/ssygv.f | 0 .../SRC => lapack/src}/ssygv_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/ssygvd.f | 0 {dspl/liblapack/SRC => lapack/src}/ssygvx.f | 0 {dspl/liblapack/SRC => lapack/src}/ssyrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/ssyrfsx.f | 0 {dspl/liblapack/SRC => lapack/src}/ssysv.f | 0 {dspl/liblapack/SRC => lapack/src}/ssysv_aa.f | 0 .../SRC => lapack/src}/ssysv_aa_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/ssysv_rk.f | 0 .../liblapack/SRC => lapack/src}/ssysv_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/ssysvx.f | 0 {dspl/liblapack/SRC => lapack/src}/ssysvxx.f | 0 {dspl/liblapack/SRC => lapack/src}/ssyswapr.f | 0 {dspl/liblapack/SRC => lapack/src}/ssytd2.f | 0 {dspl/liblapack/SRC => lapack/src}/ssytf2.f | 0 .../liblapack/SRC => lapack/src}/ssytf2_rk.f | 0 .../SRC => lapack/src}/ssytf2_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/ssytrd.f | 0 .../SRC => lapack/src}/ssytrd_2stage.f | 0 .../SRC => lapack/src}/ssytrd_sb2st.F | 0 .../SRC => lapack/src}/ssytrd_sy2sb.f | 0 {dspl/liblapack/SRC => lapack/src}/ssytrf.f | 0 .../liblapack/SRC => lapack/src}/ssytrf_aa.f | 0 .../SRC => lapack/src}/ssytrf_aa_2stage.f | 0 .../liblapack/SRC => lapack/src}/ssytrf_rk.f | 0 .../SRC => lapack/src}/ssytrf_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/ssytri.f | 0 {dspl/liblapack/SRC => lapack/src}/ssytri2.f | 0 {dspl/liblapack/SRC => lapack/src}/ssytri2x.f | 0 {dspl/liblapack/SRC => lapack/src}/ssytri_3.f | 0 .../liblapack/SRC => lapack/src}/ssytri_3x.f | 0 .../SRC => lapack/src}/ssytri_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/ssytrs.f | 0 {dspl/liblapack/SRC => lapack/src}/ssytrs2.f | 0 {dspl/liblapack/SRC => lapack/src}/ssytrs_3.f | 0 .../liblapack/SRC => lapack/src}/ssytrs_aa.f | 0 .../SRC => lapack/src}/ssytrs_aa_2stage.f | 0 .../SRC => lapack/src}/ssytrs_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/stbcon.f | 0 {dspl/liblapack/SRC => lapack/src}/stbrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/stbtrs.f | 0 {dspl/liblapack/SRC => lapack/src}/stfsm.f | 0 {dspl/liblapack/SRC => lapack/src}/stftri.f | 0 {dspl/liblapack/SRC => lapack/src}/stfttp.f | 0 {dspl/liblapack/SRC => lapack/src}/stfttr.f | 0 {dspl/liblapack/SRC => lapack/src}/stgevc.f | 0 {dspl/liblapack/SRC => lapack/src}/stgex2.f | 0 {dspl/liblapack/SRC => lapack/src}/stgexc.f | 0 {dspl/liblapack/SRC => lapack/src}/stgsen.f | 0 {dspl/liblapack/SRC => lapack/src}/stgsja.f | 0 {dspl/liblapack/SRC => lapack/src}/stgsna.f | 0 {dspl/liblapack/SRC => lapack/src}/stgsy2.f | 0 {dspl/liblapack/SRC => lapack/src}/stgsyl.f | 0 {dspl/liblapack/SRC => lapack/src}/stpcon.f | 0 {dspl/liblapack/SRC => lapack/src}/stplqt.f | 0 {dspl/liblapack/SRC => lapack/src}/stplqt2.f | 0 {dspl/liblapack/SRC => lapack/src}/stpmlqt.f | 0 {dspl/liblapack/SRC => lapack/src}/stpmqrt.f | 0 {dspl/liblapack/SRC => lapack/src}/stpqrt.f | 0 {dspl/liblapack/SRC => lapack/src}/stpqrt2.f | 0 {dspl/liblapack/SRC => lapack/src}/stprfb.f | 0 {dspl/liblapack/SRC => lapack/src}/stprfs.f | 0 {dspl/liblapack/SRC => lapack/src}/stptri.f | 0 {dspl/liblapack/SRC => lapack/src}/stptrs.f | 0 {dspl/liblapack/SRC => lapack/src}/stpttf.f | 0 {dspl/liblapack/SRC => lapack/src}/stpttr.f | 0 {dspl/liblapack/SRC => lapack/src}/strcon.f | 0 {dspl/liblapack/SRC => lapack/src}/strevc.f | 0 {dspl/liblapack/SRC => lapack/src}/strevc3.f | 0 {dspl/liblapack/SRC => lapack/src}/strexc.f | 0 {dspl/liblapack/SRC => lapack/src}/strrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/strsen.f | 0 {dspl/liblapack/SRC => lapack/src}/strsna.f | 0 {dspl/liblapack/SRC => lapack/src}/strsyl.f | 0 {dspl/liblapack/SRC => lapack/src}/strti2.f | 0 {dspl/liblapack/SRC => lapack/src}/strtri.f | 0 {dspl/liblapack/SRC => lapack/src}/strtrs.f | 0 {dspl/liblapack/SRC => lapack/src}/strttf.f | 0 {dspl/liblapack/SRC => lapack/src}/strttp.f | 0 {dspl/liblapack/SRC => lapack/src}/stzrzf.f | 0 {dspl/liblapack/SRC => lapack/src}/xerbla.f | 0 .../SRC => lapack/src}/xerbla_array.f | 0 {dspl/liblapack/SRC => lapack/src}/zbbcsd.f | 0 {dspl/liblapack/SRC => lapack/src}/zbdsqr.f | 0 {dspl/liblapack/SRC => lapack/src}/zcgesv.f | 0 {dspl/liblapack/SRC => lapack/src}/zcposv.f | 0 {dspl/liblapack/SRC => lapack/src}/zdrscl.f | 0 {dspl/liblapack/SRC => lapack/src}/zgbbrd.f | 0 {dspl/liblapack/SRC => lapack/src}/zgbcon.f | 0 {dspl/liblapack/SRC => lapack/src}/zgbequ.f | 0 {dspl/liblapack/SRC => lapack/src}/zgbequb.f | 0 {dspl/liblapack/SRC => lapack/src}/zgbrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/zgbrfsx.f | 0 {dspl/liblapack/SRC => lapack/src}/zgbsv.f | 0 {dspl/liblapack/SRC => lapack/src}/zgbsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/zgbsvxx.f | 0 {dspl/liblapack/SRC => lapack/src}/zgbtf2.f | 0 {dspl/liblapack/SRC => lapack/src}/zgbtrf.f | 0 {dspl/liblapack/SRC => lapack/src}/zgbtrs.f | 0 {dspl/liblapack/SRC => lapack/src}/zgebak.f | 0 {dspl/liblapack/SRC => lapack/src}/zgebal.f | 0 {dspl/liblapack/SRC => lapack/src}/zgebd2.f | 0 {dspl/liblapack/SRC => lapack/src}/zgebrd.f | 0 {dspl/liblapack/SRC => lapack/src}/zgecon.f | 0 {dspl/liblapack/SRC => lapack/src}/zgeequ.f | 0 {dspl/liblapack/SRC => lapack/src}/zgeequb.f | 0 {dspl/liblapack/SRC => lapack/src}/zgees.f | 0 {dspl/liblapack/SRC => lapack/src}/zgeesx.f | 0 {dspl/liblapack/SRC => lapack/src}/zgeev.f | 0 {dspl/liblapack/SRC => lapack/src}/zgeevx.f | 0 {dspl/liblapack/SRC => lapack/src}/zgehd2.f | 0 {dspl/liblapack/SRC => lapack/src}/zgehrd.f | 0 {dspl/liblapack/SRC => lapack/src}/zgejsv.f | 0 {dspl/liblapack/SRC => lapack/src}/zgelq.f | 0 {dspl/liblapack/SRC => lapack/src}/zgelq2.f | 0 {dspl/liblapack/SRC => lapack/src}/zgelqf.f | 0 {dspl/liblapack/SRC => lapack/src}/zgelqt.f | 0 {dspl/liblapack/SRC => lapack/src}/zgelqt3.f | 0 {dspl/liblapack/SRC => lapack/src}/zgels.f | 0 {dspl/liblapack/SRC => lapack/src}/zgelsd.f | 0 {dspl/liblapack/SRC => lapack/src}/zgelss.f | 0 {dspl/liblapack/SRC => lapack/src}/zgelsy.f | 0 {dspl/liblapack/SRC => lapack/src}/zgemlq.f | 0 {dspl/liblapack/SRC => lapack/src}/zgemlqt.f | 0 {dspl/liblapack/SRC => lapack/src}/zgemqr.f | 0 {dspl/liblapack/SRC => lapack/src}/zgemqrt.f | 0 {dspl/liblapack/SRC => lapack/src}/zgeql2.f | 0 {dspl/liblapack/SRC => lapack/src}/zgeqlf.f | 0 {dspl/liblapack/SRC => lapack/src}/zgeqp3.f | 0 {dspl/liblapack/SRC => lapack/src}/zgeqr.f | 0 {dspl/liblapack/SRC => lapack/src}/zgeqr2.f | 0 {dspl/liblapack/SRC => lapack/src}/zgeqr2p.f | 0 {dspl/liblapack/SRC => lapack/src}/zgeqrf.f | 0 {dspl/liblapack/SRC => lapack/src}/zgeqrfp.f | 0 {dspl/liblapack/SRC => lapack/src}/zgeqrt.f | 0 {dspl/liblapack/SRC => lapack/src}/zgeqrt2.f | 0 {dspl/liblapack/SRC => lapack/src}/zgeqrt3.f | 0 {dspl/liblapack/SRC => lapack/src}/zgerfs.f | 0 {dspl/liblapack/SRC => lapack/src}/zgerfsx.f | 0 {dspl/liblapack/SRC => lapack/src}/zgerq2.f | 0 {dspl/liblapack/SRC => lapack/src}/zgerqf.f | 0 {dspl/liblapack/SRC => lapack/src}/zgesc2.f | 0 {dspl/liblapack/SRC => lapack/src}/zgesdd.f | 0 {dspl/liblapack/SRC => lapack/src}/zgesv.f | 0 {dspl/liblapack/SRC => lapack/src}/zgesvd.f | 0 {dspl/liblapack/SRC => lapack/src}/zgesvdx.f | 0 {dspl/liblapack/SRC => lapack/src}/zgesvj.f | 0 {dspl/liblapack/SRC => lapack/src}/zgesvx.f | 0 {dspl/liblapack/SRC => lapack/src}/zgesvxx.f | 0 {dspl/liblapack/SRC => lapack/src}/zgetc2.f | 0 {dspl/liblapack/SRC => lapack/src}/zgetf2.f | 0 {dspl/liblapack/SRC => lapack/src}/zgetrf.f | 0 {dspl/liblapack/SRC => lapack/src}/zgetrf2.f | 0 {dspl/liblapack/SRC => lapack/src}/zgetri.f | 0 {dspl/liblapack/SRC => lapack/src}/zgetrs.f | 0 {dspl/liblapack/SRC => lapack/src}/zgetsls.f | 0 {dspl/liblapack/SRC => lapack/src}/zggbak.f | 0 {dspl/liblapack/SRC => lapack/src}/zggbal.f | 0 {dspl/liblapack/SRC => lapack/src}/zgges.f | 0 {dspl/liblapack/SRC => lapack/src}/zgges3.f | 0 {dspl/liblapack/SRC => lapack/src}/zggesx.f | 0 {dspl/liblapack/SRC => lapack/src}/zggev.f | 0 {dspl/liblapack/SRC => lapack/src}/zggev3.f | 0 {dspl/liblapack/SRC => lapack/src}/zggevx.f | 0 {dspl/liblapack/SRC => lapack/src}/zggglm.f | 0 {dspl/liblapack/SRC => lapack/src}/zgghd3.f | 0 {dspl/liblapack/SRC => lapack/src}/zgghrd.f | 0 {dspl/liblapack/SRC => lapack/src}/zgglse.f | 0 {dspl/liblapack/SRC => lapack/src}/zggqrf.f | 0 {dspl/liblapack/SRC => lapack/src}/zggrqf.f | 0 {dspl/liblapack/SRC => lapack/src}/zggsvd3.f | 0 {dspl/liblapack/SRC => lapack/src}/zggsvp3.f | 0 {dspl/liblapack/SRC => lapack/src}/zgsvj0.f | 0 {dspl/liblapack/SRC => lapack/src}/zgsvj1.f | 0 {dspl/liblapack/SRC => lapack/src}/zgtcon.f | 0 {dspl/liblapack/SRC => lapack/src}/zgtrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/zgtsv.f | 0 {dspl/liblapack/SRC => lapack/src}/zgtsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/zgttrf.f | 0 {dspl/liblapack/SRC => lapack/src}/zgttrs.f | 0 {dspl/liblapack/SRC => lapack/src}/zgtts2.f | 0 .../SRC => lapack/src}/zhb2st_kernels.f | 0 {dspl/liblapack/SRC => lapack/src}/zhbev.f | 0 .../SRC => lapack/src}/zhbev_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/zhbevd.f | 0 .../SRC => lapack/src}/zhbevd_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/zhbevx.f | 0 .../SRC => lapack/src}/zhbevx_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/zhbgst.f | 0 {dspl/liblapack/SRC => lapack/src}/zhbgv.f | 0 {dspl/liblapack/SRC => lapack/src}/zhbgvd.f | 0 {dspl/liblapack/SRC => lapack/src}/zhbgvx.f | 0 {dspl/liblapack/SRC => lapack/src}/zhbtrd.f | 0 {dspl/liblapack/SRC => lapack/src}/zhecon.f | 0 {dspl/liblapack/SRC => lapack/src}/zhecon_3.f | 0 .../SRC => lapack/src}/zhecon_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/zheequb.f | 0 {dspl/liblapack/SRC => lapack/src}/zheev.f | 0 .../SRC => lapack/src}/zheev_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/zheevd.f | 0 .../SRC => lapack/src}/zheevd_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/zheevr.f | 0 .../SRC => lapack/src}/zheevr_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/zheevx.f | 0 .../SRC => lapack/src}/zheevx_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/zhegs2.f | 0 {dspl/liblapack/SRC => lapack/src}/zhegst.f | 0 {dspl/liblapack/SRC => lapack/src}/zhegv.f | 0 .../SRC => lapack/src}/zhegv_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/zhegvd.f | 0 {dspl/liblapack/SRC => lapack/src}/zhegvx.f | 0 {dspl/liblapack/SRC => lapack/src}/zherfs.f | 0 {dspl/liblapack/SRC => lapack/src}/zherfsx.f | 0 {dspl/liblapack/SRC => lapack/src}/zhesv.f | 0 {dspl/liblapack/SRC => lapack/src}/zhesv_aa.f | 0 .../SRC => lapack/src}/zhesv_aa_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/zhesv_rk.f | 0 .../liblapack/SRC => lapack/src}/zhesv_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/zhesvx.f | 0 {dspl/liblapack/SRC => lapack/src}/zhesvxx.f | 0 {dspl/liblapack/SRC => lapack/src}/zheswapr.f | 0 {dspl/liblapack/SRC => lapack/src}/zhetd2.f | 0 {dspl/liblapack/SRC => lapack/src}/zhetf2.f | 0 .../liblapack/SRC => lapack/src}/zhetf2_rk.f | 0 .../SRC => lapack/src}/zhetf2_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/zhetrd.f | 0 .../SRC => lapack/src}/zhetrd_2stage.f | 0 .../SRC => lapack/src}/zhetrd_hb2st.F | 0 .../SRC => lapack/src}/zhetrd_he2hb.f | 0 {dspl/liblapack/SRC => lapack/src}/zhetrf.f | 0 .../liblapack/SRC => lapack/src}/zhetrf_aa.f | 0 .../SRC => lapack/src}/zhetrf_aa_2stage.f | 0 .../liblapack/SRC => lapack/src}/zhetrf_rk.f | 0 .../SRC => lapack/src}/zhetrf_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/zhetri.f | 0 {dspl/liblapack/SRC => lapack/src}/zhetri2.f | 0 {dspl/liblapack/SRC => lapack/src}/zhetri2x.f | 0 {dspl/liblapack/SRC => lapack/src}/zhetri_3.f | 0 .../liblapack/SRC => lapack/src}/zhetri_3x.f | 0 .../SRC => lapack/src}/zhetri_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/zhetrs.f | 0 {dspl/liblapack/SRC => lapack/src}/zhetrs2.f | 0 {dspl/liblapack/SRC => lapack/src}/zhetrs_3.f | 0 .../liblapack/SRC => lapack/src}/zhetrs_aa.f | 0 .../SRC => lapack/src}/zhetrs_aa_2stage.f | 0 .../SRC => lapack/src}/zhetrs_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/zhfrk.f | 0 {dspl/liblapack/SRC => lapack/src}/zhgeqz.f | 0 {dspl/liblapack/SRC => lapack/src}/zhpcon.f | 0 {dspl/liblapack/SRC => lapack/src}/zhpev.f | 0 {dspl/liblapack/SRC => lapack/src}/zhpevd.f | 0 {dspl/liblapack/SRC => lapack/src}/zhpevx.f | 0 {dspl/liblapack/SRC => lapack/src}/zhpgst.f | 0 {dspl/liblapack/SRC => lapack/src}/zhpgv.f | 0 {dspl/liblapack/SRC => lapack/src}/zhpgvd.f | 0 {dspl/liblapack/SRC => lapack/src}/zhpgvx.f | 0 {dspl/liblapack/SRC => lapack/src}/zhprfs.f | 0 {dspl/liblapack/SRC => lapack/src}/zhpsv.f | 0 {dspl/liblapack/SRC => lapack/src}/zhpsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/zhptrd.f | 0 {dspl/liblapack/SRC => lapack/src}/zhptrf.f | 0 {dspl/liblapack/SRC => lapack/src}/zhptri.f | 0 {dspl/liblapack/SRC => lapack/src}/zhptrs.f | 0 {dspl/liblapack/SRC => lapack/src}/zhsein.f | 0 {dspl/liblapack/SRC => lapack/src}/zhseqr.f | 0 .../liblapack/SRC => lapack/src}/zla_gbamv.f | 0 .../SRC => lapack/src}/zla_gbrcond_c.f | 0 .../SRC => lapack/src}/zla_gbrcond_x.f | 0 .../SRC => lapack/src}/zla_gbrfsx_extended.f | 0 .../SRC => lapack/src}/zla_gbrpvgrw.f | 0 .../liblapack/SRC => lapack/src}/zla_geamv.f | 0 .../SRC => lapack/src}/zla_gercond_c.f | 0 .../SRC => lapack/src}/zla_gercond_x.f | 0 .../SRC => lapack/src}/zla_gerfsx_extended.f | 0 .../SRC => lapack/src}/zla_gerpvgrw.f | 0 .../liblapack/SRC => lapack/src}/zla_heamv.f | 0 .../SRC => lapack/src}/zla_hercond_c.f | 0 .../SRC => lapack/src}/zla_hercond_x.f | 0 .../SRC => lapack/src}/zla_herfsx_extended.f | 0 .../SRC => lapack/src}/zla_herpvgrw.f | 0 .../SRC => lapack/src}/zla_lin_berr.f | 0 .../SRC => lapack/src}/zla_porcond_c.f | 0 .../SRC => lapack/src}/zla_porcond_x.f | 0 .../SRC => lapack/src}/zla_porfsx_extended.f | 0 .../SRC => lapack/src}/zla_porpvgrw.f | 0 .../liblapack/SRC => lapack/src}/zla_syamv.f | 0 .../SRC => lapack/src}/zla_syrcond_c.f | 0 .../SRC => lapack/src}/zla_syrcond_x.f | 0 .../SRC => lapack/src}/zla_syrfsx_extended.f | 0 .../SRC => lapack/src}/zla_syrpvgrw.f | 0 .../liblapack/SRC => lapack/src}/zla_wwaddw.f | 0 {dspl/liblapack/SRC => lapack/src}/zlabrd.f | 0 {dspl/liblapack/SRC => lapack/src}/zlacgv.f | 0 {dspl/liblapack/SRC => lapack/src}/zlacn2.f | 0 {dspl/liblapack/SRC => lapack/src}/zlacon.f | 0 {dspl/liblapack/SRC => lapack/src}/zlacp2.f | 0 {dspl/liblapack/SRC => lapack/src}/zlacpy.f | 0 {dspl/liblapack/SRC => lapack/src}/zlacrm.f | 0 {dspl/liblapack/SRC => lapack/src}/zlacrt.f | 0 {dspl/liblapack/SRC => lapack/src}/zladiv.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaed0.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaed7.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaed8.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaein.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaesy.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaev2.f | 0 {dspl/liblapack/SRC => lapack/src}/zlag2c.f | 0 {dspl/liblapack/SRC => lapack/src}/zlags2.f | 0 {dspl/liblapack/SRC => lapack/src}/zlagtm.f | 0 {dspl/liblapack/SRC => lapack/src}/zlahef.f | 0 .../liblapack/SRC => lapack/src}/zlahef_aa.f | 0 .../liblapack/SRC => lapack/src}/zlahef_rk.f | 0 .../SRC => lapack/src}/zlahef_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/zlahqr.f | 0 {dspl/liblapack/SRC => lapack/src}/zlahr2.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaic1.f | 0 {dspl/liblapack/SRC => lapack/src}/zlals0.f | 0 {dspl/liblapack/SRC => lapack/src}/zlalsa.f | 0 {dspl/liblapack/SRC => lapack/src}/zlalsd.f | 0 {dspl/liblapack/SRC => lapack/src}/zlamswlq.f | 0 {dspl/liblapack/SRC => lapack/src}/zlamtsqr.f | 0 {dspl/liblapack/SRC => lapack/src}/zlangb.f | 0 {dspl/liblapack/SRC => lapack/src}/zlange.f | 0 {dspl/liblapack/SRC => lapack/src}/zlangt.f | 0 {dspl/liblapack/SRC => lapack/src}/zlanhb.f | 0 {dspl/liblapack/SRC => lapack/src}/zlanhe.f | 0 {dspl/liblapack/SRC => lapack/src}/zlanhf.f | 0 {dspl/liblapack/SRC => lapack/src}/zlanhp.f | 0 {dspl/liblapack/SRC => lapack/src}/zlanhs.f | 0 {dspl/liblapack/SRC => lapack/src}/zlanht.f | 0 {dspl/liblapack/SRC => lapack/src}/zlansb.f | 0 {dspl/liblapack/SRC => lapack/src}/zlansp.f | 0 {dspl/liblapack/SRC => lapack/src}/zlansy.f | 0 {dspl/liblapack/SRC => lapack/src}/zlantb.f | 0 {dspl/liblapack/SRC => lapack/src}/zlantp.f | 0 {dspl/liblapack/SRC => lapack/src}/zlantr.f | 0 {dspl/liblapack/SRC => lapack/src}/zlapll.f | 0 {dspl/liblapack/SRC => lapack/src}/zlapmr.f | 0 {dspl/liblapack/SRC => lapack/src}/zlapmt.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaqgb.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaqge.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaqhb.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaqhe.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaqhp.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaqp2.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaqps.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaqr0.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaqr1.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaqr2.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaqr3.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaqr4.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaqr5.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaqsb.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaqsp.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaqsy.f | 0 {dspl/liblapack/SRC => lapack/src}/zlar1v.f | 0 {dspl/liblapack/SRC => lapack/src}/zlar2v.f | 0 {dspl/liblapack/SRC => lapack/src}/zlarcm.f | 0 {dspl/liblapack/SRC => lapack/src}/zlarf.f | 0 {dspl/liblapack/SRC => lapack/src}/zlarfb.f | 0 {dspl/liblapack/SRC => lapack/src}/zlarfg.f | 0 {dspl/liblapack/SRC => lapack/src}/zlarfgp.f | 0 {dspl/liblapack/SRC => lapack/src}/zlarft.f | 0 {dspl/liblapack/SRC => lapack/src}/zlarfx.f | 0 {dspl/liblapack/SRC => lapack/src}/zlarfy.f | 0 {dspl/liblapack/SRC => lapack/src}/zlargv.f | 0 {dspl/liblapack/SRC => lapack/src}/zlarnv.f | 0 {dspl/liblapack/SRC => lapack/src}/zlarrv.f | 0 {dspl/liblapack/SRC => lapack/src}/zlarscl2.f | 0 {dspl/liblapack/SRC => lapack/src}/zlartg.f | 0 {dspl/liblapack/SRC => lapack/src}/zlartv.f | 0 {dspl/liblapack/SRC => lapack/src}/zlarz.f | 0 {dspl/liblapack/SRC => lapack/src}/zlarzb.f | 0 {dspl/liblapack/SRC => lapack/src}/zlarzt.f | 0 {dspl/liblapack/SRC => lapack/src}/zlascl.f | 0 {dspl/liblapack/SRC => lapack/src}/zlascl2.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaset.f | 0 {dspl/liblapack/SRC => lapack/src}/zlasr.f | 0 {dspl/liblapack/SRC => lapack/src}/zlassq.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaswlq.f | 0 {dspl/liblapack/SRC => lapack/src}/zlaswp.f | 0 {dspl/liblapack/SRC => lapack/src}/zlasyf.f | 0 .../liblapack/SRC => lapack/src}/zlasyf_aa.f | 0 .../liblapack/SRC => lapack/src}/zlasyf_rk.f | 0 .../SRC => lapack/src}/zlasyf_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/zlat2c.f | 0 {dspl/liblapack/SRC => lapack/src}/zlatbs.f | 0 {dspl/liblapack/SRC => lapack/src}/zlatdf.f | 0 {dspl/liblapack/SRC => lapack/src}/zlatps.f | 0 {dspl/liblapack/SRC => lapack/src}/zlatrd.f | 0 {dspl/liblapack/SRC => lapack/src}/zlatrs.f | 0 {dspl/liblapack/SRC => lapack/src}/zlatrz.f | 0 {dspl/liblapack/SRC => lapack/src}/zlatsqr.f | 0 {dspl/liblapack/SRC => lapack/src}/zlauu2.f | 0 {dspl/liblapack/SRC => lapack/src}/zlauum.f | 0 {dspl/liblapack/SRC => lapack/src}/zpbcon.f | 0 {dspl/liblapack/SRC => lapack/src}/zpbequ.f | 0 {dspl/liblapack/SRC => lapack/src}/zpbrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/zpbstf.f | 0 {dspl/liblapack/SRC => lapack/src}/zpbsv.f | 0 {dspl/liblapack/SRC => lapack/src}/zpbsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/zpbtf2.f | 0 {dspl/liblapack/SRC => lapack/src}/zpbtrf.f | 0 {dspl/liblapack/SRC => lapack/src}/zpbtrs.f | 0 {dspl/liblapack/SRC => lapack/src}/zpftrf.f | 0 {dspl/liblapack/SRC => lapack/src}/zpftri.f | 0 {dspl/liblapack/SRC => lapack/src}/zpftrs.f | 0 {dspl/liblapack/SRC => lapack/src}/zpocon.f | 0 {dspl/liblapack/SRC => lapack/src}/zpoequ.f | 0 {dspl/liblapack/SRC => lapack/src}/zpoequb.f | 0 {dspl/liblapack/SRC => lapack/src}/zporfs.f | 0 {dspl/liblapack/SRC => lapack/src}/zporfsx.f | 0 {dspl/liblapack/SRC => lapack/src}/zposv.f | 0 {dspl/liblapack/SRC => lapack/src}/zposvx.f | 0 {dspl/liblapack/SRC => lapack/src}/zposvxx.f | 0 {dspl/liblapack/SRC => lapack/src}/zpotf2.f | 0 {dspl/liblapack/SRC => lapack/src}/zpotrf.f | 0 {dspl/liblapack/SRC => lapack/src}/zpotrf2.f | 0 {dspl/liblapack/SRC => lapack/src}/zpotri.f | 0 {dspl/liblapack/SRC => lapack/src}/zpotrs.f | 0 {dspl/liblapack/SRC => lapack/src}/zppcon.f | 0 {dspl/liblapack/SRC => lapack/src}/zppequ.f | 0 {dspl/liblapack/SRC => lapack/src}/zpprfs.f | 0 {dspl/liblapack/SRC => lapack/src}/zppsv.f | 0 {dspl/liblapack/SRC => lapack/src}/zppsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/zpptrf.f | 0 {dspl/liblapack/SRC => lapack/src}/zpptri.f | 0 {dspl/liblapack/SRC => lapack/src}/zpptrs.f | 0 {dspl/liblapack/SRC => lapack/src}/zpstf2.f | 0 {dspl/liblapack/SRC => lapack/src}/zpstrf.f | 0 {dspl/liblapack/SRC => lapack/src}/zptcon.f | 0 {dspl/liblapack/SRC => lapack/src}/zpteqr.f | 0 {dspl/liblapack/SRC => lapack/src}/zptrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/zptsv.f | 0 {dspl/liblapack/SRC => lapack/src}/zptsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/zpttrf.f | 0 {dspl/liblapack/SRC => lapack/src}/zpttrs.f | 0 {dspl/liblapack/SRC => lapack/src}/zptts2.f | 0 {dspl/liblapack/SRC => lapack/src}/zrot.f | 0 {dspl/liblapack/SRC => lapack/src}/zspcon.f | 0 {dspl/liblapack/SRC => lapack/src}/zspmv.f | 0 {dspl/liblapack/SRC => lapack/src}/zspr.f | 0 {dspl/liblapack/SRC => lapack/src}/zsprfs.f | 0 {dspl/liblapack/SRC => lapack/src}/zspsv.f | 0 {dspl/liblapack/SRC => lapack/src}/zspsvx.f | 0 {dspl/liblapack/SRC => lapack/src}/zsptrf.f | 0 {dspl/liblapack/SRC => lapack/src}/zsptri.f | 0 {dspl/liblapack/SRC => lapack/src}/zsptrs.f | 0 {dspl/liblapack/SRC => lapack/src}/zstedc.f | 0 {dspl/liblapack/SRC => lapack/src}/zstegr.f | 0 {dspl/liblapack/SRC => lapack/src}/zstein.f | 0 {dspl/liblapack/SRC => lapack/src}/zstemr.f | 0 {dspl/liblapack/SRC => lapack/src}/zsteqr.f | 0 {dspl/liblapack/SRC => lapack/src}/zsycon.f | 0 {dspl/liblapack/SRC => lapack/src}/zsycon_3.f | 0 .../SRC => lapack/src}/zsycon_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/zsyconv.f | 0 {dspl/liblapack/SRC => lapack/src}/zsyconvf.f | 0 .../SRC => lapack/src}/zsyconvf_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/zsyequb.f | 0 {dspl/liblapack/SRC => lapack/src}/zsymv.f | 0 {dspl/liblapack/SRC => lapack/src}/zsyr.f | 0 {dspl/liblapack/SRC => lapack/src}/zsyrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/zsyrfsx.f | 0 {dspl/liblapack/SRC => lapack/src}/zsysv.f | 0 {dspl/liblapack/SRC => lapack/src}/zsysv_aa.f | 0 .../SRC => lapack/src}/zsysv_aa_2stage.f | 0 {dspl/liblapack/SRC => lapack/src}/zsysv_rk.f | 0 .../liblapack/SRC => lapack/src}/zsysv_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/zsysvx.f | 0 {dspl/liblapack/SRC => lapack/src}/zsysvxx.f | 0 {dspl/liblapack/SRC => lapack/src}/zsyswapr.f | 0 {dspl/liblapack/SRC => lapack/src}/zsytf2.f | 0 .../liblapack/SRC => lapack/src}/zsytf2_rk.f | 0 .../SRC => lapack/src}/zsytf2_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/zsytrf.f | 0 .../liblapack/SRC => lapack/src}/zsytrf_aa.f | 0 .../SRC => lapack/src}/zsytrf_aa_2stage.f | 0 .../liblapack/SRC => lapack/src}/zsytrf_rk.f | 0 .../SRC => lapack/src}/zsytrf_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/zsytri.f | 0 {dspl/liblapack/SRC => lapack/src}/zsytri2.f | 0 {dspl/liblapack/SRC => lapack/src}/zsytri2x.f | 0 {dspl/liblapack/SRC => lapack/src}/zsytri_3.f | 0 .../liblapack/SRC => lapack/src}/zsytri_3x.f | 0 .../SRC => lapack/src}/zsytri_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/zsytrs.f | 0 {dspl/liblapack/SRC => lapack/src}/zsytrs2.f | 0 {dspl/liblapack/SRC => lapack/src}/zsytrs_3.f | 0 .../liblapack/SRC => lapack/src}/zsytrs_aa.f | 0 .../SRC => lapack/src}/zsytrs_aa_2stage.f | 0 .../SRC => lapack/src}/zsytrs_rook.f | 0 {dspl/liblapack/SRC => lapack/src}/ztbcon.f | 0 {dspl/liblapack/SRC => lapack/src}/ztbrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/ztbtrs.f | 0 {dspl/liblapack/SRC => lapack/src}/ztfsm.f | 0 {dspl/liblapack/SRC => lapack/src}/ztftri.f | 0 {dspl/liblapack/SRC => lapack/src}/ztfttp.f | 0 {dspl/liblapack/SRC => lapack/src}/ztfttr.f | 0 {dspl/liblapack/SRC => lapack/src}/ztgevc.f | 0 {dspl/liblapack/SRC => lapack/src}/ztgex2.f | 0 {dspl/liblapack/SRC => lapack/src}/ztgexc.f | 0 {dspl/liblapack/SRC => lapack/src}/ztgsen.f | 0 {dspl/liblapack/SRC => lapack/src}/ztgsja.f | 0 {dspl/liblapack/SRC => lapack/src}/ztgsna.f | 0 {dspl/liblapack/SRC => lapack/src}/ztgsy2.f | 0 {dspl/liblapack/SRC => lapack/src}/ztgsyl.f | 0 {dspl/liblapack/SRC => lapack/src}/ztpcon.f | 0 {dspl/liblapack/SRC => lapack/src}/ztplqt.f | 0 {dspl/liblapack/SRC => lapack/src}/ztplqt2.f | 0 {dspl/liblapack/SRC => lapack/src}/ztpmlqt.f | 0 {dspl/liblapack/SRC => lapack/src}/ztpmqrt.f | 0 {dspl/liblapack/SRC => lapack/src}/ztpqrt.f | 0 {dspl/liblapack/SRC => lapack/src}/ztpqrt2.f | 0 {dspl/liblapack/SRC => lapack/src}/ztprfb.f | 0 {dspl/liblapack/SRC => lapack/src}/ztprfs.f | 0 {dspl/liblapack/SRC => lapack/src}/ztptri.f | 0 {dspl/liblapack/SRC => lapack/src}/ztptrs.f | 0 {dspl/liblapack/SRC => lapack/src}/ztpttf.f | 0 {dspl/liblapack/SRC => lapack/src}/ztpttr.f | 0 {dspl/liblapack/SRC => lapack/src}/ztrcon.f | 0 {dspl/liblapack/SRC => lapack/src}/ztrevc.f | 0 {dspl/liblapack/SRC => lapack/src}/ztrevc3.f | 0 {dspl/liblapack/SRC => lapack/src}/ztrexc.f | 0 {dspl/liblapack/SRC => lapack/src}/ztrrfs.f | 0 {dspl/liblapack/SRC => lapack/src}/ztrsen.f | 0 {dspl/liblapack/SRC => lapack/src}/ztrsna.f | 0 {dspl/liblapack/SRC => lapack/src}/ztrsyl.f | 0 {dspl/liblapack/SRC => lapack/src}/ztrti2.f | 0 {dspl/liblapack/SRC => lapack/src}/ztrtri.f | 0 {dspl/liblapack/SRC => lapack/src}/ztrtrs.f | 0 {dspl/liblapack/SRC => lapack/src}/ztrttf.f | 0 {dspl/liblapack/SRC => lapack/src}/ztrttp.f | 0 {dspl/liblapack/SRC => lapack/src}/ztzrzf.f | 0 {dspl/liblapack/SRC => lapack/src}/zunbdb.f | 0 {dspl/liblapack/SRC => lapack/src}/zunbdb1.f | 0 {dspl/liblapack/SRC => lapack/src}/zunbdb2.f | 0 {dspl/liblapack/SRC => lapack/src}/zunbdb3.f | 0 {dspl/liblapack/SRC => lapack/src}/zunbdb4.f | 0 {dspl/liblapack/SRC => lapack/src}/zunbdb5.f | 0 {dspl/liblapack/SRC => lapack/src}/zunbdb6.f | 0 {dspl/liblapack/SRC => lapack/src}/zuncsd.f | 0 .../liblapack/SRC => lapack/src}/zuncsd2by1.f | 0 {dspl/liblapack/SRC => lapack/src}/zung2l.f | 0 {dspl/liblapack/SRC => lapack/src}/zung2r.f | 0 {dspl/liblapack/SRC => lapack/src}/zungbr.f | 0 {dspl/liblapack/SRC => lapack/src}/zunghr.f | 0 {dspl/liblapack/SRC => lapack/src}/zungl2.f | 0 {dspl/liblapack/SRC => lapack/src}/zunglq.f | 0 {dspl/liblapack/SRC => lapack/src}/zungql.f | 0 {dspl/liblapack/SRC => lapack/src}/zungqr.f | 0 {dspl/liblapack/SRC => lapack/src}/zungr2.f | 0 {dspl/liblapack/SRC => lapack/src}/zungrq.f | 0 {dspl/liblapack/SRC => lapack/src}/zungtr.f | 0 {dspl/liblapack/SRC => lapack/src}/zunm22.f | 0 {dspl/liblapack/SRC => lapack/src}/zunm2l.f | 0 {dspl/liblapack/SRC => lapack/src}/zunm2r.f | 0 {dspl/liblapack/SRC => lapack/src}/zunmbr.f | 0 {dspl/liblapack/SRC => lapack/src}/zunmhr.f | 0 {dspl/liblapack/SRC => lapack/src}/zunml2.f | 0 {dspl/liblapack/SRC => lapack/src}/zunmlq.f | 0 {dspl/liblapack/SRC => lapack/src}/zunmql.f | 0 {dspl/liblapack/SRC => lapack/src}/zunmqr.f | 0 {dspl/liblapack/SRC => lapack/src}/zunmr2.f | 0 {dspl/liblapack/SRC => lapack/src}/zunmr3.f | 0 {dspl/liblapack/SRC => lapack/src}/zunmrq.f | 0 {dspl/liblapack/SRC => lapack/src}/zunmrz.f | 0 {dspl/liblapack/SRC => lapack/src}/zunmtr.f | 0 {dspl/liblapack/SRC => lapack/src}/zupgtr.f | 0 {dspl/liblapack/SRC => lapack/src}/zupmtr.f | 0 make.inc | 36 +- release/doc/.gitignore | 0 release/doc/ru/.gitignore | 5 - release/include/dspl.c | 365 ---- release/include/dspl.h | 935 ---------- release/lib/.gitignore | 0 verif/.gitignore | 8 - verif/bin/.gitignore | 8 - verif/bin/dat/.gitignore | 10 - verif/bin/octave/functions/dspl_readbin.m | 23 - verif/bin/octave/functions/dspl_writebin.m | 35 - verif/bin/octave/readbin_verif.m | 6 - verif/obj/.gitignore | 8 - verif/src/readbin_verif.c | 58 - 2531 files changed, 5091 insertions(+), 29717 deletions(-) delete mode 100644 Makefile.examples delete mode 100644 Makefile.verif rename {examples/bin => bin}/gnuplot/bessel_i0.plt (100%) rename {examples/bin => bin}/gnuplot/bilinear_test.plt (100%) rename {examples/bin => bin}/gnuplot/butter_ap_test.plt (100%) rename {examples/bin => bin}/gnuplot/cheby1_ap_test.plt (100%) rename {examples/bin => bin}/gnuplot/cheby_poly1.plt (100%) rename {examples/bin => bin}/gnuplot/cheby_poly2.plt (100%) rename {examples/bin => bin}/gnuplot/filter_iir.plt (61%) rename {examples/bin => bin}/gnuplot/iir_bstop.plt (100%) rename {examples/bin => bin}/gnuplot/iir_lpf.plt (100%) rename {examples/bin => bin}/gnuplot/iir_test.plt (100%) rename {examples/bin => bin}/gnuplot/sinc_test.plt (100%) rename {examples/bin => bin}/gnuplot/sine_int.plt (100%) create mode 100644 bin/libdspl.def create mode 100644 blas/Makefile create mode 100644 blas/blas.cbp create mode 100644 blas/blas.depend create mode 100644 blas/blas.layout rename {dspl/libblas/SRC => blas/src}/Makefile (100%) rename {dspl/libblas/SRC => blas/src}/caxpy.f (100%) rename {dspl/libblas/SRC => blas/src}/ccopy.f (100%) rename {dspl/libblas/SRC => blas/src}/cdotc.f (100%) rename {dspl/libblas/SRC => blas/src}/cdotu.f (100%) rename {dspl/libblas/SRC => blas/src}/cgbmv.f (100%) rename {dspl/libblas/SRC => blas/src}/cgemm.f (100%) rename {dspl/libblas/SRC => blas/src}/cgemv.f (100%) rename {dspl/libblas/SRC => blas/src}/cgerc.f (100%) rename {dspl/libblas/SRC => blas/src}/cgeru.f (100%) rename {dspl/libblas/SRC => blas/src}/chbmv.f (100%) rename {dspl/libblas/SRC => blas/src}/chemm.f (100%) rename {dspl/libblas/SRC => blas/src}/chemv.f (100%) rename {dspl/libblas/SRC => blas/src}/cher.f (100%) rename {dspl/libblas/SRC => blas/src}/cher2.f (100%) rename {dspl/libblas/SRC => blas/src}/cher2k.f (100%) rename {dspl/libblas/SRC => blas/src}/cherk.f (100%) rename {dspl/libblas/SRC => blas/src}/chpmv.f (100%) rename {dspl/libblas/SRC => blas/src}/chpr.f (100%) rename {dspl/libblas/SRC => blas/src}/chpr2.f (100%) rename {dspl/libblas/SRC => blas/src}/crotg.f (100%) rename {dspl/libblas/SRC => blas/src}/cscal.f (100%) rename {dspl/libblas/SRC => blas/src}/csrot.f (100%) rename {dspl/libblas/SRC => blas/src}/csscal.f (100%) rename {dspl/libblas/SRC => blas/src}/cswap.f (100%) rename {dspl/libblas/SRC => blas/src}/csymm.f (100%) rename {dspl/libblas/SRC => blas/src}/csyr2k.f (100%) rename {dspl/libblas/SRC => blas/src}/csyrk.f (100%) rename {dspl/libblas/SRC => blas/src}/ctbmv.f (100%) rename {dspl/libblas/SRC => blas/src}/ctbsv.f (100%) rename {dspl/libblas/SRC => blas/src}/ctpmv.f (100%) rename {dspl/libblas/SRC => blas/src}/ctpsv.f (100%) rename {dspl/libblas/SRC => blas/src}/ctrmm.f (100%) rename {dspl/libblas/SRC => blas/src}/ctrmv.f (100%) rename {dspl/libblas/SRC => blas/src}/ctrsm.f (100%) rename {dspl/libblas/SRC => blas/src}/ctrsv.f (100%) rename {dspl/libblas/SRC => blas/src}/dasum.f (100%) rename {dspl/libblas/SRC => blas/src}/daxpy.f (100%) rename {dspl/libblas/SRC => blas/src}/dcabs1.f (100%) rename {dspl/libblas/SRC => blas/src}/dcopy.f (100%) rename {dspl/libblas/SRC => blas/src}/ddot.f (100%) rename {dspl/libblas/SRC => blas/src}/dgbmv.f (100%) rename {dspl/libblas/SRC => blas/src}/dgemm.f (100%) rename {dspl/libblas/SRC => blas/src}/dgemv.f (100%) rename {dspl/libblas/SRC => blas/src}/dger.f (100%) rename {dspl/libblas/SRC => blas/src}/dnrm2.f (100%) rename {dspl/libblas/SRC => blas/src}/drot.f (100%) rename {dspl/libblas/SRC => blas/src}/drotg.f (100%) rename {dspl/libblas/SRC => blas/src}/drotm.f (100%) rename {dspl/libblas/SRC => blas/src}/drotmg.f (100%) rename {dspl/libblas/SRC => blas/src}/dsbmv.f (100%) rename {dspl/libblas/SRC => blas/src}/dscal.f (100%) rename {dspl/libblas/SRC => blas/src}/dsdot.f (100%) rename {dspl/libblas/SRC => blas/src}/dspmv.f (100%) rename {dspl/libblas/SRC => blas/src}/dspr.f (100%) rename {dspl/libblas/SRC => blas/src}/dspr2.f (100%) rename {dspl/libblas/SRC => blas/src}/dswap.f (100%) rename {dspl/libblas/SRC => blas/src}/dsymm.f (100%) rename {dspl/libblas/SRC => blas/src}/dsymv.f (100%) rename {dspl/libblas/SRC => blas/src}/dsyr.f (100%) rename {dspl/libblas/SRC => blas/src}/dsyr2.f (100%) rename {dspl/libblas/SRC => blas/src}/dsyr2k.f (100%) rename {dspl/libblas/SRC => blas/src}/dsyrk.f (100%) rename {dspl/libblas/SRC => blas/src}/dtbmv.f (100%) rename {dspl/libblas/SRC => blas/src}/dtbsv.f (100%) rename {dspl/libblas/SRC => blas/src}/dtpmv.f (100%) rename {dspl/libblas/SRC => blas/src}/dtpsv.f (100%) rename {dspl/libblas/SRC => blas/src}/dtrmm.f (100%) rename {dspl/libblas/SRC => blas/src}/dtrmv.f (100%) rename {dspl/libblas/SRC => blas/src}/dtrsm.f (100%) rename {dspl/libblas/SRC => blas/src}/dtrsv.f (100%) rename {dspl/libblas/SRC => blas/src}/dzasum.f (100%) rename {dspl/libblas/SRC => blas/src}/dznrm2.f (100%) rename {dspl/libblas/SRC => blas/src}/icamax.f (100%) rename {dspl/libblas/SRC => blas/src}/idamax.f (100%) rename {dspl/libblas/SRC => blas/src}/isamax.f (100%) rename {dspl/libblas/SRC => blas/src}/izamax.f (100%) rename {dspl/libblas/SRC => blas/src}/lsame.f (100%) rename {dspl/libblas/SRC => blas/src}/make.inc (100%) rename {dspl/libblas/SRC => blas/src}/sasum.f (100%) rename {dspl/libblas/SRC => blas/src}/saxpy.f (100%) rename {dspl/libblas/SRC => blas/src}/scabs1.f (100%) rename {dspl/libblas/SRC => blas/src}/scasum.f (100%) rename {dspl/libblas/SRC => blas/src}/scnrm2.f (100%) rename {dspl/libblas/SRC => blas/src}/scopy.f (100%) rename {dspl/libblas/SRC => blas/src}/sdot.f (100%) rename {dspl/libblas/SRC => blas/src}/sdsdot.f (100%) rename {dspl/libblas/SRC => blas/src}/sgbmv.f (100%) rename {dspl/libblas/SRC => blas/src}/sgemm.f (100%) rename {dspl/libblas/SRC => blas/src}/sgemv.f (100%) rename {dspl/libblas/SRC => blas/src}/sger.f (100%) rename {dspl/libblas/SRC => blas/src}/snrm2.f (100%) rename {dspl/libblas/SRC => blas/src}/srot.f (100%) rename {dspl/libblas/SRC => blas/src}/srotg.f (100%) rename {dspl/libblas/SRC => blas/src}/srotm.f (100%) rename {dspl/libblas/SRC => blas/src}/srotmg.f (100%) rename {dspl/libblas/SRC => blas/src}/ssbmv.f (100%) rename {dspl/libblas/SRC => blas/src}/sscal.f (100%) rename {dspl/libblas/SRC => blas/src}/sspmv.f (100%) rename {dspl/libblas/SRC => blas/src}/sspr.f (100%) rename {dspl/libblas/SRC => blas/src}/sspr2.f (100%) rename {dspl/libblas/SRC => blas/src}/sswap.f (100%) rename {dspl/libblas/SRC => blas/src}/ssymm.f (100%) rename {dspl/libblas/SRC => blas/src}/ssymv.f (100%) rename {dspl/libblas/SRC => blas/src}/ssyr.f (100%) rename {dspl/libblas/SRC => blas/src}/ssyr2.f (100%) rename {dspl/libblas/SRC => blas/src}/ssyr2k.f (100%) rename {dspl/libblas/SRC => blas/src}/ssyrk.f (100%) rename {dspl/libblas/SRC => blas/src}/stbmv.f (100%) rename {dspl/libblas/SRC => blas/src}/stbsv.f (100%) rename {dspl/libblas/SRC => blas/src}/stpmv.f (100%) rename {dspl/libblas/SRC => blas/src}/stpsv.f (100%) rename {dspl/libblas/SRC => blas/src}/strmm.f (100%) rename {dspl/libblas/SRC => blas/src}/strmv.f (100%) rename {dspl/libblas/SRC => blas/src}/strsm.f (100%) rename {dspl/libblas/SRC => blas/src}/strsv.f (100%) rename {dspl/libblas/SRC => blas/src}/xerbla.f (100%) rename {dspl/libblas/SRC => blas/src}/xerbla_array.f (100%) rename {dspl/libblas/SRC => blas/src}/zaxpy.f (100%) rename {dspl/libblas/SRC => blas/src}/zcopy.f (100%) rename {dspl/libblas/SRC => blas/src}/zdotc.f (100%) rename {dspl/libblas/SRC => blas/src}/zdotu.f (100%) rename {dspl/libblas/SRC => blas/src}/zdrot.f (100%) rename {dspl/libblas/SRC => blas/src}/zdscal.f (100%) rename {dspl/libblas/SRC => blas/src}/zgbmv.f (100%) rename {dspl/libblas/SRC => blas/src}/zgemm.f (100%) rename {dspl/libblas/SRC => blas/src}/zgemv.f (100%) rename {dspl/libblas/SRC => blas/src}/zgerc.f (100%) rename {dspl/libblas/SRC => blas/src}/zgeru.f (100%) rename {dspl/libblas/SRC => blas/src}/zhbmv.f (100%) rename {dspl/libblas/SRC => blas/src}/zhemm.f (100%) rename {dspl/libblas/SRC => blas/src}/zhemv.f (100%) rename {dspl/libblas/SRC => blas/src}/zher.f (100%) rename {dspl/libblas/SRC => blas/src}/zher2.f (100%) rename {dspl/libblas/SRC => blas/src}/zher2k.f (100%) rename {dspl/libblas/SRC => blas/src}/zherk.f (100%) rename {dspl/libblas/SRC => blas/src}/zhpmv.f (100%) rename {dspl/libblas/SRC => blas/src}/zhpr.f (100%) rename {dspl/libblas/SRC => blas/src}/zhpr2.f (100%) rename {dspl/libblas/SRC => blas/src}/zrotg.f (100%) rename {dspl/libblas/SRC => blas/src}/zscal.f (100%) rename {dspl/libblas/SRC => blas/src}/zswap.f (100%) rename {dspl/libblas/SRC => blas/src}/zsymm.f (100%) rename {dspl/libblas/SRC => blas/src}/zsyr2k.f (100%) rename {dspl/libblas/SRC => blas/src}/zsyrk.f (100%) rename {dspl/libblas/SRC => blas/src}/ztbmv.f (100%) rename {dspl/libblas/SRC => blas/src}/ztbsv.f (100%) rename {dspl/libblas/SRC => blas/src}/ztpmv.f (100%) rename {dspl/libblas/SRC => blas/src}/ztpsv.f (100%) rename {dspl/libblas/SRC => blas/src}/ztrmm.f (100%) rename {dspl/libblas/SRC => blas/src}/ztrmv.f (100%) rename {dspl/libblas/SRC => blas/src}/ztrsm.f (100%) rename {dspl/libblas/SRC => blas/src}/ztrsv.f (100%) delete mode 100644 dspl.project.win.geany create mode 100644 dspl.workspace create mode 100644 dspl.workspace.layout create mode 100644 dspl.workspace.mak create mode 100644 dspl/LICENSE rename Makefile.dspl => dspl/Makefile (64%) rename {dox => dspl/dox}/doxy_stylesheet.css (100%) rename {dox => dspl/dox}/doxyfile_ru (100%) rename {dox => dspl/dox}/doxygen_style.css (100%) rename {dox => dspl/dox}/footer.html (100%) rename {dox => dspl/dox}/header.html (100%) rename {dox => dspl/dox}/makedoc.sh (100%) rename dspl/{dspl_dox => dox}/ru/array.dox (100%) rename dspl/{dspl_dox => dox}/ru/cheby.dox (100%) rename dspl/{dspl_dox => dox}/ru/complex.dox (100%) rename dspl/{dspl_dox => dox}/ru/conv.dox (100%) rename dspl/{dspl_dox => dox}/ru/dft.dox (100%) rename dspl/{dspl_dox => dox}/ru/ellipj.dox (100%) rename {dox => dspl/dox}/ru/error_list.dox (97%) rename dspl/{dspl_dox => dox}/ru/fft.dox (100%) rename dspl/{dspl_dox => dox}/ru/fillarray.dox (100%) rename dspl/{dspl_dox => dox}/ru/filter_an.dox (100%) rename dspl/{dspl_dox => dox}/ru/filter_ap.dox (100%) rename dspl/{dspl_dox => dox}/ru/filter_ft.dox (100%) rename dspl/{dspl_dox => dox}/ru/filter_iir.dox (100%) rename dspl/{dspl_dox => dox}/ru/fourier_series.dox (100%) rename {dox => dspl/dox}/ru/getting_started_mingw.dox (100%) rename dspl/{dspl_dox => dox}/ru/goertzel.dox (100%) rename {dox => dspl/dox}/ru/groups_define.dox (100%) rename {dox => dspl/dox}/ru/img/compileproc.png (100%) rename {dox => dspl/dox}/ru/img/dspl_dir.png (100%) rename {dox => dspl/dox}/ru/img/dspl_exe.png (100%) rename {dox => dspl/dox}/ru/img/dspl_github.png (100%) rename {dox => dspl/dox}/ru/img/far_manager.png (100%) rename {dox => dspl/dox}/ru/img/gcc_ver.png (100%) rename {dox => dspl/dox}/ru/img/gnuplot.png (100%) rename {dox => dspl/dox}/ru/img/mingw_bin.png (100%) rename {dox => dspl/dox}/ru/img/path_1.png (100%) rename {dox => dspl/dox}/ru/img/path_2.png (100%) rename {dox => dspl/dox}/ru/img/path_3.png (100%) rename {dox => dspl/dox}/ru/img/path_gnuplot.png (100%) rename {dox => dspl/dox}/ru/img/path_old.png (100%) rename {dox => dspl/dox}/ru/img/path_unx.png (100%) rename {dox => dspl/dox}/ru/img/unxutils.png (100%) rename {dox => dspl/dox}/ru/img/vs_build.png (100%) rename {dox => dspl/dox}/ru/img/vs_build_success.png (100%) rename {dox => dspl/dox}/ru/img/vs_output.png (100%) rename {dox => dspl/dox}/ru/img/vs_path.png (100%) rename {dox => dspl/dox}/ru/img/vs_run.png (100%) rename dspl/{dspl_dox => dox}/ru/inout.dox (100%) rename {dox => dspl/dox}/ru/mainpage.dox (97%) rename dspl/{dspl_dox => dox}/ru/math.dox (100%) rename dspl/{dspl_dox => dox}/ru/matrix.dox (100%) rename dspl/{dspl_dox => dox}/ru/polyval.dox (100%) rename dspl/{dspl_dox => dox}/ru/randgen.dox (100%) rename dspl/{dspl_dox => dox}/ru/resampling.dox (100%) rename dspl/{dspl_dox => dox}/ru/win.dox (100%) create mode 100644 dspl/dspl.cbp create mode 100644 dspl/dspl.depend create mode 100644 dspl/dspl.layout delete mode 100644 dspl/dspl_obj/.gitignore delete mode 100644 dspl/libblas/SRC/._Makefile delete mode 100644 dspl/libblas/SRC/._caxpy.f delete mode 100644 dspl/libblas/SRC/._ccopy.f delete mode 100644 dspl/libblas/SRC/._cdotc.f delete mode 100644 dspl/libblas/SRC/._cdotu.f delete mode 100644 dspl/libblas/SRC/._cgbmv.f delete mode 100644 dspl/libblas/SRC/._cgemm.f delete mode 100644 dspl/libblas/SRC/._cgemv.f delete mode 100644 dspl/libblas/SRC/._cgerc.f delete mode 100644 dspl/libblas/SRC/._cgeru.f delete mode 100644 dspl/libblas/SRC/._chbmv.f delete mode 100644 dspl/libblas/SRC/._chemm.f delete mode 100644 dspl/libblas/SRC/._chemv.f delete mode 100644 dspl/libblas/SRC/._cher.f delete mode 100644 dspl/libblas/SRC/._cher2.f delete mode 100644 dspl/libblas/SRC/._cher2k.f delete mode 100644 dspl/libblas/SRC/._cherk.f delete mode 100644 dspl/libblas/SRC/._chpmv.f delete mode 100644 dspl/libblas/SRC/._chpr.f delete mode 100644 dspl/libblas/SRC/._chpr2.f delete mode 100644 dspl/libblas/SRC/._crotg.f delete mode 100644 dspl/libblas/SRC/._cscal.f delete mode 100644 dspl/libblas/SRC/._csrot.f delete mode 100644 dspl/libblas/SRC/._csscal.f delete mode 100644 dspl/libblas/SRC/._cswap.f delete mode 100644 dspl/libblas/SRC/._csymm.f delete mode 100644 dspl/libblas/SRC/._csyr2k.f delete mode 100644 dspl/libblas/SRC/._csyrk.f delete mode 100644 dspl/libblas/SRC/._ctbmv.f delete mode 100644 dspl/libblas/SRC/._ctbsv.f delete mode 100644 dspl/libblas/SRC/._ctpmv.f delete mode 100644 dspl/libblas/SRC/._ctpsv.f delete mode 100644 dspl/libblas/SRC/._ctrmm.f delete mode 100644 dspl/libblas/SRC/._ctrmv.f delete mode 100644 dspl/libblas/SRC/._ctrsm.f delete mode 100644 dspl/libblas/SRC/._ctrsv.f delete mode 100644 dspl/libblas/SRC/._dasum.f delete mode 100644 dspl/libblas/SRC/._daxpy.f delete mode 100644 dspl/libblas/SRC/._dcabs1.f delete mode 100644 dspl/libblas/SRC/._dcopy.f delete mode 100644 dspl/libblas/SRC/._ddot.f delete mode 100644 dspl/libblas/SRC/._dgbmv.f delete mode 100644 dspl/libblas/SRC/._dgemm.f delete mode 100644 dspl/libblas/SRC/._dgemv.f delete mode 100644 dspl/libblas/SRC/._dger.f delete mode 100644 dspl/libblas/SRC/._dnrm2.f delete mode 100644 dspl/libblas/SRC/._drot.f delete mode 100644 dspl/libblas/SRC/._drotg.f delete mode 100644 dspl/libblas/SRC/._drotm.f delete mode 100644 dspl/libblas/SRC/._drotmg.f delete mode 100644 dspl/libblas/SRC/._dsbmv.f delete mode 100644 dspl/libblas/SRC/._dscal.f delete mode 100644 dspl/libblas/SRC/._dsdot.f delete mode 100644 dspl/libblas/SRC/._dspmv.f delete mode 100644 dspl/libblas/SRC/._dspr.f delete mode 100644 dspl/libblas/SRC/._dspr2.f delete mode 100644 dspl/libblas/SRC/._dswap.f delete mode 100644 dspl/libblas/SRC/._dsymm.f delete mode 100644 dspl/libblas/SRC/._dsymv.f delete mode 100644 dspl/libblas/SRC/._dsyr.f delete mode 100644 dspl/libblas/SRC/._dsyr2.f delete mode 100644 dspl/libblas/SRC/._dsyr2k.f delete mode 100644 dspl/libblas/SRC/._dsyrk.f delete mode 100644 dspl/libblas/SRC/._dtbmv.f delete mode 100644 dspl/libblas/SRC/._dtbsv.f delete mode 100644 dspl/libblas/SRC/._dtpmv.f delete mode 100644 dspl/libblas/SRC/._dtpsv.f delete mode 100644 dspl/libblas/SRC/._dtrmm.f delete mode 100644 dspl/libblas/SRC/._dtrmv.f delete mode 100644 dspl/libblas/SRC/._dtrsm.f delete mode 100644 dspl/libblas/SRC/._dtrsv.f delete mode 100644 dspl/libblas/SRC/._dzasum.f delete mode 100644 dspl/libblas/SRC/._dznrm2.f delete mode 100644 dspl/libblas/SRC/._icamax.f delete mode 100644 dspl/libblas/SRC/._idamax.f delete mode 100644 dspl/libblas/SRC/._isamax.f delete mode 100644 dspl/libblas/SRC/._izamax.f delete mode 100644 dspl/libblas/SRC/._lsame.f delete mode 100644 dspl/libblas/SRC/._make.inc delete mode 100644 dspl/libblas/SRC/._sasum.f delete mode 100644 dspl/libblas/SRC/._saxpy.f delete mode 100644 dspl/libblas/SRC/._scabs1.f delete mode 100644 dspl/libblas/SRC/._scasum.f delete mode 100644 dspl/libblas/SRC/._scnrm2.f delete mode 100644 dspl/libblas/SRC/._scopy.f delete mode 100644 dspl/libblas/SRC/._sdot.f delete mode 100644 dspl/libblas/SRC/._sdsdot.f delete mode 100644 dspl/libblas/SRC/._sgbmv.f delete mode 100644 dspl/libblas/SRC/._sgemm.f delete mode 100644 dspl/libblas/SRC/._sgemv.f delete mode 100644 dspl/libblas/SRC/._sger.f delete mode 100644 dspl/libblas/SRC/._snrm2.f delete mode 100644 dspl/libblas/SRC/._srot.f delete mode 100644 dspl/libblas/SRC/._srotg.f delete mode 100644 dspl/libblas/SRC/._srotm.f delete mode 100644 dspl/libblas/SRC/._srotmg.f delete mode 100644 dspl/libblas/SRC/._ssbmv.f delete mode 100644 dspl/libblas/SRC/._sscal.f delete mode 100644 dspl/libblas/SRC/._sspmv.f delete mode 100644 dspl/libblas/SRC/._sspr.f delete mode 100644 dspl/libblas/SRC/._sspr2.f delete mode 100644 dspl/libblas/SRC/._sswap.f delete mode 100644 dspl/libblas/SRC/._ssymm.f delete mode 100644 dspl/libblas/SRC/._ssymv.f delete mode 100644 dspl/libblas/SRC/._ssyr.f delete mode 100644 dspl/libblas/SRC/._ssyr2.f delete mode 100644 dspl/libblas/SRC/._ssyr2k.f delete mode 100644 dspl/libblas/SRC/._ssyrk.f delete mode 100644 dspl/libblas/SRC/._stbmv.f delete mode 100644 dspl/libblas/SRC/._stbsv.f delete mode 100644 dspl/libblas/SRC/._stpmv.f delete mode 100644 dspl/libblas/SRC/._stpsv.f delete mode 100644 dspl/libblas/SRC/._strmm.f delete mode 100644 dspl/libblas/SRC/._strmv.f delete mode 100644 dspl/libblas/SRC/._strsm.f delete mode 100644 dspl/libblas/SRC/._strsv.f delete mode 100644 dspl/libblas/SRC/._xerbla.f delete mode 100644 dspl/libblas/SRC/._xerbla_array.f delete mode 100644 dspl/libblas/SRC/._zaxpy.f delete mode 100644 dspl/libblas/SRC/._zcopy.f delete mode 100644 dspl/libblas/SRC/._zdotc.f delete mode 100644 dspl/libblas/SRC/._zdotu.f delete mode 100644 dspl/libblas/SRC/._zdrot.f delete mode 100644 dspl/libblas/SRC/._zdscal.f delete mode 100644 dspl/libblas/SRC/._zgbmv.f delete mode 100644 dspl/libblas/SRC/._zgemm.f delete mode 100644 dspl/libblas/SRC/._zgemv.f delete mode 100644 dspl/libblas/SRC/._zgerc.f delete mode 100644 dspl/libblas/SRC/._zgeru.f delete mode 100644 dspl/libblas/SRC/._zhbmv.f delete mode 100644 dspl/libblas/SRC/._zhemm.f delete mode 100644 dspl/libblas/SRC/._zhemv.f delete mode 100644 dspl/libblas/SRC/._zher.f delete mode 100644 dspl/libblas/SRC/._zher2.f delete mode 100644 dspl/libblas/SRC/._zher2k.f delete mode 100644 dspl/libblas/SRC/._zherk.f delete mode 100644 dspl/libblas/SRC/._zhpmv.f delete mode 100644 dspl/libblas/SRC/._zhpr.f delete mode 100644 dspl/libblas/SRC/._zhpr2.f delete mode 100644 dspl/libblas/SRC/._zrotg.f delete mode 100644 dspl/libblas/SRC/._zscal.f delete mode 100644 dspl/libblas/SRC/._zswap.f delete mode 100644 dspl/libblas/SRC/._zsymm.f delete mode 100644 dspl/libblas/SRC/._zsyr2k.f delete mode 100644 dspl/libblas/SRC/._zsyrk.f delete mode 100644 dspl/libblas/SRC/._ztbmv.f delete mode 100644 dspl/libblas/SRC/._ztbsv.f delete mode 100644 dspl/libblas/SRC/._ztpmv.f delete mode 100644 dspl/libblas/SRC/._ztpsv.f delete mode 100644 dspl/libblas/SRC/._ztrmm.f delete mode 100644 dspl/libblas/SRC/._ztrmv.f delete mode 100644 dspl/libblas/SRC/._ztrsm.f delete mode 100644 dspl/libblas/SRC/._ztrsv.f delete mode 100644 dspl/libblas/SRC/.gitignore delete mode 100644 dspl/liblapack/INSTALL/.gitignore delete mode 100644 dspl/liblapack/INSTALL/LAPACK_version.f delete mode 100644 dspl/liblapack/INSTALL/Makefile delete mode 100644 dspl/liblapack/INSTALL/dlamchf77.f delete mode 100644 dspl/liblapack/INSTALL/dlamchtst.f delete mode 100644 dspl/liblapack/INSTALL/dsecnd_EXT_ETIME.f delete mode 100644 dspl/liblapack/INSTALL/dsecnd_EXT_ETIME_.f delete mode 100644 dspl/liblapack/INSTALL/dsecnd_INT_CPU_TIME.f delete mode 100644 dspl/liblapack/INSTALL/dsecnd_INT_ETIME.f delete mode 100644 dspl/liblapack/INSTALL/dsecnd_NONE.f delete mode 100644 dspl/liblapack/INSTALL/dsecndtst.f delete mode 100644 dspl/liblapack/INSTALL/ilaver.f delete mode 100644 dspl/liblapack/INSTALL/lsame.f delete mode 100644 dspl/liblapack/INSTALL/lsametst.f delete mode 100644 dspl/liblapack/INSTALL/make.inc.ALPHA delete mode 100644 dspl/liblapack/INSTALL/make.inc.HPPA delete mode 100644 dspl/liblapack/INSTALL/make.inc.IRIX64 delete mode 100644 dspl/liblapack/INSTALL/make.inc.O2K delete mode 100644 dspl/liblapack/INSTALL/make.inc.SGI5 delete mode 100644 dspl/liblapack/INSTALL/make.inc.SUN4 delete mode 100644 dspl/liblapack/INSTALL/make.inc.SUN4SOL2 delete mode 100644 dspl/liblapack/INSTALL/make.inc.XLF delete mode 100644 dspl/liblapack/INSTALL/make.inc.gfortran delete mode 100644 dspl/liblapack/INSTALL/make.inc.gfortran_debug delete mode 100644 dspl/liblapack/INSTALL/make.inc.ifort delete mode 100644 dspl/liblapack/INSTALL/make.inc.pgf95 delete mode 100644 dspl/liblapack/INSTALL/make.inc.pghpf delete mode 100644 dspl/liblapack/INSTALL/second_EXT_ETIME.f delete mode 100644 dspl/liblapack/INSTALL/second_EXT_ETIME_.f delete mode 100644 dspl/liblapack/INSTALL/second_INT_CPU_TIME.f delete mode 100644 dspl/liblapack/INSTALL/second_INT_ETIME.f delete mode 100644 dspl/liblapack/INSTALL/second_NONE.f delete mode 100644 dspl/liblapack/INSTALL/secondtst.f delete mode 100644 dspl/liblapack/INSTALL/slamch.f delete mode 100644 dspl/liblapack/INSTALL/slamchf77.f delete mode 100644 dspl/liblapack/INSTALL/slamchtst.f delete mode 100644 dspl/liblapack/INSTALL/tstiee.f delete mode 100644 dspl/liblapack/SRC/.gitignore delete mode 100644 dspl/liblapack/SRC/DEPRECATED/cgegs.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/cgegv.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/cgelsx.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/cgeqpf.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/cggsvd.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/cggsvp.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/clahrd.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/clatzm.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/ctzrqf.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/dgegs.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/dgegv.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/dgelsx.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/dgeqpf.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/dggsvd.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/dggsvp.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/dlahrd.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/dlatzm.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/dtzrqf.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/sgegs.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/sgegv.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/sgelsx.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/sgeqpf.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/sggsvd.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/sggsvp.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/slahrd.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/slatzm.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/stzrqf.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/zgegs.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/zgegv.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/zgelsx.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/zgeqpf.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/zggsvd.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/zggsvp.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/zlahrd.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/zlatzm.f delete mode 100644 dspl/liblapack/SRC/DEPRECATED/ztzrqf.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/Makefile delete mode 100644 dspl/liblapack/SRC/VARIANTS/README delete mode 100644 dspl/liblapack/SRC/VARIANTS/cholesky/RL/cpotrf.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/cholesky/RL/dpotrf.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/cholesky/RL/spotrf.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/cholesky/RL/zpotrf.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/cholesky/TOP/cpotrf.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/cholesky/TOP/dpotrf.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/cholesky/TOP/spotrf.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/cholesky/TOP/zpotrf.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/lu/CR/cgetrf.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/lu/CR/dgetrf.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/lu/CR/sgetrf.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/lu/CR/zgetrf.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/lu/LL/cgetrf.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/lu/LL/dgetrf.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/lu/LL/sgetrf.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/lu/LL/zgetrf.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/lu/REC/cgetrf.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/lu/REC/dgetrf.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/lu/REC/sgetrf.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/lu/REC/zgetrf.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/qr/LL/cgeqrf.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/qr/LL/dgeqrf.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/qr/LL/sceil.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/qr/LL/sgeqrf.f delete mode 100644 dspl/liblapack/SRC/VARIANTS/qr/LL/zgeqrf.f delete mode 100644 dspl/liblapack/make.inc rename dspl/{dspl_src => src}/array.c (100%) rename dspl/{dspl_src => src}/blas.h (100%) rename dspl/{dspl_src => src}/cheby.c (100%) rename dspl/{dspl_src => src}/complex.c (100%) rename dspl/{dspl_src => src}/conv.c (100%) rename dspl/{dspl_src => src}/dft.c (100%) rename dspl/{dspl_src => src}/dspl_internal.h (100%) rename dspl/{dspl_src => src}/ellipj.c (100%) rename dspl/{dspl_src => src}/fft.c (100%) rename dspl/{dspl_src => src}/fft_subkernel.c (100%) rename dspl/{dspl_src => src}/fillarray.c (100%) rename dspl/{dspl_src => src}/filter_an.c (100%) rename dspl/{dspl_src => src}/filter_ap.c (100%) rename dspl/{dspl_src => src}/filter_fir.c (100%) rename dspl/{dspl_src => src}/filter_ft.c (100%) rename dspl/{dspl_src => src}/filter_iir.c (100%) rename dspl/{dspl_src => src}/fourier_series.c (100%) rename dspl/{dspl_src => src}/goertzel.c (100%) rename dspl/{dspl_src => src}/inout.c (86%) rename dspl/{dspl_src => src}/math.c (100%) rename dspl/{dspl_src => src}/matrix.c (100%) rename dspl/{dspl_src => src}/mt19937.c (100%) rename dspl/{dspl_src => src}/mt19937.h (100%) rename dspl/{dspl_src => src}/polyval.c (100%) rename dspl/{dspl_src => src}/randgen.c (86%) rename dspl/{dspl_src => src}/resampling.c (100%) rename dspl/{dspl_src => src}/signals.c (100%) rename dspl/{dspl_src => src}/statistic.c (100%) rename dspl/{dspl_src => src}/trapint.c (100%) rename dspl/{dspl_src => src}/win.c (100%) delete mode 100644 examples/bin/.gitignore delete mode 100644 examples/bin/dat/.gitignore delete mode 100644 examples/bin/img/.gitignore create mode 100644 examples/examples.cbp create mode 100644 examples/examples.cbp.mak create mode 100644 examples/examples.depend create mode 100644 examples/examples.layout delete mode 100644 examples/obj/.gitignore create mode 100644 examples/src/test.c delete mode 100644 ide/visualstudio/libdspl-2.0.sln delete mode 100644 ide/visualstudio/libdspl-2.0.vcxproj delete mode 100644 ide/visualstudio/libdspl-2.0.vcxproj.filters delete mode 100644 ide/visualstudio/libdspl-2.0.vcxproj.user delete mode 100644 ide/visualstudio/test.vcxproj delete mode 100644 ide/visualstudio/test.vcxproj.filters delete mode 100644 ide/visualstudio/test.vcxproj.user create mode 100644 lapack/Makefile create mode 100644 lapack/lapack_complex.cbp create mode 100644 lapack/lapack_complex.cbp.mak create mode 100644 lapack/lapack_complex.depend create mode 100644 lapack/lapack_complex.inc create mode 100644 lapack/lapack_complex.layout create mode 100644 lapack/lapack_double.cbp create mode 100644 lapack/lapack_double.depend create mode 100644 lapack/lapack_double.inc create mode 100644 lapack/lapack_double.layout rename {dspl/libblas => lapack/src}/.gitignore (100%) rename {dspl/liblapack/SRC => lapack/src}/Makefile (100%) rename {dspl/liblapack/SRC => lapack/src}/cbbcsd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cbdsqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgbbrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgbcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgbequ.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgbequb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgbrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgbrfsx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgbsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgbsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgbsvxx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgbtf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgbtrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgbtrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgebak.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgebal.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgebd2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgebrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgecon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgeequ.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgeequb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgees.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgeesx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgeev.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgeevx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgehd2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgehrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgejsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgelq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgelq2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgelqf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgelqt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgelqt3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgels.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgelsd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgelss.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgelsy.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgemlq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgemlqt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgemqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgemqrt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgeql2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgeqlf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgeqp3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgeqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgeqr2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgeqr2p.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgeqrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgeqrfp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgeqrt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgeqrt2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgeqrt3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgerfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgerfsx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgerq2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgerqf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgesc2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgesdd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgesv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgesvd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgesvdx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgesvj.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgesvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgesvxx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgetc2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgetf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgetrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgetrf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgetri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgetrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgetsls.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cggbak.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cggbal.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgges.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgges3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cggesx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cggev.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cggev3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cggevx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cggglm.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgghd3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgghrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgglse.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cggqrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cggrqf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cggsvd3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cggsvp3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgsvj0.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgsvj1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgtcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgtrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgtsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgtsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgttrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgttrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cgtts2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chb2st_kernels.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chbev.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chbev_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chbevd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chbevd_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chbevx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chbevx_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chbgst.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chbgv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chbgvd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chbgvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chbtrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/checon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/checon_3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/checon_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cheequb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cheev.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cheev_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cheevd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cheevd_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cheevr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cheevr_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cheevx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cheevx_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chegs2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chegst.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chegv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chegv_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chegvd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chegvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cherfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cherfsx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chesv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chesv_aa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chesv_aa_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chesv_rk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chesv_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chesvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chesvxx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cheswapr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chetd2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chetf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chetf2_rk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chetf2_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chetrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chetrd_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chetrd_hb2st.F (100%) rename {dspl/liblapack/SRC => lapack/src}/chetrd_he2hb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chetrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chetrf_aa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chetrf_aa_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chetrf_rk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chetrf_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chetri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chetri2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chetri2x.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chetri_3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chetri_3x.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chetri_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chetrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chetrs2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chetrs_3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chetrs_aa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chetrs_aa_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chetrs_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chfrk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chgeqz.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chla_transtype.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chpcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chpev.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chpevd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chpevx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chpgst.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chpgv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chpgvd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chpgvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chprfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chpsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chpsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chptrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chptrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chptri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chptrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chsein.f (100%) rename {dspl/liblapack/SRC => lapack/src}/chseqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_gbamv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_gbrcond_c.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_gbrcond_x.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_gbrfsx_extended.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_gbrpvgrw.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_geamv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_gercond_c.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_gercond_x.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_gerfsx_extended.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_gerpvgrw.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_heamv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_hercond_c.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_hercond_x.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_herfsx_extended.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_herpvgrw.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_lin_berr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_porcond_c.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_porcond_x.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_porfsx_extended.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_porpvgrw.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_syamv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_syrcond_c.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_syrcond_x.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_syrfsx_extended.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_syrpvgrw.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cla_wwaddw.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clabrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clacgv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clacn2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clacon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clacp2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clacpy.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clacrm.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clacrt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cladiv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claed0.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claed7.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claed8.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claein.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claesy.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claev2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clag2z.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clags2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clagtm.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clahef.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clahef_aa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clahef_rk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clahef_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clahqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clahr2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claic1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clals0.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clalsa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clalsd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clamswlq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clamtsqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clangb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clange.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clangt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clanhb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clanhe.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clanhf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clanhp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clanhs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clanht.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clansb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clansp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clansy.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clantb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clantp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clantr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clapll.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clapmr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clapmt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claqgb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claqge.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claqhb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claqhe.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claqhp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claqp2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claqps.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claqr0.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claqr1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claqr2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claqr3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claqr4.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claqr5.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claqsb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claqsp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claqsy.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clar1v.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clar2v.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clarcm.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clarf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clarfb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clarfg.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clarfgp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clarft.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clarfx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clarfy.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clargv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clarnv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clarrv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clarscl2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clartg.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clartv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clarz.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clarzb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clarzt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clascl.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clascl2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claset.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clasr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/classq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claswlq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/claswp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clasyf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clasyf_aa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clasyf_rk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clasyf_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clatbs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clatdf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clatps.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clatrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clatrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clatrz.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clatsqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clauu2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/clauum.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpbcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpbequ.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpbrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpbstf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpbsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpbsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpbtf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpbtrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpbtrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpftrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpftri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpftrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpocon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpoequ.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpoequb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cporfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cporfsx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cposv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cposvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cposvxx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpotf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpotrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpotrf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpotri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpotrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cppcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cppequ.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpprfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cppsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cppsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpptrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpptri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpptrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpstf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpstrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cptcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpteqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cptrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cptsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cptsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpttrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cpttrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cptts2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/crot.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cspcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cspmv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cspr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csprfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cspsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cspsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csptrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csptri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csptrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csrscl.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cstedc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cstegr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cstein.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cstemr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csteqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csycon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csycon_3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csycon_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csyconv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csyconvf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csyconvf_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csyequb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csymv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csyr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csyrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csyrfsx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csysv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csysv_aa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csysv_aa_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csysv_rk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csysv_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csysvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csysvxx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csyswapr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csytf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csytf2_rk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csytf2_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csytrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csytrf_aa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csytrf_aa_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csytrf_rk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csytrf_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csytri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csytri2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csytri2x.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csytri_3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csytri_3x.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csytri_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csytrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csytrs2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csytrs_3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csytrs_aa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csytrs_aa_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/csytrs_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctbcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctbrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctbtrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctfsm.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctftri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctfttp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctfttr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctgevc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctgex2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctgexc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctgsen.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctgsja.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctgsna.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctgsy2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctgsyl.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctpcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctplqt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctplqt2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctpmlqt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctpmqrt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctpqrt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctpqrt2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctprfb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctprfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctptri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctptrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctpttf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctpttr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctrcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctrevc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctrevc3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctrexc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctrrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctrsen.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctrsna.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctrsyl.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctrti2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctrtri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctrtrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctrttf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctrttp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ctzrzf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cunbdb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cunbdb1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cunbdb2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cunbdb3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cunbdb4.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cunbdb5.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cunbdb6.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cuncsd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cuncsd2by1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cung2l.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cung2r.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cungbr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cunghr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cungl2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cunglq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cungql.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cungqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cungr2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cungrq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cungtr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cunm22.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cunm2l.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cunm2r.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cunmbr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cunmhr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cunml2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cunmlq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cunmql.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cunmqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cunmr2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cunmr3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cunmrq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cunmrz.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cunmtr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cupgtr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/cupmtr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dbbcsd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dbdsdc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dbdsqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dbdsvdx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ddisna.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgbbrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgbcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgbequ.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgbequb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgbrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgbrfsx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgbsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgbsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgbsvxx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgbtf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgbtrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgbtrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgebak.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgebal.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgebd2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgebrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgecon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgeequ.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgeequb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgees.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgeesx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgeev.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgeevx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgehd2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgehrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgejsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgelq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgelq2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgelqf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgelqt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgelqt3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgels.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgelsd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgelss.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgelsy.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgemlq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgemlqt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgemqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgemqrt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgeql2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgeqlf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgeqp3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgeqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgeqr2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgeqr2p.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgeqrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgeqrfp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgeqrt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgeqrt2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgeqrt3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgerfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgerfsx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgerq2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgerqf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgesc2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgesdd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgesv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgesvd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgesvdx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgesvj.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgesvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgesvxx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgetc2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgetf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgetrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgetrf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgetri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgetrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgetsls.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dggbak.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dggbal.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgges.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgges3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dggesx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dggev.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dggev3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dggevx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dggglm.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgghd3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgghrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgglse.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dggqrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dggrqf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dggsvd3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dggsvp3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgsvj0.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgsvj1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgtcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgtrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgtsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgtsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgttrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgttrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dgtts2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dhgeqz.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dhsein.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dhseqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/disnan.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dla_gbamv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dla_gbrcond.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dla_gbrfsx_extended.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dla_gbrpvgrw.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dla_geamv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dla_gercond.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dla_gerfsx_extended.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dla_gerpvgrw.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dla_lin_berr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dla_porcond.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dla_porfsx_extended.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dla_porpvgrw.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dla_syamv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dla_syrcond.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dla_syrfsx_extended.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dla_syrpvgrw.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dla_wwaddw.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlabad.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlabrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlacn2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlacon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlacpy.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dladiv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlae2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaebz.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaed0.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaed1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaed2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaed3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaed4.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaed5.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaed6.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaed7.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaed8.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaed9.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaeda.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaein.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaev2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaexc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlag2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlag2s.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlags2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlagtf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlagtm.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlagts.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlagv2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlahqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlahr2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaic1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaisnan.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaln2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlals0.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlalsa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlalsd.f (100%) rename {dspl/liblapack/INSTALL => lapack/src}/dlamch.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlamrg.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlamswlq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlamtsqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaneg.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlangb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlange.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlangt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlanhs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlansb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlansf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlansp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlanst.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlansy.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlantb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlantp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlantr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlanv2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlapll.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlapmr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlapmt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlapy2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlapy3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaqgb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaqge.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaqp2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaqps.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaqr0.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaqr1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaqr2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaqr3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaqr4.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaqr5.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaqsb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaqsp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaqsy.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaqtr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlar1v.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlar2v.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlarf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlarfb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlarfg.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlarfgp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlarft.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlarfx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlarfy.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlargv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlarnv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlarra.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlarrb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlarrc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlarrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlarre.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlarrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlarrj.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlarrk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlarrr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlarrv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlarscl2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlartg.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlartgp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlartgs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlartv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaruv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlarz.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlarzb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlarzt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlas2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlascl.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlascl2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasd0.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasd1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasd2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasd3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasd4.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasd5.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasd6.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasd7.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasd8.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasda.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasdq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasdt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaset.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasq1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasq2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasq3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasq4.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasq5.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasq6.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasrt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlassq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasv2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaswlq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlaswp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasy2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasyf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasyf_aa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasyf_rk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlasyf_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlat2s.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlatbs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlatdf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlatps.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlatrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlatrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlatrz.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlatsqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlauu2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dlauum.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dopgtr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dopmtr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dorbdb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dorbdb1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dorbdb2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dorbdb3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dorbdb4.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dorbdb5.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dorbdb6.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dorcsd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dorcsd2by1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dorg2l.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dorg2r.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dorgbr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dorghr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dorgl2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dorglq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dorgql.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dorgqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dorgr2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dorgrq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dorgtr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dorm22.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dorm2l.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dorm2r.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dormbr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dormhr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dorml2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dormlq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dormql.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dormqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dormr2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dormr3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dormrq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dormrz.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dormtr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpbcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpbequ.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpbrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpbstf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpbsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpbsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpbtf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpbtrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpbtrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpftrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpftri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpftrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpocon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpoequ.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpoequb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dporfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dporfsx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dposv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dposvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dposvxx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpotf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpotrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpotrf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpotri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpotrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dppcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dppequ.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpprfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dppsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dppsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpptrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpptri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpptrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpstf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpstrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dptcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpteqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dptrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dptsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dptsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpttrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dpttrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dptts2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/drscl.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsb2st_kernels.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsbev.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsbev_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsbevd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsbevd_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsbevx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsbevx_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsbgst.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsbgv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsbgvd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsbgvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsbtrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsfrk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsgesv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dspcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dspev.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dspevd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dspevx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dspgst.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dspgv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dspgvd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dspgvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsposv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsprfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dspsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dspsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsptrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsptrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsptri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsptrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dstebz.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dstedc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dstegr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dstein.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dstemr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsteqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsterf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dstev.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dstevd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dstevr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dstevx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsycon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsycon_3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsycon_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsyconv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsyconvf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsyconvf_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsyequb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsyev.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsyev_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsyevd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsyevd_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsyevr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsyevr_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsyevx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsyevx_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsygs2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsygst.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsygv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsygv_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsygvd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsygvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsyrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsyrfsx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsysv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsysv_aa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsysv_aa_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsysv_rk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsysv_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsysvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsysvxx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsyswapr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytd2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytf2_rk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytf2_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytrd_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytrd_sb2st.F (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytrd_sy2sb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytrf_aa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytrf_aa_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytrf_rk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytrf_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytri2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytri2x.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytri_3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytri_3x.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytri_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytrs2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytrs_3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytrs_aa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytrs_aa_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dsytrs_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtbcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtbrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtbtrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtfsm.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtftri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtfttp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtfttr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtgevc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtgex2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtgexc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtgsen.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtgsja.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtgsna.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtgsy2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtgsyl.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtpcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtplqt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtplqt2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtpmlqt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtpmqrt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtpqrt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtpqrt2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtprfb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtprfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtptri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtptrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtpttf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtpttr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtrcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtrevc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtrevc3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtrexc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtrrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtrsen.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtrsna.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtrsyl.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtrti2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtrtri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtrtrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtrttf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtrttp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dtzrzf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/dzsum1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/icmax1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ieeeck.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ilaclc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ilaclr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/iladiag.f (100%) rename {dspl/liblapack/SRC => lapack/src}/iladlc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/iladlr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ilaenv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ilaenv2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ilaprec.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ilaslc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ilaslr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ilatrans.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ilauplo.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ilazlc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ilazlr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/iparam2stage.F (100%) rename {dspl/liblapack/SRC => lapack/src}/iparmq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/izmax1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/lsamen.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sbbcsd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sbdsdc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sbdsqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sbdsvdx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/scsum1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sdisna.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgbbrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgbcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgbequ.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgbequb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgbrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgbrfsx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgbsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgbsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgbsvxx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgbtf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgbtrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgbtrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgebak.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgebal.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgebd2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgebrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgecon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgeequ.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgeequb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgees.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgeesx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgeev.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgeevx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgehd2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgehrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgejsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgelq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgelq2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgelqf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgelqt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgelqt3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgels.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgelsd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgelss.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgelsy.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgemlq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgemlqt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgemqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgemqrt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgeql2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgeqlf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgeqp3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgeqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgeqr2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgeqr2p.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgeqrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgeqrfp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgeqrt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgeqrt2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgeqrt3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgerfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgerfsx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgerq2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgerqf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgesc2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgesdd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgesv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgesvd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgesvdx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgesvj.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgesvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgesvxx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgetc2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgetf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgetrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgetrf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgetri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgetrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgetsls.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sggbak.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sggbal.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgges.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgges3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sggesx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sggev.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sggev3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sggevx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sggglm.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgghd3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgghrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgglse.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sggqrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sggrqf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sggsvd3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sggsvp3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgsvj0.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgsvj1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgtcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgtrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgtsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgtsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgttrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgttrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sgtts2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/shgeqz.f (100%) rename {dspl/liblapack/SRC => lapack/src}/shsein.f (100%) rename {dspl/liblapack/SRC => lapack/src}/shseqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sisnan.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sla_gbamv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sla_gbrcond.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sla_gbrfsx_extended.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sla_gbrpvgrw.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sla_geamv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sla_gercond.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sla_gerfsx_extended.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sla_gerpvgrw.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sla_lin_berr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sla_porcond.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sla_porfsx_extended.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sla_porpvgrw.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sla_syamv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sla_syrcond.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sla_syrfsx_extended.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sla_syrpvgrw.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sla_wwaddw.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slabad.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slabrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slacn2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slacon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slacpy.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sladiv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slae2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaebz.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaed0.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaed1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaed2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaed3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaed4.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaed5.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaed6.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaed7.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaed8.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaed9.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaeda.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaein.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaev2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaexc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slag2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slag2d.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slags2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slagtf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slagtm.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slagts.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slagv2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slahqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slahr2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaic1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaisnan.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaln2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slals0.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slalsa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slalsd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slamrg.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slamswlq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slamtsqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaneg.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slangb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slange.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slangt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slanhs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slansb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slansf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slansp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slanst.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slansy.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slantb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slantp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slantr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slanv2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slapll.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slapmr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slapmt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slapy2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slapy3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaqgb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaqge.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaqp2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaqps.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaqr0.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaqr1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaqr2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaqr3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaqr4.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaqr5.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaqsb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaqsp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaqsy.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaqtr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slar1v.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slar2v.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slarf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slarfb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slarfg.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slarfgp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slarft.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slarfx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slarfy.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slargv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slarnv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slarra.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slarrb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slarrc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slarrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slarre.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slarrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slarrj.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slarrk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slarrr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slarrv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slarscl2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slartg.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slartgp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slartgs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slartv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaruv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slarz.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slarzb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slarzt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slas2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slascl.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slascl2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasd0.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasd1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasd2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasd3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasd4.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasd5.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasd6.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasd7.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasd8.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasda.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasdq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasdt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaset.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasq1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasq2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasq3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasq4.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasq5.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasq6.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasrt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slassq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasv2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaswlq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slaswp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasy2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasyf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasyf_aa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasyf_rk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slasyf_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slatbs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slatdf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slatps.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slatrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slatrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slatrz.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slatsqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slauu2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/slauum.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sopgtr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sopmtr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sorbdb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sorbdb1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sorbdb2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sorbdb3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sorbdb4.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sorbdb5.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sorbdb6.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sorcsd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sorcsd2by1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sorg2l.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sorg2r.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sorgbr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sorghr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sorgl2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sorglq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sorgql.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sorgqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sorgr2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sorgrq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sorgtr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sorm22.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sorm2l.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sorm2r.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sormbr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sormhr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sorml2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sormlq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sormql.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sormqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sormr2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sormr3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sormrq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sormrz.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sormtr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spbcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spbequ.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spbrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spbstf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spbsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spbsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spbtf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spbtrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spbtrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spftrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spftri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spftrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spocon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spoequ.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spoequb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sporfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sporfsx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sposv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sposvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sposvxx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spotf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spotrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spotrf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spotri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spotrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sppcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sppequ.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spprfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sppsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sppsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spptrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spptri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spptrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spstf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spstrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sptcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spteqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sptrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sptsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sptsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spttrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/spttrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sptts2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/srscl.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssb2st_kernels.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssbev.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssbev_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssbevd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssbevd_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssbevx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssbevx_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssbgst.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssbgv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssbgvd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssbgvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssbtrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssfrk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sspcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sspev.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sspevd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sspevx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sspgst.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sspgv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sspgvd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sspgvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssprfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sspsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sspsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssptrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssptrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssptri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssptrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sstebz.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sstedc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sstegr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sstein.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sstemr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssteqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssterf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sstev.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sstevd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sstevr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/sstevx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssycon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssycon_3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssycon_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssyconv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssyconvf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssyconvf_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssyequb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssyev.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssyev_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssyevd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssyevd_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssyevr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssyevr_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssyevx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssyevx_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssygs2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssygst.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssygv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssygv_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssygvd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssygvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssyrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssyrfsx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssysv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssysv_aa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssysv_aa_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssysv_rk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssysv_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssysvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssysvxx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssyswapr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytd2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytf2_rk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytf2_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytrd_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytrd_sb2st.F (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytrd_sy2sb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytrf_aa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytrf_aa_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytrf_rk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytrf_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytri2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytri2x.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytri_3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytri_3x.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytri_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytrs2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytrs_3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytrs_aa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytrs_aa_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ssytrs_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stbcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stbrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stbtrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stfsm.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stftri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stfttp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stfttr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stgevc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stgex2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stgexc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stgsen.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stgsja.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stgsna.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stgsy2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stgsyl.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stpcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stplqt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stplqt2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stpmlqt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stpmqrt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stpqrt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stpqrt2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stprfb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stprfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stptri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stptrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stpttf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stpttr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/strcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/strevc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/strevc3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/strexc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/strrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/strsen.f (100%) rename {dspl/liblapack/SRC => lapack/src}/strsna.f (100%) rename {dspl/liblapack/SRC => lapack/src}/strsyl.f (100%) rename {dspl/liblapack/SRC => lapack/src}/strti2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/strtri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/strtrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/strttf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/strttp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/stzrzf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/xerbla.f (100%) rename {dspl/liblapack/SRC => lapack/src}/xerbla_array.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zbbcsd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zbdsqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zcgesv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zcposv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zdrscl.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgbbrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgbcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgbequ.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgbequb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgbrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgbrfsx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgbsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgbsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgbsvxx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgbtf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgbtrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgbtrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgebak.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgebal.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgebd2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgebrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgecon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgeequ.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgeequb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgees.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgeesx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgeev.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgeevx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgehd2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgehrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgejsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgelq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgelq2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgelqf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgelqt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgelqt3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgels.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgelsd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgelss.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgelsy.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgemlq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgemlqt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgemqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgemqrt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgeql2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgeqlf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgeqp3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgeqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgeqr2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgeqr2p.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgeqrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgeqrfp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgeqrt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgeqrt2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgeqrt3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgerfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgerfsx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgerq2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgerqf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgesc2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgesdd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgesv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgesvd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgesvdx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgesvj.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgesvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgesvxx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgetc2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgetf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgetrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgetrf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgetri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgetrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgetsls.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zggbak.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zggbal.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgges.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgges3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zggesx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zggev.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zggev3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zggevx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zggglm.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgghd3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgghrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgglse.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zggqrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zggrqf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zggsvd3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zggsvp3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgsvj0.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgsvj1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgtcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgtrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgtsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgtsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgttrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgttrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zgtts2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhb2st_kernels.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhbev.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhbev_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhbevd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhbevd_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhbevx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhbevx_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhbgst.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhbgv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhbgvd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhbgvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhbtrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhecon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhecon_3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhecon_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zheequb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zheev.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zheev_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zheevd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zheevd_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zheevr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zheevr_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zheevx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zheevx_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhegs2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhegst.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhegv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhegv_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhegvd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhegvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zherfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zherfsx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhesv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhesv_aa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhesv_aa_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhesv_rk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhesv_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhesvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhesvxx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zheswapr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetd2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetf2_rk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetf2_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetrd_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetrd_hb2st.F (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetrd_he2hb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetrf_aa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetrf_aa_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetrf_rk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetrf_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetri2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetri2x.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetri_3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetri_3x.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetri_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetrs2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetrs_3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetrs_aa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetrs_aa_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhetrs_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhfrk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhgeqz.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhpcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhpev.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhpevd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhpevx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhpgst.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhpgv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhpgvd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhpgvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhprfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhpsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhpsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhptrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhptrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhptri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhptrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhsein.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zhseqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_gbamv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_gbrcond_c.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_gbrcond_x.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_gbrfsx_extended.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_gbrpvgrw.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_geamv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_gercond_c.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_gercond_x.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_gerfsx_extended.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_gerpvgrw.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_heamv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_hercond_c.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_hercond_x.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_herfsx_extended.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_herpvgrw.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_lin_berr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_porcond_c.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_porcond_x.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_porfsx_extended.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_porpvgrw.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_syamv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_syrcond_c.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_syrcond_x.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_syrfsx_extended.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_syrpvgrw.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zla_wwaddw.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlabrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlacgv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlacn2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlacon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlacp2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlacpy.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlacrm.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlacrt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zladiv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaed0.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaed7.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaed8.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaein.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaesy.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaev2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlag2c.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlags2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlagtm.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlahef.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlahef_aa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlahef_rk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlahef_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlahqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlahr2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaic1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlals0.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlalsa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlalsd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlamswlq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlamtsqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlangb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlange.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlangt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlanhb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlanhe.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlanhf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlanhp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlanhs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlanht.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlansb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlansp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlansy.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlantb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlantp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlantr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlapll.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlapmr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlapmt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaqgb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaqge.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaqhb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaqhe.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaqhp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaqp2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaqps.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaqr0.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaqr1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaqr2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaqr3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaqr4.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaqr5.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaqsb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaqsp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaqsy.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlar1v.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlar2v.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlarcm.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlarf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlarfb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlarfg.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlarfgp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlarft.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlarfx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlarfy.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlargv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlarnv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlarrv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlarscl2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlartg.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlartv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlarz.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlarzb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlarzt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlascl.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlascl2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaset.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlasr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlassq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaswlq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlaswp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlasyf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlasyf_aa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlasyf_rk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlasyf_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlat2c.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlatbs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlatdf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlatps.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlatrd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlatrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlatrz.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlatsqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlauu2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zlauum.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpbcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpbequ.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpbrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpbstf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpbsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpbsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpbtf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpbtrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpbtrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpftrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpftri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpftrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpocon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpoequ.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpoequb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zporfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zporfsx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zposv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zposvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zposvxx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpotf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpotrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpotrf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpotri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpotrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zppcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zppequ.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpprfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zppsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zppsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpptrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpptri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpptrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpstf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpstrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zptcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpteqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zptrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zptsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zptsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpttrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zpttrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zptts2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zrot.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zspcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zspmv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zspr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsprfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zspsv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zspsvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsptrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsptri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsptrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zstedc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zstegr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zstein.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zstemr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsteqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsycon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsycon_3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsycon_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsyconv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsyconvf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsyconvf_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsyequb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsymv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsyr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsyrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsyrfsx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsysv.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsysv_aa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsysv_aa_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsysv_rk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsysv_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsysvx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsysvxx.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsyswapr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsytf2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsytf2_rk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsytf2_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsytrf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsytrf_aa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsytrf_aa_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsytrf_rk.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsytrf_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsytri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsytri2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsytri2x.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsytri_3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsytri_3x.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsytri_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsytrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsytrs2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsytrs_3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsytrs_aa.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsytrs_aa_2stage.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zsytrs_rook.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztbcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztbrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztbtrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztfsm.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztftri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztfttp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztfttr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztgevc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztgex2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztgexc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztgsen.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztgsja.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztgsna.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztgsy2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztgsyl.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztpcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztplqt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztplqt2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztpmlqt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztpmqrt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztpqrt.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztpqrt2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztprfb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztprfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztptri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztptrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztpttf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztpttr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztrcon.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztrevc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztrevc3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztrexc.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztrrfs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztrsen.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztrsna.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztrsyl.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztrti2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztrtri.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztrtrs.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztrttf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztrttp.f (100%) rename {dspl/liblapack/SRC => lapack/src}/ztzrzf.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zunbdb.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zunbdb1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zunbdb2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zunbdb3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zunbdb4.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zunbdb5.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zunbdb6.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zuncsd.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zuncsd2by1.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zung2l.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zung2r.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zungbr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zunghr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zungl2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zunglq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zungql.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zungqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zungr2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zungrq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zungtr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zunm22.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zunm2l.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zunm2r.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zunmbr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zunmhr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zunml2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zunmlq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zunmql.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zunmqr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zunmr2.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zunmr3.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zunmrq.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zunmrz.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zunmtr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zupgtr.f (100%) rename {dspl/liblapack/SRC => lapack/src}/zupmtr.f (100%) delete mode 100644 release/doc/.gitignore delete mode 100644 release/doc/ru/.gitignore delete mode 100644 release/include/dspl.c delete mode 100644 release/include/dspl.h delete mode 100644 release/lib/.gitignore delete mode 100644 verif/.gitignore delete mode 100644 verif/bin/.gitignore delete mode 100644 verif/bin/dat/.gitignore delete mode 100644 verif/bin/octave/functions/dspl_readbin.m delete mode 100644 verif/bin/octave/functions/dspl_writebin.m delete mode 100644 verif/bin/octave/readbin_verif.m delete mode 100644 verif/obj/.gitignore delete mode 100644 verif/src/readbin_verif.c diff --git a/Makefile b/Makefile index a551ca6..44218c2 100644 --- a/Makefile +++ b/Makefile @@ -2,27 +2,13 @@ include make.inc all: - $(MAKE) -f Makefile.dspl - cp -r include/dspl.h release/include/dspl.h - cp -r include/dspl.c release/include/dspl.c - $(MAKE) -f Makefile.verif - cp -r $(RELEASE_DIR)/$(DSPL_LIBNAME) verif/bin/$(DSPL_LIBNAME) - $(MAKE) -f Makefile.examples - cp -r $(RELEASE_DIR)/$(DSPL_LIBNAME) examples/bin/$(DSPL_LIBNAME) + $(MAKE) -C blas + $(MAKE) -C lapack + $(MAKE) -C dspl + - - clean: - $(MAKE) -f Makefile.dspl clean - $(MAKE) -f Makefile.verif clean - $(MAKE) -f Makefile.examples clean - rm -f $(BLAS_SRC_DIR)/*.o - rm -f $(LAPACK_SRC_DIR)/*.o - - -clean_all: - $(MAKE) clean - rm -f $(BLAS_LIB_DIR)/*.a - rm -f $(LAPACK_LIB_DIR)/*.a - + $(MAKE) -C dspl clean + $(MAKE) -C blas clean + $(MAKE) -C lapack clean diff --git a/Makefile.examples b/Makefile.examples deleted file mode 100644 index b68125b..0000000 --- a/Makefile.examples +++ /dev/null @@ -1,28 +0,0 @@ -PRJ_DIR = examples -SRC_DIR = $(PRJ_DIR)/src -BIN_DIR = $(PRJ_DIR)/bin - - -include make.inc - -DSPL_C_FILE = $(INC_DIR)/dspl.c -DSPL_O_FILE = $(PRJ_DIR)/obj/dspl.o - -SRC_FILES = $(wildcard $(SRC_DIR)/*.c) -BIN_FILES = $(addprefix $(BIN_DIR)/,$(notdir $(SRC_FILES:.c=.exe))) - -CFLAGS = -Wall -O3 -I$(INC_DIR) -D$(DEF_OS) - -all: $(BIN_FILES) - -$(BIN_DIR)/%.exe:$(SRC_DIR)/%.c $(DSPL_O_FILE) - $(CC) $(CFLAGS) $< $(DSPL_O_FILE) -o $@ $(LFLAGS) - -$(DSPL_O_FILE):$(DSPL_C_FILE) - $(CC) -c $(CFLAGS) $(DSPL_C_FILE) -o $(DSPL_O_FILE) $(LFLAGS) - -clean: - rm -f $(BIN_DIR)/*.exe - rm -f $(BIN_DIR)/$(DSPL_LIBNAME) - rm -f $(DSPL_O_FILE) - diff --git a/Makefile.verif b/Makefile.verif deleted file mode 100644 index 5cec1f1..0000000 --- a/Makefile.verif +++ /dev/null @@ -1,28 +0,0 @@ -PRJ_DIR = verif -SRC_DIR = $(PRJ_DIR)/src -BIN_DIR = $(PRJ_DIR)/bin - - -include make.inc - -DSPL_C_FILE = $(INC_DIR)/dspl.c -DSPL_O_FILE = $(PRJ_DIR)/obj/dspl.o - -SRC_FILES = $(wildcard $(SRC_DIR)/*.c) -BIN_FILES = $(addprefix $(BIN_DIR)/,$(notdir $(SRC_FILES:.c=.exe))) - -CFLAGS = -Wall -O3 -I$(INC_DIR) -D$(DEF_OS) - -all: $(BIN_FILES) - -$(BIN_DIR)/%.exe:$(SRC_DIR)/%.c $(DSPL_O_FILE) - $(CC) $(CFLAGS) $< $(DSPL_O_FILE) -o $@ $(LFLAGS) - -$(DSPL_O_FILE):$(DSPL_C_FILE) - $(CC) -c $(CFLAGS) $(DSPL_C_FILE) -o $(DSPL_O_FILE) $(LFLAGS) - -clean: - rm -f $(BIN_DIR)/*.exe - rm -f $(BIN_DIR)/$(DSPL_LIBNAME) - rm -f $(DSPL_O_FILE) - diff --git a/examples/bin/gnuplot/bessel_i0.plt b/bin/gnuplot/bessel_i0.plt similarity index 100% rename from examples/bin/gnuplot/bessel_i0.plt rename to bin/gnuplot/bessel_i0.plt diff --git a/examples/bin/gnuplot/bilinear_test.plt b/bin/gnuplot/bilinear_test.plt similarity index 100% rename from examples/bin/gnuplot/bilinear_test.plt rename to bin/gnuplot/bilinear_test.plt diff --git a/examples/bin/gnuplot/butter_ap_test.plt b/bin/gnuplot/butter_ap_test.plt similarity index 100% rename from examples/bin/gnuplot/butter_ap_test.plt rename to bin/gnuplot/butter_ap_test.plt diff --git a/examples/bin/gnuplot/cheby1_ap_test.plt b/bin/gnuplot/cheby1_ap_test.plt similarity index 100% rename from examples/bin/gnuplot/cheby1_ap_test.plt rename to bin/gnuplot/cheby1_ap_test.plt diff --git a/examples/bin/gnuplot/cheby_poly1.plt b/bin/gnuplot/cheby_poly1.plt similarity index 100% rename from examples/bin/gnuplot/cheby_poly1.plt rename to bin/gnuplot/cheby_poly1.plt diff --git a/examples/bin/gnuplot/cheby_poly2.plt b/bin/gnuplot/cheby_poly2.plt similarity index 100% rename from examples/bin/gnuplot/cheby_poly2.plt rename to bin/gnuplot/cheby_poly2.plt diff --git a/examples/bin/gnuplot/filter_iir.plt b/bin/gnuplot/filter_iir.plt similarity index 61% rename from examples/bin/gnuplot/filter_iir.plt rename to bin/gnuplot/filter_iir.plt index 06f6810..cfe44d8 100644 --- a/examples/bin/gnuplot/filter_iir.plt +++ b/bin/gnuplot/filter_iir.plt @@ -1,9 +1,13 @@ + + unset key set grid set xlabel "n" -set terminal pngcairo size 820, 340 enhanced font 'Verdana,8' -set output 'img/filter_iir_test.png' +set terminal plotterm size 820, 340 enhanced font 'Verdana,8' + +#set output 'img/filter_iir_test.png' + set ylabel "s(n)" set yrange [-3:3] @@ -14,5 +18,4 @@ plot 'dat/s.txt' with lines set ylabel "s_f(n)" plot 'dat/sf.txt' with lines - -unset multiplot \ No newline at end of file +unset multiplot diff --git a/examples/bin/gnuplot/iir_bstop.plt b/bin/gnuplot/iir_bstop.plt similarity index 100% rename from examples/bin/gnuplot/iir_bstop.plt rename to bin/gnuplot/iir_bstop.plt diff --git a/examples/bin/gnuplot/iir_lpf.plt b/bin/gnuplot/iir_lpf.plt similarity index 100% rename from examples/bin/gnuplot/iir_lpf.plt rename to bin/gnuplot/iir_lpf.plt diff --git a/examples/bin/gnuplot/iir_test.plt b/bin/gnuplot/iir_test.plt similarity index 100% rename from examples/bin/gnuplot/iir_test.plt rename to bin/gnuplot/iir_test.plt diff --git a/examples/bin/gnuplot/sinc_test.plt b/bin/gnuplot/sinc_test.plt similarity index 100% rename from examples/bin/gnuplot/sinc_test.plt rename to bin/gnuplot/sinc_test.plt diff --git a/examples/bin/gnuplot/sine_int.plt b/bin/gnuplot/sine_int.plt similarity index 100% rename from examples/bin/gnuplot/sine_int.plt rename to bin/gnuplot/sine_int.plt diff --git a/bin/libdspl.def b/bin/libdspl.def new file mode 100644 index 0000000..57828c1 --- /dev/null +++ b/bin/libdspl.def @@ -0,0 +1,119 @@ +EXPORTS + acos_cmplx @1 + asin_cmplx @2 + bessel_i0 @3 + bilinear @4 + butter_ap @5 + butter_ap_zp @6 + cheby1_ap @7 + cheby1_ap_zp @8 + cheby2_ap @9 + cheby2_ap_wp1 @10 + cheby2_ap_zp @11 + cheby_poly1 @12 + cheby_poly2 @13 + cmplx2re @14 + concat @15 + conv @16 + conv_cmplx @17 + conv_fft @18 + conv_fft_cmplx @19 + cos_cmplx @20 + decimate @21 + decimate_cmplx @22 + dft @23 + dft_cmplx @24 + dmod @25 + dspl_info @26 + ellip_acd @27 + ellip_acd_cmplx @28 + ellip_ap @29 + ellip_ap_zp @30 + ellip_asn @31 + ellip_asn_cmplx @32 + ellip_cd @33 + ellip_cd_cmplx @34 + ellip_landen @35 + ellip_modulareq @36 + ellip_rat @37 + ellip_sn @38 + ellip_sn_cmplx @39 + farrow_lagrange @40 + farrow_spline @41 + fft @42 + fft_cmplx @43 + fft_create @44 + fft_free @45 + fft_mag @46 + fft_mag_cmplx @47 + fft_shift @48 + fft_shift_cmplx @49 + filter_freq_resp @50 + filter_iir @51 + filter_ws1 @52 + filter_zp2ab @53 + find_max_abs @54 + fir_linphase @55 + flipip @56 + flipip_cmplx @57 + fourier_integral_cmplx @58 + fourier_series_dec @59 + fourier_series_dec_cmplx @60 + fourier_series_rec @61 + freqs @62 + freqs2time @63 + freqs_cmplx @64 + freqz @65 + gnuplot_script @66 + goertzel @67 + goertzel_cmplx @68 + histogram @69 + histogram_norm @70 + idft_cmplx @71 + ifft_cmplx @72 + iir @73 + linspace @74 + log_cmplx @75 + logspace @76 + low2bp @77 + low2bs @78 + low2high @79 + low2low @80 + matrix_eig_cmplx @81 + matrix_eye @82 + matrix_eye_cmplx @83 + matrix_mul @84 + matrix_print @85 + matrix_print_cmplx @86 + matrix_transpose @87 + matrix_transpose_cmplx @88 + matrix_transpose_hermite @89 + minmax @90 + poly_z2a_cmplx @91 + polyval @92 + polyval_cmplx @93 + randn @94 + random_init @95 + randu @96 + ratcompos @97 + re2cmplx @98 + readbin @99 + signal_pimp @100 + signal_saw @101 + sin_cmplx @102 + sinc @103 + sine_int @104 + sqrt_cmplx @105 + trapint @106 + trapint_cmplx @107 + unwrap @108 + vector_dot @109 + verif @110 + verif_cmplx @111 + window @112 + writebin @113 + writetxt @114 + writetxt_3d @115 + writetxt_3dline @116 + writetxt_cmplx_im @117 + writetxt_cmplx_re @118 diff --git a/blas/Makefile b/blas/Makefile new file mode 100644 index 0000000..a83f205 --- /dev/null +++ b/blas/Makefile @@ -0,0 +1,42 @@ + + +FORTRAN = g++ +OPTS = -O3 +DRVOPTS = $(OPTS) +NOOPT = +LOADOPTS = +# +# The archiver and the flag(s) to use when building archive (library) +# If you system has no ranlib, set RANLIB = echo. +# +ARCH = ar +ARCHFLAGS= cr +RANLIB = ranlib +# +# The location and name of the Reference BLAS library. +# +BLASLIB = bin/Release/libblas.a + + +BLAS_OBJ_DIR = obj/Release/src + +# DSPL src and obj files list +BLAS_SRC_FILES = $(wildcard src/*.f) +BLAS_OBJ_FILES = $(addprefix $(BLAS_OBJ_DIR)/,$(notdir $(BLAS_SRC_FILES:.f=.o))) + +all: $(BLASLIB) + + +$(BLASLIB): $(BLAS_OBJ_FILES) + $(ARCH) $(ARCHFLAGS) $@ $(BLAS_OBJ_FILES) + $(RANLIB) $@ + + +$(BLAS_OBJ_DIR)/%.o:src/%.f + $(FORTRAN) $(OPTS) -c $< -o $@ + + +clean: + rm -f $(BLAS_OBJ_DIR)/*.o + rm -f $(BLASLIB) + diff --git a/blas/blas.cbp b/blas/blas.cbp new file mode 100644 index 0000000..eafc6d3 --- /dev/null +++ b/blas/blas.cbp @@ -0,0 +1,499 @@ + + + + + + diff --git a/blas/blas.depend b/blas/blas.depend new file mode 100644 index 0000000..c4ac310 --- /dev/null +++ b/blas/blas.depend @@ -0,0 +1 @@ +# depslib dependency file v1.0 diff --git a/blas/blas.layout b/blas/blas.layout new file mode 100644 index 0000000..85ef5d2 --- /dev/null +++ b/blas/blas.layout @@ -0,0 +1,5 @@ + + + + + diff --git a/dspl/libblas/SRC/Makefile b/blas/src/Makefile similarity index 100% rename from dspl/libblas/SRC/Makefile rename to blas/src/Makefile diff --git a/dspl/libblas/SRC/caxpy.f b/blas/src/caxpy.f similarity index 100% rename from dspl/libblas/SRC/caxpy.f rename to blas/src/caxpy.f diff --git a/dspl/libblas/SRC/ccopy.f b/blas/src/ccopy.f similarity index 100% rename from dspl/libblas/SRC/ccopy.f rename to blas/src/ccopy.f diff --git a/dspl/libblas/SRC/cdotc.f b/blas/src/cdotc.f similarity index 100% rename from dspl/libblas/SRC/cdotc.f rename to blas/src/cdotc.f diff --git a/dspl/libblas/SRC/cdotu.f b/blas/src/cdotu.f similarity index 100% rename from dspl/libblas/SRC/cdotu.f rename to blas/src/cdotu.f diff --git a/dspl/libblas/SRC/cgbmv.f b/blas/src/cgbmv.f similarity index 100% rename from dspl/libblas/SRC/cgbmv.f rename to blas/src/cgbmv.f diff --git a/dspl/libblas/SRC/cgemm.f b/blas/src/cgemm.f similarity index 100% rename from dspl/libblas/SRC/cgemm.f rename to blas/src/cgemm.f diff --git a/dspl/libblas/SRC/cgemv.f b/blas/src/cgemv.f similarity index 100% rename from dspl/libblas/SRC/cgemv.f rename to blas/src/cgemv.f diff --git a/dspl/libblas/SRC/cgerc.f b/blas/src/cgerc.f similarity index 100% rename from dspl/libblas/SRC/cgerc.f rename to blas/src/cgerc.f diff --git a/dspl/libblas/SRC/cgeru.f b/blas/src/cgeru.f similarity index 100% rename from dspl/libblas/SRC/cgeru.f rename to blas/src/cgeru.f diff --git a/dspl/libblas/SRC/chbmv.f b/blas/src/chbmv.f similarity index 100% rename from dspl/libblas/SRC/chbmv.f rename to blas/src/chbmv.f diff --git a/dspl/libblas/SRC/chemm.f b/blas/src/chemm.f similarity index 100% rename from dspl/libblas/SRC/chemm.f rename to blas/src/chemm.f diff --git a/dspl/libblas/SRC/chemv.f b/blas/src/chemv.f similarity index 100% rename from dspl/libblas/SRC/chemv.f rename to blas/src/chemv.f diff --git a/dspl/libblas/SRC/cher.f b/blas/src/cher.f similarity index 100% rename from dspl/libblas/SRC/cher.f rename to blas/src/cher.f diff --git a/dspl/libblas/SRC/cher2.f b/blas/src/cher2.f similarity index 100% rename from dspl/libblas/SRC/cher2.f rename to blas/src/cher2.f diff --git a/dspl/libblas/SRC/cher2k.f b/blas/src/cher2k.f similarity index 100% rename from dspl/libblas/SRC/cher2k.f rename to blas/src/cher2k.f diff --git a/dspl/libblas/SRC/cherk.f b/blas/src/cherk.f similarity index 100% rename from dspl/libblas/SRC/cherk.f rename to blas/src/cherk.f diff --git a/dspl/libblas/SRC/chpmv.f b/blas/src/chpmv.f similarity index 100% rename from dspl/libblas/SRC/chpmv.f rename to blas/src/chpmv.f diff --git a/dspl/libblas/SRC/chpr.f b/blas/src/chpr.f similarity index 100% rename from dspl/libblas/SRC/chpr.f rename to blas/src/chpr.f diff --git a/dspl/libblas/SRC/chpr2.f b/blas/src/chpr2.f similarity index 100% rename from dspl/libblas/SRC/chpr2.f rename to blas/src/chpr2.f diff --git a/dspl/libblas/SRC/crotg.f b/blas/src/crotg.f similarity index 100% rename from dspl/libblas/SRC/crotg.f rename to blas/src/crotg.f diff --git a/dspl/libblas/SRC/cscal.f b/blas/src/cscal.f similarity index 100% rename from dspl/libblas/SRC/cscal.f rename to blas/src/cscal.f diff --git a/dspl/libblas/SRC/csrot.f b/blas/src/csrot.f similarity index 100% rename from dspl/libblas/SRC/csrot.f rename to blas/src/csrot.f diff --git a/dspl/libblas/SRC/csscal.f b/blas/src/csscal.f similarity index 100% rename from dspl/libblas/SRC/csscal.f rename to blas/src/csscal.f diff --git a/dspl/libblas/SRC/cswap.f b/blas/src/cswap.f similarity index 100% rename from dspl/libblas/SRC/cswap.f rename to blas/src/cswap.f diff --git a/dspl/libblas/SRC/csymm.f b/blas/src/csymm.f similarity index 100% rename from dspl/libblas/SRC/csymm.f rename to blas/src/csymm.f diff --git a/dspl/libblas/SRC/csyr2k.f b/blas/src/csyr2k.f similarity index 100% rename from dspl/libblas/SRC/csyr2k.f rename to blas/src/csyr2k.f diff --git a/dspl/libblas/SRC/csyrk.f b/blas/src/csyrk.f similarity index 100% rename from dspl/libblas/SRC/csyrk.f rename to blas/src/csyrk.f diff --git a/dspl/libblas/SRC/ctbmv.f b/blas/src/ctbmv.f similarity index 100% rename from dspl/libblas/SRC/ctbmv.f rename to blas/src/ctbmv.f diff --git a/dspl/libblas/SRC/ctbsv.f b/blas/src/ctbsv.f similarity index 100% rename from dspl/libblas/SRC/ctbsv.f rename to blas/src/ctbsv.f diff --git a/dspl/libblas/SRC/ctpmv.f b/blas/src/ctpmv.f similarity index 100% rename from dspl/libblas/SRC/ctpmv.f rename to blas/src/ctpmv.f diff --git a/dspl/libblas/SRC/ctpsv.f b/blas/src/ctpsv.f similarity index 100% rename from dspl/libblas/SRC/ctpsv.f rename to blas/src/ctpsv.f diff --git a/dspl/libblas/SRC/ctrmm.f b/blas/src/ctrmm.f similarity index 100% rename from dspl/libblas/SRC/ctrmm.f rename to blas/src/ctrmm.f diff --git a/dspl/libblas/SRC/ctrmv.f b/blas/src/ctrmv.f similarity index 100% rename from dspl/libblas/SRC/ctrmv.f rename to blas/src/ctrmv.f diff --git a/dspl/libblas/SRC/ctrsm.f b/blas/src/ctrsm.f similarity index 100% rename from dspl/libblas/SRC/ctrsm.f rename to blas/src/ctrsm.f diff --git a/dspl/libblas/SRC/ctrsv.f b/blas/src/ctrsv.f similarity index 100% rename from dspl/libblas/SRC/ctrsv.f rename to blas/src/ctrsv.f diff --git a/dspl/libblas/SRC/dasum.f b/blas/src/dasum.f similarity index 100% rename from dspl/libblas/SRC/dasum.f rename to blas/src/dasum.f diff --git a/dspl/libblas/SRC/daxpy.f b/blas/src/daxpy.f similarity index 100% rename from dspl/libblas/SRC/daxpy.f rename to blas/src/daxpy.f diff --git a/dspl/libblas/SRC/dcabs1.f b/blas/src/dcabs1.f similarity index 100% rename from dspl/libblas/SRC/dcabs1.f rename to blas/src/dcabs1.f diff --git a/dspl/libblas/SRC/dcopy.f b/blas/src/dcopy.f similarity index 100% rename from dspl/libblas/SRC/dcopy.f rename to blas/src/dcopy.f diff --git a/dspl/libblas/SRC/ddot.f b/blas/src/ddot.f similarity index 100% rename from dspl/libblas/SRC/ddot.f rename to blas/src/ddot.f diff --git a/dspl/libblas/SRC/dgbmv.f b/blas/src/dgbmv.f similarity index 100% rename from dspl/libblas/SRC/dgbmv.f rename to blas/src/dgbmv.f diff --git a/dspl/libblas/SRC/dgemm.f b/blas/src/dgemm.f similarity index 100% rename from dspl/libblas/SRC/dgemm.f rename to blas/src/dgemm.f diff --git a/dspl/libblas/SRC/dgemv.f b/blas/src/dgemv.f similarity index 100% rename from dspl/libblas/SRC/dgemv.f rename to blas/src/dgemv.f diff --git a/dspl/libblas/SRC/dger.f b/blas/src/dger.f similarity index 100% rename from dspl/libblas/SRC/dger.f rename to blas/src/dger.f diff --git a/dspl/libblas/SRC/dnrm2.f b/blas/src/dnrm2.f similarity index 100% rename from dspl/libblas/SRC/dnrm2.f rename to blas/src/dnrm2.f diff --git a/dspl/libblas/SRC/drot.f b/blas/src/drot.f similarity index 100% rename from dspl/libblas/SRC/drot.f rename to blas/src/drot.f diff --git a/dspl/libblas/SRC/drotg.f b/blas/src/drotg.f similarity index 100% rename from dspl/libblas/SRC/drotg.f rename to blas/src/drotg.f diff --git a/dspl/libblas/SRC/drotm.f b/blas/src/drotm.f similarity index 100% rename from dspl/libblas/SRC/drotm.f rename to blas/src/drotm.f diff --git a/dspl/libblas/SRC/drotmg.f b/blas/src/drotmg.f similarity index 100% rename from dspl/libblas/SRC/drotmg.f rename to blas/src/drotmg.f diff --git a/dspl/libblas/SRC/dsbmv.f b/blas/src/dsbmv.f similarity index 100% rename from dspl/libblas/SRC/dsbmv.f rename to blas/src/dsbmv.f diff --git a/dspl/libblas/SRC/dscal.f b/blas/src/dscal.f similarity index 100% rename from dspl/libblas/SRC/dscal.f rename to blas/src/dscal.f diff --git a/dspl/libblas/SRC/dsdot.f b/blas/src/dsdot.f similarity index 100% rename from dspl/libblas/SRC/dsdot.f rename to blas/src/dsdot.f diff --git a/dspl/libblas/SRC/dspmv.f b/blas/src/dspmv.f similarity index 100% rename from dspl/libblas/SRC/dspmv.f rename to blas/src/dspmv.f diff --git a/dspl/libblas/SRC/dspr.f b/blas/src/dspr.f similarity index 100% rename from dspl/libblas/SRC/dspr.f rename to blas/src/dspr.f diff --git a/dspl/libblas/SRC/dspr2.f b/blas/src/dspr2.f similarity index 100% rename from dspl/libblas/SRC/dspr2.f rename to blas/src/dspr2.f diff --git a/dspl/libblas/SRC/dswap.f b/blas/src/dswap.f similarity index 100% rename from dspl/libblas/SRC/dswap.f rename to blas/src/dswap.f diff --git a/dspl/libblas/SRC/dsymm.f b/blas/src/dsymm.f similarity index 100% rename from dspl/libblas/SRC/dsymm.f rename to blas/src/dsymm.f diff --git a/dspl/libblas/SRC/dsymv.f b/blas/src/dsymv.f similarity index 100% rename from dspl/libblas/SRC/dsymv.f rename to blas/src/dsymv.f diff --git a/dspl/libblas/SRC/dsyr.f b/blas/src/dsyr.f similarity index 100% rename from dspl/libblas/SRC/dsyr.f rename to blas/src/dsyr.f diff --git a/dspl/libblas/SRC/dsyr2.f b/blas/src/dsyr2.f similarity index 100% rename from dspl/libblas/SRC/dsyr2.f rename to blas/src/dsyr2.f diff --git a/dspl/libblas/SRC/dsyr2k.f b/blas/src/dsyr2k.f similarity index 100% rename from dspl/libblas/SRC/dsyr2k.f rename to blas/src/dsyr2k.f diff --git a/dspl/libblas/SRC/dsyrk.f b/blas/src/dsyrk.f similarity index 100% rename from dspl/libblas/SRC/dsyrk.f rename to blas/src/dsyrk.f diff --git a/dspl/libblas/SRC/dtbmv.f b/blas/src/dtbmv.f similarity index 100% rename from dspl/libblas/SRC/dtbmv.f rename to blas/src/dtbmv.f diff --git a/dspl/libblas/SRC/dtbsv.f b/blas/src/dtbsv.f similarity index 100% rename from dspl/libblas/SRC/dtbsv.f rename to blas/src/dtbsv.f diff --git a/dspl/libblas/SRC/dtpmv.f b/blas/src/dtpmv.f similarity index 100% rename from dspl/libblas/SRC/dtpmv.f rename to blas/src/dtpmv.f diff --git a/dspl/libblas/SRC/dtpsv.f b/blas/src/dtpsv.f similarity index 100% rename from dspl/libblas/SRC/dtpsv.f rename to blas/src/dtpsv.f diff --git a/dspl/libblas/SRC/dtrmm.f b/blas/src/dtrmm.f similarity index 100% rename from dspl/libblas/SRC/dtrmm.f rename to blas/src/dtrmm.f diff --git a/dspl/libblas/SRC/dtrmv.f b/blas/src/dtrmv.f similarity index 100% rename from dspl/libblas/SRC/dtrmv.f rename to blas/src/dtrmv.f diff --git a/dspl/libblas/SRC/dtrsm.f b/blas/src/dtrsm.f similarity index 100% rename from dspl/libblas/SRC/dtrsm.f rename to blas/src/dtrsm.f diff --git a/dspl/libblas/SRC/dtrsv.f b/blas/src/dtrsv.f similarity index 100% rename from dspl/libblas/SRC/dtrsv.f rename to blas/src/dtrsv.f diff --git a/dspl/libblas/SRC/dzasum.f b/blas/src/dzasum.f similarity index 100% rename from dspl/libblas/SRC/dzasum.f rename to blas/src/dzasum.f diff --git a/dspl/libblas/SRC/dznrm2.f b/blas/src/dznrm2.f similarity index 100% rename from dspl/libblas/SRC/dznrm2.f rename to blas/src/dznrm2.f diff --git a/dspl/libblas/SRC/icamax.f b/blas/src/icamax.f similarity index 100% rename from dspl/libblas/SRC/icamax.f rename to blas/src/icamax.f diff --git a/dspl/libblas/SRC/idamax.f b/blas/src/idamax.f similarity index 100% rename from dspl/libblas/SRC/idamax.f rename to blas/src/idamax.f diff --git a/dspl/libblas/SRC/isamax.f b/blas/src/isamax.f similarity index 100% rename from dspl/libblas/SRC/isamax.f rename to blas/src/isamax.f diff --git a/dspl/libblas/SRC/izamax.f b/blas/src/izamax.f similarity index 100% rename from dspl/libblas/SRC/izamax.f rename to blas/src/izamax.f diff --git a/dspl/libblas/SRC/lsame.f b/blas/src/lsame.f similarity index 100% rename from dspl/libblas/SRC/lsame.f rename to blas/src/lsame.f diff --git a/dspl/libblas/SRC/make.inc b/blas/src/make.inc similarity index 100% rename from dspl/libblas/SRC/make.inc rename to blas/src/make.inc diff --git a/dspl/libblas/SRC/sasum.f b/blas/src/sasum.f similarity index 100% rename from dspl/libblas/SRC/sasum.f rename to blas/src/sasum.f diff --git a/dspl/libblas/SRC/saxpy.f b/blas/src/saxpy.f similarity index 100% rename from dspl/libblas/SRC/saxpy.f rename to blas/src/saxpy.f diff --git a/dspl/libblas/SRC/scabs1.f b/blas/src/scabs1.f similarity index 100% rename from dspl/libblas/SRC/scabs1.f rename to blas/src/scabs1.f diff --git a/dspl/libblas/SRC/scasum.f b/blas/src/scasum.f similarity index 100% rename from dspl/libblas/SRC/scasum.f rename to blas/src/scasum.f diff --git a/dspl/libblas/SRC/scnrm2.f b/blas/src/scnrm2.f similarity index 100% rename from dspl/libblas/SRC/scnrm2.f rename to blas/src/scnrm2.f diff --git a/dspl/libblas/SRC/scopy.f b/blas/src/scopy.f similarity index 100% rename from dspl/libblas/SRC/scopy.f rename to blas/src/scopy.f diff --git a/dspl/libblas/SRC/sdot.f b/blas/src/sdot.f similarity index 100% rename from dspl/libblas/SRC/sdot.f rename to blas/src/sdot.f diff --git a/dspl/libblas/SRC/sdsdot.f b/blas/src/sdsdot.f similarity index 100% rename from dspl/libblas/SRC/sdsdot.f rename to blas/src/sdsdot.f diff --git a/dspl/libblas/SRC/sgbmv.f b/blas/src/sgbmv.f similarity index 100% rename from dspl/libblas/SRC/sgbmv.f rename to blas/src/sgbmv.f diff --git a/dspl/libblas/SRC/sgemm.f b/blas/src/sgemm.f similarity index 100% rename from dspl/libblas/SRC/sgemm.f rename to blas/src/sgemm.f diff --git a/dspl/libblas/SRC/sgemv.f b/blas/src/sgemv.f similarity index 100% rename from dspl/libblas/SRC/sgemv.f rename to blas/src/sgemv.f diff --git a/dspl/libblas/SRC/sger.f b/blas/src/sger.f similarity index 100% rename from dspl/libblas/SRC/sger.f rename to blas/src/sger.f diff --git a/dspl/libblas/SRC/snrm2.f b/blas/src/snrm2.f similarity index 100% rename from dspl/libblas/SRC/snrm2.f rename to blas/src/snrm2.f diff --git a/dspl/libblas/SRC/srot.f b/blas/src/srot.f similarity index 100% rename from dspl/libblas/SRC/srot.f rename to blas/src/srot.f diff --git a/dspl/libblas/SRC/srotg.f b/blas/src/srotg.f similarity index 100% rename from dspl/libblas/SRC/srotg.f rename to blas/src/srotg.f diff --git a/dspl/libblas/SRC/srotm.f b/blas/src/srotm.f similarity index 100% rename from dspl/libblas/SRC/srotm.f rename to blas/src/srotm.f diff --git a/dspl/libblas/SRC/srotmg.f b/blas/src/srotmg.f similarity index 100% rename from dspl/libblas/SRC/srotmg.f rename to blas/src/srotmg.f diff --git a/dspl/libblas/SRC/ssbmv.f b/blas/src/ssbmv.f similarity index 100% rename from dspl/libblas/SRC/ssbmv.f rename to blas/src/ssbmv.f diff --git a/dspl/libblas/SRC/sscal.f b/blas/src/sscal.f similarity index 100% rename from dspl/libblas/SRC/sscal.f rename to blas/src/sscal.f diff --git a/dspl/libblas/SRC/sspmv.f b/blas/src/sspmv.f similarity index 100% rename from dspl/libblas/SRC/sspmv.f rename to blas/src/sspmv.f diff --git a/dspl/libblas/SRC/sspr.f b/blas/src/sspr.f similarity index 100% rename from dspl/libblas/SRC/sspr.f rename to blas/src/sspr.f diff --git a/dspl/libblas/SRC/sspr2.f b/blas/src/sspr2.f similarity index 100% rename from dspl/libblas/SRC/sspr2.f rename to blas/src/sspr2.f diff --git a/dspl/libblas/SRC/sswap.f b/blas/src/sswap.f similarity index 100% rename from dspl/libblas/SRC/sswap.f rename to blas/src/sswap.f diff --git a/dspl/libblas/SRC/ssymm.f b/blas/src/ssymm.f similarity index 100% rename from dspl/libblas/SRC/ssymm.f rename to blas/src/ssymm.f diff --git a/dspl/libblas/SRC/ssymv.f b/blas/src/ssymv.f similarity index 100% rename from dspl/libblas/SRC/ssymv.f rename to blas/src/ssymv.f diff --git a/dspl/libblas/SRC/ssyr.f b/blas/src/ssyr.f similarity index 100% rename from dspl/libblas/SRC/ssyr.f rename to blas/src/ssyr.f diff --git a/dspl/libblas/SRC/ssyr2.f b/blas/src/ssyr2.f similarity index 100% rename from dspl/libblas/SRC/ssyr2.f rename to blas/src/ssyr2.f diff --git a/dspl/libblas/SRC/ssyr2k.f b/blas/src/ssyr2k.f similarity index 100% rename from dspl/libblas/SRC/ssyr2k.f rename to blas/src/ssyr2k.f diff --git a/dspl/libblas/SRC/ssyrk.f b/blas/src/ssyrk.f similarity index 100% rename from dspl/libblas/SRC/ssyrk.f rename to blas/src/ssyrk.f diff --git a/dspl/libblas/SRC/stbmv.f b/blas/src/stbmv.f similarity index 100% rename from dspl/libblas/SRC/stbmv.f rename to blas/src/stbmv.f diff --git a/dspl/libblas/SRC/stbsv.f b/blas/src/stbsv.f similarity index 100% rename from dspl/libblas/SRC/stbsv.f rename to blas/src/stbsv.f diff --git a/dspl/libblas/SRC/stpmv.f b/blas/src/stpmv.f similarity index 100% rename from dspl/libblas/SRC/stpmv.f rename to blas/src/stpmv.f diff --git a/dspl/libblas/SRC/stpsv.f b/blas/src/stpsv.f similarity index 100% rename from dspl/libblas/SRC/stpsv.f rename to blas/src/stpsv.f diff --git a/dspl/libblas/SRC/strmm.f b/blas/src/strmm.f similarity index 100% rename from dspl/libblas/SRC/strmm.f rename to blas/src/strmm.f diff --git a/dspl/libblas/SRC/strmv.f b/blas/src/strmv.f similarity index 100% rename from dspl/libblas/SRC/strmv.f rename to blas/src/strmv.f diff --git a/dspl/libblas/SRC/strsm.f b/blas/src/strsm.f similarity index 100% rename from dspl/libblas/SRC/strsm.f rename to blas/src/strsm.f diff --git a/dspl/libblas/SRC/strsv.f b/blas/src/strsv.f similarity index 100% rename from dspl/libblas/SRC/strsv.f rename to blas/src/strsv.f diff --git a/dspl/libblas/SRC/xerbla.f b/blas/src/xerbla.f similarity index 100% rename from dspl/libblas/SRC/xerbla.f rename to blas/src/xerbla.f diff --git a/dspl/libblas/SRC/xerbla_array.f b/blas/src/xerbla_array.f similarity index 100% rename from dspl/libblas/SRC/xerbla_array.f rename to blas/src/xerbla_array.f diff --git a/dspl/libblas/SRC/zaxpy.f b/blas/src/zaxpy.f similarity index 100% rename from dspl/libblas/SRC/zaxpy.f rename to blas/src/zaxpy.f diff --git a/dspl/libblas/SRC/zcopy.f b/blas/src/zcopy.f similarity index 100% rename from dspl/libblas/SRC/zcopy.f rename to blas/src/zcopy.f diff --git a/dspl/libblas/SRC/zdotc.f b/blas/src/zdotc.f similarity index 100% rename from dspl/libblas/SRC/zdotc.f rename to blas/src/zdotc.f diff --git a/dspl/libblas/SRC/zdotu.f b/blas/src/zdotu.f similarity index 100% rename from dspl/libblas/SRC/zdotu.f rename to blas/src/zdotu.f diff --git a/dspl/libblas/SRC/zdrot.f b/blas/src/zdrot.f similarity index 100% rename from dspl/libblas/SRC/zdrot.f rename to blas/src/zdrot.f diff --git a/dspl/libblas/SRC/zdscal.f b/blas/src/zdscal.f similarity index 100% rename from dspl/libblas/SRC/zdscal.f rename to blas/src/zdscal.f diff --git a/dspl/libblas/SRC/zgbmv.f b/blas/src/zgbmv.f similarity index 100% rename from dspl/libblas/SRC/zgbmv.f rename to blas/src/zgbmv.f diff --git a/dspl/libblas/SRC/zgemm.f b/blas/src/zgemm.f similarity index 100% rename from dspl/libblas/SRC/zgemm.f rename to blas/src/zgemm.f diff --git a/dspl/libblas/SRC/zgemv.f b/blas/src/zgemv.f similarity index 100% rename from dspl/libblas/SRC/zgemv.f rename to blas/src/zgemv.f diff --git a/dspl/libblas/SRC/zgerc.f b/blas/src/zgerc.f similarity index 100% rename from dspl/libblas/SRC/zgerc.f rename to blas/src/zgerc.f diff --git a/dspl/libblas/SRC/zgeru.f b/blas/src/zgeru.f similarity index 100% rename from dspl/libblas/SRC/zgeru.f rename to blas/src/zgeru.f diff --git a/dspl/libblas/SRC/zhbmv.f b/blas/src/zhbmv.f similarity index 100% rename from dspl/libblas/SRC/zhbmv.f rename to blas/src/zhbmv.f diff --git a/dspl/libblas/SRC/zhemm.f b/blas/src/zhemm.f similarity index 100% rename from dspl/libblas/SRC/zhemm.f rename to blas/src/zhemm.f diff --git a/dspl/libblas/SRC/zhemv.f b/blas/src/zhemv.f similarity index 100% rename from dspl/libblas/SRC/zhemv.f rename to blas/src/zhemv.f diff --git a/dspl/libblas/SRC/zher.f b/blas/src/zher.f similarity index 100% rename from dspl/libblas/SRC/zher.f rename to blas/src/zher.f diff --git a/dspl/libblas/SRC/zher2.f b/blas/src/zher2.f similarity index 100% rename from dspl/libblas/SRC/zher2.f rename to blas/src/zher2.f diff --git a/dspl/libblas/SRC/zher2k.f b/blas/src/zher2k.f similarity index 100% rename from dspl/libblas/SRC/zher2k.f rename to blas/src/zher2k.f diff --git a/dspl/libblas/SRC/zherk.f b/blas/src/zherk.f similarity index 100% rename from dspl/libblas/SRC/zherk.f rename to blas/src/zherk.f diff --git a/dspl/libblas/SRC/zhpmv.f b/blas/src/zhpmv.f similarity index 100% rename from dspl/libblas/SRC/zhpmv.f rename to blas/src/zhpmv.f diff --git a/dspl/libblas/SRC/zhpr.f b/blas/src/zhpr.f similarity index 100% rename from dspl/libblas/SRC/zhpr.f rename to blas/src/zhpr.f diff --git a/dspl/libblas/SRC/zhpr2.f b/blas/src/zhpr2.f similarity index 100% rename from dspl/libblas/SRC/zhpr2.f rename to blas/src/zhpr2.f diff --git a/dspl/libblas/SRC/zrotg.f b/blas/src/zrotg.f similarity index 100% rename from dspl/libblas/SRC/zrotg.f rename to blas/src/zrotg.f diff --git a/dspl/libblas/SRC/zscal.f b/blas/src/zscal.f similarity index 100% rename from dspl/libblas/SRC/zscal.f rename to blas/src/zscal.f diff --git a/dspl/libblas/SRC/zswap.f b/blas/src/zswap.f similarity index 100% rename from dspl/libblas/SRC/zswap.f rename to blas/src/zswap.f diff --git a/dspl/libblas/SRC/zsymm.f b/blas/src/zsymm.f similarity index 100% rename from dspl/libblas/SRC/zsymm.f rename to blas/src/zsymm.f diff --git a/dspl/libblas/SRC/zsyr2k.f b/blas/src/zsyr2k.f similarity index 100% rename from dspl/libblas/SRC/zsyr2k.f rename to blas/src/zsyr2k.f diff --git a/dspl/libblas/SRC/zsyrk.f b/blas/src/zsyrk.f similarity index 100% rename from dspl/libblas/SRC/zsyrk.f rename to blas/src/zsyrk.f diff --git a/dspl/libblas/SRC/ztbmv.f b/blas/src/ztbmv.f similarity index 100% rename from dspl/libblas/SRC/ztbmv.f rename to blas/src/ztbmv.f diff --git a/dspl/libblas/SRC/ztbsv.f b/blas/src/ztbsv.f similarity index 100% rename from dspl/libblas/SRC/ztbsv.f rename to blas/src/ztbsv.f diff --git a/dspl/libblas/SRC/ztpmv.f b/blas/src/ztpmv.f similarity index 100% rename from dspl/libblas/SRC/ztpmv.f rename to blas/src/ztpmv.f diff --git a/dspl/libblas/SRC/ztpsv.f b/blas/src/ztpsv.f similarity index 100% rename from dspl/libblas/SRC/ztpsv.f rename to blas/src/ztpsv.f diff --git a/dspl/libblas/SRC/ztrmm.f b/blas/src/ztrmm.f similarity index 100% rename from dspl/libblas/SRC/ztrmm.f rename to blas/src/ztrmm.f diff --git a/dspl/libblas/SRC/ztrmv.f b/blas/src/ztrmv.f similarity index 100% rename from dspl/libblas/SRC/ztrmv.f rename to blas/src/ztrmv.f diff --git a/dspl/libblas/SRC/ztrsm.f b/blas/src/ztrsm.f similarity index 100% rename from dspl/libblas/SRC/ztrsm.f rename to blas/src/ztrsm.f diff --git a/dspl/libblas/SRC/ztrsv.f b/blas/src/ztrsv.f similarity index 100% rename from dspl/libblas/SRC/ztrsv.f rename to blas/src/ztrsv.f diff --git a/dspl.project.win.geany b/dspl.project.win.geany deleted file mode 100644 index 985c7f9..0000000 --- a/dspl.project.win.geany +++ /dev/null @@ -1,83 +0,0 @@ -[editor] -line_wrapping=false -line_break_column=72 -auto_continue_multiline=true - -[file_prefs] -final_new_line=true -ensure_convert_new_lines=false -strip_trailing_spaces=false -replace_tabs=false - -[indentation] -indent_width=2 -indent_type=0 -indent_hard_tab_width=8 -detect_indent=false -detect_indent_width=false -indent_mode=2 - -[project] -name=libdspl -base_path=./ -description= -file_patterns=*.*; - -[long line marker] -long_line_behaviour=1 -long_line_column=72 - -[files] -current_page=29 -FILE_NAME_0=463;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cexamples%5Csrc%5Ccheby_poly1_test.c;0;2 -FILE_NAME_1=507;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cexamples%5Csrc%5Ciir_test.c;0;2 -FILE_NAME_2=80;None;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cexamples%5Cbin%5Cgnuplot%5Ciir_test.plt;0;2 -FILE_NAME_3=1097;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Cru%5Ccontent%5Cfourier_series%5Cc%5Cfourier_series_dirichlet_ex.c;0;2 -FILE_NAME_4=2672;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Cru%5Ccontent%5Cfourier_series%5Cc%5Cfourier_series_pimp_spectrum.c;0;2 -FILE_NAME_5=0;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Cru%5Ccontent%5Cfourier_series%5Cc%5Cfourier_series_rec.c;0;2 -FILE_NAME_6=714;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Cdspl_src%5Carray.c;0;2 -FILE_NAME_7=163;C++;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Cdspl_src%5Cblas.h;0;2 -FILE_NAME_8=14081;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cinclude%5Cdspl.c;0;2 -FILE_NAME_9=0;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cexamples%5Csrc%5Cmatrix_print.c;0;2 -FILE_NAME_10=11081;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Cdspl_src%5Cfft_subkernel.c;0;2 -FILE_NAME_11=0;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Cdspl_src%5Cfillarray.c;0;2 -FILE_NAME_12=10893;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Cdspl_src%5Cfilter_an.c;0;2 -FILE_NAME_13=872;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Cdspl_src%5Cfilter_ap.c;0;2 -FILE_NAME_14=4563;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Cdspl_src%5Cfilter_fir.c;0;2 -FILE_NAME_15=888;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Cdspl_src%5Cfilter_ft.c;0;2 -FILE_NAME_16=5440;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Cdspl_src%5Cfilter_iir.c;0;2 -FILE_NAME_17=0;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Cdspl_src%5Cfourier_series.c;0;2 -FILE_NAME_18=0;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Cdspl_src%5Cgoertzel.c;0;2 -FILE_NAME_19=0;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Cdspl_src%5Cmath.c;0;2 -FILE_NAME_20=0;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Cdspl_src%5Cpolyval.c;0;2 -FILE_NAME_21=3739;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Cdspl_src%5Crandgen.c;0;2 -FILE_NAME_22=5368;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Cdspl_src%5Cmt19937.c;0;2 -FILE_NAME_23=48054;C++;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cinclude%5Cdspl.h;0;2 -FILE_NAME_24=2887;C++;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Cdspl_src%5Cmt19937.h;0;2 -FILE_NAME_25=623;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cexamples%5Csrc%5Cmatrix_eig.c;0;2 -FILE_NAME_26=490;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cverif%5Csrc%5Creadbin_verif.c;0;2 -FILE_NAME_27=361;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cexamples%5Csrc%5Cfilter_iir_test.c;0;2 -FILE_NAME_28=313;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cexamples%5Csrc%5Cdspl_info_test.c;0;2 -FILE_NAME_29=829;C;0;EUTF-8;0;1;0;F%3A%5Cdsplib.org%5Clibdspl-2.0%5Cdspl%5Cdspl_src%5Cinout.c;0;2 - -[build-menu] -NF_00_LB=_Собрать -NF_00_CM=mingw32-make -NF_00_WD=%p -NF_01_LB=Собрать заданную _цель... -NF_01_CM=mingw32-make -NF_01_WD=%p -NF_02_LB=Очистить -NF_02_CM=mingw32-make clean -NF_02_WD=%p -EX_00_LB=_Execute -EX_00_CM=%e.exe -EX_00_WD=%p/examples/bin - -[prjorg] -source_patterns=*.c;*.C;*.cpp;*.cxx;*.c++;*.cc;*.m; -header_patterns=*.h;*.H;*.hpp;*.hxx;*.h++;*.hh; -ignored_dirs_patterns=.*;CVS;libblas;liblapack; -ignored_file_patterns=*.o;*.obj;*.a;*.lib;*.so;*.dll;*.lo;*.la;*.class;*.jar;*.pyc;*.mo;*.gmo; -generate_tag_prefs=0 -external_dirs= diff --git a/dspl.workspace b/dspl.workspace new file mode 100644 index 0000000..e144e61 --- /dev/null +++ b/dspl.workspace @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/dspl.workspace.layout b/dspl.workspace.layout new file mode 100644 index 0000000..e3f450d --- /dev/null +++ b/dspl.workspace.layout @@ -0,0 +1,5 @@ + + + + + diff --git a/dspl.workspace.mak b/dspl.workspace.mak new file mode 100644 index 0000000..d4e1e1b --- /dev/null +++ b/dspl.workspace.mak @@ -0,0 +1,44 @@ +#------------------------------------------------------------------------------# +# This makefile was generated by 'cbp2make' tool rev.147 # +#------------------------------------------------------------------------------# + + +WRKDIR = %cd% +MAKE = mingw32-make + +all: blas_blas lapack_lapack_double lapack_lapack_complex dspl_dspl examples_examples + +blas_blas: + $(MAKE) -C blas all -f blas.cbp.mak + +lapack_lapack_double: + $(MAKE) -C lapack all -f lapack_double.cbp.mak + +lapack_lapack_complex: + $(MAKE) -C lapack all -f lapack_complex.cbp.mak + +dspl_dspl: blas_blas lapack_lapack_double lapack_lapack_complex + $(MAKE) -C dspl all -f dspl.cbp.mak + +examples_examples: dspl_dspl + $(MAKE) -C examples all -f examples.cbp.mak + +clean: clean_blas_blas clean_lapack_lapack_double clean_lapack_lapack_complex clean_dspl_dspl clean_examples_examples + +clean_blas_blas: + $(MAKE) -C blas clean -f blas.cbp.mak + +clean_lapack_lapack_double: + $(MAKE) -C lapack clean -f lapack_double.cbp.mak + +clean_lapack_lapack_complex: + $(MAKE) -C lapack clean -f lapack_complex.cbp.mak + +clean_dspl_dspl: + $(MAKE) -C dspl clean -f dspl.cbp.mak + +clean_examples_examples: + $(MAKE) -C examples clean -f examples.cbp.mak + +.PHONY: clean_blas_blas clean_lapack_lapack_double clean_lapack_lapack_complex clean_dspl_dspl clean_examples_examples + diff --git a/dspl/LICENSE b/dspl/LICENSE new file mode 100644 index 0000000..0a04128 --- /dev/null +++ b/dspl/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/Makefile.dspl b/dspl/Makefile similarity index 64% rename from Makefile.dspl rename to dspl/Makefile index 534ff84..90b82e2 100644 --- a/Makefile.dspl +++ b/dspl/Makefile @@ -1,35 +1,26 @@ - -include make.inc - - -# C-compiler flags -CFLAGS = -c -fPIC -Wall -O3 -I$(INC_DIR) -DBUILD_LIB -D$(DEF_OS) - -# DSPL src and obj files list -DSPL_SRC_FILES = $(wildcard $(DSPL_SRC_DIR)/*.c) -DSPL_OBJ_FILES = $(addprefix $(DSPL_OBJ_DIR)/,$(notdir $(DSPL_SRC_FILES:.c=.o))) - -all: $(RELEASE_DIR)/$(LIB_NAME) - - - -$(RELEASE_DIR)/$(LIB_NAME): $(DSPL_OBJ_FILES) $(BLAS_LIB_NAME) $(LAPACK_LIB_NAME) - $(CC) -shared -o $(RELEASE_DIR)/$(LIB_NAME) $(DSPL_OBJ_FILES) -lm -L$(LAPACK_LIB_DIR) -llapack -L$(BLAS_LIB_DIR) -lblas -lgfortran -lquadmath - - -$(DSPL_OBJ_DIR)/%.o:$(DSPL_SRC_DIR)/%.c - $(CC) $(CFLAGS) $< -o $@ -lm - -$(BLAS_LIB_NAME): - $(MAKE) -C $(BLAS_SRC_DIR) - -$(LAPACK_LIB_NAME): - $(MAKE) -C $(LAPACK_SRC_DIR) - - -clean: - rm -f $(DSPL_OBJ_DIR)/*.o - rm -f $(BLAS_OBJ_DIR)/*.o - rm -f $(BLAS_OBJ_DIR)/*.a - rm -f $(RELEASE_DIR)/$(LIB_NAME) - + +include ../make.inc + +# C-compiler flags +CFLAGS = -c -fPIC -Wall -O3 -I$(INC_DIR) -DBUILD_LIB -D$(DEF_OS) + +# DSPL src and obj files list +DSPL_SRC_FILES = $(wildcard $(DSPL_SRC_DIR)/*.c) +DSPL_OBJ_FILES = $(addprefix $(DSPL_OBJ_DIR)/,$(notdir $(DSPL_SRC_FILES:.c=.o))) + +all: $(RELEASE_DIR)/$(LIB_NAME) + + + +$(RELEASE_DIR)/$(LIB_NAME): $(DSPL_OBJ_FILES) $(BLAS_LIB_NAME) $(LAPACK_DOUBLE_LIB_NAME) $(LAPACK_COMPLEX_LIB_NAME) + $(CC) -shared -o $(RELEASE_DIR)/$(LIB_NAME) $(DSPL_OBJ_FILES) -lm -L$(LAPACK_RELEASE_DIR) -llapack_complex -llapack_double -L$(BLAS_RELEASE_DIR) -lblas -lgfortran -lquadmath + + +$(DSPL_OBJ_DIR)/%.o:$(DSPL_SRC_DIR)/%.c + $(CC) $(CFLAGS) $< -o $@ -lm + + +clean: + rm -f $(DSPL_OBJ_DIR)/*.o + rm -f $(RELEASE_DIR)/$(LIB_NAME) + diff --git a/dox/doxy_stylesheet.css b/dspl/dox/doxy_stylesheet.css similarity index 100% rename from dox/doxy_stylesheet.css rename to dspl/dox/doxy_stylesheet.css diff --git a/dox/doxyfile_ru b/dspl/dox/doxyfile_ru similarity index 100% rename from dox/doxyfile_ru rename to dspl/dox/doxyfile_ru diff --git a/dox/doxygen_style.css b/dspl/dox/doxygen_style.css similarity index 100% rename from dox/doxygen_style.css rename to dspl/dox/doxygen_style.css diff --git a/dox/footer.html b/dspl/dox/footer.html similarity index 100% rename from dox/footer.html rename to dspl/dox/footer.html diff --git a/dox/header.html b/dspl/dox/header.html similarity index 100% rename from dox/header.html rename to dspl/dox/header.html diff --git a/dox/makedoc.sh b/dspl/dox/makedoc.sh similarity index 100% rename from dox/makedoc.sh rename to dspl/dox/makedoc.sh diff --git a/dspl/dspl_dox/ru/array.dox b/dspl/dox/ru/array.dox similarity index 100% rename from dspl/dspl_dox/ru/array.dox rename to dspl/dox/ru/array.dox diff --git a/dspl/dspl_dox/ru/cheby.dox b/dspl/dox/ru/cheby.dox similarity index 100% rename from dspl/dspl_dox/ru/cheby.dox rename to dspl/dox/ru/cheby.dox diff --git a/dspl/dspl_dox/ru/complex.dox b/dspl/dox/ru/complex.dox similarity index 100% rename from dspl/dspl_dox/ru/complex.dox rename to dspl/dox/ru/complex.dox diff --git a/dspl/dspl_dox/ru/conv.dox b/dspl/dox/ru/conv.dox similarity index 100% rename from dspl/dspl_dox/ru/conv.dox rename to dspl/dox/ru/conv.dox diff --git a/dspl/dspl_dox/ru/dft.dox b/dspl/dox/ru/dft.dox similarity index 100% rename from dspl/dspl_dox/ru/dft.dox rename to dspl/dox/ru/dft.dox diff --git a/dspl/dspl_dox/ru/ellipj.dox b/dspl/dox/ru/ellipj.dox similarity index 100% rename from dspl/dspl_dox/ru/ellipj.dox rename to dspl/dox/ru/ellipj.dox diff --git a/dox/ru/error_list.dox b/dspl/dox/ru/error_list.dox similarity index 97% rename from dox/ru/error_list.dox rename to dspl/dox/ru/error_list.dox index c038525..722ccd6 100644 --- a/dox/ru/error_list.dox +++ b/dspl/dox/ru/error_list.dox @@ -1,115 +1,115 @@ - -/*! -\ingroup ERROR_CODE_GROUP -\def RES_OK -\brief Функция завершилась корректно. Ошибки отсутствуют. -*/ - - -/*! -\ingroup ERROR_CODE_GROUP -\def ERROR_ELLIP_K -\brief Модуль эллиптического интеграла Якоби должен быть от 0 до 1. -Данная ошибка возникает при расчете эллиптических функций Якоби при неверном задании параметра эллиптического модуля. -Функция завершает работу и возвращает данный код ошибки. -*/ - - -/*! -\ingroup ERROR_CODE_GROUP -\def ERROR_FFT_SIZE -\brief Неверно задан размер БПФ. -*/ - - -/*! -\ingroup ERROR_CODE_GROUP -\def ERROR_FILTER_ORD -\brief Порядок фильтра задан неверно. Порядок фильтра должен быть задан положительным целым значением. -*/ - - -/*! -\ingroup ERROR_CODE_GROUP -\def ERROR_FILTER_RP -\brief Параметр неравномерности фильтра в полосе пропускания задан неверно. -Данный параметр задается в дБ и должен быть положительным числом. -*/ - - - -/*! -\ingroup ERROR_CODE_GROUP -\def ERROR_FILTER_RS -\brief Параметр подавления фильтра в полосе заграждения задан неверно. -Данный параметр задается в дБ и должен быть положительным числом. -*/ - - - -/*! -\ingroup ERROR_CODE_GROUP -\def ERROR_FILTER_WP -\brief Параметр частоты среза фильтра задан неверно. -*/ - - - - -/*! -\ingroup ERROR_CODE_GROUP -\def ERROR_FILTER_A0 -\brief Коэффициент \f$a_0\f$ знаменателя передаточной функции фильтра равен нулю. -Необходимо задать параметр \f$a_0\f$ отличным от нуля. -*/ - - - - -/*! -\ingroup ERROR_CODE_GROUP -\def ERROR_FNAME -\brief Ошибка в имени файла. Необходимо задать корректное имя файла. -*/ - - - - -/*! -\ingroup ERROR_CODE_GROUP -\def ERROR_FOPEN -\brief Ошибка открытия файла. Файл с заданным именем не может быть открыт для записи и чтения. -*/ - - - - -/*! -\ingroup ERROR_CODE_GROUP -\def ERROR_FS -\brief Частота дискретизации задана неверно. Частота дискретизации должна быть положительным числом. -*/ - - -/*! -\ingroup ERROR_CODE_GROUP -\def ERROR_PTR -\brief Ошибка указателя. -Данная ошибка означает, что один из обязательных указателей -(память под который должна быть выделена) передан как `NULL`. -При возникновении данной ошибки, функция завершает работу -и возвращает данный код ошибки. -*/ - - - - -/*! -\ingroup ERROR_CODE_GROUP -\def ERROR_SIZE -\brief Ошибка при передаче размера массива. -Данная ошибка возникает когда помимо указателя -на массив входных или выходных данных передается неверный размер массива (меньше или равный нулю). -При возникновении данной ошибки, -функция завершает работу и возвращает данный код ошибки. -*/ + +/*! +\ingroup ERROR_CODE_GROUP +\def RES_OK +\brief Функция завершилась корректно. Ошибки отсутствуют. +*/ + + +/*! +\ingroup ERROR_CODE_GROUP +\def ERROR_ELLIP_K +\brief Модуль эллиптического интеграла Якоби должен быть от 0 до 1. +Данная ошибка возникает при расчете эллиптических функций Якоби при неверном задании параметра эллиптического модуля. +Функция завершает работу и возвращает данный код ошибки. +*/ + + +/*! +\ingroup ERROR_CODE_GROUP +\def ERROR_FFT_SIZE +\brief Неверно задан размер БПФ. +*/ + + +/*! +\ingroup ERROR_CODE_GROUP +\def ERROR_FILTER_ORD +\brief Порядок фильтра задан неверно. Порядок фильтра должен быть задан положительным целым значением. +*/ + + +/*! +\ingroup ERROR_CODE_GROUP +\def ERROR_FILTER_RP +\brief Параметр неравномерности фильтра в полосе пропускания задан неверно. +Данный параметр задается в дБ и должен быть положительным числом. +*/ + + + +/*! +\ingroup ERROR_CODE_GROUP +\def ERROR_FILTER_RS +\brief Параметр подавления фильтра в полосе заграждения задан неверно. +Данный параметр задается в дБ и должен быть положительным числом. +*/ + + + +/*! +\ingroup ERROR_CODE_GROUP +\def ERROR_FILTER_WP +\brief Параметр частоты среза фильтра задан неверно. +*/ + + + + +/*! +\ingroup ERROR_CODE_GROUP +\def ERROR_FILTER_A0 +\brief Коэффициент \f$a_0\f$ знаменателя передаточной функции фильтра равен нулю. +Необходимо задать параметр \f$a_0\f$ отличным от нуля. +*/ + + + + +/*! +\ingroup ERROR_CODE_GROUP +\def ERROR_FNAME +\brief Ошибка в имени файла. Необходимо задать корректное имя файла. +*/ + + + + +/*! +\ingroup ERROR_CODE_GROUP +\def ERROR_FOPEN +\brief Ошибка открытия файла. Файл с заданным именем не может быть открыт для записи и чтения. +*/ + + + + +/*! +\ingroup ERROR_CODE_GROUP +\def ERROR_FS +\brief Частота дискретизации задана неверно. Частота дискретизации должна быть положительным числом. +*/ + + +/*! +\ingroup ERROR_CODE_GROUP +\def ERROR_PTR +\brief Ошибка указателя. +Данная ошибка означает, что один из обязательных указателей +(память под который должна быть выделена) передан как `NULL`. +При возникновении данной ошибки, функция завершает работу +и возвращает данный код ошибки. +*/ + + + + +/*! +\ingroup ERROR_CODE_GROUP +\def ERROR_SIZE +\brief Ошибка при передаче размера массива. +Данная ошибка возникает когда помимо указателя +на массив входных или выходных данных передается неверный размер массива (меньше или равный нулю). +При возникновении данной ошибки, +функция завершает работу и возвращает данный код ошибки. +*/ diff --git a/dspl/dspl_dox/ru/fft.dox b/dspl/dox/ru/fft.dox similarity index 100% rename from dspl/dspl_dox/ru/fft.dox rename to dspl/dox/ru/fft.dox diff --git a/dspl/dspl_dox/ru/fillarray.dox b/dspl/dox/ru/fillarray.dox similarity index 100% rename from dspl/dspl_dox/ru/fillarray.dox rename to dspl/dox/ru/fillarray.dox diff --git a/dspl/dspl_dox/ru/filter_an.dox b/dspl/dox/ru/filter_an.dox similarity index 100% rename from dspl/dspl_dox/ru/filter_an.dox rename to dspl/dox/ru/filter_an.dox diff --git a/dspl/dspl_dox/ru/filter_ap.dox b/dspl/dox/ru/filter_ap.dox similarity index 100% rename from dspl/dspl_dox/ru/filter_ap.dox rename to dspl/dox/ru/filter_ap.dox diff --git a/dspl/dspl_dox/ru/filter_ft.dox b/dspl/dox/ru/filter_ft.dox similarity index 100% rename from dspl/dspl_dox/ru/filter_ft.dox rename to dspl/dox/ru/filter_ft.dox diff --git a/dspl/dspl_dox/ru/filter_iir.dox b/dspl/dox/ru/filter_iir.dox similarity index 100% rename from dspl/dspl_dox/ru/filter_iir.dox rename to dspl/dox/ru/filter_iir.dox diff --git a/dspl/dspl_dox/ru/fourier_series.dox b/dspl/dox/ru/fourier_series.dox similarity index 100% rename from dspl/dspl_dox/ru/fourier_series.dox rename to dspl/dox/ru/fourier_series.dox diff --git a/dox/ru/getting_started_mingw.dox b/dspl/dox/ru/getting_started_mingw.dox similarity index 100% rename from dox/ru/getting_started_mingw.dox rename to dspl/dox/ru/getting_started_mingw.dox diff --git a/dspl/dspl_dox/ru/goertzel.dox b/dspl/dox/ru/goertzel.dox similarity index 100% rename from dspl/dspl_dox/ru/goertzel.dox rename to dspl/dox/ru/goertzel.dox diff --git a/dox/ru/groups_define.dox b/dspl/dox/ru/groups_define.dox similarity index 100% rename from dox/ru/groups_define.dox rename to dspl/dox/ru/groups_define.dox diff --git a/dox/ru/img/compileproc.png b/dspl/dox/ru/img/compileproc.png similarity index 100% rename from dox/ru/img/compileproc.png rename to dspl/dox/ru/img/compileproc.png diff --git a/dox/ru/img/dspl_dir.png b/dspl/dox/ru/img/dspl_dir.png similarity index 100% rename from dox/ru/img/dspl_dir.png rename to dspl/dox/ru/img/dspl_dir.png diff --git a/dox/ru/img/dspl_exe.png b/dspl/dox/ru/img/dspl_exe.png similarity index 100% rename from dox/ru/img/dspl_exe.png rename to dspl/dox/ru/img/dspl_exe.png diff --git a/dox/ru/img/dspl_github.png b/dspl/dox/ru/img/dspl_github.png similarity index 100% rename from dox/ru/img/dspl_github.png rename to dspl/dox/ru/img/dspl_github.png diff --git a/dox/ru/img/far_manager.png b/dspl/dox/ru/img/far_manager.png similarity index 100% rename from dox/ru/img/far_manager.png rename to dspl/dox/ru/img/far_manager.png diff --git a/dox/ru/img/gcc_ver.png b/dspl/dox/ru/img/gcc_ver.png similarity index 100% rename from dox/ru/img/gcc_ver.png rename to dspl/dox/ru/img/gcc_ver.png diff --git a/dox/ru/img/gnuplot.png b/dspl/dox/ru/img/gnuplot.png similarity index 100% rename from dox/ru/img/gnuplot.png rename to dspl/dox/ru/img/gnuplot.png diff --git a/dox/ru/img/mingw_bin.png b/dspl/dox/ru/img/mingw_bin.png similarity index 100% rename from dox/ru/img/mingw_bin.png rename to dspl/dox/ru/img/mingw_bin.png diff --git a/dox/ru/img/path_1.png b/dspl/dox/ru/img/path_1.png similarity index 100% rename from dox/ru/img/path_1.png rename to dspl/dox/ru/img/path_1.png diff --git a/dox/ru/img/path_2.png b/dspl/dox/ru/img/path_2.png similarity index 100% rename from dox/ru/img/path_2.png rename to dspl/dox/ru/img/path_2.png diff --git a/dox/ru/img/path_3.png b/dspl/dox/ru/img/path_3.png similarity index 100% rename from dox/ru/img/path_3.png rename to dspl/dox/ru/img/path_3.png diff --git a/dox/ru/img/path_gnuplot.png b/dspl/dox/ru/img/path_gnuplot.png similarity index 100% rename from dox/ru/img/path_gnuplot.png rename to dspl/dox/ru/img/path_gnuplot.png diff --git a/dox/ru/img/path_old.png b/dspl/dox/ru/img/path_old.png similarity index 100% rename from dox/ru/img/path_old.png rename to dspl/dox/ru/img/path_old.png diff --git a/dox/ru/img/path_unx.png b/dspl/dox/ru/img/path_unx.png similarity index 100% rename from dox/ru/img/path_unx.png rename to dspl/dox/ru/img/path_unx.png diff --git a/dox/ru/img/unxutils.png b/dspl/dox/ru/img/unxutils.png similarity index 100% rename from dox/ru/img/unxutils.png rename to dspl/dox/ru/img/unxutils.png diff --git a/dox/ru/img/vs_build.png b/dspl/dox/ru/img/vs_build.png similarity index 100% rename from dox/ru/img/vs_build.png rename to dspl/dox/ru/img/vs_build.png diff --git a/dox/ru/img/vs_build_success.png b/dspl/dox/ru/img/vs_build_success.png similarity index 100% rename from dox/ru/img/vs_build_success.png rename to dspl/dox/ru/img/vs_build_success.png diff --git a/dox/ru/img/vs_output.png b/dspl/dox/ru/img/vs_output.png similarity index 100% rename from dox/ru/img/vs_output.png rename to dspl/dox/ru/img/vs_output.png diff --git a/dox/ru/img/vs_path.png b/dspl/dox/ru/img/vs_path.png similarity index 100% rename from dox/ru/img/vs_path.png rename to dspl/dox/ru/img/vs_path.png diff --git a/dox/ru/img/vs_run.png b/dspl/dox/ru/img/vs_run.png similarity index 100% rename from dox/ru/img/vs_run.png rename to dspl/dox/ru/img/vs_run.png diff --git a/dspl/dspl_dox/ru/inout.dox b/dspl/dox/ru/inout.dox similarity index 100% rename from dspl/dspl_dox/ru/inout.dox rename to dspl/dox/ru/inout.dox diff --git a/dox/ru/mainpage.dox b/dspl/dox/ru/mainpage.dox similarity index 97% rename from dox/ru/mainpage.dox rename to dspl/dox/ru/mainpage.dox index 80696f3..22ad105 100644 --- a/dox/ru/mainpage.dox +++ b/dspl/dox/ru/mainpage.dox @@ -1,58 +1,58 @@ - -/*! -\mainpage DSPL-2.0 - библиотека алгоритмов цифровой обработки сигналов. - -DSPL-2.0 - свободная библиотека алгоритмов цифровой обработки сигналов, -с открытым исходным кодом, написанная на языке Си.
- -Распространяется под лицензией -LGPL v3. -Это позволяет использовать данную библиотеку в закрытых приложения при -условии динамической линковки. - - -Исходные коды библиотеки доступны на -GitHub.
- -Вы также можете внести свой вклад в развитие данной библиотеки. Присоединяйтесь! - -Для начала работы с библиотекой необходимо ознакомиться с разделом: - - - -

-Содержание документации: -

- -\ref getting_started_windows_gcc
- -\ref TYPES_GROUP
- -Математические функции представлены следующими разделами:
-\ref SPEC_MATH_COMMON_GROUP
-\ref SPEC_MATH_TRIG_GROUP
-\ref SPEC_MATH_TRANSCEND
-\ref SPEC_MATH_ELLIP_GROUP
-\ref SPEC_MATH_RAND_GEN_GROUP
-\ref SPEC_MATH_STAT_GROUP
-\ref SPEC_MATH_LINALG_GROUP

- -Алгоритмы спектрального анализа:
-\ref DFT_GROUP
-\ref WIN_GROUP
-\ref HILBERT_GROUP
- -Расчет и анализ аналоговых и цифровых фильтров:
-\ref FILTER_CONV_GROUP
-\ref IIR_FILTER_DESIGN_GROUP
-\ref FIR_FILTER_DESIGN_GROUP
-\ref FILTER_ANALYSIS_GROUP
- -Прочие алгоритмы:
-\ref RESAMPLING_GROUP
-\ref IN_OUT_GROUP
- -
-\ref ERROR_CODE_GROUP
- -*/ + +/*! +\mainpage DSPL-2.0 - библиотека алгоритмов цифровой обработки сигналов. + +DSPL-2.0 - свободная библиотека алгоритмов цифровой обработки сигналов, +с открытым исходным кодом, написанная на языке Си.
+ +Распространяется под лицензией +LGPL v3. +Это позволяет использовать данную библиотеку в закрытых приложения при +условии динамической линковки. + + +Исходные коды библиотеки доступны на +GitHub.
+ +Вы также можете внести свой вклад в развитие данной библиотеки. Присоединяйтесь! + +Для начала работы с библиотекой необходимо ознакомиться с разделом: + + + +

+Содержание документации: +

+ +\ref getting_started_windows_gcc
+ +\ref TYPES_GROUP
+ +Математические функции представлены следующими разделами:
+\ref SPEC_MATH_COMMON_GROUP
+\ref SPEC_MATH_TRIG_GROUP
+\ref SPEC_MATH_TRANSCEND
+\ref SPEC_MATH_ELLIP_GROUP
+\ref SPEC_MATH_RAND_GEN_GROUP
+\ref SPEC_MATH_STAT_GROUP
+\ref SPEC_MATH_LINALG_GROUP

+ +Алгоритмы спектрального анализа:
+\ref DFT_GROUP
+\ref WIN_GROUP
+\ref HILBERT_GROUP
+ +Расчет и анализ аналоговых и цифровых фильтров:
+\ref FILTER_CONV_GROUP
+\ref IIR_FILTER_DESIGN_GROUP
+\ref FIR_FILTER_DESIGN_GROUP
+\ref FILTER_ANALYSIS_GROUP
+ +Прочие алгоритмы:
+\ref RESAMPLING_GROUP
+\ref IN_OUT_GROUP
+ +
+\ref ERROR_CODE_GROUP
+ +*/ diff --git a/dspl/dspl_dox/ru/math.dox b/dspl/dox/ru/math.dox similarity index 100% rename from dspl/dspl_dox/ru/math.dox rename to dspl/dox/ru/math.dox diff --git a/dspl/dspl_dox/ru/matrix.dox b/dspl/dox/ru/matrix.dox similarity index 100% rename from dspl/dspl_dox/ru/matrix.dox rename to dspl/dox/ru/matrix.dox diff --git a/dspl/dspl_dox/ru/polyval.dox b/dspl/dox/ru/polyval.dox similarity index 100% rename from dspl/dspl_dox/ru/polyval.dox rename to dspl/dox/ru/polyval.dox diff --git a/dspl/dspl_dox/ru/randgen.dox b/dspl/dox/ru/randgen.dox similarity index 100% rename from dspl/dspl_dox/ru/randgen.dox rename to dspl/dox/ru/randgen.dox diff --git a/dspl/dspl_dox/ru/resampling.dox b/dspl/dox/ru/resampling.dox similarity index 100% rename from dspl/dspl_dox/ru/resampling.dox rename to dspl/dox/ru/resampling.dox diff --git a/dspl/dspl_dox/ru/win.dox b/dspl/dox/ru/win.dox similarity index 100% rename from dspl/dspl_dox/ru/win.dox rename to dspl/dox/ru/win.dox diff --git a/dspl/dspl.cbp b/dspl/dspl.cbp new file mode 100644 index 0000000..6bbb3b3 --- /dev/null +++ b/dspl/dspl.cbp @@ -0,0 +1,152 @@ + + + + + + diff --git a/dspl/dspl.depend b/dspl/dspl.depend new file mode 100644 index 0000000..c4ac310 --- /dev/null +++ b/dspl/dspl.depend @@ -0,0 +1 @@ +# depslib dependency file v1.0 diff --git a/dspl/dspl.layout b/dspl/dspl.layout new file mode 100644 index 0000000..041c743 --- /dev/null +++ b/dspl/dspl.layout @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dspl/dspl_obj/.gitignore b/dspl/dspl_obj/.gitignore deleted file mode 100644 index d739953..0000000 --- a/dspl/dspl_obj/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -*.o -*.so -*.dll -*.exe -*.txt -*.dat -*.bin -*.csv \ No newline at end of file diff --git a/dspl/libblas/SRC/._Makefile b/dspl/libblas/SRC/._Makefile deleted file mode 100644 index d167b72c0eacaa2189ff8dc5e5666594abd446de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}@kSs9@gD;*Lx^ic2#CfF9795apt2wx zdw^ISO*P0gkT^dBgLra&u3ln6K~Ab(NNPoiYhH4GN@iX$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ccopy.f b/dspl/libblas/SRC/._ccopy.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._cdotc.f b/dspl/libblas/SRC/._cdotc.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._cdotu.f b/dspl/libblas/SRC/._cdotu.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._cgbmv.f b/dspl/libblas/SRC/._cgbmv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._cgemm.f b/dspl/libblas/SRC/._cgemm.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._cgemv.f b/dspl/libblas/SRC/._cgemv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._cgerc.f b/dspl/libblas/SRC/._cgerc.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._cgeru.f b/dspl/libblas/SRC/._cgeru.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._chbmv.f b/dspl/libblas/SRC/._chbmv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._chemm.f b/dspl/libblas/SRC/._chemm.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._chemv.f b/dspl/libblas/SRC/._chemv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._cher.f b/dspl/libblas/SRC/._cher.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._cher2.f b/dspl/libblas/SRC/._cher2.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._cher2k.f b/dspl/libblas/SRC/._cher2k.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._cherk.f b/dspl/libblas/SRC/._cherk.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._chpmv.f b/dspl/libblas/SRC/._chpmv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._chpr.f b/dspl/libblas/SRC/._chpr.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._chpr2.f b/dspl/libblas/SRC/._chpr2.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._crotg.f b/dspl/libblas/SRC/._crotg.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._cscal.f b/dspl/libblas/SRC/._cscal.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._csrot.f b/dspl/libblas/SRC/._csrot.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._csscal.f b/dspl/libblas/SRC/._csscal.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._cswap.f b/dspl/libblas/SRC/._cswap.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._csymm.f b/dspl/libblas/SRC/._csymm.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._csyr2k.f b/dspl/libblas/SRC/._csyr2k.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._csyrk.f b/dspl/libblas/SRC/._csyrk.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ctbmv.f b/dspl/libblas/SRC/._ctbmv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ctbsv.f b/dspl/libblas/SRC/._ctbsv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ctpmv.f b/dspl/libblas/SRC/._ctpmv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ctpsv.f b/dspl/libblas/SRC/._ctpsv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ctrmm.f b/dspl/libblas/SRC/._ctrmm.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ctrmv.f b/dspl/libblas/SRC/._ctrmv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ctrsm.f b/dspl/libblas/SRC/._ctrsm.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ctrsv.f b/dspl/libblas/SRC/._ctrsv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dasum.f b/dspl/libblas/SRC/._dasum.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._daxpy.f b/dspl/libblas/SRC/._daxpy.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dcabs1.f b/dspl/libblas/SRC/._dcabs1.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dcopy.f b/dspl/libblas/SRC/._dcopy.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ddot.f b/dspl/libblas/SRC/._ddot.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dgbmv.f b/dspl/libblas/SRC/._dgbmv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dgemm.f b/dspl/libblas/SRC/._dgemm.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dgemv.f b/dspl/libblas/SRC/._dgemv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dger.f b/dspl/libblas/SRC/._dger.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dnrm2.f b/dspl/libblas/SRC/._dnrm2.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._drot.f b/dspl/libblas/SRC/._drot.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._drotg.f b/dspl/libblas/SRC/._drotg.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._drotm.f b/dspl/libblas/SRC/._drotm.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._drotmg.f b/dspl/libblas/SRC/._drotmg.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dsbmv.f b/dspl/libblas/SRC/._dsbmv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dscal.f b/dspl/libblas/SRC/._dscal.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dsdot.f b/dspl/libblas/SRC/._dsdot.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dspmv.f b/dspl/libblas/SRC/._dspmv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dspr.f b/dspl/libblas/SRC/._dspr.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dspr2.f b/dspl/libblas/SRC/._dspr2.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dswap.f b/dspl/libblas/SRC/._dswap.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dsymm.f b/dspl/libblas/SRC/._dsymm.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dsymv.f b/dspl/libblas/SRC/._dsymv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dsyr.f b/dspl/libblas/SRC/._dsyr.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dsyr2.f b/dspl/libblas/SRC/._dsyr2.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dsyr2k.f b/dspl/libblas/SRC/._dsyr2k.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dsyrk.f b/dspl/libblas/SRC/._dsyrk.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dtbmv.f b/dspl/libblas/SRC/._dtbmv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dtbsv.f b/dspl/libblas/SRC/._dtbsv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dtpmv.f b/dspl/libblas/SRC/._dtpmv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dtpsv.f b/dspl/libblas/SRC/._dtpsv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dtrmm.f b/dspl/libblas/SRC/._dtrmm.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dtrmv.f b/dspl/libblas/SRC/._dtrmv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dtrsm.f b/dspl/libblas/SRC/._dtrsm.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dtrsv.f b/dspl/libblas/SRC/._dtrsv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dzasum.f b/dspl/libblas/SRC/._dzasum.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._dznrm2.f b/dspl/libblas/SRC/._dznrm2.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._icamax.f b/dspl/libblas/SRC/._icamax.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._idamax.f b/dspl/libblas/SRC/._idamax.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._isamax.f b/dspl/libblas/SRC/._isamax.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._izamax.f b/dspl/libblas/SRC/._izamax.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._lsame.f b/dspl/libblas/SRC/._lsame.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._make.inc b/dspl/libblas/SRC/._make.inc deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._sasum.f b/dspl/libblas/SRC/._sasum.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._saxpy.f b/dspl/libblas/SRC/._saxpy.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._scabs1.f b/dspl/libblas/SRC/._scabs1.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._scasum.f b/dspl/libblas/SRC/._scasum.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._scnrm2.f b/dspl/libblas/SRC/._scnrm2.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._scopy.f b/dspl/libblas/SRC/._scopy.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._sdot.f b/dspl/libblas/SRC/._sdot.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._sdsdot.f b/dspl/libblas/SRC/._sdsdot.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._sgbmv.f b/dspl/libblas/SRC/._sgbmv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._sgemm.f b/dspl/libblas/SRC/._sgemm.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._sgemv.f b/dspl/libblas/SRC/._sgemv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._sger.f b/dspl/libblas/SRC/._sger.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._snrm2.f b/dspl/libblas/SRC/._snrm2.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._srot.f b/dspl/libblas/SRC/._srot.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._srotg.f b/dspl/libblas/SRC/._srotg.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._srotm.f b/dspl/libblas/SRC/._srotm.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._srotmg.f b/dspl/libblas/SRC/._srotmg.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ssbmv.f b/dspl/libblas/SRC/._ssbmv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._sscal.f b/dspl/libblas/SRC/._sscal.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._sspmv.f b/dspl/libblas/SRC/._sspmv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._sspr.f b/dspl/libblas/SRC/._sspr.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._sspr2.f b/dspl/libblas/SRC/._sspr2.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._sswap.f b/dspl/libblas/SRC/._sswap.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ssymm.f b/dspl/libblas/SRC/._ssymm.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ssymv.f b/dspl/libblas/SRC/._ssymv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ssyr.f b/dspl/libblas/SRC/._ssyr.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ssyr2.f b/dspl/libblas/SRC/._ssyr2.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ssyr2k.f b/dspl/libblas/SRC/._ssyr2k.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ssyrk.f b/dspl/libblas/SRC/._ssyrk.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._stbmv.f b/dspl/libblas/SRC/._stbmv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._stbsv.f b/dspl/libblas/SRC/._stbsv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._stpmv.f b/dspl/libblas/SRC/._stpmv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._stpsv.f b/dspl/libblas/SRC/._stpsv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._strmm.f b/dspl/libblas/SRC/._strmm.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._strmv.f b/dspl/libblas/SRC/._strmv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._strsm.f b/dspl/libblas/SRC/._strsm.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._strsv.f b/dspl/libblas/SRC/._strsv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._xerbla.f b/dspl/libblas/SRC/._xerbla.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._xerbla_array.f b/dspl/libblas/SRC/._xerbla_array.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zaxpy.f b/dspl/libblas/SRC/._zaxpy.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zcopy.f b/dspl/libblas/SRC/._zcopy.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zdotc.f b/dspl/libblas/SRC/._zdotc.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zdotu.f b/dspl/libblas/SRC/._zdotu.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zdrot.f b/dspl/libblas/SRC/._zdrot.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zdscal.f b/dspl/libblas/SRC/._zdscal.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zgbmv.f b/dspl/libblas/SRC/._zgbmv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zgemm.f b/dspl/libblas/SRC/._zgemm.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zgemv.f b/dspl/libblas/SRC/._zgemv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zgerc.f b/dspl/libblas/SRC/._zgerc.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zgeru.f b/dspl/libblas/SRC/._zgeru.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zhbmv.f b/dspl/libblas/SRC/._zhbmv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zhemm.f b/dspl/libblas/SRC/._zhemm.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zhemv.f b/dspl/libblas/SRC/._zhemv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zher.f b/dspl/libblas/SRC/._zher.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zher2.f b/dspl/libblas/SRC/._zher2.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zher2k.f b/dspl/libblas/SRC/._zher2k.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zherk.f b/dspl/libblas/SRC/._zherk.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zhpmv.f b/dspl/libblas/SRC/._zhpmv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zhpr.f b/dspl/libblas/SRC/._zhpr.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zhpr2.f b/dspl/libblas/SRC/._zhpr2.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zrotg.f b/dspl/libblas/SRC/._zrotg.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zscal.f b/dspl/libblas/SRC/._zscal.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zswap.f b/dspl/libblas/SRC/._zswap.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zsymm.f b/dspl/libblas/SRC/._zsymm.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zsyr2k.f b/dspl/libblas/SRC/._zsyr2k.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._zsyrk.f b/dspl/libblas/SRC/._zsyrk.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ztbmv.f b/dspl/libblas/SRC/._ztbmv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ztbsv.f b/dspl/libblas/SRC/._ztbsv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ztpmv.f b/dspl/libblas/SRC/._ztpmv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ztpsv.f b/dspl/libblas/SRC/._ztpsv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ztrmm.f b/dspl/libblas/SRC/._ztrmm.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ztrmv.f b/dspl/libblas/SRC/._ztrmv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ztrsm.f b/dspl/libblas/SRC/._ztrsm.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/._ztrsv.f b/dspl/libblas/SRC/._ztrsv.f deleted file mode 100644 index f5c130cac2e64d7ccb98a5f430be796c7d5f93e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09tky A!~g&Q diff --git a/dspl/libblas/SRC/.gitignore b/dspl/libblas/SRC/.gitignore deleted file mode 100644 index 819556b..0000000 --- a/dspl/libblas/SRC/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -*.o -*.so -*.dll -*.exe -*.txt -*.dat -*.bin -*.csv -*.a \ No newline at end of file diff --git a/dspl/liblapack/INSTALL/.gitignore b/dspl/liblapack/INSTALL/.gitignore deleted file mode 100644 index 819556b..0000000 --- a/dspl/liblapack/INSTALL/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -*.o -*.so -*.dll -*.exe -*.txt -*.dat -*.bin -*.csv -*.a \ No newline at end of file diff --git a/dspl/liblapack/INSTALL/LAPACK_version.f b/dspl/liblapack/INSTALL/LAPACK_version.f deleted file mode 100644 index 0902e12..0000000 --- a/dspl/liblapack/INSTALL/LAPACK_version.f +++ /dev/null @@ -1,41 +0,0 @@ -*> \brief \b LAPACK_VERSION -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* PROGRAM LAPACK_VERSION -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date November 2017 -* -*> \ingroup auxOTHERauxiliary -* -* ===================================================================== - PROGRAM LAPACK_VERSION -* -* -- LAPACK auxiliary routine (version 3.8.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 -* - INTEGER MAJOR, MINOR, PATCH -* .. -* .. External Subroutines .. - EXTERNAL ILAVER -* - CALL ILAVER ( MAJOR, MINOR, PATCH ) - WRITE(*,*) "LAPACK ",MAJOR,".",MINOR,".",PATCH -* - END diff --git a/dspl/liblapack/INSTALL/Makefile b/dspl/liblapack/INSTALL/Makefile deleted file mode 100644 index 150a061..0000000 --- a/dspl/liblapack/INSTALL/Makefile +++ /dev/null @@ -1,50 +0,0 @@ -include ../make.inc - -all: testlsame testslamch testdlamch testsecond testdsecnd testieee testversion - -testlsame: lsame.o lsametst.o - $(LOADER) $(LOADOPTS) -o $@ $^ - -testslamch: slamch.o lsame.o slamchtst.o - $(LOADER) $(LOADOPTS) -o $@ $^ - -testdlamch: dlamch.o lsame.o dlamchtst.o - $(LOADER) $(LOADOPTS) -o $@ $^ - -testsecond: second_$(TIMER).o secondtst.o - @echo "[INFO] : TIMER value: $(TIMER) (given by make.inc)" - $(LOADER) $(LOADOPTS) -o $@ $^ - -testdsecnd: dsecnd_$(TIMER).o dsecndtst.o - @echo "[INFO] : TIMER value: $(TIMER) (given by make.inc)" - $(LOADER) $(LOADOPTS) -o $@ $^ - -testieee: tstiee.o - $(LOADER) $(LOADOPTS) -o $@ $^ - -testversion: ilaver.o LAPACK_version.o - $(LOADER) $(LOADOPTS) -o $@ $^ - -run: all - ./testlsame - ./testslamch - ./testdlamch - ./testsecond - ./testdsecnd - ./testieee - ./testversion - -clean: cleanobj cleanexe cleantest -cleanobj: - rm -f *.o -cleanexe: - rm -f test* -cleantest: - rm -f core - -.SUFFIXES: .o .f -.f.o: - $(FORTRAN) $(OPTS) -c -o $@ $< - -slamch.o: slamch.f ; $(FORTRAN) $(NOOPT) -c -o $@ $< -dlamch.o: dlamch.f ; $(FORTRAN) $(NOOPT) -c -o $@ $< diff --git a/dspl/liblapack/INSTALL/dlamchf77.f b/dspl/liblapack/INSTALL/dlamchf77.f deleted file mode 100644 index 3efd215..0000000 --- a/dspl/liblapack/INSTALL/dlamchf77.f +++ /dev/null @@ -1,919 +0,0 @@ -*> \brief \b DLAMCHF77 deprecated -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* DOUBLE PRECISION FUNCTION DLAMCH( CMACH ) -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> DLAMCHF77 determines double precision machine parameters. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] CMACH -*> \verbatim -*> Specifies the value to be returned by DLAMCH: -*> = 'E' or 'e', DLAMCH := eps -*> = 'S' or 's , DLAMCH := sfmin -*> = 'B' or 'b', DLAMCH := base -*> = 'P' or 'p', DLAMCH := eps*base -*> = 'N' or 'n', DLAMCH := t -*> = 'R' or 'r', DLAMCH := rnd -*> = 'M' or 'm', DLAMCH := emin -*> = 'U' or 'u', DLAMCH := rmin -*> = 'L' or 'l', DLAMCH := emax -*> = 'O' or 'o', DLAMCH := rmax -*> where -*> eps = relative machine precision -*> sfmin = safe minimum, such that 1/sfmin does not overflow -*> base = base of the machine -*> prec = eps*base -*> t = number of (base) digits in the mantissa -*> rnd = 1.0 when rounding occurs in addition, 0.0 otherwise -*> emin = minimum exponent before (gradual) underflow -*> rmin = underflow threshold - base**(emin-1) -*> emax = largest exponent before overflow -*> rmax = overflow threshold - (base**emax)*(1-eps) -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date April 2012 -* -*> \ingroup auxOTHERauxiliary -* -* ===================================================================== - DOUBLE PRECISION FUNCTION DLAMCH( CMACH ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* April 2012 -* -* .. Scalar Arguments .. - CHARACTER CMACH -* .. -* .. Parameters .. - DOUBLE PRECISION ONE, ZERO - PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) -* .. -* .. Local Scalars .. - LOGICAL FIRST, LRND - INTEGER BETA, IMAX, IMIN, IT - DOUBLE PRECISION BASE, EMAX, EMIN, EPS, PREC, RMACH, RMAX, RMIN, - $ RND, SFMIN, SMALL, T -* .. -* .. External Functions .. - LOGICAL LSAME - EXTERNAL LSAME -* .. -* .. External Subroutines .. - EXTERNAL DLAMC2 -* .. -* .. Save statement .. - SAVE FIRST, EPS, SFMIN, BASE, T, RND, EMIN, RMIN, - $ EMAX, RMAX, PREC -* .. -* .. Data statements .. - DATA FIRST / .TRUE. / -* .. -* .. Executable Statements .. -* - IF( FIRST ) THEN - CALL DLAMC2( BETA, IT, LRND, EPS, IMIN, RMIN, IMAX, RMAX ) - BASE = BETA - T = IT - IF( LRND ) THEN - RND = ONE - EPS = ( BASE**( 1-IT ) ) / 2 - ELSE - RND = ZERO - EPS = BASE**( 1-IT ) - END IF - PREC = EPS*BASE - EMIN = IMIN - EMAX = IMAX - SFMIN = RMIN - SMALL = ONE / RMAX - IF( SMALL.GE.SFMIN ) THEN -* -* Use SMALL plus a bit, to avoid the possibility of rounding -* causing overflow when computing 1/sfmin. -* - SFMIN = SMALL*( ONE+EPS ) - END IF - END IF -* - IF( LSAME( CMACH, 'E' ) ) THEN - RMACH = EPS - ELSE IF( LSAME( CMACH, 'S' ) ) THEN - RMACH = SFMIN - ELSE IF( LSAME( CMACH, 'B' ) ) THEN - RMACH = BASE - ELSE IF( LSAME( CMACH, 'P' ) ) THEN - RMACH = PREC - ELSE IF( LSAME( CMACH, 'N' ) ) THEN - RMACH = T - ELSE IF( LSAME( CMACH, 'R' ) ) THEN - RMACH = RND - ELSE IF( LSAME( CMACH, 'M' ) ) THEN - RMACH = EMIN - ELSE IF( LSAME( CMACH, 'U' ) ) THEN - RMACH = RMIN - ELSE IF( LSAME( CMACH, 'L' ) ) THEN - RMACH = EMAX - ELSE IF( LSAME( CMACH, 'O' ) ) THEN - RMACH = RMAX - END IF -* - DLAMCH = RMACH - FIRST = .FALSE. - RETURN -* -* End of DLAMCH -* - END -* -************************************************************************ -* -*> \brief \b DLAMC1 -*> \details -*> \b Purpose: -*> \verbatim -*> DLAMC1 determines the machine parameters given by BETA, T, RND, and -*> IEEE1. -*> \endverbatim -*> -*> \param[out] BETA -*> \verbatim -*> The base of the machine. -*> \endverbatim -*> -*> \param[out] T -*> \verbatim -*> The number of ( BETA ) digits in the mantissa. -*> \endverbatim -*> -*> \param[out] RND -*> \verbatim -*> Specifies whether proper rounding ( RND = .TRUE. ) or -*> chopping ( RND = .FALSE. ) occurs in addition. This may not -*> be a reliable guide to the way in which the machine performs -*> its arithmetic. -*> \endverbatim -*> -*> \param[out] IEEE1 -*> \verbatim -*> Specifies whether rounding appears to be done in the IEEE -*> 'round to nearest' style. -*> \endverbatim -*> \author LAPACK is a software package provided by Univ. of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd.. -*> \date April 2012 -*> \ingroup auxOTHERauxiliary -*> -*> \details \b Further \b Details -*> \verbatim -*> -*> The routine is based on the routine ENVRON by Malcolm and -*> incorporates suggestions by Gentleman and Marovich. See -*> -*> Malcolm M. A. (1972) Algorithms to reveal properties of -*> floating-point arithmetic. Comms. of the ACM, 15, 949-951. -*> -*> Gentleman W. M. and Marovich S. B. (1974) More on algorithms -*> that reveal properties of floating point arithmetic units. -*> Comms. of the ACM, 17, 276-277. -*> \endverbatim -*> - SUBROUTINE DLAMC1( BETA, T, RND, IEEE1 ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. -* November 2010 -* -* .. Scalar Arguments .. - LOGICAL IEEE1, RND - INTEGER BETA, T -* .. -* ===================================================================== -* -* .. Local Scalars .. - LOGICAL FIRST, LIEEE1, LRND - INTEGER LBETA, LT - DOUBLE PRECISION A, B, C, F, ONE, QTR, SAVEC, T1, T2 -* .. -* .. External Functions .. - DOUBLE PRECISION DLAMC3 - EXTERNAL DLAMC3 -* .. -* .. Save statement .. - SAVE FIRST, LIEEE1, LBETA, LRND, LT -* .. -* .. Data statements .. - DATA FIRST / .TRUE. / -* .. -* .. Executable Statements .. -* - IF( FIRST ) THEN - ONE = 1 -* -* LBETA, LIEEE1, LT and LRND are the local values of BETA, -* IEEE1, T and RND. -* -* Throughout this routine we use the function DLAMC3 to ensure -* that relevant values are stored and not held in registers, or -* are not affected by optimizers. -* -* Compute a = 2.0**m with the smallest positive integer m such -* that -* -* fl( a + 1.0 ) = a. -* - A = 1 - C = 1 -* -*+ WHILE( C.EQ.ONE )LOOP - 10 CONTINUE - IF( C.EQ.ONE ) THEN - A = 2*A - C = DLAMC3( A, ONE ) - C = DLAMC3( C, -A ) - GO TO 10 - END IF -*+ END WHILE -* -* Now compute b = 2.0**m with the smallest positive integer m -* such that -* -* fl( a + b ) .gt. a. -* - B = 1 - C = DLAMC3( A, B ) -* -*+ WHILE( C.EQ.A )LOOP - 20 CONTINUE - IF( C.EQ.A ) THEN - B = 2*B - C = DLAMC3( A, B ) - GO TO 20 - END IF -*+ END WHILE -* -* Now compute the base. a and c are neighbouring floating point -* numbers in the interval ( beta**t, beta**( t + 1 ) ) and so -* their difference is beta. Adding 0.25 to c is to ensure that it -* is truncated to beta and not ( beta - 1 ). -* - QTR = ONE / 4 - SAVEC = C - C = DLAMC3( C, -A ) - LBETA = C + QTR -* -* Now determine whether rounding or chopping occurs, by adding a -* bit less than beta/2 and a bit more than beta/2 to a. -* - B = LBETA - F = DLAMC3( B / 2, -B / 100 ) - C = DLAMC3( F, A ) - IF( C.EQ.A ) THEN - LRND = .TRUE. - ELSE - LRND = .FALSE. - END IF - F = DLAMC3( B / 2, B / 100 ) - C = DLAMC3( F, A ) - IF( ( LRND ) .AND. ( C.EQ.A ) ) - $ LRND = .FALSE. -* -* Try and decide whether rounding is done in the IEEE 'round to -* nearest' style. B/2 is half a unit in the last place of the two -* numbers A and SAVEC. Furthermore, A is even, i.e. has last bit -* zero, and SAVEC is odd. Thus adding B/2 to A should not change -* A, but adding B/2 to SAVEC should change SAVEC. -* - T1 = DLAMC3( B / 2, A ) - T2 = DLAMC3( B / 2, SAVEC ) - LIEEE1 = ( T1.EQ.A ) .AND. ( T2.GT.SAVEC ) .AND. LRND -* -* Now find the mantissa, t. It should be the integer part of -* log to the base beta of a, however it is safer to determine t -* by powering. So we find t as the smallest positive integer for -* which -* -* fl( beta**t + 1.0 ) = 1.0. -* - LT = 0 - A = 1 - C = 1 -* -*+ WHILE( C.EQ.ONE )LOOP - 30 CONTINUE - IF( C.EQ.ONE ) THEN - LT = LT + 1 - A = A*LBETA - C = DLAMC3( A, ONE ) - C = DLAMC3( C, -A ) - GO TO 30 - END IF -*+ END WHILE -* - END IF -* - BETA = LBETA - T = LT - RND = LRND - IEEE1 = LIEEE1 - FIRST = .FALSE. - RETURN -* -* End of DLAMC1 -* - END -* -************************************************************************ -* -*> \brief \b DLAMC2 -*> \details -*> \b Purpose: -*> \verbatim -*> DLAMC2 determines the machine parameters specified in its argument -*> list. -*> \endverbatim -*> \author LAPACK is a software package provided by Univ. of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd.. -*> \date April 2012 -*> \ingroup auxOTHERauxiliary -*> -*> \param[out] BETA -*> \verbatim -*> The base of the machine. -*> \endverbatim -*> -*> \param[out] T -*> \verbatim -*> The number of ( BETA ) digits in the mantissa. -*> \endverbatim -*> -*> \param[out] RND -*> \verbatim -*> Specifies whether proper rounding ( RND = .TRUE. ) or -*> chopping ( RND = .FALSE. ) occurs in addition. This may not -*> be a reliable guide to the way in which the machine performs -*> its arithmetic. -*> \endverbatim -*> -*> \param[out] EPS -*> \verbatim -*> The smallest positive number such that -*> fl( 1.0 - EPS ) .LT. 1.0, -*> where fl denotes the computed value. -*> \endverbatim -*> -*> \param[out] EMIN -*> \verbatim -*> The minimum exponent before (gradual) underflow occurs. -*> \endverbatim -*> -*> \param[out] RMIN -*> \verbatim -*> The smallest normalized number for the machine, given by -*> BASE**( EMIN - 1 ), where BASE is the floating point value -*> of BETA. -*> \endverbatim -*> -*> \param[out] EMAX -*> \verbatim -*> The maximum exponent before overflow occurs. -*> \endverbatim -*> -*> \param[out] RMAX -*> \verbatim -*> The largest positive number for the machine, given by -*> BASE**EMAX * ( 1 - EPS ), where BASE is the floating point -*> value of BETA. -*> \endverbatim -*> -*> \details \b Further \b Details -*> \verbatim -*> -*> The computation of EPS is based on a routine PARANOIA by -*> W. Kahan of the University of California at Berkeley. -*> \endverbatim - SUBROUTINE DLAMC2( BETA, T, RND, EPS, EMIN, RMIN, EMAX, RMAX ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. -* November 2010 -* -* .. Scalar Arguments .. - LOGICAL RND - INTEGER BETA, EMAX, EMIN, T - DOUBLE PRECISION EPS, RMAX, RMIN -* .. -* ===================================================================== -* -* .. Local Scalars .. - LOGICAL FIRST, IEEE, IWARN, LIEEE1, LRND - INTEGER GNMIN, GPMIN, I, LBETA, LEMAX, LEMIN, LT, - $ NGNMIN, NGPMIN - DOUBLE PRECISION A, B, C, HALF, LEPS, LRMAX, LRMIN, ONE, RBASE, - $ SIXTH, SMALL, THIRD, TWO, ZERO -* .. -* .. External Functions .. - DOUBLE PRECISION DLAMC3 - EXTERNAL DLAMC3 -* .. -* .. External Subroutines .. - EXTERNAL DLAMC1, DLAMC4, DLAMC5 -* .. -* .. Intrinsic Functions .. - INTRINSIC ABS, MAX, MIN -* .. -* .. Save statement .. - SAVE FIRST, IWARN, LBETA, LEMAX, LEMIN, LEPS, LRMAX, - $ LRMIN, LT -* .. -* .. Data statements .. - DATA FIRST / .TRUE. / , IWARN / .FALSE. / -* .. -* .. Executable Statements .. -* - IF( FIRST ) THEN - ZERO = 0 - ONE = 1 - TWO = 2 -* -* LBETA, LT, LRND, LEPS, LEMIN and LRMIN are the local values of -* BETA, T, RND, EPS, EMIN and RMIN. -* -* Throughout this routine we use the function DLAMC3 to ensure -* that relevant values are stored and not held in registers, or -* are not affected by optimizers. -* -* DLAMC1 returns the parameters LBETA, LT, LRND and LIEEE1. -* - CALL DLAMC1( LBETA, LT, LRND, LIEEE1 ) -* -* Start to find EPS. -* - B = LBETA - A = B**( -LT ) - LEPS = A -* -* Try some tricks to see whether or not this is the correct EPS. -* - B = TWO / 3 - HALF = ONE / 2 - SIXTH = DLAMC3( B, -HALF ) - THIRD = DLAMC3( SIXTH, SIXTH ) - B = DLAMC3( THIRD, -HALF ) - B = DLAMC3( B, SIXTH ) - B = ABS( B ) - IF( B.LT.LEPS ) - $ B = LEPS -* - LEPS = 1 -* -*+ WHILE( ( LEPS.GT.B ).AND.( B.GT.ZERO ) )LOOP - 10 CONTINUE - IF( ( LEPS.GT.B ) .AND. ( B.GT.ZERO ) ) THEN - LEPS = B - C = DLAMC3( HALF*LEPS, ( TWO**5 )*( LEPS**2 ) ) - C = DLAMC3( HALF, -C ) - B = DLAMC3( HALF, C ) - C = DLAMC3( HALF, -B ) - B = DLAMC3( HALF, C ) - GO TO 10 - END IF -*+ END WHILE -* - IF( A.LT.LEPS ) - $ LEPS = A -* -* Computation of EPS complete. -* -* Now find EMIN. Let A = + or - 1, and + or - (1 + BASE**(-3)). -* Keep dividing A by BETA until (gradual) underflow occurs. This -* is detected when we cannot recover the previous A. -* - RBASE = ONE / LBETA - SMALL = ONE - DO 20 I = 1, 3 - SMALL = DLAMC3( SMALL*RBASE, ZERO ) - 20 CONTINUE - A = DLAMC3( ONE, SMALL ) - CALL DLAMC4( NGPMIN, ONE, LBETA ) - CALL DLAMC4( NGNMIN, -ONE, LBETA ) - CALL DLAMC4( GPMIN, A, LBETA ) - CALL DLAMC4( GNMIN, -A, LBETA ) - IEEE = .FALSE. -* - IF( ( NGPMIN.EQ.NGNMIN ) .AND. ( GPMIN.EQ.GNMIN ) ) THEN - IF( NGPMIN.EQ.GPMIN ) THEN - LEMIN = NGPMIN -* ( Non twos-complement machines, no gradual underflow; -* e.g., VAX ) - ELSE IF( ( GPMIN-NGPMIN ).EQ.3 ) THEN - LEMIN = NGPMIN - 1 + LT - IEEE = .TRUE. -* ( Non twos-complement machines, with gradual underflow; -* e.g., IEEE standard followers ) - ELSE - LEMIN = MIN( NGPMIN, GPMIN ) -* ( A guess; no known machine ) - IWARN = .TRUE. - END IF -* - ELSE IF( ( NGPMIN.EQ.GPMIN ) .AND. ( NGNMIN.EQ.GNMIN ) ) THEN - IF( ABS( NGPMIN-NGNMIN ).EQ.1 ) THEN - LEMIN = MAX( NGPMIN, NGNMIN ) -* ( Twos-complement machines, no gradual underflow; -* e.g., CYBER 205 ) - ELSE - LEMIN = MIN( NGPMIN, NGNMIN ) -* ( A guess; no known machine ) - IWARN = .TRUE. - END IF -* - ELSE IF( ( ABS( NGPMIN-NGNMIN ).EQ.1 ) .AND. - $ ( GPMIN.EQ.GNMIN ) ) THEN - IF( ( GPMIN-MIN( NGPMIN, NGNMIN ) ).EQ.3 ) THEN - LEMIN = MAX( NGPMIN, NGNMIN ) - 1 + LT -* ( Twos-complement machines with gradual underflow; -* no known machine ) - ELSE - LEMIN = MIN( NGPMIN, NGNMIN ) -* ( A guess; no known machine ) - IWARN = .TRUE. - END IF -* - ELSE - LEMIN = MIN( NGPMIN, NGNMIN, GPMIN, GNMIN ) -* ( A guess; no known machine ) - IWARN = .TRUE. - END IF - FIRST = .FALSE. -*** -* Comment out this if block if EMIN is ok - IF( IWARN ) THEN - FIRST = .TRUE. - WRITE( 6, FMT = 9999 )LEMIN - END IF -*** -* -* Assume IEEE arithmetic if we found denormalised numbers above, -* or if arithmetic seems to round in the IEEE style, determined -* in routine DLAMC1. A true IEEE machine should have both things -* true; however, faulty machines may have one or the other. -* - IEEE = IEEE .OR. LIEEE1 -* -* Compute RMIN by successive division by BETA. We could compute -* RMIN as BASE**( EMIN - 1 ), but some machines underflow during -* this computation. -* - LRMIN = 1 - DO 30 I = 1, 1 - LEMIN - LRMIN = DLAMC3( LRMIN*RBASE, ZERO ) - 30 CONTINUE -* -* Finally, call DLAMC5 to compute EMAX and RMAX. -* - CALL DLAMC5( LBETA, LT, LEMIN, IEEE, LEMAX, LRMAX ) - END IF -* - BETA = LBETA - T = LT - RND = LRND - EPS = LEPS - EMIN = LEMIN - RMIN = LRMIN - EMAX = LEMAX - RMAX = LRMAX -* - RETURN -* - 9999 FORMAT( / / ' WARNING. The value EMIN may be incorrect:-', - $ ' EMIN = ', I8, / - $ ' If, after inspection, the value EMIN looks', - $ ' acceptable please comment out ', - $ / ' the IF block as marked within the code of routine', - $ ' DLAMC2,', / ' otherwise supply EMIN explicitly.', / ) -* -* End of DLAMC2 -* - END -* -************************************************************************ -* -*> \brief \b DLAMC3 -*> \details -*> \b Purpose: -*> \verbatim -*> DLAMC3 is intended to force A and B to be stored prior to doing -*> the addition of A and B , for use in situations where optimizers -*> might hold one of these in a register. -*> \endverbatim -*> -*> \param[in] A -*> -*> \param[in] B -*> \verbatim -*> The values A and B. -*> \endverbatim - - DOUBLE PRECISION FUNCTION DLAMC3( A, B ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. -* November 2010 -* -* .. Scalar Arguments .. - DOUBLE PRECISION A, B -* .. -* ===================================================================== -* -* .. Executable Statements .. -* - DLAMC3 = A + B -* - RETURN -* -* End of DLAMC3 -* - END -* -************************************************************************ -* -*> \brief \b DLAMC4 -*> \details -*> \b Purpose: -*> \verbatim -*> DLAMC4 is a service routine for DLAMC2. -*> \endverbatim -*> -*> \param[out] EMIN -*> \verbatim -*> The minimum exponent before (gradual) underflow, computed by -*> setting A = START and dividing by BASE until the previous A -*> can not be recovered. -*> \endverbatim -*> -*> \param[in] START -*> \verbatim -*> The starting point for determining EMIN. -*> \endverbatim -*> -*> \param[in] BASE -*> \verbatim -*> The base of the machine. -*> \endverbatim -*> - SUBROUTINE DLAMC4( EMIN, START, BASE ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. -* November 2010 -* -* .. Scalar Arguments .. - INTEGER BASE, EMIN - DOUBLE PRECISION START -* .. -* ===================================================================== -* -* .. Local Scalars .. - INTEGER I - DOUBLE PRECISION A, B1, B2, C1, C2, D1, D2, ONE, RBASE, ZERO -* .. -* .. External Functions .. - DOUBLE PRECISION DLAMC3 - EXTERNAL DLAMC3 -* .. -* .. Executable Statements .. -* - A = START - ONE = 1 - RBASE = ONE / BASE - ZERO = 0 - EMIN = 1 - B1 = DLAMC3( A*RBASE, ZERO ) - C1 = A - C2 = A - D1 = A - D2 = A -*+ WHILE( ( C1.EQ.A ).AND.( C2.EQ.A ).AND. -* $ ( D1.EQ.A ).AND.( D2.EQ.A ) )LOOP - 10 CONTINUE - IF( ( C1.EQ.A ) .AND. ( C2.EQ.A ) .AND. ( D1.EQ.A ) .AND. - $ ( D2.EQ.A ) ) THEN - EMIN = EMIN - 1 - A = B1 - B1 = DLAMC3( A / BASE, ZERO ) - C1 = DLAMC3( B1*BASE, ZERO ) - D1 = ZERO - DO 20 I = 1, BASE - D1 = D1 + B1 - 20 CONTINUE - B2 = DLAMC3( A*RBASE, ZERO ) - C2 = DLAMC3( B2 / RBASE, ZERO ) - D2 = ZERO - DO 30 I = 1, BASE - D2 = D2 + B2 - 30 CONTINUE - GO TO 10 - END IF -*+ END WHILE -* - RETURN -* -* End of DLAMC4 -* - END -* -************************************************************************ -* -*> \brief \b DLAMC5 -*> \details -*> \b Purpose: -*> \verbatim -*> DLAMC5 attempts to compute RMAX, the largest machine floating-point -*> number, without overflow. It assumes that EMAX + abs(EMIN) sum -*> approximately to a power of 2. It will fail on machines where this -*> assumption does not hold, for example, the Cyber 205 (EMIN = -28625, -*> EMAX = 28718). It will also fail if the value supplied for EMIN is -*> too large (i.e. too close to zero), probably with overflow. -*> \endverbatim -*> -*> \param[in] BETA -*> \verbatim -*> The base of floating-point arithmetic. -*> \endverbatim -*> -*> \param[in] P -*> \verbatim -*> The number of base BETA digits in the mantissa of a -*> floating-point value. -*> \endverbatim -*> -*> \param[in] EMIN -*> \verbatim -*> The minimum exponent before (gradual) underflow. -*> \endverbatim -*> -*> \param[in] IEEE -*> \verbatim -*> A logical flag specifying whether or not the arithmetic -*> system is thought to comply with the IEEE standard. -*> \endverbatim -*> -*> \param[out] EMAX -*> \verbatim -*> The largest exponent before overflow -*> \endverbatim -*> -*> \param[out] RMAX -*> \verbatim -*> The largest machine floating-point number. -*> \endverbatim -*> - SUBROUTINE DLAMC5( BETA, P, EMIN, IEEE, EMAX, RMAX ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. -* November 2010 -* -* .. Scalar Arguments .. - LOGICAL IEEE - INTEGER BETA, EMAX, EMIN, P - DOUBLE PRECISION RMAX -* .. -* ===================================================================== -* -* .. Parameters .. - DOUBLE PRECISION ZERO, ONE - PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 ) -* .. -* .. Local Scalars .. - INTEGER EXBITS, EXPSUM, I, LEXP, NBITS, TRY, UEXP - DOUBLE PRECISION OLDY, RECBAS, Y, Z -* .. -* .. External Functions .. - DOUBLE PRECISION DLAMC3 - EXTERNAL DLAMC3 -* .. -* .. Intrinsic Functions .. - INTRINSIC MOD -* .. -* .. Executable Statements .. -* -* First compute LEXP and UEXP, two powers of 2 that bound -* abs(EMIN). We then assume that EMAX + abs(EMIN) will sum -* approximately to the bound that is closest to abs(EMIN). -* (EMAX is the exponent of the required number RMAX). -* - LEXP = 1 - EXBITS = 1 - 10 CONTINUE - TRY = LEXP*2 - IF( TRY.LE.( -EMIN ) ) THEN - LEXP = TRY - EXBITS = EXBITS + 1 - GO TO 10 - END IF - IF( LEXP.EQ.-EMIN ) THEN - UEXP = LEXP - ELSE - UEXP = TRY - EXBITS = EXBITS + 1 - END IF -* -* Now -LEXP is less than or equal to EMIN, and -UEXP is greater -* than or equal to EMIN. EXBITS is the number of bits needed to -* store the exponent. -* - IF( ( UEXP+EMIN ).GT.( -LEXP-EMIN ) ) THEN - EXPSUM = 2*LEXP - ELSE - EXPSUM = 2*UEXP - END IF -* -* EXPSUM is the exponent range, approximately equal to -* EMAX - EMIN + 1 . -* - EMAX = EXPSUM + EMIN - 1 - NBITS = 1 + EXBITS + P -* -* NBITS is the total number of bits needed to store a -* floating-point number. -* - IF( ( MOD( NBITS, 2 ).EQ.1 ) .AND. ( BETA.EQ.2 ) ) THEN -* -* Either there are an odd number of bits used to store a -* floating-point number, which is unlikely, or some bits are -* not used in the representation of numbers, which is possible, -* (e.g. Cray machines) or the mantissa has an implicit bit, -* (e.g. IEEE machines, Dec Vax machines), which is perhaps the -* most likely. We have to assume the last alternative. -* If this is true, then we need to reduce EMAX by one because -* there must be some way of representing zero in an implicit-bit -* system. On machines like Cray, we are reducing EMAX by one -* unnecessarily. -* - EMAX = EMAX - 1 - END IF -* - IF( IEEE ) THEN -* -* Assume we are on an IEEE machine which reserves one exponent -* for infinity and NaN. -* - EMAX = EMAX - 1 - END IF -* -* Now create RMAX, the largest machine number, which should -* be equal to (1.0 - BETA**(-P)) * BETA**EMAX . -* -* First compute 1.0 - BETA**(-P), being careful that the -* result is less than 1.0 . -* - RECBAS = ONE / BETA - Z = BETA - ONE - Y = ZERO - DO 20 I = 1, P - Z = Z*RECBAS - IF( Y.LT.ONE ) - $ OLDY = Y - Y = DLAMC3( Y, Z ) - 20 CONTINUE - IF( Y.GE.ONE ) - $ Y = OLDY -* -* Now multiply by BETA**EMAX to get RMAX. -* - DO 30 I = 1, EMAX - Y = DLAMC3( Y*BETA, ZERO ) - 30 CONTINUE -* - RMAX = Y - RETURN -* -* End of DLAMC5 -* - END diff --git a/dspl/liblapack/INSTALL/dlamchtst.f b/dspl/liblapack/INSTALL/dlamchtst.f deleted file mode 100644 index 7395688..0000000 --- a/dspl/liblapack/INSTALL/dlamchtst.f +++ /dev/null @@ -1,67 +0,0 @@ -*> \brief \b DLAMCHTST -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* PROGRAM DLAMCHTST -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup auxOTHERauxiliary -* -* ===================================================================== PROGRAM DLAMCHTST -* -* -- LAPACK test routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* ===================================================================== -* -* .. Local Scalars .. - DOUBLE PRECISION BASE, EMAX, EMIN, EPS, PREC, RMAX, RMIN, RND, - $ SFMIN, T -* .. -* .. External Functions .. - DOUBLE PRECISION DLAMCH - EXTERNAL DLAMCH -* .. -* .. Executable Statements .. -* - EPS = DLAMCH( 'Epsilon' ) - SFMIN = DLAMCH( 'Safe minimum' ) - BASE = DLAMCH( 'Base' ) - PREC = DLAMCH( 'Precision' ) - T = DLAMCH( 'Number of digits in mantissa' ) - RND = DLAMCH( 'Rounding mode' ) - EMIN = DLAMCH( 'Minimum exponent' ) - RMIN = DLAMCH( 'Underflow threshold' ) - EMAX = DLAMCH( 'Largest exponent' ) - RMAX = DLAMCH( 'Overflow threshold' ) -* - WRITE( 6, * )' Epsilon = ', EPS - WRITE( 6, * )' Safe minimum = ', SFMIN - WRITE( 6, * )' Base = ', BASE - WRITE( 6, * )' Precision = ', PREC - WRITE( 6, * )' Number of digits in mantissa = ', T - WRITE( 6, * )' Rounding mode = ', RND - WRITE( 6, * )' Minimum exponent = ', EMIN - WRITE( 6, * )' Underflow threshold = ', RMIN - WRITE( 6, * )' Largest exponent = ', EMAX - WRITE( 6, * )' Overflow threshold = ', RMAX - WRITE( 6, * )' Reciprocal of safe minimum = ', 1 / SFMIN -* - END diff --git a/dspl/liblapack/INSTALL/dsecnd_EXT_ETIME.f b/dspl/liblapack/INSTALL/dsecnd_EXT_ETIME.f deleted file mode 100644 index 3537764..0000000 --- a/dspl/liblapack/INSTALL/dsecnd_EXT_ETIME.f +++ /dev/null @@ -1,64 +0,0 @@ -*> \brief \b DSECND Using ETIME -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* DOUBLE PRECISION FUNCTION DSECND( ) -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> DSECND returns the user time for a process in seconds. -*> This version gets the time from the EXTERNAL system function ETIME. -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup auxOTHERauxiliary -* -* ===================================================================== - DOUBLE PRECISION FUNCTION DSECND( ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* -* ===================================================================== -* -* .. Local Scalars .. - REAL T1 -* .. -* .. Local Arrays .. - REAL TARRAY( 2 ) -* .. -* .. External Functions .. - REAL ETIME - EXTERNAL ETIME -* .. -* .. Executable Statements .. -* - T1 = ETIME( TARRAY ) - DSECND = TARRAY( 1 ) - RETURN -* -* End of DSECND -* - END diff --git a/dspl/liblapack/INSTALL/dsecnd_EXT_ETIME_.f b/dspl/liblapack/INSTALL/dsecnd_EXT_ETIME_.f deleted file mode 100644 index d0a3945..0000000 --- a/dspl/liblapack/INSTALL/dsecnd_EXT_ETIME_.f +++ /dev/null @@ -1,61 +0,0 @@ -*> \brief \b DSECND Using ETIME_ -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* DOUBLE PRECISION FUNCTION DSECND( ) -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> DSECND returns the user time for a process in seconds. -*> This version gets the time from the system function ETIME_. -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup auxOTHERauxiliary -* -* ===================================================================== - DOUBLE PRECISION FUNCTION DSECND( ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. -* February 2007 -* ===================================================================== -* -* .. Local Scalars .. - REAL T1 -* .. -* .. Local Arrays .. - REAL TARRAY( 2 ) -* .. -* .. External Functions .. - REAL ETIME_ - EXTERNAL ETIME_ -* .. -* .. Executable Statements .. -* - T1 = ETIME_( TARRAY ) - DSECND = TARRAY( 1 ) - RETURN -* -* End of DSECND -* - END diff --git a/dspl/liblapack/INSTALL/dsecnd_INT_CPU_TIME.f b/dspl/liblapack/INSTALL/dsecnd_INT_CPU_TIME.f deleted file mode 100644 index 26f8cb1..0000000 --- a/dspl/liblapack/INSTALL/dsecnd_INT_CPU_TIME.f +++ /dev/null @@ -1,61 +0,0 @@ -*> \brief \b DSECND Using INTERNAL function CPU_TIME. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* DOUBLE PRECISION FUNCTION DSECND( ) -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> DSECND returns the user time for a process in seconds. -*> This version gets the time from the INTERNAL function CPU_TIME. -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup auxOTHERauxiliary -* -* ===================================================================== - DOUBLE PRECISION FUNCTION DSECND( ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* ===================================================================== -* -* .. Local Scalars .. -* - REAL T -* -* .. Intrinsic Functions .. -* - INTRINSIC CPU_TIME -* -* .. Executable Statements .. * -* - CALL CPU_TIME( T ) - DSECND = T - RETURN -* -* End of DSECND -* - END diff --git a/dspl/liblapack/INSTALL/dsecnd_INT_ETIME.f b/dspl/liblapack/INSTALL/dsecnd_INT_ETIME.f deleted file mode 100644 index 22df7b4..0000000 --- a/dspl/liblapack/INSTALL/dsecnd_INT_ETIME.f +++ /dev/null @@ -1,63 +0,0 @@ -*> \brief \b DSECND Using the INTERNAL function ETIME. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* DOUBLE PRECISION FUNCTION DSECND( ) -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> DSECND returns the user time for a process in seconds. -*> This version gets the time from the INTERNAL function ETIME. -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup auxOTHERauxiliary -* -* ===================================================================== - DOUBLE PRECISION FUNCTION DSECND( ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* ===================================================================== -* -* .. Local Scalars .. - REAL T1 -* .. -* .. Local Arrays .. - REAL TARRAY( 2 ) -* .. -* .. Intrinsic Functions .. - REAL ETIME - INTRINSIC ETIME -* .. -* .. Executable Statements .. -* - T1 = ETIME( TARRAY ) - DSECND = TARRAY( 1 ) - RETURN -* -* End of DSECND -* - END diff --git a/dspl/liblapack/INSTALL/dsecnd_NONE.f b/dspl/liblapack/INSTALL/dsecnd_NONE.f deleted file mode 100644 index 7635a96..0000000 --- a/dspl/liblapack/INSTALL/dsecnd_NONE.f +++ /dev/null @@ -1,52 +0,0 @@ -*> \brief \b DSECND returns nothing -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* DOUBLE PRECISION FUNCTION DSECND( ) -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> DSECND returns nothing instead of returning the user time for a process in seconds. -*> If you are using that routine, it means that neither EXTERNAL ETIME, -*> EXTERNAL ETIME_, INTERNAL ETIME, INTERNAL CPU_TIME is available on -*> your machine. -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup auxOTHERauxiliary -* -* ===================================================================== - DOUBLE PRECISION FUNCTION DSECND( ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* ===================================================================== -* - DSECND = 0.0D+0 - RETURN -* -* End of DSECND -* - END diff --git a/dspl/liblapack/INSTALL/dsecndtst.f b/dspl/liblapack/INSTALL/dsecndtst.f deleted file mode 100644 index 430a46a..0000000 --- a/dspl/liblapack/INSTALL/dsecndtst.f +++ /dev/null @@ -1,127 +0,0 @@ -*> \brief \b DSECNDTST -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* PROGRAM DSECNDTST -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date November 2017 -* -*> \ingroup auxOTHERauxiliary -* -* ===================================================================== PROGRAM DSECNDTST -* -* -- LAPACK test routine (version 3.8.0) -- -* -* -- LAPACK computational routine (version 3.8.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 -* -* ===================================================================== -* -* .. Parameters .. - INTEGER NMAX, ITS - PARAMETER ( NMAX = 1000, ITS = 50000 ) -* .. -* .. Local Scalars .. - INTEGER I, J - DOUBLE PRECISION ALPHA, AVG, T1, T2, TNOSEC, TOTAL -* .. -* .. Local Arrays .. - DOUBLE PRECISION X( NMAX ), Y( NMAX ) -* .. -* .. External Functions .. - DOUBLE PRECISION DSECND - EXTERNAL DSECND -* .. -* .. External Subroutines .. - EXTERNAL MYSUB -* .. -* .. Intrinsic Functions .. - INTRINSIC DBLE -* .. -* .. Executable Statements .. -* -* .. Figure TOTAL flops .. - TOTAL = DBLE(NMAX) * DBLE(ITS) * 2.0 -* -* Initialize X and Y -* - DO 10 I = 1, NMAX - X( I ) = DBLE( 1 ) / DBLE( I ) - Y( I ) = DBLE( NMAX-I ) / DBLE( NMAX ) - 10 CONTINUE - ALPHA = 0.315D0 -* -* Time TOTAL SAXPY operations -* - T1 = DSECND( ) - DO 30 J = 1, ITS - DO 20 I = 1, NMAX - Y( I ) = Y( I ) + ALPHA*X( I ) - 20 CONTINUE - ALPHA = -ALPHA - 30 CONTINUE - T2 = DSECND( ) - TNOSEC = T2 - T1 - WRITE( 6, 9999 )TOTAL, TNOSEC - IF( TNOSEC.GT.0.0 ) THEN - WRITE( 6, 9998 )(TOTAL/1.0D6)/TNOSEC - ELSE - WRITE( 6, 9994 ) - END IF -* -* Time TOTAL DAXPY operations with DSECND in the outer loop -* - T1 = DSECND( ) - DO 50 J = 1, ITS - DO 40 I = 1, NMAX - Y( I ) = Y( I ) + ALPHA*X( I ) - 40 CONTINUE - ALPHA = -ALPHA - T2 = DSECND( ) - 50 CONTINUE -* -* Compute the time used in milliseconds used by an average call -* to DSECND. -* - WRITE( 6, 9997 )T2 - T1 - AVG = ( ( T2-T1 ) - TNOSEC ) * 1000.0D+00/DBLE( ITS ) - IF( AVG.GT.0.0) - $ WRITE( 6, 9996 )AVG -* -* Compute the equivalent number of floating point operations used -* by an average call to DSECND. -* - IF(( AVG.GT.0.0 ).AND.( TNOSEC.GT.0.0 )) - $ WRITE( 6, 9995 )(AVG/1000) * TOTAL / TNOSEC -* - 9999 FORMAT( ' Time for ', G10.3,' DAXPY ops = ', G10.3, ' seconds' ) - 9998 FORMAT( ' DAXPY performance rate = ', G10.3, ' mflops ' ) - 9997 FORMAT( ' Including DSECND, time = ', G10.3, ' seconds' ) - 9996 FORMAT( ' Average time for DSECND = ', G10.3, - $ ' milliseconds' ) - 9995 FORMAT( ' Equivalent floating point ops = ', G10.3, ' ops' ) - 9994 FORMAT( ' *** Warning: Time for operations was less or equal', - $ ' than zero => timing in TESTING might be dubious' ) - CALL MYSUB(NMAX,X,Y) - END - SUBROUTINE MYSUB(N,X,Y) - INTEGER N - DOUBLE PRECISION X(N), Y(N) - RETURN - END diff --git a/dspl/liblapack/INSTALL/ilaver.f b/dspl/liblapack/INSTALL/ilaver.f deleted file mode 100644 index e1d59f4..0000000 --- a/dspl/liblapack/INSTALL/ilaver.f +++ /dev/null @@ -1,66 +0,0 @@ -*> \brief \b ILAVER returns the LAPACK version. -** -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE ILAVER( VERS_MAJOR, VERS_MINOR, VERS_PATCH ) -* -* INTEGER VERS_MAJOR, VERS_MINOR, VERS_PATCH -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This subroutine returns the LAPACK version. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[out] VERS_MAJOR -*> return the lapack major version -*> -*> \param[out] VERS_MINOR -*> return the lapack minor version from the major version -*> -*> \param[out] VERS_PATCH -*> return the lapack patch version from the minor version -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date June 2017 -* -*> \ingroup auxOTHERauxiliary -* -* ===================================================================== - SUBROUTINE ILAVER( VERS_MAJOR, VERS_MINOR, VERS_PATCH ) -* -* -- LAPACK computational routine (version 3.7.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* June 2017 -* -* ===================================================================== -* - INTEGER VERS_MAJOR, VERS_MINOR, VERS_PATCH -* ===================================================================== - VERS_MAJOR = 3 - VERS_MINOR = 8 - VERS_PATCH = 0 -* ===================================================================== -* - RETURN - END diff --git a/dspl/liblapack/INSTALL/lsame.f b/dspl/liblapack/INSTALL/lsame.f deleted file mode 100644 index cead2c5..0000000 --- a/dspl/liblapack/INSTALL/lsame.f +++ /dev/null @@ -1,125 +0,0 @@ -*> \brief \b LSAME -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* LOGICAL FUNCTION LSAME( CA, CB ) -* -* .. Scalar Arguments .. -* CHARACTER CA, CB -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> LSAME returns .TRUE. if CA is the same letter as CB regardless of -*> case. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] CA -*> \verbatim -*> \endverbatim -*> -*> \param[in] CB -*> \verbatim -*> CA and CB specify the single characters to be compared. -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup auxOTHERauxiliary -* -* ===================================================================== - LOGICAL FUNCTION LSAME( CA, CB ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER CA, CB -* .. -* -* ===================================================================== -* -* .. Intrinsic Functions .. - INTRINSIC ICHAR -* .. -* .. Local Scalars .. - INTEGER INTA, INTB, ZCODE -* .. -* .. Executable Statements .. -* -* Test if the characters are equal -* - LSAME = CA.EQ.CB - IF( LSAME ) - $ RETURN -* -* Now test for equivalence if both characters are alphabetic. -* - ZCODE = ICHAR( 'Z' ) -* -* Use 'Z' rather than 'A' so that ASCII can be detected on Prime -* machines, on which ICHAR returns a value with bit 8 set. -* ICHAR('A') on Prime machines returns 193 which is the same as -* ICHAR('A') on an EBCDIC machine. -* - INTA = ICHAR( CA ) - INTB = ICHAR( CB ) -* - IF( ZCODE.EQ.90 .OR. ZCODE.EQ.122 ) THEN -* -* ASCII is assumed - ZCODE is the ASCII code of either lower or -* upper case 'Z'. -* - IF( INTA.GE.97 .AND. INTA.LE.122 ) INTA = INTA - 32 - IF( INTB.GE.97 .AND. INTB.LE.122 ) INTB = INTB - 32 -* - ELSE IF( ZCODE.EQ.233 .OR. ZCODE.EQ.169 ) THEN -* -* EBCDIC is assumed - ZCODE is the EBCDIC code of either lower or -* upper case 'Z'. -* - IF( INTA.GE.129 .AND. INTA.LE.137 .OR. - $ INTA.GE.145 .AND. INTA.LE.153 .OR. - $ INTA.GE.162 .AND. INTA.LE.169 ) INTA = INTA + 64 - IF( INTB.GE.129 .AND. INTB.LE.137 .OR. - $ INTB.GE.145 .AND. INTB.LE.153 .OR. - $ INTB.GE.162 .AND. INTB.LE.169 ) INTB = INTB + 64 -* - ELSE IF( ZCODE.EQ.218 .OR. ZCODE.EQ.250 ) THEN -* -* ASCII is assumed, on Prime machines - ZCODE is the ASCII code -* plus 128 of either lower or upper case 'Z'. -* - IF( INTA.GE.225 .AND. INTA.LE.250 ) INTA = INTA - 32 - IF( INTB.GE.225 .AND. INTB.LE.250 ) INTB = INTB - 32 - END IF - LSAME = INTA.EQ.INTB -* -* RETURN -* -* End of LSAME -* - END diff --git a/dspl/liblapack/INSTALL/lsametst.f b/dspl/liblapack/INSTALL/lsametst.f deleted file mode 100644 index aad0e58..0000000 --- a/dspl/liblapack/INSTALL/lsametst.f +++ /dev/null @@ -1,88 +0,0 @@ -*> \brief \b LSAMETST -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* PROGRAM LSAMETST -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup auxOTHERauxiliary -* -* ===================================================================== PROGRAM LSAMETST -* -* -- LAPACK test routine (version 3.7.0) -- -* -* -- LAPACK computational routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* ===================================================================== -* .. Local Scalars .. - INTEGER I1, I2 -* .. -* .. External Functions .. - LOGICAL LSAME - EXTERNAL LSAME -* .. -* .. Intrinsic Functions .. - INTRINSIC ICHAR -* .. -* .. Executable Statements .. -* -* -* Determine the character set. -* - I1 = ICHAR( 'A' ) - I2 = ICHAR( 'a' ) - IF( I2-I1.EQ.32 ) THEN - WRITE( *, * ) ' ASCII character set' - ELSE - WRITE( *, * ) ' Non-ASCII character set, IOFF should be ',I2-I1 - END IF -* -* Test LSAME. -* - IF( .NOT. LSAME( 'A', 'A' ) ) - $ WRITE( *, 9999 )'A', 'A' - IF( .NOT. LSAME( 'A', 'a' ) ) - $ WRITE( *, 9999 )'A', 'a' - IF( .NOT. LSAME( 'a', 'A' ) ) - $ WRITE( *, 9999 )'a', 'A' - IF( .NOT. LSAME( 'a', 'a' ) ) - $ WRITE( *, 9999 )'a', 'a' - IF( LSAME( 'A', 'B' ) ) - $ WRITE( *, 9998 )'A', 'B' - IF( LSAME( 'A', 'b' ) ) - $ WRITE( *, 9998 )'A', 'b' - IF( LSAME( 'a', 'B' ) ) - $ WRITE( *, 9998 )'a', 'B' - IF( LSAME( 'a', 'b' ) ) - $ WRITE( *, 9998 )'a', 'b' - IF( LSAME( 'O', '/' ) ) - $ WRITE( *, 9998 )'O', '/' - IF( LSAME( '/', 'O' ) ) - $ WRITE( *, 9998 )'/', 'O' - IF( LSAME( 'o', '/' ) ) - $ WRITE( *, 9998 )'o', '/' - IF( LSAME( '/', 'o' ) ) - $ WRITE( *, 9998 )'/', 'o' - WRITE( *, * )' Tests completed' -* - 9999 FORMAT( ' *** Error: LSAME( ', A1, ', ', A1, ') is .FALSE.' ) - 9998 FORMAT( ' *** Error: LSAME( ', A1, ', ', A1, ') is .TRUE.' ) - END diff --git a/dspl/liblapack/INSTALL/make.inc.ALPHA b/dspl/liblapack/INSTALL/make.inc.ALPHA deleted file mode 100644 index 0ceeaa1..0000000 --- a/dspl/liblapack/INSTALL/make.inc.ALPHA +++ /dev/null @@ -1,82 +0,0 @@ -#################################################################### -# LAPACK make include file. # -# LAPACK, Version 3.7.0 # -# December 2016 # -#################################################################### - -SHELL = /bin/sh - -# CC is the C compiler, normally invoked with options CFLAGS. -# -CC = cc -CFLAGS = -O4 - -# Modify the FORTRAN and OPTS definitions to refer to the compiler -# and desired compiler options for your machine. NOOPT refers to -# the compiler options desired when NO OPTIMIZATION is selected. -# -FORTRAN = f77 -OPTS = -O4 -fpe1 -DRVOPTS = $(OPTS) -NOOPT = - -# Define LOADER and LOADOPTS to refer to the loader and desired -# load options for your machine. -# -LOADER = f77 -LOADOPTS = - -# The archiver and the flag(s) to use when building an archive -# (library). If your system has no ranlib, set RANLIB = echo. -# -ARCH = ar -ARCHFLAGS = cr -RANLIB = ranlib - -# Timer for the SECOND and DSECND routines -# -# Default: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME -TIMER = EXT_ETIME -# For RS6K: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME_ -#TIMER = EXT_ETIME_ -# For gfortran compiler: SECOND and DSECND will use a call to the -# INTERNAL FUNCTION ETIME -#TIMER = INT_ETIME -# If your Fortran compiler does not provide etime (like Nag Fortran -# Compiler, etc...) SECOND and DSECND will use a call to the -# INTERNAL FUNCTION CPU_TIME -#TIMER = INT_CPU_TIME -# If none of these work, you can use the NONE value. -# In that case, SECOND and DSECND will always return 0. -#TIMER = NONE - -# Uncomment the following line to include deprecated routines in -# the LAPACK library. -# -#BUILD_DEPRECATED = Yes - -# LAPACKE has the interface to some routines from tmglib. -# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE. -# -#LAPACKE_WITH_TMG = Yes - -# Location of the extended-precision BLAS (XBLAS) Fortran library -# used for building and testing extended-precision routines. The -# relevant routines will be compiled and XBLAS will be linked only -# if USEXBLAS is defined. -# -#USEXBLAS = Yes -#XBLASLIB = -lxblas - -# The location of the libraries to which you will link. (The -# machine-specific, optimized BLAS library should be used whenever -# possible.) -# -#BLASLIB = ../../librefblas.a -BLASLIB = -ldxml -CBLASLIB = ../../libcblas.a -LAPACKLIB = liblapack.a -TMGLIB = libtmglib.a -LAPACKELIB = liblapacke.a diff --git a/dspl/liblapack/INSTALL/make.inc.HPPA b/dspl/liblapack/INSTALL/make.inc.HPPA deleted file mode 100644 index 8eabbbd..0000000 --- a/dspl/liblapack/INSTALL/make.inc.HPPA +++ /dev/null @@ -1,82 +0,0 @@ -#################################################################### -# LAPACK make include file. # -# LAPACK, Version 3.7.0 # -# December 2016 # -#################################################################### - -SHELL = /bin/sh - -# CC is the C compiler, normally invoked with options CFLAGS. -# -CC = cc -CFLAGS = - -# Modify the FORTRAN and OPTS definitions to refer to the compiler -# and desired compiler options for your machine. NOOPT refers to -# the compiler options desired when NO OPTIMIZATION is selected. -# -FORTRAN = f77 -OPTS = +O4 +U77 -DRVOPTS = $(OPTS) -K -NOOPT = +U77 - -# Define LOADER and LOADOPTS to refer to the loader and desired -# load options for your machine. -# -LOADER = f77 -LOADOPTS = -Aa +U77 - -# The archiver and the flag(s) to use when building an archive -# (library). If your system has no ranlib, set RANLIB = echo. -# -ARCH = ar -ARCHFLAGS = cr -RANLIB = echo - -# Timer for the SECOND and DSECND routines -# -# Default: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME -TIMER = EXT_ETIME -# For RS6K: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME_ -#TIMER = EXT_ETIME_ -# For gfortran compiler: SECOND and DSECND will use a call to the -# INTERNAL FUNCTION ETIME -#TIMER = INT_ETIME -# If your Fortran compiler does not provide etime (like Nag Fortran -# Compiler, etc...) SECOND and DSECND will use a call to the -# INTERNAL FUNCTION CPU_TIME -#TIMER = INT_CPU_TIME -# If none of these work, you can use the NONE value. -# In that case, SECOND and DSECND will always return 0. -#TIMER = NONE - -# Uncomment the following line to include deprecated routines in -# the LAPACK library. -# -#BUILD_DEPRECATED = Yes - -# LAPACKE has the interface to some routines from tmglib. -# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE. -# -#LAPACKE_WITH_TMG = Yes - -# Location of the extended-precision BLAS (XBLAS) Fortran library -# used for building and testing extended-precision routines. The -# relevant routines will be compiled and XBLAS will be linked only -# if USEXBLAS is defined. -# -#USEXBLAS = Yes -#XBLASLIB = -lxblas - -# The location of the libraries to which you will link. (The -# machine-specific, optimized BLAS library should be used whenever -# possible.) -# -#BLASLIB = ../../librefblas.a -BLASLIB = -lblas -CBLASLIB = ../../libcblas.a -LAPACKLIB = liblapack.a -TMGLIB = libtmglib.a -LAPACKELIB = liblapacke.a diff --git a/dspl/liblapack/INSTALL/make.inc.IRIX64 b/dspl/liblapack/INSTALL/make.inc.IRIX64 deleted file mode 100644 index d9e71e1..0000000 --- a/dspl/liblapack/INSTALL/make.inc.IRIX64 +++ /dev/null @@ -1,85 +0,0 @@ -#################################################################### -# LAPACK make include file. # -# LAPACK, Version 3.7.0 # -# December 2016 # -#################################################################### - -SHELL = /sbin/sh - -# CC is the C compiler, normally invoked with options CFLAGS. -# -CC = cc -CFLAGS = -O3 - -# Modify the FORTRAN and OPTS definitions to refer to the compiler -# and desired compiler options for your machine. NOOPT refers to -# the compiler options desired when NO OPTIMIZATION is selected. -# -FORTRAN = f77 -OPTS = -O3 -64 -mips4 -r10000 -OPT:IEEE_NaN_inf=ON -#OPTS = -g -DEBUG:subscript_check=ON -trapuv -OPT:IEEE_NaN_inf=ON -DRVOPTS = $(OPTS) -static -NOOPT = -64 -mips4 -r10000 -OPT:IEEE_NaN_inf=ON -#NOOPT = -g -DEBUG:subscript_check=ON -trapuv -OPT:IEEE_NaN_inf=ON - -# Define LOADER and LOADOPTS to refer to the loader and desired -# load options for your machine. -# -LOADER = f77 -LOADOPTS = -O3 -64 -mips4 -r10000 -OPT:IEEE_NaN_inf=ON -#LOADOPTS = -g -DEBUG:subscript_check=ON -trapuv -OPT:IEEE_NaN_inf=ON - -# The archiver and the flag(s) to use when building an archive -# (library). If your system has no ranlib, set RANLIB = echo. -# -ARCH = ar -ARCHFLAGS = cr -RANLIB = echo - -# Timer for the SECOND and DSECND routines -# -# Default: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME -TIMER = EXT_ETIME -# For RS6K: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME_ -#TIMER = EXT_ETIME_ -# For gfortran compiler: SECOND and DSECND will use a call to the -# INTERNAL FUNCTION ETIME -#TIMER = INT_ETIME -# If your Fortran compiler does not provide etime (like Nag Fortran -# Compiler, etc...) SECOND and DSECND will use a call to the -# INTERNAL FUNCTION CPU_TIME -#TIMER = INT_CPU_TIME -# If none of these work, you can use the NONE value. -# In that case, SECOND and DSECND will always return 0. -#TIMER = NONE - -# Uncomment the following line to include deprecated routines in -# the LAPACK library. -# -#BUILD_DEPRECATED = Yes - -# LAPACKE has the interface to some routines from tmglib. -# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE. -# -#LAPACKE_WITH_TMG = Yes - -# Location of the extended-precision BLAS (XBLAS) Fortran library -# used for building and testing extended-precision routines. The -# relevant routines will be compiled and XBLAS will be linked only -# if USEXBLAS is defined. -# -#USEXBLAS = Yes -#XBLASLIB = -lxblas - -# The location of the libraries to which you will link. (The -# machine-specific, optimized BLAS library should be used whenever -# possible.) -# -#BLASLIB = -lblas -BLASLIB = ../../librefblas.a -CBLASLIB = ../../libcblas.a -LAPACKLIB = liblapack.a -TMGLIB = libtmglib.a -LAPACKELIB = liblapacke.a diff --git a/dspl/liblapack/INSTALL/make.inc.O2K b/dspl/liblapack/INSTALL/make.inc.O2K deleted file mode 100644 index 3ffcada..0000000 --- a/dspl/liblapack/INSTALL/make.inc.O2K +++ /dev/null @@ -1,86 +0,0 @@ -#################################################################### -# LAPACK make include file. # -# LAPACK, Version 3.7.0 # -# December 2016 # -#################################################################### - -SHELL = /sbin/sh - -# CC is the C compiler, normally invoked with options CFLAGS. -# -CC = cc -CFLAGS = -O3 - -# Modify the FORTRAN and OPTS definitions to refer to the compiler -# and desired compiler options for your machine. NOOPT refers to -# the compiler options desired when NO OPTIMIZATION is selected. -# -FORTRAN = f77 -OPTS = -O3 -64 -mips4 -r10000 -#OPTS = -O3 -64 -mips4 -r10000 -mp -DRVOPTS = $(OPTS) -static -NOOPT = -64 -mips4 -r10000 -#NOOPT = -64 -mips4 -r10000 -mp - -# Define LOADER and LOADOPTS to refer to the loader and desired -# load options for your machine. -# -LOADER = f77 -LOADOPTS = -O3 -64 -mips4 -r10000 -#LOADOPTS = -O3 -64 -mips4 -r10000 -mp - -# The archiver and the flag(s) to use when building an archive -# (library). If your system has no ranlib, set RANLIB = echo. -# -ARCH = ar -ARCHFLAGS = cr -RANLIB = echo - -# Timer for the SECOND and DSECND routines -# -# Default: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME -TIMER = EXT_ETIME -# For RS6K: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME_ -#TIMER = EXT_ETIME_ -# For gfortran compiler: SECOND and DSECND will use a call to the -# INTERNAL FUNCTION ETIME -#TIMER = INT_ETIME -# If your Fortran compiler does not provide etime (like Nag Fortran -# Compiler, etc...) SECOND and DSECND will use a call to the -# INTERNAL FUNCTION CPU_TIME -#TIMER = INT_CPU_TIME -# If none of these work, you can use the NONE value. -# In that case, SECOND and DSECND will always return 0. -#TIMER = NONE - -# Uncomment the following line to include deprecated routines in -# the LAPACK library. -# -#BUILD_DEPRECATED = Yes - -# LAPACKE has the interface to some routines from tmglib. -# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE. -# -#LAPACKE_WITH_TMG = Yes - -# Location of the extended-precision BLAS (XBLAS) Fortran library -# used for building and testing extended-precision routines. The -# relevant routines will be compiled and XBLAS will be linked only -# if USEXBLAS is defined. -# -#USEXBLAS = Yes -#XBLASLIB = -lxblas - -# The location of the libraries to which you will link. (The -# machine-specific, optimized BLAS library should be used whenever -# possible.) -# -BLASLIB = -lblas -#BLASLIB = -lblas_mp -#BLASLIB = ../../librefblas.a -CBLASLIB = ../../libcblas.a -LAPACKLIB = liblapack.a -TMGLIB = libtmglib.a -LAPACKELIB = liblapacke.a diff --git a/dspl/liblapack/INSTALL/make.inc.SGI5 b/dspl/liblapack/INSTALL/make.inc.SGI5 deleted file mode 100644 index c7019ac..0000000 --- a/dspl/liblapack/INSTALL/make.inc.SGI5 +++ /dev/null @@ -1,82 +0,0 @@ -#################################################################### -# LAPACK make include file. # -# LAPACK, Version 3.7.0 # -# December 2016 # -#################################################################### - -SHELL = /sbin/sh - -# CC is the C compiler, normally invoked with options CFLAGS. -# -CC = cc -CFLAGS = -O4 - -# Modify the FORTRAN and OPTS definitions to refer to the compiler -# and desired compiler options for your machine. NOOPT refers to -# the compiler options desired when NO OPTIMIZATION is selected. -# -FORTRAN = f77 -OPTS = -O4 -DRVOPTS = $(OPTS) -static -NOOPT = - -# Define LOADER and LOADOPTS to refer to the loader and desired -# load options for your machine. -# -LOADER = f77 -LOADOPTS = - -# The archiver and the flag(s) to use when building an archive -# (library). If your system has no ranlib, set RANLIB = echo. -# -ARCH = ar -ARCHFLAGS = cr -RANLIB = echo - -# Timer for the SECOND and DSECND routines -# -# Default: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME -TIMER = EXT_ETIME -# For RS6K: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME_ -#TIMER = EXT_ETIME_ -# For gfortran compiler: SECOND and DSECND will use a call to the -# INTERNAL FUNCTION ETIME -#TIMER = INT_ETIME -# If your Fortran compiler does not provide etime (like Nag Fortran -# Compiler, etc...) SECOND and DSECND will use a call to the -# INTERNAL FUNCTION CPU_TIME -#TIMER = INT_CPU_TIME -# If none of these work, you can use the NONE value. -# In that case, SECOND and DSECND will always return 0. -#TIMER = NONE - -# Uncomment the following line to include deprecated routines in -# the LAPACK library. -# -#BUILD_DEPRECATED = Yes - -# LAPACKE has the interface to some routines from tmglib. -# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE. -# -#LAPACKE_WITH_TMG = Yes - -# Location of the extended-precision BLAS (XBLAS) Fortran library -# used for building and testing extended-precision routines. The -# relevant routines will be compiled and XBLAS will be linked only -# if USEXBLAS is defined. -# -#USEXBLAS = Yes -#XBLASLIB = -lxblas - -# The location of the libraries to which you will link. (The -# machine-specific, optimized BLAS library should be used whenever -# possible.) -# -#BLASLIB = -lblas -BLASLIB = ../../librefblas.a -CBLASLIB = ../../libcblas.a -LAPACKLIB = liblapack.a -TMGLIB = libtmglib.a -LAPACKELIB = liblapacke.a diff --git a/dspl/liblapack/INSTALL/make.inc.SUN4 b/dspl/liblapack/INSTALL/make.inc.SUN4 deleted file mode 100644 index 4e44f1b..0000000 --- a/dspl/liblapack/INSTALL/make.inc.SUN4 +++ /dev/null @@ -1,82 +0,0 @@ -#################################################################### -# LAPACK make include file. # -# LAPACK, Version 3.7.0 # -# December 2016 # -#################################################################### - -SHELL = /bin/sh - -# CC is the C compiler, normally invoked with options CFLAGS. -# -CC = cc -CFLAGS = -O3 - -# Modify the FORTRAN and OPTS definitions to refer to the compiler -# and desired compiler options for your machine. NOOPT refers to -# the compiler options desired when NO OPTIMIZATION is selected. -# -FORTRAN = f77 -OPTS = -dalign -O4 -fast -DRVOPTS = $(OPTS) -NOOPT = - -# Define LOADER and LOADOPTS to refer to the loader and desired -# load options for your machine. -# -LOADER = f77 -LOADOPTS = -dalign -O4 -fast - -# The archiver and the flag(s) to use when building an archive -# (library). If your system has no ranlib, set RANLIB = echo. -# -ARCH = ar -ARCHFLAGS = cr -RANLIB = ranlib - -# Timer for the SECOND and DSECND routines -# -# Default: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME -TIMER = EXT_ETIME -# For RS6K: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME_ -#TIMER = EXT_ETIME_ -# For gfortran compiler: SECOND and DSECND will use a call to the -# INTERNAL FUNCTION ETIME -#TIMER = INT_ETIME -# If your Fortran compiler does not provide etime (like Nag Fortran -# Compiler, etc...) SECOND and DSECND will use a call to the -# INTERNAL FUNCTION CPU_TIME -#TIMER = INT_CPU_TIME -# If none of these work, you can use the NONE value. -# In that case, SECOND and DSECND will always return 0. -#TIMER = NONE - -# Uncomment the following line to include deprecated routines in -# the LAPACK library. -# -#BUILD_DEPRECATED = Yes - -# LAPACKE has the interface to some routines from tmglib. -# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE. -# -#LAPACKE_WITH_TMG = Yes - -# Location of the extended-precision BLAS (XBLAS) Fortran library -# used for building and testing extended-precision routines. The -# relevant routines will be compiled and XBLAS will be linked only -# if USEXBLAS is defined. -# -#USEXBLAS = Yes -#XBLASLIB = -lxblas - -# The location of the libraries to which you will link. (The -# machine-specific, optimized BLAS library should be used whenever -# possible.) -# -#BLASLIB = -lblas -BLASLIB = ../../librefblas.a -CBLASLIB = ../../libcblas.a -LAPACKLIB = liblapack.a -TMGLIB = libtmglib.a -LAPACKELIB = liblapacke.a diff --git a/dspl/liblapack/INSTALL/make.inc.SUN4SOL2 b/dspl/liblapack/INSTALL/make.inc.SUN4SOL2 deleted file mode 100644 index e6d79ad..0000000 --- a/dspl/liblapack/INSTALL/make.inc.SUN4SOL2 +++ /dev/null @@ -1,87 +0,0 @@ -#################################################################### -# LAPACK make include file. # -# LAPACK, Version 3.7.0 # -# December 2016 # -#################################################################### - -SHELL = /bin/sh - -# CC is the C compiler, normally invoked with options CFLAGS. -# -CC = cc -CFLAGS = -O3 - -# Modify the FORTRAN and OPTS definitions to refer to the compiler -# and desired compiler options for your machine. NOOPT refers to -# the compiler options desired when NO OPTIMIZATION is selected. -# -FORTRAN = f77 -#OPTS = -O4 -u -f -mt -#OPTS = -u -f -dalign -native -xO5 -xarch=v8plusa -OPTS = -u -f -dalign -native -xO2 -xarch=v8plusa -DRVOPTS = $(OPTS) -NOOPT = -u -f -#NOOPT = -u -f -mt - -# Define LOADER and LOADOPTS to refer to the loader and desired -# load options for your machine. -# -LOADER = f77 -#LOADOPTS = -mt -LOADOPTS = -f -dalign -native -xO2 -xarch=v8plusa - -# The archiver and the flag(s) to use when building an archive -# (library). If your system has no ranlib, set RANLIB = echo. -# -ARCH = ar -ARCHFLAGS = cr -RANLIB = echo - -# Timer for the SECOND and DSECND routines -# -# Default: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME -TIMER = EXT_ETIME -# For RS6K: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME_ -#TIMER = EXT_ETIME_ -# For gfortran compiler: SECOND and DSECND will use a call to the -# INTERNAL FUNCTION ETIME -#TIMER = INT_ETIME -# If your Fortran compiler does not provide etime (like Nag Fortran -# Compiler, etc...) SECOND and DSECND will use a call to the -# INTERNAL FUNCTION CPU_TIME -#TIMER = INT_CPU_TIME -# If none of these work, you can use the NONE value. -# In that case, SECOND and DSECND will always return 0. -#TIMER = NONE - -# Uncomment the following line to include deprecated routines in -# the LAPACK library. -# -#BUILD_DEPRECATED = Yes - -# LAPACKE has the interface to some routines from tmglib. -# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE. -# -#LAPACKE_WITH_TMG = Yes - -# Location of the extended-precision BLAS (XBLAS) Fortran library -# used for building and testing extended-precision routines. The -# relevant routines will be compiled and XBLAS will be linked only -# if USEXBLAS is defined. -# -#USEXBLAS = Yes -#XBLASLIB = -lxblas - -# The location of the libraries to which you will link. (The -# machine-specific, optimized BLAS library should be used whenever -# possible.) -# -#BLASLIB = ../../librefblas.a -#BLASLIB = -xlic_lib=sunperf_mt -BLASLIB = -xlic_lib=sunperf -CBLASLIB = ../../libcblas.a -LAPACKLIB = liblapack.a -TMGLIB = libtmglib.a -LAPACKELIB = liblapacke.a diff --git a/dspl/liblapack/INSTALL/make.inc.XLF b/dspl/liblapack/INSTALL/make.inc.XLF deleted file mode 100644 index 9466ee3..0000000 --- a/dspl/liblapack/INSTALL/make.inc.XLF +++ /dev/null @@ -1,83 +0,0 @@ -#################################################################### -# LAPACK make include file. # -# LAPACK, Version 3.7.0 # -# December 2016 # -#################################################################### - -SHELL = /bin/sh - -# CC is the C compiler, normally invoked with options CFLAGS. -# -CC = xlc -CFLAGS = -O3 -qnosave - -# Modify the FORTRAN and OPTS definitions to refer to the compiler -# and desired compiler options for your machine. NOOPT refers to -# the compiler options desired when NO OPTIMIZATION is selected. -# -FORTRAN = xlf -OPTS = -O3 -qfixed -qnosave -# For -O2, add -qstrict=none -DRVOPTS = $(OPTS) -NOOPT = -O0 -qfixed -qnosave - -# Define LOADER and LOADOPTS to refer to the loader and desired -# load options for your machine. -# -LOADER = xlf -LOADOPTS = -qnosave - -# The archiver and the flag(s) to use when building an archive -# (library). If your system has no ranlib, set RANLIB = echo. -# -ARCH = ar -ARCHFLAGS = cr -RANLIB = ranlib - -# Timer for the SECOND and DSECND routines -# -# Default: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME -#TIMER = EXT_ETIME -# For RS6K: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME_ -TIMER = EXT_ETIME_ -# For gfortran compiler: SECOND and DSECND will use a call to the -# INTERNAL FUNCTION ETIME -#TIMER = INT_ETIME -# If your Fortran compiler does not provide etime (like Nag Fortran -# Compiler, etc...) SECOND and DSECND will use a call to the -# INTERNAL FUNCTION CPU_TIME -#TIMER = INT_CPU_TIME -# If none of these work, you can use the NONE value. -# In that case, SECOND and DSECND will always return 0. -#TIMER = NONE - -# Uncomment the following line to include deprecated routines in -# the LAPACK library. -# -#BUILD_DEPRECATED = Yes - -# LAPACKE has the interface to some routines from tmglib. -# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE. -# -#LAPACKE_WITH_TMG = Yes - -# Location of the extended-precision BLAS (XBLAS) Fortran library -# used for building and testing extended-precision routines. The -# relevant routines will be compiled and XBLAS will be linked only -# if USEXBLAS is defined. -# -#USEXBLAS = Yes -#XBLASLIB = -lxblas - -# The location of the libraries to which you will link. (The -# machine-specific, optimized BLAS library should be used whenever -# possible.) -# -#BLASLIB = ../../librefblas.a -BLASLIB = -lessl -CBLASLIB = ../../libcblas.a -LAPACKLIB = liblapack.a -TMGLIB = libtmglib.a -LAPACKELIB = liblapacke.a diff --git a/dspl/liblapack/INSTALL/make.inc.gfortran b/dspl/liblapack/INSTALL/make.inc.gfortran deleted file mode 100644 index 39d98d4..0000000 --- a/dspl/liblapack/INSTALL/make.inc.gfortran +++ /dev/null @@ -1,85 +0,0 @@ -#################################################################### -# LAPACK make include file. # -# LAPACK, Version 3.7.0 # -# November 2017 # -#################################################################### - -SHELL = /bin/sh - -# CC is the C compiler, normally invoked with options CFLAGS. -# -CC = gcc -CFLAGS = -O3 - -# Modify the FORTRAN and OPTS definitions to refer to the compiler -# and desired compiler options for your machine. NOOPT refers to -# the compiler options desired when NO OPTIMIZATION is selected. -# -# Note: During a regular execution, LAPACK might create NaN and Inf -# and handle these quantities appropriately. As a consequence, one -# should not compile LAPACK with flags such as -ffpe-trap=overflow. -# -FORTRAN = gfortran -OPTS = -O2 -frecursive -DRVOPTS = $(OPTS) -NOOPT = -O0 -frecursive - -# Define LOADER and LOADOPTS to refer to the loader and desired -# load options for your machine. -# -LOADER = gfortran -LOADOPTS = - -# The archiver and the flag(s) to use when building an archive -# (library). If your system has no ranlib, set RANLIB = echo. -# -ARCH = ar -ARCHFLAGS = cr -RANLIB = ranlib - -# Timer for the SECOND and DSECND routines -# -# Default: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME -#TIMER = EXT_ETIME -# For RS6K: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME_ -#TIMER = EXT_ETIME_ -# For gfortran compiler: SECOND and DSECND will use a call to the -# INTERNAL FUNCTION ETIME -TIMER = INT_ETIME -# If your Fortran compiler does not provide etime (like Nag Fortran -# Compiler, etc...) SECOND and DSECND will use a call to the -# INTERNAL FUNCTION CPU_TIME -#TIMER = INT_CPU_TIME -# If none of these work, you can use the NONE value. -# In that case, SECOND and DSECND will always return 0. -#TIMER = NONE - -# Uncomment the following line to include deprecated routines in -# the LAPACK library. -# -#BUILD_DEPRECATED = Yes - -# LAPACKE has the interface to some routines from tmglib. -# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE. -# -#LAPACKE_WITH_TMG = Yes - -# Location of the extended-precision BLAS (XBLAS) Fortran library -# used for building and testing extended-precision routines. The -# relevant routines will be compiled and XBLAS will be linked only -# if USEXBLAS is defined. -# -#USEXBLAS = Yes -#XBLASLIB = -lxblas - -# The location of the libraries to which you will link. (The -# machine-specific, optimized BLAS library should be used whenever -# possible.) -# -BLASLIB = ../../librefblas.a -CBLASLIB = ../../libcblas.a -LAPACKLIB = liblapack.a -TMGLIB = libtmglib.a -LAPACKELIB = liblapacke.a diff --git a/dspl/liblapack/INSTALL/make.inc.gfortran_debug b/dspl/liblapack/INSTALL/make.inc.gfortran_debug deleted file mode 100644 index 10e6381..0000000 --- a/dspl/liblapack/INSTALL/make.inc.gfortran_debug +++ /dev/null @@ -1,85 +0,0 @@ -#################################################################### -# LAPACK make include file. # -# LAPACK, Version 3.7.0 # -# November 2017 # -#################################################################### - -SHELL = /bin/sh - -# CC is the C compiler, normally invoked with options CFLAGS. -# -CC = gcc -CFLAGS = -g - -# Modify the FORTRAN and OPTS definitions to refer to the compiler -# and desired compiler options for your machine. NOOPT refers to -# the compiler options desired when NO OPTIMIZATION is selected. -# -# Note: During a regular execution, LAPACK might create NaN and Inf -# and handle these quantities appropriately. As a consequence, one -# should not compile LAPACK with flags such as -ffpe-trap=overflow. -# -FORTRAN = gfortran -fimplicit-none -g -frecursive -OPTS = -DRVOPTS = $(OPTS) -NOOPT = -g -O0 -frecursive - -# Define LOADER and LOADOPTS to refer to the loader and desired -# load options for your machine. -# -LOADER = gfortran -g -LOADOPTS = - -# The archiver and the flag(s) to use when building an archive -# (library). If your system has no ranlib, set RANLIB = echo. -# -ARCH = ar -ARCHFLAGS = cr -RANLIB = ranlib - -# Timer for the SECOND and DSECND routines -# -# Default: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME -#TIMER = EXT_ETIME -# For RS6K: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME_ -#TIMER = EXT_ETIME_ -# For gfortran compiler: SECOND and DSECND will use a call to the -# INTERNAL FUNCTION ETIME -#TIMER = INT_ETIME -# If your Fortran compiler does not provide etime (like Nag Fortran -# Compiler, etc...) SECOND and DSECND will use a call to the -# INTERNAL FUNCTION CPU_TIME -TIMER = INT_CPU_TIME -# If none of these work, you can use the NONE value. -# In that case, SECOND and DSECND will always return 0. -#TIMER = NONE - -# Uncomment the following line to include deprecated routines in -# the LAPACK library. -# -#BUILD_DEPRECATED = Yes - -# LAPACKE has the interface to some routines from tmglib. -# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE. -# -#LAPACKE_WITH_TMG = Yes - -# Location of the extended-precision BLAS (XBLAS) Fortran library -# used for building and testing extended-precision routines. The -# relevant routines will be compiled and XBLAS will be linked only -# if USEXBLAS is defined. -# -#USEXBLAS = Yes -#XBLASLIB = -lxblas - -# The location of the libraries to which you will link. (The -# machine-specific, optimized BLAS library should be used whenever -# possible.) -# -BLASLIB = ../../librefblas.a -CBLASLIB = ../../libcblas.a -LAPACKLIB = liblapack.a -TMGLIB = libtmglib.a -LAPACKELIB = liblapacke.a diff --git a/dspl/liblapack/INSTALL/make.inc.ifort b/dspl/liblapack/INSTALL/make.inc.ifort deleted file mode 100644 index b067bd4..0000000 --- a/dspl/liblapack/INSTALL/make.inc.ifort +++ /dev/null @@ -1,81 +0,0 @@ -#################################################################### -# LAPACK make include file. # -# LAPACK, Version 3.7.0 # -# December 2016 # -#################################################################### - -SHELL = /bin/sh - -# CC is the C compiler, normally invoked with options CFLAGS. -# -CC = icc -CFLAGS = -O3 - -# Modify the FORTRAN and OPTS definitions to refer to the compiler -# and desired compiler options for your machine. NOOPT refers to -# the compiler options desired when NO OPTIMIZATION is selected. -# -FORTRAN = ifort -OPTS = -O3 -fp-model strict -assume protect_parens -DRVOPTS = $(OPTS) -NOOPT = -O0 -fp-model strict -assume protect_parens - -# Define LOADER and LOADOPTS to refer to the loader and desired -# load options for your machine. -# -LOADER = ifort -LOADOPTS = - -# The archiver and the flag(s) to use when building an archive -# (library). If your system has no ranlib, set RANLIB = echo. -# -ARCH = ar -ARCHFLAGS = cr -RANLIB = ranlib - -# Timer for the SECOND and DSECND routines -# -# Default: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME -TIMER = EXT_ETIME -# For RS6K: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME_ -#TIMER = EXT_ETIME_ -# For gfortran compiler: SECOND and DSECND will use a call to the -# INTERNAL FUNCTION ETIME -#TIMER = INT_ETIME -# If your Fortran compiler does not provide etime (like Nag Fortran -# Compiler, etc...) SECOND and DSECND will use a call to the -# INTERNAL FUNCTION CPU_TIME -#TIMER = INT_CPU_TIME -# If none of these work, you can use the NONE value. -# In that case, SECOND and DSECND will always return 0. -#TIMER = NONE - -# Uncomment the following line to include deprecated routines in -# the LAPACK library. -# -#BUILD_DEPRECATED = Yes - -# LAPACKE has the interface to some routines from tmglib. -# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE. -# -#LAPACKE_WITH_TMG = Yes - -# Location of the extended-precision BLAS (XBLAS) Fortran library -# used for building and testing extended-precision routines. The -# relevant routines will be compiled and XBLAS will be linked only -# if USEXBLAS is defined. -# -#USEXBLAS = Yes -#XBLASLIB = -lxblas - -# The location of the libraries to which you will link. (The -# machine-specific, optimized BLAS library should be used whenever -# possible.) -# -BLASLIB = ../../librefblas.a -CBLASLIB = ../../libcblas.a -LAPACKLIB = liblapack.a -TMGLIB = libtmglib.a -LAPACKELIB = liblapacke.a diff --git a/dspl/liblapack/INSTALL/make.inc.pgf95 b/dspl/liblapack/INSTALL/make.inc.pgf95 deleted file mode 100644 index a9a5cec..0000000 --- a/dspl/liblapack/INSTALL/make.inc.pgf95 +++ /dev/null @@ -1,81 +0,0 @@ -#################################################################### -# LAPACK make include file. # -# LAPACK, Version 3.7.0 # -# December 2016 # -#################################################################### - -SHELL = /bin/sh - -# CC is the C compiler, normally invoked with options CFLAGS. -# -CC = pgcc -CFLAGS = - -# Modify the FORTRAN and OPTS definitions to refer to the compiler -# and desired compiler options for your machine. NOOPT refers to -# the compiler options desired when NO OPTIMIZATION is selected. -# -FORTRAN = pgf95 -OPTS = -O3 -DRVOPTS = $(OPTS) -NOOPT = -O0 - -# Define LOADER and LOADOPTS to refer to the loader and desired -# load options for your machine. -# -LOADER = $(FORTRAN) -LOADOPTS = - -# The archiver and the flag(s) to use when building an archive -# (library). If your system has no ranlib, set RANLIB = echo. -# -ARCH = ar -ARCHFLAGS = cr -RANLIB = echo - -# Timer for the SECOND and DSECND routines -# -# Default: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME -#TIMER = EXT_ETIME -# For RS6K: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME_ -#TIMER = EXT_ETIME_ -# For gfortran compiler: SECOND and DSECND will use a call to the -# INTERNAL FUNCTION ETIME -#TIMER = INT_ETIME -# If your Fortran compiler does not provide etime (like Nag Fortran -# Compiler, etc...) SECOND and DSECND will use a call to the -# INTERNAL FUNCTION CPU_TIME -TIMER = INT_CPU_TIME -# If none of these work, you can use the NONE value. -# In that case, SECOND and DSECND will always return 0. -#TIMER = NONE - -# Uncomment the following line to include deprecated routines in -# the LAPACK library. -# -#BUILD_DEPRECATED = Yes - -# LAPACKE has the interface to some routines from tmglib. -# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE. -# -#LAPACKE_WITH_TMG = Yes - -# Location of the extended-precision BLAS (XBLAS) Fortran library -# used for building and testing extended-precision routines. The -# relevant routines will be compiled and XBLAS will be linked only -# if USEXBLAS is defined. -# -#USEXBLAS = Yes -#XBLASLIB = -lxblas - -# The location of the libraries to which you will link. (The -# machine-specific, optimized BLAS library should be used whenever -# possible.) -# -BLASLIB = ../../librefblas.a -CBLASLIB = ../../libcblas.a -LAPACKLIB = liblapack.a -TMGLIB = libtmglib.a -LAPACKELIB = liblapacke.a diff --git a/dspl/liblapack/INSTALL/make.inc.pghpf b/dspl/liblapack/INSTALL/make.inc.pghpf deleted file mode 100644 index 1d9bf54..0000000 --- a/dspl/liblapack/INSTALL/make.inc.pghpf +++ /dev/null @@ -1,82 +0,0 @@ -#################################################################### -# LAPACK make include file. # -# LAPACK, Version 3.7.0 # -# December 2016 # -#################################################################### - -SHELL = /bin/sh - -# CC is the C compiler, normally invoked with options CFLAGS. -# -CC = pghpc -CFLAGS = - -# Modify the FORTRAN and OPTS definitions to refer to the compiler -# and desired compiler options for your machine. NOOPT refers to -# the compiler options desired when NO OPTIMIZATION is selected. -# -FORTRAN = pghpf -OPTS = -O4 -Mnohpfc -Mdclchk -DRVOPTS = $(OPTS) -NOOPT = -Mnohpfc -Mdclchk - -# Define LOADER and LOADOPTS to refer to the loader and desired -# load options for your machine. -# -LOADER = pghpf -LOADOPTS = - -# The archiver and the flag(s) to use when building an archive -# (library). If your system has no ranlib, set RANLIB = echo. -# -ARCH = ar -ARCHFLAGS = cr -RANLIB = echo - -# Timer for the SECOND and DSECND routines -# -# Default: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME -TIMER = EXT_ETIME -# For RS6K: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME_ -#TIMER = EXT_ETIME_ -# For gfortran compiler: SECOND and DSECND will use a call to the -# INTERNAL FUNCTION ETIME -#TIMER = INT_ETIME -# If your Fortran compiler does not provide etime (like Nag Fortran -# Compiler, etc...) SECOND and DSECND will use a call to the -# INTERNAL FUNCTION CPU_TIME -#TIMER = INT_CPU_TIME -# If none of these work, you can use the NONE value. -# In that case, SECOND and DSECND will always return 0. -#TIMER = NONE - -# Uncomment the following line to include deprecated routines in -# the LAPACK library. -# -#BUILD_DEPRECATED = Yes - -# LAPACKE has the interface to some routines from tmglib. -# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE. -# -#LAPACKE_WITH_TMG = Yes - -# Location of the extended-precision BLAS (XBLAS) Fortran library -# used for building and testing extended-precision routines. The -# relevant routines will be compiled and XBLAS will be linked only -# if USEXBLAS is defined. -# -#USEXBLAS = Yes -#XBLASLIB = -lxblas - -# The location of the libraries to which you will link. (The -# machine-specific, optimized BLAS library should be used whenever -# possible.) -# -#BLASLIB = -lessl -BLASLIB = ../../librefblas.a -CBLASLIB = ../../libcblas.a -LAPACKLIB = liblapack.a -TMGLIB = libtmglib.a -LAPACKELIB = liblapacke.a diff --git a/dspl/liblapack/INSTALL/second_EXT_ETIME.f b/dspl/liblapack/INSTALL/second_EXT_ETIME.f deleted file mode 100644 index 43044cd..0000000 --- a/dspl/liblapack/INSTALL/second_EXT_ETIME.f +++ /dev/null @@ -1,63 +0,0 @@ -*> \brief \b SECOND Using ETIME -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* REAL FUNCTION SECOND( ) -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> SECOND returns the user time for a process in seconds. -*> This version gets the time from the EXTERNAL system function ETIME. -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup auxOTHERauxiliary -* -* ===================================================================== - REAL FUNCTION SECOND( ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* ===================================================================== -* -* .. Local Scalars .. - REAL T1 -* .. -* .. Local Arrays .. - REAL TARRAY( 2 ) -* .. -* .. External Functions .. - REAL ETIME - EXTERNAL ETIME -* .. -* .. Executable Statements .. -* - T1 = ETIME( TARRAY ) - SECOND = TARRAY( 1 ) - RETURN -* -* End of SECOND -* - END diff --git a/dspl/liblapack/INSTALL/second_EXT_ETIME_.f b/dspl/liblapack/INSTALL/second_EXT_ETIME_.f deleted file mode 100644 index cb7869e..0000000 --- a/dspl/liblapack/INSTALL/second_EXT_ETIME_.f +++ /dev/null @@ -1,62 +0,0 @@ -*> \brief \b SECOND Using ETIME_ -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* REAL FUNCTION SECOND( ) -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> SECOND returns the user time for a process in seconds. -*> This version gets the time from the system function ETIME_. -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup auxOTHERauxiliary -* -* ===================================================================== - REAL FUNCTION SECOND( ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. -* February 2007 -* ===================================================================== -* -* .. Local Scalars .. - REAL T1 -* .. -* .. Local Arrays .. - REAL TARRAY( 2 ) -* .. -* .. External Functions .. - REAL ETIME_ - EXTERNAL ETIME_ -* .. -* .. Executable Statements .. -* - T1 = ETIME_( TARRAY ) - SECOND = TARRAY( 1 ) - RETURN -* -* End of SECOND -* - END - diff --git a/dspl/liblapack/INSTALL/second_INT_CPU_TIME.f b/dspl/liblapack/INSTALL/second_INT_CPU_TIME.f deleted file mode 100644 index 067151a..0000000 --- a/dspl/liblapack/INSTALL/second_INT_CPU_TIME.f +++ /dev/null @@ -1,61 +0,0 @@ -*> \brief \b SECOND Using INTERNAL function CPU_TIME. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* REAL FUNCTION SECOND( ) -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> SECOND returns the user time for a process in seconds. -*> This version gets the time from the INTERNAL function CPU_TIME. -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup auxOTHERauxiliary -* -* ===================================================================== - REAL FUNCTION SECOND( ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* ===================================================================== -* -* .. Local Scalars .. -* - REAL T -* -* .. Intrinsic Functions .. -* - INTRINSIC CPU_TIME -* -* .. Executable Statements .. * -* - CALL CPU_TIME( T ) - SECOND = T - RETURN -* -* End of SECOND -* - END diff --git a/dspl/liblapack/INSTALL/second_INT_ETIME.f b/dspl/liblapack/INSTALL/second_INT_ETIME.f deleted file mode 100644 index 454718d..0000000 --- a/dspl/liblapack/INSTALL/second_INT_ETIME.f +++ /dev/null @@ -1,63 +0,0 @@ -*> \brief \b SECOND Using the INTERNAL function ETIME. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* REAL FUNCTION SECOND( ) -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> SECOND returns the user time for a process in seconds. -*> This version gets the time from the INTERNAL function ETIME. -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup auxOTHERauxiliary -* -* ===================================================================== - REAL FUNCTION SECOND( ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* ===================================================================== -* -* .. Local Scalars .. - REAL T1 -* .. -* .. Local Arrays .. - REAL TARRAY( 2 ) -* .. -* .. Intrinsic Functions .. - REAL ETIME - INTRINSIC ETIME -* .. -* .. Executable Statements .. -* - T1 = ETIME( TARRAY ) - SECOND = TARRAY( 1 ) - RETURN -* -* End of SECOND -* - END diff --git a/dspl/liblapack/INSTALL/second_NONE.f b/dspl/liblapack/INSTALL/second_NONE.f deleted file mode 100644 index ea983b6..0000000 --- a/dspl/liblapack/INSTALL/second_NONE.f +++ /dev/null @@ -1,52 +0,0 @@ -*> \brief \b SECOND returns nothing -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* REAL FUNCTION SECOND( ) -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> SECOND returns nothing instead of returning the user time for a process in seconds. -*> If you are using that routine, it means that neither EXTERNAL ETIME, -*> EXTERNAL ETIME_, INTERNAL ETIME, INTERNAL CPU_TIME is available on -*> your machine. -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup auxOTHERauxiliary -* -* ===================================================================== - REAL FUNCTION SECOND( ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* ===================================================================== -* - SECOND = 0.0E+0 - RETURN -* -* End of SECOND -* - END diff --git a/dspl/liblapack/INSTALL/secondtst.f b/dspl/liblapack/INSTALL/secondtst.f deleted file mode 100644 index 9eaa181..0000000 --- a/dspl/liblapack/INSTALL/secondtst.f +++ /dev/null @@ -1,123 +0,0 @@ -*> \brief \b SECONDTST -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date November 2017 -* -*> \ingroup auxOTHERcomputational -* -* ===================================================================== PROGRAM SECONDTST -* -* -- LAPACK test routine (version 3.8.0) -- -* -* -- LAPACK computational routine (version 3.8.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2017 -* -* ===================================================================== -* -* .. Parameters .. - INTEGER NMAX, ITS - PARAMETER ( NMAX = 1000, ITS = 50000 ) -* .. -* .. Local Scalars .. - INTEGER I, J - REAL ALPHA, AVG, T1, T2, TNOSEC, TOTAL -* .. -* .. Local Arrays .. - REAL X( NMAX ), Y( NMAX ) -* .. -* .. External Functions .. - REAL SECOND - EXTERNAL SECOND -* .. -* .. External Subroutines .. - EXTERNAL MYSUB -* .. -* .. Intrinsic Functions .. - INTRINSIC REAL -* .. -* .. Executable Statements .. -* -* .. Figure TOTAL flops .. - TOTAL = REAL(NMAX) * REAL(ITS) * 2.0 -* -* Initialize X and Y -* - DO 10 I = 1, NMAX - X( I ) = REAL( 1 ) / REAL( I ) - Y( I ) = REAL( NMAX-I ) / REAL( NMAX ) - 10 CONTINUE - ALPHA = 0.315 -* -* Time TOTAL SAXPY operations -* - T1 = SECOND( ) - DO 30 J = 1, ITS - DO 20 I = 1, NMAX - Y( I ) = Y( I ) + ALPHA*X( I ) - 20 CONTINUE - ALPHA = -ALPHA - 30 CONTINUE - T2 = SECOND( ) - TNOSEC = T2 - T1 - WRITE( 6, 9999 )TOTAL, TNOSEC - IF( TNOSEC.GT.0.0 ) THEN - WRITE( 6, 9998 )(TOTAL/1.0E6)/TNOSEC - ELSE - WRITE( 6, 9994 ) - END IF -* -* Time TOTAL SAXPY operations with SECOND in the outer loop -* - T1 = SECOND( ) - DO 50 J = 1, ITS - DO 40 I = 1, NMAX - Y( I ) = Y( I ) + ALPHA*X( I ) - 40 CONTINUE - ALPHA = -ALPHA - T2 = SECOND( ) - 50 CONTINUE -* -* Compute the time used in milliseconds used by an average call -* to SECOND. -* - WRITE( 6, 9997 )T2 - T1 - AVG = ( ( T2-T1 ) - TNOSEC ) * 1000.0E+00/REAL( ITS ) - IF( AVG.GT.0.0) - $ WRITE( 6, 9996 )AVG -* -* Compute the equivalent number of floating point operations used -* by an average call to SECOND. -* - IF(( AVG.GT.0.0 ).AND.( TNOSEC.GT.0.0 )) - $ WRITE( 6, 9995 )(AVG/1000) * TOTAL / TNOSEC -* - 9999 FORMAT( ' Time for ', G10.3,' SAXPY ops = ', G10.3, ' seconds' ) - 9998 FORMAT( ' SAXPY performance rate = ', G10.3, ' mflops ' ) - 9997 FORMAT( ' Including SECOND, time = ', G10.3, ' seconds' ) - 9996 FORMAT( ' Average time for SECOND = ', G10.3, - $ ' milliseconds' ) - 9995 FORMAT( ' Equivalent floating point ops = ', G10.3, ' ops' ) - 9994 FORMAT( ' *** Warning: Time for operations was less or equal', - $ ' than zero => timing in TESTING might be dubious' ) - CALL MYSUB(NMAX,X,Y) - END - SUBROUTINE MYSUB(N,X,Y) - INTEGER N - REAL X(N), Y(N) - RETURN - END diff --git a/dspl/liblapack/INSTALL/slamch.f b/dspl/liblapack/INSTALL/slamch.f deleted file mode 100644 index 3282fa6..0000000 --- a/dspl/liblapack/INSTALL/slamch.f +++ /dev/null @@ -1,192 +0,0 @@ -*> \brief \b SLAMCH -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* REAL FUNCTION SLAMCH( CMACH ) -* -* .. Scalar Arguments .. -* CHARACTER CMACH -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> SLAMCH determines single precision machine parameters. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] CMACH -*> \verbatim -*> Specifies the value to be returned by SLAMCH: -*> = 'E' or 'e', SLAMCH := eps -*> = 'S' or 's , SLAMCH := sfmin -*> = 'B' or 'b', SLAMCH := base -*> = 'P' or 'p', SLAMCH := eps*base -*> = 'N' or 'n', SLAMCH := t -*> = 'R' or 'r', SLAMCH := rnd -*> = 'M' or 'm', SLAMCH := emin -*> = 'U' or 'u', SLAMCH := rmin -*> = 'L' or 'l', SLAMCH := emax -*> = 'O' or 'o', SLAMCH := rmax -*> where -*> eps = relative machine precision -*> sfmin = safe minimum, such that 1/sfmin does not overflow -*> base = base of the machine -*> prec = eps*base -*> t = number of (base) digits in the mantissa -*> rnd = 1.0 when rounding occurs in addition, 0.0 otherwise -*> emin = minimum exponent before (gradual) underflow -*> rmin = underflow threshold - base**(emin-1) -*> emax = largest exponent before overflow -*> rmax = overflow threshold - (base**emax)*(1-eps) -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup auxOTHERauxiliary -* -* ===================================================================== - REAL FUNCTION SLAMCH( CMACH ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER CMACH -* .. -* -* ===================================================================== -* -* .. Parameters .. - REAL ONE, ZERO - PARAMETER ( ONE = 1.0E+0, ZERO = 0.0E+0 ) -* .. -* .. Local Scalars .. - REAL RND, EPS, SFMIN, SMALL, RMACH -* .. -* .. External Functions .. - LOGICAL LSAME - EXTERNAL LSAME -* .. -* .. Intrinsic Functions .. - INTRINSIC DIGITS, EPSILON, HUGE, MAXEXPONENT, - $ MINEXPONENT, RADIX, TINY -* .. -* .. Executable Statements .. -* -* -* Assume rounding, not chopping. Always. -* - RND = ONE -* - IF( ONE.EQ.RND ) THEN - EPS = EPSILON(ZERO) * 0.5 - ELSE - EPS = EPSILON(ZERO) - END IF -* - IF( LSAME( CMACH, 'E' ) ) THEN - RMACH = EPS - ELSE IF( LSAME( CMACH, 'S' ) ) THEN - SFMIN = TINY(ZERO) - SMALL = ONE / HUGE(ZERO) - IF( SMALL.GE.SFMIN ) THEN -* -* Use SMALL plus a bit, to avoid the possibility of rounding -* causing overflow when computing 1/sfmin. -* - SFMIN = SMALL*( ONE+EPS ) - END IF - RMACH = SFMIN - ELSE IF( LSAME( CMACH, 'B' ) ) THEN - RMACH = RADIX(ZERO) - ELSE IF( LSAME( CMACH, 'P' ) ) THEN - RMACH = EPS * RADIX(ZERO) - ELSE IF( LSAME( CMACH, 'N' ) ) THEN - RMACH = DIGITS(ZERO) - ELSE IF( LSAME( CMACH, 'R' ) ) THEN - RMACH = RND - ELSE IF( LSAME( CMACH, 'M' ) ) THEN - RMACH = MINEXPONENT(ZERO) - ELSE IF( LSAME( CMACH, 'U' ) ) THEN - RMACH = tiny(zero) - ELSE IF( LSAME( CMACH, 'L' ) ) THEN - RMACH = MAXEXPONENT(ZERO) - ELSE IF( LSAME( CMACH, 'O' ) ) THEN - RMACH = HUGE(ZERO) - ELSE - RMACH = ZERO - END IF -* - SLAMCH = RMACH - RETURN -* -* End of SLAMCH -* - END -************************************************************************ -*> \brief \b SLAMC3 -*> \details -*> \b Purpose: -*> \verbatim -*> SLAMC3 is intended to force A and B to be stored prior to doing -*> the addition of A and B , for use in situations where optimizers -*> might hold one of these in a register. -*> \endverbatim -*> \author LAPACK is a software package provided by Univ. of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd.. -*> \date December 2016 -*> \ingroup auxOTHERauxiliary -*> -*> \param[in] A -*> \verbatim -*> \endverbatim -*> -*> \param[in] B -*> \verbatim -*> The values A and B. -*> \endverbatim -*> -* - REAL FUNCTION SLAMC3( A, B ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. -* November 2010 -* -* .. Scalar Arguments .. - REAL A, B -* .. -* ===================================================================== -* -* .. Executable Statements .. -* - SLAMC3 = A + B -* - RETURN -* -* End of SLAMC3 -* - END -* -************************************************************************ diff --git a/dspl/liblapack/INSTALL/slamchf77.f b/dspl/liblapack/INSTALL/slamchf77.f deleted file mode 100644 index fe7cc4e..0000000 --- a/dspl/liblapack/INSTALL/slamchf77.f +++ /dev/null @@ -1,924 +0,0 @@ -*> \brief \b SLAMCHF77 deprecated -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* REAL FUNCTION SLAMCH( CMACH ) -* -* .. Scalar Arguments .. -* CHARACTER CMACH -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> SLAMCH determines single precision machine parameters. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] CMACH -*> \verbatim -*> Specifies the value to be returned by SLAMCH: -*> = 'E' or 'e', SLAMCH := eps -*> = 'S' or 's , SLAMCH := sfmin -*> = 'B' or 'b', SLAMCH := base -*> = 'P' or 'p', SLAMCH := eps*base -*> = 'N' or 'n', SLAMCH := t -*> = 'R' or 'r', SLAMCH := rnd -*> = 'M' or 'm', SLAMCH := emin -*> = 'U' or 'u', SLAMCH := rmin -*> = 'L' or 'l', SLAMCH := emax -*> = 'O' or 'o', SLAMCH := rmax -*> where -*> eps = relative machine precision -*> sfmin = safe minimum, such that 1/sfmin does not overflow -*> base = base of the machine -*> prec = eps*base -*> t = number of (base) digits in the mantissa -*> rnd = 1.0 when rounding occurs in addition, 0.0 otherwise -*> emin = minimum exponent before (gradual) underflow -*> rmin = underflow threshold - base**(emin-1) -*> emax = largest exponent before overflow -*> rmax = overflow threshold - (base**emax)*(1-eps) -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date April 2012 -* -*> \ingroup auxOTHERauxiliary -* -* ===================================================================== - REAL FUNCTION SLAMCH( CMACH ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* April 2012 -* -* .. Scalar Arguments .. - CHARACTER CMACH -* .. -* .. Parameters .. - REAL ONE, ZERO - PARAMETER ( ONE = 1.0E+0, ZERO = 0.0E+0 ) -* .. -* .. Local Scalars .. - LOGICAL FIRST, LRND - INTEGER BETA, IMAX, IMIN, IT - REAL BASE, EMAX, EMIN, EPS, PREC, RMACH, RMAX, RMIN, - $ RND, SFMIN, SMALL, T -* .. -* .. External Functions .. - LOGICAL LSAME - EXTERNAL LSAME -* .. -* .. External Subroutines .. - EXTERNAL SLAMC2 -* .. -* .. Save statement .. - SAVE FIRST, EPS, SFMIN, BASE, T, RND, EMIN, RMIN, - $ EMAX, RMAX, PREC -* .. -* .. Data statements .. - DATA FIRST / .TRUE. / -* .. -* .. Executable Statements .. -* - IF( FIRST ) THEN - CALL SLAMC2( BETA, IT, LRND, EPS, IMIN, RMIN, IMAX, RMAX ) - BASE = BETA - T = IT - IF( LRND ) THEN - RND = ONE - EPS = ( BASE**( 1-IT ) ) / 2 - ELSE - RND = ZERO - EPS = BASE**( 1-IT ) - END IF - PREC = EPS*BASE - EMIN = IMIN - EMAX = IMAX - SFMIN = RMIN - SMALL = ONE / RMAX - IF( SMALL.GE.SFMIN ) THEN -* -* Use SMALL plus a bit, to avoid the possibility of rounding -* causing overflow when computing 1/sfmin. -* - SFMIN = SMALL*( ONE+EPS ) - END IF - END IF -* - IF( LSAME( CMACH, 'E' ) ) THEN - RMACH = EPS - ELSE IF( LSAME( CMACH, 'S' ) ) THEN - RMACH = SFMIN - ELSE IF( LSAME( CMACH, 'B' ) ) THEN - RMACH = BASE - ELSE IF( LSAME( CMACH, 'P' ) ) THEN - RMACH = PREC - ELSE IF( LSAME( CMACH, 'N' ) ) THEN - RMACH = T - ELSE IF( LSAME( CMACH, 'R' ) ) THEN - RMACH = RND - ELSE IF( LSAME( CMACH, 'M' ) ) THEN - RMACH = EMIN - ELSE IF( LSAME( CMACH, 'U' ) ) THEN - RMACH = RMIN - ELSE IF( LSAME( CMACH, 'L' ) ) THEN - RMACH = EMAX - ELSE IF( LSAME( CMACH, 'O' ) ) THEN - RMACH = RMAX - END IF -* - SLAMCH = RMACH - FIRST = .FALSE. - RETURN -* -* End of SLAMCH -* - END -* -************************************************************************ -* -*> \brief \b SLAMC1 -*> \details -*> \b Purpose: -*> \verbatim -*> SLAMC1 determines the machine parameters given by BETA, T, RND, and -*> IEEE1. -*> \endverbatim -*> -*> \param[out] BETA -*> \verbatim -*> The base of the machine. -*> \endverbatim -*> -*> \param[out] T -*> \verbatim -*> The number of ( BETA ) digits in the mantissa. -*> \endverbatim -*> -*> \param[out] RND -*> \verbatim -*> Specifies whether proper rounding ( RND = .TRUE. ) or -*> chopping ( RND = .FALSE. ) occurs in addition. This may not -*> be a reliable guide to the way in which the machine performs -*> its arithmetic. -*> \endverbatim -*> -*> \param[out] IEEE1 -*> \verbatim -*> Specifies whether rounding appears to be done in the IEEE -*> 'round to nearest' style. -*> \endverbatim -*> \author LAPACK is a software package provided by Univ. of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd.. -*> \date April 2012 -*> \ingroup auxOTHERauxiliary -*> -*> \details \b Further \b Details -*> \verbatim -*> -*> The routine is based on the routine ENVRON by Malcolm and -*> incorporates suggestions by Gentleman and Marovich. See -*> -*> Malcolm M. A. (1972) Algorithms to reveal properties of -*> floating-point arithmetic. Comms. of the ACM, 15, 949-951. -*> -*> Gentleman W. M. and Marovich S. B. (1974) More on algorithms -*> that reveal properties of floating point arithmetic units. -*> Comms. of the ACM, 17, 276-277. -*> \endverbatim -*> - SUBROUTINE SLAMC1( BETA, T, RND, IEEE1 ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. -* November 2010 -* -* .. Scalar Arguments .. - LOGICAL IEEE1, RND - INTEGER BETA, T -* .. -* ===================================================================== -* -* .. Local Scalars .. - LOGICAL FIRST, LIEEE1, LRND - INTEGER LBETA, LT - REAL A, B, C, F, ONE, QTR, SAVEC, T1, T2 -* .. -* .. External Functions .. - REAL SLAMC3 - EXTERNAL SLAMC3 -* .. -* .. Save statement .. - SAVE FIRST, LIEEE1, LBETA, LRND, LT -* .. -* .. Data statements .. - DATA FIRST / .TRUE. / -* .. -* .. Executable Statements .. -* - IF( FIRST ) THEN - ONE = 1 -* -* LBETA, LIEEE1, LT and LRND are the local values of BETA, -* IEEE1, T and RND. -* -* Throughout this routine we use the function SLAMC3 to ensure -* that relevant values are stored and not held in registers, or -* are not affected by optimizers. -* -* Compute a = 2.0**m with the smallest positive integer m such -* that -* -* fl( a + 1.0 ) = a. -* - A = 1 - C = 1 -* -*+ WHILE( C.EQ.ONE )LOOP - 10 CONTINUE - IF( C.EQ.ONE ) THEN - A = 2*A - C = SLAMC3( A, ONE ) - C = SLAMC3( C, -A ) - GO TO 10 - END IF -*+ END WHILE -* -* Now compute b = 2.0**m with the smallest positive integer m -* such that -* -* fl( a + b ) .gt. a. -* - B = 1 - C = SLAMC3( A, B ) -* -*+ WHILE( C.EQ.A )LOOP - 20 CONTINUE - IF( C.EQ.A ) THEN - B = 2*B - C = SLAMC3( A, B ) - GO TO 20 - END IF -*+ END WHILE -* -* Now compute the base. a and c are neighbouring floating point -* numbers in the interval ( beta**t, beta**( t + 1 ) ) and so -* their difference is beta. Adding 0.25 to c is to ensure that it -* is truncated to beta and not ( beta - 1 ). -* - QTR = ONE / 4 - SAVEC = C - C = SLAMC3( C, -A ) - LBETA = C + QTR -* -* Now determine whether rounding or chopping occurs, by adding a -* bit less than beta/2 and a bit more than beta/2 to a. -* - B = LBETA - F = SLAMC3( B / 2, -B / 100 ) - C = SLAMC3( F, A ) - IF( C.EQ.A ) THEN - LRND = .TRUE. - ELSE - LRND = .FALSE. - END IF - F = SLAMC3( B / 2, B / 100 ) - C = SLAMC3( F, A ) - IF( ( LRND ) .AND. ( C.EQ.A ) ) - $ LRND = .FALSE. -* -* Try and decide whether rounding is done in the IEEE 'round to -* nearest' style. B/2 is half a unit in the last place of the two -* numbers A and SAVEC. Furthermore, A is even, i.e. has last bit -* zero, and SAVEC is odd. Thus adding B/2 to A should not change -* A, but adding B/2 to SAVEC should change SAVEC. -* - T1 = SLAMC3( B / 2, A ) - T2 = SLAMC3( B / 2, SAVEC ) - LIEEE1 = ( T1.EQ.A ) .AND. ( T2.GT.SAVEC ) .AND. LRND -* -* Now find the mantissa, t. It should be the integer part of -* log to the base beta of a, however it is safer to determine t -* by powering. So we find t as the smallest positive integer for -* which -* -* fl( beta**t + 1.0 ) = 1.0. -* - LT = 0 - A = 1 - C = 1 -* -*+ WHILE( C.EQ.ONE )LOOP - 30 CONTINUE - IF( C.EQ.ONE ) THEN - LT = LT + 1 - A = A*LBETA - C = SLAMC3( A, ONE ) - C = SLAMC3( C, -A ) - GO TO 30 - END IF -*+ END WHILE -* - END IF -* - BETA = LBETA - T = LT - RND = LRND - IEEE1 = LIEEE1 - FIRST = .FALSE. - RETURN -* -* End of SLAMC1 -* - END -* -************************************************************************ -* -*> \brief \b SLAMC2 -*> \details -*> \b Purpose: -*> \verbatim -*> SLAMC2 determines the machine parameters specified in its argument -*> list. -*> \endverbatim -*> \author LAPACK is a software package provided by Univ. of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd.. -*> \date April 2012 -*> \ingroup auxOTHERauxiliary -*> -*> \param[out] BETA -*> \verbatim -*> The base of the machine. -*> \endverbatim -*> -*> \param[out] T -*> \verbatim -*> The number of ( BETA ) digits in the mantissa. -*> \endverbatim -*> -*> \param[out] RND -*> \verbatim -*> Specifies whether proper rounding ( RND = .TRUE. ) or -*> chopping ( RND = .FALSE. ) occurs in addition. This may not -*> be a reliable guide to the way in which the machine performs -*> its arithmetic. -*> \endverbatim -*> -*> \param[out] EPS -*> \verbatim -*> The smallest positive number such that -*> fl( 1.0 - EPS ) .LT. 1.0, -*> where fl denotes the computed value. -*> \endverbatim -*> -*> \param[out] EMIN -*> \verbatim -*> The minimum exponent before (gradual) underflow occurs. -*> \endverbatim -*> -*> \param[out] RMIN -*> \verbatim -*> The smallest normalized number for the machine, given by -*> BASE**( EMIN - 1 ), where BASE is the floating point value -*> of BETA. -*> \endverbatim -*> -*> \param[out] EMAX -*> \verbatim -*> The maximum exponent before overflow occurs. -*> \endverbatim -*> -*> \param[out] RMAX -*> \verbatim -*> The largest positive number for the machine, given by -*> BASE**EMAX * ( 1 - EPS ), where BASE is the floating point -*> value of BETA. -*> \endverbatim -*> -*> \details \b Further \b Details -*> \verbatim -*> -*> The computation of EPS is based on a routine PARANOIA by -*> W. Kahan of the University of California at Berkeley. -*> \endverbatim - SUBROUTINE SLAMC2( BETA, T, RND, EPS, EMIN, RMIN, EMAX, RMAX ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. -* November 2010 -* -* .. Scalar Arguments .. - LOGICAL RND - INTEGER BETA, EMAX, EMIN, T - REAL EPS, RMAX, RMIN -* .. -* ===================================================================== -* -* .. Local Scalars .. - LOGICAL FIRST, IEEE, IWARN, LIEEE1, LRND - INTEGER GNMIN, GPMIN, I, LBETA, LEMAX, LEMIN, LT, - $ NGNMIN, NGPMIN - REAL A, B, C, HALF, LEPS, LRMAX, LRMIN, ONE, RBASE, - $ SIXTH, SMALL, THIRD, TWO, ZERO -* .. -* .. External Functions .. - REAL SLAMC3 - EXTERNAL SLAMC3 -* .. -* .. External Subroutines .. - EXTERNAL SLAMC1, SLAMC4, SLAMC5 -* .. -* .. Intrinsic Functions .. - INTRINSIC ABS, MAX, MIN -* .. -* .. Save statement .. - SAVE FIRST, IWARN, LBETA, LEMAX, LEMIN, LEPS, LRMAX, - $ LRMIN, LT -* .. -* .. Data statements .. - DATA FIRST / .TRUE. / , IWARN / .FALSE. / -* .. -* .. Executable Statements .. -* - IF( FIRST ) THEN - ZERO = 0 - ONE = 1 - TWO = 2 -* -* LBETA, LT, LRND, LEPS, LEMIN and LRMIN are the local values of -* BETA, T, RND, EPS, EMIN and RMIN. -* -* Throughout this routine we use the function SLAMC3 to ensure -* that relevant values are stored and not held in registers, or -* are not affected by optimizers. -* -* SLAMC1 returns the parameters LBETA, LT, LRND and LIEEE1. -* - CALL SLAMC1( LBETA, LT, LRND, LIEEE1 ) -* -* Start to find EPS. -* - B = LBETA - A = B**( -LT ) - LEPS = A -* -* Try some tricks to see whether or not this is the correct EPS. -* - B = TWO / 3 - HALF = ONE / 2 - SIXTH = SLAMC3( B, -HALF ) - THIRD = SLAMC3( SIXTH, SIXTH ) - B = SLAMC3( THIRD, -HALF ) - B = SLAMC3( B, SIXTH ) - B = ABS( B ) - IF( B.LT.LEPS ) - $ B = LEPS -* - LEPS = 1 -* -*+ WHILE( ( LEPS.GT.B ).AND.( B.GT.ZERO ) )LOOP - 10 CONTINUE - IF( ( LEPS.GT.B ) .AND. ( B.GT.ZERO ) ) THEN - LEPS = B - C = SLAMC3( HALF*LEPS, ( TWO**5 )*( LEPS**2 ) ) - C = SLAMC3( HALF, -C ) - B = SLAMC3( HALF, C ) - C = SLAMC3( HALF, -B ) - B = SLAMC3( HALF, C ) - GO TO 10 - END IF -*+ END WHILE -* - IF( A.LT.LEPS ) - $ LEPS = A -* -* Computation of EPS complete. -* -* Now find EMIN. Let A = + or - 1, and + or - (1 + BASE**(-3)). -* Keep dividing A by BETA until (gradual) underflow occurs. This -* is detected when we cannot recover the previous A. -* - RBASE = ONE / LBETA - SMALL = ONE - DO 20 I = 1, 3 - SMALL = SLAMC3( SMALL*RBASE, ZERO ) - 20 CONTINUE - A = SLAMC3( ONE, SMALL ) - CALL SLAMC4( NGPMIN, ONE, LBETA ) - CALL SLAMC4( NGNMIN, -ONE, LBETA ) - CALL SLAMC4( GPMIN, A, LBETA ) - CALL SLAMC4( GNMIN, -A, LBETA ) - IEEE = .FALSE. -* - IF( ( NGPMIN.EQ.NGNMIN ) .AND. ( GPMIN.EQ.GNMIN ) ) THEN - IF( NGPMIN.EQ.GPMIN ) THEN - LEMIN = NGPMIN -* ( Non twos-complement machines, no gradual underflow; -* e.g., VAX ) - ELSE IF( ( GPMIN-NGPMIN ).EQ.3 ) THEN - LEMIN = NGPMIN - 1 + LT - IEEE = .TRUE. -* ( Non twos-complement machines, with gradual underflow; -* e.g., IEEE standard followers ) - ELSE - LEMIN = MIN( NGPMIN, GPMIN ) -* ( A guess; no known machine ) - IWARN = .TRUE. - END IF -* - ELSE IF( ( NGPMIN.EQ.GPMIN ) .AND. ( NGNMIN.EQ.GNMIN ) ) THEN - IF( ABS( NGPMIN-NGNMIN ).EQ.1 ) THEN - LEMIN = MAX( NGPMIN, NGNMIN ) -* ( Twos-complement machines, no gradual underflow; -* e.g., CYBER 205 ) - ELSE - LEMIN = MIN( NGPMIN, NGNMIN ) -* ( A guess; no known machine ) - IWARN = .TRUE. - END IF -* - ELSE IF( ( ABS( NGPMIN-NGNMIN ).EQ.1 ) .AND. - $ ( GPMIN.EQ.GNMIN ) ) THEN - IF( ( GPMIN-MIN( NGPMIN, NGNMIN ) ).EQ.3 ) THEN - LEMIN = MAX( NGPMIN, NGNMIN ) - 1 + LT -* ( Twos-complement machines with gradual underflow; -* no known machine ) - ELSE - LEMIN = MIN( NGPMIN, NGNMIN ) -* ( A guess; no known machine ) - IWARN = .TRUE. - END IF -* - ELSE - LEMIN = MIN( NGPMIN, NGNMIN, GPMIN, GNMIN ) -* ( A guess; no known machine ) - IWARN = .TRUE. - END IF - FIRST = .FALSE. -*** -* Comment out this if block if EMIN is ok - IF( IWARN ) THEN - FIRST = .TRUE. - WRITE( 6, FMT = 9999 )LEMIN - END IF -*** -* -* Assume IEEE arithmetic if we found denormalised numbers above, -* or if arithmetic seems to round in the IEEE style, determined -* in routine SLAMC1. A true IEEE machine should have both things -* true; however, faulty machines may have one or the other. -* - IEEE = IEEE .OR. LIEEE1 -* -* Compute RMIN by successive division by BETA. We could compute -* RMIN as BASE**( EMIN - 1 ), but some machines underflow during -* this computation. -* - LRMIN = 1 - DO 30 I = 1, 1 - LEMIN - LRMIN = SLAMC3( LRMIN*RBASE, ZERO ) - 30 CONTINUE -* -* Finally, call SLAMC5 to compute EMAX and RMAX. -* - CALL SLAMC5( LBETA, LT, LEMIN, IEEE, LEMAX, LRMAX ) - END IF -* - BETA = LBETA - T = LT - RND = LRND - EPS = LEPS - EMIN = LEMIN - RMIN = LRMIN - EMAX = LEMAX - RMAX = LRMAX -* - RETURN -* - 9999 FORMAT( / / ' WARNING. The value EMIN may be incorrect:-', - $ ' EMIN = ', I8, / - $ ' If, after inspection, the value EMIN looks', - $ ' acceptable please comment out ', - $ / ' the IF block as marked within the code of routine', - $ ' SLAMC2,', / ' otherwise supply EMIN explicitly.', / ) -* -* End of SLAMC2 -* - END -* -************************************************************************ -* -*> \brief \b SLAMC3 -*> \details -*> \b Purpose: -*> \verbatim -*> SLAMC3 is intended to force A and B to be stored prior to doing -*> the addition of A and B , for use in situations where optimizers -*> might hold one of these in a register. -*> \endverbatim -*> -*> \param[in] A -*> -*> \param[in] B -*> \verbatim -*> The values A and B. -*> \endverbatim - - REAL FUNCTION SLAMC3( A, B ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. -* November 2010 -* -* .. Scalar Arguments .. - REAL A, B -* .. -* ===================================================================== -* -* .. Executable Statements .. -* - SLAMC3 = A + B -* - RETURN -* -* End of SLAMC3 -* - END -* -************************************************************************ -* -*> \brief \b SLAMC4 -*> \details -*> \b Purpose: -*> \verbatim -*> SLAMC4 is a service routine for SLAMC2. -*> \endverbatim -*> -*> \param[out] EMIN -*> \verbatim -*> The minimum exponent before (gradual) underflow, computed by -*> setting A = START and dividing by BASE until the previous A -*> can not be recovered. -*> \endverbatim -*> -*> \param[in] START -*> \verbatim -*> The starting point for determining EMIN. -*> \endverbatim -*> -*> \param[in] BASE -*> \verbatim -*> The base of the machine. -*> \endverbatim -*> - SUBROUTINE SLAMC4( EMIN, START, BASE ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. -* November 2010 -* -* .. Scalar Arguments .. - INTEGER BASE - INTEGER EMIN - REAL START -* .. -* ===================================================================== -* -* .. Local Scalars .. - INTEGER I - REAL A, B1, B2, C1, C2, D1, D2, ONE, RBASE, ZERO -* .. -* .. External Functions .. - REAL SLAMC3 - EXTERNAL SLAMC3 -* .. -* .. Executable Statements .. -* - A = START - ONE = 1 - RBASE = ONE / BASE - ZERO = 0 - EMIN = 1 - B1 = SLAMC3( A*RBASE, ZERO ) - C1 = A - C2 = A - D1 = A - D2 = A -*+ WHILE( ( C1.EQ.A ).AND.( C2.EQ.A ).AND. -* $ ( D1.EQ.A ).AND.( D2.EQ.A ) )LOOP - 10 CONTINUE - IF( ( C1.EQ.A ) .AND. ( C2.EQ.A ) .AND. ( D1.EQ.A ) .AND. - $ ( D2.EQ.A ) ) THEN - EMIN = EMIN - 1 - A = B1 - B1 = SLAMC3( A / BASE, ZERO ) - C1 = SLAMC3( B1*BASE, ZERO ) - D1 = ZERO - DO 20 I = 1, BASE - D1 = D1 + B1 - 20 CONTINUE - B2 = SLAMC3( A*RBASE, ZERO ) - C2 = SLAMC3( B2 / RBASE, ZERO ) - D2 = ZERO - DO 30 I = 1, BASE - D2 = D2 + B2 - 30 CONTINUE - GO TO 10 - END IF -*+ END WHILE -* - RETURN -* -* End of SLAMC4 -* - END -* -************************************************************************ -* -*> \brief \b SLAMC5 -*> \details -*> \b Purpose: -*> \verbatim -*> SLAMC5 attempts to compute RMAX, the largest machine floating-point -*> number, without overflow. It assumes that EMAX + abs(EMIN) sum -*> approximately to a power of 2. It will fail on machines where this -*> assumption does not hold, for example, the Cyber 205 (EMIN = -28625, -*> EMAX = 28718). It will also fail if the value supplied for EMIN is -*> too large (i.e. too close to zero), probably with overflow. -*> \endverbatim -*> -*> \param[in] BETA -*> \verbatim -*> The base of floating-point arithmetic. -*> \endverbatim -*> -*> \param[in] P -*> \verbatim -*> The number of base BETA digits in the mantissa of a -*> floating-point value. -*> \endverbatim -*> -*> \param[in] EMIN -*> \verbatim -*> The minimum exponent before (gradual) underflow. -*> \endverbatim -*> -*> \param[in] IEEE -*> \verbatim -*> A logical flag specifying whether or not the arithmetic -*> system is thought to comply with the IEEE standard. -*> \endverbatim -*> -*> \param[out] EMAX -*> \verbatim -*> The largest exponent before overflow -*> \endverbatim -*> -*> \param[out] RMAX -*> \verbatim -*> The largest machine floating-point number. -*> \endverbatim -*> - SUBROUTINE SLAMC5( BETA, P, EMIN, IEEE, EMAX, RMAX ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. -* November 2010 -* -* .. Scalar Arguments .. - LOGICAL IEEE - INTEGER BETA, EMAX, EMIN, P - REAL RMAX -* .. -* ===================================================================== -* -* .. Parameters .. - REAL ZERO, ONE - PARAMETER ( ZERO = 0.0E0, ONE = 1.0E0 ) -* .. -* .. Local Scalars .. - INTEGER EXBITS, EXPSUM, I, LEXP, NBITS, TRY, UEXP - REAL OLDY, RECBAS, Y, Z -* .. -* .. External Functions .. - REAL SLAMC3 - EXTERNAL SLAMC3 -* .. -* .. Intrinsic Functions .. - INTRINSIC MOD -* .. -* .. Executable Statements .. -* -* First compute LEXP and UEXP, two powers of 2 that bound -* abs(EMIN). We then assume that EMAX + abs(EMIN) will sum -* approximately to the bound that is closest to abs(EMIN). -* (EMAX is the exponent of the required number RMAX). -* - LEXP = 1 - EXBITS = 1 - 10 CONTINUE - TRY = LEXP*2 - IF( TRY.LE.( -EMIN ) ) THEN - LEXP = TRY - EXBITS = EXBITS + 1 - GO TO 10 - END IF - IF( LEXP.EQ.-EMIN ) THEN - UEXP = LEXP - ELSE - UEXP = TRY - EXBITS = EXBITS + 1 - END IF -* -* Now -LEXP is less than or equal to EMIN, and -UEXP is greater -* than or equal to EMIN. EXBITS is the number of bits needed to -* store the exponent. -* - IF( ( UEXP+EMIN ).GT.( -LEXP-EMIN ) ) THEN - EXPSUM = 2*LEXP - ELSE - EXPSUM = 2*UEXP - END IF -* -* EXPSUM is the exponent range, approximately equal to -* EMAX - EMIN + 1 . -* - EMAX = EXPSUM + EMIN - 1 - NBITS = 1 + EXBITS + P -* -* NBITS is the total number of bits needed to store a -* floating-point number. -* - IF( ( MOD( NBITS, 2 ).EQ.1 ) .AND. ( BETA.EQ.2 ) ) THEN -* -* Either there are an odd number of bits used to store a -* floating-point number, which is unlikely, or some bits are -* not used in the representation of numbers, which is possible, -* (e.g. Cray machines) or the mantissa has an implicit bit, -* (e.g. IEEE machines, Dec Vax machines), which is perhaps the -* most likely. We have to assume the last alternative. -* If this is true, then we need to reduce EMAX by one because -* there must be some way of representing zero in an implicit-bit -* system. On machines like Cray, we are reducing EMAX by one -* unnecessarily. -* - EMAX = EMAX - 1 - END IF -* - IF( IEEE ) THEN -* -* Assume we are on an IEEE machine which reserves one exponent -* for infinity and NaN. -* - EMAX = EMAX - 1 - END IF -* -* Now create RMAX, the largest machine number, which should -* be equal to (1.0 - BETA**(-P)) * BETA**EMAX . -* -* First compute 1.0 - BETA**(-P), being careful that the -* result is less than 1.0 . -* - RECBAS = ONE / BETA - Z = BETA - ONE - Y = ZERO - DO 20 I = 1, P - Z = Z*RECBAS - IF( Y.LT.ONE ) - $ OLDY = Y - Y = SLAMC3( Y, Z ) - 20 CONTINUE - IF( Y.GE.ONE ) - $ Y = OLDY -* -* Now multiply by BETA**EMAX to get RMAX. -* - DO 30 I = 1, EMAX - Y = SLAMC3( Y*BETA, ZERO ) - 30 CONTINUE -* - RMAX = Y - RETURN -* -* End of SLAMC5 -* - END diff --git a/dspl/liblapack/INSTALL/slamchtst.f b/dspl/liblapack/INSTALL/slamchtst.f deleted file mode 100644 index da8bc99..0000000 --- a/dspl/liblapack/INSTALL/slamchtst.f +++ /dev/null @@ -1,63 +0,0 @@ -*> \brief \b SLAMCHTST -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup auxOTHERcomputational -* -* ===================================================================== PROGRAM SLAMCHTST -* -* -- LAPACK test routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* ===================================================================== -* -* .. Local Scalars .. - REAL BASE, EMAX, EMIN, EPS, RMAX, RMIN, RND, SFMIN, - $ T, PREC -* .. -* .. External Functions .. - REAL SLAMCH - EXTERNAL SLAMCH -* .. -* .. Executable Statements .. -* - EPS = SLAMCH( 'Epsilon' ) - SFMIN = SLAMCH( 'Safe minimum' ) - BASE = SLAMCH( 'Base' ) - PREC = SLAMCH( 'Precision' ) - T = SLAMCH( 'Number of digits in mantissa' ) - RND = SLAMCH( 'Rounding mode' ) - EMIN = SLAMCH( 'Minimum exponent' ) - RMIN = SLAMCH( 'Underflow threshold' ) - EMAX = SLAMCH( 'Largest exponent' ) - RMAX = SLAMCH( 'Overflow threshold' ) -* - WRITE( 6, * )' Epsilon = ', EPS - WRITE( 6, * )' Safe minimum = ', SFMIN - WRITE( 6, * )' Base = ', BASE - WRITE( 6, * )' Precision = ', PREC - WRITE( 6, * )' Number of digits in mantissa = ', T - WRITE( 6, * )' Rounding mode = ', RND - WRITE( 6, * )' Minimum exponent = ', EMIN - WRITE( 6, * )' Underflow threshold = ', RMIN - WRITE( 6, * )' Largest exponent = ', EMAX - WRITE( 6, * )' Overflow threshold = ', RMAX - WRITE( 6, * )' Reciprocal of safe minimum = ', 1 / SFMIN -* - END diff --git a/dspl/liblapack/INSTALL/tstiee.f b/dspl/liblapack/INSTALL/tstiee.f deleted file mode 100644 index 210abe4..0000000 --- a/dspl/liblapack/INSTALL/tstiee.f +++ /dev/null @@ -1,770 +0,0 @@ -*> \brief \b TSTIEE -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup auxOTHERauxiliary -* -* ===================================================================== - PROGRAM TSTIEE -* -* -- LAPACK test routine (version 3.7.0) -- -* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. -* November 2006 -* -* .. External Functions .. - INTEGER ILAENV - EXTERNAL ILAENV -* .. -* .. Local Scalars .. - INTEGER IEEEOK -* .. -* .. Executable Statements .. -* - WRITE( 6, FMT = * ) - $ 'We are about to check whether infinity arithmetic' - WRITE( 6, FMT = * )'can be trusted. If this test hangs, set' - WRITE( 6, FMT = * ) - $ 'ILAENV = 0 for ISPEC = 10 in LAPACK/SRC/ilaenv.f' -* - IEEEOK = ILAENV( 10, 'ILAENV', 'N', 1, 2, 3, 4 ) - WRITE( 6, FMT = * ) -* - IF( IEEEOK.EQ.0 ) THEN - WRITE( 6, FMT = * ) - $ 'Infinity arithmetic did not perform per the ieee spec' - ELSE - WRITE( 6, FMT = * ) - $ 'Infinity arithmetic performed as per the ieee spec.' - WRITE( 6, FMT = * ) - $ 'However, this is not an exhaustive test and does not' - WRITE( 6, FMT = * ) - $ 'guarantee that infinity arithmetic meets the', - $ ' ieee spec.' - END IF -* - WRITE( 6, FMT = * ) - WRITE( 6, FMT = * ) - $ 'We are about to check whether NaN arithmetic' - WRITE( 6, FMT = * )'can be trusted. If this test hangs, set' - WRITE( 6, FMT = * ) - $ 'ILAENV = 0 for ISPEC = 11 in LAPACK/SRC/ilaenv.f' - IEEEOK = ILAENV( 11, 'ILAENV', 'N', 1, 2, 3, 4 ) -* - WRITE( 6, FMT = * ) - IF( IEEEOK.EQ.0 ) THEN - WRITE( 6, FMT = * ) - $ 'NaN arithmetic did not perform per the ieee spec' - ELSE - WRITE( 6, FMT = * )'NaN arithmetic performed as per the ieee', - $ ' spec.' - WRITE( 6, FMT = * ) - $ 'However, this is not an exhaustive test and does not' - WRITE( 6, FMT = * )'guarantee that NaN arithmetic meets the', - $ ' ieee spec.' - END IF - WRITE( 6, FMT = * ) -* - END - INTEGER FUNCTION ILAENV( ISPEC, NAME, OPTS, N1, N2, N3, - $ N4 ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. -* November 2006 -* -* .. Scalar Arguments .. - CHARACTER*( * ) NAME, OPTS - INTEGER ISPEC, N1, N2, N3, N4 -* .. -* -* Purpose -* ======= -* -* ILAENV is called from the LAPACK routines to choose problem-dependent -* parameters for the local environment. See ISPEC for a description of -* the parameters. -* -* This version provides a set of parameters which should give good, -* but not optimal, performance on many of the currently available -* computers. Users are encouraged to modify this subroutine to set -* the tuning parameters for their particular machine using the option -* and problem size information in the arguments. -* -* This routine will not function correctly if it is converted to all -* lower case. Converting it to all upper case is allowed. -* -* Arguments: -* ========== -* -* ISPEC (input) INTEGER -* Specifies the parameter to be returned as the value of -* ILAENV. -* = 1: the optimal blocksize; if this value is 1, an unblocked -* algorithm will give the best performance. -* = 2: the minimum block size for which the block routine -* should be used; if the usable block size is less than -* this value, an unblocked routine should be used. -* = 3: the crossover point (in a block routine, for N less -* than this value, an unblocked routine should be used) -* = 4: the number of shifts, used in the nonsymmetric -* eigenvalue routines -* = 5: the minimum column dimension for blocking to be used; -* rectangular blocks must have dimension at least k by m, -* where k is given by ILAENV(2,...) and m by ILAENV(5,...) -* = 6: the crossover point for the SVD (when reducing an m by n -* matrix to bidiagonal form, if max(m,n)/min(m,n) exceeds -* this value, a QR factorization is used first to reduce -* the matrix to a triangular form.) -* = 7: the number of processors -* = 8: the crossover point for the multishift QR and QZ methods -* for nonsymmetric eigenvalue problems. -* = 9: maximum size of the subproblems at the bottom of the -* computation tree in the divide-and-conquer algorithm -* (used by xGELSD and xGESDD) -* =10: ieee NaN arithmetic can be trusted not to trap -* =11: infinity arithmetic can be trusted not to trap -* -* NAME (input) CHARACTER*(*) -* The name of the calling subroutine, in either upper case or -* lower case. -* -* OPTS (input) CHARACTER*(*) -* The character options to the subroutine NAME, concatenated -* into a single character string. For example, UPLO = 'U', -* TRANS = 'T', and DIAG = 'N' for a triangular routine would -* be specified as OPTS = 'UTN'. -* -* N1 (input) INTEGER -* N2 (input) INTEGER -* N3 (input) INTEGER -* N4 (input) INTEGER -* Problem dimensions for the subroutine NAME; these may not all -* be required. -* -* (ILAENV) (output) INTEGER -* >= 0: the value of the parameter specified by ISPEC -* < 0: if ILAENV = -k, the k-th argument had an illegal value. -* -* Further Details -* =============== -* -* The following conventions have been used when calling ILAENV from the -* LAPACK routines: -* 1) OPTS is a concatenation of all of the character options to -* subroutine NAME, in the same order that they appear in the -* argument list for NAME, even if they are not used in determining -* the value of the parameter specified by ISPEC. -* 2) The problem dimensions N1, N2, N3, N4 are specified in the order -* that they appear in the argument list for NAME. N1 is used -* first, N2 second, and so on, and unused problem dimensions are -* passed a value of -1. -* 3) The parameter value returned by ILAENV is checked for validity in -* the calling subroutine. For example, ILAENV is used to retrieve -* the optimal blocksize for STRTRI as follows: -* -* NB = ILAENV( 1, 'STRTRI', UPLO // DIAG, N, -1, -1, -1 ) -* IF( NB.LE.1 ) NB = MAX( 1, N ) -* -* ===================================================================== -* -* .. Local Scalars .. - LOGICAL CNAME, SNAME - CHARACTER*1 C1 - CHARACTER*2 C2, C4 - CHARACTER*3 C3 - CHARACTER*6 SUBNAM - INTEGER I, IC, IZ, NB, NBMIN, NX -* .. -* .. Intrinsic Functions .. - INTRINSIC CHAR, ICHAR, INT, MIN, REAL -* .. -* .. External Functions .. - INTEGER IEEECK - EXTERNAL IEEECK -* .. -* .. Executable Statements .. -* - GO TO ( 100, 100, 100, 400, 500, 600, 700, 800, 900, 1000, - $ 1100 ) ISPEC -* -* Invalid value for ISPEC -* - ILAENV = -1 - RETURN -* - 100 CONTINUE -* -* Convert NAME to upper case if the first character is lower case. -* - ILAENV = 1 - SUBNAM = NAME - IC = ICHAR( SUBNAM( 1:1 ) ) - IZ = ICHAR( 'Z' ) - IF( IZ.EQ.90 .OR. IZ.EQ.122 ) THEN -* -* ASCII character set -* - IF( IC.GE.97 .AND. IC.LE.122 ) THEN - SUBNAM( 1:1 ) = CHAR( IC-32 ) - DO 10 I = 2, 6 - IC = ICHAR( SUBNAM( I:I ) ) - IF( IC.GE.97 .AND. IC.LE.122 ) - $ SUBNAM( I:I ) = CHAR( IC-32 ) - 10 CONTINUE - END IF -* - ELSE IF( IZ.EQ.233 .OR. IZ.EQ.169 ) THEN -* -* EBCDIC character set -* - IF( ( IC.GE.129 .AND. IC.LE.137 ) .OR. - $ ( IC.GE.145 .AND. IC.LE.153 ) .OR. - $ ( IC.GE.162 .AND. IC.LE.169 ) ) THEN - SUBNAM( 1:1 ) = CHAR( IC+64 ) - DO 20 I = 2, 6 - IC = ICHAR( SUBNAM( I:I ) ) - IF( ( IC.GE.129 .AND. IC.LE.137 ) .OR. - $ ( IC.GE.145 .AND. IC.LE.153 ) .OR. - $ ( IC.GE.162 .AND. IC.LE.169 ) ) - $ SUBNAM( I:I ) = CHAR( IC+64 ) - 20 CONTINUE - END IF -* - ELSE IF( IZ.EQ.218 .OR. IZ.EQ.250 ) THEN -* -* Prime machines: ASCII+128 -* - IF( IC.GE.225 .AND. IC.LE.250 ) THEN - SUBNAM( 1:1 ) = CHAR( IC-32 ) - DO 30 I = 2, 6 - IC = ICHAR( SUBNAM( I:I ) ) - IF( IC.GE.225 .AND. IC.LE.250 ) - $ SUBNAM( I:I ) = CHAR( IC-32 ) - 30 CONTINUE - END IF - END IF -* - C1 = SUBNAM( 1:1 ) - SNAME = C1.EQ.'S' .OR. C1.EQ.'D' - CNAME = C1.EQ.'C' .OR. C1.EQ.'Z' - IF( .NOT.( CNAME .OR. SNAME ) ) - $ RETURN - C2 = SUBNAM( 2:3 ) - C3 = SUBNAM( 4:6 ) - C4 = C3( 2:3 ) -* - GO TO ( 110, 200, 300 ) ISPEC -* - 110 CONTINUE -* -* ISPEC = 1: block size -* -* In these examples, separate code is provided for setting NB for -* real and complex. We assume that NB will take the same value in -* single or double precision. -* - NB = 1 -* - IF( C2.EQ.'GE' ) THEN - IF( C3.EQ.'TRF' ) THEN - IF( SNAME ) THEN - NB = 64 - ELSE - NB = 64 - END IF - ELSE IF( C3.EQ.'QRF' .OR. C3.EQ.'RQF' .OR. C3.EQ.'LQF' .OR. - $ C3.EQ.'QLF' ) THEN - IF( SNAME ) THEN - NB = 32 - ELSE - NB = 32 - END IF - ELSE IF( C3.EQ.'HRD' ) THEN - IF( SNAME ) THEN - NB = 32 - ELSE - NB = 32 - END IF - ELSE IF( C3.EQ.'BRD' ) THEN - IF( SNAME ) THEN - NB = 32 - ELSE - NB = 32 - END IF - ELSE IF( C3.EQ.'TRI' ) THEN - IF( SNAME ) THEN - NB = 64 - ELSE - NB = 64 - END IF - END IF - ELSE IF( C2.EQ.'PO' ) THEN - IF( C3.EQ.'TRF' ) THEN - IF( SNAME ) THEN - NB = 64 - ELSE - NB = 64 - END IF - END IF - ELSE IF( C2.EQ.'SY' ) THEN - IF( C3.EQ.'TRF' ) THEN - IF( SNAME ) THEN - NB = 64 - ELSE - NB = 64 - END IF - ELSE IF( SNAME .AND. C3.EQ.'TRD' ) THEN - NB = 32 - ELSE IF( SNAME .AND. C3.EQ.'GST' ) THEN - NB = 64 - END IF - ELSE IF( CNAME .AND. C2.EQ.'HE' ) THEN - IF( C3.EQ.'TRF' ) THEN - NB = 64 - ELSE IF( C3.EQ.'TRD' ) THEN - NB = 32 - ELSE IF( C3.EQ.'GST' ) THEN - NB = 64 - END IF - ELSE IF( SNAME .AND. C2.EQ.'OR' ) THEN - IF( C3( 1:1 ).EQ.'G' ) THEN - IF( C4.EQ.'QR' .OR. C4.EQ.'RQ' .OR. C4.EQ.'LQ' .OR. - $ C4.EQ.'QL' .OR. C4.EQ.'HR' .OR. C4.EQ.'TR' .OR. - $ C4.EQ.'BR' ) THEN - NB = 32 - END IF - ELSE IF( C3( 1:1 ).EQ.'M' ) THEN - IF( C4.EQ.'QR' .OR. C4.EQ.'RQ' .OR. C4.EQ.'LQ' .OR. - $ C4.EQ.'QL' .OR. C4.EQ.'HR' .OR. C4.EQ.'TR' .OR. - $ C4.EQ.'BR' ) THEN - NB = 32 - END IF - END IF - ELSE IF( CNAME .AND. C2.EQ.'UN' ) THEN - IF( C3( 1:1 ).EQ.'G' ) THEN - IF( C4.EQ.'QR' .OR. C4.EQ.'RQ' .OR. C4.EQ.'LQ' .OR. - $ C4.EQ.'QL' .OR. C4.EQ.'HR' .OR. C4.EQ.'TR' .OR. - $ C4.EQ.'BR' ) THEN - NB = 32 - END IF - ELSE IF( C3( 1:1 ).EQ.'M' ) THEN - IF( C4.EQ.'QR' .OR. C4.EQ.'RQ' .OR. C4.EQ.'LQ' .OR. - $ C4.EQ.'QL' .OR. C4.EQ.'HR' .OR. C4.EQ.'TR' .OR. - $ C4.EQ.'BR' ) THEN - NB = 32 - END IF - END IF - ELSE IF( C2.EQ.'GB' ) THEN - IF( C3.EQ.'TRF' ) THEN - IF( SNAME ) THEN - IF( N4.LE.64 ) THEN - NB = 1 - ELSE - NB = 32 - END IF - ELSE - IF( N4.LE.64 ) THEN - NB = 1 - ELSE - NB = 32 - END IF - END IF - END IF - ELSE IF( C2.EQ.'PB' ) THEN - IF( C3.EQ.'TRF' ) THEN - IF( SNAME ) THEN - IF( N2.LE.64 ) THEN - NB = 1 - ELSE - NB = 32 - END IF - ELSE - IF( N2.LE.64 ) THEN - NB = 1 - ELSE - NB = 32 - END IF - END IF - END IF - ELSE IF( C2.EQ.'TR' ) THEN - IF( C3.EQ.'TRI' ) THEN - IF( SNAME ) THEN - NB = 64 - ELSE - NB = 64 - END IF - END IF - ELSE IF( C2.EQ.'LA' ) THEN - IF( C3.EQ.'UUM' ) THEN - IF( SNAME ) THEN - NB = 64 - ELSE - NB = 64 - END IF - END IF - ELSE IF( SNAME .AND. C2.EQ.'ST' ) THEN - IF( C3.EQ.'EBZ' ) THEN - NB = 1 - END IF - END IF - ILAENV = NB - RETURN -* - 200 CONTINUE -* -* ISPEC = 2: minimum block size -* - NBMIN = 2 - IF( C2.EQ.'GE' ) THEN - IF( C3.EQ.'QRF' .OR. C3.EQ.'RQF' .OR. C3.EQ.'LQF' .OR. - $ C3.EQ.'QLF' ) THEN - IF( SNAME ) THEN - NBMIN = 2 - ELSE - NBMIN = 2 - END IF - ELSE IF( C3.EQ.'HRD' ) THEN - IF( SNAME ) THEN - NBMIN = 2 - ELSE - NBMIN = 2 - END IF - ELSE IF( C3.EQ.'BRD' ) THEN - IF( SNAME ) THEN - NBMIN = 2 - ELSE - NBMIN = 2 - END IF - ELSE IF( C3.EQ.'TRI' ) THEN - IF( SNAME ) THEN - NBMIN = 2 - ELSE - NBMIN = 2 - END IF - END IF - ELSE IF( C2.EQ.'SY' ) THEN - IF( C3.EQ.'TRF' ) THEN - IF( SNAME ) THEN - NBMIN = 8 - ELSE - NBMIN = 8 - END IF - ELSE IF( SNAME .AND. C3.EQ.'TRD' ) THEN - NBMIN = 2 - END IF - ELSE IF( CNAME .AND. C2.EQ.'HE' ) THEN - IF( C3.EQ.'TRD' ) THEN - NBMIN = 2 - END IF - ELSE IF( SNAME .AND. C2.EQ.'OR' ) THEN - IF( C3( 1:1 ).EQ.'G' ) THEN - IF( C4.EQ.'QR' .OR. C4.EQ.'RQ' .OR. C4.EQ.'LQ' .OR. - $ C4.EQ.'QL' .OR. C4.EQ.'HR' .OR. C4.EQ.'TR' .OR. - $ C4.EQ.'BR' ) THEN - NBMIN = 2 - END IF - ELSE IF( C3( 1:1 ).EQ.'M' ) THEN - IF( C4.EQ.'QR' .OR. C4.EQ.'RQ' .OR. C4.EQ.'LQ' .OR. - $ C4.EQ.'QL' .OR. C4.EQ.'HR' .OR. C4.EQ.'TR' .OR. - $ C4.EQ.'BR' ) THEN - NBMIN = 2 - END IF - END IF - ELSE IF( CNAME .AND. C2.EQ.'UN' ) THEN - IF( C3( 1:1 ).EQ.'G' ) THEN - IF( C4.EQ.'QR' .OR. C4.EQ.'RQ' .OR. C4.EQ.'LQ' .OR. - $ C4.EQ.'QL' .OR. C4.EQ.'HR' .OR. C4.EQ.'TR' .OR. - $ C4.EQ.'BR' ) THEN - NBMIN = 2 - END IF - ELSE IF( C3( 1:1 ).EQ.'M' ) THEN - IF( C4.EQ.'QR' .OR. C4.EQ.'RQ' .OR. C4.EQ.'LQ' .OR. - $ C4.EQ.'QL' .OR. C4.EQ.'HR' .OR. C4.EQ.'TR' .OR. - $ C4.EQ.'BR' ) THEN - NBMIN = 2 - END IF - END IF - END IF - ILAENV = NBMIN - RETURN -* - 300 CONTINUE -* -* ISPEC = 3: crossover point -* - NX = 0 - IF( C2.EQ.'GE' ) THEN - IF( C3.EQ.'QRF' .OR. C3.EQ.'RQF' .OR. C3.EQ.'LQF' .OR. - $ C3.EQ.'QLF' ) THEN - IF( SNAME ) THEN - NX = 128 - ELSE - NX = 128 - END IF - ELSE IF( C3.EQ.'HRD' ) THEN - IF( SNAME ) THEN - NX = 128 - ELSE - NX = 128 - END IF - ELSE IF( C3.EQ.'BRD' ) THEN - IF( SNAME ) THEN - NX = 128 - ELSE - NX = 128 - END IF - END IF - ELSE IF( C2.EQ.'SY' ) THEN - IF( SNAME .AND. C3.EQ.'TRD' ) THEN - NX = 32 - END IF - ELSE IF( CNAME .AND. C2.EQ.'HE' ) THEN - IF( C3.EQ.'TRD' ) THEN - NX = 32 - END IF - ELSE IF( SNAME .AND. C2.EQ.'OR' ) THEN - IF( C3( 1:1 ).EQ.'G' ) THEN - IF( C4.EQ.'QR' .OR. C4.EQ.'RQ' .OR. C4.EQ.'LQ' .OR. - $ C4.EQ.'QL' .OR. C4.EQ.'HR' .OR. C4.EQ.'TR' .OR. - $ C4.EQ.'BR' ) THEN - NX = 128 - END IF - END IF - ELSE IF( CNAME .AND. C2.EQ.'UN' ) THEN - IF( C3( 1:1 ).EQ.'G' ) THEN - IF( C4.EQ.'QR' .OR. C4.EQ.'RQ' .OR. C4.EQ.'LQ' .OR. - $ C4.EQ.'QL' .OR. C4.EQ.'HR' .OR. C4.EQ.'TR' .OR. - $ C4.EQ.'BR' ) THEN - NX = 128 - END IF - END IF - END IF - ILAENV = NX - RETURN -* - 400 CONTINUE -* -* ISPEC = 4: number of shifts (used by xHSEQR) -* - ILAENV = 6 - RETURN -* - 500 CONTINUE -* -* ISPEC = 5: minimum column dimension (not used) -* - ILAENV = 2 - RETURN -* - 600 CONTINUE -* -* ISPEC = 6: crossover point for SVD (used by xGELSS and xGESVD) -* - ILAENV = INT( REAL( MIN( N1, N2 ) )*1.6E0 ) - RETURN -* - 700 CONTINUE -* -* ISPEC = 7: number of processors (not used) -* - ILAENV = 1 - RETURN -* - 800 CONTINUE -* -* ISPEC = 8: crossover point for multishift (used by xHSEQR) -* - ILAENV = 50 - RETURN -* - 900 CONTINUE -* -* ISPEC = 9: maximum size of the subproblems at the bottom of the -* computation tree in the divide-and-conquer algorithm -* (used by xGELSD and xGESDD) -* - ILAENV = 25 - RETURN -* - 1000 CONTINUE -* -* ISPEC = 10: ieee NaN arithmetic can be trusted not to trap -* - ILAENV = 1 - IF (ILAENV .EQ. 1) THEN - ILAENV = IEEECK( 0, 0.0, 1.0 ) - ENDIF - RETURN -* - 1100 CONTINUE -* -* ISPEC = 11: infinity arithmetic can be trusted not to trap -* - ILAENV = 1 - IF (ILAENV .EQ. 1) THEN - ILAENV = IEEECK( 1, 0.0, 1.0 ) - ENDIF - RETURN -* -* End of ILAENV -* - END - INTEGER FUNCTION IEEECK( ISPEC, ZERO, ONE ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. -* November 2006 -* -* .. Scalar Arguments .. - INTEGER ISPEC - REAL ZERO, ONE -* .. -* -* Purpose -* ======= -* -* IEEECK is called from the ILAENV to verify that Inifinity and -* possibly NaN arithmetic is safe (i.e. will not trap). -* -* Arguments: -* ========== -* -* ISPEC (input) INTEGER -* Specifies whether to test just for inifinity arithmetic -* or whether to test for infinity and NaN arithmetic. -* = 0: Verify infinity arithmetic only. -* = 1: Verify infinity and NaN arithmetic. -* -* ZERO (input) REAL -* Must contain the value 0.0 -* This is passed to prevent the compiler from optimizing -* away this code. -* -* ONE (input) REAL -* Must contain the value 1.0 -* This is passed to prevent the compiler from optimizing -* away this code. -* -* RETURN VALUE: INTEGER -* = 0: Arithmetic failed to produce the correct answers -* = 1: Arithmetic produced the correct answers -* -* .. Local Scalars .. - REAL POSINF, NEGINF, NAN1, NAN2, NAN3, NAN4, NAN5, NAN6, NEGZRO, - $ NEWZRO -* .. -* .. Executable Statements .. - IEEECK = 1 - - POSINF = ONE /ZERO - IF ( POSINF .LE. ONE ) THEN - IEEECK = 0 - RETURN - ENDIF - - NEGINF = -ONE / ZERO - IF ( NEGINF .GE. ZERO ) THEN - IEEECK = 0 - RETURN - ENDIF - - NEGZRO = ONE / ( NEGINF + ONE ) - IF ( NEGZRO .NE. ZERO ) THEN - IEEECK = 0 - RETURN - ENDIF - - NEGINF = ONE / NEGZRO - IF ( NEGINF .GE. ZERO ) THEN - IEEECK = 0 - RETURN - ENDIF - - NEWZRO = NEGZRO + ZERO - IF ( NEWZRO .NE. ZERO ) THEN - IEEECK = 0 - RETURN - ENDIF - - POSINF = ONE / NEWZRO - IF ( POSINF .LE. ONE ) THEN - IEEECK = 0 - RETURN - ENDIF - - NEGINF = NEGINF * POSINF - IF ( NEGINF .GE. ZERO ) THEN - IEEECK = 0 - RETURN - ENDIF - - POSINF = POSINF * POSINF - IF ( POSINF .LE. ONE ) THEN - IEEECK = 0 - RETURN - ENDIF - - - -* -* Return if we were only asked to check infinity arithmetic -* - IF (ISPEC .EQ. 0 ) RETURN - - NAN1 = POSINF + NEGINF - - NAN2 = POSINF / NEGINF - - NAN3 = POSINF / POSINF - - NAN4 = POSINF * ZERO - - NAN5 = NEGINF * NEGZRO - - NAN6 = NAN5 * 0.0 - - IF ( NAN1 .EQ. NAN1 ) THEN - IEEECK = 0 - RETURN - ENDIF - - IF ( NAN2 .EQ. NAN2 ) THEN - IEEECK = 0 - RETURN - ENDIF - - IF ( NAN3 .EQ. NAN3 ) THEN - IEEECK = 0 - RETURN - ENDIF - - IF ( NAN4 .EQ. NAN4 ) THEN - IEEECK = 0 - RETURN - ENDIF - - IF ( NAN5 .EQ. NAN5 ) THEN - IEEECK = 0 - RETURN - ENDIF - - IF ( NAN6 .EQ. NAN6 ) THEN - IEEECK = 0 - RETURN - ENDIF - - RETURN - END diff --git a/dspl/liblapack/SRC/.gitignore b/dspl/liblapack/SRC/.gitignore deleted file mode 100644 index 819556b..0000000 --- a/dspl/liblapack/SRC/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -*.o -*.so -*.dll -*.exe -*.txt -*.dat -*.bin -*.csv -*.a \ No newline at end of file diff --git a/dspl/liblapack/SRC/DEPRECATED/cgegs.f b/dspl/liblapack/SRC/DEPRECATED/cgegs.f deleted file mode 100644 index 4e75e20..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/cgegs.f +++ /dev/null @@ -1,531 +0,0 @@ -*> \brief CGEEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download CGEGS + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE CGEGS( JOBVSL, JOBVSR, N, A, LDA, B, LDB, ALPHA, BETA, -* VSL, LDVSL, VSR, LDVSR, WORK, LWORK, RWORK, -* INFO ) -* -* .. Scalar Arguments .. -* CHARACTER JOBVSL, JOBVSR -* INTEGER INFO, LDA, LDB, LDVSL, LDVSR, LWORK, N -* .. -* .. Array Arguments .. -* REAL RWORK( * ) -* COMPLEX A( LDA, * ), ALPHA( * ), B( LDB, * ), -* $ BETA( * ), VSL( LDVSL, * ), VSR( LDVSR, * ), -* $ WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine CGGES. -*> -*> CGEGS computes the eigenvalues, Schur form, and, optionally, the -*> left and or/right Schur vectors of a complex matrix pair (A,B). -*> Given two square matrices A and B, the generalized Schur -*> factorization has the form -*> -*> A = Q*S*Z**H, B = Q*T*Z**H -*> -*> where Q and Z are unitary matrices and S and T are upper triangular. -*> The columns of Q are the left Schur vectors -*> and the columns of Z are the right Schur vectors. -*> -*> If only the eigenvalues of (A,B) are needed, the driver routine -*> CGEGV should be used instead. See CGEGV for a description of the -*> eigenvalues of the generalized nonsymmetric eigenvalue problem -*> (GNEP). -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] JOBVSL -*> \verbatim -*> JOBVSL is CHARACTER*1 -*> = 'N': do not compute the left Schur vectors; -*> = 'V': compute the left Schur vectors (returned in VSL). -*> \endverbatim -*> -*> \param[in] JOBVSR -*> \verbatim -*> JOBVSR is CHARACTER*1 -*> = 'N': do not compute the right Schur vectors; -*> = 'V': compute the right Schur vectors (returned in VSR). -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The order of the matrices A, B, VSL, and VSR. N >= 0. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is COMPLEX array, dimension (LDA, N) -*> On entry, the matrix A. -*> On exit, the upper triangular matrix S from the generalized -*> Schur factorization. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of A. LDA >= max(1,N). -*> \endverbatim -*> -*> \param[in,out] B -*> \verbatim -*> B is COMPLEX array, dimension (LDB, N) -*> On entry, the matrix B. -*> On exit, the upper triangular matrix T from the generalized -*> Schur factorization. -*> \endverbatim -*> -*> \param[in] LDB -*> \verbatim -*> LDB is INTEGER -*> The leading dimension of B. LDB >= max(1,N). -*> \endverbatim -*> -*> \param[out] ALPHA -*> \verbatim -*> ALPHA is COMPLEX array, dimension (N) -*> The complex scalars alpha that define the eigenvalues of -*> GNEP. ALPHA(j) = S(j,j), the diagonal element of the Schur -*> form of A. -*> \endverbatim -*> -*> \param[out] BETA -*> \verbatim -*> BETA is COMPLEX array, dimension (N) -*> The non-negative real scalars beta that define the -*> eigenvalues of GNEP. BETA(j) = T(j,j), the diagonal element -*> of the triangular factor T. -*> -*> Together, the quantities alpha = ALPHA(j) and beta = BETA(j) -*> represent the j-th eigenvalue of the matrix pair (A,B), in -*> one of the forms lambda = alpha/beta or mu = beta/alpha. -*> Since either lambda or mu may overflow, they should not, -*> in general, be computed. -*> \endverbatim -*> -*> \param[out] VSL -*> \verbatim -*> VSL is COMPLEX array, dimension (LDVSL,N) -*> If JOBVSL = 'V', the matrix of left Schur vectors Q. -*> Not referenced if JOBVSL = 'N'. -*> \endverbatim -*> -*> \param[in] LDVSL -*> \verbatim -*> LDVSL is INTEGER -*> The leading dimension of the matrix VSL. LDVSL >= 1, and -*> if JOBVSL = 'V', LDVSL >= N. -*> \endverbatim -*> -*> \param[out] VSR -*> \verbatim -*> VSR is COMPLEX array, dimension (LDVSR,N) -*> If JOBVSR = 'V', the matrix of right Schur vectors Z. -*> Not referenced if JOBVSR = 'N'. -*> \endverbatim -*> -*> \param[in] LDVSR -*> \verbatim -*> LDVSR is INTEGER -*> The leading dimension of the matrix VSR. LDVSR >= 1, and -*> if JOBVSR = 'V', LDVSR >= N. -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is COMPLEX array, dimension (MAX(1,LWORK)) -*> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. -*> \endverbatim -*> -*> \param[in] LWORK -*> \verbatim -*> LWORK is INTEGER -*> The dimension of the array WORK. LWORK >= max(1,2*N). -*> For good performance, LWORK must generally be larger. -*> To compute the optimal value of LWORK, call ILAENV to get -*> blocksizes (for CGEQRF, CUNMQR, and CUNGQR.) Then compute: -*> NB -- MAX of the blocksizes for CGEQRF, CUNMQR, and CUNGQR; -*> the optimal LWORK is N*(NB+1). -*> -*> If LWORK = -1, then a workspace query is assumed; the routine -*> only calculates the optimal size of the WORK array, returns -*> this value as the first entry of the WORK array, and no error -*> message related to LWORK is issued by XERBLA. -*> \endverbatim -*> -*> \param[out] RWORK -*> \verbatim -*> RWORK is REAL array, dimension (3*N) -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value. -*> =1,...,N: -*> The QZ iteration failed. (A,B) are not in Schur -*> form, but ALPHA(j) and BETA(j) should be correct for -*> j=INFO+1,...,N. -*> > N: errors that usually indicate LAPACK problems: -*> =N+1: error return from CGGBAL -*> =N+2: error return from CGEQRF -*> =N+3: error return from CUNMQR -*> =N+4: error return from CUNGQR -*> =N+5: error return from CGGHRD -*> =N+6: error return from CHGEQZ (other than failed -*> iteration) -*> =N+7: error return from CGGBAK (computing VSL) -*> =N+8: error return from CGGBAK (computing VSR) -*> =N+9: error return from CLASCL (various places) -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup complexGEeigen -* -* ===================================================================== - SUBROUTINE CGEGS( JOBVSL, JOBVSR, N, A, LDA, B, LDB, ALPHA, BETA, - $ VSL, LDVSL, VSR, LDVSR, WORK, LWORK, RWORK, - $ INFO ) -* -* -- LAPACK driver routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER JOBVSL, JOBVSR - INTEGER INFO, LDA, LDB, LDVSL, LDVSR, LWORK, N -* .. -* .. Array Arguments .. - REAL RWORK( * ) - COMPLEX A( LDA, * ), ALPHA( * ), B( LDB, * ), - $ BETA( * ), VSL( LDVSL, * ), VSR( LDVSR, * ), - $ WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - REAL ZERO, ONE - PARAMETER ( ZERO = 0.0E0, ONE = 1.0E0 ) - COMPLEX CZERO, CONE - PARAMETER ( CZERO = ( 0.0E0, 0.0E0 ), - $ CONE = ( 1.0E0, 0.0E0 ) ) -* .. -* .. Local Scalars .. - LOGICAL ILASCL, ILBSCL, ILVSL, ILVSR, LQUERY - INTEGER ICOLS, IHI, IINFO, IJOBVL, IJOBVR, ILEFT, - $ ILO, IRIGHT, IROWS, IRWORK, ITAU, IWORK, - $ LOPT, LWKMIN, LWKOPT, NB, NB1, NB2, NB3 - REAL ANRM, ANRMTO, BIGNUM, BNRM, BNRMTO, EPS, - $ SAFMIN, SMLNUM -* .. -* .. External Subroutines .. - EXTERNAL CGEQRF, CGGBAK, CGGBAL, CGGHRD, CHGEQZ, CLACPY, - $ CLASCL, CLASET, CUNGQR, CUNMQR, XERBLA -* .. -* .. External Functions .. - LOGICAL LSAME - INTEGER ILAENV - REAL CLANGE, SLAMCH - EXTERNAL ILAENV, LSAME, CLANGE, SLAMCH -* .. -* .. Intrinsic Functions .. - INTRINSIC INT, MAX -* .. -* .. Executable Statements .. -* -* Decode the input arguments -* - IF( LSAME( JOBVSL, 'N' ) ) THEN - IJOBVL = 1 - ILVSL = .FALSE. - ELSE IF( LSAME( JOBVSL, 'V' ) ) THEN - IJOBVL = 2 - ILVSL = .TRUE. - ELSE - IJOBVL = -1 - ILVSL = .FALSE. - END IF -* - IF( LSAME( JOBVSR, 'N' ) ) THEN - IJOBVR = 1 - ILVSR = .FALSE. - ELSE IF( LSAME( JOBVSR, 'V' ) ) THEN - IJOBVR = 2 - ILVSR = .TRUE. - ELSE - IJOBVR = -1 - ILVSR = .FALSE. - END IF -* -* Test the input arguments -* - LWKMIN = MAX( 2*N, 1 ) - LWKOPT = LWKMIN - WORK( 1 ) = LWKOPT - LQUERY = ( LWORK.EQ.-1 ) - INFO = 0 - IF( IJOBVL.LE.0 ) THEN - INFO = -1 - ELSE IF( IJOBVR.LE.0 ) THEN - INFO = -2 - ELSE IF( N.LT.0 ) THEN - INFO = -3 - ELSE IF( LDA.LT.MAX( 1, N ) ) THEN - INFO = -5 - ELSE IF( LDB.LT.MAX( 1, N ) ) THEN - INFO = -7 - ELSE IF( LDVSL.LT.1 .OR. ( ILVSL .AND. LDVSL.LT.N ) ) THEN - INFO = -11 - ELSE IF( LDVSR.LT.1 .OR. ( ILVSR .AND. LDVSR.LT.N ) ) THEN - INFO = -13 - ELSE IF( LWORK.LT.LWKMIN .AND. .NOT.LQUERY ) THEN - INFO = -15 - END IF -* - IF( INFO.EQ.0 ) THEN - NB1 = ILAENV( 1, 'CGEQRF', ' ', N, N, -1, -1 ) - NB2 = ILAENV( 1, 'CUNMQR', ' ', N, N, N, -1 ) - NB3 = ILAENV( 1, 'CUNGQR', ' ', N, N, N, -1 ) - NB = MAX( NB1, NB2, NB3 ) - LOPT = N*(NB+1) - WORK( 1 ) = LOPT - END IF -* - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'CGEGS ', -INFO ) - RETURN - ELSE IF( LQUERY ) THEN - RETURN - END IF -* -* Quick return if possible -* - IF( N.EQ.0 ) - $ RETURN -* -* Get machine constants -* - EPS = SLAMCH( 'E' )*SLAMCH( 'B' ) - SAFMIN = SLAMCH( 'S' ) - SMLNUM = N*SAFMIN / EPS - BIGNUM = ONE / SMLNUM -* -* Scale A if max element outside range [SMLNUM,BIGNUM] -* - ANRM = CLANGE( 'M', N, N, A, LDA, RWORK ) - ILASCL = .FALSE. - IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN - ANRMTO = SMLNUM - ILASCL = .TRUE. - ELSE IF( ANRM.GT.BIGNUM ) THEN - ANRMTO = BIGNUM - ILASCL = .TRUE. - END IF -* - IF( ILASCL ) THEN - CALL CLASCL( 'G', -1, -1, ANRM, ANRMTO, N, N, A, LDA, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - END IF -* -* Scale B if max element outside range [SMLNUM,BIGNUM] -* - BNRM = CLANGE( 'M', N, N, B, LDB, RWORK ) - ILBSCL = .FALSE. - IF( BNRM.GT.ZERO .AND. BNRM.LT.SMLNUM ) THEN - BNRMTO = SMLNUM - ILBSCL = .TRUE. - ELSE IF( BNRM.GT.BIGNUM ) THEN - BNRMTO = BIGNUM - ILBSCL = .TRUE. - END IF -* - IF( ILBSCL ) THEN - CALL CLASCL( 'G', -1, -1, BNRM, BNRMTO, N, N, B, LDB, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - END IF -* -* Permute the matrix to make it more nearly triangular -* - ILEFT = 1 - IRIGHT = N + 1 - IRWORK = IRIGHT + N - IWORK = 1 - CALL CGGBAL( 'P', N, A, LDA, B, LDB, ILO, IHI, RWORK( ILEFT ), - $ RWORK( IRIGHT ), RWORK( IRWORK ), IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 1 - GO TO 10 - END IF -* -* Reduce B to triangular form, and initialize VSL and/or VSR -* - IROWS = IHI + 1 - ILO - ICOLS = N + 1 - ILO - ITAU = IWORK - IWORK = ITAU + IROWS - CALL CGEQRF( IROWS, ICOLS, B( ILO, ILO ), LDB, WORK( ITAU ), - $ WORK( IWORK ), LWORK+1-IWORK, IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - INFO = N + 2 - GO TO 10 - END IF -* - CALL CUNMQR( 'L', 'C', IROWS, ICOLS, IROWS, B( ILO, ILO ), LDB, - $ WORK( ITAU ), A( ILO, ILO ), LDA, WORK( IWORK ), - $ LWORK+1-IWORK, IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - INFO = N + 3 - GO TO 10 - END IF -* - IF( ILVSL ) THEN - CALL CLASET( 'Full', N, N, CZERO, CONE, VSL, LDVSL ) - CALL CLACPY( 'L', IROWS-1, IROWS-1, B( ILO+1, ILO ), LDB, - $ VSL( ILO+1, ILO ), LDVSL ) - CALL CUNGQR( IROWS, IROWS, IROWS, VSL( ILO, ILO ), LDVSL, - $ WORK( ITAU ), WORK( IWORK ), LWORK+1-IWORK, - $ IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - INFO = N + 4 - GO TO 10 - END IF - END IF -* - IF( ILVSR ) - $ CALL CLASET( 'Full', N, N, CZERO, CONE, VSR, LDVSR ) -* -* Reduce to generalized Hessenberg form -* - CALL CGGHRD( JOBVSL, JOBVSR, N, ILO, IHI, A, LDA, B, LDB, VSL, - $ LDVSL, VSR, LDVSR, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 5 - GO TO 10 - END IF -* -* Perform QZ algorithm, computing Schur vectors if desired -* - IWORK = ITAU - CALL CHGEQZ( 'S', JOBVSL, JOBVSR, N, ILO, IHI, A, LDA, B, LDB, - $ ALPHA, BETA, VSL, LDVSL, VSR, LDVSR, WORK( IWORK ), - $ LWORK+1-IWORK, RWORK( IRWORK ), IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - IF( IINFO.GT.0 .AND. IINFO.LE.N ) THEN - INFO = IINFO - ELSE IF( IINFO.GT.N .AND. IINFO.LE.2*N ) THEN - INFO = IINFO - N - ELSE - INFO = N + 6 - END IF - GO TO 10 - END IF -* -* Apply permutation to VSL and VSR -* - IF( ILVSL ) THEN - CALL CGGBAK( 'P', 'L', N, ILO, IHI, RWORK( ILEFT ), - $ RWORK( IRIGHT ), N, VSL, LDVSL, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 7 - GO TO 10 - END IF - END IF - IF( ILVSR ) THEN - CALL CGGBAK( 'P', 'R', N, ILO, IHI, RWORK( ILEFT ), - $ RWORK( IRIGHT ), N, VSR, LDVSR, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 8 - GO TO 10 - END IF - END IF -* -* Undo scaling -* - IF( ILASCL ) THEN - CALL CLASCL( 'U', -1, -1, ANRMTO, ANRM, N, N, A, LDA, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - CALL CLASCL( 'G', -1, -1, ANRMTO, ANRM, N, 1, ALPHA, N, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - END IF -* - IF( ILBSCL ) THEN - CALL CLASCL( 'U', -1, -1, BNRMTO, BNRM, N, N, B, LDB, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - CALL CLASCL( 'G', -1, -1, BNRMTO, BNRM, N, 1, BETA, N, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - END IF -* - 10 CONTINUE - WORK( 1 ) = LWKOPT -* - RETURN -* -* End of CGEGS -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/cgegv.f b/dspl/liblapack/SRC/DEPRECATED/cgegv.f deleted file mode 100644 index 81def0d..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/cgegv.f +++ /dev/null @@ -1,706 +0,0 @@ -*> \brief CGEEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download CGEGV + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE CGEGV( JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHA, BETA, -* VL, LDVL, VR, LDVR, WORK, LWORK, RWORK, INFO ) -* -* .. Scalar Arguments .. -* CHARACTER JOBVL, JOBVR -* INTEGER INFO, LDA, LDB, LDVL, LDVR, LWORK, N -* .. -* .. Array Arguments .. -* REAL RWORK( * ) -* COMPLEX A( LDA, * ), ALPHA( * ), B( LDB, * ), -* $ BETA( * ), VL( LDVL, * ), VR( LDVR, * ), -* $ WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine CGGEV. -*> -*> CGEGV computes the eigenvalues and, optionally, the left and/or right -*> eigenvectors of a complex matrix pair (A,B). -*> Given two square matrices A and B, -*> the generalized nonsymmetric eigenvalue problem (GNEP) is to find the -*> eigenvalues lambda and corresponding (non-zero) eigenvectors x such -*> that -*> A*x = lambda*B*x. -*> -*> An alternate form is to find the eigenvalues mu and corresponding -*> eigenvectors y such that -*> mu*A*y = B*y. -*> -*> These two forms are equivalent with mu = 1/lambda and x = y if -*> neither lambda nor mu is zero. In order to deal with the case that -*> lambda or mu is zero or small, two values alpha and beta are returned -*> for each eigenvalue, such that lambda = alpha/beta and -*> mu = beta/alpha. -*> -*> The vectors x and y in the above equations are right eigenvectors of -*> the matrix pair (A,B). Vectors u and v satisfying -*> u**H*A = lambda*u**H*B or mu*v**H*A = v**H*B -*> are left eigenvectors of (A,B). -*> -*> Note: this routine performs "full balancing" on A and B -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] JOBVL -*> \verbatim -*> JOBVL is CHARACTER*1 -*> = 'N': do not compute the left generalized eigenvectors; -*> = 'V': compute the left generalized eigenvectors (returned -*> in VL). -*> \endverbatim -*> -*> \param[in] JOBVR -*> \verbatim -*> JOBVR is CHARACTER*1 -*> = 'N': do not compute the right generalized eigenvectors; -*> = 'V': compute the right generalized eigenvectors (returned -*> in VR). -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The order of the matrices A, B, VL, and VR. N >= 0. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is COMPLEX array, dimension (LDA, N) -*> On entry, the matrix A. -*> If JOBVL = 'V' or JOBVR = 'V', then on exit A -*> contains the Schur form of A from the generalized Schur -*> factorization of the pair (A,B) after balancing. If no -*> eigenvectors were computed, then only the diagonal elements -*> of the Schur form will be correct. See CGGHRD and CHGEQZ -*> for details. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of A. LDA >= max(1,N). -*> \endverbatim -*> -*> \param[in,out] B -*> \verbatim -*> B is COMPLEX array, dimension (LDB, N) -*> On entry, the matrix B. -*> If JOBVL = 'V' or JOBVR = 'V', then on exit B contains the -*> upper triangular matrix obtained from B in the generalized -*> Schur factorization of the pair (A,B) after balancing. -*> If no eigenvectors were computed, then only the diagonal -*> elements of B will be correct. See CGGHRD and CHGEQZ for -*> details. -*> \endverbatim -*> -*> \param[in] LDB -*> \verbatim -*> LDB is INTEGER -*> The leading dimension of B. LDB >= max(1,N). -*> \endverbatim -*> -*> \param[out] ALPHA -*> \verbatim -*> ALPHA is COMPLEX array, dimension (N) -*> The complex scalars alpha that define the eigenvalues of -*> GNEP. -*> \endverbatim -*> -*> \param[out] BETA -*> \verbatim -*> BETA is COMPLEX array, dimension (N) -*> The complex scalars beta that define the eigenvalues of GNEP. -*> -*> Together, the quantities alpha = ALPHA(j) and beta = BETA(j) -*> represent the j-th eigenvalue of the matrix pair (A,B), in -*> one of the forms lambda = alpha/beta or mu = beta/alpha. -*> Since either lambda or mu may overflow, they should not, -*> in general, be computed. -*> \endverbatim -*> -*> \param[out] VL -*> \verbatim -*> VL is COMPLEX array, dimension (LDVL,N) -*> If JOBVL = 'V', the left eigenvectors u(j) are stored -*> in the columns of VL, in the same order as their eigenvalues. -*> Each eigenvector is scaled so that its largest component has -*> abs(real part) + abs(imag. part) = 1, except for eigenvectors -*> corresponding to an eigenvalue with alpha = beta = 0, which -*> are set to zero. -*> Not referenced if JOBVL = 'N'. -*> \endverbatim -*> -*> \param[in] LDVL -*> \verbatim -*> LDVL is INTEGER -*> The leading dimension of the matrix VL. LDVL >= 1, and -*> if JOBVL = 'V', LDVL >= N. -*> \endverbatim -*> -*> \param[out] VR -*> \verbatim -*> VR is COMPLEX array, dimension (LDVR,N) -*> If JOBVR = 'V', the right eigenvectors x(j) are stored -*> in the columns of VR, in the same order as their eigenvalues. -*> Each eigenvector is scaled so that its largest component has -*> abs(real part) + abs(imag. part) = 1, except for eigenvectors -*> corresponding to an eigenvalue with alpha = beta = 0, which -*> are set to zero. -*> Not referenced if JOBVR = 'N'. -*> \endverbatim -*> -*> \param[in] LDVR -*> \verbatim -*> LDVR is INTEGER -*> The leading dimension of the matrix VR. LDVR >= 1, and -*> if JOBVR = 'V', LDVR >= N. -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is COMPLEX array, dimension (MAX(1,LWORK)) -*> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. -*> \endverbatim -*> -*> \param[in] LWORK -*> \verbatim -*> LWORK is INTEGER -*> The dimension of the array WORK. LWORK >= max(1,2*N). -*> For good performance, LWORK must generally be larger. -*> To compute the optimal value of LWORK, call ILAENV to get -*> blocksizes (for CGEQRF, CUNMQR, and CUNGQR.) Then compute: -*> NB -- MAX of the blocksizes for CGEQRF, CUNMQR, and CUNGQR; -*> The optimal LWORK is MAX( 2*N, N*(NB+1) ). -*> -*> If LWORK = -1, then a workspace query is assumed; the routine -*> only calculates the optimal size of the WORK array, returns -*> this value as the first entry of the WORK array, and no error -*> message related to LWORK is issued by XERBLA. -*> \endverbatim -*> -*> \param[out] RWORK -*> \verbatim -*> RWORK is REAL array, dimension (8*N) -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value. -*> =1,...,N: -*> The QZ iteration failed. No eigenvectors have been -*> calculated, but ALPHA(j) and BETA(j) should be -*> correct for j=INFO+1,...,N. -*> > N: errors that usually indicate LAPACK problems: -*> =N+1: error return from CGGBAL -*> =N+2: error return from CGEQRF -*> =N+3: error return from CUNMQR -*> =N+4: error return from CUNGQR -*> =N+5: error return from CGGHRD -*> =N+6: error return from CHGEQZ (other than failed -*> iteration) -*> =N+7: error return from CTGEVC -*> =N+8: error return from CGGBAK (computing VL) -*> =N+9: error return from CGGBAK (computing VR) -*> =N+10: error return from CLASCL (various calls) -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup complexGEeigen -* -*> \par Further Details: -* ===================== -*> -*> \verbatim -*> -*> Balancing -*> --------- -*> -*> This driver calls CGGBAL to both permute and scale rows and columns -*> of A and B. The permutations PL and PR are chosen so that PL*A*PR -*> and PL*B*R will be upper triangular except for the diagonal blocks -*> A(i:j,i:j) and B(i:j,i:j), with i and j as close together as -*> possible. The diagonal scaling matrices DL and DR are chosen so -*> that the pair DL*PL*A*PR*DR, DL*PL*B*PR*DR have elements close to -*> one (except for the elements that start out zero.) -*> -*> After the eigenvalues and eigenvectors of the balanced matrices -*> have been computed, CGGBAK transforms the eigenvectors back to what -*> they would have been (in perfect arithmetic) if they had not been -*> balanced. -*> -*> Contents of A and B on Exit -*> -------- -- - --- - -- ---- -*> -*> If any eigenvectors are computed (either JOBVL='V' or JOBVR='V' or -*> both), then on exit the arrays A and B will contain the complex Schur -*> form[*] of the "balanced" versions of A and B. If no eigenvectors -*> are computed, then only the diagonal blocks will be correct. -*> -*> [*] In other words, upper triangular form. -*> \endverbatim -*> -* ===================================================================== - SUBROUTINE CGEGV( JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHA, BETA, - $ VL, LDVL, VR, LDVR, WORK, LWORK, RWORK, INFO ) -* -* -- LAPACK driver routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER JOBVL, JOBVR - INTEGER INFO, LDA, LDB, LDVL, LDVR, LWORK, N -* .. -* .. Array Arguments .. - REAL RWORK( * ) - COMPLEX A( LDA, * ), ALPHA( * ), B( LDB, * ), - $ BETA( * ), VL( LDVL, * ), VR( LDVR, * ), - $ WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - REAL ZERO, ONE - PARAMETER ( ZERO = 0.0E0, ONE = 1.0E0 ) - COMPLEX CZERO, CONE - PARAMETER ( CZERO = ( 0.0E0, 0.0E0 ), - $ CONE = ( 1.0E0, 0.0E0 ) ) -* .. -* .. Local Scalars .. - LOGICAL ILIMIT, ILV, ILVL, ILVR, LQUERY - CHARACTER CHTEMP - INTEGER ICOLS, IHI, IINFO, IJOBVL, IJOBVR, ILEFT, ILO, - $ IN, IRIGHT, IROWS, IRWORK, ITAU, IWORK, JC, JR, - $ LOPT, LWKMIN, LWKOPT, NB, NB1, NB2, NB3 - REAL ABSAI, ABSAR, ABSB, ANRM, ANRM1, ANRM2, BNRM, - $ BNRM1, BNRM2, EPS, SAFMAX, SAFMIN, SALFAI, - $ SALFAR, SBETA, SCALE, TEMP - COMPLEX X -* .. -* .. Local Arrays .. - LOGICAL LDUMMA( 1 ) -* .. -* .. External Subroutines .. - EXTERNAL CGEQRF, CGGBAK, CGGBAL, CGGHRD, CHGEQZ, CLACPY, - $ CLASCL, CLASET, CTGEVC, CUNGQR, CUNMQR, XERBLA -* .. -* .. External Functions .. - LOGICAL LSAME - INTEGER ILAENV - REAL CLANGE, SLAMCH - EXTERNAL ILAENV, LSAME, CLANGE, SLAMCH -* .. -* .. Intrinsic Functions .. - INTRINSIC ABS, AIMAG, CMPLX, INT, MAX, REAL -* .. -* .. Statement Functions .. - REAL ABS1 -* .. -* .. Statement Function definitions .. - ABS1( X ) = ABS( REAL( X ) ) + ABS( AIMAG( X ) ) -* .. -* .. Executable Statements .. -* -* Decode the input arguments -* - IF( LSAME( JOBVL, 'N' ) ) THEN - IJOBVL = 1 - ILVL = .FALSE. - ELSE IF( LSAME( JOBVL, 'V' ) ) THEN - IJOBVL = 2 - ILVL = .TRUE. - ELSE - IJOBVL = -1 - ILVL = .FALSE. - END IF -* - IF( LSAME( JOBVR, 'N' ) ) THEN - IJOBVR = 1 - ILVR = .FALSE. - ELSE IF( LSAME( JOBVR, 'V' ) ) THEN - IJOBVR = 2 - ILVR = .TRUE. - ELSE - IJOBVR = -1 - ILVR = .FALSE. - END IF - ILV = ILVL .OR. ILVR -* -* Test the input arguments -* - LWKMIN = MAX( 2*N, 1 ) - LWKOPT = LWKMIN - WORK( 1 ) = LWKOPT - LQUERY = ( LWORK.EQ.-1 ) - INFO = 0 - IF( IJOBVL.LE.0 ) THEN - INFO = -1 - ELSE IF( IJOBVR.LE.0 ) THEN - INFO = -2 - ELSE IF( N.LT.0 ) THEN - INFO = -3 - ELSE IF( LDA.LT.MAX( 1, N ) ) THEN - INFO = -5 - ELSE IF( LDB.LT.MAX( 1, N ) ) THEN - INFO = -7 - ELSE IF( LDVL.LT.1 .OR. ( ILVL .AND. LDVL.LT.N ) ) THEN - INFO = -11 - ELSE IF( LDVR.LT.1 .OR. ( ILVR .AND. LDVR.LT.N ) ) THEN - INFO = -13 - ELSE IF( LWORK.LT.LWKMIN .AND. .NOT.LQUERY ) THEN - INFO = -15 - END IF -* - IF( INFO.EQ.0 ) THEN - NB1 = ILAENV( 1, 'CGEQRF', ' ', N, N, -1, -1 ) - NB2 = ILAENV( 1, 'CUNMQR', ' ', N, N, N, -1 ) - NB3 = ILAENV( 1, 'CUNGQR', ' ', N, N, N, -1 ) - NB = MAX( NB1, NB2, NB3 ) - LOPT = MAX( 2*N, N*(NB+1) ) - WORK( 1 ) = LOPT - END IF -* - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'CGEGV ', -INFO ) - RETURN - ELSE IF( LQUERY ) THEN - RETURN - END IF -* -* Quick return if possible -* - IF( N.EQ.0 ) - $ RETURN -* -* Get machine constants -* - EPS = SLAMCH( 'E' )*SLAMCH( 'B' ) - SAFMIN = SLAMCH( 'S' ) - SAFMIN = SAFMIN + SAFMIN - SAFMAX = ONE / SAFMIN -* -* Scale A -* - ANRM = CLANGE( 'M', N, N, A, LDA, RWORK ) - ANRM1 = ANRM - ANRM2 = ONE - IF( ANRM.LT.ONE ) THEN - IF( SAFMAX*ANRM.LT.ONE ) THEN - ANRM1 = SAFMIN - ANRM2 = SAFMAX*ANRM - END IF - END IF -* - IF( ANRM.GT.ZERO ) THEN - CALL CLASCL( 'G', -1, -1, ANRM, ONE, N, N, A, LDA, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 10 - RETURN - END IF - END IF -* -* Scale B -* - BNRM = CLANGE( 'M', N, N, B, LDB, RWORK ) - BNRM1 = BNRM - BNRM2 = ONE - IF( BNRM.LT.ONE ) THEN - IF( SAFMAX*BNRM.LT.ONE ) THEN - BNRM1 = SAFMIN - BNRM2 = SAFMAX*BNRM - END IF - END IF -* - IF( BNRM.GT.ZERO ) THEN - CALL CLASCL( 'G', -1, -1, BNRM, ONE, N, N, B, LDB, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 10 - RETURN - END IF - END IF -* -* Permute the matrix to make it more nearly triangular -* Also "balance" the matrix. -* - ILEFT = 1 - IRIGHT = N + 1 - IRWORK = IRIGHT + N - CALL CGGBAL( 'P', N, A, LDA, B, LDB, ILO, IHI, RWORK( ILEFT ), - $ RWORK( IRIGHT ), RWORK( IRWORK ), IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 1 - GO TO 80 - END IF -* -* Reduce B to triangular form, and initialize VL and/or VR -* - IROWS = IHI + 1 - ILO - IF( ILV ) THEN - ICOLS = N + 1 - ILO - ELSE - ICOLS = IROWS - END IF - ITAU = 1 - IWORK = ITAU + IROWS - CALL CGEQRF( IROWS, ICOLS, B( ILO, ILO ), LDB, WORK( ITAU ), - $ WORK( IWORK ), LWORK+1-IWORK, IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - INFO = N + 2 - GO TO 80 - END IF -* - CALL CUNMQR( 'L', 'C', IROWS, ICOLS, IROWS, B( ILO, ILO ), LDB, - $ WORK( ITAU ), A( ILO, ILO ), LDA, WORK( IWORK ), - $ LWORK+1-IWORK, IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - INFO = N + 3 - GO TO 80 - END IF -* - IF( ILVL ) THEN - CALL CLASET( 'Full', N, N, CZERO, CONE, VL, LDVL ) - CALL CLACPY( 'L', IROWS-1, IROWS-1, B( ILO+1, ILO ), LDB, - $ VL( ILO+1, ILO ), LDVL ) - CALL CUNGQR( IROWS, IROWS, IROWS, VL( ILO, ILO ), LDVL, - $ WORK( ITAU ), WORK( IWORK ), LWORK+1-IWORK, - $ IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - INFO = N + 4 - GO TO 80 - END IF - END IF -* - IF( ILVR ) - $ CALL CLASET( 'Full', N, N, CZERO, CONE, VR, LDVR ) -* -* Reduce to generalized Hessenberg form -* - IF( ILV ) THEN -* -* Eigenvectors requested -- work on whole matrix. -* - CALL CGGHRD( JOBVL, JOBVR, N, ILO, IHI, A, LDA, B, LDB, VL, - $ LDVL, VR, LDVR, IINFO ) - ELSE - CALL CGGHRD( 'N', 'N', IROWS, 1, IROWS, A( ILO, ILO ), LDA, - $ B( ILO, ILO ), LDB, VL, LDVL, VR, LDVR, IINFO ) - END IF - IF( IINFO.NE.0 ) THEN - INFO = N + 5 - GO TO 80 - END IF -* -* Perform QZ algorithm -* - IWORK = ITAU - IF( ILV ) THEN - CHTEMP = 'S' - ELSE - CHTEMP = 'E' - END IF - CALL CHGEQZ( CHTEMP, JOBVL, JOBVR, N, ILO, IHI, A, LDA, B, LDB, - $ ALPHA, BETA, VL, LDVL, VR, LDVR, WORK( IWORK ), - $ LWORK+1-IWORK, RWORK( IRWORK ), IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - IF( IINFO.GT.0 .AND. IINFO.LE.N ) THEN - INFO = IINFO - ELSE IF( IINFO.GT.N .AND. IINFO.LE.2*N ) THEN - INFO = IINFO - N - ELSE - INFO = N + 6 - END IF - GO TO 80 - END IF -* - IF( ILV ) THEN -* -* Compute Eigenvectors -* - IF( ILVL ) THEN - IF( ILVR ) THEN - CHTEMP = 'B' - ELSE - CHTEMP = 'L' - END IF - ELSE - CHTEMP = 'R' - END IF -* - CALL CTGEVC( CHTEMP, 'B', LDUMMA, N, A, LDA, B, LDB, VL, LDVL, - $ VR, LDVR, N, IN, WORK( IWORK ), RWORK( IRWORK ), - $ IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 7 - GO TO 80 - END IF -* -* Undo balancing on VL and VR, rescale -* - IF( ILVL ) THEN - CALL CGGBAK( 'P', 'L', N, ILO, IHI, RWORK( ILEFT ), - $ RWORK( IRIGHT ), N, VL, LDVL, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 8 - GO TO 80 - END IF - DO 30 JC = 1, N - TEMP = ZERO - DO 10 JR = 1, N - TEMP = MAX( TEMP, ABS1( VL( JR, JC ) ) ) - 10 CONTINUE - IF( TEMP.LT.SAFMIN ) - $ GO TO 30 - TEMP = ONE / TEMP - DO 20 JR = 1, N - VL( JR, JC ) = VL( JR, JC )*TEMP - 20 CONTINUE - 30 CONTINUE - END IF - IF( ILVR ) THEN - CALL CGGBAK( 'P', 'R', N, ILO, IHI, RWORK( ILEFT ), - $ RWORK( IRIGHT ), N, VR, LDVR, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - GO TO 80 - END IF - DO 60 JC = 1, N - TEMP = ZERO - DO 40 JR = 1, N - TEMP = MAX( TEMP, ABS1( VR( JR, JC ) ) ) - 40 CONTINUE - IF( TEMP.LT.SAFMIN ) - $ GO TO 60 - TEMP = ONE / TEMP - DO 50 JR = 1, N - VR( JR, JC ) = VR( JR, JC )*TEMP - 50 CONTINUE - 60 CONTINUE - END IF -* -* End of eigenvector calculation -* - END IF -* -* Undo scaling in alpha, beta -* -* Note: this does not give the alpha and beta for the unscaled -* problem. -* -* Un-scaling is limited to avoid underflow in alpha and beta -* if they are significant. -* - DO 70 JC = 1, N - ABSAR = ABS( REAL( ALPHA( JC ) ) ) - ABSAI = ABS( AIMAG( ALPHA( JC ) ) ) - ABSB = ABS( REAL( BETA( JC ) ) ) - SALFAR = ANRM*REAL( ALPHA( JC ) ) - SALFAI = ANRM*AIMAG( ALPHA( JC ) ) - SBETA = BNRM*REAL( BETA( JC ) ) - ILIMIT = .FALSE. - SCALE = ONE -* -* Check for significant underflow in imaginary part of ALPHA -* - IF( ABS( SALFAI ).LT.SAFMIN .AND. ABSAI.GE. - $ MAX( SAFMIN, EPS*ABSAR, EPS*ABSB ) ) THEN - ILIMIT = .TRUE. - SCALE = ( SAFMIN / ANRM1 ) / MAX( SAFMIN, ANRM2*ABSAI ) - END IF -* -* Check for significant underflow in real part of ALPHA -* - IF( ABS( SALFAR ).LT.SAFMIN .AND. ABSAR.GE. - $ MAX( SAFMIN, EPS*ABSAI, EPS*ABSB ) ) THEN - ILIMIT = .TRUE. - SCALE = MAX( SCALE, ( SAFMIN / ANRM1 ) / - $ MAX( SAFMIN, ANRM2*ABSAR ) ) - END IF -* -* Check for significant underflow in BETA -* - IF( ABS( SBETA ).LT.SAFMIN .AND. ABSB.GE. - $ MAX( SAFMIN, EPS*ABSAR, EPS*ABSAI ) ) THEN - ILIMIT = .TRUE. - SCALE = MAX( SCALE, ( SAFMIN / BNRM1 ) / - $ MAX( SAFMIN, BNRM2*ABSB ) ) - END IF -* -* Check for possible overflow when limiting scaling -* - IF( ILIMIT ) THEN - TEMP = ( SCALE*SAFMIN )*MAX( ABS( SALFAR ), ABS( SALFAI ), - $ ABS( SBETA ) ) - IF( TEMP.GT.ONE ) - $ SCALE = SCALE / TEMP - IF( SCALE.LT.ONE ) - $ ILIMIT = .FALSE. - END IF -* -* Recompute un-scaled ALPHA, BETA if necessary. -* - IF( ILIMIT ) THEN - SALFAR = ( SCALE*REAL( ALPHA( JC ) ) )*ANRM - SALFAI = ( SCALE*AIMAG( ALPHA( JC ) ) )*ANRM - SBETA = ( SCALE*BETA( JC ) )*BNRM - END IF - ALPHA( JC ) = CMPLX( SALFAR, SALFAI ) - BETA( JC ) = SBETA - 70 CONTINUE -* - 80 CONTINUE - WORK( 1 ) = LWKOPT -* - RETURN -* -* End of CGEGV -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/cgelsx.f b/dspl/liblapack/SRC/DEPRECATED/cgelsx.f deleted file mode 100644 index 22d2358..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/cgelsx.f +++ /dev/null @@ -1,447 +0,0 @@ -*> \brief CGELSX solves overdetermined or underdetermined systems for GE matrices -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download CGELSX + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE CGELSX( M, N, NRHS, A, LDA, B, LDB, JPVT, RCOND, RANK, -* WORK, RWORK, INFO ) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, LDB, M, N, NRHS, RANK -* REAL RCOND -* .. -* .. Array Arguments .. -* INTEGER JPVT( * ) -* REAL RWORK( * ) -* COMPLEX A( LDA, * ), B( LDB, * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine CGELSY. -*> -*> CGELSX computes the minimum-norm solution to a complex linear least -*> squares problem: -*> minimize || A * X - B || -*> using a complete orthogonal factorization of A. A is an M-by-N -*> matrix which may be rank-deficient. -*> -*> Several right hand side vectors b and solution vectors x can be -*> handled in a single call; they are stored as the columns of the -*> M-by-NRHS right hand side matrix B and the N-by-NRHS solution -*> matrix X. -*> -*> The routine first computes a QR factorization with column pivoting: -*> A * P = Q * [ R11 R12 ] -*> [ 0 R22 ] -*> with R11 defined as the largest leading submatrix whose estimated -*> condition number is less than 1/RCOND. The order of R11, RANK, -*> is the effective rank of A. -*> -*> Then, R22 is considered to be negligible, and R12 is annihilated -*> by unitary transformations from the right, arriving at the -*> complete orthogonal factorization: -*> A * P = Q * [ T11 0 ] * Z -*> [ 0 0 ] -*> The minimum-norm solution is then -*> X = P * Z**H [ inv(T11)*Q1**H*B ] -*> [ 0 ] -*> where Q1 consists of the first RANK columns of Q. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix A. M >= 0. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrix A. N >= 0. -*> \endverbatim -*> -*> \param[in] NRHS -*> \verbatim -*> NRHS is INTEGER -*> The number of right hand sides, i.e., the number of -*> columns of matrices B and X. NRHS >= 0. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is COMPLEX array, dimension (LDA,N) -*> On entry, the M-by-N matrix A. -*> On exit, A has been overwritten by details of its -*> complete orthogonal factorization. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of the array A. LDA >= max(1,M). -*> \endverbatim -*> -*> \param[in,out] B -*> \verbatim -*> B is COMPLEX array, dimension (LDB,NRHS) -*> On entry, the M-by-NRHS right hand side matrix B. -*> On exit, the N-by-NRHS solution matrix X. -*> If m >= n and RANK = n, the residual sum-of-squares for -*> the solution in the i-th column is given by the sum of -*> squares of elements N+1:M in that column. -*> \endverbatim -*> -*> \param[in] LDB -*> \verbatim -*> LDB is INTEGER -*> The leading dimension of the array B. LDB >= max(1,M,N). -*> \endverbatim -*> -*> \param[in,out] JPVT -*> \verbatim -*> JPVT is INTEGER array, dimension (N) -*> On entry, if JPVT(i) .ne. 0, the i-th column of A is an -*> initial column, otherwise it is a free column. Before -*> the QR factorization of A, all initial columns are -*> permuted to the leading positions; only the remaining -*> free columns are moved as a result of column pivoting -*> during the factorization. -*> On exit, if JPVT(i) = k, then the i-th column of A*P -*> was the k-th column of A. -*> \endverbatim -*> -*> \param[in] RCOND -*> \verbatim -*> RCOND is REAL -*> RCOND is used to determine the effective rank of A, which -*> is defined as the order of the largest leading triangular -*> submatrix R11 in the QR factorization with pivoting of A, -*> whose estimated condition number < 1/RCOND. -*> \endverbatim -*> -*> \param[out] RANK -*> \verbatim -*> RANK is INTEGER -*> The effective rank of A, i.e., the order of the submatrix -*> R11. This is the same as the order of the submatrix T11 -*> in the complete orthogonal factorization of A. -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is COMPLEX array, dimension -*> (min(M,N) + max( N, 2*min(M,N)+NRHS )), -*> \endverbatim -*> -*> \param[out] RWORK -*> \verbatim -*> RWORK is REAL array, dimension (2*N) -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup complexGEsolve -* -* ===================================================================== - SUBROUTINE CGELSX( M, N, NRHS, A, LDA, B, LDB, JPVT, RCOND, RANK, - $ WORK, RWORK, INFO ) -* -* -- LAPACK driver routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, LDB, M, N, NRHS, RANK - REAL RCOND -* .. -* .. Array Arguments .. - INTEGER JPVT( * ) - REAL RWORK( * ) - COMPLEX A( LDA, * ), B( LDB, * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - INTEGER IMAX, IMIN - PARAMETER ( IMAX = 1, IMIN = 2 ) - REAL ZERO, ONE, DONE, NTDONE - PARAMETER ( ZERO = 0.0E+0, ONE = 1.0E+0, DONE = ZERO, - $ NTDONE = ONE ) - COMPLEX CZERO, CONE - PARAMETER ( CZERO = ( 0.0E+0, 0.0E+0 ), - $ CONE = ( 1.0E+0, 0.0E+0 ) ) -* .. -* .. Local Scalars .. - INTEGER I, IASCL, IBSCL, ISMAX, ISMIN, J, K, MN - REAL ANRM, BIGNUM, BNRM, SMAX, SMAXPR, SMIN, SMINPR, - $ SMLNUM - COMPLEX C1, C2, S1, S2, T1, T2 -* .. -* .. External Subroutines .. - EXTERNAL CGEQPF, CLAIC1, CLASCL, CLASET, CLATZM, CTRSM, - $ CTZRQF, CUNM2R, SLABAD, XERBLA -* .. -* .. External Functions .. - REAL CLANGE, SLAMCH - EXTERNAL CLANGE, SLAMCH -* .. -* .. Intrinsic Functions .. - INTRINSIC ABS, CONJG, MAX, MIN -* .. -* .. Executable Statements .. -* - MN = MIN( M, N ) - ISMIN = MN + 1 - ISMAX = 2*MN + 1 -* -* Test the input arguments. -* - INFO = 0 - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( NRHS.LT.0 ) THEN - INFO = -3 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -5 - ELSE IF( LDB.LT.MAX( 1, M, N ) ) THEN - INFO = -7 - END IF -* - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'CGELSX', -INFO ) - RETURN - END IF -* -* Quick return if possible -* - IF( MIN( M, N, NRHS ).EQ.0 ) THEN - RANK = 0 - RETURN - END IF -* -* Get machine parameters -* - SMLNUM = SLAMCH( 'S' ) / SLAMCH( 'P' ) - BIGNUM = ONE / SMLNUM - CALL SLABAD( SMLNUM, BIGNUM ) -* -* Scale A, B if max elements outside range [SMLNUM,BIGNUM] -* - ANRM = CLANGE( 'M', M, N, A, LDA, RWORK ) - IASCL = 0 - IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN -* -* Scale matrix norm up to SMLNUM -* - CALL CLASCL( 'G', 0, 0, ANRM, SMLNUM, M, N, A, LDA, INFO ) - IASCL = 1 - ELSE IF( ANRM.GT.BIGNUM ) THEN -* -* Scale matrix norm down to BIGNUM -* - CALL CLASCL( 'G', 0, 0, ANRM, BIGNUM, M, N, A, LDA, INFO ) - IASCL = 2 - ELSE IF( ANRM.EQ.ZERO ) THEN -* -* Matrix all zero. Return zero solution. -* - CALL CLASET( 'F', MAX( M, N ), NRHS, CZERO, CZERO, B, LDB ) - RANK = 0 - GO TO 100 - END IF -* - BNRM = CLANGE( 'M', M, NRHS, B, LDB, RWORK ) - IBSCL = 0 - IF( BNRM.GT.ZERO .AND. BNRM.LT.SMLNUM ) THEN -* -* Scale matrix norm up to SMLNUM -* - CALL CLASCL( 'G', 0, 0, BNRM, SMLNUM, M, NRHS, B, LDB, INFO ) - IBSCL = 1 - ELSE IF( BNRM.GT.BIGNUM ) THEN -* -* Scale matrix norm down to BIGNUM -* - CALL CLASCL( 'G', 0, 0, BNRM, BIGNUM, M, NRHS, B, LDB, INFO ) - IBSCL = 2 - END IF -* -* Compute QR factorization with column pivoting of A: -* A * P = Q * R -* - CALL CGEQPF( M, N, A, LDA, JPVT, WORK( 1 ), WORK( MN+1 ), RWORK, - $ INFO ) -* -* complex workspace MN+N. Real workspace 2*N. Details of Householder -* rotations stored in WORK(1:MN). -* -* Determine RANK using incremental condition estimation -* - WORK( ISMIN ) = CONE - WORK( ISMAX ) = CONE - SMAX = ABS( A( 1, 1 ) ) - SMIN = SMAX - IF( ABS( A( 1, 1 ) ).EQ.ZERO ) THEN - RANK = 0 - CALL CLASET( 'F', MAX( M, N ), NRHS, CZERO, CZERO, B, LDB ) - GO TO 100 - ELSE - RANK = 1 - END IF -* - 10 CONTINUE - IF( RANK.LT.MN ) THEN - I = RANK + 1 - CALL CLAIC1( IMIN, RANK, WORK( ISMIN ), SMIN, A( 1, I ), - $ A( I, I ), SMINPR, S1, C1 ) - CALL CLAIC1( IMAX, RANK, WORK( ISMAX ), SMAX, A( 1, I ), - $ A( I, I ), SMAXPR, S2, C2 ) -* - IF( SMAXPR*RCOND.LE.SMINPR ) THEN - DO 20 I = 1, RANK - WORK( ISMIN+I-1 ) = S1*WORK( ISMIN+I-1 ) - WORK( ISMAX+I-1 ) = S2*WORK( ISMAX+I-1 ) - 20 CONTINUE - WORK( ISMIN+RANK ) = C1 - WORK( ISMAX+RANK ) = C2 - SMIN = SMINPR - SMAX = SMAXPR - RANK = RANK + 1 - GO TO 10 - END IF - END IF -* -* Logically partition R = [ R11 R12 ] -* [ 0 R22 ] -* where R11 = R(1:RANK,1:RANK) -* -* [R11,R12] = [ T11, 0 ] * Y -* - IF( RANK.LT.N ) - $ CALL CTZRQF( RANK, N, A, LDA, WORK( MN+1 ), INFO ) -* -* Details of Householder rotations stored in WORK(MN+1:2*MN) -* -* B(1:M,1:NRHS) := Q**H * B(1:M,1:NRHS) -* - CALL CUNM2R( 'Left', 'Conjugate transpose', M, NRHS, MN, A, LDA, - $ WORK( 1 ), B, LDB, WORK( 2*MN+1 ), INFO ) -* -* workspace NRHS -* -* B(1:RANK,1:NRHS) := inv(T11) * B(1:RANK,1:NRHS) -* - CALL CTRSM( 'Left', 'Upper', 'No transpose', 'Non-unit', RANK, - $ NRHS, CONE, A, LDA, B, LDB ) -* - DO 40 I = RANK + 1, N - DO 30 J = 1, NRHS - B( I, J ) = CZERO - 30 CONTINUE - 40 CONTINUE -* -* B(1:N,1:NRHS) := Y**H * B(1:N,1:NRHS) -* - IF( RANK.LT.N ) THEN - DO 50 I = 1, RANK - CALL CLATZM( 'Left', N-RANK+1, NRHS, A( I, RANK+1 ), LDA, - $ CONJG( WORK( MN+I ) ), B( I, 1 ), - $ B( RANK+1, 1 ), LDB, WORK( 2*MN+1 ) ) - 50 CONTINUE - END IF -* -* workspace NRHS -* -* B(1:N,1:NRHS) := P * B(1:N,1:NRHS) -* - DO 90 J = 1, NRHS - DO 60 I = 1, N - WORK( 2*MN+I ) = NTDONE - 60 CONTINUE - DO 80 I = 1, N - IF( WORK( 2*MN+I ).EQ.NTDONE ) THEN - IF( JPVT( I ).NE.I ) THEN - K = I - T1 = B( K, J ) - T2 = B( JPVT( K ), J ) - 70 CONTINUE - B( JPVT( K ), J ) = T1 - WORK( 2*MN+K ) = DONE - T1 = T2 - K = JPVT( K ) - T2 = B( JPVT( K ), J ) - IF( JPVT( K ).NE.I ) - $ GO TO 70 - B( I, J ) = T1 - WORK( 2*MN+K ) = DONE - END IF - END IF - 80 CONTINUE - 90 CONTINUE -* -* Undo scaling -* - IF( IASCL.EQ.1 ) THEN - CALL CLASCL( 'G', 0, 0, ANRM, SMLNUM, N, NRHS, B, LDB, INFO ) - CALL CLASCL( 'U', 0, 0, SMLNUM, ANRM, RANK, RANK, A, LDA, - $ INFO ) - ELSE IF( IASCL.EQ.2 ) THEN - CALL CLASCL( 'G', 0, 0, ANRM, BIGNUM, N, NRHS, B, LDB, INFO ) - CALL CLASCL( 'U', 0, 0, BIGNUM, ANRM, RANK, RANK, A, LDA, - $ INFO ) - END IF - IF( IBSCL.EQ.1 ) THEN - CALL CLASCL( 'G', 0, 0, SMLNUM, BNRM, N, NRHS, B, LDB, INFO ) - ELSE IF( IBSCL.EQ.2 ) THEN - CALL CLASCL( 'G', 0, 0, BIGNUM, BNRM, N, NRHS, B, LDB, INFO ) - END IF -* - 100 CONTINUE -* - RETURN -* -* End of CGELSX -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/cgeqpf.f b/dspl/liblapack/SRC/DEPRECATED/cgeqpf.f deleted file mode 100644 index 2cbd195..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/cgeqpf.f +++ /dev/null @@ -1,313 +0,0 @@ -*> \brief \b CGEQPF -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download CGEQPF + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE CGEQPF( M, N, A, LDA, JPVT, TAU, WORK, RWORK, INFO ) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. -* INTEGER JPVT( * ) -* REAL RWORK( * ) -* COMPLEX A( LDA, * ), TAU( * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine CGEQP3. -*> -*> CGEQPF computes a QR factorization with column pivoting of a -*> complex M-by-N matrix A: A*P = Q*R. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix A. M >= 0. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrix A. N >= 0 -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is COMPLEX array, dimension (LDA,N) -*> On entry, the M-by-N matrix A. -*> On exit, the upper triangle of the array contains the -*> min(M,N)-by-N upper triangular matrix R; the elements -*> below the diagonal, together with the array TAU, -*> represent the unitary matrix Q as a product of -*> min(m,n) elementary reflectors. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of the array A. LDA >= max(1,M). -*> \endverbatim -*> -*> \param[in,out] JPVT -*> \verbatim -*> JPVT is INTEGER array, dimension (N) -*> On entry, if JPVT(i) .ne. 0, the i-th column of A is permuted -*> to the front of A*P (a leading column); if JPVT(i) = 0, -*> the i-th column of A is a free column. -*> On exit, if JPVT(i) = k, then the i-th column of A*P -*> was the k-th column of A. -*> \endverbatim -*> -*> \param[out] TAU -*> \verbatim -*> TAU is COMPLEX array, dimension (min(M,N)) -*> The scalar factors of the elementary reflectors. -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is COMPLEX array, dimension (N) -*> \endverbatim -*> -*> \param[out] RWORK -*> \verbatim -*> RWORK is REAL array, dimension (2*N) -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup complexGEcomputational -* -*> \par Further Details: -* ===================== -*> -*> \verbatim -*> -*> The matrix Q is represented as a product of elementary reflectors -*> -*> Q = H(1) H(2) . . . H(n) -*> -*> Each H(i) has the form -*> -*> H = I - tau * v * v**H -*> -*> where tau is a complex scalar, and v is a complex vector with -*> v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i). -*> -*> The matrix P is represented in jpvt as follows: If -*> jpvt(j) = i -*> then the jth column of P is the ith canonical unit vector. -*> -*> Partial column norm updating strategy modified by -*> Z. Drmac and Z. Bujanovic, Dept. of Mathematics, -*> University of Zagreb, Croatia. -*> -- April 2011 -- -*> For more details see LAPACK Working Note 176. -*> \endverbatim -*> -* ===================================================================== - SUBROUTINE CGEQPF( M, N, A, LDA, JPVT, TAU, WORK, RWORK, INFO ) -* -* -- LAPACK computational routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. - INTEGER JPVT( * ) - REAL RWORK( * ) - COMPLEX A( LDA, * ), TAU( * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - REAL ZERO, ONE - PARAMETER ( ZERO = 0.0E+0, ONE = 1.0E+0 ) -* .. -* .. Local Scalars .. - INTEGER I, ITEMP, J, MA, MN, PVT - REAL TEMP, TEMP2, TOL3Z - COMPLEX AII -* .. -* .. External Subroutines .. - EXTERNAL CGEQR2, CLARF, CLARFG, CSWAP, CUNM2R, XERBLA -* .. -* .. Intrinsic Functions .. - INTRINSIC ABS, CMPLX, CONJG, MAX, MIN, SQRT -* .. -* .. External Functions .. - INTEGER ISAMAX - REAL SCNRM2, SLAMCH - EXTERNAL ISAMAX, SCNRM2, SLAMCH -* .. -* .. Executable Statements .. -* -* Test the input arguments -* - INFO = 0 - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'CGEQPF', -INFO ) - RETURN - END IF -* - MN = MIN( M, N ) - TOL3Z = SQRT(SLAMCH('Epsilon')) -* -* Move initial columns up front -* - ITEMP = 1 - DO 10 I = 1, N - IF( JPVT( I ).NE.0 ) THEN - IF( I.NE.ITEMP ) THEN - CALL CSWAP( M, A( 1, I ), 1, A( 1, ITEMP ), 1 ) - JPVT( I ) = JPVT( ITEMP ) - JPVT( ITEMP ) = I - ELSE - JPVT( I ) = I - END IF - ITEMP = ITEMP + 1 - ELSE - JPVT( I ) = I - END IF - 10 CONTINUE - ITEMP = ITEMP - 1 -* -* Compute the QR factorization and update remaining columns -* - IF( ITEMP.GT.0 ) THEN - MA = MIN( ITEMP, M ) - CALL CGEQR2( M, MA, A, LDA, TAU, WORK, INFO ) - IF( MA.LT.N ) THEN - CALL CUNM2R( 'Left', 'Conjugate transpose', M, N-MA, MA, A, - $ LDA, TAU, A( 1, MA+1 ), LDA, WORK, INFO ) - END IF - END IF -* - IF( ITEMP.LT.MN ) THEN -* -* Initialize partial column norms. The first n elements of -* work store the exact column norms. -* - DO 20 I = ITEMP + 1, N - RWORK( I ) = SCNRM2( M-ITEMP, A( ITEMP+1, I ), 1 ) - RWORK( N+I ) = RWORK( I ) - 20 CONTINUE -* -* Compute factorization -* - DO 40 I = ITEMP + 1, MN -* -* Determine ith pivot column and swap if necessary -* - PVT = ( I-1 ) + ISAMAX( N-I+1, RWORK( I ), 1 ) -* - IF( PVT.NE.I ) THEN - CALL CSWAP( M, A( 1, PVT ), 1, A( 1, I ), 1 ) - ITEMP = JPVT( PVT ) - JPVT( PVT ) = JPVT( I ) - JPVT( I ) = ITEMP - RWORK( PVT ) = RWORK( I ) - RWORK( N+PVT ) = RWORK( N+I ) - END IF -* -* Generate elementary reflector H(i) -* - AII = A( I, I ) - CALL CLARFG( M-I+1, AII, A( MIN( I+1, M ), I ), 1, - $ TAU( I ) ) - A( I, I ) = AII -* - IF( I.LT.N ) THEN -* -* Apply H(i) to A(i:m,i+1:n) from the left -* - AII = A( I, I ) - A( I, I ) = CMPLX( ONE ) - CALL CLARF( 'Left', M-I+1, N-I, A( I, I ), 1, - $ CONJG( TAU( I ) ), A( I, I+1 ), LDA, WORK ) - A( I, I ) = AII - END IF -* -* Update partial column norms -* - DO 30 J = I + 1, N - IF( RWORK( J ).NE.ZERO ) THEN -* -* NOTE: The following 4 lines follow from the analysis in -* Lapack Working Note 176. -* - TEMP = ABS( A( I, J ) ) / RWORK( J ) - TEMP = MAX( ZERO, ( ONE+TEMP )*( ONE-TEMP ) ) - TEMP2 = TEMP*( RWORK( J ) / RWORK( N+J ) )**2 - IF( TEMP2 .LE. TOL3Z ) THEN - IF( M-I.GT.0 ) THEN - RWORK( J ) = SCNRM2( M-I, A( I+1, J ), 1 ) - RWORK( N+J ) = RWORK( J ) - ELSE - RWORK( J ) = ZERO - RWORK( N+J ) = ZERO - END IF - ELSE - RWORK( J ) = RWORK( J )*SQRT( TEMP ) - END IF - END IF - 30 CONTINUE -* - 40 CONTINUE - END IF - RETURN -* -* End of CGEQPF -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/cggsvd.f b/dspl/liblapack/SRC/DEPRECATED/cggsvd.f deleted file mode 100644 index e7ece14..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/cggsvd.f +++ /dev/null @@ -1,466 +0,0 @@ -*> \brief CGGSVD computes the singular value decomposition (SVD) for OTHER matrices -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download CGGSVD + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE CGGSVD( JOBU, JOBV, JOBQ, M, N, P, K, L, A, LDA, B, -* LDB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, -* RWORK, IWORK, INFO ) -* -* .. Scalar Arguments .. -* CHARACTER JOBQ, JOBU, JOBV -* INTEGER INFO, K, L, LDA, LDB, LDQ, LDU, LDV, M, N, P -* .. -* .. Array Arguments .. -* INTEGER IWORK( * ) -* REAL ALPHA( * ), BETA( * ), RWORK( * ) -* COMPLEX A( LDA, * ), B( LDB, * ), Q( LDQ, * ), -* $ U( LDU, * ), V( LDV, * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine CGGSVD3. -*> -*> CGGSVD computes the generalized singular value decomposition (GSVD) -*> of an M-by-N complex matrix A and P-by-N complex matrix B: -*> -*> U**H*A*Q = D1*( 0 R ), V**H*B*Q = D2*( 0 R ) -*> -*> where U, V and Q are unitary matrices. -*> Let K+L = the effective numerical rank of the -*> matrix (A**H,B**H)**H, then R is a (K+L)-by-(K+L) nonsingular upper -*> triangular matrix, D1 and D2 are M-by-(K+L) and P-by-(K+L) "diagonal" -*> matrices and of the following structures, respectively: -*> -*> If M-K-L >= 0, -*> -*> K L -*> D1 = K ( I 0 ) -*> L ( 0 C ) -*> M-K-L ( 0 0 ) -*> -*> K L -*> D2 = L ( 0 S ) -*> P-L ( 0 0 ) -*> -*> N-K-L K L -*> ( 0 R ) = K ( 0 R11 R12 ) -*> L ( 0 0 R22 ) -*> -*> where -*> -*> C = diag( ALPHA(K+1), ... , ALPHA(K+L) ), -*> S = diag( BETA(K+1), ... , BETA(K+L) ), -*> C**2 + S**2 = I. -*> -*> R is stored in A(1:K+L,N-K-L+1:N) on exit. -*> -*> If M-K-L < 0, -*> -*> K M-K K+L-M -*> D1 = K ( I 0 0 ) -*> M-K ( 0 C 0 ) -*> -*> K M-K K+L-M -*> D2 = M-K ( 0 S 0 ) -*> K+L-M ( 0 0 I ) -*> P-L ( 0 0 0 ) -*> -*> N-K-L K M-K K+L-M -*> ( 0 R ) = K ( 0 R11 R12 R13 ) -*> M-K ( 0 0 R22 R23 ) -*> K+L-M ( 0 0 0 R33 ) -*> -*> where -*> -*> C = diag( ALPHA(K+1), ... , ALPHA(M) ), -*> S = diag( BETA(K+1), ... , BETA(M) ), -*> C**2 + S**2 = I. -*> -*> (R11 R12 R13 ) is stored in A(1:M, N-K-L+1:N), and R33 is stored -*> ( 0 R22 R23 ) -*> in B(M-K+1:L,N+M-K-L+1:N) on exit. -*> -*> The routine computes C, S, R, and optionally the unitary -*> transformation matrices U, V and Q. -*> -*> In particular, if B is an N-by-N nonsingular matrix, then the GSVD of -*> A and B implicitly gives the SVD of A*inv(B): -*> A*inv(B) = U*(D1*inv(D2))*V**H. -*> If ( A**H,B**H)**H has orthnormal columns, then the GSVD of A and B is also -*> equal to the CS decomposition of A and B. Furthermore, the GSVD can -*> be used to derive the solution of the eigenvalue problem: -*> A**H*A x = lambda* B**H*B x. -*> In some literature, the GSVD of A and B is presented in the form -*> U**H*A*X = ( 0 D1 ), V**H*B*X = ( 0 D2 ) -*> where U and V are orthogonal and X is nonsingular, and D1 and D2 are -*> ``diagonal''. The former GSVD form can be converted to the latter -*> form by taking the nonsingular matrix X as -*> -*> X = Q*( I 0 ) -*> ( 0 inv(R) ) -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] JOBU -*> \verbatim -*> JOBU is CHARACTER*1 -*> = 'U': Unitary matrix U is computed; -*> = 'N': U is not computed. -*> \endverbatim -*> -*> \param[in] JOBV -*> \verbatim -*> JOBV is CHARACTER*1 -*> = 'V': Unitary matrix V is computed; -*> = 'N': V is not computed. -*> \endverbatim -*> -*> \param[in] JOBQ -*> \verbatim -*> JOBQ is CHARACTER*1 -*> = 'Q': Unitary matrix Q is computed; -*> = 'N': Q is not computed. -*> \endverbatim -*> -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix A. M >= 0. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrices A and B. N >= 0. -*> \endverbatim -*> -*> \param[in] P -*> \verbatim -*> P is INTEGER -*> The number of rows of the matrix B. P >= 0. -*> \endverbatim -*> -*> \param[out] K -*> \verbatim -*> K is INTEGER -*> \endverbatim -*> -*> \param[out] L -*> \verbatim -*> L is INTEGER -*> -*> On exit, K and L specify the dimension of the subblocks -*> described in Purpose. -*> K + L = effective numerical rank of (A**H,B**H)**H. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is COMPLEX array, dimension (LDA,N) -*> On entry, the M-by-N matrix A. -*> On exit, A contains the triangular matrix R, or part of R. -*> See Purpose for details. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of the array A. LDA >= max(1,M). -*> \endverbatim -*> -*> \param[in,out] B -*> \verbatim -*> B is COMPLEX array, dimension (LDB,N) -*> On entry, the P-by-N matrix B. -*> On exit, B contains part of the triangular matrix R if -*> M-K-L < 0. See Purpose for details. -*> \endverbatim -*> -*> \param[in] LDB -*> \verbatim -*> LDB is INTEGER -*> The leading dimension of the array B. LDB >= max(1,P). -*> \endverbatim -*> -*> \param[out] ALPHA -*> \verbatim -*> ALPHA is REAL array, dimension (N) -*> \endverbatim -*> -*> \param[out] BETA -*> \verbatim -*> BETA is REAL array, dimension (N) -*> -*> On exit, ALPHA and BETA contain the generalized singular -*> value pairs of A and B; -*> ALPHA(1:K) = 1, -*> BETA(1:K) = 0, -*> and if M-K-L >= 0, -*> ALPHA(K+1:K+L) = C, -*> BETA(K+1:K+L) = S, -*> or if M-K-L < 0, -*> ALPHA(K+1:M)=C, ALPHA(M+1:K+L)=0 -*> BETA(K+1:M) =S, BETA(M+1:K+L) =1 -*> and -*> ALPHA(K+L+1:N) = 0 -*> BETA(K+L+1:N) = 0 -*> \endverbatim -*> -*> \param[out] U -*> \verbatim -*> U is COMPLEX array, dimension (LDU,M) -*> If JOBU = 'U', U contains the M-by-M unitary matrix U. -*> If JOBU = 'N', U is not referenced. -*> \endverbatim -*> -*> \param[in] LDU -*> \verbatim -*> LDU is INTEGER -*> The leading dimension of the array U. LDU >= max(1,M) if -*> JOBU = 'U'; LDU >= 1 otherwise. -*> \endverbatim -*> -*> \param[out] V -*> \verbatim -*> V is COMPLEX array, dimension (LDV,P) -*> If JOBV = 'V', V contains the P-by-P unitary matrix V. -*> If JOBV = 'N', V is not referenced. -*> \endverbatim -*> -*> \param[in] LDV -*> \verbatim -*> LDV is INTEGER -*> The leading dimension of the array V. LDV >= max(1,P) if -*> JOBV = 'V'; LDV >= 1 otherwise. -*> \endverbatim -*> -*> \param[out] Q -*> \verbatim -*> Q is COMPLEX array, dimension (LDQ,N) -*> If JOBQ = 'Q', Q contains the N-by-N unitary matrix Q. -*> If JOBQ = 'N', Q is not referenced. -*> \endverbatim -*> -*> \param[in] LDQ -*> \verbatim -*> LDQ is INTEGER -*> The leading dimension of the array Q. LDQ >= max(1,N) if -*> JOBQ = 'Q'; LDQ >= 1 otherwise. -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is COMPLEX array, dimension (max(3*N,M,P)+N) -*> \endverbatim -*> -*> \param[out] RWORK -*> \verbatim -*> RWORK is REAL array, dimension (2*N) -*> \endverbatim -*> -*> \param[out] IWORK -*> \verbatim -*> IWORK is INTEGER array, dimension (N) -*> On exit, IWORK stores the sorting information. More -*> precisely, the following loop will sort ALPHA -*> for I = K+1, min(M,K+L) -*> swap ALPHA(I) and ALPHA(IWORK(I)) -*> endfor -*> such that ALPHA(1) >= ALPHA(2) >= ... >= ALPHA(N). -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit. -*> < 0: if INFO = -i, the i-th argument had an illegal value. -*> > 0: if INFO = 1, the Jacobi-type procedure failed to -*> converge. For further details, see subroutine CTGSJA. -*> \endverbatim -* -*> \par Internal Parameters: -* ========================= -*> -*> \verbatim -*> TOLA REAL -*> TOLB REAL -*> TOLA and TOLB are the thresholds to determine the effective -*> rank of (A**H,B**H)**H. Generally, they are set to -*> TOLA = MAX(M,N)*norm(A)*MACHEPS, -*> TOLB = MAX(P,N)*norm(B)*MACHEPS. -*> The size of TOLA and TOLB may affect the size of backward -*> errors of the decomposition. -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup complexOTHERsing -* -*> \par Contributors: -* ================== -*> -*> Ming Gu and Huan Ren, Computer Science Division, University of -*> California at Berkeley, USA -*> -* ===================================================================== - SUBROUTINE CGGSVD( JOBU, JOBV, JOBQ, M, N, P, K, L, A, LDA, B, - $ LDB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, - $ RWORK, IWORK, INFO ) -* -* -- LAPACK driver routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER JOBQ, JOBU, JOBV - INTEGER INFO, K, L, LDA, LDB, LDQ, LDU, LDV, M, N, P -* .. -* .. Array Arguments .. - INTEGER IWORK( * ) - REAL ALPHA( * ), BETA( * ), RWORK( * ) - COMPLEX A( LDA, * ), B( LDB, * ), Q( LDQ, * ), - $ U( LDU, * ), V( LDV, * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Local Scalars .. - LOGICAL WANTQ, WANTU, WANTV - INTEGER I, IBND, ISUB, J, NCYCLE - REAL ANORM, BNORM, SMAX, TEMP, TOLA, TOLB, ULP, UNFL -* .. -* .. External Functions .. - LOGICAL LSAME - REAL CLANGE, SLAMCH - EXTERNAL LSAME, CLANGE, SLAMCH -* .. -* .. External Subroutines .. - EXTERNAL CGGSVP, CTGSJA, SCOPY, XERBLA -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. Executable Statements .. -* -* Decode and test the input parameters -* - WANTU = LSAME( JOBU, 'U' ) - WANTV = LSAME( JOBV, 'V' ) - WANTQ = LSAME( JOBQ, 'Q' ) -* - INFO = 0 - IF( .NOT.( WANTU .OR. LSAME( JOBU, 'N' ) ) ) THEN - INFO = -1 - ELSE IF( .NOT.( WANTV .OR. LSAME( JOBV, 'N' ) ) ) THEN - INFO = -2 - ELSE IF( .NOT.( WANTQ .OR. LSAME( JOBQ, 'N' ) ) ) THEN - INFO = -3 - ELSE IF( M.LT.0 ) THEN - INFO = -4 - ELSE IF( N.LT.0 ) THEN - INFO = -5 - ELSE IF( P.LT.0 ) THEN - INFO = -6 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -10 - ELSE IF( LDB.LT.MAX( 1, P ) ) THEN - INFO = -12 - ELSE IF( LDU.LT.1 .OR. ( WANTU .AND. LDU.LT.M ) ) THEN - INFO = -16 - ELSE IF( LDV.LT.1 .OR. ( WANTV .AND. LDV.LT.P ) ) THEN - INFO = -18 - ELSE IF( LDQ.LT.1 .OR. ( WANTQ .AND. LDQ.LT.N ) ) THEN - INFO = -20 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'CGGSVD', -INFO ) - RETURN - END IF -* -* Compute the Frobenius norm of matrices A and B -* - ANORM = CLANGE( '1', M, N, A, LDA, RWORK ) - BNORM = CLANGE( '1', P, N, B, LDB, RWORK ) -* -* Get machine precision and set up threshold for determining -* the effective numerical rank of the matrices A and B. -* - ULP = SLAMCH( 'Precision' ) - UNFL = SLAMCH( 'Safe Minimum' ) - TOLA = MAX( M, N )*MAX( ANORM, UNFL )*ULP - TOLB = MAX( P, N )*MAX( BNORM, UNFL )*ULP -* - CALL CGGSVP( JOBU, JOBV, JOBQ, M, P, N, A, LDA, B, LDB, TOLA, - $ TOLB, K, L, U, LDU, V, LDV, Q, LDQ, IWORK, RWORK, - $ WORK, WORK( N+1 ), INFO ) -* -* Compute the GSVD of two upper "triangular" matrices -* - CALL CTGSJA( JOBU, JOBV, JOBQ, M, P, N, K, L, A, LDA, B, LDB, - $ TOLA, TOLB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, - $ WORK, NCYCLE, INFO ) -* -* Sort the singular values and store the pivot indices in IWORK -* Copy ALPHA to RWORK, then sort ALPHA in RWORK -* - CALL SCOPY( N, ALPHA, 1, RWORK, 1 ) - IBND = MIN( L, M-K ) - DO 20 I = 1, IBND -* -* Scan for largest ALPHA(K+I) -* - ISUB = I - SMAX = RWORK( K+I ) - DO 10 J = I + 1, IBND - TEMP = RWORK( K+J ) - IF( TEMP.GT.SMAX ) THEN - ISUB = J - SMAX = TEMP - END IF - 10 CONTINUE - IF( ISUB.NE.I ) THEN - RWORK( K+ISUB ) = RWORK( K+I ) - RWORK( K+I ) = SMAX - IWORK( K+I ) = K + ISUB - ELSE - IWORK( K+I ) = K + I - END IF - 20 CONTINUE -* - RETURN -* -* End of CGGSVD -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/cggsvp.f b/dspl/liblapack/SRC/DEPRECATED/cggsvp.f deleted file mode 100644 index 24bb09a..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/cggsvp.f +++ /dev/null @@ -1,536 +0,0 @@ -*> \brief \b CGGSVP -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download CGGSVP + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE CGGSVP( JOBU, JOBV, JOBQ, M, P, N, A, LDA, B, LDB, -* TOLA, TOLB, K, L, U, LDU, V, LDV, Q, LDQ, -* IWORK, RWORK, TAU, WORK, INFO ) -* -* .. Scalar Arguments .. -* CHARACTER JOBQ, JOBU, JOBV -* INTEGER INFO, K, L, LDA, LDB, LDQ, LDU, LDV, M, N, P -* REAL TOLA, TOLB -* .. -* .. Array Arguments .. -* INTEGER IWORK( * ) -* REAL RWORK( * ) -* COMPLEX A( LDA, * ), B( LDB, * ), Q( LDQ, * ), -* $ TAU( * ), U( LDU, * ), V( LDV, * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine CGGSVP3. -*> -*> CGGSVP computes unitary matrices U, V and Q such that -*> -*> N-K-L K L -*> U**H*A*Q = K ( 0 A12 A13 ) if M-K-L >= 0; -*> L ( 0 0 A23 ) -*> M-K-L ( 0 0 0 ) -*> -*> N-K-L K L -*> = K ( 0 A12 A13 ) if M-K-L < 0; -*> M-K ( 0 0 A23 ) -*> -*> N-K-L K L -*> V**H*B*Q = L ( 0 0 B13 ) -*> P-L ( 0 0 0 ) -*> -*> where the K-by-K matrix A12 and L-by-L matrix B13 are nonsingular -*> upper triangular; A23 is L-by-L upper triangular if M-K-L >= 0, -*> otherwise A23 is (M-K)-by-L upper trapezoidal. K+L = the effective -*> numerical rank of the (M+P)-by-N matrix (A**H,B**H)**H. -*> -*> This decomposition is the preprocessing step for computing the -*> Generalized Singular Value Decomposition (GSVD), see subroutine -*> CGGSVD. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] JOBU -*> \verbatim -*> JOBU is CHARACTER*1 -*> = 'U': Unitary matrix U is computed; -*> = 'N': U is not computed. -*> \endverbatim -*> -*> \param[in] JOBV -*> \verbatim -*> JOBV is CHARACTER*1 -*> = 'V': Unitary matrix V is computed; -*> = 'N': V is not computed. -*> \endverbatim -*> -*> \param[in] JOBQ -*> \verbatim -*> JOBQ is CHARACTER*1 -*> = 'Q': Unitary matrix Q is computed; -*> = 'N': Q is not computed. -*> \endverbatim -*> -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix A. M >= 0. -*> \endverbatim -*> -*> \param[in] P -*> \verbatim -*> P is INTEGER -*> The number of rows of the matrix B. P >= 0. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrices A and B. N >= 0. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is COMPLEX array, dimension (LDA,N) -*> On entry, the M-by-N matrix A. -*> On exit, A contains the triangular (or trapezoidal) matrix -*> described in the Purpose section. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of the array A. LDA >= max(1,M). -*> \endverbatim -*> -*> \param[in,out] B -*> \verbatim -*> B is COMPLEX array, dimension (LDB,N) -*> On entry, the P-by-N matrix B. -*> On exit, B contains the triangular matrix described in -*> the Purpose section. -*> \endverbatim -*> -*> \param[in] LDB -*> \verbatim -*> LDB is INTEGER -*> The leading dimension of the array B. LDB >= max(1,P). -*> \endverbatim -*> -*> \param[in] TOLA -*> \verbatim -*> TOLA is REAL -*> \endverbatim -*> -*> \param[in] TOLB -*> \verbatim -*> TOLB is REAL -*> -*> TOLA and TOLB are the thresholds to determine the effective -*> numerical rank of matrix B and a subblock of A. Generally, -*> they are set to -*> TOLA = MAX(M,N)*norm(A)*MACHEPS, -*> TOLB = MAX(P,N)*norm(B)*MACHEPS. -*> The size of TOLA and TOLB may affect the size of backward -*> errors of the decomposition. -*> \endverbatim -*> -*> \param[out] K -*> \verbatim -*> K is INTEGER -*> \endverbatim -*> -*> \param[out] L -*> \verbatim -*> L is INTEGER -*> -*> On exit, K and L specify the dimension of the subblocks -*> described in Purpose section. -*> K + L = effective numerical rank of (A**H,B**H)**H. -*> \endverbatim -*> -*> \param[out] U -*> \verbatim -*> U is COMPLEX array, dimension (LDU,M) -*> If JOBU = 'U', U contains the unitary matrix U. -*> If JOBU = 'N', U is not referenced. -*> \endverbatim -*> -*> \param[in] LDU -*> \verbatim -*> LDU is INTEGER -*> The leading dimension of the array U. LDU >= max(1,M) if -*> JOBU = 'U'; LDU >= 1 otherwise. -*> \endverbatim -*> -*> \param[out] V -*> \verbatim -*> V is COMPLEX array, dimension (LDV,P) -*> If JOBV = 'V', V contains the unitary matrix V. -*> If JOBV = 'N', V is not referenced. -*> \endverbatim -*> -*> \param[in] LDV -*> \verbatim -*> LDV is INTEGER -*> The leading dimension of the array V. LDV >= max(1,P) if -*> JOBV = 'V'; LDV >= 1 otherwise. -*> \endverbatim -*> -*> \param[out] Q -*> \verbatim -*> Q is COMPLEX array, dimension (LDQ,N) -*> If JOBQ = 'Q', Q contains the unitary matrix Q. -*> If JOBQ = 'N', Q is not referenced. -*> \endverbatim -*> -*> \param[in] LDQ -*> \verbatim -*> LDQ is INTEGER -*> The leading dimension of the array Q. LDQ >= max(1,N) if -*> JOBQ = 'Q'; LDQ >= 1 otherwise. -*> \endverbatim -*> -*> \param[out] IWORK -*> \verbatim -*> IWORK is INTEGER array, dimension (N) -*> \endverbatim -*> -*> \param[out] RWORK -*> \verbatim -*> RWORK is REAL array, dimension (2*N) -*> \endverbatim -*> -*> \param[out] TAU -*> \verbatim -*> TAU is COMPLEX array, dimension (N) -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is COMPLEX array, dimension (max(3*N,M,P)) -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value. -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup complexOTHERcomputational -* -*> \par Further Details: -* ===================== -*> -*> The subroutine uses LAPACK subroutine CGEQPF for the QR factorization -*> with column pivoting to detect the effective numerical rank of the -*> a matrix. It may be replaced by a better rank determination strategy. -*> -* ===================================================================== - SUBROUTINE CGGSVP( JOBU, JOBV, JOBQ, M, P, N, A, LDA, B, LDB, - $ TOLA, TOLB, K, L, U, LDU, V, LDV, Q, LDQ, - $ IWORK, RWORK, TAU, WORK, INFO ) -* -* -- LAPACK computational routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER JOBQ, JOBU, JOBV - INTEGER INFO, K, L, LDA, LDB, LDQ, LDU, LDV, M, N, P - REAL TOLA, TOLB -* .. -* .. Array Arguments .. - INTEGER IWORK( * ) - REAL RWORK( * ) - COMPLEX A( LDA, * ), B( LDB, * ), Q( LDQ, * ), - $ TAU( * ), U( LDU, * ), V( LDV, * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - COMPLEX CZERO, CONE - PARAMETER ( CZERO = ( 0.0E+0, 0.0E+0 ), - $ CONE = ( 1.0E+0, 0.0E+0 ) ) -* .. -* .. Local Scalars .. - LOGICAL FORWRD, WANTQ, WANTU, WANTV - INTEGER I, J - COMPLEX T -* .. -* .. External Functions .. - LOGICAL LSAME - EXTERNAL LSAME -* .. -* .. External Subroutines .. - EXTERNAL CGEQPF, CGEQR2, CGERQ2, CLACPY, CLAPMT, CLASET, - $ CUNG2R, CUNM2R, CUNMR2, XERBLA -* .. -* .. Intrinsic Functions .. - INTRINSIC ABS, AIMAG, MAX, MIN, REAL -* .. -* .. Statement Functions .. - REAL CABS1 -* .. -* .. Statement Function definitions .. - CABS1( T ) = ABS( REAL( T ) ) + ABS( AIMAG( T ) ) -* .. -* .. Executable Statements .. -* -* Test the input parameters -* - WANTU = LSAME( JOBU, 'U' ) - WANTV = LSAME( JOBV, 'V' ) - WANTQ = LSAME( JOBQ, 'Q' ) - FORWRD = .TRUE. -* - INFO = 0 - IF( .NOT.( WANTU .OR. LSAME( JOBU, 'N' ) ) ) THEN - INFO = -1 - ELSE IF( .NOT.( WANTV .OR. LSAME( JOBV, 'N' ) ) ) THEN - INFO = -2 - ELSE IF( .NOT.( WANTQ .OR. LSAME( JOBQ, 'N' ) ) ) THEN - INFO = -3 - ELSE IF( M.LT.0 ) THEN - INFO = -4 - ELSE IF( P.LT.0 ) THEN - INFO = -5 - ELSE IF( N.LT.0 ) THEN - INFO = -6 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -8 - ELSE IF( LDB.LT.MAX( 1, P ) ) THEN - INFO = -10 - ELSE IF( LDU.LT.1 .OR. ( WANTU .AND. LDU.LT.M ) ) THEN - INFO = -16 - ELSE IF( LDV.LT.1 .OR. ( WANTV .AND. LDV.LT.P ) ) THEN - INFO = -18 - ELSE IF( LDQ.LT.1 .OR. ( WANTQ .AND. LDQ.LT.N ) ) THEN - INFO = -20 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'CGGSVP', -INFO ) - RETURN - END IF -* -* QR with column pivoting of B: B*P = V*( S11 S12 ) -* ( 0 0 ) -* - DO 10 I = 1, N - IWORK( I ) = 0 - 10 CONTINUE - CALL CGEQPF( P, N, B, LDB, IWORK, TAU, WORK, RWORK, INFO ) -* -* Update A := A*P -* - CALL CLAPMT( FORWRD, M, N, A, LDA, IWORK ) -* -* Determine the effective rank of matrix B. -* - L = 0 - DO 20 I = 1, MIN( P, N ) - IF( CABS1( B( I, I ) ).GT.TOLB ) - $ L = L + 1 - 20 CONTINUE -* - IF( WANTV ) THEN -* -* Copy the details of V, and form V. -* - CALL CLASET( 'Full', P, P, CZERO, CZERO, V, LDV ) - IF( P.GT.1 ) - $ CALL CLACPY( 'Lower', P-1, N, B( 2, 1 ), LDB, V( 2, 1 ), - $ LDV ) - CALL CUNG2R( P, P, MIN( P, N ), V, LDV, TAU, WORK, INFO ) - END IF -* -* Clean up B -* - DO 40 J = 1, L - 1 - DO 30 I = J + 1, L - B( I, J ) = CZERO - 30 CONTINUE - 40 CONTINUE - IF( P.GT.L ) - $ CALL CLASET( 'Full', P-L, N, CZERO, CZERO, B( L+1, 1 ), LDB ) -* - IF( WANTQ ) THEN -* -* Set Q = I and Update Q := Q*P -* - CALL CLASET( 'Full', N, N, CZERO, CONE, Q, LDQ ) - CALL CLAPMT( FORWRD, N, N, Q, LDQ, IWORK ) - END IF -* - IF( P.GE.L .AND. N.NE.L ) THEN -* -* RQ factorization of ( S11 S12 ) = ( 0 S12 )*Z -* - CALL CGERQ2( L, N, B, LDB, TAU, WORK, INFO ) -* -* Update A := A*Z**H -* - CALL CUNMR2( 'Right', 'Conjugate transpose', M, N, L, B, LDB, - $ TAU, A, LDA, WORK, INFO ) - IF( WANTQ ) THEN -* -* Update Q := Q*Z**H -* - CALL CUNMR2( 'Right', 'Conjugate transpose', N, N, L, B, - $ LDB, TAU, Q, LDQ, WORK, INFO ) - END IF -* -* Clean up B -* - CALL CLASET( 'Full', L, N-L, CZERO, CZERO, B, LDB ) - DO 60 J = N - L + 1, N - DO 50 I = J - N + L + 1, L - B( I, J ) = CZERO - 50 CONTINUE - 60 CONTINUE -* - END IF -* -* Let N-L L -* A = ( A11 A12 ) M, -* -* then the following does the complete QR decomposition of A11: -* -* A11 = U*( 0 T12 )*P1**H -* ( 0 0 ) -* - DO 70 I = 1, N - L - IWORK( I ) = 0 - 70 CONTINUE - CALL CGEQPF( M, N-L, A, LDA, IWORK, TAU, WORK, RWORK, INFO ) -* -* Determine the effective rank of A11 -* - K = 0 - DO 80 I = 1, MIN( M, N-L ) - IF( CABS1( A( I, I ) ).GT.TOLA ) - $ K = K + 1 - 80 CONTINUE -* -* Update A12 := U**H*A12, where A12 = A( 1:M, N-L+1:N ) -* - CALL CUNM2R( 'Left', 'Conjugate transpose', M, L, MIN( M, N-L ), - $ A, LDA, TAU, A( 1, N-L+1 ), LDA, WORK, INFO ) -* - IF( WANTU ) THEN -* -* Copy the details of U, and form U -* - CALL CLASET( 'Full', M, M, CZERO, CZERO, U, LDU ) - IF( M.GT.1 ) - $ CALL CLACPY( 'Lower', M-1, N-L, A( 2, 1 ), LDA, U( 2, 1 ), - $ LDU ) - CALL CUNG2R( M, M, MIN( M, N-L ), U, LDU, TAU, WORK, INFO ) - END IF -* - IF( WANTQ ) THEN -* -* Update Q( 1:N, 1:N-L ) = Q( 1:N, 1:N-L )*P1 -* - CALL CLAPMT( FORWRD, N, N-L, Q, LDQ, IWORK ) - END IF -* -* Clean up A: set the strictly lower triangular part of -* A(1:K, 1:K) = 0, and A( K+1:M, 1:N-L ) = 0. -* - DO 100 J = 1, K - 1 - DO 90 I = J + 1, K - A( I, J ) = CZERO - 90 CONTINUE - 100 CONTINUE - IF( M.GT.K ) - $ CALL CLASET( 'Full', M-K, N-L, CZERO, CZERO, A( K+1, 1 ), LDA ) -* - IF( N-L.GT.K ) THEN -* -* RQ factorization of ( T11 T12 ) = ( 0 T12 )*Z1 -* - CALL CGERQ2( K, N-L, A, LDA, TAU, WORK, INFO ) -* - IF( WANTQ ) THEN -* -* Update Q( 1:N,1:N-L ) = Q( 1:N,1:N-L )*Z1**H -* - CALL CUNMR2( 'Right', 'Conjugate transpose', N, N-L, K, A, - $ LDA, TAU, Q, LDQ, WORK, INFO ) - END IF -* -* Clean up A -* - CALL CLASET( 'Full', K, N-L-K, CZERO, CZERO, A, LDA ) - DO 120 J = N - L - K + 1, N - L - DO 110 I = J - N + L + K + 1, K - A( I, J ) = CZERO - 110 CONTINUE - 120 CONTINUE -* - END IF -* - IF( M.GT.K ) THEN -* -* QR factorization of A( K+1:M,N-L+1:N ) -* - CALL CGEQR2( M-K, L, A( K+1, N-L+1 ), LDA, TAU, WORK, INFO ) -* - IF( WANTU ) THEN -* -* Update U(:,K+1:M) := U(:,K+1:M)*U1 -* - CALL CUNM2R( 'Right', 'No transpose', M, M-K, MIN( M-K, L ), - $ A( K+1, N-L+1 ), LDA, TAU, U( 1, K+1 ), LDU, - $ WORK, INFO ) - END IF -* -* Clean up -* - DO 140 J = N - L + 1, N - DO 130 I = J - N + K + L + 1, M - A( I, J ) = CZERO - 130 CONTINUE - 140 CONTINUE -* - END IF -* - RETURN -* -* End of CGGSVP -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/clahrd.f b/dspl/liblapack/SRC/DEPRECATED/clahrd.f deleted file mode 100644 index 7be3f2a..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/clahrd.f +++ /dev/null @@ -1,292 +0,0 @@ -*> \brief \b CLAHRD reduces the first nb columns of a general rectangular matrix A so that elements below the k-th subdiagonal are zero, and returns auxiliary matrices which are needed to apply the transformation to the unreduced part of A. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download CLAHRD + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE CLAHRD( N, K, NB, A, LDA, TAU, T, LDT, Y, LDY ) -* -* .. Scalar Arguments .. -* INTEGER K, LDA, LDT, LDY, N, NB -* .. -* .. Array Arguments .. -* COMPLEX A( LDA, * ), T( LDT, NB ), TAU( NB ), -* $ Y( LDY, NB ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine CLAHR2. -*> -*> CLAHRD reduces the first NB columns of a complex general n-by-(n-k+1) -*> matrix A so that elements below the k-th subdiagonal are zero. The -*> reduction is performed by a unitary similarity transformation -*> Q**H * A * Q. The routine returns the matrices V and T which determine -*> Q as a block reflector I - V*T*V**H, and also the matrix Y = A * V * T. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The order of the matrix A. -*> \endverbatim -*> -*> \param[in] K -*> \verbatim -*> K is INTEGER -*> The offset for the reduction. Elements below the k-th -*> subdiagonal in the first NB columns are reduced to zero. -*> \endverbatim -*> -*> \param[in] NB -*> \verbatim -*> NB is INTEGER -*> The number of columns to be reduced. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is COMPLEX array, dimension (LDA,N-K+1) -*> On entry, the n-by-(n-k+1) general matrix A. -*> On exit, the elements on and above the k-th subdiagonal in -*> the first NB columns are overwritten with the corresponding -*> elements of the reduced matrix; the elements below the k-th -*> subdiagonal, with the array TAU, represent the matrix Q as a -*> product of elementary reflectors. The other columns of A are -*> unchanged. See Further Details. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of the array A. LDA >= max(1,N). -*> \endverbatim -*> -*> \param[out] TAU -*> \verbatim -*> TAU is COMPLEX array, dimension (NB) -*> The scalar factors of the elementary reflectors. See Further -*> Details. -*> \endverbatim -*> -*> \param[out] T -*> \verbatim -*> T is COMPLEX array, dimension (LDT,NB) -*> The upper triangular matrix T. -*> \endverbatim -*> -*> \param[in] LDT -*> \verbatim -*> LDT is INTEGER -*> The leading dimension of the array T. LDT >= NB. -*> \endverbatim -*> -*> \param[out] Y -*> \verbatim -*> Y is COMPLEX array, dimension (LDY,NB) -*> The n-by-nb matrix Y. -*> \endverbatim -*> -*> \param[in] LDY -*> \verbatim -*> LDY is INTEGER -*> The leading dimension of the array Y. LDY >= max(1,N). -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup complexOTHERauxiliary -* -*> \par Further Details: -* ===================== -*> -*> \verbatim -*> -*> The matrix Q is represented as a product of nb elementary reflectors -*> -*> Q = H(1) H(2) . . . H(nb). -*> -*> Each H(i) has the form -*> -*> H(i) = I - tau * v * v**H -*> -*> where tau is a complex scalar, and v is a complex vector with -*> v(1:i+k-1) = 0, v(i+k) = 1; v(i+k+1:n) is stored on exit in -*> A(i+k+1:n,i), and tau in TAU(i). -*> -*> The elements of the vectors v together form the (n-k+1)-by-nb matrix -*> V which is needed, with T and Y, to apply the transformation to the -*> unreduced part of the matrix, using an update of the form: -*> A := (I - V*T*V**H) * (A - Y*V**H). -*> -*> The contents of A on exit are illustrated by the following example -*> with n = 7, k = 3 and nb = 2: -*> -*> ( a h a a a ) -*> ( a h a a a ) -*> ( a h a a a ) -*> ( h h a a a ) -*> ( v1 h a a a ) -*> ( v1 v2 a a a ) -*> ( v1 v2 a a a ) -*> -*> where a denotes an element of the original matrix A, h denotes a -*> modified element of the upper Hessenberg matrix H, and vi denotes an -*> element of the vector defining H(i). -*> \endverbatim -*> -* ===================================================================== - SUBROUTINE CLAHRD( N, K, NB, A, LDA, TAU, T, LDT, Y, LDY ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER K, LDA, LDT, LDY, N, NB -* .. -* .. Array Arguments .. - COMPLEX A( LDA, * ), T( LDT, NB ), TAU( NB ), - $ Y( LDY, NB ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - COMPLEX ZERO, ONE - PARAMETER ( ZERO = ( 0.0E+0, 0.0E+0 ), - $ ONE = ( 1.0E+0, 0.0E+0 ) ) -* .. -* .. Local Scalars .. - INTEGER I - COMPLEX EI -* .. -* .. External Subroutines .. - EXTERNAL CAXPY, CCOPY, CGEMV, CLACGV, CLARFG, CSCAL, - $ CTRMV -* .. -* .. Intrinsic Functions .. - INTRINSIC MIN -* .. -* .. Executable Statements .. -* -* Quick return if possible -* - IF( N.LE.1 ) - $ RETURN -* - DO 10 I = 1, NB - IF( I.GT.1 ) THEN -* -* Update A(1:n,i) -* -* Compute i-th column of A - Y * V**H -* - CALL CLACGV( I-1, A( K+I-1, 1 ), LDA ) - CALL CGEMV( 'No transpose', N, I-1, -ONE, Y, LDY, - $ A( K+I-1, 1 ), LDA, ONE, A( 1, I ), 1 ) - CALL CLACGV( I-1, A( K+I-1, 1 ), LDA ) -* -* Apply I - V * T**H * V**H to this column (call it b) from the -* left, using the last column of T as workspace -* -* Let V = ( V1 ) and b = ( b1 ) (first I-1 rows) -* ( V2 ) ( b2 ) -* -* where V1 is unit lower triangular -* -* w := V1**H * b1 -* - CALL CCOPY( I-1, A( K+1, I ), 1, T( 1, NB ), 1 ) - CALL CTRMV( 'Lower', 'Conjugate transpose', 'Unit', I-1, - $ A( K+1, 1 ), LDA, T( 1, NB ), 1 ) -* -* w := w + V2**H *b2 -* - CALL CGEMV( 'Conjugate transpose', N-K-I+1, I-1, ONE, - $ A( K+I, 1 ), LDA, A( K+I, I ), 1, ONE, - $ T( 1, NB ), 1 ) -* -* w := T**H *w -* - CALL CTRMV( 'Upper', 'Conjugate transpose', 'Non-unit', I-1, - $ T, LDT, T( 1, NB ), 1 ) -* -* b2 := b2 - V2*w -* - CALL CGEMV( 'No transpose', N-K-I+1, I-1, -ONE, A( K+I, 1 ), - $ LDA, T( 1, NB ), 1, ONE, A( K+I, I ), 1 ) -* -* b1 := b1 - V1*w -* - CALL CTRMV( 'Lower', 'No transpose', 'Unit', I-1, - $ A( K+1, 1 ), LDA, T( 1, NB ), 1 ) - CALL CAXPY( I-1, -ONE, T( 1, NB ), 1, A( K+1, I ), 1 ) -* - A( K+I-1, I-1 ) = EI - END IF -* -* Generate the elementary reflector H(i) to annihilate -* A(k+i+1:n,i) -* - EI = A( K+I, I ) - CALL CLARFG( N-K-I+1, EI, A( MIN( K+I+1, N ), I ), 1, - $ TAU( I ) ) - A( K+I, I ) = ONE -* -* Compute Y(1:n,i) -* - CALL CGEMV( 'No transpose', N, N-K-I+1, ONE, A( 1, I+1 ), LDA, - $ A( K+I, I ), 1, ZERO, Y( 1, I ), 1 ) - CALL CGEMV( 'Conjugate transpose', N-K-I+1, I-1, ONE, - $ A( K+I, 1 ), LDA, A( K+I, I ), 1, ZERO, T( 1, I ), - $ 1 ) - CALL CGEMV( 'No transpose', N, I-1, -ONE, Y, LDY, T( 1, I ), 1, - $ ONE, Y( 1, I ), 1 ) - CALL CSCAL( N, TAU( I ), Y( 1, I ), 1 ) -* -* Compute T(1:i,i) -* - CALL CSCAL( I-1, -TAU( I ), T( 1, I ), 1 ) - CALL CTRMV( 'Upper', 'No transpose', 'Non-unit', I-1, T, LDT, - $ T( 1, I ), 1 ) - T( I, I ) = TAU( I ) -* - 10 CONTINUE - A( K+NB, NB ) = EI -* - RETURN -* -* End of CLAHRD -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/clatzm.f b/dspl/liblapack/SRC/DEPRECATED/clatzm.f deleted file mode 100644 index 377eef7..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/clatzm.f +++ /dev/null @@ -1,225 +0,0 @@ -*> \brief \b CLATZM -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download CLATZM + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE CLATZM( SIDE, M, N, V, INCV, TAU, C1, C2, LDC, WORK ) -* -* .. Scalar Arguments .. -* CHARACTER SIDE -* INTEGER INCV, LDC, M, N -* COMPLEX TAU -* .. -* .. Array Arguments .. -* COMPLEX C1( LDC, * ), C2( LDC, * ), V( * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine CUNMRZ. -*> -*> CLATZM applies a Householder matrix generated by CTZRQF to a matrix. -*> -*> Let P = I - tau*u*u**H, u = ( 1 ), -*> ( v ) -*> where v is an (m-1) vector if SIDE = 'L', or a (n-1) vector if -*> SIDE = 'R'. -*> -*> If SIDE equals 'L', let -*> C = [ C1 ] 1 -*> [ C2 ] m-1 -*> n -*> Then C is overwritten by P*C. -*> -*> If SIDE equals 'R', let -*> C = [ C1, C2 ] m -*> 1 n-1 -*> Then C is overwritten by C*P. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] SIDE -*> \verbatim -*> SIDE is CHARACTER*1 -*> = 'L': form P * C -*> = 'R': form C * P -*> \endverbatim -*> -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix C. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrix C. -*> \endverbatim -*> -*> \param[in] V -*> \verbatim -*> V is COMPLEX array, dimension -*> (1 + (M-1)*abs(INCV)) if SIDE = 'L' -*> (1 + (N-1)*abs(INCV)) if SIDE = 'R' -*> The vector v in the representation of P. V is not used -*> if TAU = 0. -*> \endverbatim -*> -*> \param[in] INCV -*> \verbatim -*> INCV is INTEGER -*> The increment between elements of v. INCV <> 0 -*> \endverbatim -*> -*> \param[in] TAU -*> \verbatim -*> TAU is COMPLEX -*> The value tau in the representation of P. -*> \endverbatim -*> -*> \param[in,out] C1 -*> \verbatim -*> C1 is COMPLEX array, dimension -*> (LDC,N) if SIDE = 'L' -*> (M,1) if SIDE = 'R' -*> On entry, the n-vector C1 if SIDE = 'L', or the m-vector C1 -*> if SIDE = 'R'. -*> -*> On exit, the first row of P*C if SIDE = 'L', or the first -*> column of C*P if SIDE = 'R'. -*> \endverbatim -*> -*> \param[in,out] C2 -*> \verbatim -*> C2 is COMPLEX array, dimension -*> (LDC, N) if SIDE = 'L' -*> (LDC, N-1) if SIDE = 'R' -*> On entry, the (m - 1) x n matrix C2 if SIDE = 'L', or the -*> m x (n - 1) matrix C2 if SIDE = 'R'. -*> -*> On exit, rows 2:m of P*C if SIDE = 'L', or columns 2:m of C*P -*> if SIDE = 'R'. -*> \endverbatim -*> -*> \param[in] LDC -*> \verbatim -*> LDC is INTEGER -*> The leading dimension of the arrays C1 and C2. -*> LDC >= max(1,M). -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is COMPLEX array, dimension -*> (N) if SIDE = 'L' -*> (M) if SIDE = 'R' -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup complexOTHERcomputational -* -* ===================================================================== - SUBROUTINE CLATZM( SIDE, M, N, V, INCV, TAU, C1, C2, LDC, WORK ) -* -* -- LAPACK computational routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER SIDE - INTEGER INCV, LDC, M, N - COMPLEX TAU -* .. -* .. Array Arguments .. - COMPLEX C1( LDC, * ), C2( LDC, * ), V( * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - COMPLEX ONE, ZERO - PARAMETER ( ONE = ( 1.0E+0, 0.0E+0 ), - $ ZERO = ( 0.0E+0, 0.0E+0 ) ) -* .. -* .. External Subroutines .. - EXTERNAL CAXPY, CCOPY, CGEMV, CGERC, CGERU, CLACGV -* .. -* .. External Functions .. - LOGICAL LSAME - EXTERNAL LSAME -* .. -* .. Intrinsic Functions .. - INTRINSIC MIN -* .. -* .. Executable Statements .. -* - IF( ( MIN( M, N ).EQ.0 ) .OR. ( TAU.EQ.ZERO ) ) - $ RETURN -* - IF( LSAME( SIDE, 'L' ) ) THEN -* -* w := ( C1 + v**H * C2 )**H -* - CALL CCOPY( N, C1, LDC, WORK, 1 ) - CALL CLACGV( N, WORK, 1 ) - CALL CGEMV( 'Conjugate transpose', M-1, N, ONE, C2, LDC, V, - $ INCV, ONE, WORK, 1 ) -* -* [ C1 ] := [ C1 ] - tau* [ 1 ] * w**H -* [ C2 ] [ C2 ] [ v ] -* - CALL CLACGV( N, WORK, 1 ) - CALL CAXPY( N, -TAU, WORK, 1, C1, LDC ) - CALL CGERU( M-1, N, -TAU, V, INCV, WORK, 1, C2, LDC ) -* - ELSE IF( LSAME( SIDE, 'R' ) ) THEN -* -* w := C1 + C2 * v -* - CALL CCOPY( M, C1, 1, WORK, 1 ) - CALL CGEMV( 'No transpose', M, N-1, ONE, C2, LDC, V, INCV, ONE, - $ WORK, 1 ) -* -* [ C1, C2 ] := [ C1, C2 ] - tau* w * [ 1 , v**H] -* - CALL CAXPY( M, -TAU, WORK, 1, C1, 1 ) - CALL CGERC( M, N-1, -TAU, WORK, 1, V, INCV, C2, LDC ) - END IF -* - RETURN -* -* End of CLATZM -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/ctzrqf.f b/dspl/liblapack/SRC/DEPRECATED/ctzrqf.f deleted file mode 100644 index 5ed47d7..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/ctzrqf.f +++ /dev/null @@ -1,241 +0,0 @@ -*> \brief \b CTZRQF -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download CTZRQF + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE CTZRQF( M, N, A, LDA, TAU, INFO ) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. -* COMPLEX A( LDA, * ), TAU( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine CTZRZF. -*> -*> CTZRQF reduces the M-by-N ( M<=N ) complex upper trapezoidal matrix A -*> to upper triangular form by means of unitary transformations. -*> -*> The upper trapezoidal matrix A is factored as -*> -*> A = ( R 0 ) * Z, -*> -*> where Z is an N-by-N unitary matrix and R is an M-by-M upper -*> triangular matrix. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix A. M >= 0. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrix A. N >= M. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is COMPLEX array, dimension (LDA,N) -*> On entry, the leading M-by-N upper trapezoidal part of the -*> array A must contain the matrix to be factorized. -*> On exit, the leading M-by-M upper triangular part of A -*> contains the upper triangular matrix R, and elements M+1 to -*> N of the first M rows of A, with the array TAU, represent the -*> unitary matrix Z as a product of M elementary reflectors. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of the array A. LDA >= max(1,M). -*> \endverbatim -*> -*> \param[out] TAU -*> \verbatim -*> TAU is COMPLEX array, dimension (M) -*> The scalar factors of the elementary reflectors. -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup complexOTHERcomputational -* -*> \par Further Details: -* ===================== -*> -*> \verbatim -*> -*> The factorization is obtained by Householder's method. The kth -*> transformation matrix, Z( k ), whose conjugate transpose is used to -*> introduce zeros into the (m - k + 1)th row of A, is given in the form -*> -*> Z( k ) = ( I 0 ), -*> ( 0 T( k ) ) -*> -*> where -*> -*> T( k ) = I - tau*u( k )*u( k )**H, u( k ) = ( 1 ), -*> ( 0 ) -*> ( z( k ) ) -*> -*> tau is a scalar and z( k ) is an ( n - m ) element vector. -*> tau and z( k ) are chosen to annihilate the elements of the kth row -*> of X. -*> -*> The scalar tau is returned in the kth element of TAU and the vector -*> u( k ) in the kth row of A, such that the elements of z( k ) are -*> in a( k, m + 1 ), ..., a( k, n ). The elements of R are returned in -*> the upper triangular part of A. -*> -*> Z is given by -*> -*> Z = Z( 1 ) * Z( 2 ) * ... * Z( m ). -*> \endverbatim -*> -* ===================================================================== - SUBROUTINE CTZRQF( M, N, A, LDA, TAU, INFO ) -* -* -- LAPACK computational routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. - COMPLEX A( LDA, * ), TAU( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - COMPLEX CONE, CZERO - PARAMETER ( CONE = ( 1.0E+0, 0.0E+0 ), - $ CZERO = ( 0.0E+0, 0.0E+0 ) ) -* .. -* .. Local Scalars .. - INTEGER I, K, M1 - COMPLEX ALPHA -* .. -* .. Intrinsic Functions .. - INTRINSIC CONJG, MAX, MIN -* .. -* .. External Subroutines .. - EXTERNAL CAXPY, CCOPY, CGEMV, CGERC, CLACGV, CLARFG, - $ XERBLA -* .. -* .. Executable Statements .. -* -* Test the input parameters. -* - INFO = 0 - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.M ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'CTZRQF', -INFO ) - RETURN - END IF -* -* Perform the factorization. -* - IF( M.EQ.0 ) - $ RETURN - IF( M.EQ.N ) THEN - DO 10 I = 1, N - TAU( I ) = CZERO - 10 CONTINUE - ELSE - M1 = MIN( M+1, N ) - DO 20 K = M, 1, -1 -* -* Use a Householder reflection to zero the kth row of A. -* First set up the reflection. -* - A( K, K ) = CONJG( A( K, K ) ) - CALL CLACGV( N-M, A( K, M1 ), LDA ) - ALPHA = A( K, K ) - CALL CLARFG( N-M+1, ALPHA, A( K, M1 ), LDA, TAU( K ) ) - A( K, K ) = ALPHA - TAU( K ) = CONJG( TAU( K ) ) -* - IF( TAU( K ).NE.CZERO .AND. K.GT.1 ) THEN -* -* We now perform the operation A := A*P( k )**H. -* -* Use the first ( k - 1 ) elements of TAU to store a( k ), -* where a( k ) consists of the first ( k - 1 ) elements of -* the kth column of A. Also let B denote the first -* ( k - 1 ) rows of the last ( n - m ) columns of A. -* - CALL CCOPY( K-1, A( 1, K ), 1, TAU, 1 ) -* -* Form w = a( k ) + B*z( k ) in TAU. -* - CALL CGEMV( 'No transpose', K-1, N-M, CONE, A( 1, M1 ), - $ LDA, A( K, M1 ), LDA, CONE, TAU, 1 ) -* -* Now form a( k ) := a( k ) - conjg(tau)*w -* and B := B - conjg(tau)*w*z( k )**H. -* - CALL CAXPY( K-1, -CONJG( TAU( K ) ), TAU, 1, A( 1, K ), - $ 1 ) - CALL CGERC( K-1, N-M, -CONJG( TAU( K ) ), TAU, 1, - $ A( K, M1 ), LDA, A( 1, M1 ), LDA ) - END IF - 20 CONTINUE - END IF -* - RETURN -* -* End of CTZRQF -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/dgegs.f b/dspl/liblapack/SRC/DEPRECATED/dgegs.f deleted file mode 100644 index eb40448..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/dgegs.f +++ /dev/null @@ -1,541 +0,0 @@ -*> \brief DGEEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download DGEGS + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE DGEGS( JOBVSL, JOBVSR, N, A, LDA, B, LDB, ALPHAR, -* ALPHAI, BETA, VSL, LDVSL, VSR, LDVSR, WORK, -* LWORK, INFO ) -* -* .. Scalar Arguments .. -* CHARACTER JOBVSL, JOBVSR -* INTEGER INFO, LDA, LDB, LDVSL, LDVSR, LWORK, N -* .. -* .. Array Arguments .. -* DOUBLE PRECISION A( LDA, * ), ALPHAI( * ), ALPHAR( * ), -* $ B( LDB, * ), BETA( * ), VSL( LDVSL, * ), -* $ VSR( LDVSR, * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine DGGES. -*> -*> DGEGS computes the eigenvalues, real Schur form, and, optionally, -*> left and or/right Schur vectors of a real matrix pair (A,B). -*> Given two square matrices A and B, the generalized real Schur -*> factorization has the form -*> -*> A = Q*S*Z**T, B = Q*T*Z**T -*> -*> where Q and Z are orthogonal matrices, T is upper triangular, and S -*> is an upper quasi-triangular matrix with 1-by-1 and 2-by-2 diagonal -*> blocks, the 2-by-2 blocks corresponding to complex conjugate pairs -*> of eigenvalues of (A,B). The columns of Q are the left Schur vectors -*> and the columns of Z are the right Schur vectors. -*> -*> If only the eigenvalues of (A,B) are needed, the driver routine -*> DGEGV should be used instead. See DGEGV for a description of the -*> eigenvalues of the generalized nonsymmetric eigenvalue problem -*> (GNEP). -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] JOBVSL -*> \verbatim -*> JOBVSL is CHARACTER*1 -*> = 'N': do not compute the left Schur vectors; -*> = 'V': compute the left Schur vectors (returned in VSL). -*> \endverbatim -*> -*> \param[in] JOBVSR -*> \verbatim -*> JOBVSR is CHARACTER*1 -*> = 'N': do not compute the right Schur vectors; -*> = 'V': compute the right Schur vectors (returned in VSR). -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The order of the matrices A, B, VSL, and VSR. N >= 0. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is DOUBLE PRECISION array, dimension (LDA, N) -*> On entry, the matrix A. -*> On exit, the upper quasi-triangular matrix S from the -*> generalized real Schur factorization. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of A. LDA >= max(1,N). -*> \endverbatim -*> -*> \param[in,out] B -*> \verbatim -*> B is DOUBLE PRECISION array, dimension (LDB, N) -*> On entry, the matrix B. -*> On exit, the upper triangular matrix T from the generalized -*> real Schur factorization. -*> \endverbatim -*> -*> \param[in] LDB -*> \verbatim -*> LDB is INTEGER -*> The leading dimension of B. LDB >= max(1,N). -*> \endverbatim -*> -*> \param[out] ALPHAR -*> \verbatim -*> ALPHAR is DOUBLE PRECISION array, dimension (N) -*> The real parts of each scalar alpha defining an eigenvalue -*> of GNEP. -*> \endverbatim -*> -*> \param[out] ALPHAI -*> \verbatim -*> ALPHAI is DOUBLE PRECISION array, dimension (N) -*> The imaginary parts of each scalar alpha defining an -*> eigenvalue of GNEP. If ALPHAI(j) is zero, then the j-th -*> eigenvalue is real; if positive, then the j-th and (j+1)-st -*> eigenvalues are a complex conjugate pair, with -*> ALPHAI(j+1) = -ALPHAI(j). -*> \endverbatim -*> -*> \param[out] BETA -*> \verbatim -*> BETA is DOUBLE PRECISION array, dimension (N) -*> The scalars beta that define the eigenvalues of GNEP. -*> Together, the quantities alpha = (ALPHAR(j),ALPHAI(j)) and -*> beta = BETA(j) represent the j-th eigenvalue of the matrix -*> pair (A,B), in one of the forms lambda = alpha/beta or -*> mu = beta/alpha. Since either lambda or mu may overflow, -*> they should not, in general, be computed. -*> \endverbatim -*> -*> \param[out] VSL -*> \verbatim -*> VSL is DOUBLE PRECISION array, dimension (LDVSL,N) -*> If JOBVSL = 'V', the matrix of left Schur vectors Q. -*> Not referenced if JOBVSL = 'N'. -*> \endverbatim -*> -*> \param[in] LDVSL -*> \verbatim -*> LDVSL is INTEGER -*> The leading dimension of the matrix VSL. LDVSL >=1, and -*> if JOBVSL = 'V', LDVSL >= N. -*> \endverbatim -*> -*> \param[out] VSR -*> \verbatim -*> VSR is DOUBLE PRECISION array, dimension (LDVSR,N) -*> If JOBVSR = 'V', the matrix of right Schur vectors Z. -*> Not referenced if JOBVSR = 'N'. -*> \endverbatim -*> -*> \param[in] LDVSR -*> \verbatim -*> LDVSR is INTEGER -*> The leading dimension of the matrix VSR. LDVSR >= 1, and -*> if JOBVSR = 'V', LDVSR >= N. -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) -*> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. -*> \endverbatim -*> -*> \param[in] LWORK -*> \verbatim -*> LWORK is INTEGER -*> The dimension of the array WORK. LWORK >= max(1,4*N). -*> For good performance, LWORK must generally be larger. -*> To compute the optimal value of LWORK, call ILAENV to get -*> blocksizes (for DGEQRF, DORMQR, and DORGQR.) Then compute: -*> NB -- MAX of the blocksizes for DGEQRF, DORMQR, and DORGQR -*> The optimal LWORK is 2*N + N*(NB+1). -*> -*> If LWORK = -1, then a workspace query is assumed; the routine -*> only calculates the optimal size of the WORK array, returns -*> this value as the first entry of the WORK array, and no error -*> message related to LWORK is issued by XERBLA. -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value. -*> = 1,...,N: -*> The QZ iteration failed. (A,B) are not in Schur -*> form, but ALPHAR(j), ALPHAI(j), and BETA(j) should -*> be correct for j=INFO+1,...,N. -*> > N: errors that usually indicate LAPACK problems: -*> =N+1: error return from DGGBAL -*> =N+2: error return from DGEQRF -*> =N+3: error return from DORMQR -*> =N+4: error return from DORGQR -*> =N+5: error return from DGGHRD -*> =N+6: error return from DHGEQZ (other than failed -*> iteration) -*> =N+7: error return from DGGBAK (computing VSL) -*> =N+8: error return from DGGBAK (computing VSR) -*> =N+9: error return from DLASCL (various places) -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup doubleGEeigen -* -* ===================================================================== - SUBROUTINE DGEGS( JOBVSL, JOBVSR, N, A, LDA, B, LDB, ALPHAR, - $ ALPHAI, BETA, VSL, LDVSL, VSR, LDVSR, WORK, - $ LWORK, INFO ) -* -* -- LAPACK driver routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER JOBVSL, JOBVSR - INTEGER INFO, LDA, LDB, LDVSL, LDVSR, LWORK, N -* .. -* .. Array Arguments .. - DOUBLE PRECISION A( LDA, * ), ALPHAI( * ), ALPHAR( * ), - $ B( LDB, * ), BETA( * ), VSL( LDVSL, * ), - $ VSR( LDVSR, * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - DOUBLE PRECISION ZERO, ONE - PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 ) -* .. -* .. Local Scalars .. - LOGICAL ILASCL, ILBSCL, ILVSL, ILVSR, LQUERY - INTEGER ICOLS, IHI, IINFO, IJOBVL, IJOBVR, ILEFT, ILO, - $ IRIGHT, IROWS, ITAU, IWORK, LOPT, LWKMIN, - $ LWKOPT, NB, NB1, NB2, NB3 - DOUBLE PRECISION ANRM, ANRMTO, BIGNUM, BNRM, BNRMTO, EPS, - $ SAFMIN, SMLNUM -* .. -* .. External Subroutines .. - EXTERNAL DGEQRF, DGGBAK, DGGBAL, DGGHRD, DHGEQZ, DLACPY, - $ DLASCL, DLASET, DORGQR, DORMQR, XERBLA -* .. -* .. External Functions .. - LOGICAL LSAME - INTEGER ILAENV - DOUBLE PRECISION DLAMCH, DLANGE - EXTERNAL LSAME, ILAENV, DLAMCH, DLANGE -* .. -* .. Intrinsic Functions .. - INTRINSIC INT, MAX -* .. -* .. Executable Statements .. -* -* Decode the input arguments -* - IF( LSAME( JOBVSL, 'N' ) ) THEN - IJOBVL = 1 - ILVSL = .FALSE. - ELSE IF( LSAME( JOBVSL, 'V' ) ) THEN - IJOBVL = 2 - ILVSL = .TRUE. - ELSE - IJOBVL = -1 - ILVSL = .FALSE. - END IF -* - IF( LSAME( JOBVSR, 'N' ) ) THEN - IJOBVR = 1 - ILVSR = .FALSE. - ELSE IF( LSAME( JOBVSR, 'V' ) ) THEN - IJOBVR = 2 - ILVSR = .TRUE. - ELSE - IJOBVR = -1 - ILVSR = .FALSE. - END IF -* -* Test the input arguments -* - LWKMIN = MAX( 4*N, 1 ) - LWKOPT = LWKMIN - WORK( 1 ) = LWKOPT - LQUERY = ( LWORK.EQ.-1 ) - INFO = 0 - IF( IJOBVL.LE.0 ) THEN - INFO = -1 - ELSE IF( IJOBVR.LE.0 ) THEN - INFO = -2 - ELSE IF( N.LT.0 ) THEN - INFO = -3 - ELSE IF( LDA.LT.MAX( 1, N ) ) THEN - INFO = -5 - ELSE IF( LDB.LT.MAX( 1, N ) ) THEN - INFO = -7 - ELSE IF( LDVSL.LT.1 .OR. ( ILVSL .AND. LDVSL.LT.N ) ) THEN - INFO = -12 - ELSE IF( LDVSR.LT.1 .OR. ( ILVSR .AND. LDVSR.LT.N ) ) THEN - INFO = -14 - ELSE IF( LWORK.LT.LWKMIN .AND. .NOT.LQUERY ) THEN - INFO = -16 - END IF -* - IF( INFO.EQ.0 ) THEN - NB1 = ILAENV( 1, 'DGEQRF', ' ', N, N, -1, -1 ) - NB2 = ILAENV( 1, 'DORMQR', ' ', N, N, N, -1 ) - NB3 = ILAENV( 1, 'DORGQR', ' ', N, N, N, -1 ) - NB = MAX( NB1, NB2, NB3 ) - LOPT = 2*N + N*( NB+1 ) - WORK( 1 ) = LOPT - END IF -* - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'DGEGS ', -INFO ) - RETURN - ELSE IF( LQUERY ) THEN - RETURN - END IF -* -* Quick return if possible -* - IF( N.EQ.0 ) - $ RETURN -* -* Get machine constants -* - EPS = DLAMCH( 'E' )*DLAMCH( 'B' ) - SAFMIN = DLAMCH( 'S' ) - SMLNUM = N*SAFMIN / EPS - BIGNUM = ONE / SMLNUM -* -* Scale A if max element outside range [SMLNUM,BIGNUM] -* - ANRM = DLANGE( 'M', N, N, A, LDA, WORK ) - ILASCL = .FALSE. - IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN - ANRMTO = SMLNUM - ILASCL = .TRUE. - ELSE IF( ANRM.GT.BIGNUM ) THEN - ANRMTO = BIGNUM - ILASCL = .TRUE. - END IF -* - IF( ILASCL ) THEN - CALL DLASCL( 'G', -1, -1, ANRM, ANRMTO, N, N, A, LDA, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - END IF -* -* Scale B if max element outside range [SMLNUM,BIGNUM] -* - BNRM = DLANGE( 'M', N, N, B, LDB, WORK ) - ILBSCL = .FALSE. - IF( BNRM.GT.ZERO .AND. BNRM.LT.SMLNUM ) THEN - BNRMTO = SMLNUM - ILBSCL = .TRUE. - ELSE IF( BNRM.GT.BIGNUM ) THEN - BNRMTO = BIGNUM - ILBSCL = .TRUE. - END IF -* - IF( ILBSCL ) THEN - CALL DLASCL( 'G', -1, -1, BNRM, BNRMTO, N, N, B, LDB, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - END IF -* -* Permute the matrix to make it more nearly triangular -* Workspace layout: (2*N words -- "work..." not actually used) -* left_permutation, right_permutation, work... -* - ILEFT = 1 - IRIGHT = N + 1 - IWORK = IRIGHT + N - CALL DGGBAL( 'P', N, A, LDA, B, LDB, ILO, IHI, WORK( ILEFT ), - $ WORK( IRIGHT ), WORK( IWORK ), IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 1 - GO TO 10 - END IF -* -* Reduce B to triangular form, and initialize VSL and/or VSR -* Workspace layout: ("work..." must have at least N words) -* left_permutation, right_permutation, tau, work... -* - IROWS = IHI + 1 - ILO - ICOLS = N + 1 - ILO - ITAU = IWORK - IWORK = ITAU + IROWS - CALL DGEQRF( IROWS, ICOLS, B( ILO, ILO ), LDB, WORK( ITAU ), - $ WORK( IWORK ), LWORK+1-IWORK, IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - INFO = N + 2 - GO TO 10 - END IF -* - CALL DORMQR( 'L', 'T', IROWS, ICOLS, IROWS, B( ILO, ILO ), LDB, - $ WORK( ITAU ), A( ILO, ILO ), LDA, WORK( IWORK ), - $ LWORK+1-IWORK, IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - INFO = N + 3 - GO TO 10 - END IF -* - IF( ILVSL ) THEN - CALL DLASET( 'Full', N, N, ZERO, ONE, VSL, LDVSL ) - CALL DLACPY( 'L', IROWS-1, IROWS-1, B( ILO+1, ILO ), LDB, - $ VSL( ILO+1, ILO ), LDVSL ) - CALL DORGQR( IROWS, IROWS, IROWS, VSL( ILO, ILO ), LDVSL, - $ WORK( ITAU ), WORK( IWORK ), LWORK+1-IWORK, - $ IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - INFO = N + 4 - GO TO 10 - END IF - END IF -* - IF( ILVSR ) - $ CALL DLASET( 'Full', N, N, ZERO, ONE, VSR, LDVSR ) -* -* Reduce to generalized Hessenberg form -* - CALL DGGHRD( JOBVSL, JOBVSR, N, ILO, IHI, A, LDA, B, LDB, VSL, - $ LDVSL, VSR, LDVSR, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 5 - GO TO 10 - END IF -* -* Perform QZ algorithm, computing Schur vectors if desired -* Workspace layout: ("work..." must have at least 1 word) -* left_permutation, right_permutation, work... -* - IWORK = ITAU - CALL DHGEQZ( 'S', JOBVSL, JOBVSR, N, ILO, IHI, A, LDA, B, LDB, - $ ALPHAR, ALPHAI, BETA, VSL, LDVSL, VSR, LDVSR, - $ WORK( IWORK ), LWORK+1-IWORK, IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - IF( IINFO.GT.0 .AND. IINFO.LE.N ) THEN - INFO = IINFO - ELSE IF( IINFO.GT.N .AND. IINFO.LE.2*N ) THEN - INFO = IINFO - N - ELSE - INFO = N + 6 - END IF - GO TO 10 - END IF -* -* Apply permutation to VSL and VSR -* - IF( ILVSL ) THEN - CALL DGGBAK( 'P', 'L', N, ILO, IHI, WORK( ILEFT ), - $ WORK( IRIGHT ), N, VSL, LDVSL, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 7 - GO TO 10 - END IF - END IF - IF( ILVSR ) THEN - CALL DGGBAK( 'P', 'R', N, ILO, IHI, WORK( ILEFT ), - $ WORK( IRIGHT ), N, VSR, LDVSR, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 8 - GO TO 10 - END IF - END IF -* -* Undo scaling -* - IF( ILASCL ) THEN - CALL DLASCL( 'H', -1, -1, ANRMTO, ANRM, N, N, A, LDA, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - CALL DLASCL( 'G', -1, -1, ANRMTO, ANRM, N, 1, ALPHAR, N, - $ IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - CALL DLASCL( 'G', -1, -1, ANRMTO, ANRM, N, 1, ALPHAI, N, - $ IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - END IF -* - IF( ILBSCL ) THEN - CALL DLASCL( 'U', -1, -1, BNRMTO, BNRM, N, N, B, LDB, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - CALL DLASCL( 'G', -1, -1, BNRMTO, BNRM, N, 1, BETA, N, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - END IF -* - 10 CONTINUE - WORK( 1 ) = LWKOPT -* - RETURN -* -* End of DGEGS -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/dgegv.f b/dspl/liblapack/SRC/DEPRECATED/dgegv.f deleted file mode 100644 index e4d469a..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/dgegv.f +++ /dev/null @@ -1,769 +0,0 @@ -*> \brief DGEEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download DGEGV + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE DGEGV( JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHAR, ALPHAI, -* BETA, VL, LDVL, VR, LDVR, WORK, LWORK, INFO ) -* -* .. Scalar Arguments .. -* CHARACTER JOBVL, JOBVR -* INTEGER INFO, LDA, LDB, LDVL, LDVR, LWORK, N -* .. -* .. Array Arguments .. -* DOUBLE PRECISION A( LDA, * ), ALPHAI( * ), ALPHAR( * ), -* $ B( LDB, * ), BETA( * ), VL( LDVL, * ), -* $ VR( LDVR, * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine DGGEV. -*> -*> DGEGV computes the eigenvalues and, optionally, the left and/or right -*> eigenvectors of a real matrix pair (A,B). -*> Given two square matrices A and B, -*> the generalized nonsymmetric eigenvalue problem (GNEP) is to find the -*> eigenvalues lambda and corresponding (non-zero) eigenvectors x such -*> that -*> -*> A*x = lambda*B*x. -*> -*> An alternate form is to find the eigenvalues mu and corresponding -*> eigenvectors y such that -*> -*> mu*A*y = B*y. -*> -*> These two forms are equivalent with mu = 1/lambda and x = y if -*> neither lambda nor mu is zero. In order to deal with the case that -*> lambda or mu is zero or small, two values alpha and beta are returned -*> for each eigenvalue, such that lambda = alpha/beta and -*> mu = beta/alpha. -*> -*> The vectors x and y in the above equations are right eigenvectors of -*> the matrix pair (A,B). Vectors u and v satisfying -*> -*> u**H*A = lambda*u**H*B or mu*v**H*A = v**H*B -*> -*> are left eigenvectors of (A,B). -*> -*> Note: this routine performs "full balancing" on A and B -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] JOBVL -*> \verbatim -*> JOBVL is CHARACTER*1 -*> = 'N': do not compute the left generalized eigenvectors; -*> = 'V': compute the left generalized eigenvectors (returned -*> in VL). -*> \endverbatim -*> -*> \param[in] JOBVR -*> \verbatim -*> JOBVR is CHARACTER*1 -*> = 'N': do not compute the right generalized eigenvectors; -*> = 'V': compute the right generalized eigenvectors (returned -*> in VR). -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The order of the matrices A, B, VL, and VR. N >= 0. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is DOUBLE PRECISION array, dimension (LDA, N) -*> On entry, the matrix A. -*> If JOBVL = 'V' or JOBVR = 'V', then on exit A -*> contains the real Schur form of A from the generalized Schur -*> factorization of the pair (A,B) after balancing. -*> If no eigenvectors were computed, then only the diagonal -*> blocks from the Schur form will be correct. See DGGHRD and -*> DHGEQZ for details. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of A. LDA >= max(1,N). -*> \endverbatim -*> -*> \param[in,out] B -*> \verbatim -*> B is DOUBLE PRECISION array, dimension (LDB, N) -*> On entry, the matrix B. -*> If JOBVL = 'V' or JOBVR = 'V', then on exit B contains the -*> upper triangular matrix obtained from B in the generalized -*> Schur factorization of the pair (A,B) after balancing. -*> If no eigenvectors were computed, then only those elements of -*> B corresponding to the diagonal blocks from the Schur form of -*> A will be correct. See DGGHRD and DHGEQZ for details. -*> \endverbatim -*> -*> \param[in] LDB -*> \verbatim -*> LDB is INTEGER -*> The leading dimension of B. LDB >= max(1,N). -*> \endverbatim -*> -*> \param[out] ALPHAR -*> \verbatim -*> ALPHAR is DOUBLE PRECISION array, dimension (N) -*> The real parts of each scalar alpha defining an eigenvalue of -*> GNEP. -*> \endverbatim -*> -*> \param[out] ALPHAI -*> \verbatim -*> ALPHAI is DOUBLE PRECISION array, dimension (N) -*> The imaginary parts of each scalar alpha defining an -*> eigenvalue of GNEP. If ALPHAI(j) is zero, then the j-th -*> eigenvalue is real; if positive, then the j-th and -*> (j+1)-st eigenvalues are a complex conjugate pair, with -*> ALPHAI(j+1) = -ALPHAI(j). -*> \endverbatim -*> -*> \param[out] BETA -*> \verbatim -*> BETA is DOUBLE PRECISION array, dimension (N) -*> The scalars beta that define the eigenvalues of GNEP. -*> -*> Together, the quantities alpha = (ALPHAR(j),ALPHAI(j)) and -*> beta = BETA(j) represent the j-th eigenvalue of the matrix -*> pair (A,B), in one of the forms lambda = alpha/beta or -*> mu = beta/alpha. Since either lambda or mu may overflow, -*> they should not, in general, be computed. -*> \endverbatim -*> -*> \param[out] VL -*> \verbatim -*> VL is DOUBLE PRECISION array, dimension (LDVL,N) -*> If JOBVL = 'V', the left eigenvectors u(j) are stored -*> in the columns of VL, in the same order as their eigenvalues. -*> If the j-th eigenvalue is real, then u(j) = VL(:,j). -*> If the j-th and (j+1)-st eigenvalues form a complex conjugate -*> pair, then -*> u(j) = VL(:,j) + i*VL(:,j+1) -*> and -*> u(j+1) = VL(:,j) - i*VL(:,j+1). -*> -*> Each eigenvector is scaled so that its largest component has -*> abs(real part) + abs(imag. part) = 1, except for eigenvectors -*> corresponding to an eigenvalue with alpha = beta = 0, which -*> are set to zero. -*> Not referenced if JOBVL = 'N'. -*> \endverbatim -*> -*> \param[in] LDVL -*> \verbatim -*> LDVL is INTEGER -*> The leading dimension of the matrix VL. LDVL >= 1, and -*> if JOBVL = 'V', LDVL >= N. -*> \endverbatim -*> -*> \param[out] VR -*> \verbatim -*> VR is DOUBLE PRECISION array, dimension (LDVR,N) -*> If JOBVR = 'V', the right eigenvectors x(j) are stored -*> in the columns of VR, in the same order as their eigenvalues. -*> If the j-th eigenvalue is real, then x(j) = VR(:,j). -*> If the j-th and (j+1)-st eigenvalues form a complex conjugate -*> pair, then -*> x(j) = VR(:,j) + i*VR(:,j+1) -*> and -*> x(j+1) = VR(:,j) - i*VR(:,j+1). -*> -*> Each eigenvector is scaled so that its largest component has -*> abs(real part) + abs(imag. part) = 1, except for eigenvalues -*> corresponding to an eigenvalue with alpha = beta = 0, which -*> are set to zero. -*> Not referenced if JOBVR = 'N'. -*> \endverbatim -*> -*> \param[in] LDVR -*> \verbatim -*> LDVR is INTEGER -*> The leading dimension of the matrix VR. LDVR >= 1, and -*> if JOBVR = 'V', LDVR >= N. -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) -*> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. -*> \endverbatim -*> -*> \param[in] LWORK -*> \verbatim -*> LWORK is INTEGER -*> The dimension of the array WORK. LWORK >= max(1,8*N). -*> For good performance, LWORK must generally be larger. -*> To compute the optimal value of LWORK, call ILAENV to get -*> blocksizes (for DGEQRF, DORMQR, and DORGQR.) Then compute: -*> NB -- MAX of the blocksizes for DGEQRF, DORMQR, and DORGQR; -*> The optimal LWORK is: -*> 2*N + MAX( 6*N, N*(NB+1) ). -*> -*> If LWORK = -1, then a workspace query is assumed; the routine -*> only calculates the optimal size of the WORK array, returns -*> this value as the first entry of the WORK array, and no error -*> message related to LWORK is issued by XERBLA. -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value. -*> = 1,...,N: -*> The QZ iteration failed. No eigenvectors have been -*> calculated, but ALPHAR(j), ALPHAI(j), and BETA(j) -*> should be correct for j=INFO+1,...,N. -*> > N: errors that usually indicate LAPACK problems: -*> =N+1: error return from DGGBAL -*> =N+2: error return from DGEQRF -*> =N+3: error return from DORMQR -*> =N+4: error return from DORGQR -*> =N+5: error return from DGGHRD -*> =N+6: error return from DHGEQZ (other than failed -*> iteration) -*> =N+7: error return from DTGEVC -*> =N+8: error return from DGGBAK (computing VL) -*> =N+9: error return from DGGBAK (computing VR) -*> =N+10: error return from DLASCL (various calls) -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup doubleGEeigen -* -*> \par Further Details: -* ===================== -*> -*> \verbatim -*> -*> Balancing -*> --------- -*> -*> This driver calls DGGBAL to both permute and scale rows and columns -*> of A and B. The permutations PL and PR are chosen so that PL*A*PR -*> and PL*B*R will be upper triangular except for the diagonal blocks -*> A(i:j,i:j) and B(i:j,i:j), with i and j as close together as -*> possible. The diagonal scaling matrices DL and DR are chosen so -*> that the pair DL*PL*A*PR*DR, DL*PL*B*PR*DR have elements close to -*> one (except for the elements that start out zero.) -*> -*> After the eigenvalues and eigenvectors of the balanced matrices -*> have been computed, DGGBAK transforms the eigenvectors back to what -*> they would have been (in perfect arithmetic) if they had not been -*> balanced. -*> -*> Contents of A and B on Exit -*> -------- -- - --- - -- ---- -*> -*> If any eigenvectors are computed (either JOBVL='V' or JOBVR='V' or -*> both), then on exit the arrays A and B will contain the real Schur -*> form[*] of the "balanced" versions of A and B. If no eigenvectors -*> are computed, then only the diagonal blocks will be correct. -*> -*> [*] See DHGEQZ, DGEGS, or read the book "Matrix Computations", -*> by Golub & van Loan, pub. by Johns Hopkins U. Press. -*> \endverbatim -*> -* ===================================================================== - SUBROUTINE DGEGV( JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHAR, ALPHAI, - $ BETA, VL, LDVL, VR, LDVR, WORK, LWORK, INFO ) -* -* -- LAPACK driver routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER JOBVL, JOBVR - INTEGER INFO, LDA, LDB, LDVL, LDVR, LWORK, N -* .. -* .. Array Arguments .. - DOUBLE PRECISION A( LDA, * ), ALPHAI( * ), ALPHAR( * ), - $ B( LDB, * ), BETA( * ), VL( LDVL, * ), - $ VR( LDVR, * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - DOUBLE PRECISION ZERO, ONE - PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 ) -* .. -* .. Local Scalars .. - LOGICAL ILIMIT, ILV, ILVL, ILVR, LQUERY - CHARACTER CHTEMP - INTEGER ICOLS, IHI, IINFO, IJOBVL, IJOBVR, ILEFT, ILO, - $ IN, IRIGHT, IROWS, ITAU, IWORK, JC, JR, LOPT, - $ LWKMIN, LWKOPT, NB, NB1, NB2, NB3 - DOUBLE PRECISION ABSAI, ABSAR, ABSB, ANRM, ANRM1, ANRM2, BNRM, - $ BNRM1, BNRM2, EPS, ONEPLS, SAFMAX, SAFMIN, - $ SALFAI, SALFAR, SBETA, SCALE, TEMP -* .. -* .. Local Arrays .. - LOGICAL LDUMMA( 1 ) -* .. -* .. External Subroutines .. - EXTERNAL DGEQRF, DGGBAK, DGGBAL, DGGHRD, DHGEQZ, DLACPY, - $ DLASCL, DLASET, DORGQR, DORMQR, DTGEVC, XERBLA -* .. -* .. External Functions .. - LOGICAL LSAME - INTEGER ILAENV - DOUBLE PRECISION DLAMCH, DLANGE - EXTERNAL LSAME, ILAENV, DLAMCH, DLANGE -* .. -* .. Intrinsic Functions .. - INTRINSIC ABS, INT, MAX -* .. -* .. Executable Statements .. -* -* Decode the input arguments -* - IF( LSAME( JOBVL, 'N' ) ) THEN - IJOBVL = 1 - ILVL = .FALSE. - ELSE IF( LSAME( JOBVL, 'V' ) ) THEN - IJOBVL = 2 - ILVL = .TRUE. - ELSE - IJOBVL = -1 - ILVL = .FALSE. - END IF -* - IF( LSAME( JOBVR, 'N' ) ) THEN - IJOBVR = 1 - ILVR = .FALSE. - ELSE IF( LSAME( JOBVR, 'V' ) ) THEN - IJOBVR = 2 - ILVR = .TRUE. - ELSE - IJOBVR = -1 - ILVR = .FALSE. - END IF - ILV = ILVL .OR. ILVR -* -* Test the input arguments -* - LWKMIN = MAX( 8*N, 1 ) - LWKOPT = LWKMIN - WORK( 1 ) = LWKOPT - LQUERY = ( LWORK.EQ.-1 ) - INFO = 0 - IF( IJOBVL.LE.0 ) THEN - INFO = -1 - ELSE IF( IJOBVR.LE.0 ) THEN - INFO = -2 - ELSE IF( N.LT.0 ) THEN - INFO = -3 - ELSE IF( LDA.LT.MAX( 1, N ) ) THEN - INFO = -5 - ELSE IF( LDB.LT.MAX( 1, N ) ) THEN - INFO = -7 - ELSE IF( LDVL.LT.1 .OR. ( ILVL .AND. LDVL.LT.N ) ) THEN - INFO = -12 - ELSE IF( LDVR.LT.1 .OR. ( ILVR .AND. LDVR.LT.N ) ) THEN - INFO = -14 - ELSE IF( LWORK.LT.LWKMIN .AND. .NOT.LQUERY ) THEN - INFO = -16 - END IF -* - IF( INFO.EQ.0 ) THEN - NB1 = ILAENV( 1, 'DGEQRF', ' ', N, N, -1, -1 ) - NB2 = ILAENV( 1, 'DORMQR', ' ', N, N, N, -1 ) - NB3 = ILAENV( 1, 'DORGQR', ' ', N, N, N, -1 ) - NB = MAX( NB1, NB2, NB3 ) - LOPT = 2*N + MAX( 6*N, N*( NB+1 ) ) - WORK( 1 ) = LOPT - END IF -* - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'DGEGV ', -INFO ) - RETURN - ELSE IF( LQUERY ) THEN - RETURN - END IF -* -* Quick return if possible -* - IF( N.EQ.0 ) - $ RETURN -* -* Get machine constants -* - EPS = DLAMCH( 'E' )*DLAMCH( 'B' ) - SAFMIN = DLAMCH( 'S' ) - SAFMIN = SAFMIN + SAFMIN - SAFMAX = ONE / SAFMIN - ONEPLS = ONE + ( 4*EPS ) -* -* Scale A -* - ANRM = DLANGE( 'M', N, N, A, LDA, WORK ) - ANRM1 = ANRM - ANRM2 = ONE - IF( ANRM.LT.ONE ) THEN - IF( SAFMAX*ANRM.LT.ONE ) THEN - ANRM1 = SAFMIN - ANRM2 = SAFMAX*ANRM - END IF - END IF -* - IF( ANRM.GT.ZERO ) THEN - CALL DLASCL( 'G', -1, -1, ANRM, ONE, N, N, A, LDA, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 10 - RETURN - END IF - END IF -* -* Scale B -* - BNRM = DLANGE( 'M', N, N, B, LDB, WORK ) - BNRM1 = BNRM - BNRM2 = ONE - IF( BNRM.LT.ONE ) THEN - IF( SAFMAX*BNRM.LT.ONE ) THEN - BNRM1 = SAFMIN - BNRM2 = SAFMAX*BNRM - END IF - END IF -* - IF( BNRM.GT.ZERO ) THEN - CALL DLASCL( 'G', -1, -1, BNRM, ONE, N, N, B, LDB, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 10 - RETURN - END IF - END IF -* -* Permute the matrix to make it more nearly triangular -* Workspace layout: (8*N words -- "work" requires 6*N words) -* left_permutation, right_permutation, work... -* - ILEFT = 1 - IRIGHT = N + 1 - IWORK = IRIGHT + N - CALL DGGBAL( 'P', N, A, LDA, B, LDB, ILO, IHI, WORK( ILEFT ), - $ WORK( IRIGHT ), WORK( IWORK ), IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 1 - GO TO 120 - END IF -* -* Reduce B to triangular form, and initialize VL and/or VR -* Workspace layout: ("work..." must have at least N words) -* left_permutation, right_permutation, tau, work... -* - IROWS = IHI + 1 - ILO - IF( ILV ) THEN - ICOLS = N + 1 - ILO - ELSE - ICOLS = IROWS - END IF - ITAU = IWORK - IWORK = ITAU + IROWS - CALL DGEQRF( IROWS, ICOLS, B( ILO, ILO ), LDB, WORK( ITAU ), - $ WORK( IWORK ), LWORK+1-IWORK, IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - INFO = N + 2 - GO TO 120 - END IF -* - CALL DORMQR( 'L', 'T', IROWS, ICOLS, IROWS, B( ILO, ILO ), LDB, - $ WORK( ITAU ), A( ILO, ILO ), LDA, WORK( IWORK ), - $ LWORK+1-IWORK, IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - INFO = N + 3 - GO TO 120 - END IF -* - IF( ILVL ) THEN - CALL DLASET( 'Full', N, N, ZERO, ONE, VL, LDVL ) - CALL DLACPY( 'L', IROWS-1, IROWS-1, B( ILO+1, ILO ), LDB, - $ VL( ILO+1, ILO ), LDVL ) - CALL DORGQR( IROWS, IROWS, IROWS, VL( ILO, ILO ), LDVL, - $ WORK( ITAU ), WORK( IWORK ), LWORK+1-IWORK, - $ IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - INFO = N + 4 - GO TO 120 - END IF - END IF -* - IF( ILVR ) - $ CALL DLASET( 'Full', N, N, ZERO, ONE, VR, LDVR ) -* -* Reduce to generalized Hessenberg form -* - IF( ILV ) THEN -* -* Eigenvectors requested -- work on whole matrix. -* - CALL DGGHRD( JOBVL, JOBVR, N, ILO, IHI, A, LDA, B, LDB, VL, - $ LDVL, VR, LDVR, IINFO ) - ELSE - CALL DGGHRD( 'N', 'N', IROWS, 1, IROWS, A( ILO, ILO ), LDA, - $ B( ILO, ILO ), LDB, VL, LDVL, VR, LDVR, IINFO ) - END IF - IF( IINFO.NE.0 ) THEN - INFO = N + 5 - GO TO 120 - END IF -* -* Perform QZ algorithm -* Workspace layout: ("work..." must have at least 1 word) -* left_permutation, right_permutation, work... -* - IWORK = ITAU - IF( ILV ) THEN - CHTEMP = 'S' - ELSE - CHTEMP = 'E' - END IF - CALL DHGEQZ( CHTEMP, JOBVL, JOBVR, N, ILO, IHI, A, LDA, B, LDB, - $ ALPHAR, ALPHAI, BETA, VL, LDVL, VR, LDVR, - $ WORK( IWORK ), LWORK+1-IWORK, IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - IF( IINFO.GT.0 .AND. IINFO.LE.N ) THEN - INFO = IINFO - ELSE IF( IINFO.GT.N .AND. IINFO.LE.2*N ) THEN - INFO = IINFO - N - ELSE - INFO = N + 6 - END IF - GO TO 120 - END IF -* - IF( ILV ) THEN -* -* Compute Eigenvectors (DTGEVC requires 6*N words of workspace) -* - IF( ILVL ) THEN - IF( ILVR ) THEN - CHTEMP = 'B' - ELSE - CHTEMP = 'L' - END IF - ELSE - CHTEMP = 'R' - END IF -* - CALL DTGEVC( CHTEMP, 'B', LDUMMA, N, A, LDA, B, LDB, VL, LDVL, - $ VR, LDVR, N, IN, WORK( IWORK ), IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 7 - GO TO 120 - END IF -* -* Undo balancing on VL and VR, rescale -* - IF( ILVL ) THEN - CALL DGGBAK( 'P', 'L', N, ILO, IHI, WORK( ILEFT ), - $ WORK( IRIGHT ), N, VL, LDVL, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 8 - GO TO 120 - END IF - DO 50 JC = 1, N - IF( ALPHAI( JC ).LT.ZERO ) - $ GO TO 50 - TEMP = ZERO - IF( ALPHAI( JC ).EQ.ZERO ) THEN - DO 10 JR = 1, N - TEMP = MAX( TEMP, ABS( VL( JR, JC ) ) ) - 10 CONTINUE - ELSE - DO 20 JR = 1, N - TEMP = MAX( TEMP, ABS( VL( JR, JC ) )+ - $ ABS( VL( JR, JC+1 ) ) ) - 20 CONTINUE - END IF - IF( TEMP.LT.SAFMIN ) - $ GO TO 50 - TEMP = ONE / TEMP - IF( ALPHAI( JC ).EQ.ZERO ) THEN - DO 30 JR = 1, N - VL( JR, JC ) = VL( JR, JC )*TEMP - 30 CONTINUE - ELSE - DO 40 JR = 1, N - VL( JR, JC ) = VL( JR, JC )*TEMP - VL( JR, JC+1 ) = VL( JR, JC+1 )*TEMP - 40 CONTINUE - END IF - 50 CONTINUE - END IF - IF( ILVR ) THEN - CALL DGGBAK( 'P', 'R', N, ILO, IHI, WORK( ILEFT ), - $ WORK( IRIGHT ), N, VR, LDVR, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - GO TO 120 - END IF - DO 100 JC = 1, N - IF( ALPHAI( JC ).LT.ZERO ) - $ GO TO 100 - TEMP = ZERO - IF( ALPHAI( JC ).EQ.ZERO ) THEN - DO 60 JR = 1, N - TEMP = MAX( TEMP, ABS( VR( JR, JC ) ) ) - 60 CONTINUE - ELSE - DO 70 JR = 1, N - TEMP = MAX( TEMP, ABS( VR( JR, JC ) )+ - $ ABS( VR( JR, JC+1 ) ) ) - 70 CONTINUE - END IF - IF( TEMP.LT.SAFMIN ) - $ GO TO 100 - TEMP = ONE / TEMP - IF( ALPHAI( JC ).EQ.ZERO ) THEN - DO 80 JR = 1, N - VR( JR, JC ) = VR( JR, JC )*TEMP - 80 CONTINUE - ELSE - DO 90 JR = 1, N - VR( JR, JC ) = VR( JR, JC )*TEMP - VR( JR, JC+1 ) = VR( JR, JC+1 )*TEMP - 90 CONTINUE - END IF - 100 CONTINUE - END IF -* -* End of eigenvector calculation -* - END IF -* -* Undo scaling in alpha, beta -* -* Note: this does not give the alpha and beta for the unscaled -* problem. -* -* Un-scaling is limited to avoid underflow in alpha and beta -* if they are significant. -* - DO 110 JC = 1, N - ABSAR = ABS( ALPHAR( JC ) ) - ABSAI = ABS( ALPHAI( JC ) ) - ABSB = ABS( BETA( JC ) ) - SALFAR = ANRM*ALPHAR( JC ) - SALFAI = ANRM*ALPHAI( JC ) - SBETA = BNRM*BETA( JC ) - ILIMIT = .FALSE. - SCALE = ONE -* -* Check for significant underflow in ALPHAI -* - IF( ABS( SALFAI ).LT.SAFMIN .AND. ABSAI.GE. - $ MAX( SAFMIN, EPS*ABSAR, EPS*ABSB ) ) THEN - ILIMIT = .TRUE. - SCALE = ( ONEPLS*SAFMIN / ANRM1 ) / - $ MAX( ONEPLS*SAFMIN, ANRM2*ABSAI ) -* - ELSE IF( SALFAI.EQ.ZERO ) THEN -* -* If insignificant underflow in ALPHAI, then make the -* conjugate eigenvalue real. -* - IF( ALPHAI( JC ).LT.ZERO .AND. JC.GT.1 ) THEN - ALPHAI( JC-1 ) = ZERO - ELSE IF( ALPHAI( JC ).GT.ZERO .AND. JC.LT.N ) THEN - ALPHAI( JC+1 ) = ZERO - END IF - END IF -* -* Check for significant underflow in ALPHAR -* - IF( ABS( SALFAR ).LT.SAFMIN .AND. ABSAR.GE. - $ MAX( SAFMIN, EPS*ABSAI, EPS*ABSB ) ) THEN - ILIMIT = .TRUE. - SCALE = MAX( SCALE, ( ONEPLS*SAFMIN / ANRM1 ) / - $ MAX( ONEPLS*SAFMIN, ANRM2*ABSAR ) ) - END IF -* -* Check for significant underflow in BETA -* - IF( ABS( SBETA ).LT.SAFMIN .AND. ABSB.GE. - $ MAX( SAFMIN, EPS*ABSAR, EPS*ABSAI ) ) THEN - ILIMIT = .TRUE. - SCALE = MAX( SCALE, ( ONEPLS*SAFMIN / BNRM1 ) / - $ MAX( ONEPLS*SAFMIN, BNRM2*ABSB ) ) - END IF -* -* Check for possible overflow when limiting scaling -* - IF( ILIMIT ) THEN - TEMP = ( SCALE*SAFMIN )*MAX( ABS( SALFAR ), ABS( SALFAI ), - $ ABS( SBETA ) ) - IF( TEMP.GT.ONE ) - $ SCALE = SCALE / TEMP - IF( SCALE.LT.ONE ) - $ ILIMIT = .FALSE. - END IF -* -* Recompute un-scaled ALPHAR, ALPHAI, BETA if necessary. -* - IF( ILIMIT ) THEN - SALFAR = ( SCALE*ALPHAR( JC ) )*ANRM - SALFAI = ( SCALE*ALPHAI( JC ) )*ANRM - SBETA = ( SCALE*BETA( JC ) )*BNRM - END IF - ALPHAR( JC ) = SALFAR - ALPHAI( JC ) = SALFAI - BETA( JC ) = SBETA - 110 CONTINUE -* - 120 CONTINUE - WORK( 1 ) = LWKOPT -* - RETURN -* -* End of DGEGV -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/dgelsx.f b/dspl/liblapack/SRC/DEPRECATED/dgelsx.f deleted file mode 100644 index 70e5ce7..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/dgelsx.f +++ /dev/null @@ -1,435 +0,0 @@ -*> \brief DGELSX solves overdetermined or underdetermined systems for GE matrices -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download DGELSX + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE DGELSX( M, N, NRHS, A, LDA, B, LDB, JPVT, RCOND, RANK, -* WORK, INFO ) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, LDB, M, N, NRHS, RANK -* DOUBLE PRECISION RCOND -* .. -* .. Array Arguments .. -* INTEGER JPVT( * ) -* DOUBLE PRECISION A( LDA, * ), B( LDB, * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine DGELSY. -*> -*> DGELSX computes the minimum-norm solution to a real linear least -*> squares problem: -*> minimize || A * X - B || -*> using a complete orthogonal factorization of A. A is an M-by-N -*> matrix which may be rank-deficient. -*> -*> Several right hand side vectors b and solution vectors x can be -*> handled in a single call; they are stored as the columns of the -*> M-by-NRHS right hand side matrix B and the N-by-NRHS solution -*> matrix X. -*> -*> The routine first computes a QR factorization with column pivoting: -*> A * P = Q * [ R11 R12 ] -*> [ 0 R22 ] -*> with R11 defined as the largest leading submatrix whose estimated -*> condition number is less than 1/RCOND. The order of R11, RANK, -*> is the effective rank of A. -*> -*> Then, R22 is considered to be negligible, and R12 is annihilated -*> by orthogonal transformations from the right, arriving at the -*> complete orthogonal factorization: -*> A * P = Q * [ T11 0 ] * Z -*> [ 0 0 ] -*> The minimum-norm solution is then -*> X = P * Z**T [ inv(T11)*Q1**T*B ] -*> [ 0 ] -*> where Q1 consists of the first RANK columns of Q. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix A. M >= 0. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrix A. N >= 0. -*> \endverbatim -*> -*> \param[in] NRHS -*> \verbatim -*> NRHS is INTEGER -*> The number of right hand sides, i.e., the number of -*> columns of matrices B and X. NRHS >= 0. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is DOUBLE PRECISION array, dimension (LDA,N) -*> On entry, the M-by-N matrix A. -*> On exit, A has been overwritten by details of its -*> complete orthogonal factorization. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of the array A. LDA >= max(1,M). -*> \endverbatim -*> -*> \param[in,out] B -*> \verbatim -*> B is DOUBLE PRECISION array, dimension (LDB,NRHS) -*> On entry, the M-by-NRHS right hand side matrix B. -*> On exit, the N-by-NRHS solution matrix X. -*> If m >= n and RANK = n, the residual sum-of-squares for -*> the solution in the i-th column is given by the sum of -*> squares of elements N+1:M in that column. -*> \endverbatim -*> -*> \param[in] LDB -*> \verbatim -*> LDB is INTEGER -*> The leading dimension of the array B. LDB >= max(1,M,N). -*> \endverbatim -*> -*> \param[in,out] JPVT -*> \verbatim -*> JPVT is INTEGER array, dimension (N) -*> On entry, if JPVT(i) .ne. 0, the i-th column of A is an -*> initial column, otherwise it is a free column. Before -*> the QR factorization of A, all initial columns are -*> permuted to the leading positions; only the remaining -*> free columns are moved as a result of column pivoting -*> during the factorization. -*> On exit, if JPVT(i) = k, then the i-th column of A*P -*> was the k-th column of A. -*> \endverbatim -*> -*> \param[in] RCOND -*> \verbatim -*> RCOND is DOUBLE PRECISION -*> RCOND is used to determine the effective rank of A, which -*> is defined as the order of the largest leading triangular -*> submatrix R11 in the QR factorization with pivoting of A, -*> whose estimated condition number < 1/RCOND. -*> \endverbatim -*> -*> \param[out] RANK -*> \verbatim -*> RANK is INTEGER -*> The effective rank of A, i.e., the order of the submatrix -*> R11. This is the same as the order of the submatrix T11 -*> in the complete orthogonal factorization of A. -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is DOUBLE PRECISION array, dimension -*> (max( min(M,N)+3*N, 2*min(M,N)+NRHS )), -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup doubleGEsolve -* -* ===================================================================== - SUBROUTINE DGELSX( M, N, NRHS, A, LDA, B, LDB, JPVT, RCOND, RANK, - $ WORK, INFO ) -* -* -- LAPACK driver routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, LDB, M, N, NRHS, RANK - DOUBLE PRECISION RCOND -* .. -* .. Array Arguments .. - INTEGER JPVT( * ) - DOUBLE PRECISION A( LDA, * ), B( LDB, * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - INTEGER IMAX, IMIN - PARAMETER ( IMAX = 1, IMIN = 2 ) - DOUBLE PRECISION ZERO, ONE, DONE, NTDONE - PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0, DONE = ZERO, - $ NTDONE = ONE ) -* .. -* .. Local Scalars .. - INTEGER I, IASCL, IBSCL, ISMAX, ISMIN, J, K, MN - DOUBLE PRECISION ANRM, BIGNUM, BNRM, C1, C2, S1, S2, SMAX, - $ SMAXPR, SMIN, SMINPR, SMLNUM, T1, T2 -* .. -* .. External Functions .. - DOUBLE PRECISION DLAMCH, DLANGE - EXTERNAL DLAMCH, DLANGE -* .. -* .. External Subroutines .. - EXTERNAL DGEQPF, DLAIC1, DLASCL, DLASET, DLATZM, DORM2R, - $ DTRSM, DTZRQF, XERBLA -* .. -* .. Intrinsic Functions .. - INTRINSIC ABS, MAX, MIN -* .. -* .. Executable Statements .. -* - MN = MIN( M, N ) - ISMIN = MN + 1 - ISMAX = 2*MN + 1 -* -* Test the input arguments. -* - INFO = 0 - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( NRHS.LT.0 ) THEN - INFO = -3 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -5 - ELSE IF( LDB.LT.MAX( 1, M, N ) ) THEN - INFO = -7 - END IF -* - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'DGELSX', -INFO ) - RETURN - END IF -* -* Quick return if possible -* - IF( MIN( M, N, NRHS ).EQ.0 ) THEN - RANK = 0 - RETURN - END IF -* -* Get machine parameters -* - SMLNUM = DLAMCH( 'S' ) / DLAMCH( 'P' ) - BIGNUM = ONE / SMLNUM - CALL DLABAD( SMLNUM, BIGNUM ) -* -* Scale A, B if max elements outside range [SMLNUM,BIGNUM] -* - ANRM = DLANGE( 'M', M, N, A, LDA, WORK ) - IASCL = 0 - IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN -* -* Scale matrix norm up to SMLNUM -* - CALL DLASCL( 'G', 0, 0, ANRM, SMLNUM, M, N, A, LDA, INFO ) - IASCL = 1 - ELSE IF( ANRM.GT.BIGNUM ) THEN -* -* Scale matrix norm down to BIGNUM -* - CALL DLASCL( 'G', 0, 0, ANRM, BIGNUM, M, N, A, LDA, INFO ) - IASCL = 2 - ELSE IF( ANRM.EQ.ZERO ) THEN -* -* Matrix all zero. Return zero solution. -* - CALL DLASET( 'F', MAX( M, N ), NRHS, ZERO, ZERO, B, LDB ) - RANK = 0 - GO TO 100 - END IF -* - BNRM = DLANGE( 'M', M, NRHS, B, LDB, WORK ) - IBSCL = 0 - IF( BNRM.GT.ZERO .AND. BNRM.LT.SMLNUM ) THEN -* -* Scale matrix norm up to SMLNUM -* - CALL DLASCL( 'G', 0, 0, BNRM, SMLNUM, M, NRHS, B, LDB, INFO ) - IBSCL = 1 - ELSE IF( BNRM.GT.BIGNUM ) THEN -* -* Scale matrix norm down to BIGNUM -* - CALL DLASCL( 'G', 0, 0, BNRM, BIGNUM, M, NRHS, B, LDB, INFO ) - IBSCL = 2 - END IF -* -* Compute QR factorization with column pivoting of A: -* A * P = Q * R -* - CALL DGEQPF( M, N, A, LDA, JPVT, WORK( 1 ), WORK( MN+1 ), INFO ) -* -* workspace 3*N. Details of Householder rotations stored -* in WORK(1:MN). -* -* Determine RANK using incremental condition estimation -* - WORK( ISMIN ) = ONE - WORK( ISMAX ) = ONE - SMAX = ABS( A( 1, 1 ) ) - SMIN = SMAX - IF( ABS( A( 1, 1 ) ).EQ.ZERO ) THEN - RANK = 0 - CALL DLASET( 'F', MAX( M, N ), NRHS, ZERO, ZERO, B, LDB ) - GO TO 100 - ELSE - RANK = 1 - END IF -* - 10 CONTINUE - IF( RANK.LT.MN ) THEN - I = RANK + 1 - CALL DLAIC1( IMIN, RANK, WORK( ISMIN ), SMIN, A( 1, I ), - $ A( I, I ), SMINPR, S1, C1 ) - CALL DLAIC1( IMAX, RANK, WORK( ISMAX ), SMAX, A( 1, I ), - $ A( I, I ), SMAXPR, S2, C2 ) -* - IF( SMAXPR*RCOND.LE.SMINPR ) THEN - DO 20 I = 1, RANK - WORK( ISMIN+I-1 ) = S1*WORK( ISMIN+I-1 ) - WORK( ISMAX+I-1 ) = S2*WORK( ISMAX+I-1 ) - 20 CONTINUE - WORK( ISMIN+RANK ) = C1 - WORK( ISMAX+RANK ) = C2 - SMIN = SMINPR - SMAX = SMAXPR - RANK = RANK + 1 - GO TO 10 - END IF - END IF -* -* Logically partition R = [ R11 R12 ] -* [ 0 R22 ] -* where R11 = R(1:RANK,1:RANK) -* -* [R11,R12] = [ T11, 0 ] * Y -* - IF( RANK.LT.N ) - $ CALL DTZRQF( RANK, N, A, LDA, WORK( MN+1 ), INFO ) -* -* Details of Householder rotations stored in WORK(MN+1:2*MN) -* -* B(1:M,1:NRHS) := Q**T * B(1:M,1:NRHS) -* - CALL DORM2R( 'Left', 'Transpose', M, NRHS, MN, A, LDA, WORK( 1 ), - $ B, LDB, WORK( 2*MN+1 ), INFO ) -* -* workspace NRHS -* -* B(1:RANK,1:NRHS) := inv(T11) * B(1:RANK,1:NRHS) -* - CALL DTRSM( 'Left', 'Upper', 'No transpose', 'Non-unit', RANK, - $ NRHS, ONE, A, LDA, B, LDB ) -* - DO 40 I = RANK + 1, N - DO 30 J = 1, NRHS - B( I, J ) = ZERO - 30 CONTINUE - 40 CONTINUE -* -* B(1:N,1:NRHS) := Y**T * B(1:N,1:NRHS) -* - IF( RANK.LT.N ) THEN - DO 50 I = 1, RANK - CALL DLATZM( 'Left', N-RANK+1, NRHS, A( I, RANK+1 ), LDA, - $ WORK( MN+I ), B( I, 1 ), B( RANK+1, 1 ), LDB, - $ WORK( 2*MN+1 ) ) - 50 CONTINUE - END IF -* -* workspace NRHS -* -* B(1:N,1:NRHS) := P * B(1:N,1:NRHS) -* - DO 90 J = 1, NRHS - DO 60 I = 1, N - WORK( 2*MN+I ) = NTDONE - 60 CONTINUE - DO 80 I = 1, N - IF( WORK( 2*MN+I ).EQ.NTDONE ) THEN - IF( JPVT( I ).NE.I ) THEN - K = I - T1 = B( K, J ) - T2 = B( JPVT( K ), J ) - 70 CONTINUE - B( JPVT( K ), J ) = T1 - WORK( 2*MN+K ) = DONE - T1 = T2 - K = JPVT( K ) - T2 = B( JPVT( K ), J ) - IF( JPVT( K ).NE.I ) - $ GO TO 70 - B( I, J ) = T1 - WORK( 2*MN+K ) = DONE - END IF - END IF - 80 CONTINUE - 90 CONTINUE -* -* Undo scaling -* - IF( IASCL.EQ.1 ) THEN - CALL DLASCL( 'G', 0, 0, ANRM, SMLNUM, N, NRHS, B, LDB, INFO ) - CALL DLASCL( 'U', 0, 0, SMLNUM, ANRM, RANK, RANK, A, LDA, - $ INFO ) - ELSE IF( IASCL.EQ.2 ) THEN - CALL DLASCL( 'G', 0, 0, ANRM, BIGNUM, N, NRHS, B, LDB, INFO ) - CALL DLASCL( 'U', 0, 0, BIGNUM, ANRM, RANK, RANK, A, LDA, - $ INFO ) - END IF - IF( IBSCL.EQ.1 ) THEN - CALL DLASCL( 'G', 0, 0, SMLNUM, BNRM, N, NRHS, B, LDB, INFO ) - ELSE IF( IBSCL.EQ.2 ) THEN - CALL DLASCL( 'G', 0, 0, BIGNUM, BNRM, N, NRHS, B, LDB, INFO ) - END IF -* - 100 CONTINUE -* - RETURN -* -* End of DGELSX -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/dgeqpf.f b/dspl/liblapack/SRC/DEPRECATED/dgeqpf.f deleted file mode 100644 index 58ef560..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/dgeqpf.f +++ /dev/null @@ -1,306 +0,0 @@ -*> \brief \b DGEQPF -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download DGEQPF + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE DGEQPF( M, N, A, LDA, JPVT, TAU, WORK, INFO ) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. -* INTEGER JPVT( * ) -* DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine DGEQP3. -*> -*> DGEQPF computes a QR factorization with column pivoting of a -*> real M-by-N matrix A: A*P = Q*R. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix A. M >= 0. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrix A. N >= 0 -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is DOUBLE PRECISION array, dimension (LDA,N) -*> On entry, the M-by-N matrix A. -*> On exit, the upper triangle of the array contains the -*> min(M,N)-by-N upper triangular matrix R; the elements -*> below the diagonal, together with the array TAU, -*> represent the orthogonal matrix Q as a product of -*> min(m,n) elementary reflectors. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of the array A. LDA >= max(1,M). -*> \endverbatim -*> -*> \param[in,out] JPVT -*> \verbatim -*> JPVT is INTEGER array, dimension (N) -*> On entry, if JPVT(i) .ne. 0, the i-th column of A is permuted -*> to the front of A*P (a leading column); if JPVT(i) = 0, -*> the i-th column of A is a free column. -*> On exit, if JPVT(i) = k, then the i-th column of A*P -*> was the k-th column of A. -*> \endverbatim -*> -*> \param[out] TAU -*> \verbatim -*> TAU is DOUBLE PRECISION array, dimension (min(M,N)) -*> The scalar factors of the elementary reflectors. -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is DOUBLE PRECISION array, dimension (3*N) -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup doubleGEcomputational -* -*> \par Further Details: -* ===================== -*> -*> \verbatim -*> -*> The matrix Q is represented as a product of elementary reflectors -*> -*> Q = H(1) H(2) . . . H(n) -*> -*> Each H(i) has the form -*> -*> H = I - tau * v * v**T -*> -*> where tau is a real scalar, and v is a real vector with -*> v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i). -*> -*> The matrix P is represented in jpvt as follows: If -*> jpvt(j) = i -*> then the jth column of P is the ith canonical unit vector. -*> -*> Partial column norm updating strategy modified by -*> Z. Drmac and Z. Bujanovic, Dept. of Mathematics, -*> University of Zagreb, Croatia. -*> -- April 2011 -- -*> For more details see LAPACK Working Note 176. -*> \endverbatim -*> -* ===================================================================== - SUBROUTINE DGEQPF( M, N, A, LDA, JPVT, TAU, WORK, INFO ) -* -* -- LAPACK computational routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. - INTEGER JPVT( * ) - DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - DOUBLE PRECISION ZERO, ONE - PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 ) -* .. -* .. Local Scalars .. - INTEGER I, ITEMP, J, MA, MN, PVT - DOUBLE PRECISION AII, TEMP, TEMP2, TOL3Z -* .. -* .. External Subroutines .. - EXTERNAL DGEQR2, DLARF, DLARFG, DORM2R, DSWAP, XERBLA -* .. -* .. Intrinsic Functions .. - INTRINSIC ABS, MAX, MIN, SQRT -* .. -* .. External Functions .. - INTEGER IDAMAX - DOUBLE PRECISION DLAMCH, DNRM2 - EXTERNAL IDAMAX, DLAMCH, DNRM2 -* .. -* .. Executable Statements .. -* -* Test the input arguments -* - INFO = 0 - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'DGEQPF', -INFO ) - RETURN - END IF -* - MN = MIN( M, N ) - TOL3Z = SQRT(DLAMCH('Epsilon')) -* -* Move initial columns up front -* - ITEMP = 1 - DO 10 I = 1, N - IF( JPVT( I ).NE.0 ) THEN - IF( I.NE.ITEMP ) THEN - CALL DSWAP( M, A( 1, I ), 1, A( 1, ITEMP ), 1 ) - JPVT( I ) = JPVT( ITEMP ) - JPVT( ITEMP ) = I - ELSE - JPVT( I ) = I - END IF - ITEMP = ITEMP + 1 - ELSE - JPVT( I ) = I - END IF - 10 CONTINUE - ITEMP = ITEMP - 1 -* -* Compute the QR factorization and update remaining columns -* - IF( ITEMP.GT.0 ) THEN - MA = MIN( ITEMP, M ) - CALL DGEQR2( M, MA, A, LDA, TAU, WORK, INFO ) - IF( MA.LT.N ) THEN - CALL DORM2R( 'Left', 'Transpose', M, N-MA, MA, A, LDA, TAU, - $ A( 1, MA+1 ), LDA, WORK, INFO ) - END IF - END IF -* - IF( ITEMP.LT.MN ) THEN -* -* Initialize partial column norms. The first n elements of -* work store the exact column norms. -* - DO 20 I = ITEMP + 1, N - WORK( I ) = DNRM2( M-ITEMP, A( ITEMP+1, I ), 1 ) - WORK( N+I ) = WORK( I ) - 20 CONTINUE -* -* Compute factorization -* - DO 40 I = ITEMP + 1, MN -* -* Determine ith pivot column and swap if necessary -* - PVT = ( I-1 ) + IDAMAX( N-I+1, WORK( I ), 1 ) -* - IF( PVT.NE.I ) THEN - CALL DSWAP( M, A( 1, PVT ), 1, A( 1, I ), 1 ) - ITEMP = JPVT( PVT ) - JPVT( PVT ) = JPVT( I ) - JPVT( I ) = ITEMP - WORK( PVT ) = WORK( I ) - WORK( N+PVT ) = WORK( N+I ) - END IF -* -* Generate elementary reflector H(i) -* - IF( I.LT.M ) THEN - CALL DLARFG( M-I+1, A( I, I ), A( I+1, I ), 1, TAU( I ) ) - ELSE - CALL DLARFG( 1, A( M, M ), A( M, M ), 1, TAU( M ) ) - END IF -* - IF( I.LT.N ) THEN -* -* Apply H(i) to A(i:m,i+1:n) from the left -* - AII = A( I, I ) - A( I, I ) = ONE - CALL DLARF( 'LEFT', M-I+1, N-I, A( I, I ), 1, TAU( I ), - $ A( I, I+1 ), LDA, WORK( 2*N+1 ) ) - A( I, I ) = AII - END IF -* -* Update partial column norms -* - DO 30 J = I + 1, N - IF( WORK( J ).NE.ZERO ) THEN -* -* NOTE: The following 4 lines follow from the analysis in -* Lapack Working Note 176. -* - TEMP = ABS( A( I, J ) ) / WORK( J ) - TEMP = MAX( ZERO, ( ONE+TEMP )*( ONE-TEMP ) ) - TEMP2 = TEMP*( WORK( J ) / WORK( N+J ) )**2 - IF( TEMP2 .LE. TOL3Z ) THEN - IF( M-I.GT.0 ) THEN - WORK( J ) = DNRM2( M-I, A( I+1, J ), 1 ) - WORK( N+J ) = WORK( J ) - ELSE - WORK( J ) = ZERO - WORK( N+J ) = ZERO - END IF - ELSE - WORK( J ) = WORK( J )*SQRT( TEMP ) - END IF - END IF - 30 CONTINUE -* - 40 CONTINUE - END IF - RETURN -* -* End of DGEQPF -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/dggsvd.f b/dspl/liblapack/SRC/DEPRECATED/dggsvd.f deleted file mode 100644 index 32d232c..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/dggsvd.f +++ /dev/null @@ -1,464 +0,0 @@ -*> \brief DGGSVD computes the singular value decomposition (SVD) for OTHER matrices -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download DGGSVD + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE DGGSVD( JOBU, JOBV, JOBQ, M, N, P, K, L, A, LDA, B, -* LDB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, -* IWORK, INFO ) -* -* .. Scalar Arguments .. -* CHARACTER JOBQ, JOBU, JOBV -* INTEGER INFO, K, L, LDA, LDB, LDQ, LDU, LDV, M, N, P -* .. -* .. Array Arguments .. -* INTEGER IWORK( * ) -* DOUBLE PRECISION A( LDA, * ), ALPHA( * ), B( LDB, * ), -* $ BETA( * ), Q( LDQ, * ), U( LDU, * ), -* $ V( LDV, * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine DGGSVD3. -*> -*> DGGSVD computes the generalized singular value decomposition (GSVD) -*> of an M-by-N real matrix A and P-by-N real matrix B: -*> -*> U**T*A*Q = D1*( 0 R ), V**T*B*Q = D2*( 0 R ) -*> -*> where U, V and Q are orthogonal matrices. -*> Let K+L = the effective numerical rank of the matrix (A**T,B**T)**T, -*> then R is a K+L-by-K+L nonsingular upper triangular matrix, D1 and -*> D2 are M-by-(K+L) and P-by-(K+L) "diagonal" matrices and of the -*> following structures, respectively: -*> -*> If M-K-L >= 0, -*> -*> K L -*> D1 = K ( I 0 ) -*> L ( 0 C ) -*> M-K-L ( 0 0 ) -*> -*> K L -*> D2 = L ( 0 S ) -*> P-L ( 0 0 ) -*> -*> N-K-L K L -*> ( 0 R ) = K ( 0 R11 R12 ) -*> L ( 0 0 R22 ) -*> -*> where -*> -*> C = diag( ALPHA(K+1), ... , ALPHA(K+L) ), -*> S = diag( BETA(K+1), ... , BETA(K+L) ), -*> C**2 + S**2 = I. -*> -*> R is stored in A(1:K+L,N-K-L+1:N) on exit. -*> -*> If M-K-L < 0, -*> -*> K M-K K+L-M -*> D1 = K ( I 0 0 ) -*> M-K ( 0 C 0 ) -*> -*> K M-K K+L-M -*> D2 = M-K ( 0 S 0 ) -*> K+L-M ( 0 0 I ) -*> P-L ( 0 0 0 ) -*> -*> N-K-L K M-K K+L-M -*> ( 0 R ) = K ( 0 R11 R12 R13 ) -*> M-K ( 0 0 R22 R23 ) -*> K+L-M ( 0 0 0 R33 ) -*> -*> where -*> -*> C = diag( ALPHA(K+1), ... , ALPHA(M) ), -*> S = diag( BETA(K+1), ... , BETA(M) ), -*> C**2 + S**2 = I. -*> -*> (R11 R12 R13 ) is stored in A(1:M, N-K-L+1:N), and R33 is stored -*> ( 0 R22 R23 ) -*> in B(M-K+1:L,N+M-K-L+1:N) on exit. -*> -*> The routine computes C, S, R, and optionally the orthogonal -*> transformation matrices U, V and Q. -*> -*> In particular, if B is an N-by-N nonsingular matrix, then the GSVD of -*> A and B implicitly gives the SVD of A*inv(B): -*> A*inv(B) = U*(D1*inv(D2))*V**T. -*> If ( A**T,B**T)**T has orthonormal columns, then the GSVD of A and B is -*> also equal to the CS decomposition of A and B. Furthermore, the GSVD -*> can be used to derive the solution of the eigenvalue problem: -*> A**T*A x = lambda* B**T*B x. -*> In some literature, the GSVD of A and B is presented in the form -*> U**T*A*X = ( 0 D1 ), V**T*B*X = ( 0 D2 ) -*> where U and V are orthogonal and X is nonsingular, D1 and D2 are -*> ``diagonal''. The former GSVD form can be converted to the latter -*> form by taking the nonsingular matrix X as -*> -*> X = Q*( I 0 ) -*> ( 0 inv(R) ). -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] JOBU -*> \verbatim -*> JOBU is CHARACTER*1 -*> = 'U': Orthogonal matrix U is computed; -*> = 'N': U is not computed. -*> \endverbatim -*> -*> \param[in] JOBV -*> \verbatim -*> JOBV is CHARACTER*1 -*> = 'V': Orthogonal matrix V is computed; -*> = 'N': V is not computed. -*> \endverbatim -*> -*> \param[in] JOBQ -*> \verbatim -*> JOBQ is CHARACTER*1 -*> = 'Q': Orthogonal matrix Q is computed; -*> = 'N': Q is not computed. -*> \endverbatim -*> -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix A. M >= 0. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrices A and B. N >= 0. -*> \endverbatim -*> -*> \param[in] P -*> \verbatim -*> P is INTEGER -*> The number of rows of the matrix B. P >= 0. -*> \endverbatim -*> -*> \param[out] K -*> \verbatim -*> K is INTEGER -*> \endverbatim -*> -*> \param[out] L -*> \verbatim -*> L is INTEGER -*> -*> On exit, K and L specify the dimension of the subblocks -*> described in Purpose. -*> K + L = effective numerical rank of (A**T,B**T)**T. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is DOUBLE PRECISION array, dimension (LDA,N) -*> On entry, the M-by-N matrix A. -*> On exit, A contains the triangular matrix R, or part of R. -*> See Purpose for details. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of the array A. LDA >= max(1,M). -*> \endverbatim -*> -*> \param[in,out] B -*> \verbatim -*> B is DOUBLE PRECISION array, dimension (LDB,N) -*> On entry, the P-by-N matrix B. -*> On exit, B contains the triangular matrix R if M-K-L < 0. -*> See Purpose for details. -*> \endverbatim -*> -*> \param[in] LDB -*> \verbatim -*> LDB is INTEGER -*> The leading dimension of the array B. LDB >= max(1,P). -*> \endverbatim -*> -*> \param[out] ALPHA -*> \verbatim -*> ALPHA is DOUBLE PRECISION array, dimension (N) -*> \endverbatim -*> -*> \param[out] BETA -*> \verbatim -*> BETA is DOUBLE PRECISION array, dimension (N) -*> -*> On exit, ALPHA and BETA contain the generalized singular -*> value pairs of A and B; -*> ALPHA(1:K) = 1, -*> BETA(1:K) = 0, -*> and if M-K-L >= 0, -*> ALPHA(K+1:K+L) = C, -*> BETA(K+1:K+L) = S, -*> or if M-K-L < 0, -*> ALPHA(K+1:M)=C, ALPHA(M+1:K+L)=0 -*> BETA(K+1:M) =S, BETA(M+1:K+L) =1 -*> and -*> ALPHA(K+L+1:N) = 0 -*> BETA(K+L+1:N) = 0 -*> \endverbatim -*> -*> \param[out] U -*> \verbatim -*> U is DOUBLE PRECISION array, dimension (LDU,M) -*> If JOBU = 'U', U contains the M-by-M orthogonal matrix U. -*> If JOBU = 'N', U is not referenced. -*> \endverbatim -*> -*> \param[in] LDU -*> \verbatim -*> LDU is INTEGER -*> The leading dimension of the array U. LDU >= max(1,M) if -*> JOBU = 'U'; LDU >= 1 otherwise. -*> \endverbatim -*> -*> \param[out] V -*> \verbatim -*> V is DOUBLE PRECISION array, dimension (LDV,P) -*> If JOBV = 'V', V contains the P-by-P orthogonal matrix V. -*> If JOBV = 'N', V is not referenced. -*> \endverbatim -*> -*> \param[in] LDV -*> \verbatim -*> LDV is INTEGER -*> The leading dimension of the array V. LDV >= max(1,P) if -*> JOBV = 'V'; LDV >= 1 otherwise. -*> \endverbatim -*> -*> \param[out] Q -*> \verbatim -*> Q is DOUBLE PRECISION array, dimension (LDQ,N) -*> If JOBQ = 'Q', Q contains the N-by-N orthogonal matrix Q. -*> If JOBQ = 'N', Q is not referenced. -*> \endverbatim -*> -*> \param[in] LDQ -*> \verbatim -*> LDQ is INTEGER -*> The leading dimension of the array Q. LDQ >= max(1,N) if -*> JOBQ = 'Q'; LDQ >= 1 otherwise. -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is DOUBLE PRECISION array, -*> dimension (max(3*N,M,P)+N) -*> \endverbatim -*> -*> \param[out] IWORK -*> \verbatim -*> IWORK is INTEGER array, dimension (N) -*> On exit, IWORK stores the sorting information. More -*> precisely, the following loop will sort ALPHA -*> for I = K+1, min(M,K+L) -*> swap ALPHA(I) and ALPHA(IWORK(I)) -*> endfor -*> such that ALPHA(1) >= ALPHA(2) >= ... >= ALPHA(N). -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value. -*> > 0: if INFO = 1, the Jacobi-type procedure failed to -*> converge. For further details, see subroutine DTGSJA. -*> \endverbatim -* -*> \par Internal Parameters: -* ========================= -*> -*> \verbatim -*> TOLA DOUBLE PRECISION -*> TOLB DOUBLE PRECISION -*> TOLA and TOLB are the thresholds to determine the effective -*> rank of (A',B')**T. Generally, they are set to -*> TOLA = MAX(M,N)*norm(A)*MAZHEPS, -*> TOLB = MAX(P,N)*norm(B)*MAZHEPS. -*> The size of TOLA and TOLB may affect the size of backward -*> errors of the decomposition. -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup doubleOTHERsing -* -*> \par Contributors: -* ================== -*> -*> Ming Gu and Huan Ren, Computer Science Division, University of -*> California at Berkeley, USA -*> -* ===================================================================== - SUBROUTINE DGGSVD( JOBU, JOBV, JOBQ, M, N, P, K, L, A, LDA, B, - $ LDB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, - $ IWORK, INFO ) -* -* -- LAPACK driver routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER JOBQ, JOBU, JOBV - INTEGER INFO, K, L, LDA, LDB, LDQ, LDU, LDV, M, N, P -* .. -* .. Array Arguments .. - INTEGER IWORK( * ) - DOUBLE PRECISION A( LDA, * ), ALPHA( * ), B( LDB, * ), - $ BETA( * ), Q( LDQ, * ), U( LDU, * ), - $ V( LDV, * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Local Scalars .. - LOGICAL WANTQ, WANTU, WANTV - INTEGER I, IBND, ISUB, J, NCYCLE - DOUBLE PRECISION ANORM, BNORM, SMAX, TEMP, TOLA, TOLB, ULP, UNFL -* .. -* .. External Functions .. - LOGICAL LSAME - DOUBLE PRECISION DLAMCH, DLANGE - EXTERNAL LSAME, DLAMCH, DLANGE -* .. -* .. External Subroutines .. - EXTERNAL DCOPY, DGGSVP, DTGSJA, XERBLA -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. Executable Statements .. -* -* Test the input parameters -* - WANTU = LSAME( JOBU, 'U' ) - WANTV = LSAME( JOBV, 'V' ) - WANTQ = LSAME( JOBQ, 'Q' ) -* - INFO = 0 - IF( .NOT.( WANTU .OR. LSAME( JOBU, 'N' ) ) ) THEN - INFO = -1 - ELSE IF( .NOT.( WANTV .OR. LSAME( JOBV, 'N' ) ) ) THEN - INFO = -2 - ELSE IF( .NOT.( WANTQ .OR. LSAME( JOBQ, 'N' ) ) ) THEN - INFO = -3 - ELSE IF( M.LT.0 ) THEN - INFO = -4 - ELSE IF( N.LT.0 ) THEN - INFO = -5 - ELSE IF( P.LT.0 ) THEN - INFO = -6 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -10 - ELSE IF( LDB.LT.MAX( 1, P ) ) THEN - INFO = -12 - ELSE IF( LDU.LT.1 .OR. ( WANTU .AND. LDU.LT.M ) ) THEN - INFO = -16 - ELSE IF( LDV.LT.1 .OR. ( WANTV .AND. LDV.LT.P ) ) THEN - INFO = -18 - ELSE IF( LDQ.LT.1 .OR. ( WANTQ .AND. LDQ.LT.N ) ) THEN - INFO = -20 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'DGGSVD', -INFO ) - RETURN - END IF -* -* Compute the Frobenius norm of matrices A and B -* - ANORM = DLANGE( '1', M, N, A, LDA, WORK ) - BNORM = DLANGE( '1', P, N, B, LDB, WORK ) -* -* Get machine precision and set up threshold for determining -* the effective numerical rank of the matrices A and B. -* - ULP = DLAMCH( 'Precision' ) - UNFL = DLAMCH( 'Safe Minimum' ) - TOLA = MAX( M, N )*MAX( ANORM, UNFL )*ULP - TOLB = MAX( P, N )*MAX( BNORM, UNFL )*ULP -* -* Preprocessing -* - CALL DGGSVP( JOBU, JOBV, JOBQ, M, P, N, A, LDA, B, LDB, TOLA, - $ TOLB, K, L, U, LDU, V, LDV, Q, LDQ, IWORK, WORK, - $ WORK( N+1 ), INFO ) -* -* Compute the GSVD of two upper "triangular" matrices -* - CALL DTGSJA( JOBU, JOBV, JOBQ, M, P, N, K, L, A, LDA, B, LDB, - $ TOLA, TOLB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, - $ WORK, NCYCLE, INFO ) -* -* Sort the singular values and store the pivot indices in IWORK -* Copy ALPHA to WORK, then sort ALPHA in WORK -* - CALL DCOPY( N, ALPHA, 1, WORK, 1 ) - IBND = MIN( L, M-K ) - DO 20 I = 1, IBND -* -* Scan for largest ALPHA(K+I) -* - ISUB = I - SMAX = WORK( K+I ) - DO 10 J = I + 1, IBND - TEMP = WORK( K+J ) - IF( TEMP.GT.SMAX ) THEN - ISUB = J - SMAX = TEMP - END IF - 10 CONTINUE - IF( ISUB.NE.I ) THEN - WORK( K+ISUB ) = WORK( K+I ) - WORK( K+I ) = SMAX - IWORK( K+I ) = K + ISUB - ELSE - IWORK( K+I ) = K + I - END IF - 20 CONTINUE -* - RETURN -* -* End of DGGSVD -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/dggsvp.f b/dspl/liblapack/SRC/DEPRECATED/dggsvp.f deleted file mode 100644 index 1cc52b7..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/dggsvp.f +++ /dev/null @@ -1,522 +0,0 @@ -*> \brief \b DGGSVP -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download DGGSVP + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE DGGSVP( JOBU, JOBV, JOBQ, M, P, N, A, LDA, B, LDB, -* TOLA, TOLB, K, L, U, LDU, V, LDV, Q, LDQ, -* IWORK, TAU, WORK, INFO ) -* -* .. Scalar Arguments .. -* CHARACTER JOBQ, JOBU, JOBV -* INTEGER INFO, K, L, LDA, LDB, LDQ, LDU, LDV, M, N, P -* DOUBLE PRECISION TOLA, TOLB -* .. -* .. Array Arguments .. -* INTEGER IWORK( * ) -* DOUBLE PRECISION A( LDA, * ), B( LDB, * ), Q( LDQ, * ), -* $ TAU( * ), U( LDU, * ), V( LDV, * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine DGGSVP3. -*> -*> DGGSVP computes orthogonal matrices U, V and Q such that -*> -*> N-K-L K L -*> U**T*A*Q = K ( 0 A12 A13 ) if M-K-L >= 0; -*> L ( 0 0 A23 ) -*> M-K-L ( 0 0 0 ) -*> -*> N-K-L K L -*> = K ( 0 A12 A13 ) if M-K-L < 0; -*> M-K ( 0 0 A23 ) -*> -*> N-K-L K L -*> V**T*B*Q = L ( 0 0 B13 ) -*> P-L ( 0 0 0 ) -*> -*> where the K-by-K matrix A12 and L-by-L matrix B13 are nonsingular -*> upper triangular; A23 is L-by-L upper triangular if M-K-L >= 0, -*> otherwise A23 is (M-K)-by-L upper trapezoidal. K+L = the effective -*> numerical rank of the (M+P)-by-N matrix (A**T,B**T)**T. -*> -*> This decomposition is the preprocessing step for computing the -*> Generalized Singular Value Decomposition (GSVD), see subroutine -*> DGGSVD. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] JOBU -*> \verbatim -*> JOBU is CHARACTER*1 -*> = 'U': Orthogonal matrix U is computed; -*> = 'N': U is not computed. -*> \endverbatim -*> -*> \param[in] JOBV -*> \verbatim -*> JOBV is CHARACTER*1 -*> = 'V': Orthogonal matrix V is computed; -*> = 'N': V is not computed. -*> \endverbatim -*> -*> \param[in] JOBQ -*> \verbatim -*> JOBQ is CHARACTER*1 -*> = 'Q': Orthogonal matrix Q is computed; -*> = 'N': Q is not computed. -*> \endverbatim -*> -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix A. M >= 0. -*> \endverbatim -*> -*> \param[in] P -*> \verbatim -*> P is INTEGER -*> The number of rows of the matrix B. P >= 0. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrices A and B. N >= 0. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is DOUBLE PRECISION array, dimension (LDA,N) -*> On entry, the M-by-N matrix A. -*> On exit, A contains the triangular (or trapezoidal) matrix -*> described in the Purpose section. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of the array A. LDA >= max(1,M). -*> \endverbatim -*> -*> \param[in,out] B -*> \verbatim -*> B is DOUBLE PRECISION array, dimension (LDB,N) -*> On entry, the P-by-N matrix B. -*> On exit, B contains the triangular matrix described in -*> the Purpose section. -*> \endverbatim -*> -*> \param[in] LDB -*> \verbatim -*> LDB is INTEGER -*> The leading dimension of the array B. LDB >= max(1,P). -*> \endverbatim -*> -*> \param[in] TOLA -*> \verbatim -*> TOLA is DOUBLE PRECISION -*> \endverbatim -*> -*> \param[in] TOLB -*> \verbatim -*> TOLB is DOUBLE PRECISION -*> -*> TOLA and TOLB are the thresholds to determine the effective -*> numerical rank of matrix B and a subblock of A. Generally, -*> they are set to -*> TOLA = MAX(M,N)*norm(A)*MACHEPS, -*> TOLB = MAX(P,N)*norm(B)*MACHEPS. -*> The size of TOLA and TOLB may affect the size of backward -*> errors of the decomposition. -*> \endverbatim -*> -*> \param[out] K -*> \verbatim -*> K is INTEGER -*> \endverbatim -*> -*> \param[out] L -*> \verbatim -*> L is INTEGER -*> -*> On exit, K and L specify the dimension of the subblocks -*> described in Purpose section. -*> K + L = effective numerical rank of (A**T,B**T)**T. -*> \endverbatim -*> -*> \param[out] U -*> \verbatim -*> U is DOUBLE PRECISION array, dimension (LDU,M) -*> If JOBU = 'U', U contains the orthogonal matrix U. -*> If JOBU = 'N', U is not referenced. -*> \endverbatim -*> -*> \param[in] LDU -*> \verbatim -*> LDU is INTEGER -*> The leading dimension of the array U. LDU >= max(1,M) if -*> JOBU = 'U'; LDU >= 1 otherwise. -*> \endverbatim -*> -*> \param[out] V -*> \verbatim -*> V is DOUBLE PRECISION array, dimension (LDV,P) -*> If JOBV = 'V', V contains the orthogonal matrix V. -*> If JOBV = 'N', V is not referenced. -*> \endverbatim -*> -*> \param[in] LDV -*> \verbatim -*> LDV is INTEGER -*> The leading dimension of the array V. LDV >= max(1,P) if -*> JOBV = 'V'; LDV >= 1 otherwise. -*> \endverbatim -*> -*> \param[out] Q -*> \verbatim -*> Q is DOUBLE PRECISION array, dimension (LDQ,N) -*> If JOBQ = 'Q', Q contains the orthogonal matrix Q. -*> If JOBQ = 'N', Q is not referenced. -*> \endverbatim -*> -*> \param[in] LDQ -*> \verbatim -*> LDQ is INTEGER -*> The leading dimension of the array Q. LDQ >= max(1,N) if -*> JOBQ = 'Q'; LDQ >= 1 otherwise. -*> \endverbatim -*> -*> \param[out] IWORK -*> \verbatim -*> IWORK is INTEGER array, dimension (N) -*> \endverbatim -*> -*> \param[out] TAU -*> \verbatim -*> TAU is DOUBLE PRECISION array, dimension (N) -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is DOUBLE PRECISION array, dimension (max(3*N,M,P)) -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value. -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup doubleOTHERcomputational -* -*> \par Further Details: -* ===================== -*> -*> The subroutine uses LAPACK subroutine DGEQPF for the QR factorization -*> with column pivoting to detect the effective numerical rank of the -*> a matrix. It may be replaced by a better rank determination strategy. -*> -* ===================================================================== - SUBROUTINE DGGSVP( JOBU, JOBV, JOBQ, M, P, N, A, LDA, B, LDB, - $ TOLA, TOLB, K, L, U, LDU, V, LDV, Q, LDQ, - $ IWORK, TAU, WORK, INFO ) -* -* -- LAPACK computational routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER JOBQ, JOBU, JOBV - INTEGER INFO, K, L, LDA, LDB, LDQ, LDU, LDV, M, N, P - DOUBLE PRECISION TOLA, TOLB -* .. -* .. Array Arguments .. - INTEGER IWORK( * ) - DOUBLE PRECISION A( LDA, * ), B( LDB, * ), Q( LDQ, * ), - $ TAU( * ), U( LDU, * ), V( LDV, * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - DOUBLE PRECISION ZERO, ONE - PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 ) -* .. -* .. Local Scalars .. - LOGICAL FORWRD, WANTQ, WANTU, WANTV - INTEGER I, J -* .. -* .. External Functions .. - LOGICAL LSAME - EXTERNAL LSAME -* .. -* .. External Subroutines .. - EXTERNAL DGEQPF, DGEQR2, DGERQ2, DLACPY, DLAPMT, DLASET, - $ DORG2R, DORM2R, DORMR2, XERBLA -* .. -* .. Intrinsic Functions .. - INTRINSIC ABS, MAX, MIN -* .. -* .. Executable Statements .. -* -* Test the input parameters -* - WANTU = LSAME( JOBU, 'U' ) - WANTV = LSAME( JOBV, 'V' ) - WANTQ = LSAME( JOBQ, 'Q' ) - FORWRD = .TRUE. -* - INFO = 0 - IF( .NOT.( WANTU .OR. LSAME( JOBU, 'N' ) ) ) THEN - INFO = -1 - ELSE IF( .NOT.( WANTV .OR. LSAME( JOBV, 'N' ) ) ) THEN - INFO = -2 - ELSE IF( .NOT.( WANTQ .OR. LSAME( JOBQ, 'N' ) ) ) THEN - INFO = -3 - ELSE IF( M.LT.0 ) THEN - INFO = -4 - ELSE IF( P.LT.0 ) THEN - INFO = -5 - ELSE IF( N.LT.0 ) THEN - INFO = -6 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -8 - ELSE IF( LDB.LT.MAX( 1, P ) ) THEN - INFO = -10 - ELSE IF( LDU.LT.1 .OR. ( WANTU .AND. LDU.LT.M ) ) THEN - INFO = -16 - ELSE IF( LDV.LT.1 .OR. ( WANTV .AND. LDV.LT.P ) ) THEN - INFO = -18 - ELSE IF( LDQ.LT.1 .OR. ( WANTQ .AND. LDQ.LT.N ) ) THEN - INFO = -20 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'DGGSVP', -INFO ) - RETURN - END IF -* -* QR with column pivoting of B: B*P = V*( S11 S12 ) -* ( 0 0 ) -* - DO 10 I = 1, N - IWORK( I ) = 0 - 10 CONTINUE - CALL DGEQPF( P, N, B, LDB, IWORK, TAU, WORK, INFO ) -* -* Update A := A*P -* - CALL DLAPMT( FORWRD, M, N, A, LDA, IWORK ) -* -* Determine the effective rank of matrix B. -* - L = 0 - DO 20 I = 1, MIN( P, N ) - IF( ABS( B( I, I ) ).GT.TOLB ) - $ L = L + 1 - 20 CONTINUE -* - IF( WANTV ) THEN -* -* Copy the details of V, and form V. -* - CALL DLASET( 'Full', P, P, ZERO, ZERO, V, LDV ) - IF( P.GT.1 ) - $ CALL DLACPY( 'Lower', P-1, N, B( 2, 1 ), LDB, V( 2, 1 ), - $ LDV ) - CALL DORG2R( P, P, MIN( P, N ), V, LDV, TAU, WORK, INFO ) - END IF -* -* Clean up B -* - DO 40 J = 1, L - 1 - DO 30 I = J + 1, L - B( I, J ) = ZERO - 30 CONTINUE - 40 CONTINUE - IF( P.GT.L ) - $ CALL DLASET( 'Full', P-L, N, ZERO, ZERO, B( L+1, 1 ), LDB ) -* - IF( WANTQ ) THEN -* -* Set Q = I and Update Q := Q*P -* - CALL DLASET( 'Full', N, N, ZERO, ONE, Q, LDQ ) - CALL DLAPMT( FORWRD, N, N, Q, LDQ, IWORK ) - END IF -* - IF( P.GE.L .AND. N.NE.L ) THEN -* -* RQ factorization of (S11 S12): ( S11 S12 ) = ( 0 S12 )*Z -* - CALL DGERQ2( L, N, B, LDB, TAU, WORK, INFO ) -* -* Update A := A*Z**T -* - CALL DORMR2( 'Right', 'Transpose', M, N, L, B, LDB, TAU, A, - $ LDA, WORK, INFO ) -* - IF( WANTQ ) THEN -* -* Update Q := Q*Z**T -* - CALL DORMR2( 'Right', 'Transpose', N, N, L, B, LDB, TAU, Q, - $ LDQ, WORK, INFO ) - END IF -* -* Clean up B -* - CALL DLASET( 'Full', L, N-L, ZERO, ZERO, B, LDB ) - DO 60 J = N - L + 1, N - DO 50 I = J - N + L + 1, L - B( I, J ) = ZERO - 50 CONTINUE - 60 CONTINUE -* - END IF -* -* Let N-L L -* A = ( A11 A12 ) M, -* -* then the following does the complete QR decomposition of A11: -* -* A11 = U*( 0 T12 )*P1**T -* ( 0 0 ) -* - DO 70 I = 1, N - L - IWORK( I ) = 0 - 70 CONTINUE - CALL DGEQPF( M, N-L, A, LDA, IWORK, TAU, WORK, INFO ) -* -* Determine the effective rank of A11 -* - K = 0 - DO 80 I = 1, MIN( M, N-L ) - IF( ABS( A( I, I ) ).GT.TOLA ) - $ K = K + 1 - 80 CONTINUE -* -* Update A12 := U**T*A12, where A12 = A( 1:M, N-L+1:N ) -* - CALL DORM2R( 'Left', 'Transpose', M, L, MIN( M, N-L ), A, LDA, - $ TAU, A( 1, N-L+1 ), LDA, WORK, INFO ) -* - IF( WANTU ) THEN -* -* Copy the details of U, and form U -* - CALL DLASET( 'Full', M, M, ZERO, ZERO, U, LDU ) - IF( M.GT.1 ) - $ CALL DLACPY( 'Lower', M-1, N-L, A( 2, 1 ), LDA, U( 2, 1 ), - $ LDU ) - CALL DORG2R( M, M, MIN( M, N-L ), U, LDU, TAU, WORK, INFO ) - END IF -* - IF( WANTQ ) THEN -* -* Update Q( 1:N, 1:N-L ) = Q( 1:N, 1:N-L )*P1 -* - CALL DLAPMT( FORWRD, N, N-L, Q, LDQ, IWORK ) - END IF -* -* Clean up A: set the strictly lower triangular part of -* A(1:K, 1:K) = 0, and A( K+1:M, 1:N-L ) = 0. -* - DO 100 J = 1, K - 1 - DO 90 I = J + 1, K - A( I, J ) = ZERO - 90 CONTINUE - 100 CONTINUE - IF( M.GT.K ) - $ CALL DLASET( 'Full', M-K, N-L, ZERO, ZERO, A( K+1, 1 ), LDA ) -* - IF( N-L.GT.K ) THEN -* -* RQ factorization of ( T11 T12 ) = ( 0 T12 )*Z1 -* - CALL DGERQ2( K, N-L, A, LDA, TAU, WORK, INFO ) -* - IF( WANTQ ) THEN -* -* Update Q( 1:N,1:N-L ) = Q( 1:N,1:N-L )*Z1**T -* - CALL DORMR2( 'Right', 'Transpose', N, N-L, K, A, LDA, TAU, - $ Q, LDQ, WORK, INFO ) - END IF -* -* Clean up A -* - CALL DLASET( 'Full', K, N-L-K, ZERO, ZERO, A, LDA ) - DO 120 J = N - L - K + 1, N - L - DO 110 I = J - N + L + K + 1, K - A( I, J ) = ZERO - 110 CONTINUE - 120 CONTINUE -* - END IF -* - IF( M.GT.K ) THEN -* -* QR factorization of A( K+1:M,N-L+1:N ) -* - CALL DGEQR2( M-K, L, A( K+1, N-L+1 ), LDA, TAU, WORK, INFO ) -* - IF( WANTU ) THEN -* -* Update U(:,K+1:M) := U(:,K+1:M)*U1 -* - CALL DORM2R( 'Right', 'No transpose', M, M-K, MIN( M-K, L ), - $ A( K+1, N-L+1 ), LDA, TAU, U( 1, K+1 ), LDU, - $ WORK, INFO ) - END IF -* -* Clean up -* - DO 140 J = N - L + 1, N - DO 130 I = J - N + K + L + 1, M - A( I, J ) = ZERO - 130 CONTINUE - 140 CONTINUE -* - END IF -* - RETURN -* -* End of DGGSVP -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/dlahrd.f b/dspl/liblapack/SRC/DEPRECATED/dlahrd.f deleted file mode 100644 index 9aa04ee..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/dlahrd.f +++ /dev/null @@ -1,286 +0,0 @@ -*> \brief \b DLAHRD reduces the first nb columns of a general rectangular matrix A so that elements below the k-th subdiagonal are zero, and returns auxiliary matrices which are needed to apply the transformation to the unreduced part of A. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download DLAHRD + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE DLAHRD( N, K, NB, A, LDA, TAU, T, LDT, Y, LDY ) -* -* .. Scalar Arguments .. -* INTEGER K, LDA, LDT, LDY, N, NB -* .. -* .. Array Arguments .. -* DOUBLE PRECISION A( LDA, * ), T( LDT, NB ), TAU( NB ), -* $ Y( LDY, NB ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine DLAHR2. -*> -*> DLAHRD reduces the first NB columns of a real general n-by-(n-k+1) -*> matrix A so that elements below the k-th subdiagonal are zero. The -*> reduction is performed by an orthogonal similarity transformation -*> Q**T * A * Q. The routine returns the matrices V and T which determine -*> Q as a block reflector I - V*T*V**T, and also the matrix Y = A * V * T. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The order of the matrix A. -*> \endverbatim -*> -*> \param[in] K -*> \verbatim -*> K is INTEGER -*> The offset for the reduction. Elements below the k-th -*> subdiagonal in the first NB columns are reduced to zero. -*> \endverbatim -*> -*> \param[in] NB -*> \verbatim -*> NB is INTEGER -*> The number of columns to be reduced. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is DOUBLE PRECISION array, dimension (LDA,N-K+1) -*> On entry, the n-by-(n-k+1) general matrix A. -*> On exit, the elements on and above the k-th subdiagonal in -*> the first NB columns are overwritten with the corresponding -*> elements of the reduced matrix; the elements below the k-th -*> subdiagonal, with the array TAU, represent the matrix Q as a -*> product of elementary reflectors. The other columns of A are -*> unchanged. See Further Details. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of the array A. LDA >= max(1,N). -*> \endverbatim -*> -*> \param[out] TAU -*> \verbatim -*> TAU is DOUBLE PRECISION array, dimension (NB) -*> The scalar factors of the elementary reflectors. See Further -*> Details. -*> \endverbatim -*> -*> \param[out] T -*> \verbatim -*> T is DOUBLE PRECISION array, dimension (LDT,NB) -*> The upper triangular matrix T. -*> \endverbatim -*> -*> \param[in] LDT -*> \verbatim -*> LDT is INTEGER -*> The leading dimension of the array T. LDT >= NB. -*> \endverbatim -*> -*> \param[out] Y -*> \verbatim -*> Y is DOUBLE PRECISION array, dimension (LDY,NB) -*> The n-by-nb matrix Y. -*> \endverbatim -*> -*> \param[in] LDY -*> \verbatim -*> LDY is INTEGER -*> The leading dimension of the array Y. LDY >= N. -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup doubleOTHERauxiliary -* -*> \par Further Details: -* ===================== -*> -*> \verbatim -*> -*> The matrix Q is represented as a product of nb elementary reflectors -*> -*> Q = H(1) H(2) . . . H(nb). -*> -*> Each H(i) has the form -*> -*> H(i) = I - tau * v * v**T -*> -*> where tau is a real scalar, and v is a real vector with -*> v(1:i+k-1) = 0, v(i+k) = 1; v(i+k+1:n) is stored on exit in -*> A(i+k+1:n,i), and tau in TAU(i). -*> -*> The elements of the vectors v together form the (n-k+1)-by-nb matrix -*> V which is needed, with T and Y, to apply the transformation to the -*> unreduced part of the matrix, using an update of the form: -*> A := (I - V*T*V**T) * (A - Y*V**T). -*> -*> The contents of A on exit are illustrated by the following example -*> with n = 7, k = 3 and nb = 2: -*> -*> ( a h a a a ) -*> ( a h a a a ) -*> ( a h a a a ) -*> ( h h a a a ) -*> ( v1 h a a a ) -*> ( v1 v2 a a a ) -*> ( v1 v2 a a a ) -*> -*> where a denotes an element of the original matrix A, h denotes a -*> modified element of the upper Hessenberg matrix H, and vi denotes an -*> element of the vector defining H(i). -*> \endverbatim -*> -* ===================================================================== - SUBROUTINE DLAHRD( N, K, NB, A, LDA, TAU, T, LDT, Y, LDY ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER K, LDA, LDT, LDY, N, NB -* .. -* .. Array Arguments .. - DOUBLE PRECISION A( LDA, * ), T( LDT, NB ), TAU( NB ), - $ Y( LDY, NB ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - DOUBLE PRECISION ZERO, ONE - PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 ) -* .. -* .. Local Scalars .. - INTEGER I - DOUBLE PRECISION EI -* .. -* .. External Subroutines .. - EXTERNAL DAXPY, DCOPY, DGEMV, DLARFG, DSCAL, DTRMV -* .. -* .. Intrinsic Functions .. - INTRINSIC MIN -* .. -* .. Executable Statements .. -* -* Quick return if possible -* - IF( N.LE.1 ) - $ RETURN -* - DO 10 I = 1, NB - IF( I.GT.1 ) THEN -* -* Update A(1:n,i) -* -* Compute i-th column of A - Y * V**T -* - CALL DGEMV( 'No transpose', N, I-1, -ONE, Y, LDY, - $ A( K+I-1, 1 ), LDA, ONE, A( 1, I ), 1 ) -* -* Apply I - V * T**T * V**T to this column (call it b) from the -* left, using the last column of T as workspace -* -* Let V = ( V1 ) and b = ( b1 ) (first I-1 rows) -* ( V2 ) ( b2 ) -* -* where V1 is unit lower triangular -* -* w := V1**T * b1 -* - CALL DCOPY( I-1, A( K+1, I ), 1, T( 1, NB ), 1 ) - CALL DTRMV( 'Lower', 'Transpose', 'Unit', I-1, A( K+1, 1 ), - $ LDA, T( 1, NB ), 1 ) -* -* w := w + V2**T *b2 -* - CALL DGEMV( 'Transpose', N-K-I+1, I-1, ONE, A( K+I, 1 ), - $ LDA, A( K+I, I ), 1, ONE, T( 1, NB ), 1 ) -* -* w := T**T *w -* - CALL DTRMV( 'Upper', 'Transpose', 'Non-unit', I-1, T, LDT, - $ T( 1, NB ), 1 ) -* -* b2 := b2 - V2*w -* - CALL DGEMV( 'No transpose', N-K-I+1, I-1, -ONE, A( K+I, 1 ), - $ LDA, T( 1, NB ), 1, ONE, A( K+I, I ), 1 ) -* -* b1 := b1 - V1*w -* - CALL DTRMV( 'Lower', 'No transpose', 'Unit', I-1, - $ A( K+1, 1 ), LDA, T( 1, NB ), 1 ) - CALL DAXPY( I-1, -ONE, T( 1, NB ), 1, A( K+1, I ), 1 ) -* - A( K+I-1, I-1 ) = EI - END IF -* -* Generate the elementary reflector H(i) to annihilate -* A(k+i+1:n,i) -* - CALL DLARFG( N-K-I+1, A( K+I, I ), A( MIN( K+I+1, N ), I ), 1, - $ TAU( I ) ) - EI = A( K+I, I ) - A( K+I, I ) = ONE -* -* Compute Y(1:n,i) -* - CALL DGEMV( 'No transpose', N, N-K-I+1, ONE, A( 1, I+1 ), LDA, - $ A( K+I, I ), 1, ZERO, Y( 1, I ), 1 ) - CALL DGEMV( 'Transpose', N-K-I+1, I-1, ONE, A( K+I, 1 ), LDA, - $ A( K+I, I ), 1, ZERO, T( 1, I ), 1 ) - CALL DGEMV( 'No transpose', N, I-1, -ONE, Y, LDY, T( 1, I ), 1, - $ ONE, Y( 1, I ), 1 ) - CALL DSCAL( N, TAU( I ), Y( 1, I ), 1 ) -* -* Compute T(1:i,i) -* - CALL DSCAL( I-1, -TAU( I ), T( 1, I ), 1 ) - CALL DTRMV( 'Upper', 'No transpose', 'Non-unit', I-1, T, LDT, - $ T( 1, I ), 1 ) - T( I, I ) = TAU( I ) -* - 10 CONTINUE - A( K+NB, NB ) = EI -* - RETURN -* -* End of DLAHRD -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/dlatzm.f b/dspl/liblapack/SRC/DEPRECATED/dlatzm.f deleted file mode 100644 index 73434a2..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/dlatzm.f +++ /dev/null @@ -1,221 +0,0 @@ -*> \brief \b DLATZM -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download DLATZM + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE DLATZM( SIDE, M, N, V, INCV, TAU, C1, C2, LDC, WORK ) -* -* .. Scalar Arguments .. -* CHARACTER SIDE -* INTEGER INCV, LDC, M, N -* DOUBLE PRECISION TAU -* .. -* .. Array Arguments .. -* DOUBLE PRECISION C1( LDC, * ), C2( LDC, * ), V( * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine DORMRZ. -*> -*> DLATZM applies a Householder matrix generated by DTZRQF to a matrix. -*> -*> Let P = I - tau*u*u**T, u = ( 1 ), -*> ( v ) -*> where v is an (m-1) vector if SIDE = 'L', or a (n-1) vector if -*> SIDE = 'R'. -*> -*> If SIDE equals 'L', let -*> C = [ C1 ] 1 -*> [ C2 ] m-1 -*> n -*> Then C is overwritten by P*C. -*> -*> If SIDE equals 'R', let -*> C = [ C1, C2 ] m -*> 1 n-1 -*> Then C is overwritten by C*P. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] SIDE -*> \verbatim -*> SIDE is CHARACTER*1 -*> = 'L': form P * C -*> = 'R': form C * P -*> \endverbatim -*> -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix C. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrix C. -*> \endverbatim -*> -*> \param[in] V -*> \verbatim -*> V is DOUBLE PRECISION array, dimension -*> (1 + (M-1)*abs(INCV)) if SIDE = 'L' -*> (1 + (N-1)*abs(INCV)) if SIDE = 'R' -*> The vector v in the representation of P. V is not used -*> if TAU = 0. -*> \endverbatim -*> -*> \param[in] INCV -*> \verbatim -*> INCV is INTEGER -*> The increment between elements of v. INCV <> 0 -*> \endverbatim -*> -*> \param[in] TAU -*> \verbatim -*> TAU is DOUBLE PRECISION -*> The value tau in the representation of P. -*> \endverbatim -*> -*> \param[in,out] C1 -*> \verbatim -*> C1 is DOUBLE PRECISION array, dimension -*> (LDC,N) if SIDE = 'L' -*> (M,1) if SIDE = 'R' -*> On entry, the n-vector C1 if SIDE = 'L', or the m-vector C1 -*> if SIDE = 'R'. -*> -*> On exit, the first row of P*C if SIDE = 'L', or the first -*> column of C*P if SIDE = 'R'. -*> \endverbatim -*> -*> \param[in,out] C2 -*> \verbatim -*> C2 is DOUBLE PRECISION array, dimension -*> (LDC, N) if SIDE = 'L' -*> (LDC, N-1) if SIDE = 'R' -*> On entry, the (m - 1) x n matrix C2 if SIDE = 'L', or the -*> m x (n - 1) matrix C2 if SIDE = 'R'. -*> -*> On exit, rows 2:m of P*C if SIDE = 'L', or columns 2:m of C*P -*> if SIDE = 'R'. -*> \endverbatim -*> -*> \param[in] LDC -*> \verbatim -*> LDC is INTEGER -*> The leading dimension of the arrays C1 and C2. LDC >= (1,M). -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is DOUBLE PRECISION array, dimension -*> (N) if SIDE = 'L' -*> (M) if SIDE = 'R' -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup doubleOTHERcomputational -* -* ===================================================================== - SUBROUTINE DLATZM( SIDE, M, N, V, INCV, TAU, C1, C2, LDC, WORK ) -* -* -- LAPACK computational routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER SIDE - INTEGER INCV, LDC, M, N - DOUBLE PRECISION TAU -* .. -* .. Array Arguments .. - DOUBLE PRECISION C1( LDC, * ), C2( LDC, * ), V( * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - DOUBLE PRECISION ONE, ZERO - PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) -* .. -* .. External Subroutines .. - EXTERNAL DAXPY, DCOPY, DGEMV, DGER -* .. -* .. External Functions .. - LOGICAL LSAME - EXTERNAL LSAME -* .. -* .. Intrinsic Functions .. - INTRINSIC MIN -* .. -* .. Executable Statements .. -* - IF( ( MIN( M, N ).EQ.0 ) .OR. ( TAU.EQ.ZERO ) ) - $ RETURN -* - IF( LSAME( SIDE, 'L' ) ) THEN -* -* w := (C1 + v**T * C2)**T -* - CALL DCOPY( N, C1, LDC, WORK, 1 ) - CALL DGEMV( 'Transpose', M-1, N, ONE, C2, LDC, V, INCV, ONE, - $ WORK, 1 ) -* -* [ C1 ] := [ C1 ] - tau* [ 1 ] * w**T -* [ C2 ] [ C2 ] [ v ] -* - CALL DAXPY( N, -TAU, WORK, 1, C1, LDC ) - CALL DGER( M-1, N, -TAU, V, INCV, WORK, 1, C2, LDC ) -* - ELSE IF( LSAME( SIDE, 'R' ) ) THEN -* -* w := C1 + C2 * v -* - CALL DCOPY( M, C1, 1, WORK, 1 ) - CALL DGEMV( 'No transpose', M, N-1, ONE, C2, LDC, V, INCV, ONE, - $ WORK, 1 ) -* -* [ C1, C2 ] := [ C1, C2 ] - tau* w * [ 1 , v**T] -* - CALL DAXPY( M, -TAU, WORK, 1, C1, 1 ) - CALL DGER( M, N-1, -TAU, WORK, 1, V, INCV, C2, LDC ) - END IF -* - RETURN -* -* End of DLATZM -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/dtzrqf.f b/dspl/liblapack/SRC/DEPRECATED/dtzrqf.f deleted file mode 100644 index c1cbdc6..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/dtzrqf.f +++ /dev/null @@ -1,232 +0,0 @@ -*> \brief \b DTZRQF -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download DTZRQF + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE DTZRQF( M, N, A, LDA, TAU, INFO ) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. -* DOUBLE PRECISION A( LDA, * ), TAU( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine DTZRZF. -*> -*> DTZRQF reduces the M-by-N ( M<=N ) real upper trapezoidal matrix A -*> to upper triangular form by means of orthogonal transformations. -*> -*> The upper trapezoidal matrix A is factored as -*> -*> A = ( R 0 ) * Z, -*> -*> where Z is an N-by-N orthogonal matrix and R is an M-by-M upper -*> triangular matrix. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix A. M >= 0. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrix A. N >= M. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is DOUBLE PRECISION array, dimension (LDA,N) -*> On entry, the leading M-by-N upper trapezoidal part of the -*> array A must contain the matrix to be factorized. -*> On exit, the leading M-by-M upper triangular part of A -*> contains the upper triangular matrix R, and elements M+1 to -*> N of the first M rows of A, with the array TAU, represent the -*> orthogonal matrix Z as a product of M elementary reflectors. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of the array A. LDA >= max(1,M). -*> \endverbatim -*> -*> \param[out] TAU -*> \verbatim -*> TAU is DOUBLE PRECISION array, dimension (M) -*> The scalar factors of the elementary reflectors. -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup doubleOTHERcomputational -* -*> \par Further Details: -* ===================== -*> -*> \verbatim -*> -*> The factorization is obtained by Householder's method. The kth -*> transformation matrix, Z( k ), which is used to introduce zeros into -*> the ( m - k + 1 )th row of A, is given in the form -*> -*> Z( k ) = ( I 0 ), -*> ( 0 T( k ) ) -*> -*> where -*> -*> T( k ) = I - tau*u( k )*u( k )**T, u( k ) = ( 1 ), -*> ( 0 ) -*> ( z( k ) ) -*> -*> tau is a scalar and z( k ) is an ( n - m ) element vector. -*> tau and z( k ) are chosen to annihilate the elements of the kth row -*> of X. -*> -*> The scalar tau is returned in the kth element of TAU and the vector -*> u( k ) in the kth row of A, such that the elements of z( k ) are -*> in a( k, m + 1 ), ..., a( k, n ). The elements of R are returned in -*> the upper triangular part of A. -*> -*> Z is given by -*> -*> Z = Z( 1 ) * Z( 2 ) * ... * Z( m ). -*> \endverbatim -*> -* ===================================================================== - SUBROUTINE DTZRQF( M, N, A, LDA, TAU, INFO ) -* -* -- LAPACK computational routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. - DOUBLE PRECISION A( LDA, * ), TAU( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - DOUBLE PRECISION ONE, ZERO - PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) -* .. -* .. Local Scalars .. - INTEGER I, K, M1 -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. External Subroutines .. - EXTERNAL DAXPY, DCOPY, DGEMV, DGER, DLARFG, XERBLA -* .. -* .. Executable Statements .. -* -* Test the input parameters. -* - INFO = 0 - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.M ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'DTZRQF', -INFO ) - RETURN - END IF -* -* Perform the factorization. -* - IF( M.EQ.0 ) - $ RETURN - IF( M.EQ.N ) THEN - DO 10 I = 1, N - TAU( I ) = ZERO - 10 CONTINUE - ELSE - M1 = MIN( M+1, N ) - DO 20 K = M, 1, -1 -* -* Use a Householder reflection to zero the kth row of A. -* First set up the reflection. -* - CALL DLARFG( N-M+1, A( K, K ), A( K, M1 ), LDA, TAU( K ) ) -* - IF( ( TAU( K ).NE.ZERO ) .AND. ( K.GT.1 ) ) THEN -* -* We now perform the operation A := A*P( k ). -* -* Use the first ( k - 1 ) elements of TAU to store a( k ), -* where a( k ) consists of the first ( k - 1 ) elements of -* the kth column of A. Also let B denote the first -* ( k - 1 ) rows of the last ( n - m ) columns of A. -* - CALL DCOPY( K-1, A( 1, K ), 1, TAU, 1 ) -* -* Form w = a( k ) + B*z( k ) in TAU. -* - CALL DGEMV( 'No transpose', K-1, N-M, ONE, A( 1, M1 ), - $ LDA, A( K, M1 ), LDA, ONE, TAU, 1 ) -* -* Now form a( k ) := a( k ) - tau*w -* and B := B - tau*w*z( k )**T. -* - CALL DAXPY( K-1, -TAU( K ), TAU, 1, A( 1, K ), 1 ) - CALL DGER( K-1, N-M, -TAU( K ), TAU, 1, A( K, M1 ), LDA, - $ A( 1, M1 ), LDA ) - END IF - 20 CONTINUE - END IF -* - RETURN -* -* End of DTZRQF -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/sgegs.f b/dspl/liblapack/SRC/DEPRECATED/sgegs.f deleted file mode 100644 index bf4fbc7..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/sgegs.f +++ /dev/null @@ -1,541 +0,0 @@ -*> \brief SGEGS computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download SGEGS + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE SGEGS( JOBVSL, JOBVSR, N, A, LDA, B, LDB, ALPHAR, -* ALPHAI, BETA, VSL, LDVSL, VSR, LDVSR, WORK, -* LWORK, INFO ) -* -* .. Scalar Arguments .. -* CHARACTER JOBVSL, JOBVSR -* INTEGER INFO, LDA, LDB, LDVSL, LDVSR, LWORK, N -* .. -* .. Array Arguments .. -* REAL A( LDA, * ), ALPHAI( * ), ALPHAR( * ), -* $ B( LDB, * ), BETA( * ), VSL( LDVSL, * ), -* $ VSR( LDVSR, * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine SGGES. -*> -*> SGEGS computes the eigenvalues, real Schur form, and, optionally, -*> left and or/right Schur vectors of a real matrix pair (A,B). -*> Given two square matrices A and B, the generalized real Schur -*> factorization has the form -*> -*> A = Q*S*Z**T, B = Q*T*Z**T -*> -*> where Q and Z are orthogonal matrices, T is upper triangular, and S -*> is an upper quasi-triangular matrix with 1-by-1 and 2-by-2 diagonal -*> blocks, the 2-by-2 blocks corresponding to complex conjugate pairs -*> of eigenvalues of (A,B). The columns of Q are the left Schur vectors -*> and the columns of Z are the right Schur vectors. -*> -*> If only the eigenvalues of (A,B) are needed, the driver routine -*> SGEGV should be used instead. See SGEGV for a description of the -*> eigenvalues of the generalized nonsymmetric eigenvalue problem -*> (GNEP). -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] JOBVSL -*> \verbatim -*> JOBVSL is CHARACTER*1 -*> = 'N': do not compute the left Schur vectors; -*> = 'V': compute the left Schur vectors (returned in VSL). -*> \endverbatim -*> -*> \param[in] JOBVSR -*> \verbatim -*> JOBVSR is CHARACTER*1 -*> = 'N': do not compute the right Schur vectors; -*> = 'V': compute the right Schur vectors (returned in VSR). -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The order of the matrices A, B, VSL, and VSR. N >= 0. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is REAL array, dimension (LDA, N) -*> On entry, the matrix A. -*> On exit, the upper quasi-triangular matrix S from the -*> generalized real Schur factorization. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of A. LDA >= max(1,N). -*> \endverbatim -*> -*> \param[in,out] B -*> \verbatim -*> B is REAL array, dimension (LDB, N) -*> On entry, the matrix B. -*> On exit, the upper triangular matrix T from the generalized -*> real Schur factorization. -*> \endverbatim -*> -*> \param[in] LDB -*> \verbatim -*> LDB is INTEGER -*> The leading dimension of B. LDB >= max(1,N). -*> \endverbatim -*> -*> \param[out] ALPHAR -*> \verbatim -*> ALPHAR is REAL array, dimension (N) -*> The real parts of each scalar alpha defining an eigenvalue -*> of GNEP. -*> \endverbatim -*> -*> \param[out] ALPHAI -*> \verbatim -*> ALPHAI is REAL array, dimension (N) -*> The imaginary parts of each scalar alpha defining an -*> eigenvalue of GNEP. If ALPHAI(j) is zero, then the j-th -*> eigenvalue is real; if positive, then the j-th and (j+1)-st -*> eigenvalues are a complex conjugate pair, with -*> ALPHAI(j+1) = -ALPHAI(j). -*> \endverbatim -*> -*> \param[out] BETA -*> \verbatim -*> BETA is REAL array, dimension (N) -*> The scalars beta that define the eigenvalues of GNEP. -*> Together, the quantities alpha = (ALPHAR(j),ALPHAI(j)) and -*> beta = BETA(j) represent the j-th eigenvalue of the matrix -*> pair (A,B), in one of the forms lambda = alpha/beta or -*> mu = beta/alpha. Since either lambda or mu may overflow, -*> they should not, in general, be computed. -*> \endverbatim -*> -*> \param[out] VSL -*> \verbatim -*> VSL is REAL array, dimension (LDVSL,N) -*> If JOBVSL = 'V', the matrix of left Schur vectors Q. -*> Not referenced if JOBVSL = 'N'. -*> \endverbatim -*> -*> \param[in] LDVSL -*> \verbatim -*> LDVSL is INTEGER -*> The leading dimension of the matrix VSL. LDVSL >=1, and -*> if JOBVSL = 'V', LDVSL >= N. -*> \endverbatim -*> -*> \param[out] VSR -*> \verbatim -*> VSR is REAL array, dimension (LDVSR,N) -*> If JOBVSR = 'V', the matrix of right Schur vectors Z. -*> Not referenced if JOBVSR = 'N'. -*> \endverbatim -*> -*> \param[in] LDVSR -*> \verbatim -*> LDVSR is INTEGER -*> The leading dimension of the matrix VSR. LDVSR >= 1, and -*> if JOBVSR = 'V', LDVSR >= N. -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is REAL array, dimension (MAX(1,LWORK)) -*> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. -*> \endverbatim -*> -*> \param[in] LWORK -*> \verbatim -*> LWORK is INTEGER -*> The dimension of the array WORK. LWORK >= max(1,4*N). -*> For good performance, LWORK must generally be larger. -*> To compute the optimal value of LWORK, call ILAENV to get -*> blocksizes (for SGEQRF, SORMQR, and SORGQR.) Then compute: -*> NB -- MAX of the blocksizes for SGEQRF, SORMQR, and SORGQR -*> The optimal LWORK is 2*N + N*(NB+1). -*> -*> If LWORK = -1, then a workspace query is assumed; the routine -*> only calculates the optimal size of the WORK array, returns -*> this value as the first entry of the WORK array, and no error -*> message related to LWORK is issued by XERBLA. -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value. -*> = 1,...,N: -*> The QZ iteration failed. (A,B) are not in Schur -*> form, but ALPHAR(j), ALPHAI(j), and BETA(j) should -*> be correct for j=INFO+1,...,N. -*> > N: errors that usually indicate LAPACK problems: -*> =N+1: error return from SGGBAL -*> =N+2: error return from SGEQRF -*> =N+3: error return from SORMQR -*> =N+4: error return from SORGQR -*> =N+5: error return from SGGHRD -*> =N+6: error return from SHGEQZ (other than failed -*> iteration) -*> =N+7: error return from SGGBAK (computing VSL) -*> =N+8: error return from SGGBAK (computing VSR) -*> =N+9: error return from SLASCL (various places) -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup realGEeigen -* -* ===================================================================== - SUBROUTINE SGEGS( JOBVSL, JOBVSR, N, A, LDA, B, LDB, ALPHAR, - $ ALPHAI, BETA, VSL, LDVSL, VSR, LDVSR, WORK, - $ LWORK, INFO ) -* -* -- LAPACK driver routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER JOBVSL, JOBVSR - INTEGER INFO, LDA, LDB, LDVSL, LDVSR, LWORK, N -* .. -* .. Array Arguments .. - REAL A( LDA, * ), ALPHAI( * ), ALPHAR( * ), - $ B( LDB, * ), BETA( * ), VSL( LDVSL, * ), - $ VSR( LDVSR, * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - REAL ZERO, ONE - PARAMETER ( ZERO = 0.0E0, ONE = 1.0E0 ) -* .. -* .. Local Scalars .. - LOGICAL ILASCL, ILBSCL, ILVSL, ILVSR, LQUERY - INTEGER ICOLS, IHI, IINFO, IJOBVL, IJOBVR, ILEFT, - $ ILO, IRIGHT, IROWS, ITAU, IWORK, LOPT, LWKMIN, - $ LWKOPT, NB, NB1, NB2, NB3 - REAL ANRM, ANRMTO, BIGNUM, BNRM, BNRMTO, EPS, - $ SAFMIN, SMLNUM -* .. -* .. External Subroutines .. - EXTERNAL SGEQRF, SGGBAK, SGGBAL, SGGHRD, SHGEQZ, SLACPY, - $ SLASCL, SLASET, SORGQR, SORMQR, XERBLA -* .. -* .. External Functions .. - LOGICAL LSAME - INTEGER ILAENV - REAL SLAMCH, SLANGE - EXTERNAL ILAENV, LSAME, SLAMCH, SLANGE -* .. -* .. Intrinsic Functions .. - INTRINSIC INT, MAX -* .. -* .. Executable Statements .. -* -* Decode the input arguments -* - IF( LSAME( JOBVSL, 'N' ) ) THEN - IJOBVL = 1 - ILVSL = .FALSE. - ELSE IF( LSAME( JOBVSL, 'V' ) ) THEN - IJOBVL = 2 - ILVSL = .TRUE. - ELSE - IJOBVL = -1 - ILVSL = .FALSE. - END IF -* - IF( LSAME( JOBVSR, 'N' ) ) THEN - IJOBVR = 1 - ILVSR = .FALSE. - ELSE IF( LSAME( JOBVSR, 'V' ) ) THEN - IJOBVR = 2 - ILVSR = .TRUE. - ELSE - IJOBVR = -1 - ILVSR = .FALSE. - END IF -* -* Test the input arguments -* - LWKMIN = MAX( 4*N, 1 ) - LWKOPT = LWKMIN - WORK( 1 ) = LWKOPT - LQUERY = ( LWORK.EQ.-1 ) - INFO = 0 - IF( IJOBVL.LE.0 ) THEN - INFO = -1 - ELSE IF( IJOBVR.LE.0 ) THEN - INFO = -2 - ELSE IF( N.LT.0 ) THEN - INFO = -3 - ELSE IF( LDA.LT.MAX( 1, N ) ) THEN - INFO = -5 - ELSE IF( LDB.LT.MAX( 1, N ) ) THEN - INFO = -7 - ELSE IF( LDVSL.LT.1 .OR. ( ILVSL .AND. LDVSL.LT.N ) ) THEN - INFO = -12 - ELSE IF( LDVSR.LT.1 .OR. ( ILVSR .AND. LDVSR.LT.N ) ) THEN - INFO = -14 - ELSE IF( LWORK.LT.LWKMIN .AND. .NOT.LQUERY ) THEN - INFO = -16 - END IF -* - IF( INFO.EQ.0 ) THEN - NB1 = ILAENV( 1, 'SGEQRF', ' ', N, N, -1, -1 ) - NB2 = ILAENV( 1, 'SORMQR', ' ', N, N, N, -1 ) - NB3 = ILAENV( 1, 'SORGQR', ' ', N, N, N, -1 ) - NB = MAX( NB1, NB2, NB3 ) - LOPT = 2*N+N*(NB+1) - WORK( 1 ) = LOPT - END IF -* - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'SGEGS ', -INFO ) - RETURN - ELSE IF( LQUERY ) THEN - RETURN - END IF -* -* Quick return if possible -* - IF( N.EQ.0 ) - $ RETURN -* -* Get machine constants -* - EPS = SLAMCH( 'E' )*SLAMCH( 'B' ) - SAFMIN = SLAMCH( 'S' ) - SMLNUM = N*SAFMIN / EPS - BIGNUM = ONE / SMLNUM -* -* Scale A if max element outside range [SMLNUM,BIGNUM] -* - ANRM = SLANGE( 'M', N, N, A, LDA, WORK ) - ILASCL = .FALSE. - IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN - ANRMTO = SMLNUM - ILASCL = .TRUE. - ELSE IF( ANRM.GT.BIGNUM ) THEN - ANRMTO = BIGNUM - ILASCL = .TRUE. - END IF -* - IF( ILASCL ) THEN - CALL SLASCL( 'G', -1, -1, ANRM, ANRMTO, N, N, A, LDA, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - END IF -* -* Scale B if max element outside range [SMLNUM,BIGNUM] -* - BNRM = SLANGE( 'M', N, N, B, LDB, WORK ) - ILBSCL = .FALSE. - IF( BNRM.GT.ZERO .AND. BNRM.LT.SMLNUM ) THEN - BNRMTO = SMLNUM - ILBSCL = .TRUE. - ELSE IF( BNRM.GT.BIGNUM ) THEN - BNRMTO = BIGNUM - ILBSCL = .TRUE. - END IF -* - IF( ILBSCL ) THEN - CALL SLASCL( 'G', -1, -1, BNRM, BNRMTO, N, N, B, LDB, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - END IF -* -* Permute the matrix to make it more nearly triangular -* Workspace layout: (2*N words -- "work..." not actually used) -* left_permutation, right_permutation, work... -* - ILEFT = 1 - IRIGHT = N + 1 - IWORK = IRIGHT + N - CALL SGGBAL( 'P', N, A, LDA, B, LDB, ILO, IHI, WORK( ILEFT ), - $ WORK( IRIGHT ), WORK( IWORK ), IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 1 - GO TO 10 - END IF -* -* Reduce B to triangular form, and initialize VSL and/or VSR -* Workspace layout: ("work..." must have at least N words) -* left_permutation, right_permutation, tau, work... -* - IROWS = IHI + 1 - ILO - ICOLS = N + 1 - ILO - ITAU = IWORK - IWORK = ITAU + IROWS - CALL SGEQRF( IROWS, ICOLS, B( ILO, ILO ), LDB, WORK( ITAU ), - $ WORK( IWORK ), LWORK+1-IWORK, IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - INFO = N + 2 - GO TO 10 - END IF -* - CALL SORMQR( 'L', 'T', IROWS, ICOLS, IROWS, B( ILO, ILO ), LDB, - $ WORK( ITAU ), A( ILO, ILO ), LDA, WORK( IWORK ), - $ LWORK+1-IWORK, IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - INFO = N + 3 - GO TO 10 - END IF -* - IF( ILVSL ) THEN - CALL SLASET( 'Full', N, N, ZERO, ONE, VSL, LDVSL ) - CALL SLACPY( 'L', IROWS-1, IROWS-1, B( ILO+1, ILO ), LDB, - $ VSL( ILO+1, ILO ), LDVSL ) - CALL SORGQR( IROWS, IROWS, IROWS, VSL( ILO, ILO ), LDVSL, - $ WORK( ITAU ), WORK( IWORK ), LWORK+1-IWORK, - $ IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - INFO = N + 4 - GO TO 10 - END IF - END IF -* - IF( ILVSR ) - $ CALL SLASET( 'Full', N, N, ZERO, ONE, VSR, LDVSR ) -* -* Reduce to generalized Hessenberg form -* - CALL SGGHRD( JOBVSL, JOBVSR, N, ILO, IHI, A, LDA, B, LDB, VSL, - $ LDVSL, VSR, LDVSR, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 5 - GO TO 10 - END IF -* -* Perform QZ algorithm, computing Schur vectors if desired -* Workspace layout: ("work..." must have at least 1 word) -* left_permutation, right_permutation, work... -* - IWORK = ITAU - CALL SHGEQZ( 'S', JOBVSL, JOBVSR, N, ILO, IHI, A, LDA, B, LDB, - $ ALPHAR, ALPHAI, BETA, VSL, LDVSL, VSR, LDVSR, - $ WORK( IWORK ), LWORK+1-IWORK, IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - IF( IINFO.GT.0 .AND. IINFO.LE.N ) THEN - INFO = IINFO - ELSE IF( IINFO.GT.N .AND. IINFO.LE.2*N ) THEN - INFO = IINFO - N - ELSE - INFO = N + 6 - END IF - GO TO 10 - END IF -* -* Apply permutation to VSL and VSR -* - IF( ILVSL ) THEN - CALL SGGBAK( 'P', 'L', N, ILO, IHI, WORK( ILEFT ), - $ WORK( IRIGHT ), N, VSL, LDVSL, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 7 - GO TO 10 - END IF - END IF - IF( ILVSR ) THEN - CALL SGGBAK( 'P', 'R', N, ILO, IHI, WORK( ILEFT ), - $ WORK( IRIGHT ), N, VSR, LDVSR, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 8 - GO TO 10 - END IF - END IF -* -* Undo scaling -* - IF( ILASCL ) THEN - CALL SLASCL( 'H', -1, -1, ANRMTO, ANRM, N, N, A, LDA, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - CALL SLASCL( 'G', -1, -1, ANRMTO, ANRM, N, 1, ALPHAR, N, - $ IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - CALL SLASCL( 'G', -1, -1, ANRMTO, ANRM, N, 1, ALPHAI, N, - $ IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - END IF -* - IF( ILBSCL ) THEN - CALL SLASCL( 'U', -1, -1, BNRMTO, BNRM, N, N, B, LDB, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - CALL SLASCL( 'G', -1, -1, BNRMTO, BNRM, N, 1, BETA, N, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - END IF -* - 10 CONTINUE - WORK( 1 ) = LWKOPT -* - RETURN -* -* End of SGEGS -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/sgegv.f b/dspl/liblapack/SRC/DEPRECATED/sgegv.f deleted file mode 100644 index 9ffda66..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/sgegv.f +++ /dev/null @@ -1,769 +0,0 @@ -*> \brief SGEEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download SGEGV + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE SGEGV( JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHAR, ALPHAI, -* BETA, VL, LDVL, VR, LDVR, WORK, LWORK, INFO ) -* -* .. Scalar Arguments .. -* CHARACTER JOBVL, JOBVR -* INTEGER INFO, LDA, LDB, LDVL, LDVR, LWORK, N -* .. -* .. Array Arguments .. -* REAL A( LDA, * ), ALPHAI( * ), ALPHAR( * ), -* $ B( LDB, * ), BETA( * ), VL( LDVL, * ), -* $ VR( LDVR, * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine SGGEV. -*> -*> SGEGV computes the eigenvalues and, optionally, the left and/or right -*> eigenvectors of a real matrix pair (A,B). -*> Given two square matrices A and B, -*> the generalized nonsymmetric eigenvalue problem (GNEP) is to find the -*> eigenvalues lambda and corresponding (non-zero) eigenvectors x such -*> that -*> -*> A*x = lambda*B*x. -*> -*> An alternate form is to find the eigenvalues mu and corresponding -*> eigenvectors y such that -*> -*> mu*A*y = B*y. -*> -*> These two forms are equivalent with mu = 1/lambda and x = y if -*> neither lambda nor mu is zero. In order to deal with the case that -*> lambda or mu is zero or small, two values alpha and beta are returned -*> for each eigenvalue, such that lambda = alpha/beta and -*> mu = beta/alpha. -*> -*> The vectors x and y in the above equations are right eigenvectors of -*> the matrix pair (A,B). Vectors u and v satisfying -*> -*> u**H*A = lambda*u**H*B or mu*v**H*A = v**H*B -*> -*> are left eigenvectors of (A,B). -*> -*> Note: this routine performs "full balancing" on A and B -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] JOBVL -*> \verbatim -*> JOBVL is CHARACTER*1 -*> = 'N': do not compute the left generalized eigenvectors; -*> = 'V': compute the left generalized eigenvectors (returned -*> in VL). -*> \endverbatim -*> -*> \param[in] JOBVR -*> \verbatim -*> JOBVR is CHARACTER*1 -*> = 'N': do not compute the right generalized eigenvectors; -*> = 'V': compute the right generalized eigenvectors (returned -*> in VR). -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The order of the matrices A, B, VL, and VR. N >= 0. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is REAL array, dimension (LDA, N) -*> On entry, the matrix A. -*> If JOBVL = 'V' or JOBVR = 'V', then on exit A -*> contains the real Schur form of A from the generalized Schur -*> factorization of the pair (A,B) after balancing. -*> If no eigenvectors were computed, then only the diagonal -*> blocks from the Schur form will be correct. See SGGHRD and -*> SHGEQZ for details. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of A. LDA >= max(1,N). -*> \endverbatim -*> -*> \param[in,out] B -*> \verbatim -*> B is REAL array, dimension (LDB, N) -*> On entry, the matrix B. -*> If JOBVL = 'V' or JOBVR = 'V', then on exit B contains the -*> upper triangular matrix obtained from B in the generalized -*> Schur factorization of the pair (A,B) after balancing. -*> If no eigenvectors were computed, then only those elements of -*> B corresponding to the diagonal blocks from the Schur form of -*> A will be correct. See SGGHRD and SHGEQZ for details. -*> \endverbatim -*> -*> \param[in] LDB -*> \verbatim -*> LDB is INTEGER -*> The leading dimension of B. LDB >= max(1,N). -*> \endverbatim -*> -*> \param[out] ALPHAR -*> \verbatim -*> ALPHAR is REAL array, dimension (N) -*> The real parts of each scalar alpha defining an eigenvalue of -*> GNEP. -*> \endverbatim -*> -*> \param[out] ALPHAI -*> \verbatim -*> ALPHAI is REAL array, dimension (N) -*> The imaginary parts of each scalar alpha defining an -*> eigenvalue of GNEP. If ALPHAI(j) is zero, then the j-th -*> eigenvalue is real; if positive, then the j-th and -*> (j+1)-st eigenvalues are a complex conjugate pair, with -*> ALPHAI(j+1) = -ALPHAI(j). -*> \endverbatim -*> -*> \param[out] BETA -*> \verbatim -*> BETA is REAL array, dimension (N) -*> The scalars beta that define the eigenvalues of GNEP. -*> -*> Together, the quantities alpha = (ALPHAR(j),ALPHAI(j)) and -*> beta = BETA(j) represent the j-th eigenvalue of the matrix -*> pair (A,B), in one of the forms lambda = alpha/beta or -*> mu = beta/alpha. Since either lambda or mu may overflow, -*> they should not, in general, be computed. -*> \endverbatim -*> -*> \param[out] VL -*> \verbatim -*> VL is REAL array, dimension (LDVL,N) -*> If JOBVL = 'V', the left eigenvectors u(j) are stored -*> in the columns of VL, in the same order as their eigenvalues. -*> If the j-th eigenvalue is real, then u(j) = VL(:,j). -*> If the j-th and (j+1)-st eigenvalues form a complex conjugate -*> pair, then -*> u(j) = VL(:,j) + i*VL(:,j+1) -*> and -*> u(j+1) = VL(:,j) - i*VL(:,j+1). -*> -*> Each eigenvector is scaled so that its largest component has -*> abs(real part) + abs(imag. part) = 1, except for eigenvectors -*> corresponding to an eigenvalue with alpha = beta = 0, which -*> are set to zero. -*> Not referenced if JOBVL = 'N'. -*> \endverbatim -*> -*> \param[in] LDVL -*> \verbatim -*> LDVL is INTEGER -*> The leading dimension of the matrix VL. LDVL >= 1, and -*> if JOBVL = 'V', LDVL >= N. -*> \endverbatim -*> -*> \param[out] VR -*> \verbatim -*> VR is REAL array, dimension (LDVR,N) -*> If JOBVR = 'V', the right eigenvectors x(j) are stored -*> in the columns of VR, in the same order as their eigenvalues. -*> If the j-th eigenvalue is real, then x(j) = VR(:,j). -*> If the j-th and (j+1)-st eigenvalues form a complex conjugate -*> pair, then -*> x(j) = VR(:,j) + i*VR(:,j+1) -*> and -*> x(j+1) = VR(:,j) - i*VR(:,j+1). -*> -*> Each eigenvector is scaled so that its largest component has -*> abs(real part) + abs(imag. part) = 1, except for eigenvalues -*> corresponding to an eigenvalue with alpha = beta = 0, which -*> are set to zero. -*> Not referenced if JOBVR = 'N'. -*> \endverbatim -*> -*> \param[in] LDVR -*> \verbatim -*> LDVR is INTEGER -*> The leading dimension of the matrix VR. LDVR >= 1, and -*> if JOBVR = 'V', LDVR >= N. -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is REAL array, dimension (MAX(1,LWORK)) -*> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. -*> \endverbatim -*> -*> \param[in] LWORK -*> \verbatim -*> LWORK is INTEGER -*> The dimension of the array WORK. LWORK >= max(1,8*N). -*> For good performance, LWORK must generally be larger. -*> To compute the optimal value of LWORK, call ILAENV to get -*> blocksizes (for SGEQRF, SORMQR, and SORGQR.) Then compute: -*> NB -- MAX of the blocksizes for SGEQRF, SORMQR, and SORGQR; -*> The optimal LWORK is: -*> 2*N + MAX( 6*N, N*(NB+1) ). -*> -*> If LWORK = -1, then a workspace query is assumed; the routine -*> only calculates the optimal size of the WORK array, returns -*> this value as the first entry of the WORK array, and no error -*> message related to LWORK is issued by XERBLA. -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value. -*> = 1,...,N: -*> The QZ iteration failed. No eigenvectors have been -*> calculated, but ALPHAR(j), ALPHAI(j), and BETA(j) -*> should be correct for j=INFO+1,...,N. -*> > N: errors that usually indicate LAPACK problems: -*> =N+1: error return from SGGBAL -*> =N+2: error return from SGEQRF -*> =N+3: error return from SORMQR -*> =N+4: error return from SORGQR -*> =N+5: error return from SGGHRD -*> =N+6: error return from SHGEQZ (other than failed -*> iteration) -*> =N+7: error return from STGEVC -*> =N+8: error return from SGGBAK (computing VL) -*> =N+9: error return from SGGBAK (computing VR) -*> =N+10: error return from SLASCL (various calls) -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup realGEeigen -* -*> \par Further Details: -* ===================== -*> -*> \verbatim -*> -*> Balancing -*> --------- -*> -*> This driver calls SGGBAL to both permute and scale rows and columns -*> of A and B. The permutations PL and PR are chosen so that PL*A*PR -*> and PL*B*R will be upper triangular except for the diagonal blocks -*> A(i:j,i:j) and B(i:j,i:j), with i and j as close together as -*> possible. The diagonal scaling matrices DL and DR are chosen so -*> that the pair DL*PL*A*PR*DR, DL*PL*B*PR*DR have elements close to -*> one (except for the elements that start out zero.) -*> -*> After the eigenvalues and eigenvectors of the balanced matrices -*> have been computed, SGGBAK transforms the eigenvectors back to what -*> they would have been (in perfect arithmetic) if they had not been -*> balanced. -*> -*> Contents of A and B on Exit -*> -------- -- - --- - -- ---- -*> -*> If any eigenvectors are computed (either JOBVL='V' or JOBVR='V' or -*> both), then on exit the arrays A and B will contain the real Schur -*> form[*] of the "balanced" versions of A and B. If no eigenvectors -*> are computed, then only the diagonal blocks will be correct. -*> -*> [*] See SHGEQZ, SGEGS, or read the book "Matrix Computations", -*> by Golub & van Loan, pub. by Johns Hopkins U. Press. -*> \endverbatim -*> -* ===================================================================== - SUBROUTINE SGEGV( JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHAR, ALPHAI, - $ BETA, VL, LDVL, VR, LDVR, WORK, LWORK, INFO ) -* -* -- LAPACK driver routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER JOBVL, JOBVR - INTEGER INFO, LDA, LDB, LDVL, LDVR, LWORK, N -* .. -* .. Array Arguments .. - REAL A( LDA, * ), ALPHAI( * ), ALPHAR( * ), - $ B( LDB, * ), BETA( * ), VL( LDVL, * ), - $ VR( LDVR, * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - REAL ZERO, ONE - PARAMETER ( ZERO = 0.0E0, ONE = 1.0E0 ) -* .. -* .. Local Scalars .. - LOGICAL ILIMIT, ILV, ILVL, ILVR, LQUERY - CHARACTER CHTEMP - INTEGER ICOLS, IHI, IINFO, IJOBVL, IJOBVR, ILEFT, ILO, - $ IN, IRIGHT, IROWS, ITAU, IWORK, JC, JR, LOPT, - $ LWKMIN, LWKOPT, NB, NB1, NB2, NB3 - REAL ABSAI, ABSAR, ABSB, ANRM, ANRM1, ANRM2, BNRM, - $ BNRM1, BNRM2, EPS, ONEPLS, SAFMAX, SAFMIN, - $ SALFAI, SALFAR, SBETA, SCALE, TEMP -* .. -* .. Local Arrays .. - LOGICAL LDUMMA( 1 ) -* .. -* .. External Subroutines .. - EXTERNAL SGEQRF, SGGBAK, SGGBAL, SGGHRD, SHGEQZ, SLACPY, - $ SLASCL, SLASET, SORGQR, SORMQR, STGEVC, XERBLA -* .. -* .. External Functions .. - LOGICAL LSAME - INTEGER ILAENV - REAL SLAMCH, SLANGE - EXTERNAL ILAENV, LSAME, SLAMCH, SLANGE -* .. -* .. Intrinsic Functions .. - INTRINSIC ABS, INT, MAX -* .. -* .. Executable Statements .. -* -* Decode the input arguments -* - IF( LSAME( JOBVL, 'N' ) ) THEN - IJOBVL = 1 - ILVL = .FALSE. - ELSE IF( LSAME( JOBVL, 'V' ) ) THEN - IJOBVL = 2 - ILVL = .TRUE. - ELSE - IJOBVL = -1 - ILVL = .FALSE. - END IF -* - IF( LSAME( JOBVR, 'N' ) ) THEN - IJOBVR = 1 - ILVR = .FALSE. - ELSE IF( LSAME( JOBVR, 'V' ) ) THEN - IJOBVR = 2 - ILVR = .TRUE. - ELSE - IJOBVR = -1 - ILVR = .FALSE. - END IF - ILV = ILVL .OR. ILVR -* -* Test the input arguments -* - LWKMIN = MAX( 8*N, 1 ) - LWKOPT = LWKMIN - WORK( 1 ) = LWKOPT - LQUERY = ( LWORK.EQ.-1 ) - INFO = 0 - IF( IJOBVL.LE.0 ) THEN - INFO = -1 - ELSE IF( IJOBVR.LE.0 ) THEN - INFO = -2 - ELSE IF( N.LT.0 ) THEN - INFO = -3 - ELSE IF( LDA.LT.MAX( 1, N ) ) THEN - INFO = -5 - ELSE IF( LDB.LT.MAX( 1, N ) ) THEN - INFO = -7 - ELSE IF( LDVL.LT.1 .OR. ( ILVL .AND. LDVL.LT.N ) ) THEN - INFO = -12 - ELSE IF( LDVR.LT.1 .OR. ( ILVR .AND. LDVR.LT.N ) ) THEN - INFO = -14 - ELSE IF( LWORK.LT.LWKMIN .AND. .NOT.LQUERY ) THEN - INFO = -16 - END IF -* - IF( INFO.EQ.0 ) THEN - NB1 = ILAENV( 1, 'SGEQRF', ' ', N, N, -1, -1 ) - NB2 = ILAENV( 1, 'SORMQR', ' ', N, N, N, -1 ) - NB3 = ILAENV( 1, 'SORGQR', ' ', N, N, N, -1 ) - NB = MAX( NB1, NB2, NB3 ) - LOPT = 2*N + MAX( 6*N, N*(NB+1) ) - WORK( 1 ) = LOPT - END IF -* - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'SGEGV ', -INFO ) - RETURN - ELSE IF( LQUERY ) THEN - RETURN - END IF -* -* Quick return if possible -* - IF( N.EQ.0 ) - $ RETURN -* -* Get machine constants -* - EPS = SLAMCH( 'E' )*SLAMCH( 'B' ) - SAFMIN = SLAMCH( 'S' ) - SAFMIN = SAFMIN + SAFMIN - SAFMAX = ONE / SAFMIN - ONEPLS = ONE + ( 4*EPS ) -* -* Scale A -* - ANRM = SLANGE( 'M', N, N, A, LDA, WORK ) - ANRM1 = ANRM - ANRM2 = ONE - IF( ANRM.LT.ONE ) THEN - IF( SAFMAX*ANRM.LT.ONE ) THEN - ANRM1 = SAFMIN - ANRM2 = SAFMAX*ANRM - END IF - END IF -* - IF( ANRM.GT.ZERO ) THEN - CALL SLASCL( 'G', -1, -1, ANRM, ONE, N, N, A, LDA, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 10 - RETURN - END IF - END IF -* -* Scale B -* - BNRM = SLANGE( 'M', N, N, B, LDB, WORK ) - BNRM1 = BNRM - BNRM2 = ONE - IF( BNRM.LT.ONE ) THEN - IF( SAFMAX*BNRM.LT.ONE ) THEN - BNRM1 = SAFMIN - BNRM2 = SAFMAX*BNRM - END IF - END IF -* - IF( BNRM.GT.ZERO ) THEN - CALL SLASCL( 'G', -1, -1, BNRM, ONE, N, N, B, LDB, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 10 - RETURN - END IF - END IF -* -* Permute the matrix to make it more nearly triangular -* Workspace layout: (8*N words -- "work" requires 6*N words) -* left_permutation, right_permutation, work... -* - ILEFT = 1 - IRIGHT = N + 1 - IWORK = IRIGHT + N - CALL SGGBAL( 'P', N, A, LDA, B, LDB, ILO, IHI, WORK( ILEFT ), - $ WORK( IRIGHT ), WORK( IWORK ), IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 1 - GO TO 120 - END IF -* -* Reduce B to triangular form, and initialize VL and/or VR -* Workspace layout: ("work..." must have at least N words) -* left_permutation, right_permutation, tau, work... -* - IROWS = IHI + 1 - ILO - IF( ILV ) THEN - ICOLS = N + 1 - ILO - ELSE - ICOLS = IROWS - END IF - ITAU = IWORK - IWORK = ITAU + IROWS - CALL SGEQRF( IROWS, ICOLS, B( ILO, ILO ), LDB, WORK( ITAU ), - $ WORK( IWORK ), LWORK+1-IWORK, IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - INFO = N + 2 - GO TO 120 - END IF -* - CALL SORMQR( 'L', 'T', IROWS, ICOLS, IROWS, B( ILO, ILO ), LDB, - $ WORK( ITAU ), A( ILO, ILO ), LDA, WORK( IWORK ), - $ LWORK+1-IWORK, IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - INFO = N + 3 - GO TO 120 - END IF -* - IF( ILVL ) THEN - CALL SLASET( 'Full', N, N, ZERO, ONE, VL, LDVL ) - CALL SLACPY( 'L', IROWS-1, IROWS-1, B( ILO+1, ILO ), LDB, - $ VL( ILO+1, ILO ), LDVL ) - CALL SORGQR( IROWS, IROWS, IROWS, VL( ILO, ILO ), LDVL, - $ WORK( ITAU ), WORK( IWORK ), LWORK+1-IWORK, - $ IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - INFO = N + 4 - GO TO 120 - END IF - END IF -* - IF( ILVR ) - $ CALL SLASET( 'Full', N, N, ZERO, ONE, VR, LDVR ) -* -* Reduce to generalized Hessenberg form -* - IF( ILV ) THEN -* -* Eigenvectors requested -- work on whole matrix. -* - CALL SGGHRD( JOBVL, JOBVR, N, ILO, IHI, A, LDA, B, LDB, VL, - $ LDVL, VR, LDVR, IINFO ) - ELSE - CALL SGGHRD( 'N', 'N', IROWS, 1, IROWS, A( ILO, ILO ), LDA, - $ B( ILO, ILO ), LDB, VL, LDVL, VR, LDVR, IINFO ) - END IF - IF( IINFO.NE.0 ) THEN - INFO = N + 5 - GO TO 120 - END IF -* -* Perform QZ algorithm -* Workspace layout: ("work..." must have at least 1 word) -* left_permutation, right_permutation, work... -* - IWORK = ITAU - IF( ILV ) THEN - CHTEMP = 'S' - ELSE - CHTEMP = 'E' - END IF - CALL SHGEQZ( CHTEMP, JOBVL, JOBVR, N, ILO, IHI, A, LDA, B, LDB, - $ ALPHAR, ALPHAI, BETA, VL, LDVL, VR, LDVR, - $ WORK( IWORK ), LWORK+1-IWORK, IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - IF( IINFO.GT.0 .AND. IINFO.LE.N ) THEN - INFO = IINFO - ELSE IF( IINFO.GT.N .AND. IINFO.LE.2*N ) THEN - INFO = IINFO - N - ELSE - INFO = N + 6 - END IF - GO TO 120 - END IF -* - IF( ILV ) THEN -* -* Compute Eigenvectors (STGEVC requires 6*N words of workspace) -* - IF( ILVL ) THEN - IF( ILVR ) THEN - CHTEMP = 'B' - ELSE - CHTEMP = 'L' - END IF - ELSE - CHTEMP = 'R' - END IF -* - CALL STGEVC( CHTEMP, 'B', LDUMMA, N, A, LDA, B, LDB, VL, LDVL, - $ VR, LDVR, N, IN, WORK( IWORK ), IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 7 - GO TO 120 - END IF -* -* Undo balancing on VL and VR, rescale -* - IF( ILVL ) THEN - CALL SGGBAK( 'P', 'L', N, ILO, IHI, WORK( ILEFT ), - $ WORK( IRIGHT ), N, VL, LDVL, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 8 - GO TO 120 - END IF - DO 50 JC = 1, N - IF( ALPHAI( JC ).LT.ZERO ) - $ GO TO 50 - TEMP = ZERO - IF( ALPHAI( JC ).EQ.ZERO ) THEN - DO 10 JR = 1, N - TEMP = MAX( TEMP, ABS( VL( JR, JC ) ) ) - 10 CONTINUE - ELSE - DO 20 JR = 1, N - TEMP = MAX( TEMP, ABS( VL( JR, JC ) )+ - $ ABS( VL( JR, JC+1 ) ) ) - 20 CONTINUE - END IF - IF( TEMP.LT.SAFMIN ) - $ GO TO 50 - TEMP = ONE / TEMP - IF( ALPHAI( JC ).EQ.ZERO ) THEN - DO 30 JR = 1, N - VL( JR, JC ) = VL( JR, JC )*TEMP - 30 CONTINUE - ELSE - DO 40 JR = 1, N - VL( JR, JC ) = VL( JR, JC )*TEMP - VL( JR, JC+1 ) = VL( JR, JC+1 )*TEMP - 40 CONTINUE - END IF - 50 CONTINUE - END IF - IF( ILVR ) THEN - CALL SGGBAK( 'P', 'R', N, ILO, IHI, WORK( ILEFT ), - $ WORK( IRIGHT ), N, VR, LDVR, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - GO TO 120 - END IF - DO 100 JC = 1, N - IF( ALPHAI( JC ).LT.ZERO ) - $ GO TO 100 - TEMP = ZERO - IF( ALPHAI( JC ).EQ.ZERO ) THEN - DO 60 JR = 1, N - TEMP = MAX( TEMP, ABS( VR( JR, JC ) ) ) - 60 CONTINUE - ELSE - DO 70 JR = 1, N - TEMP = MAX( TEMP, ABS( VR( JR, JC ) )+ - $ ABS( VR( JR, JC+1 ) ) ) - 70 CONTINUE - END IF - IF( TEMP.LT.SAFMIN ) - $ GO TO 100 - TEMP = ONE / TEMP - IF( ALPHAI( JC ).EQ.ZERO ) THEN - DO 80 JR = 1, N - VR( JR, JC ) = VR( JR, JC )*TEMP - 80 CONTINUE - ELSE - DO 90 JR = 1, N - VR( JR, JC ) = VR( JR, JC )*TEMP - VR( JR, JC+1 ) = VR( JR, JC+1 )*TEMP - 90 CONTINUE - END IF - 100 CONTINUE - END IF -* -* End of eigenvector calculation -* - END IF -* -* Undo scaling in alpha, beta -* -* Note: this does not give the alpha and beta for the unscaled -* problem. -* -* Un-scaling is limited to avoid underflow in alpha and beta -* if they are significant. -* - DO 110 JC = 1, N - ABSAR = ABS( ALPHAR( JC ) ) - ABSAI = ABS( ALPHAI( JC ) ) - ABSB = ABS( BETA( JC ) ) - SALFAR = ANRM*ALPHAR( JC ) - SALFAI = ANRM*ALPHAI( JC ) - SBETA = BNRM*BETA( JC ) - ILIMIT = .FALSE. - SCALE = ONE -* -* Check for significant underflow in ALPHAI -* - IF( ABS( SALFAI ).LT.SAFMIN .AND. ABSAI.GE. - $ MAX( SAFMIN, EPS*ABSAR, EPS*ABSB ) ) THEN - ILIMIT = .TRUE. - SCALE = ( ONEPLS*SAFMIN / ANRM1 ) / - $ MAX( ONEPLS*SAFMIN, ANRM2*ABSAI ) -* - ELSE IF( SALFAI.EQ.ZERO ) THEN -* -* If insignificant underflow in ALPHAI, then make the -* conjugate eigenvalue real. -* - IF( ALPHAI( JC ).LT.ZERO .AND. JC.GT.1 ) THEN - ALPHAI( JC-1 ) = ZERO - ELSE IF( ALPHAI( JC ).GT.ZERO .AND. JC.LT.N ) THEN - ALPHAI( JC+1 ) = ZERO - END IF - END IF -* -* Check for significant underflow in ALPHAR -* - IF( ABS( SALFAR ).LT.SAFMIN .AND. ABSAR.GE. - $ MAX( SAFMIN, EPS*ABSAI, EPS*ABSB ) ) THEN - ILIMIT = .TRUE. - SCALE = MAX( SCALE, ( ONEPLS*SAFMIN / ANRM1 ) / - $ MAX( ONEPLS*SAFMIN, ANRM2*ABSAR ) ) - END IF -* -* Check for significant underflow in BETA -* - IF( ABS( SBETA ).LT.SAFMIN .AND. ABSB.GE. - $ MAX( SAFMIN, EPS*ABSAR, EPS*ABSAI ) ) THEN - ILIMIT = .TRUE. - SCALE = MAX( SCALE, ( ONEPLS*SAFMIN / BNRM1 ) / - $ MAX( ONEPLS*SAFMIN, BNRM2*ABSB ) ) - END IF -* -* Check for possible overflow when limiting scaling -* - IF( ILIMIT ) THEN - TEMP = ( SCALE*SAFMIN )*MAX( ABS( SALFAR ), ABS( SALFAI ), - $ ABS( SBETA ) ) - IF( TEMP.GT.ONE ) - $ SCALE = SCALE / TEMP - IF( SCALE.LT.ONE ) - $ ILIMIT = .FALSE. - END IF -* -* Recompute un-scaled ALPHAR, ALPHAI, BETA if necessary. -* - IF( ILIMIT ) THEN - SALFAR = ( SCALE*ALPHAR( JC ) )*ANRM - SALFAI = ( SCALE*ALPHAI( JC ) )*ANRM - SBETA = ( SCALE*BETA( JC ) )*BNRM - END IF - ALPHAR( JC ) = SALFAR - ALPHAI( JC ) = SALFAI - BETA( JC ) = SBETA - 110 CONTINUE -* - 120 CONTINUE - WORK( 1 ) = LWKOPT -* - RETURN -* -* End of SGEGV -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/sgelsx.f b/dspl/liblapack/SRC/DEPRECATED/sgelsx.f deleted file mode 100644 index f45ff0f..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/sgelsx.f +++ /dev/null @@ -1,435 +0,0 @@ -*> \brief SGELSX solves overdetermined or underdetermined systems for GE matrices -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download SGELSX + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE SGELSX( M, N, NRHS, A, LDA, B, LDB, JPVT, RCOND, RANK, -* WORK, INFO ) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, LDB, M, N, NRHS, RANK -* REAL RCOND -* .. -* .. Array Arguments .. -* INTEGER JPVT( * ) -* REAL A( LDA, * ), B( LDB, * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine SGELSY. -*> -*> SGELSX computes the minimum-norm solution to a real linear least -*> squares problem: -*> minimize || A * X - B || -*> using a complete orthogonal factorization of A. A is an M-by-N -*> matrix which may be rank-deficient. -*> -*> Several right hand side vectors b and solution vectors x can be -*> handled in a single call; they are stored as the columns of the -*> M-by-NRHS right hand side matrix B and the N-by-NRHS solution -*> matrix X. -*> -*> The routine first computes a QR factorization with column pivoting: -*> A * P = Q * [ R11 R12 ] -*> [ 0 R22 ] -*> with R11 defined as the largest leading submatrix whose estimated -*> condition number is less than 1/RCOND. The order of R11, RANK, -*> is the effective rank of A. -*> -*> Then, R22 is considered to be negligible, and R12 is annihilated -*> by orthogonal transformations from the right, arriving at the -*> complete orthogonal factorization: -*> A * P = Q * [ T11 0 ] * Z -*> [ 0 0 ] -*> The minimum-norm solution is then -*> X = P * Z**T [ inv(T11)*Q1**T*B ] -*> [ 0 ] -*> where Q1 consists of the first RANK columns of Q. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix A. M >= 0. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrix A. N >= 0. -*> \endverbatim -*> -*> \param[in] NRHS -*> \verbatim -*> NRHS is INTEGER -*> The number of right hand sides, i.e., the number of -*> columns of matrices B and X. NRHS >= 0. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is REAL array, dimension (LDA,N) -*> On entry, the M-by-N matrix A. -*> On exit, A has been overwritten by details of its -*> complete orthogonal factorization. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of the array A. LDA >= max(1,M). -*> \endverbatim -*> -*> \param[in,out] B -*> \verbatim -*> B is REAL array, dimension (LDB,NRHS) -*> On entry, the M-by-NRHS right hand side matrix B. -*> On exit, the N-by-NRHS solution matrix X. -*> If m >= n and RANK = n, the residual sum-of-squares for -*> the solution in the i-th column is given by the sum of -*> squares of elements N+1:M in that column. -*> \endverbatim -*> -*> \param[in] LDB -*> \verbatim -*> LDB is INTEGER -*> The leading dimension of the array B. LDB >= max(1,M,N). -*> \endverbatim -*> -*> \param[in,out] JPVT -*> \verbatim -*> JPVT is INTEGER array, dimension (N) -*> On entry, if JPVT(i) .ne. 0, the i-th column of A is an -*> initial column, otherwise it is a free column. Before -*> the QR factorization of A, all initial columns are -*> permuted to the leading positions; only the remaining -*> free columns are moved as a result of column pivoting -*> during the factorization. -*> On exit, if JPVT(i) = k, then the i-th column of A*P -*> was the k-th column of A. -*> \endverbatim -*> -*> \param[in] RCOND -*> \verbatim -*> RCOND is REAL -*> RCOND is used to determine the effective rank of A, which -*> is defined as the order of the largest leading triangular -*> submatrix R11 in the QR factorization with pivoting of A, -*> whose estimated condition number < 1/RCOND. -*> \endverbatim -*> -*> \param[out] RANK -*> \verbatim -*> RANK is INTEGER -*> The effective rank of A, i.e., the order of the submatrix -*> R11. This is the same as the order of the submatrix T11 -*> in the complete orthogonal factorization of A. -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is REAL array, dimension -*> (max( min(M,N)+3*N, 2*min(M,N)+NRHS )), -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup realGEsolve -* -* ===================================================================== - SUBROUTINE SGELSX( M, N, NRHS, A, LDA, B, LDB, JPVT, RCOND, RANK, - $ WORK, INFO ) -* -* -- LAPACK driver routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, LDB, M, N, NRHS, RANK - REAL RCOND -* .. -* .. Array Arguments .. - INTEGER JPVT( * ) - REAL A( LDA, * ), B( LDB, * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - INTEGER IMAX, IMIN - PARAMETER ( IMAX = 1, IMIN = 2 ) - REAL ZERO, ONE, DONE, NTDONE - PARAMETER ( ZERO = 0.0E0, ONE = 1.0E0, DONE = ZERO, - $ NTDONE = ONE ) -* .. -* .. Local Scalars .. - INTEGER I, IASCL, IBSCL, ISMAX, ISMIN, J, K, MN - REAL ANRM, BIGNUM, BNRM, C1, C2, S1, S2, SMAX, - $ SMAXPR, SMIN, SMINPR, SMLNUM, T1, T2 -* .. -* .. External Functions .. - REAL SLAMCH, SLANGE - EXTERNAL SLAMCH, SLANGE -* .. -* .. External Subroutines .. - EXTERNAL SGEQPF, SLABAD, SLAIC1, SLASCL, SLASET, SLATZM, - $ SORM2R, STRSM, STZRQF, XERBLA -* .. -* .. Intrinsic Functions .. - INTRINSIC ABS, MAX, MIN -* .. -* .. Executable Statements .. -* - MN = MIN( M, N ) - ISMIN = MN + 1 - ISMAX = 2*MN + 1 -* -* Test the input arguments. -* - INFO = 0 - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( NRHS.LT.0 ) THEN - INFO = -3 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -5 - ELSE IF( LDB.LT.MAX( 1, M, N ) ) THEN - INFO = -7 - END IF -* - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'SGELSX', -INFO ) - RETURN - END IF -* -* Quick return if possible -* - IF( MIN( M, N, NRHS ).EQ.0 ) THEN - RANK = 0 - RETURN - END IF -* -* Get machine parameters -* - SMLNUM = SLAMCH( 'S' ) / SLAMCH( 'P' ) - BIGNUM = ONE / SMLNUM - CALL SLABAD( SMLNUM, BIGNUM ) -* -* Scale A, B if max elements outside range [SMLNUM,BIGNUM] -* - ANRM = SLANGE( 'M', M, N, A, LDA, WORK ) - IASCL = 0 - IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN -* -* Scale matrix norm up to SMLNUM -* - CALL SLASCL( 'G', 0, 0, ANRM, SMLNUM, M, N, A, LDA, INFO ) - IASCL = 1 - ELSE IF( ANRM.GT.BIGNUM ) THEN -* -* Scale matrix norm down to BIGNUM -* - CALL SLASCL( 'G', 0, 0, ANRM, BIGNUM, M, N, A, LDA, INFO ) - IASCL = 2 - ELSE IF( ANRM.EQ.ZERO ) THEN -* -* Matrix all zero. Return zero solution. -* - CALL SLASET( 'F', MAX( M, N ), NRHS, ZERO, ZERO, B, LDB ) - RANK = 0 - GO TO 100 - END IF -* - BNRM = SLANGE( 'M', M, NRHS, B, LDB, WORK ) - IBSCL = 0 - IF( BNRM.GT.ZERO .AND. BNRM.LT.SMLNUM ) THEN -* -* Scale matrix norm up to SMLNUM -* - CALL SLASCL( 'G', 0, 0, BNRM, SMLNUM, M, NRHS, B, LDB, INFO ) - IBSCL = 1 - ELSE IF( BNRM.GT.BIGNUM ) THEN -* -* Scale matrix norm down to BIGNUM -* - CALL SLASCL( 'G', 0, 0, BNRM, BIGNUM, M, NRHS, B, LDB, INFO ) - IBSCL = 2 - END IF -* -* Compute QR factorization with column pivoting of A: -* A * P = Q * R -* - CALL SGEQPF( M, N, A, LDA, JPVT, WORK( 1 ), WORK( MN+1 ), INFO ) -* -* workspace 3*N. Details of Householder rotations stored -* in WORK(1:MN). -* -* Determine RANK using incremental condition estimation -* - WORK( ISMIN ) = ONE - WORK( ISMAX ) = ONE - SMAX = ABS( A( 1, 1 ) ) - SMIN = SMAX - IF( ABS( A( 1, 1 ) ).EQ.ZERO ) THEN - RANK = 0 - CALL SLASET( 'F', MAX( M, N ), NRHS, ZERO, ZERO, B, LDB ) - GO TO 100 - ELSE - RANK = 1 - END IF -* - 10 CONTINUE - IF( RANK.LT.MN ) THEN - I = RANK + 1 - CALL SLAIC1( IMIN, RANK, WORK( ISMIN ), SMIN, A( 1, I ), - $ A( I, I ), SMINPR, S1, C1 ) - CALL SLAIC1( IMAX, RANK, WORK( ISMAX ), SMAX, A( 1, I ), - $ A( I, I ), SMAXPR, S2, C2 ) -* - IF( SMAXPR*RCOND.LE.SMINPR ) THEN - DO 20 I = 1, RANK - WORK( ISMIN+I-1 ) = S1*WORK( ISMIN+I-1 ) - WORK( ISMAX+I-1 ) = S2*WORK( ISMAX+I-1 ) - 20 CONTINUE - WORK( ISMIN+RANK ) = C1 - WORK( ISMAX+RANK ) = C2 - SMIN = SMINPR - SMAX = SMAXPR - RANK = RANK + 1 - GO TO 10 - END IF - END IF -* -* Logically partition R = [ R11 R12 ] -* [ 0 R22 ] -* where R11 = R(1:RANK,1:RANK) -* -* [R11,R12] = [ T11, 0 ] * Y -* - IF( RANK.LT.N ) - $ CALL STZRQF( RANK, N, A, LDA, WORK( MN+1 ), INFO ) -* -* Details of Householder rotations stored in WORK(MN+1:2*MN) -* -* B(1:M,1:NRHS) := Q**T * B(1:M,1:NRHS) -* - CALL SORM2R( 'Left', 'Transpose', M, NRHS, MN, A, LDA, WORK( 1 ), - $ B, LDB, WORK( 2*MN+1 ), INFO ) -* -* workspace NRHS -* -* B(1:RANK,1:NRHS) := inv(T11) * B(1:RANK,1:NRHS) -* - CALL STRSM( 'Left', 'Upper', 'No transpose', 'Non-unit', RANK, - $ NRHS, ONE, A, LDA, B, LDB ) -* - DO 40 I = RANK + 1, N - DO 30 J = 1, NRHS - B( I, J ) = ZERO - 30 CONTINUE - 40 CONTINUE -* -* B(1:N,1:NRHS) := Y**T * B(1:N,1:NRHS) -* - IF( RANK.LT.N ) THEN - DO 50 I = 1, RANK - CALL SLATZM( 'Left', N-RANK+1, NRHS, A( I, RANK+1 ), LDA, - $ WORK( MN+I ), B( I, 1 ), B( RANK+1, 1 ), LDB, - $ WORK( 2*MN+1 ) ) - 50 CONTINUE - END IF -* -* workspace NRHS -* -* B(1:N,1:NRHS) := P * B(1:N,1:NRHS) -* - DO 90 J = 1, NRHS - DO 60 I = 1, N - WORK( 2*MN+I ) = NTDONE - 60 CONTINUE - DO 80 I = 1, N - IF( WORK( 2*MN+I ).EQ.NTDONE ) THEN - IF( JPVT( I ).NE.I ) THEN - K = I - T1 = B( K, J ) - T2 = B( JPVT( K ), J ) - 70 CONTINUE - B( JPVT( K ), J ) = T1 - WORK( 2*MN+K ) = DONE - T1 = T2 - K = JPVT( K ) - T2 = B( JPVT( K ), J ) - IF( JPVT( K ).NE.I ) - $ GO TO 70 - B( I, J ) = T1 - WORK( 2*MN+K ) = DONE - END IF - END IF - 80 CONTINUE - 90 CONTINUE -* -* Undo scaling -* - IF( IASCL.EQ.1 ) THEN - CALL SLASCL( 'G', 0, 0, ANRM, SMLNUM, N, NRHS, B, LDB, INFO ) - CALL SLASCL( 'U', 0, 0, SMLNUM, ANRM, RANK, RANK, A, LDA, - $ INFO ) - ELSE IF( IASCL.EQ.2 ) THEN - CALL SLASCL( 'G', 0, 0, ANRM, BIGNUM, N, NRHS, B, LDB, INFO ) - CALL SLASCL( 'U', 0, 0, BIGNUM, ANRM, RANK, RANK, A, LDA, - $ INFO ) - END IF - IF( IBSCL.EQ.1 ) THEN - CALL SLASCL( 'G', 0, 0, SMLNUM, BNRM, N, NRHS, B, LDB, INFO ) - ELSE IF( IBSCL.EQ.2 ) THEN - CALL SLASCL( 'G', 0, 0, BIGNUM, BNRM, N, NRHS, B, LDB, INFO ) - END IF -* - 100 CONTINUE -* - RETURN -* -* End of SGELSX -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/sgeqpf.f b/dspl/liblapack/SRC/DEPRECATED/sgeqpf.f deleted file mode 100644 index 45828d2..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/sgeqpf.f +++ /dev/null @@ -1,306 +0,0 @@ -*> \brief \b SGEQPF -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download SGEQPF + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE SGEQPF( M, N, A, LDA, JPVT, TAU, WORK, INFO ) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. -* INTEGER JPVT( * ) -* REAL A( LDA, * ), TAU( * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine SGEQP3. -*> -*> SGEQPF computes a QR factorization with column pivoting of a -*> real M-by-N matrix A: A*P = Q*R. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix A. M >= 0. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrix A. N >= 0 -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is REAL array, dimension (LDA,N) -*> On entry, the M-by-N matrix A. -*> On exit, the upper triangle of the array contains the -*> min(M,N)-by-N upper triangular matrix R; the elements -*> below the diagonal, together with the array TAU, -*> represent the orthogonal matrix Q as a product of -*> min(m,n) elementary reflectors. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of the array A. LDA >= max(1,M). -*> \endverbatim -*> -*> \param[in,out] JPVT -*> \verbatim -*> JPVT is INTEGER array, dimension (N) -*> On entry, if JPVT(i) .ne. 0, the i-th column of A is permuted -*> to the front of A*P (a leading column); if JPVT(i) = 0, -*> the i-th column of A is a free column. -*> On exit, if JPVT(i) = k, then the i-th column of A*P -*> was the k-th column of A. -*> \endverbatim -*> -*> \param[out] TAU -*> \verbatim -*> TAU is REAL array, dimension (min(M,N)) -*> The scalar factors of the elementary reflectors. -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is REAL array, dimension (3*N) -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup realGEcomputational -* -*> \par Further Details: -* ===================== -*> -*> \verbatim -*> -*> The matrix Q is represented as a product of elementary reflectors -*> -*> Q = H(1) H(2) . . . H(n) -*> -*> Each H(i) has the form -*> -*> H = I - tau * v * v**T -*> -*> where tau is a real scalar, and v is a real vector with -*> v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i). -*> -*> The matrix P is represented in jpvt as follows: If -*> jpvt(j) = i -*> then the jth column of P is the ith canonical unit vector. -*> -*> Partial column norm updating strategy modified by -*> Z. Drmac and Z. Bujanovic, Dept. of Mathematics, -*> University of Zagreb, Croatia. -*> -- April 2011 -- -*> For more details see LAPACK Working Note 176. -*> \endverbatim -*> -* ===================================================================== - SUBROUTINE SGEQPF( M, N, A, LDA, JPVT, TAU, WORK, INFO ) -* -* -- LAPACK computational routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. - INTEGER JPVT( * ) - REAL A( LDA, * ), TAU( * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - REAL ZERO, ONE - PARAMETER ( ZERO = 0.0E+0, ONE = 1.0E+0 ) -* .. -* .. Local Scalars .. - INTEGER I, ITEMP, J, MA, MN, PVT - REAL AII, TEMP, TEMP2, TOL3Z -* .. -* .. External Subroutines .. - EXTERNAL SGEQR2, SLARF, SLARFG, SORM2R, SSWAP, XERBLA -* .. -* .. Intrinsic Functions .. - INTRINSIC ABS, MAX, MIN, SQRT -* .. -* .. External Functions .. - INTEGER ISAMAX - REAL SLAMCH, SNRM2 - EXTERNAL ISAMAX, SLAMCH, SNRM2 -* .. -* .. Executable Statements .. -* -* Test the input arguments -* - INFO = 0 - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'SGEQPF', -INFO ) - RETURN - END IF -* - MN = MIN( M, N ) - TOL3Z = SQRT(SLAMCH('Epsilon')) -* -* Move initial columns up front -* - ITEMP = 1 - DO 10 I = 1, N - IF( JPVT( I ).NE.0 ) THEN - IF( I.NE.ITEMP ) THEN - CALL SSWAP( M, A( 1, I ), 1, A( 1, ITEMP ), 1 ) - JPVT( I ) = JPVT( ITEMP ) - JPVT( ITEMP ) = I - ELSE - JPVT( I ) = I - END IF - ITEMP = ITEMP + 1 - ELSE - JPVT( I ) = I - END IF - 10 CONTINUE - ITEMP = ITEMP - 1 -* -* Compute the QR factorization and update remaining columns -* - IF( ITEMP.GT.0 ) THEN - MA = MIN( ITEMP, M ) - CALL SGEQR2( M, MA, A, LDA, TAU, WORK, INFO ) - IF( MA.LT.N ) THEN - CALL SORM2R( 'Left', 'Transpose', M, N-MA, MA, A, LDA, TAU, - $ A( 1, MA+1 ), LDA, WORK, INFO ) - END IF - END IF -* - IF( ITEMP.LT.MN ) THEN -* -* Initialize partial column norms. The first n elements of -* work store the exact column norms. -* - DO 20 I = ITEMP + 1, N - WORK( I ) = SNRM2( M-ITEMP, A( ITEMP+1, I ), 1 ) - WORK( N+I ) = WORK( I ) - 20 CONTINUE -* -* Compute factorization -* - DO 40 I = ITEMP + 1, MN -* -* Determine ith pivot column and swap if necessary -* - PVT = ( I-1 ) + ISAMAX( N-I+1, WORK( I ), 1 ) -* - IF( PVT.NE.I ) THEN - CALL SSWAP( M, A( 1, PVT ), 1, A( 1, I ), 1 ) - ITEMP = JPVT( PVT ) - JPVT( PVT ) = JPVT( I ) - JPVT( I ) = ITEMP - WORK( PVT ) = WORK( I ) - WORK( N+PVT ) = WORK( N+I ) - END IF -* -* Generate elementary reflector H(i) -* - IF( I.LT.M ) THEN - CALL SLARFG( M-I+1, A( I, I ), A( I+1, I ), 1, TAU( I ) ) - ELSE - CALL SLARFG( 1, A( M, M ), A( M, M ), 1, TAU( M ) ) - END IF -* - IF( I.LT.N ) THEN -* -* Apply H(i) to A(i:m,i+1:n) from the left -* - AII = A( I, I ) - A( I, I ) = ONE - CALL SLARF( 'LEFT', M-I+1, N-I, A( I, I ), 1, TAU( I ), - $ A( I, I+1 ), LDA, WORK( 2*N+1 ) ) - A( I, I ) = AII - END IF -* -* Update partial column norms -* - DO 30 J = I + 1, N - IF( WORK( J ).NE.ZERO ) THEN -* -* NOTE: The following 4 lines follow from the analysis in -* Lapack Working Note 176. -* - TEMP = ABS( A( I, J ) ) / WORK( J ) - TEMP = MAX( ZERO, ( ONE+TEMP )*( ONE-TEMP ) ) - TEMP2 = TEMP*( WORK( J ) / WORK( N+J ) )**2 - IF( TEMP2 .LE. TOL3Z ) THEN - IF( M-I.GT.0 ) THEN - WORK( J ) = SNRM2( M-I, A( I+1, J ), 1 ) - WORK( N+J ) = WORK( J ) - ELSE - WORK( J ) = ZERO - WORK( N+J ) = ZERO - END IF - ELSE - WORK( J ) = WORK( J )*SQRT( TEMP ) - END IF - END IF - 30 CONTINUE -* - 40 CONTINUE - END IF - RETURN -* -* End of SGEQPF -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/sggsvd.f b/dspl/liblapack/SRC/DEPRECATED/sggsvd.f deleted file mode 100644 index 9ab0011..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/sggsvd.f +++ /dev/null @@ -1,464 +0,0 @@ -*> \brief SGGSVD computes the singular value decomposition (SVD) for OTHER matrices -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download SGGSVD + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE SGGSVD( JOBU, JOBV, JOBQ, M, N, P, K, L, A, LDA, B, -* LDB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, -* IWORK, INFO ) -* -* .. Scalar Arguments .. -* CHARACTER JOBQ, JOBU, JOBV -* INTEGER INFO, K, L, LDA, LDB, LDQ, LDU, LDV, M, N, P -* .. -* .. Array Arguments .. -* INTEGER IWORK( * ) -* REAL A( LDA, * ), ALPHA( * ), B( LDB, * ), -* $ BETA( * ), Q( LDQ, * ), U( LDU, * ), -* $ V( LDV, * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine SGGSVD3. -*> -*> SGGSVD computes the generalized singular value decomposition (GSVD) -*> of an M-by-N real matrix A and P-by-N real matrix B: -*> -*> U**T*A*Q = D1*( 0 R ), V**T*B*Q = D2*( 0 R ) -*> -*> where U, V and Q are orthogonal matrices. -*> Let K+L = the effective numerical rank of the matrix (A**T,B**T)**T, -*> then R is a K+L-by-K+L nonsingular upper triangular matrix, D1 and -*> D2 are M-by-(K+L) and P-by-(K+L) "diagonal" matrices and of the -*> following structures, respectively: -*> -*> If M-K-L >= 0, -*> -*> K L -*> D1 = K ( I 0 ) -*> L ( 0 C ) -*> M-K-L ( 0 0 ) -*> -*> K L -*> D2 = L ( 0 S ) -*> P-L ( 0 0 ) -*> -*> N-K-L K L -*> ( 0 R ) = K ( 0 R11 R12 ) -*> L ( 0 0 R22 ) -*> -*> where -*> -*> C = diag( ALPHA(K+1), ... , ALPHA(K+L) ), -*> S = diag( BETA(K+1), ... , BETA(K+L) ), -*> C**2 + S**2 = I. -*> -*> R is stored in A(1:K+L,N-K-L+1:N) on exit. -*> -*> If M-K-L < 0, -*> -*> K M-K K+L-M -*> D1 = K ( I 0 0 ) -*> M-K ( 0 C 0 ) -*> -*> K M-K K+L-M -*> D2 = M-K ( 0 S 0 ) -*> K+L-M ( 0 0 I ) -*> P-L ( 0 0 0 ) -*> -*> N-K-L K M-K K+L-M -*> ( 0 R ) = K ( 0 R11 R12 R13 ) -*> M-K ( 0 0 R22 R23 ) -*> K+L-M ( 0 0 0 R33 ) -*> -*> where -*> -*> C = diag( ALPHA(K+1), ... , ALPHA(M) ), -*> S = diag( BETA(K+1), ... , BETA(M) ), -*> C**2 + S**2 = I. -*> -*> (R11 R12 R13 ) is stored in A(1:M, N-K-L+1:N), and R33 is stored -*> ( 0 R22 R23 ) -*> in B(M-K+1:L,N+M-K-L+1:N) on exit. -*> -*> The routine computes C, S, R, and optionally the orthogonal -*> transformation matrices U, V and Q. -*> -*> In particular, if B is an N-by-N nonsingular matrix, then the GSVD of -*> A and B implicitly gives the SVD of A*inv(B): -*> A*inv(B) = U*(D1*inv(D2))*V**T. -*> If ( A**T,B**T)**T has orthonormal columns, then the GSVD of A and B is -*> also equal to the CS decomposition of A and B. Furthermore, the GSVD -*> can be used to derive the solution of the eigenvalue problem: -*> A**T*A x = lambda* B**T*B x. -*> In some literature, the GSVD of A and B is presented in the form -*> U**T*A*X = ( 0 D1 ), V**T*B*X = ( 0 D2 ) -*> where U and V are orthogonal and X is nonsingular, D1 and D2 are -*> ``diagonal''. The former GSVD form can be converted to the latter -*> form by taking the nonsingular matrix X as -*> -*> X = Q*( I 0 ) -*> ( 0 inv(R) ). -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] JOBU -*> \verbatim -*> JOBU is CHARACTER*1 -*> = 'U': Orthogonal matrix U is computed; -*> = 'N': U is not computed. -*> \endverbatim -*> -*> \param[in] JOBV -*> \verbatim -*> JOBV is CHARACTER*1 -*> = 'V': Orthogonal matrix V is computed; -*> = 'N': V is not computed. -*> \endverbatim -*> -*> \param[in] JOBQ -*> \verbatim -*> JOBQ is CHARACTER*1 -*> = 'Q': Orthogonal matrix Q is computed; -*> = 'N': Q is not computed. -*> \endverbatim -*> -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix A. M >= 0. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrices A and B. N >= 0. -*> \endverbatim -*> -*> \param[in] P -*> \verbatim -*> P is INTEGER -*> The number of rows of the matrix B. P >= 0. -*> \endverbatim -*> -*> \param[out] K -*> \verbatim -*> K is INTEGER -*> \endverbatim -*> -*> \param[out] L -*> \verbatim -*> L is INTEGER -*> -*> On exit, K and L specify the dimension of the subblocks -*> described in Purpose. -*> K + L = effective numerical rank of (A**T,B**T)**T. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is REAL array, dimension (LDA,N) -*> On entry, the M-by-N matrix A. -*> On exit, A contains the triangular matrix R, or part of R. -*> See Purpose for details. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of the array A. LDA >= max(1,M). -*> \endverbatim -*> -*> \param[in,out] B -*> \verbatim -*> B is REAL array, dimension (LDB,N) -*> On entry, the P-by-N matrix B. -*> On exit, B contains the triangular matrix R if M-K-L < 0. -*> See Purpose for details. -*> \endverbatim -*> -*> \param[in] LDB -*> \verbatim -*> LDB is INTEGER -*> The leading dimension of the array B. LDB >= max(1,P). -*> \endverbatim -*> -*> \param[out] ALPHA -*> \verbatim -*> ALPHA is REAL array, dimension (N) -*> \endverbatim -*> -*> \param[out] BETA -*> \verbatim -*> BETA is REAL array, dimension (N) -*> -*> On exit, ALPHA and BETA contain the generalized singular -*> value pairs of A and B; -*> ALPHA(1:K) = 1, -*> BETA(1:K) = 0, -*> and if M-K-L >= 0, -*> ALPHA(K+1:K+L) = C, -*> BETA(K+1:K+L) = S, -*> or if M-K-L < 0, -*> ALPHA(K+1:M)=C, ALPHA(M+1:K+L)=0 -*> BETA(K+1:M) =S, BETA(M+1:K+L) =1 -*> and -*> ALPHA(K+L+1:N) = 0 -*> BETA(K+L+1:N) = 0 -*> \endverbatim -*> -*> \param[out] U -*> \verbatim -*> U is REAL array, dimension (LDU,M) -*> If JOBU = 'U', U contains the M-by-M orthogonal matrix U. -*> If JOBU = 'N', U is not referenced. -*> \endverbatim -*> -*> \param[in] LDU -*> \verbatim -*> LDU is INTEGER -*> The leading dimension of the array U. LDU >= max(1,M) if -*> JOBU = 'U'; LDU >= 1 otherwise. -*> \endverbatim -*> -*> \param[out] V -*> \verbatim -*> V is REAL array, dimension (LDV,P) -*> If JOBV = 'V', V contains the P-by-P orthogonal matrix V. -*> If JOBV = 'N', V is not referenced. -*> \endverbatim -*> -*> \param[in] LDV -*> \verbatim -*> LDV is INTEGER -*> The leading dimension of the array V. LDV >= max(1,P) if -*> JOBV = 'V'; LDV >= 1 otherwise. -*> \endverbatim -*> -*> \param[out] Q -*> \verbatim -*> Q is REAL array, dimension (LDQ,N) -*> If JOBQ = 'Q', Q contains the N-by-N orthogonal matrix Q. -*> If JOBQ = 'N', Q is not referenced. -*> \endverbatim -*> -*> \param[in] LDQ -*> \verbatim -*> LDQ is INTEGER -*> The leading dimension of the array Q. LDQ >= max(1,N) if -*> JOBQ = 'Q'; LDQ >= 1 otherwise. -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is REAL array, -*> dimension (max(3*N,M,P)+N) -*> \endverbatim -*> -*> \param[out] IWORK -*> \verbatim -*> IWORK is INTEGER array, dimension (N) -*> On exit, IWORK stores the sorting information. More -*> precisely, the following loop will sort ALPHA -*> for I = K+1, min(M,K+L) -*> swap ALPHA(I) and ALPHA(IWORK(I)) -*> endfor -*> such that ALPHA(1) >= ALPHA(2) >= ... >= ALPHA(N). -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value. -*> > 0: if INFO = 1, the Jacobi-type procedure failed to -*> converge. For further details, see subroutine STGSJA. -*> \endverbatim -* -*> \par Internal Parameters: -* ========================= -*> -*> \verbatim -*> TOLA REAL -*> TOLB REAL -*> TOLA and TOLB are the thresholds to determine the effective -*> rank of (A**T,B**T)**T. Generally, they are set to -*> TOLA = MAX(M,N)*norm(A)*MACHEPS, -*> TOLB = MAX(P,N)*norm(B)*MACHEPS. -*> The size of TOLA and TOLB may affect the size of backward -*> errors of the decomposition. -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup realOTHERsing -* -*> \par Contributors: -* ================== -*> -*> Ming Gu and Huan Ren, Computer Science Division, University of -*> California at Berkeley, USA -*> -* ===================================================================== - SUBROUTINE SGGSVD( JOBU, JOBV, JOBQ, M, N, P, K, L, A, LDA, B, - $ LDB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, - $ IWORK, INFO ) -* -* -- LAPACK driver routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER JOBQ, JOBU, JOBV - INTEGER INFO, K, L, LDA, LDB, LDQ, LDU, LDV, M, N, P -* .. -* .. Array Arguments .. - INTEGER IWORK( * ) - REAL A( LDA, * ), ALPHA( * ), B( LDB, * ), - $ BETA( * ), Q( LDQ, * ), U( LDU, * ), - $ V( LDV, * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Local Scalars .. - LOGICAL WANTQ, WANTU, WANTV - INTEGER I, IBND, ISUB, J, NCYCLE - REAL ANORM, BNORM, SMAX, TEMP, TOLA, TOLB, ULP, UNFL -* .. -* .. External Functions .. - LOGICAL LSAME - REAL SLAMCH, SLANGE - EXTERNAL LSAME, SLAMCH, SLANGE -* .. -* .. External Subroutines .. - EXTERNAL SCOPY, SGGSVP, STGSJA, XERBLA -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. Executable Statements .. -* -* Test the input parameters -* - WANTU = LSAME( JOBU, 'U' ) - WANTV = LSAME( JOBV, 'V' ) - WANTQ = LSAME( JOBQ, 'Q' ) -* - INFO = 0 - IF( .NOT.( WANTU .OR. LSAME( JOBU, 'N' ) ) ) THEN - INFO = -1 - ELSE IF( .NOT.( WANTV .OR. LSAME( JOBV, 'N' ) ) ) THEN - INFO = -2 - ELSE IF( .NOT.( WANTQ .OR. LSAME( JOBQ, 'N' ) ) ) THEN - INFO = -3 - ELSE IF( M.LT.0 ) THEN - INFO = -4 - ELSE IF( N.LT.0 ) THEN - INFO = -5 - ELSE IF( P.LT.0 ) THEN - INFO = -6 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -10 - ELSE IF( LDB.LT.MAX( 1, P ) ) THEN - INFO = -12 - ELSE IF( LDU.LT.1 .OR. ( WANTU .AND. LDU.LT.M ) ) THEN - INFO = -16 - ELSE IF( LDV.LT.1 .OR. ( WANTV .AND. LDV.LT.P ) ) THEN - INFO = -18 - ELSE IF( LDQ.LT.1 .OR. ( WANTQ .AND. LDQ.LT.N ) ) THEN - INFO = -20 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'SGGSVD', -INFO ) - RETURN - END IF -* -* Compute the Frobenius norm of matrices A and B -* - ANORM = SLANGE( '1', M, N, A, LDA, WORK ) - BNORM = SLANGE( '1', P, N, B, LDB, WORK ) -* -* Get machine precision and set up threshold for determining -* the effective numerical rank of the matrices A and B. -* - ULP = SLAMCH( 'Precision' ) - UNFL = SLAMCH( 'Safe Minimum' ) - TOLA = MAX( M, N )*MAX( ANORM, UNFL )*ULP - TOLB = MAX( P, N )*MAX( BNORM, UNFL )*ULP -* -* Preprocessing -* - CALL SGGSVP( JOBU, JOBV, JOBQ, M, P, N, A, LDA, B, LDB, TOLA, - $ TOLB, K, L, U, LDU, V, LDV, Q, LDQ, IWORK, WORK, - $ WORK( N+1 ), INFO ) -* -* Compute the GSVD of two upper "triangular" matrices -* - CALL STGSJA( JOBU, JOBV, JOBQ, M, P, N, K, L, A, LDA, B, LDB, - $ TOLA, TOLB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, - $ WORK, NCYCLE, INFO ) -* -* Sort the singular values and store the pivot indices in IWORK -* Copy ALPHA to WORK, then sort ALPHA in WORK -* - CALL SCOPY( N, ALPHA, 1, WORK, 1 ) - IBND = MIN( L, M-K ) - DO 20 I = 1, IBND -* -* Scan for largest ALPHA(K+I) -* - ISUB = I - SMAX = WORK( K+I ) - DO 10 J = I + 1, IBND - TEMP = WORK( K+J ) - IF( TEMP.GT.SMAX ) THEN - ISUB = J - SMAX = TEMP - END IF - 10 CONTINUE - IF( ISUB.NE.I ) THEN - WORK( K+ISUB ) = WORK( K+I ) - WORK( K+I ) = SMAX - IWORK( K+I ) = K + ISUB - ELSE - IWORK( K+I ) = K + I - END IF - 20 CONTINUE -* - RETURN -* -* End of SGGSVD -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/sggsvp.f b/dspl/liblapack/SRC/DEPRECATED/sggsvp.f deleted file mode 100644 index b2a71a8..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/sggsvp.f +++ /dev/null @@ -1,522 +0,0 @@ -*> \brief \b SGGSVP -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download SGGSVP + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE SGGSVP( JOBU, JOBV, JOBQ, M, P, N, A, LDA, B, LDB, -* TOLA, TOLB, K, L, U, LDU, V, LDV, Q, LDQ, -* IWORK, TAU, WORK, INFO ) -* -* .. Scalar Arguments .. -* CHARACTER JOBQ, JOBU, JOBV -* INTEGER INFO, K, L, LDA, LDB, LDQ, LDU, LDV, M, N, P -* REAL TOLA, TOLB -* .. -* .. Array Arguments .. -* INTEGER IWORK( * ) -* REAL A( LDA, * ), B( LDB, * ), Q( LDQ, * ), -* $ TAU( * ), U( LDU, * ), V( LDV, * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine SGGSVP3. -*> -*> SGGSVP computes orthogonal matrices U, V and Q such that -*> -*> N-K-L K L -*> U**T*A*Q = K ( 0 A12 A13 ) if M-K-L >= 0; -*> L ( 0 0 A23 ) -*> M-K-L ( 0 0 0 ) -*> -*> N-K-L K L -*> = K ( 0 A12 A13 ) if M-K-L < 0; -*> M-K ( 0 0 A23 ) -*> -*> N-K-L K L -*> V**T*B*Q = L ( 0 0 B13 ) -*> P-L ( 0 0 0 ) -*> -*> where the K-by-K matrix A12 and L-by-L matrix B13 are nonsingular -*> upper triangular; A23 is L-by-L upper triangular if M-K-L >= 0, -*> otherwise A23 is (M-K)-by-L upper trapezoidal. K+L = the effective -*> numerical rank of the (M+P)-by-N matrix (A**T,B**T)**T. -*> -*> This decomposition is the preprocessing step for computing the -*> Generalized Singular Value Decomposition (GSVD), see subroutine -*> SGGSVD. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] JOBU -*> \verbatim -*> JOBU is CHARACTER*1 -*> = 'U': Orthogonal matrix U is computed; -*> = 'N': U is not computed. -*> \endverbatim -*> -*> \param[in] JOBV -*> \verbatim -*> JOBV is CHARACTER*1 -*> = 'V': Orthogonal matrix V is computed; -*> = 'N': V is not computed. -*> \endverbatim -*> -*> \param[in] JOBQ -*> \verbatim -*> JOBQ is CHARACTER*1 -*> = 'Q': Orthogonal matrix Q is computed; -*> = 'N': Q is not computed. -*> \endverbatim -*> -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix A. M >= 0. -*> \endverbatim -*> -*> \param[in] P -*> \verbatim -*> P is INTEGER -*> The number of rows of the matrix B. P >= 0. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrices A and B. N >= 0. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is REAL array, dimension (LDA,N) -*> On entry, the M-by-N matrix A. -*> On exit, A contains the triangular (or trapezoidal) matrix -*> described in the Purpose section. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of the array A. LDA >= max(1,M). -*> \endverbatim -*> -*> \param[in,out] B -*> \verbatim -*> B is REAL array, dimension (LDB,N) -*> On entry, the P-by-N matrix B. -*> On exit, B contains the triangular matrix described in -*> the Purpose section. -*> \endverbatim -*> -*> \param[in] LDB -*> \verbatim -*> LDB is INTEGER -*> The leading dimension of the array B. LDB >= max(1,P). -*> \endverbatim -*> -*> \param[in] TOLA -*> \verbatim -*> TOLA is REAL -*> \endverbatim -*> -*> \param[in] TOLB -*> \verbatim -*> TOLB is REAL -*> -*> TOLA and TOLB are the thresholds to determine the effective -*> numerical rank of matrix B and a subblock of A. Generally, -*> they are set to -*> TOLA = MAX(M,N)*norm(A)*MACHEPS, -*> TOLB = MAX(P,N)*norm(B)*MACHEPS. -*> The size of TOLA and TOLB may affect the size of backward -*> errors of the decomposition. -*> \endverbatim -*> -*> \param[out] K -*> \verbatim -*> K is INTEGER -*> \endverbatim -*> -*> \param[out] L -*> \verbatim -*> L is INTEGER -*> -*> On exit, K and L specify the dimension of the subblocks -*> described in Purpose section. -*> K + L = effective numerical rank of (A**T,B**T)**T. -*> \endverbatim -*> -*> \param[out] U -*> \verbatim -*> U is REAL array, dimension (LDU,M) -*> If JOBU = 'U', U contains the orthogonal matrix U. -*> If JOBU = 'N', U is not referenced. -*> \endverbatim -*> -*> \param[in] LDU -*> \verbatim -*> LDU is INTEGER -*> The leading dimension of the array U. LDU >= max(1,M) if -*> JOBU = 'U'; LDU >= 1 otherwise. -*> \endverbatim -*> -*> \param[out] V -*> \verbatim -*> V is REAL array, dimension (LDV,P) -*> If JOBV = 'V', V contains the orthogonal matrix V. -*> If JOBV = 'N', V is not referenced. -*> \endverbatim -*> -*> \param[in] LDV -*> \verbatim -*> LDV is INTEGER -*> The leading dimension of the array V. LDV >= max(1,P) if -*> JOBV = 'V'; LDV >= 1 otherwise. -*> \endverbatim -*> -*> \param[out] Q -*> \verbatim -*> Q is REAL array, dimension (LDQ,N) -*> If JOBQ = 'Q', Q contains the orthogonal matrix Q. -*> If JOBQ = 'N', Q is not referenced. -*> \endverbatim -*> -*> \param[in] LDQ -*> \verbatim -*> LDQ is INTEGER -*> The leading dimension of the array Q. LDQ >= max(1,N) if -*> JOBQ = 'Q'; LDQ >= 1 otherwise. -*> \endverbatim -*> -*> \param[out] IWORK -*> \verbatim -*> IWORK is INTEGER array, dimension (N) -*> \endverbatim -*> -*> \param[out] TAU -*> \verbatim -*> TAU is REAL array, dimension (N) -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is REAL array, dimension (max(3*N,M,P)) -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value. -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup realOTHERcomputational -* -*> \par Further Details: -* ===================== -*> -*> The subroutine uses LAPACK subroutine SGEQPF for the QR factorization -*> with column pivoting to detect the effective numerical rank of the -*> a matrix. It may be replaced by a better rank determination strategy. -*> -* ===================================================================== - SUBROUTINE SGGSVP( JOBU, JOBV, JOBQ, M, P, N, A, LDA, B, LDB, - $ TOLA, TOLB, K, L, U, LDU, V, LDV, Q, LDQ, - $ IWORK, TAU, WORK, INFO ) -* -* -- LAPACK computational routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER JOBQ, JOBU, JOBV - INTEGER INFO, K, L, LDA, LDB, LDQ, LDU, LDV, M, N, P - REAL TOLA, TOLB -* .. -* .. Array Arguments .. - INTEGER IWORK( * ) - REAL A( LDA, * ), B( LDB, * ), Q( LDQ, * ), - $ TAU( * ), U( LDU, * ), V( LDV, * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - REAL ZERO, ONE - PARAMETER ( ZERO = 0.0E+0, ONE = 1.0E+0 ) -* .. -* .. Local Scalars .. - LOGICAL FORWRD, WANTQ, WANTU, WANTV - INTEGER I, J -* .. -* .. External Functions .. - LOGICAL LSAME - EXTERNAL LSAME -* .. -* .. External Subroutines .. - EXTERNAL SGEQPF, SGEQR2, SGERQ2, SLACPY, SLAPMT, SLASET, - $ SORG2R, SORM2R, SORMR2, XERBLA -* .. -* .. Intrinsic Functions .. - INTRINSIC ABS, MAX, MIN -* .. -* .. Executable Statements .. -* -* Test the input parameters -* - WANTU = LSAME( JOBU, 'U' ) - WANTV = LSAME( JOBV, 'V' ) - WANTQ = LSAME( JOBQ, 'Q' ) - FORWRD = .TRUE. -* - INFO = 0 - IF( .NOT.( WANTU .OR. LSAME( JOBU, 'N' ) ) ) THEN - INFO = -1 - ELSE IF( .NOT.( WANTV .OR. LSAME( JOBV, 'N' ) ) ) THEN - INFO = -2 - ELSE IF( .NOT.( WANTQ .OR. LSAME( JOBQ, 'N' ) ) ) THEN - INFO = -3 - ELSE IF( M.LT.0 ) THEN - INFO = -4 - ELSE IF( P.LT.0 ) THEN - INFO = -5 - ELSE IF( N.LT.0 ) THEN - INFO = -6 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -8 - ELSE IF( LDB.LT.MAX( 1, P ) ) THEN - INFO = -10 - ELSE IF( LDU.LT.1 .OR. ( WANTU .AND. LDU.LT.M ) ) THEN - INFO = -16 - ELSE IF( LDV.LT.1 .OR. ( WANTV .AND. LDV.LT.P ) ) THEN - INFO = -18 - ELSE IF( LDQ.LT.1 .OR. ( WANTQ .AND. LDQ.LT.N ) ) THEN - INFO = -20 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'SGGSVP', -INFO ) - RETURN - END IF -* -* QR with column pivoting of B: B*P = V*( S11 S12 ) -* ( 0 0 ) -* - DO 10 I = 1, N - IWORK( I ) = 0 - 10 CONTINUE - CALL SGEQPF( P, N, B, LDB, IWORK, TAU, WORK, INFO ) -* -* Update A := A*P -* - CALL SLAPMT( FORWRD, M, N, A, LDA, IWORK ) -* -* Determine the effective rank of matrix B. -* - L = 0 - DO 20 I = 1, MIN( P, N ) - IF( ABS( B( I, I ) ).GT.TOLB ) - $ L = L + 1 - 20 CONTINUE -* - IF( WANTV ) THEN -* -* Copy the details of V, and form V. -* - CALL SLASET( 'Full', P, P, ZERO, ZERO, V, LDV ) - IF( P.GT.1 ) - $ CALL SLACPY( 'Lower', P-1, N, B( 2, 1 ), LDB, V( 2, 1 ), - $ LDV ) - CALL SORG2R( P, P, MIN( P, N ), V, LDV, TAU, WORK, INFO ) - END IF -* -* Clean up B -* - DO 40 J = 1, L - 1 - DO 30 I = J + 1, L - B( I, J ) = ZERO - 30 CONTINUE - 40 CONTINUE - IF( P.GT.L ) - $ CALL SLASET( 'Full', P-L, N, ZERO, ZERO, B( L+1, 1 ), LDB ) -* - IF( WANTQ ) THEN -* -* Set Q = I and Update Q := Q*P -* - CALL SLASET( 'Full', N, N, ZERO, ONE, Q, LDQ ) - CALL SLAPMT( FORWRD, N, N, Q, LDQ, IWORK ) - END IF -* - IF( P.GE.L .AND. N.NE.L ) THEN -* -* RQ factorization of (S11 S12): ( S11 S12 ) = ( 0 S12 )*Z -* - CALL SGERQ2( L, N, B, LDB, TAU, WORK, INFO ) -* -* Update A := A*Z**T -* - CALL SORMR2( 'Right', 'Transpose', M, N, L, B, LDB, TAU, A, - $ LDA, WORK, INFO ) -* - IF( WANTQ ) THEN -* -* Update Q := Q*Z**T -* - CALL SORMR2( 'Right', 'Transpose', N, N, L, B, LDB, TAU, Q, - $ LDQ, WORK, INFO ) - END IF -* -* Clean up B -* - CALL SLASET( 'Full', L, N-L, ZERO, ZERO, B, LDB ) - DO 60 J = N - L + 1, N - DO 50 I = J - N + L + 1, L - B( I, J ) = ZERO - 50 CONTINUE - 60 CONTINUE -* - END IF -* -* Let N-L L -* A = ( A11 A12 ) M, -* -* then the following does the complete QR decomposition of A11: -* -* A11 = U*( 0 T12 )*P1**T -* ( 0 0 ) -* - DO 70 I = 1, N - L - IWORK( I ) = 0 - 70 CONTINUE - CALL SGEQPF( M, N-L, A, LDA, IWORK, TAU, WORK, INFO ) -* -* Determine the effective rank of A11 -* - K = 0 - DO 80 I = 1, MIN( M, N-L ) - IF( ABS( A( I, I ) ).GT.TOLA ) - $ K = K + 1 - 80 CONTINUE -* -* Update A12 := U**T*A12, where A12 = A( 1:M, N-L+1:N ) -* - CALL SORM2R( 'Left', 'Transpose', M, L, MIN( M, N-L ), A, LDA, - $ TAU, A( 1, N-L+1 ), LDA, WORK, INFO ) -* - IF( WANTU ) THEN -* -* Copy the details of U, and form U -* - CALL SLASET( 'Full', M, M, ZERO, ZERO, U, LDU ) - IF( M.GT.1 ) - $ CALL SLACPY( 'Lower', M-1, N-L, A( 2, 1 ), LDA, U( 2, 1 ), - $ LDU ) - CALL SORG2R( M, M, MIN( M, N-L ), U, LDU, TAU, WORK, INFO ) - END IF -* - IF( WANTQ ) THEN -* -* Update Q( 1:N, 1:N-L ) = Q( 1:N, 1:N-L )*P1 -* - CALL SLAPMT( FORWRD, N, N-L, Q, LDQ, IWORK ) - END IF -* -* Clean up A: set the strictly lower triangular part of -* A(1:K, 1:K) = 0, and A( K+1:M, 1:N-L ) = 0. -* - DO 100 J = 1, K - 1 - DO 90 I = J + 1, K - A( I, J ) = ZERO - 90 CONTINUE - 100 CONTINUE - IF( M.GT.K ) - $ CALL SLASET( 'Full', M-K, N-L, ZERO, ZERO, A( K+1, 1 ), LDA ) -* - IF( N-L.GT.K ) THEN -* -* RQ factorization of ( T11 T12 ) = ( 0 T12 )*Z1 -* - CALL SGERQ2( K, N-L, A, LDA, TAU, WORK, INFO ) -* - IF( WANTQ ) THEN -* -* Update Q( 1:N,1:N-L ) = Q( 1:N,1:N-L )*Z1**T -* - CALL SORMR2( 'Right', 'Transpose', N, N-L, K, A, LDA, TAU, - $ Q, LDQ, WORK, INFO ) - END IF -* -* Clean up A -* - CALL SLASET( 'Full', K, N-L-K, ZERO, ZERO, A, LDA ) - DO 120 J = N - L - K + 1, N - L - DO 110 I = J - N + L + K + 1, K - A( I, J ) = ZERO - 110 CONTINUE - 120 CONTINUE -* - END IF -* - IF( M.GT.K ) THEN -* -* QR factorization of A( K+1:M,N-L+1:N ) -* - CALL SGEQR2( M-K, L, A( K+1, N-L+1 ), LDA, TAU, WORK, INFO ) -* - IF( WANTU ) THEN -* -* Update U(:,K+1:M) := U(:,K+1:M)*U1 -* - CALL SORM2R( 'Right', 'No transpose', M, M-K, MIN( M-K, L ), - $ A( K+1, N-L+1 ), LDA, TAU, U( 1, K+1 ), LDU, - $ WORK, INFO ) - END IF -* -* Clean up -* - DO 140 J = N - L + 1, N - DO 130 I = J - N + K + L + 1, M - A( I, J ) = ZERO - 130 CONTINUE - 140 CONTINUE -* - END IF -* - RETURN -* -* End of SGGSVP -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/slahrd.f b/dspl/liblapack/SRC/DEPRECATED/slahrd.f deleted file mode 100644 index 54503de..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/slahrd.f +++ /dev/null @@ -1,286 +0,0 @@ -*> \brief \b SLAHRD reduces the first nb columns of a general rectangular matrix A so that elements below the k-th subdiagonal are zero, and returns auxiliary matrices which are needed to apply the transformation to the unreduced part of A. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download SLAHRD + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE SLAHRD( N, K, NB, A, LDA, TAU, T, LDT, Y, LDY ) -* -* .. Scalar Arguments .. -* INTEGER K, LDA, LDT, LDY, N, NB -* .. -* .. Array Arguments .. -* REAL A( LDA, * ), T( LDT, NB ), TAU( NB ), -* $ Y( LDY, NB ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine SLAHR2. -*> -*> SLAHRD reduces the first NB columns of a real general n-by-(n-k+1) -*> matrix A so that elements below the k-th subdiagonal are zero. The -*> reduction is performed by an orthogonal similarity transformation -*> Q**T * A * Q. The routine returns the matrices V and T which determine -*> Q as a block reflector I - V*T*V**T, and also the matrix Y = A * V * T. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The order of the matrix A. -*> \endverbatim -*> -*> \param[in] K -*> \verbatim -*> K is INTEGER -*> The offset for the reduction. Elements below the k-th -*> subdiagonal in the first NB columns are reduced to zero. -*> \endverbatim -*> -*> \param[in] NB -*> \verbatim -*> NB is INTEGER -*> The number of columns to be reduced. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is REAL array, dimension (LDA,N-K+1) -*> On entry, the n-by-(n-k+1) general matrix A. -*> On exit, the elements on and above the k-th subdiagonal in -*> the first NB columns are overwritten with the corresponding -*> elements of the reduced matrix; the elements below the k-th -*> subdiagonal, with the array TAU, represent the matrix Q as a -*> product of elementary reflectors. The other columns of A are -*> unchanged. See Further Details. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of the array A. LDA >= max(1,N). -*> \endverbatim -*> -*> \param[out] TAU -*> \verbatim -*> TAU is REAL array, dimension (NB) -*> The scalar factors of the elementary reflectors. See Further -*> Details. -*> \endverbatim -*> -*> \param[out] T -*> \verbatim -*> T is REAL array, dimension (LDT,NB) -*> The upper triangular matrix T. -*> \endverbatim -*> -*> \param[in] LDT -*> \verbatim -*> LDT is INTEGER -*> The leading dimension of the array T. LDT >= NB. -*> \endverbatim -*> -*> \param[out] Y -*> \verbatim -*> Y is REAL array, dimension (LDY,NB) -*> The n-by-nb matrix Y. -*> \endverbatim -*> -*> \param[in] LDY -*> \verbatim -*> LDY is INTEGER -*> The leading dimension of the array Y. LDY >= N. -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup realOTHERauxiliary -* -*> \par Further Details: -* ===================== -*> -*> \verbatim -*> -*> The matrix Q is represented as a product of nb elementary reflectors -*> -*> Q = H(1) H(2) . . . H(nb). -*> -*> Each H(i) has the form -*> -*> H(i) = I - tau * v * v**T -*> -*> where tau is a real scalar, and v is a real vector with -*> v(1:i+k-1) = 0, v(i+k) = 1; v(i+k+1:n) is stored on exit in -*> A(i+k+1:n,i), and tau in TAU(i). -*> -*> The elements of the vectors v together form the (n-k+1)-by-nb matrix -*> V which is needed, with T and Y, to apply the transformation to the -*> unreduced part of the matrix, using an update of the form: -*> A := (I - V*T*V**T) * (A - Y*V**T). -*> -*> The contents of A on exit are illustrated by the following example -*> with n = 7, k = 3 and nb = 2: -*> -*> ( a h a a a ) -*> ( a h a a a ) -*> ( a h a a a ) -*> ( h h a a a ) -*> ( v1 h a a a ) -*> ( v1 v2 a a a ) -*> ( v1 v2 a a a ) -*> -*> where a denotes an element of the original matrix A, h denotes a -*> modified element of the upper Hessenberg matrix H, and vi denotes an -*> element of the vector defining H(i). -*> \endverbatim -*> -* ===================================================================== - SUBROUTINE SLAHRD( N, K, NB, A, LDA, TAU, T, LDT, Y, LDY ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER K, LDA, LDT, LDY, N, NB -* .. -* .. Array Arguments .. - REAL A( LDA, * ), T( LDT, NB ), TAU( NB ), - $ Y( LDY, NB ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - REAL ZERO, ONE - PARAMETER ( ZERO = 0.0E+0, ONE = 1.0E+0 ) -* .. -* .. Local Scalars .. - INTEGER I - REAL EI -* .. -* .. External Subroutines .. - EXTERNAL SAXPY, SCOPY, SGEMV, SLARFG, SSCAL, STRMV -* .. -* .. Intrinsic Functions .. - INTRINSIC MIN -* .. -* .. Executable Statements .. -* -* Quick return if possible -* - IF( N.LE.1 ) - $ RETURN -* - DO 10 I = 1, NB - IF( I.GT.1 ) THEN -* -* Update A(1:n,i) -* -* Compute i-th column of A - Y * V**T -* - CALL SGEMV( 'No transpose', N, I-1, -ONE, Y, LDY, - $ A( K+I-1, 1 ), LDA, ONE, A( 1, I ), 1 ) -* -* Apply I - V * T**T * V**T to this column (call it b) from the -* left, using the last column of T as workspace -* -* Let V = ( V1 ) and b = ( b1 ) (first I-1 rows) -* ( V2 ) ( b2 ) -* -* where V1 is unit lower triangular -* -* w := V1**T * b1 -* - CALL SCOPY( I-1, A( K+1, I ), 1, T( 1, NB ), 1 ) - CALL STRMV( 'Lower', 'Transpose', 'Unit', I-1, A( K+1, 1 ), - $ LDA, T( 1, NB ), 1 ) -* -* w := w + V2**T *b2 -* - CALL SGEMV( 'Transpose', N-K-I+1, I-1, ONE, A( K+I, 1 ), - $ LDA, A( K+I, I ), 1, ONE, T( 1, NB ), 1 ) -* -* w := T**T *w -* - CALL STRMV( 'Upper', 'Transpose', 'Non-unit', I-1, T, LDT, - $ T( 1, NB ), 1 ) -* -* b2 := b2 - V2*w -* - CALL SGEMV( 'No transpose', N-K-I+1, I-1, -ONE, A( K+I, 1 ), - $ LDA, T( 1, NB ), 1, ONE, A( K+I, I ), 1 ) -* -* b1 := b1 - V1*w -* - CALL STRMV( 'Lower', 'No transpose', 'Unit', I-1, - $ A( K+1, 1 ), LDA, T( 1, NB ), 1 ) - CALL SAXPY( I-1, -ONE, T( 1, NB ), 1, A( K+1, I ), 1 ) -* - A( K+I-1, I-1 ) = EI - END IF -* -* Generate the elementary reflector H(i) to annihilate -* A(k+i+1:n,i) -* - CALL SLARFG( N-K-I+1, A( K+I, I ), A( MIN( K+I+1, N ), I ), 1, - $ TAU( I ) ) - EI = A( K+I, I ) - A( K+I, I ) = ONE -* -* Compute Y(1:n,i) -* - CALL SGEMV( 'No transpose', N, N-K-I+1, ONE, A( 1, I+1 ), LDA, - $ A( K+I, I ), 1, ZERO, Y( 1, I ), 1 ) - CALL SGEMV( 'Transpose', N-K-I+1, I-1, ONE, A( K+I, 1 ), LDA, - $ A( K+I, I ), 1, ZERO, T( 1, I ), 1 ) - CALL SGEMV( 'No transpose', N, I-1, -ONE, Y, LDY, T( 1, I ), 1, - $ ONE, Y( 1, I ), 1 ) - CALL SSCAL( N, TAU( I ), Y( 1, I ), 1 ) -* -* Compute T(1:i,i) -* - CALL SSCAL( I-1, -TAU( I ), T( 1, I ), 1 ) - CALL STRMV( 'Upper', 'No transpose', 'Non-unit', I-1, T, LDT, - $ T( 1, I ), 1 ) - T( I, I ) = TAU( I ) -* - 10 CONTINUE - A( K+NB, NB ) = EI -* - RETURN -* -* End of SLAHRD -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/slatzm.f b/dspl/liblapack/SRC/DEPRECATED/slatzm.f deleted file mode 100644 index d523f3a..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/slatzm.f +++ /dev/null @@ -1,221 +0,0 @@ -*> \brief \b SLATZM -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download SLATZM + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE SLATZM( SIDE, M, N, V, INCV, TAU, C1, C2, LDC, WORK ) -* -* .. Scalar Arguments .. -* CHARACTER SIDE -* INTEGER INCV, LDC, M, N -* REAL TAU -* .. -* .. Array Arguments .. -* REAL C1( LDC, * ), C2( LDC, * ), V( * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine SORMRZ. -*> -*> SLATZM applies a Householder matrix generated by STZRQF to a matrix. -*> -*> Let P = I - tau*u*u**T, u = ( 1 ), -*> ( v ) -*> where v is an (m-1) vector if SIDE = 'L', or a (n-1) vector if -*> SIDE = 'R'. -*> -*> If SIDE equals 'L', let -*> C = [ C1 ] 1 -*> [ C2 ] m-1 -*> n -*> Then C is overwritten by P*C. -*> -*> If SIDE equals 'R', let -*> C = [ C1, C2 ] m -*> 1 n-1 -*> Then C is overwritten by C*P. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] SIDE -*> \verbatim -*> SIDE is CHARACTER*1 -*> = 'L': form P * C -*> = 'R': form C * P -*> \endverbatim -*> -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix C. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrix C. -*> \endverbatim -*> -*> \param[in] V -*> \verbatim -*> V is REAL array, dimension -*> (1 + (M-1)*abs(INCV)) if SIDE = 'L' -*> (1 + (N-1)*abs(INCV)) if SIDE = 'R' -*> The vector v in the representation of P. V is not used -*> if TAU = 0. -*> \endverbatim -*> -*> \param[in] INCV -*> \verbatim -*> INCV is INTEGER -*> The increment between elements of v. INCV <> 0 -*> \endverbatim -*> -*> \param[in] TAU -*> \verbatim -*> TAU is REAL -*> The value tau in the representation of P. -*> \endverbatim -*> -*> \param[in,out] C1 -*> \verbatim -*> C1 is REAL array, dimension -*> (LDC,N) if SIDE = 'L' -*> (M,1) if SIDE = 'R' -*> On entry, the n-vector C1 if SIDE = 'L', or the m-vector C1 -*> if SIDE = 'R'. -*> -*> On exit, the first row of P*C if SIDE = 'L', or the first -*> column of C*P if SIDE = 'R'. -*> \endverbatim -*> -*> \param[in,out] C2 -*> \verbatim -*> C2 is REAL array, dimension -*> (LDC, N) if SIDE = 'L' -*> (LDC, N-1) if SIDE = 'R' -*> On entry, the (m - 1) x n matrix C2 if SIDE = 'L', or the -*> m x (n - 1) matrix C2 if SIDE = 'R'. -*> -*> On exit, rows 2:m of P*C if SIDE = 'L', or columns 2:m of C*P -*> if SIDE = 'R'. -*> \endverbatim -*> -*> \param[in] LDC -*> \verbatim -*> LDC is INTEGER -*> The leading dimension of the arrays C1 and C2. LDC >= (1,M). -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is REAL array, dimension -*> (N) if SIDE = 'L' -*> (M) if SIDE = 'R' -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup realOTHERcomputational -* -* ===================================================================== - SUBROUTINE SLATZM( SIDE, M, N, V, INCV, TAU, C1, C2, LDC, WORK ) -* -* -- LAPACK computational routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER SIDE - INTEGER INCV, LDC, M, N - REAL TAU -* .. -* .. Array Arguments .. - REAL C1( LDC, * ), C2( LDC, * ), V( * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - REAL ONE, ZERO - PARAMETER ( ONE = 1.0E+0, ZERO = 0.0E+0 ) -* .. -* .. External Subroutines .. - EXTERNAL SAXPY, SCOPY, SGEMV, SGER -* .. -* .. External Functions .. - LOGICAL LSAME - EXTERNAL LSAME -* .. -* .. Intrinsic Functions .. - INTRINSIC MIN -* .. -* .. Executable Statements .. -* - IF( ( MIN( M, N ).EQ.0 ) .OR. ( TAU.EQ.ZERO ) ) - $ RETURN -* - IF( LSAME( SIDE, 'L' ) ) THEN -* -* w := (C1 + v**T * C2)**T -* - CALL SCOPY( N, C1, LDC, WORK, 1 ) - CALL SGEMV( 'Transpose', M-1, N, ONE, C2, LDC, V, INCV, ONE, - $ WORK, 1 ) -* -* [ C1 ] := [ C1 ] - tau* [ 1 ] * w**T -* [ C2 ] [ C2 ] [ v ] -* - CALL SAXPY( N, -TAU, WORK, 1, C1, LDC ) - CALL SGER( M-1, N, -TAU, V, INCV, WORK, 1, C2, LDC ) -* - ELSE IF( LSAME( SIDE, 'R' ) ) THEN -* -* w := C1 + C2 * v -* - CALL SCOPY( M, C1, 1, WORK, 1 ) - CALL SGEMV( 'No transpose', M, N-1, ONE, C2, LDC, V, INCV, ONE, - $ WORK, 1 ) -* -* [ C1, C2 ] := [ C1, C2 ] - tau* w * [ 1 , v**T] -* - CALL SAXPY( M, -TAU, WORK, 1, C1, 1 ) - CALL SGER( M, N-1, -TAU, WORK, 1, V, INCV, C2, LDC ) - END IF -* - RETURN -* -* End of SLATZM -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/stzrqf.f b/dspl/liblapack/SRC/DEPRECATED/stzrqf.f deleted file mode 100644 index 57c4419..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/stzrqf.f +++ /dev/null @@ -1,232 +0,0 @@ -*> \brief \b STZRQF -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download STZRQF + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE STZRQF( M, N, A, LDA, TAU, INFO ) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. -* REAL A( LDA, * ), TAU( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine STZRZF. -*> -*> STZRQF reduces the M-by-N ( M<=N ) real upper trapezoidal matrix A -*> to upper triangular form by means of orthogonal transformations. -*> -*> The upper trapezoidal matrix A is factored as -*> -*> A = ( R 0 ) * Z, -*> -*> where Z is an N-by-N orthogonal matrix and R is an M-by-M upper -*> triangular matrix. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix A. M >= 0. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrix A. N >= M. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is REAL array, dimension (LDA,N) -*> On entry, the leading M-by-N upper trapezoidal part of the -*> array A must contain the matrix to be factorized. -*> On exit, the leading M-by-M upper triangular part of A -*> contains the upper triangular matrix R, and elements M+1 to -*> N of the first M rows of A, with the array TAU, represent the -*> orthogonal matrix Z as a product of M elementary reflectors. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of the array A. LDA >= max(1,M). -*> \endverbatim -*> -*> \param[out] TAU -*> \verbatim -*> TAU is REAL array, dimension (M) -*> The scalar factors of the elementary reflectors. -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup realOTHERcomputational -* -*> \par Further Details: -* ===================== -*> -*> \verbatim -*> -*> The factorization is obtained by Householder's method. The kth -*> transformation matrix, Z( k ), which is used to introduce zeros into -*> the ( m - k + 1 )th row of A, is given in the form -*> -*> Z( k ) = ( I 0 ), -*> ( 0 T( k ) ) -*> -*> where -*> -*> T( k ) = I - tau*u( k )*u( k )**T, u( k ) = ( 1 ), -*> ( 0 ) -*> ( z( k ) ) -*> -*> tau is a scalar and z( k ) is an ( n - m ) element vector. -*> tau and z( k ) are chosen to annihilate the elements of the kth row -*> of X. -*> -*> The scalar tau is returned in the kth element of TAU and the vector -*> u( k ) in the kth row of A, such that the elements of z( k ) are -*> in a( k, m + 1 ), ..., a( k, n ). The elements of R are returned in -*> the upper triangular part of A. -*> -*> Z is given by -*> -*> Z = Z( 1 ) * Z( 2 ) * ... * Z( m ). -*> \endverbatim -*> -* ===================================================================== - SUBROUTINE STZRQF( M, N, A, LDA, TAU, INFO ) -* -* -- LAPACK computational routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. - REAL A( LDA, * ), TAU( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - REAL ONE, ZERO - PARAMETER ( ONE = 1.0E+0, ZERO = 0.0E+0 ) -* .. -* .. Local Scalars .. - INTEGER I, K, M1 -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. External Subroutines .. - EXTERNAL SAXPY, SCOPY, SGEMV, SGER, SLARFG, XERBLA -* .. -* .. Executable Statements .. -* -* Test the input parameters. -* - INFO = 0 - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.M ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'STZRQF', -INFO ) - RETURN - END IF -* -* Perform the factorization. -* - IF( M.EQ.0 ) - $ RETURN - IF( M.EQ.N ) THEN - DO 10 I = 1, N - TAU( I ) = ZERO - 10 CONTINUE - ELSE - M1 = MIN( M+1, N ) - DO 20 K = M, 1, -1 -* -* Use a Householder reflection to zero the kth row of A. -* First set up the reflection. -* - CALL SLARFG( N-M+1, A( K, K ), A( K, M1 ), LDA, TAU( K ) ) -* - IF( ( TAU( K ).NE.ZERO ) .AND. ( K.GT.1 ) ) THEN -* -* We now perform the operation A := A*P( k ). -* -* Use the first ( k - 1 ) elements of TAU to store a( k ), -* where a( k ) consists of the first ( k - 1 ) elements of -* the kth column of A. Also let B denote the first -* ( k - 1 ) rows of the last ( n - m ) columns of A. -* - CALL SCOPY( K-1, A( 1, K ), 1, TAU, 1 ) -* -* Form w = a( k ) + B*z( k ) in TAU. -* - CALL SGEMV( 'No transpose', K-1, N-M, ONE, A( 1, M1 ), - $ LDA, A( K, M1 ), LDA, ONE, TAU, 1 ) -* -* Now form a( k ) := a( k ) - tau*w -* and B := B - tau*w*z( k )**T. -* - CALL SAXPY( K-1, -TAU( K ), TAU, 1, A( 1, K ), 1 ) - CALL SGER( K-1, N-M, -TAU( K ), TAU, 1, A( K, M1 ), LDA, - $ A( 1, M1 ), LDA ) - END IF - 20 CONTINUE - END IF -* - RETURN -* -* End of STZRQF -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/zgegs.f b/dspl/liblapack/SRC/DEPRECATED/zgegs.f deleted file mode 100644 index 038e952..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/zgegs.f +++ /dev/null @@ -1,531 +0,0 @@ -*> \brief ZGEEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download ZGEGS + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE ZGEGS( JOBVSL, JOBVSR, N, A, LDA, B, LDB, ALPHA, BETA, -* VSL, LDVSL, VSR, LDVSR, WORK, LWORK, RWORK, -* INFO ) -* -* .. Scalar Arguments .. -* CHARACTER JOBVSL, JOBVSR -* INTEGER INFO, LDA, LDB, LDVSL, LDVSR, LWORK, N -* .. -* .. Array Arguments .. -* DOUBLE PRECISION RWORK( * ) -* COMPLEX*16 A( LDA, * ), ALPHA( * ), B( LDB, * ), -* $ BETA( * ), VSL( LDVSL, * ), VSR( LDVSR, * ), -* $ WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine ZGGES. -*> -*> ZGEGS computes the eigenvalues, Schur form, and, optionally, the -*> left and or/right Schur vectors of a complex matrix pair (A,B). -*> Given two square matrices A and B, the generalized Schur -*> factorization has the form -*> -*> A = Q*S*Z**H, B = Q*T*Z**H -*> -*> where Q and Z are unitary matrices and S and T are upper triangular. -*> The columns of Q are the left Schur vectors -*> and the columns of Z are the right Schur vectors. -*> -*> If only the eigenvalues of (A,B) are needed, the driver routine -*> ZGEGV should be used instead. See ZGEGV for a description of the -*> eigenvalues of the generalized nonsymmetric eigenvalue problem -*> (GNEP). -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] JOBVSL -*> \verbatim -*> JOBVSL is CHARACTER*1 -*> = 'N': do not compute the left Schur vectors; -*> = 'V': compute the left Schur vectors (returned in VSL). -*> \endverbatim -*> -*> \param[in] JOBVSR -*> \verbatim -*> JOBVSR is CHARACTER*1 -*> = 'N': do not compute the right Schur vectors; -*> = 'V': compute the right Schur vectors (returned in VSR). -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The order of the matrices A, B, VSL, and VSR. N >= 0. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is COMPLEX*16 array, dimension (LDA, N) -*> On entry, the matrix A. -*> On exit, the upper triangular matrix S from the generalized -*> Schur factorization. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of A. LDA >= max(1,N). -*> \endverbatim -*> -*> \param[in,out] B -*> \verbatim -*> B is COMPLEX*16 array, dimension (LDB, N) -*> On entry, the matrix B. -*> On exit, the upper triangular matrix T from the generalized -*> Schur factorization. -*> \endverbatim -*> -*> \param[in] LDB -*> \verbatim -*> LDB is INTEGER -*> The leading dimension of B. LDB >= max(1,N). -*> \endverbatim -*> -*> \param[out] ALPHA -*> \verbatim -*> ALPHA is COMPLEX*16 array, dimension (N) -*> The complex scalars alpha that define the eigenvalues of -*> GNEP. ALPHA(j) = S(j,j), the diagonal element of the Schur -*> form of A. -*> \endverbatim -*> -*> \param[out] BETA -*> \verbatim -*> BETA is COMPLEX*16 array, dimension (N) -*> The non-negative real scalars beta that define the -*> eigenvalues of GNEP. BETA(j) = T(j,j), the diagonal element -*> of the triangular factor T. -*> -*> Together, the quantities alpha = ALPHA(j) and beta = BETA(j) -*> represent the j-th eigenvalue of the matrix pair (A,B), in -*> one of the forms lambda = alpha/beta or mu = beta/alpha. -*> Since either lambda or mu may overflow, they should not, -*> in general, be computed. -*> \endverbatim -*> -*> \param[out] VSL -*> \verbatim -*> VSL is COMPLEX*16 array, dimension (LDVSL,N) -*> If JOBVSL = 'V', the matrix of left Schur vectors Q. -*> Not referenced if JOBVSL = 'N'. -*> \endverbatim -*> -*> \param[in] LDVSL -*> \verbatim -*> LDVSL is INTEGER -*> The leading dimension of the matrix VSL. LDVSL >= 1, and -*> if JOBVSL = 'V', LDVSL >= N. -*> \endverbatim -*> -*> \param[out] VSR -*> \verbatim -*> VSR is COMPLEX*16 array, dimension (LDVSR,N) -*> If JOBVSR = 'V', the matrix of right Schur vectors Z. -*> Not referenced if JOBVSR = 'N'. -*> \endverbatim -*> -*> \param[in] LDVSR -*> \verbatim -*> LDVSR is INTEGER -*> The leading dimension of the matrix VSR. LDVSR >= 1, and -*> if JOBVSR = 'V', LDVSR >= N. -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) -*> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. -*> \endverbatim -*> -*> \param[in] LWORK -*> \verbatim -*> LWORK is INTEGER -*> The dimension of the array WORK. LWORK >= max(1,2*N). -*> For good performance, LWORK must generally be larger. -*> To compute the optimal value of LWORK, call ILAENV to get -*> blocksizes (for ZGEQRF, ZUNMQR, and CUNGQR.) Then compute: -*> NB -- MAX of the blocksizes for ZGEQRF, ZUNMQR, and CUNGQR; -*> the optimal LWORK is N*(NB+1). -*> -*> If LWORK = -1, then a workspace query is assumed; the routine -*> only calculates the optimal size of the WORK array, returns -*> this value as the first entry of the WORK array, and no error -*> message related to LWORK is issued by XERBLA. -*> \endverbatim -*> -*> \param[out] RWORK -*> \verbatim -*> RWORK is DOUBLE PRECISION array, dimension (3*N) -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value. -*> =1,...,N: -*> The QZ iteration failed. (A,B) are not in Schur -*> form, but ALPHA(j) and BETA(j) should be correct for -*> j=INFO+1,...,N. -*> > N: errors that usually indicate LAPACK problems: -*> =N+1: error return from ZGGBAL -*> =N+2: error return from ZGEQRF -*> =N+3: error return from ZUNMQR -*> =N+4: error return from ZUNGQR -*> =N+5: error return from ZGGHRD -*> =N+6: error return from ZHGEQZ (other than failed -*> iteration) -*> =N+7: error return from ZGGBAK (computing VSL) -*> =N+8: error return from ZGGBAK (computing VSR) -*> =N+9: error return from ZLASCL (various places) -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup complex16GEeigen -* -* ===================================================================== - SUBROUTINE ZGEGS( JOBVSL, JOBVSR, N, A, LDA, B, LDB, ALPHA, BETA, - $ VSL, LDVSL, VSR, LDVSR, WORK, LWORK, RWORK, - $ INFO ) -* -* -- LAPACK driver routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER JOBVSL, JOBVSR - INTEGER INFO, LDA, LDB, LDVSL, LDVSR, LWORK, N -* .. -* .. Array Arguments .. - DOUBLE PRECISION RWORK( * ) - COMPLEX*16 A( LDA, * ), ALPHA( * ), B( LDB, * ), - $ BETA( * ), VSL( LDVSL, * ), VSR( LDVSR, * ), - $ WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - DOUBLE PRECISION ZERO, ONE - PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 ) - COMPLEX*16 CZERO, CONE - PARAMETER ( CZERO = ( 0.0D0, 0.0D0 ), - $ CONE = ( 1.0D0, 0.0D0 ) ) -* .. -* .. Local Scalars .. - LOGICAL ILASCL, ILBSCL, ILVSL, ILVSR, LQUERY - INTEGER ICOLS, IHI, IINFO, IJOBVL, IJOBVR, ILEFT, ILO, - $ IRIGHT, IROWS, IRWORK, ITAU, IWORK, LOPT, - $ LWKMIN, LWKOPT, NB, NB1, NB2, NB3 - DOUBLE PRECISION ANRM, ANRMTO, BIGNUM, BNRM, BNRMTO, EPS, - $ SAFMIN, SMLNUM -* .. -* .. External Subroutines .. - EXTERNAL XERBLA, ZGEQRF, ZGGBAK, ZGGBAL, ZGGHRD, ZHGEQZ, - $ ZLACPY, ZLASCL, ZLASET, ZUNGQR, ZUNMQR -* .. -* .. External Functions .. - LOGICAL LSAME - INTEGER ILAENV - DOUBLE PRECISION DLAMCH, ZLANGE - EXTERNAL LSAME, ILAENV, DLAMCH, ZLANGE -* .. -* .. Intrinsic Functions .. - INTRINSIC INT, MAX -* .. -* .. Executable Statements .. -* -* Decode the input arguments -* - IF( LSAME( JOBVSL, 'N' ) ) THEN - IJOBVL = 1 - ILVSL = .FALSE. - ELSE IF( LSAME( JOBVSL, 'V' ) ) THEN - IJOBVL = 2 - ILVSL = .TRUE. - ELSE - IJOBVL = -1 - ILVSL = .FALSE. - END IF -* - IF( LSAME( JOBVSR, 'N' ) ) THEN - IJOBVR = 1 - ILVSR = .FALSE. - ELSE IF( LSAME( JOBVSR, 'V' ) ) THEN - IJOBVR = 2 - ILVSR = .TRUE. - ELSE - IJOBVR = -1 - ILVSR = .FALSE. - END IF -* -* Test the input arguments -* - LWKMIN = MAX( 2*N, 1 ) - LWKOPT = LWKMIN - WORK( 1 ) = LWKOPT - LQUERY = ( LWORK.EQ.-1 ) - INFO = 0 - IF( IJOBVL.LE.0 ) THEN - INFO = -1 - ELSE IF( IJOBVR.LE.0 ) THEN - INFO = -2 - ELSE IF( N.LT.0 ) THEN - INFO = -3 - ELSE IF( LDA.LT.MAX( 1, N ) ) THEN - INFO = -5 - ELSE IF( LDB.LT.MAX( 1, N ) ) THEN - INFO = -7 - ELSE IF( LDVSL.LT.1 .OR. ( ILVSL .AND. LDVSL.LT.N ) ) THEN - INFO = -11 - ELSE IF( LDVSR.LT.1 .OR. ( ILVSR .AND. LDVSR.LT.N ) ) THEN - INFO = -13 - ELSE IF( LWORK.LT.LWKMIN .AND. .NOT.LQUERY ) THEN - INFO = -15 - END IF -* - IF( INFO.EQ.0 ) THEN - NB1 = ILAENV( 1, 'ZGEQRF', ' ', N, N, -1, -1 ) - NB2 = ILAENV( 1, 'ZUNMQR', ' ', N, N, N, -1 ) - NB3 = ILAENV( 1, 'ZUNGQR', ' ', N, N, N, -1 ) - NB = MAX( NB1, NB2, NB3 ) - LOPT = N*( NB+1 ) - WORK( 1 ) = LOPT - END IF -* - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'ZGEGS ', -INFO ) - RETURN - ELSE IF( LQUERY ) THEN - RETURN - END IF -* -* Quick return if possible -* - IF( N.EQ.0 ) - $ RETURN -* -* Get machine constants -* - EPS = DLAMCH( 'E' )*DLAMCH( 'B' ) - SAFMIN = DLAMCH( 'S' ) - SMLNUM = N*SAFMIN / EPS - BIGNUM = ONE / SMLNUM -* -* Scale A if max element outside range [SMLNUM,BIGNUM] -* - ANRM = ZLANGE( 'M', N, N, A, LDA, RWORK ) - ILASCL = .FALSE. - IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN - ANRMTO = SMLNUM - ILASCL = .TRUE. - ELSE IF( ANRM.GT.BIGNUM ) THEN - ANRMTO = BIGNUM - ILASCL = .TRUE. - END IF -* - IF( ILASCL ) THEN - CALL ZLASCL( 'G', -1, -1, ANRM, ANRMTO, N, N, A, LDA, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - END IF -* -* Scale B if max element outside range [SMLNUM,BIGNUM] -* - BNRM = ZLANGE( 'M', N, N, B, LDB, RWORK ) - ILBSCL = .FALSE. - IF( BNRM.GT.ZERO .AND. BNRM.LT.SMLNUM ) THEN - BNRMTO = SMLNUM - ILBSCL = .TRUE. - ELSE IF( BNRM.GT.BIGNUM ) THEN - BNRMTO = BIGNUM - ILBSCL = .TRUE. - END IF -* - IF( ILBSCL ) THEN - CALL ZLASCL( 'G', -1, -1, BNRM, BNRMTO, N, N, B, LDB, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - END IF -* -* Permute the matrix to make it more nearly triangular -* - ILEFT = 1 - IRIGHT = N + 1 - IRWORK = IRIGHT + N - IWORK = 1 - CALL ZGGBAL( 'P', N, A, LDA, B, LDB, ILO, IHI, RWORK( ILEFT ), - $ RWORK( IRIGHT ), RWORK( IRWORK ), IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 1 - GO TO 10 - END IF -* -* Reduce B to triangular form, and initialize VSL and/or VSR -* - IROWS = IHI + 1 - ILO - ICOLS = N + 1 - ILO - ITAU = IWORK - IWORK = ITAU + IROWS - CALL ZGEQRF( IROWS, ICOLS, B( ILO, ILO ), LDB, WORK( ITAU ), - $ WORK( IWORK ), LWORK+1-IWORK, IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - INFO = N + 2 - GO TO 10 - END IF -* - CALL ZUNMQR( 'L', 'C', IROWS, ICOLS, IROWS, B( ILO, ILO ), LDB, - $ WORK( ITAU ), A( ILO, ILO ), LDA, WORK( IWORK ), - $ LWORK+1-IWORK, IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - INFO = N + 3 - GO TO 10 - END IF -* - IF( ILVSL ) THEN - CALL ZLASET( 'Full', N, N, CZERO, CONE, VSL, LDVSL ) - CALL ZLACPY( 'L', IROWS-1, IROWS-1, B( ILO+1, ILO ), LDB, - $ VSL( ILO+1, ILO ), LDVSL ) - CALL ZUNGQR( IROWS, IROWS, IROWS, VSL( ILO, ILO ), LDVSL, - $ WORK( ITAU ), WORK( IWORK ), LWORK+1-IWORK, - $ IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - INFO = N + 4 - GO TO 10 - END IF - END IF -* - IF( ILVSR ) - $ CALL ZLASET( 'Full', N, N, CZERO, CONE, VSR, LDVSR ) -* -* Reduce to generalized Hessenberg form -* - CALL ZGGHRD( JOBVSL, JOBVSR, N, ILO, IHI, A, LDA, B, LDB, VSL, - $ LDVSL, VSR, LDVSR, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 5 - GO TO 10 - END IF -* -* Perform QZ algorithm, computing Schur vectors if desired -* - IWORK = ITAU - CALL ZHGEQZ( 'S', JOBVSL, JOBVSR, N, ILO, IHI, A, LDA, B, LDB, - $ ALPHA, BETA, VSL, LDVSL, VSR, LDVSR, WORK( IWORK ), - $ LWORK+1-IWORK, RWORK( IRWORK ), IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - IF( IINFO.GT.0 .AND. IINFO.LE.N ) THEN - INFO = IINFO - ELSE IF( IINFO.GT.N .AND. IINFO.LE.2*N ) THEN - INFO = IINFO - N - ELSE - INFO = N + 6 - END IF - GO TO 10 - END IF -* -* Apply permutation to VSL and VSR -* - IF( ILVSL ) THEN - CALL ZGGBAK( 'P', 'L', N, ILO, IHI, RWORK( ILEFT ), - $ RWORK( IRIGHT ), N, VSL, LDVSL, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 7 - GO TO 10 - END IF - END IF - IF( ILVSR ) THEN - CALL ZGGBAK( 'P', 'R', N, ILO, IHI, RWORK( ILEFT ), - $ RWORK( IRIGHT ), N, VSR, LDVSR, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 8 - GO TO 10 - END IF - END IF -* -* Undo scaling -* - IF( ILASCL ) THEN - CALL ZLASCL( 'U', -1, -1, ANRMTO, ANRM, N, N, A, LDA, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - CALL ZLASCL( 'G', -1, -1, ANRMTO, ANRM, N, 1, ALPHA, N, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - END IF -* - IF( ILBSCL ) THEN - CALL ZLASCL( 'U', -1, -1, BNRMTO, BNRM, N, N, B, LDB, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - CALL ZLASCL( 'G', -1, -1, BNRMTO, BNRM, N, 1, BETA, N, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - RETURN - END IF - END IF -* - 10 CONTINUE - WORK( 1 ) = LWKOPT -* - RETURN -* -* End of ZGEGS -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/zgegv.f b/dspl/liblapack/SRC/DEPRECATED/zgegv.f deleted file mode 100644 index 0f66295..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/zgegv.f +++ /dev/null @@ -1,706 +0,0 @@ -*> \brief ZGEEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download ZGEGV + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE ZGEGV( JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHA, BETA, -* VL, LDVL, VR, LDVR, WORK, LWORK, RWORK, INFO ) -* -* .. Scalar Arguments .. -* CHARACTER JOBVL, JOBVR -* INTEGER INFO, LDA, LDB, LDVL, LDVR, LWORK, N -* .. -* .. Array Arguments .. -* DOUBLE PRECISION RWORK( * ) -* COMPLEX*16 A( LDA, * ), ALPHA( * ), B( LDB, * ), -* $ BETA( * ), VL( LDVL, * ), VR( LDVR, * ), -* $ WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine ZGGEV. -*> -*> ZGEGV computes the eigenvalues and, optionally, the left and/or right -*> eigenvectors of a complex matrix pair (A,B). -*> Given two square matrices A and B, -*> the generalized nonsymmetric eigenvalue problem (GNEP) is to find the -*> eigenvalues lambda and corresponding (non-zero) eigenvectors x such -*> that -*> A*x = lambda*B*x. -*> -*> An alternate form is to find the eigenvalues mu and corresponding -*> eigenvectors y such that -*> mu*A*y = B*y. -*> -*> These two forms are equivalent with mu = 1/lambda and x = y if -*> neither lambda nor mu is zero. In order to deal with the case that -*> lambda or mu is zero or small, two values alpha and beta are returned -*> for each eigenvalue, such that lambda = alpha/beta and -*> mu = beta/alpha. -*> -*> The vectors x and y in the above equations are right eigenvectors of -*> the matrix pair (A,B). Vectors u and v satisfying -*> u**H*A = lambda*u**H*B or mu*v**H*A = v**H*B -*> are left eigenvectors of (A,B). -*> -*> Note: this routine performs "full balancing" on A and B -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] JOBVL -*> \verbatim -*> JOBVL is CHARACTER*1 -*> = 'N': do not compute the left generalized eigenvectors; -*> = 'V': compute the left generalized eigenvectors (returned -*> in VL). -*> \endverbatim -*> -*> \param[in] JOBVR -*> \verbatim -*> JOBVR is CHARACTER*1 -*> = 'N': do not compute the right generalized eigenvectors; -*> = 'V': compute the right generalized eigenvectors (returned -*> in VR). -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The order of the matrices A, B, VL, and VR. N >= 0. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is COMPLEX*16 array, dimension (LDA, N) -*> On entry, the matrix A. -*> If JOBVL = 'V' or JOBVR = 'V', then on exit A -*> contains the Schur form of A from the generalized Schur -*> factorization of the pair (A,B) after balancing. If no -*> eigenvectors were computed, then only the diagonal elements -*> of the Schur form will be correct. See ZGGHRD and ZHGEQZ -*> for details. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of A. LDA >= max(1,N). -*> \endverbatim -*> -*> \param[in,out] B -*> \verbatim -*> B is COMPLEX*16 array, dimension (LDB, N) -*> On entry, the matrix B. -*> If JOBVL = 'V' or JOBVR = 'V', then on exit B contains the -*> upper triangular matrix obtained from B in the generalized -*> Schur factorization of the pair (A,B) after balancing. -*> If no eigenvectors were computed, then only the diagonal -*> elements of B will be correct. See ZGGHRD and ZHGEQZ for -*> details. -*> \endverbatim -*> -*> \param[in] LDB -*> \verbatim -*> LDB is INTEGER -*> The leading dimension of B. LDB >= max(1,N). -*> \endverbatim -*> -*> \param[out] ALPHA -*> \verbatim -*> ALPHA is COMPLEX*16 array, dimension (N) -*> The complex scalars alpha that define the eigenvalues of -*> GNEP. -*> \endverbatim -*> -*> \param[out] BETA -*> \verbatim -*> BETA is COMPLEX*16 array, dimension (N) -*> The complex scalars beta that define the eigenvalues of GNEP. -*> -*> Together, the quantities alpha = ALPHA(j) and beta = BETA(j) -*> represent the j-th eigenvalue of the matrix pair (A,B), in -*> one of the forms lambda = alpha/beta or mu = beta/alpha. -*> Since either lambda or mu may overflow, they should not, -*> in general, be computed. -*> \endverbatim -*> -*> \param[out] VL -*> \verbatim -*> VL is COMPLEX*16 array, dimension (LDVL,N) -*> If JOBVL = 'V', the left eigenvectors u(j) are stored -*> in the columns of VL, in the same order as their eigenvalues. -*> Each eigenvector is scaled so that its largest component has -*> abs(real part) + abs(imag. part) = 1, except for eigenvectors -*> corresponding to an eigenvalue with alpha = beta = 0, which -*> are set to zero. -*> Not referenced if JOBVL = 'N'. -*> \endverbatim -*> -*> \param[in] LDVL -*> \verbatim -*> LDVL is INTEGER -*> The leading dimension of the matrix VL. LDVL >= 1, and -*> if JOBVL = 'V', LDVL >= N. -*> \endverbatim -*> -*> \param[out] VR -*> \verbatim -*> VR is COMPLEX*16 array, dimension (LDVR,N) -*> If JOBVR = 'V', the right eigenvectors x(j) are stored -*> in the columns of VR, in the same order as their eigenvalues. -*> Each eigenvector is scaled so that its largest component has -*> abs(real part) + abs(imag. part) = 1, except for eigenvectors -*> corresponding to an eigenvalue with alpha = beta = 0, which -*> are set to zero. -*> Not referenced if JOBVR = 'N'. -*> \endverbatim -*> -*> \param[in] LDVR -*> \verbatim -*> LDVR is INTEGER -*> The leading dimension of the matrix VR. LDVR >= 1, and -*> if JOBVR = 'V', LDVR >= N. -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) -*> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. -*> \endverbatim -*> -*> \param[in] LWORK -*> \verbatim -*> LWORK is INTEGER -*> The dimension of the array WORK. LWORK >= max(1,2*N). -*> For good performance, LWORK must generally be larger. -*> To compute the optimal value of LWORK, call ILAENV to get -*> blocksizes (for ZGEQRF, ZUNMQR, and ZUNGQR.) Then compute: -*> NB -- MAX of the blocksizes for ZGEQRF, ZUNMQR, and ZUNGQR; -*> The optimal LWORK is MAX( 2*N, N*(NB+1) ). -*> -*> If LWORK = -1, then a workspace query is assumed; the routine -*> only calculates the optimal size of the WORK array, returns -*> this value as the first entry of the WORK array, and no error -*> message related to LWORK is issued by XERBLA. -*> \endverbatim -*> -*> \param[out] RWORK -*> \verbatim -*> RWORK is DOUBLE PRECISION array, dimension (8*N) -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value. -*> =1,...,N: -*> The QZ iteration failed. No eigenvectors have been -*> calculated, but ALPHA(j) and BETA(j) should be -*> correct for j=INFO+1,...,N. -*> > N: errors that usually indicate LAPACK problems: -*> =N+1: error return from ZGGBAL -*> =N+2: error return from ZGEQRF -*> =N+3: error return from ZUNMQR -*> =N+4: error return from ZUNGQR -*> =N+5: error return from ZGGHRD -*> =N+6: error return from ZHGEQZ (other than failed -*> iteration) -*> =N+7: error return from ZTGEVC -*> =N+8: error return from ZGGBAK (computing VL) -*> =N+9: error return from ZGGBAK (computing VR) -*> =N+10: error return from ZLASCL (various calls) -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup complex16GEeigen -* -*> \par Further Details: -* ===================== -*> -*> \verbatim -*> -*> Balancing -*> --------- -*> -*> This driver calls ZGGBAL to both permute and scale rows and columns -*> of A and B. The permutations PL and PR are chosen so that PL*A*PR -*> and PL*B*R will be upper triangular except for the diagonal blocks -*> A(i:j,i:j) and B(i:j,i:j), with i and j as close together as -*> possible. The diagonal scaling matrices DL and DR are chosen so -*> that the pair DL*PL*A*PR*DR, DL*PL*B*PR*DR have elements close to -*> one (except for the elements that start out zero.) -*> -*> After the eigenvalues and eigenvectors of the balanced matrices -*> have been computed, ZGGBAK transforms the eigenvectors back to what -*> they would have been (in perfect arithmetic) if they had not been -*> balanced. -*> -*> Contents of A and B on Exit -*> -------- -- - --- - -- ---- -*> -*> If any eigenvectors are computed (either JOBVL='V' or JOBVR='V' or -*> both), then on exit the arrays A and B will contain the complex Schur -*> form[*] of the "balanced" versions of A and B. If no eigenvectors -*> are computed, then only the diagonal blocks will be correct. -*> -*> [*] In other words, upper triangular form. -*> \endverbatim -*> -* ===================================================================== - SUBROUTINE ZGEGV( JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHA, BETA, - $ VL, LDVL, VR, LDVR, WORK, LWORK, RWORK, INFO ) -* -* -- LAPACK driver routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER JOBVL, JOBVR - INTEGER INFO, LDA, LDB, LDVL, LDVR, LWORK, N -* .. -* .. Array Arguments .. - DOUBLE PRECISION RWORK( * ) - COMPLEX*16 A( LDA, * ), ALPHA( * ), B( LDB, * ), - $ BETA( * ), VL( LDVL, * ), VR( LDVR, * ), - $ WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - DOUBLE PRECISION ZERO, ONE - PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 ) - COMPLEX*16 CZERO, CONE - PARAMETER ( CZERO = ( 0.0D0, 0.0D0 ), - $ CONE = ( 1.0D0, 0.0D0 ) ) -* .. -* .. Local Scalars .. - LOGICAL ILIMIT, ILV, ILVL, ILVR, LQUERY - CHARACTER CHTEMP - INTEGER ICOLS, IHI, IINFO, IJOBVL, IJOBVR, ILEFT, ILO, - $ IN, IRIGHT, IROWS, IRWORK, ITAU, IWORK, JC, JR, - $ LOPT, LWKMIN, LWKOPT, NB, NB1, NB2, NB3 - DOUBLE PRECISION ABSAI, ABSAR, ABSB, ANRM, ANRM1, ANRM2, BNRM, - $ BNRM1, BNRM2, EPS, SAFMAX, SAFMIN, SALFAI, - $ SALFAR, SBETA, SCALE, TEMP - COMPLEX*16 X -* .. -* .. Local Arrays .. - LOGICAL LDUMMA( 1 ) -* .. -* .. External Subroutines .. - EXTERNAL XERBLA, ZGEQRF, ZGGBAK, ZGGBAL, ZGGHRD, ZHGEQZ, - $ ZLACPY, ZLASCL, ZLASET, ZTGEVC, ZUNGQR, ZUNMQR -* .. -* .. External Functions .. - LOGICAL LSAME - INTEGER ILAENV - DOUBLE PRECISION DLAMCH, ZLANGE - EXTERNAL LSAME, ILAENV, DLAMCH, ZLANGE -* .. -* .. Intrinsic Functions .. - INTRINSIC ABS, DBLE, DCMPLX, DIMAG, INT, MAX -* .. -* .. Statement Functions .. - DOUBLE PRECISION ABS1 -* .. -* .. Statement Function definitions .. - ABS1( X ) = ABS( DBLE( X ) ) + ABS( DIMAG( X ) ) -* .. -* .. Executable Statements .. -* -* Decode the input arguments -* - IF( LSAME( JOBVL, 'N' ) ) THEN - IJOBVL = 1 - ILVL = .FALSE. - ELSE IF( LSAME( JOBVL, 'V' ) ) THEN - IJOBVL = 2 - ILVL = .TRUE. - ELSE - IJOBVL = -1 - ILVL = .FALSE. - END IF -* - IF( LSAME( JOBVR, 'N' ) ) THEN - IJOBVR = 1 - ILVR = .FALSE. - ELSE IF( LSAME( JOBVR, 'V' ) ) THEN - IJOBVR = 2 - ILVR = .TRUE. - ELSE - IJOBVR = -1 - ILVR = .FALSE. - END IF - ILV = ILVL .OR. ILVR -* -* Test the input arguments -* - LWKMIN = MAX( 2*N, 1 ) - LWKOPT = LWKMIN - WORK( 1 ) = LWKOPT - LQUERY = ( LWORK.EQ.-1 ) - INFO = 0 - IF( IJOBVL.LE.0 ) THEN - INFO = -1 - ELSE IF( IJOBVR.LE.0 ) THEN - INFO = -2 - ELSE IF( N.LT.0 ) THEN - INFO = -3 - ELSE IF( LDA.LT.MAX( 1, N ) ) THEN - INFO = -5 - ELSE IF( LDB.LT.MAX( 1, N ) ) THEN - INFO = -7 - ELSE IF( LDVL.LT.1 .OR. ( ILVL .AND. LDVL.LT.N ) ) THEN - INFO = -11 - ELSE IF( LDVR.LT.1 .OR. ( ILVR .AND. LDVR.LT.N ) ) THEN - INFO = -13 - ELSE IF( LWORK.LT.LWKMIN .AND. .NOT.LQUERY ) THEN - INFO = -15 - END IF -* - IF( INFO.EQ.0 ) THEN - NB1 = ILAENV( 1, 'ZGEQRF', ' ', N, N, -1, -1 ) - NB2 = ILAENV( 1, 'ZUNMQR', ' ', N, N, N, -1 ) - NB3 = ILAENV( 1, 'ZUNGQR', ' ', N, N, N, -1 ) - NB = MAX( NB1, NB2, NB3 ) - LOPT = MAX( 2*N, N*( NB+1 ) ) - WORK( 1 ) = LOPT - END IF -* - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'ZGEGV ', -INFO ) - RETURN - ELSE IF( LQUERY ) THEN - RETURN - END IF -* -* Quick return if possible -* - IF( N.EQ.0 ) - $ RETURN -* -* Get machine constants -* - EPS = DLAMCH( 'E' )*DLAMCH( 'B' ) - SAFMIN = DLAMCH( 'S' ) - SAFMIN = SAFMIN + SAFMIN - SAFMAX = ONE / SAFMIN -* -* Scale A -* - ANRM = ZLANGE( 'M', N, N, A, LDA, RWORK ) - ANRM1 = ANRM - ANRM2 = ONE - IF( ANRM.LT.ONE ) THEN - IF( SAFMAX*ANRM.LT.ONE ) THEN - ANRM1 = SAFMIN - ANRM2 = SAFMAX*ANRM - END IF - END IF -* - IF( ANRM.GT.ZERO ) THEN - CALL ZLASCL( 'G', -1, -1, ANRM, ONE, N, N, A, LDA, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 10 - RETURN - END IF - END IF -* -* Scale B -* - BNRM = ZLANGE( 'M', N, N, B, LDB, RWORK ) - BNRM1 = BNRM - BNRM2 = ONE - IF( BNRM.LT.ONE ) THEN - IF( SAFMAX*BNRM.LT.ONE ) THEN - BNRM1 = SAFMIN - BNRM2 = SAFMAX*BNRM - END IF - END IF -* - IF( BNRM.GT.ZERO ) THEN - CALL ZLASCL( 'G', -1, -1, BNRM, ONE, N, N, B, LDB, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 10 - RETURN - END IF - END IF -* -* Permute the matrix to make it more nearly triangular -* Also "balance" the matrix. -* - ILEFT = 1 - IRIGHT = N + 1 - IRWORK = IRIGHT + N - CALL ZGGBAL( 'P', N, A, LDA, B, LDB, ILO, IHI, RWORK( ILEFT ), - $ RWORK( IRIGHT ), RWORK( IRWORK ), IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 1 - GO TO 80 - END IF -* -* Reduce B to triangular form, and initialize VL and/or VR -* - IROWS = IHI + 1 - ILO - IF( ILV ) THEN - ICOLS = N + 1 - ILO - ELSE - ICOLS = IROWS - END IF - ITAU = 1 - IWORK = ITAU + IROWS - CALL ZGEQRF( IROWS, ICOLS, B( ILO, ILO ), LDB, WORK( ITAU ), - $ WORK( IWORK ), LWORK+1-IWORK, IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - INFO = N + 2 - GO TO 80 - END IF -* - CALL ZUNMQR( 'L', 'C', IROWS, ICOLS, IROWS, B( ILO, ILO ), LDB, - $ WORK( ITAU ), A( ILO, ILO ), LDA, WORK( IWORK ), - $ LWORK+1-IWORK, IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - INFO = N + 3 - GO TO 80 - END IF -* - IF( ILVL ) THEN - CALL ZLASET( 'Full', N, N, CZERO, CONE, VL, LDVL ) - CALL ZLACPY( 'L', IROWS-1, IROWS-1, B( ILO+1, ILO ), LDB, - $ VL( ILO+1, ILO ), LDVL ) - CALL ZUNGQR( IROWS, IROWS, IROWS, VL( ILO, ILO ), LDVL, - $ WORK( ITAU ), WORK( IWORK ), LWORK+1-IWORK, - $ IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - INFO = N + 4 - GO TO 80 - END IF - END IF -* - IF( ILVR ) - $ CALL ZLASET( 'Full', N, N, CZERO, CONE, VR, LDVR ) -* -* Reduce to generalized Hessenberg form -* - IF( ILV ) THEN -* -* Eigenvectors requested -- work on whole matrix. -* - CALL ZGGHRD( JOBVL, JOBVR, N, ILO, IHI, A, LDA, B, LDB, VL, - $ LDVL, VR, LDVR, IINFO ) - ELSE - CALL ZGGHRD( 'N', 'N', IROWS, 1, IROWS, A( ILO, ILO ), LDA, - $ B( ILO, ILO ), LDB, VL, LDVL, VR, LDVR, IINFO ) - END IF - IF( IINFO.NE.0 ) THEN - INFO = N + 5 - GO TO 80 - END IF -* -* Perform QZ algorithm -* - IWORK = ITAU - IF( ILV ) THEN - CHTEMP = 'S' - ELSE - CHTEMP = 'E' - END IF - CALL ZHGEQZ( CHTEMP, JOBVL, JOBVR, N, ILO, IHI, A, LDA, B, LDB, - $ ALPHA, BETA, VL, LDVL, VR, LDVR, WORK( IWORK ), - $ LWORK+1-IWORK, RWORK( IRWORK ), IINFO ) - IF( IINFO.GE.0 ) - $ LWKOPT = MAX( LWKOPT, INT( WORK( IWORK ) )+IWORK-1 ) - IF( IINFO.NE.0 ) THEN - IF( IINFO.GT.0 .AND. IINFO.LE.N ) THEN - INFO = IINFO - ELSE IF( IINFO.GT.N .AND. IINFO.LE.2*N ) THEN - INFO = IINFO - N - ELSE - INFO = N + 6 - END IF - GO TO 80 - END IF -* - IF( ILV ) THEN -* -* Compute Eigenvectors -* - IF( ILVL ) THEN - IF( ILVR ) THEN - CHTEMP = 'B' - ELSE - CHTEMP = 'L' - END IF - ELSE - CHTEMP = 'R' - END IF -* - CALL ZTGEVC( CHTEMP, 'B', LDUMMA, N, A, LDA, B, LDB, VL, LDVL, - $ VR, LDVR, N, IN, WORK( IWORK ), RWORK( IRWORK ), - $ IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 7 - GO TO 80 - END IF -* -* Undo balancing on VL and VR, rescale -* - IF( ILVL ) THEN - CALL ZGGBAK( 'P', 'L', N, ILO, IHI, RWORK( ILEFT ), - $ RWORK( IRIGHT ), N, VL, LDVL, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 8 - GO TO 80 - END IF - DO 30 JC = 1, N - TEMP = ZERO - DO 10 JR = 1, N - TEMP = MAX( TEMP, ABS1( VL( JR, JC ) ) ) - 10 CONTINUE - IF( TEMP.LT.SAFMIN ) - $ GO TO 30 - TEMP = ONE / TEMP - DO 20 JR = 1, N - VL( JR, JC ) = VL( JR, JC )*TEMP - 20 CONTINUE - 30 CONTINUE - END IF - IF( ILVR ) THEN - CALL ZGGBAK( 'P', 'R', N, ILO, IHI, RWORK( ILEFT ), - $ RWORK( IRIGHT ), N, VR, LDVR, IINFO ) - IF( IINFO.NE.0 ) THEN - INFO = N + 9 - GO TO 80 - END IF - DO 60 JC = 1, N - TEMP = ZERO - DO 40 JR = 1, N - TEMP = MAX( TEMP, ABS1( VR( JR, JC ) ) ) - 40 CONTINUE - IF( TEMP.LT.SAFMIN ) - $ GO TO 60 - TEMP = ONE / TEMP - DO 50 JR = 1, N - VR( JR, JC ) = VR( JR, JC )*TEMP - 50 CONTINUE - 60 CONTINUE - END IF -* -* End of eigenvector calculation -* - END IF -* -* Undo scaling in alpha, beta -* -* Note: this does not give the alpha and beta for the unscaled -* problem. -* -* Un-scaling is limited to avoid underflow in alpha and beta -* if they are significant. -* - DO 70 JC = 1, N - ABSAR = ABS( DBLE( ALPHA( JC ) ) ) - ABSAI = ABS( DIMAG( ALPHA( JC ) ) ) - ABSB = ABS( DBLE( BETA( JC ) ) ) - SALFAR = ANRM*DBLE( ALPHA( JC ) ) - SALFAI = ANRM*DIMAG( ALPHA( JC ) ) - SBETA = BNRM*DBLE( BETA( JC ) ) - ILIMIT = .FALSE. - SCALE = ONE -* -* Check for significant underflow in imaginary part of ALPHA -* - IF( ABS( SALFAI ).LT.SAFMIN .AND. ABSAI.GE. - $ MAX( SAFMIN, EPS*ABSAR, EPS*ABSB ) ) THEN - ILIMIT = .TRUE. - SCALE = ( SAFMIN / ANRM1 ) / MAX( SAFMIN, ANRM2*ABSAI ) - END IF -* -* Check for significant underflow in real part of ALPHA -* - IF( ABS( SALFAR ).LT.SAFMIN .AND. ABSAR.GE. - $ MAX( SAFMIN, EPS*ABSAI, EPS*ABSB ) ) THEN - ILIMIT = .TRUE. - SCALE = MAX( SCALE, ( SAFMIN / ANRM1 ) / - $ MAX( SAFMIN, ANRM2*ABSAR ) ) - END IF -* -* Check for significant underflow in BETA -* - IF( ABS( SBETA ).LT.SAFMIN .AND. ABSB.GE. - $ MAX( SAFMIN, EPS*ABSAR, EPS*ABSAI ) ) THEN - ILIMIT = .TRUE. - SCALE = MAX( SCALE, ( SAFMIN / BNRM1 ) / - $ MAX( SAFMIN, BNRM2*ABSB ) ) - END IF -* -* Check for possible overflow when limiting scaling -* - IF( ILIMIT ) THEN - TEMP = ( SCALE*SAFMIN )*MAX( ABS( SALFAR ), ABS( SALFAI ), - $ ABS( SBETA ) ) - IF( TEMP.GT.ONE ) - $ SCALE = SCALE / TEMP - IF( SCALE.LT.ONE ) - $ ILIMIT = .FALSE. - END IF -* -* Recompute un-scaled ALPHA, BETA if necessary. -* - IF( ILIMIT ) THEN - SALFAR = ( SCALE*DBLE( ALPHA( JC ) ) )*ANRM - SALFAI = ( SCALE*DIMAG( ALPHA( JC ) ) )*ANRM - SBETA = ( SCALE*BETA( JC ) )*BNRM - END IF - ALPHA( JC ) = DCMPLX( SALFAR, SALFAI ) - BETA( JC ) = SBETA - 70 CONTINUE -* - 80 CONTINUE - WORK( 1 ) = LWKOPT -* - RETURN -* -* End of ZGEGV -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/zgelsx.f b/dspl/liblapack/SRC/DEPRECATED/zgelsx.f deleted file mode 100644 index fc8d288..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/zgelsx.f +++ /dev/null @@ -1,447 +0,0 @@ -*> \brief ZGELSX solves overdetermined or underdetermined systems for GE matrices -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download ZGELSX + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE ZGELSX( M, N, NRHS, A, LDA, B, LDB, JPVT, RCOND, RANK, -* WORK, RWORK, INFO ) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, LDB, M, N, NRHS, RANK -* DOUBLE PRECISION RCOND -* .. -* .. Array Arguments .. -* INTEGER JPVT( * ) -* DOUBLE PRECISION RWORK( * ) -* COMPLEX*16 A( LDA, * ), B( LDB, * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine ZGELSY. -*> -*> ZGELSX computes the minimum-norm solution to a complex linear least -*> squares problem: -*> minimize || A * X - B || -*> using a complete orthogonal factorization of A. A is an M-by-N -*> matrix which may be rank-deficient. -*> -*> Several right hand side vectors b and solution vectors x can be -*> handled in a single call; they are stored as the columns of the -*> M-by-NRHS right hand side matrix B and the N-by-NRHS solution -*> matrix X. -*> -*> The routine first computes a QR factorization with column pivoting: -*> A * P = Q * [ R11 R12 ] -*> [ 0 R22 ] -*> with R11 defined as the largest leading submatrix whose estimated -*> condition number is less than 1/RCOND. The order of R11, RANK, -*> is the effective rank of A. -*> -*> Then, R22 is considered to be negligible, and R12 is annihilated -*> by unitary transformations from the right, arriving at the -*> complete orthogonal factorization: -*> A * P = Q * [ T11 0 ] * Z -*> [ 0 0 ] -*> The minimum-norm solution is then -*> X = P * Z**H [ inv(T11)*Q1**H*B ] -*> [ 0 ] -*> where Q1 consists of the first RANK columns of Q. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix A. M >= 0. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrix A. N >= 0. -*> \endverbatim -*> -*> \param[in] NRHS -*> \verbatim -*> NRHS is INTEGER -*> The number of right hand sides, i.e., the number of -*> columns of matrices B and X. NRHS >= 0. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is COMPLEX*16 array, dimension (LDA,N) -*> On entry, the M-by-N matrix A. -*> On exit, A has been overwritten by details of its -*> complete orthogonal factorization. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of the array A. LDA >= max(1,M). -*> \endverbatim -*> -*> \param[in,out] B -*> \verbatim -*> B is COMPLEX*16 array, dimension (LDB,NRHS) -*> On entry, the M-by-NRHS right hand side matrix B. -*> On exit, the N-by-NRHS solution matrix X. -*> If m >= n and RANK = n, the residual sum-of-squares for -*> the solution in the i-th column is given by the sum of -*> squares of elements N+1:M in that column. -*> \endverbatim -*> -*> \param[in] LDB -*> \verbatim -*> LDB is INTEGER -*> The leading dimension of the array B. LDB >= max(1,M,N). -*> \endverbatim -*> -*> \param[in,out] JPVT -*> \verbatim -*> JPVT is INTEGER array, dimension (N) -*> On entry, if JPVT(i) .ne. 0, the i-th column of A is an -*> initial column, otherwise it is a free column. Before -*> the QR factorization of A, all initial columns are -*> permuted to the leading positions; only the remaining -*> free columns are moved as a result of column pivoting -*> during the factorization. -*> On exit, if JPVT(i) = k, then the i-th column of A*P -*> was the k-th column of A. -*> \endverbatim -*> -*> \param[in] RCOND -*> \verbatim -*> RCOND is DOUBLE PRECISION -*> RCOND is used to determine the effective rank of A, which -*> is defined as the order of the largest leading triangular -*> submatrix R11 in the QR factorization with pivoting of A, -*> whose estimated condition number < 1/RCOND. -*> \endverbatim -*> -*> \param[out] RANK -*> \verbatim -*> RANK is INTEGER -*> The effective rank of A, i.e., the order of the submatrix -*> R11. This is the same as the order of the submatrix T11 -*> in the complete orthogonal factorization of A. -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is COMPLEX*16 array, dimension -*> (min(M,N) + max( N, 2*min(M,N)+NRHS )), -*> \endverbatim -*> -*> \param[out] RWORK -*> \verbatim -*> RWORK is DOUBLE PRECISION array, dimension (2*N) -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup complex16GEsolve -* -* ===================================================================== - SUBROUTINE ZGELSX( M, N, NRHS, A, LDA, B, LDB, JPVT, RCOND, RANK, - $ WORK, RWORK, INFO ) -* -* -- LAPACK driver routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, LDB, M, N, NRHS, RANK - DOUBLE PRECISION RCOND -* .. -* .. Array Arguments .. - INTEGER JPVT( * ) - DOUBLE PRECISION RWORK( * ) - COMPLEX*16 A( LDA, * ), B( LDB, * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - INTEGER IMAX, IMIN - PARAMETER ( IMAX = 1, IMIN = 2 ) - DOUBLE PRECISION ZERO, ONE, DONE, NTDONE - PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0, DONE = ZERO, - $ NTDONE = ONE ) - COMPLEX*16 CZERO, CONE - PARAMETER ( CZERO = ( 0.0D+0, 0.0D+0 ), - $ CONE = ( 1.0D+0, 0.0D+0 ) ) -* .. -* .. Local Scalars .. - INTEGER I, IASCL, IBSCL, ISMAX, ISMIN, J, K, MN - DOUBLE PRECISION ANRM, BIGNUM, BNRM, SMAX, SMAXPR, SMIN, SMINPR, - $ SMLNUM - COMPLEX*16 C1, C2, S1, S2, T1, T2 -* .. -* .. External Subroutines .. - EXTERNAL XERBLA, ZGEQPF, ZLAIC1, ZLASCL, ZLASET, ZLATZM, - $ ZTRSM, ZTZRQF, ZUNM2R -* .. -* .. External Functions .. - DOUBLE PRECISION DLAMCH, ZLANGE - EXTERNAL DLAMCH, ZLANGE -* .. -* .. Intrinsic Functions .. - INTRINSIC ABS, DCONJG, MAX, MIN -* .. -* .. Executable Statements .. -* - MN = MIN( M, N ) - ISMIN = MN + 1 - ISMAX = 2*MN + 1 -* -* Test the input arguments. -* - INFO = 0 - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( NRHS.LT.0 ) THEN - INFO = -3 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -5 - ELSE IF( LDB.LT.MAX( 1, M, N ) ) THEN - INFO = -7 - END IF -* - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'ZGELSX', -INFO ) - RETURN - END IF -* -* Quick return if possible -* - IF( MIN( M, N, NRHS ).EQ.0 ) THEN - RANK = 0 - RETURN - END IF -* -* Get machine parameters -* - SMLNUM = DLAMCH( 'S' ) / DLAMCH( 'P' ) - BIGNUM = ONE / SMLNUM - CALL DLABAD( SMLNUM, BIGNUM ) -* -* Scale A, B if max elements outside range [SMLNUM,BIGNUM] -* - ANRM = ZLANGE( 'M', M, N, A, LDA, RWORK ) - IASCL = 0 - IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN -* -* Scale matrix norm up to SMLNUM -* - CALL ZLASCL( 'G', 0, 0, ANRM, SMLNUM, M, N, A, LDA, INFO ) - IASCL = 1 - ELSE IF( ANRM.GT.BIGNUM ) THEN -* -* Scale matrix norm down to BIGNUM -* - CALL ZLASCL( 'G', 0, 0, ANRM, BIGNUM, M, N, A, LDA, INFO ) - IASCL = 2 - ELSE IF( ANRM.EQ.ZERO ) THEN -* -* Matrix all zero. Return zero solution. -* - CALL ZLASET( 'F', MAX( M, N ), NRHS, CZERO, CZERO, B, LDB ) - RANK = 0 - GO TO 100 - END IF -* - BNRM = ZLANGE( 'M', M, NRHS, B, LDB, RWORK ) - IBSCL = 0 - IF( BNRM.GT.ZERO .AND. BNRM.LT.SMLNUM ) THEN -* -* Scale matrix norm up to SMLNUM -* - CALL ZLASCL( 'G', 0, 0, BNRM, SMLNUM, M, NRHS, B, LDB, INFO ) - IBSCL = 1 - ELSE IF( BNRM.GT.BIGNUM ) THEN -* -* Scale matrix norm down to BIGNUM -* - CALL ZLASCL( 'G', 0, 0, BNRM, BIGNUM, M, NRHS, B, LDB, INFO ) - IBSCL = 2 - END IF -* -* Compute QR factorization with column pivoting of A: -* A * P = Q * R -* - CALL ZGEQPF( M, N, A, LDA, JPVT, WORK( 1 ), WORK( MN+1 ), RWORK, - $ INFO ) -* -* complex workspace MN+N. Real workspace 2*N. Details of Householder -* rotations stored in WORK(1:MN). -* -* Determine RANK using incremental condition estimation -* - WORK( ISMIN ) = CONE - WORK( ISMAX ) = CONE - SMAX = ABS( A( 1, 1 ) ) - SMIN = SMAX - IF( ABS( A( 1, 1 ) ).EQ.ZERO ) THEN - RANK = 0 - CALL ZLASET( 'F', MAX( M, N ), NRHS, CZERO, CZERO, B, LDB ) - GO TO 100 - ELSE - RANK = 1 - END IF -* - 10 CONTINUE - IF( RANK.LT.MN ) THEN - I = RANK + 1 - CALL ZLAIC1( IMIN, RANK, WORK( ISMIN ), SMIN, A( 1, I ), - $ A( I, I ), SMINPR, S1, C1 ) - CALL ZLAIC1( IMAX, RANK, WORK( ISMAX ), SMAX, A( 1, I ), - $ A( I, I ), SMAXPR, S2, C2 ) -* - IF( SMAXPR*RCOND.LE.SMINPR ) THEN - DO 20 I = 1, RANK - WORK( ISMIN+I-1 ) = S1*WORK( ISMIN+I-1 ) - WORK( ISMAX+I-1 ) = S2*WORK( ISMAX+I-1 ) - 20 CONTINUE - WORK( ISMIN+RANK ) = C1 - WORK( ISMAX+RANK ) = C2 - SMIN = SMINPR - SMAX = SMAXPR - RANK = RANK + 1 - GO TO 10 - END IF - END IF -* -* Logically partition R = [ R11 R12 ] -* [ 0 R22 ] -* where R11 = R(1:RANK,1:RANK) -* -* [R11,R12] = [ T11, 0 ] * Y -* - IF( RANK.LT.N ) - $ CALL ZTZRQF( RANK, N, A, LDA, WORK( MN+1 ), INFO ) -* -* Details of Householder rotations stored in WORK(MN+1:2*MN) -* -* B(1:M,1:NRHS) := Q**H * B(1:M,1:NRHS) -* - CALL ZUNM2R( 'Left', 'Conjugate transpose', M, NRHS, MN, A, LDA, - $ WORK( 1 ), B, LDB, WORK( 2*MN+1 ), INFO ) -* -* workspace NRHS -* -* B(1:RANK,1:NRHS) := inv(T11) * B(1:RANK,1:NRHS) -* - CALL ZTRSM( 'Left', 'Upper', 'No transpose', 'Non-unit', RANK, - $ NRHS, CONE, A, LDA, B, LDB ) -* - DO 40 I = RANK + 1, N - DO 30 J = 1, NRHS - B( I, J ) = CZERO - 30 CONTINUE - 40 CONTINUE -* -* B(1:N,1:NRHS) := Y**H * B(1:N,1:NRHS) -* - IF( RANK.LT.N ) THEN - DO 50 I = 1, RANK - CALL ZLATZM( 'Left', N-RANK+1, NRHS, A( I, RANK+1 ), LDA, - $ DCONJG( WORK( MN+I ) ), B( I, 1 ), - $ B( RANK+1, 1 ), LDB, WORK( 2*MN+1 ) ) - 50 CONTINUE - END IF -* -* workspace NRHS -* -* B(1:N,1:NRHS) := P * B(1:N,1:NRHS) -* - DO 90 J = 1, NRHS - DO 60 I = 1, N - WORK( 2*MN+I ) = NTDONE - 60 CONTINUE - DO 80 I = 1, N - IF( WORK( 2*MN+I ).EQ.NTDONE ) THEN - IF( JPVT( I ).NE.I ) THEN - K = I - T1 = B( K, J ) - T2 = B( JPVT( K ), J ) - 70 CONTINUE - B( JPVT( K ), J ) = T1 - WORK( 2*MN+K ) = DONE - T1 = T2 - K = JPVT( K ) - T2 = B( JPVT( K ), J ) - IF( JPVT( K ).NE.I ) - $ GO TO 70 - B( I, J ) = T1 - WORK( 2*MN+K ) = DONE - END IF - END IF - 80 CONTINUE - 90 CONTINUE -* -* Undo scaling -* - IF( IASCL.EQ.1 ) THEN - CALL ZLASCL( 'G', 0, 0, ANRM, SMLNUM, N, NRHS, B, LDB, INFO ) - CALL ZLASCL( 'U', 0, 0, SMLNUM, ANRM, RANK, RANK, A, LDA, - $ INFO ) - ELSE IF( IASCL.EQ.2 ) THEN - CALL ZLASCL( 'G', 0, 0, ANRM, BIGNUM, N, NRHS, B, LDB, INFO ) - CALL ZLASCL( 'U', 0, 0, BIGNUM, ANRM, RANK, RANK, A, LDA, - $ INFO ) - END IF - IF( IBSCL.EQ.1 ) THEN - CALL ZLASCL( 'G', 0, 0, SMLNUM, BNRM, N, NRHS, B, LDB, INFO ) - ELSE IF( IBSCL.EQ.2 ) THEN - CALL ZLASCL( 'G', 0, 0, BIGNUM, BNRM, N, NRHS, B, LDB, INFO ) - END IF -* - 100 CONTINUE -* - RETURN -* -* End of ZGELSX -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/zgeqpf.f b/dspl/liblapack/SRC/DEPRECATED/zgeqpf.f deleted file mode 100644 index 7dffc7a..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/zgeqpf.f +++ /dev/null @@ -1,313 +0,0 @@ -*> \brief \b ZGEQPF -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download ZGEQPF + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE ZGEQPF( M, N, A, LDA, JPVT, TAU, WORK, RWORK, INFO ) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. -* INTEGER JPVT( * ) -* DOUBLE PRECISION RWORK( * ) -* COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine ZGEQP3. -*> -*> ZGEQPF computes a QR factorization with column pivoting of a -*> complex M-by-N matrix A: A*P = Q*R. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix A. M >= 0. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrix A. N >= 0 -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is COMPLEX*16 array, dimension (LDA,N) -*> On entry, the M-by-N matrix A. -*> On exit, the upper triangle of the array contains the -*> min(M,N)-by-N upper triangular matrix R; the elements -*> below the diagonal, together with the array TAU, -*> represent the unitary matrix Q as a product of -*> min(m,n) elementary reflectors. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of the array A. LDA >= max(1,M). -*> \endverbatim -*> -*> \param[in,out] JPVT -*> \verbatim -*> JPVT is INTEGER array, dimension (N) -*> On entry, if JPVT(i) .ne. 0, the i-th column of A is permuted -*> to the front of A*P (a leading column); if JPVT(i) = 0, -*> the i-th column of A is a free column. -*> On exit, if JPVT(i) = k, then the i-th column of A*P -*> was the k-th column of A. -*> \endverbatim -*> -*> \param[out] TAU -*> \verbatim -*> TAU is COMPLEX*16 array, dimension (min(M,N)) -*> The scalar factors of the elementary reflectors. -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is COMPLEX*16 array, dimension (N) -*> \endverbatim -*> -*> \param[out] RWORK -*> \verbatim -*> RWORK is DOUBLE PRECISION array, dimension (2*N) -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup complex16GEcomputational -* -*> \par Further Details: -* ===================== -*> -*> \verbatim -*> -*> The matrix Q is represented as a product of elementary reflectors -*> -*> Q = H(1) H(2) . . . H(n) -*> -*> Each H(i) has the form -*> -*> H = I - tau * v * v**H -*> -*> where tau is a complex scalar, and v is a complex vector with -*> v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i). -*> -*> The matrix P is represented in jpvt as follows: If -*> jpvt(j) = i -*> then the jth column of P is the ith canonical unit vector. -*> -*> Partial column norm updating strategy modified by -*> Z. Drmac and Z. Bujanovic, Dept. of Mathematics, -*> University of Zagreb, Croatia. -*> -- April 2011 -- -*> For more details see LAPACK Working Note 176. -*> \endverbatim -*> -* ===================================================================== - SUBROUTINE ZGEQPF( M, N, A, LDA, JPVT, TAU, WORK, RWORK, INFO ) -* -* -- LAPACK computational routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. - INTEGER JPVT( * ) - DOUBLE PRECISION RWORK( * ) - COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - DOUBLE PRECISION ZERO, ONE - PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 ) -* .. -* .. Local Scalars .. - INTEGER I, ITEMP, J, MA, MN, PVT - DOUBLE PRECISION TEMP, TEMP2, TOL3Z - COMPLEX*16 AII -* .. -* .. External Subroutines .. - EXTERNAL XERBLA, ZGEQR2, ZLARF, ZLARFG, ZSWAP, ZUNM2R -* .. -* .. Intrinsic Functions .. - INTRINSIC ABS, DCMPLX, DCONJG, MAX, MIN, SQRT -* .. -* .. External Functions .. - INTEGER IDAMAX - DOUBLE PRECISION DLAMCH, DZNRM2 - EXTERNAL IDAMAX, DLAMCH, DZNRM2 -* .. -* .. Executable Statements .. -* -* Test the input arguments -* - INFO = 0 - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'ZGEQPF', -INFO ) - RETURN - END IF -* - MN = MIN( M, N ) - TOL3Z = SQRT(DLAMCH('Epsilon')) -* -* Move initial columns up front -* - ITEMP = 1 - DO 10 I = 1, N - IF( JPVT( I ).NE.0 ) THEN - IF( I.NE.ITEMP ) THEN - CALL ZSWAP( M, A( 1, I ), 1, A( 1, ITEMP ), 1 ) - JPVT( I ) = JPVT( ITEMP ) - JPVT( ITEMP ) = I - ELSE - JPVT( I ) = I - END IF - ITEMP = ITEMP + 1 - ELSE - JPVT( I ) = I - END IF - 10 CONTINUE - ITEMP = ITEMP - 1 -* -* Compute the QR factorization and update remaining columns -* - IF( ITEMP.GT.0 ) THEN - MA = MIN( ITEMP, M ) - CALL ZGEQR2( M, MA, A, LDA, TAU, WORK, INFO ) - IF( MA.LT.N ) THEN - CALL ZUNM2R( 'Left', 'Conjugate transpose', M, N-MA, MA, A, - $ LDA, TAU, A( 1, MA+1 ), LDA, WORK, INFO ) - END IF - END IF -* - IF( ITEMP.LT.MN ) THEN -* -* Initialize partial column norms. The first n elements of -* work store the exact column norms. -* - DO 20 I = ITEMP + 1, N - RWORK( I ) = DZNRM2( M-ITEMP, A( ITEMP+1, I ), 1 ) - RWORK( N+I ) = RWORK( I ) - 20 CONTINUE -* -* Compute factorization -* - DO 40 I = ITEMP + 1, MN -* -* Determine ith pivot column and swap if necessary -* - PVT = ( I-1 ) + IDAMAX( N-I+1, RWORK( I ), 1 ) -* - IF( PVT.NE.I ) THEN - CALL ZSWAP( M, A( 1, PVT ), 1, A( 1, I ), 1 ) - ITEMP = JPVT( PVT ) - JPVT( PVT ) = JPVT( I ) - JPVT( I ) = ITEMP - RWORK( PVT ) = RWORK( I ) - RWORK( N+PVT ) = RWORK( N+I ) - END IF -* -* Generate elementary reflector H(i) -* - AII = A( I, I ) - CALL ZLARFG( M-I+1, AII, A( MIN( I+1, M ), I ), 1, - $ TAU( I ) ) - A( I, I ) = AII -* - IF( I.LT.N ) THEN -* -* Apply H(i) to A(i:m,i+1:n) from the left -* - AII = A( I, I ) - A( I, I ) = DCMPLX( ONE ) - CALL ZLARF( 'Left', M-I+1, N-I, A( I, I ), 1, - $ DCONJG( TAU( I ) ), A( I, I+1 ), LDA, WORK ) - A( I, I ) = AII - END IF -* -* Update partial column norms -* - DO 30 J = I + 1, N - IF( RWORK( J ).NE.ZERO ) THEN -* -* NOTE: The following 4 lines follow from the analysis in -* Lapack Working Note 176. -* - TEMP = ABS( A( I, J ) ) / RWORK( J ) - TEMP = MAX( ZERO, ( ONE+TEMP )*( ONE-TEMP ) ) - TEMP2 = TEMP*( RWORK( J ) / RWORK( N+J ) )**2 - IF( TEMP2 .LE. TOL3Z ) THEN - IF( M-I.GT.0 ) THEN - RWORK( J ) = DZNRM2( M-I, A( I+1, J ), 1 ) - RWORK( N+J ) = RWORK( J ) - ELSE - RWORK( J ) = ZERO - RWORK( N+J ) = ZERO - END IF - ELSE - RWORK( J ) = RWORK( J )*SQRT( TEMP ) - END IF - END IF - 30 CONTINUE -* - 40 CONTINUE - END IF - RETURN -* -* End of ZGEQPF -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/zggsvd.f b/dspl/liblapack/SRC/DEPRECATED/zggsvd.f deleted file mode 100644 index dcbb892..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/zggsvd.f +++ /dev/null @@ -1,465 +0,0 @@ -*> \brief ZGGSVD computes the singular value decomposition (SVD) for OTHER matrices -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download ZGGSVD + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE ZGGSVD( JOBU, JOBV, JOBQ, M, N, P, K, L, A, LDA, B, -* LDB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, -* RWORK, IWORK, INFO ) -* -* .. Scalar Arguments .. -* CHARACTER JOBQ, JOBU, JOBV -* INTEGER INFO, K, L, LDA, LDB, LDQ, LDU, LDV, M, N, P -* .. -* .. Array Arguments .. -* INTEGER IWORK( * ) -* DOUBLE PRECISION ALPHA( * ), BETA( * ), RWORK( * ) -* COMPLEX*16 A( LDA, * ), B( LDB, * ), Q( LDQ, * ), -* $ U( LDU, * ), V( LDV, * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine ZGGSVD3. -*> -*> ZGGSVD computes the generalized singular value decomposition (GSVD) -*> of an M-by-N complex matrix A and P-by-N complex matrix B: -*> -*> U**H*A*Q = D1*( 0 R ), V**H*B*Q = D2*( 0 R ) -*> -*> where U, V and Q are unitary matrices. -*> Let K+L = the effective numerical rank of the -*> matrix (A**H,B**H)**H, then R is a (K+L)-by-(K+L) nonsingular upper -*> triangular matrix, D1 and D2 are M-by-(K+L) and P-by-(K+L) "diagonal" -*> matrices and of the following structures, respectively: -*> -*> If M-K-L >= 0, -*> -*> K L -*> D1 = K ( I 0 ) -*> L ( 0 C ) -*> M-K-L ( 0 0 ) -*> -*> K L -*> D2 = L ( 0 S ) -*> P-L ( 0 0 ) -*> -*> N-K-L K L -*> ( 0 R ) = K ( 0 R11 R12 ) -*> L ( 0 0 R22 ) -*> where -*> -*> C = diag( ALPHA(K+1), ... , ALPHA(K+L) ), -*> S = diag( BETA(K+1), ... , BETA(K+L) ), -*> C**2 + S**2 = I. -*> -*> R is stored in A(1:K+L,N-K-L+1:N) on exit. -*> -*> If M-K-L < 0, -*> -*> K M-K K+L-M -*> D1 = K ( I 0 0 ) -*> M-K ( 0 C 0 ) -*> -*> K M-K K+L-M -*> D2 = M-K ( 0 S 0 ) -*> K+L-M ( 0 0 I ) -*> P-L ( 0 0 0 ) -*> -*> N-K-L K M-K K+L-M -*> ( 0 R ) = K ( 0 R11 R12 R13 ) -*> M-K ( 0 0 R22 R23 ) -*> K+L-M ( 0 0 0 R33 ) -*> -*> where -*> -*> C = diag( ALPHA(K+1), ... , ALPHA(M) ), -*> S = diag( BETA(K+1), ... , BETA(M) ), -*> C**2 + S**2 = I. -*> -*> (R11 R12 R13 ) is stored in A(1:M, N-K-L+1:N), and R33 is stored -*> ( 0 R22 R23 ) -*> in B(M-K+1:L,N+M-K-L+1:N) on exit. -*> -*> The routine computes C, S, R, and optionally the unitary -*> transformation matrices U, V and Q. -*> -*> In particular, if B is an N-by-N nonsingular matrix, then the GSVD of -*> A and B implicitly gives the SVD of A*inv(B): -*> A*inv(B) = U*(D1*inv(D2))*V**H. -*> If ( A**H,B**H)**H has orthnormal columns, then the GSVD of A and B is also -*> equal to the CS decomposition of A and B. Furthermore, the GSVD can -*> be used to derive the solution of the eigenvalue problem: -*> A**H*A x = lambda* B**H*B x. -*> In some literature, the GSVD of A and B is presented in the form -*> U**H*A*X = ( 0 D1 ), V**H*B*X = ( 0 D2 ) -*> where U and V are orthogonal and X is nonsingular, and D1 and D2 are -*> ``diagonal''. The former GSVD form can be converted to the latter -*> form by taking the nonsingular matrix X as -*> -*> X = Q*( I 0 ) -*> ( 0 inv(R) ) -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] JOBU -*> \verbatim -*> JOBU is CHARACTER*1 -*> = 'U': Unitary matrix U is computed; -*> = 'N': U is not computed. -*> \endverbatim -*> -*> \param[in] JOBV -*> \verbatim -*> JOBV is CHARACTER*1 -*> = 'V': Unitary matrix V is computed; -*> = 'N': V is not computed. -*> \endverbatim -*> -*> \param[in] JOBQ -*> \verbatim -*> JOBQ is CHARACTER*1 -*> = 'Q': Unitary matrix Q is computed; -*> = 'N': Q is not computed. -*> \endverbatim -*> -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix A. M >= 0. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrices A and B. N >= 0. -*> \endverbatim -*> -*> \param[in] P -*> \verbatim -*> P is INTEGER -*> The number of rows of the matrix B. P >= 0. -*> \endverbatim -*> -*> \param[out] K -*> \verbatim -*> K is INTEGER -*> \endverbatim -*> -*> \param[out] L -*> \verbatim -*> L is INTEGER -*> -*> On exit, K and L specify the dimension of the subblocks -*> described in Purpose. -*> K + L = effective numerical rank of (A**H,B**H)**H. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is COMPLEX*16 array, dimension (LDA,N) -*> On entry, the M-by-N matrix A. -*> On exit, A contains the triangular matrix R, or part of R. -*> See Purpose for details. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of the array A. LDA >= max(1,M). -*> \endverbatim -*> -*> \param[in,out] B -*> \verbatim -*> B is COMPLEX*16 array, dimension (LDB,N) -*> On entry, the P-by-N matrix B. -*> On exit, B contains part of the triangular matrix R if -*> M-K-L < 0. See Purpose for details. -*> \endverbatim -*> -*> \param[in] LDB -*> \verbatim -*> LDB is INTEGER -*> The leading dimension of the array B. LDB >= max(1,P). -*> \endverbatim -*> -*> \param[out] ALPHA -*> \verbatim -*> ALPHA is DOUBLE PRECISION array, dimension (N) -*> \endverbatim -*> -*> \param[out] BETA -*> \verbatim -*> BETA is DOUBLE PRECISION array, dimension (N) -*> -*> On exit, ALPHA and BETA contain the generalized singular -*> value pairs of A and B; -*> ALPHA(1:K) = 1, -*> BETA(1:K) = 0, -*> and if M-K-L >= 0, -*> ALPHA(K+1:K+L) = C, -*> BETA(K+1:K+L) = S, -*> or if M-K-L < 0, -*> ALPHA(K+1:M)=C, ALPHA(M+1:K+L)=0 -*> BETA(K+1:M) =S, BETA(M+1:K+L) =1 -*> and -*> ALPHA(K+L+1:N) = 0 -*> BETA(K+L+1:N) = 0 -*> \endverbatim -*> -*> \param[out] U -*> \verbatim -*> U is COMPLEX*16 array, dimension (LDU,M) -*> If JOBU = 'U', U contains the M-by-M unitary matrix U. -*> If JOBU = 'N', U is not referenced. -*> \endverbatim -*> -*> \param[in] LDU -*> \verbatim -*> LDU is INTEGER -*> The leading dimension of the array U. LDU >= max(1,M) if -*> JOBU = 'U'; LDU >= 1 otherwise. -*> \endverbatim -*> -*> \param[out] V -*> \verbatim -*> V is COMPLEX*16 array, dimension (LDV,P) -*> If JOBV = 'V', V contains the P-by-P unitary matrix V. -*> If JOBV = 'N', V is not referenced. -*> \endverbatim -*> -*> \param[in] LDV -*> \verbatim -*> LDV is INTEGER -*> The leading dimension of the array V. LDV >= max(1,P) if -*> JOBV = 'V'; LDV >= 1 otherwise. -*> \endverbatim -*> -*> \param[out] Q -*> \verbatim -*> Q is COMPLEX*16 array, dimension (LDQ,N) -*> If JOBQ = 'Q', Q contains the N-by-N unitary matrix Q. -*> If JOBQ = 'N', Q is not referenced. -*> \endverbatim -*> -*> \param[in] LDQ -*> \verbatim -*> LDQ is INTEGER -*> The leading dimension of the array Q. LDQ >= max(1,N) if -*> JOBQ = 'Q'; LDQ >= 1 otherwise. -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is COMPLEX*16 array, dimension (max(3*N,M,P)+N) -*> \endverbatim -*> -*> \param[out] RWORK -*> \verbatim -*> RWORK is DOUBLE PRECISION array, dimension (2*N) -*> \endverbatim -*> -*> \param[out] IWORK -*> \verbatim -*> IWORK is INTEGER array, dimension (N) -*> On exit, IWORK stores the sorting information. More -*> precisely, the following loop will sort ALPHA -*> for I = K+1, min(M,K+L) -*> swap ALPHA(I) and ALPHA(IWORK(I)) -*> endfor -*> such that ALPHA(1) >= ALPHA(2) >= ... >= ALPHA(N). -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit. -*> < 0: if INFO = -i, the i-th argument had an illegal value. -*> > 0: if INFO = 1, the Jacobi-type procedure failed to -*> converge. For further details, see subroutine ZTGSJA. -*> \endverbatim -* -*> \par Internal Parameters: -* ========================= -*> -*> \verbatim -*> TOLA DOUBLE PRECISION -*> TOLB DOUBLE PRECISION -*> TOLA and TOLB are the thresholds to determine the effective -*> rank of (A**H,B**H)**H. Generally, they are set to -*> TOLA = MAX(M,N)*norm(A)*MAZHEPS, -*> TOLB = MAX(P,N)*norm(B)*MAZHEPS. -*> The size of TOLA and TOLB may affect the size of backward -*> errors of the decomposition. -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup complex16OTHERsing -* -*> \par Contributors: -* ================== -*> -*> Ming Gu and Huan Ren, Computer Science Division, University of -*> California at Berkeley, USA -*> -* ===================================================================== - SUBROUTINE ZGGSVD( JOBU, JOBV, JOBQ, M, N, P, K, L, A, LDA, B, - $ LDB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, - $ RWORK, IWORK, INFO ) -* -* -- LAPACK driver routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER JOBQ, JOBU, JOBV - INTEGER INFO, K, L, LDA, LDB, LDQ, LDU, LDV, M, N, P -* .. -* .. Array Arguments .. - INTEGER IWORK( * ) - DOUBLE PRECISION ALPHA( * ), BETA( * ), RWORK( * ) - COMPLEX*16 A( LDA, * ), B( LDB, * ), Q( LDQ, * ), - $ U( LDU, * ), V( LDV, * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Local Scalars .. - LOGICAL WANTQ, WANTU, WANTV - INTEGER I, IBND, ISUB, J, NCYCLE - DOUBLE PRECISION ANORM, BNORM, SMAX, TEMP, TOLA, TOLB, ULP, UNFL -* .. -* .. External Functions .. - LOGICAL LSAME - DOUBLE PRECISION DLAMCH, ZLANGE - EXTERNAL LSAME, DLAMCH, ZLANGE -* .. -* .. External Subroutines .. - EXTERNAL DCOPY, XERBLA, ZGGSVP, ZTGSJA -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. Executable Statements .. -* -* Decode and test the input parameters -* - WANTU = LSAME( JOBU, 'U' ) - WANTV = LSAME( JOBV, 'V' ) - WANTQ = LSAME( JOBQ, 'Q' ) -* - INFO = 0 - IF( .NOT.( WANTU .OR. LSAME( JOBU, 'N' ) ) ) THEN - INFO = -1 - ELSE IF( .NOT.( WANTV .OR. LSAME( JOBV, 'N' ) ) ) THEN - INFO = -2 - ELSE IF( .NOT.( WANTQ .OR. LSAME( JOBQ, 'N' ) ) ) THEN - INFO = -3 - ELSE IF( M.LT.0 ) THEN - INFO = -4 - ELSE IF( N.LT.0 ) THEN - INFO = -5 - ELSE IF( P.LT.0 ) THEN - INFO = -6 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -10 - ELSE IF( LDB.LT.MAX( 1, P ) ) THEN - INFO = -12 - ELSE IF( LDU.LT.1 .OR. ( WANTU .AND. LDU.LT.M ) ) THEN - INFO = -16 - ELSE IF( LDV.LT.1 .OR. ( WANTV .AND. LDV.LT.P ) ) THEN - INFO = -18 - ELSE IF( LDQ.LT.1 .OR. ( WANTQ .AND. LDQ.LT.N ) ) THEN - INFO = -20 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'ZGGSVD', -INFO ) - RETURN - END IF -* -* Compute the Frobenius norm of matrices A and B -* - ANORM = ZLANGE( '1', M, N, A, LDA, RWORK ) - BNORM = ZLANGE( '1', P, N, B, LDB, RWORK ) -* -* Get machine precision and set up threshold for determining -* the effective numerical rank of the matrices A and B. -* - ULP = DLAMCH( 'Precision' ) - UNFL = DLAMCH( 'Safe Minimum' ) - TOLA = MAX( M, N )*MAX( ANORM, UNFL )*ULP - TOLB = MAX( P, N )*MAX( BNORM, UNFL )*ULP -* - CALL ZGGSVP( JOBU, JOBV, JOBQ, M, P, N, A, LDA, B, LDB, TOLA, - $ TOLB, K, L, U, LDU, V, LDV, Q, LDQ, IWORK, RWORK, - $ WORK, WORK( N+1 ), INFO ) -* -* Compute the GSVD of two upper "triangular" matrices -* - CALL ZTGSJA( JOBU, JOBV, JOBQ, M, P, N, K, L, A, LDA, B, LDB, - $ TOLA, TOLB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, - $ WORK, NCYCLE, INFO ) -* -* Sort the singular values and store the pivot indices in IWORK -* Copy ALPHA to RWORK, then sort ALPHA in RWORK -* - CALL DCOPY( N, ALPHA, 1, RWORK, 1 ) - IBND = MIN( L, M-K ) - DO 20 I = 1, IBND -* -* Scan for largest ALPHA(K+I) -* - ISUB = I - SMAX = RWORK( K+I ) - DO 10 J = I + 1, IBND - TEMP = RWORK( K+J ) - IF( TEMP.GT.SMAX ) THEN - ISUB = J - SMAX = TEMP - END IF - 10 CONTINUE - IF( ISUB.NE.I ) THEN - RWORK( K+ISUB ) = RWORK( K+I ) - RWORK( K+I ) = SMAX - IWORK( K+I ) = K + ISUB - ELSE - IWORK( K+I ) = K + I - END IF - 20 CONTINUE -* - RETURN -* -* End of ZGGSVD -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/zggsvp.f b/dspl/liblapack/SRC/DEPRECATED/zggsvp.f deleted file mode 100644 index f65de92..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/zggsvp.f +++ /dev/null @@ -1,539 +0,0 @@ -*> \brief \b ZGGSVP -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download ZGGSVP + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE ZGGSVP( JOBU, JOBV, JOBQ, M, P, N, A, LDA, B, LDB, -* TOLA, TOLB, K, L, U, LDU, V, LDV, Q, LDQ, -* IWORK, RWORK, TAU, WORK, INFO ) -* -* .. Scalar Arguments .. -* CHARACTER JOBQ, JOBU, JOBV -* INTEGER INFO, K, L, LDA, LDB, LDQ, LDU, LDV, M, N, P -* DOUBLE PRECISION TOLA, TOLB -* .. -* .. Array Arguments .. -* INTEGER IWORK( * ) -* DOUBLE PRECISION RWORK( * ) -* COMPLEX*16 A( LDA, * ), B( LDB, * ), Q( LDQ, * ), -* $ TAU( * ), U( LDU, * ), V( LDV, * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine ZGGSVP3. -*> -*> ZGGSVP computes unitary matrices U, V and Q such that -*> -*> N-K-L K L -*> U**H*A*Q = K ( 0 A12 A13 ) if M-K-L >= 0; -*> L ( 0 0 A23 ) -*> M-K-L ( 0 0 0 ) -*> -*> N-K-L K L -*> = K ( 0 A12 A13 ) if M-K-L < 0; -*> M-K ( 0 0 A23 ) -*> -*> N-K-L K L -*> V**H*B*Q = L ( 0 0 B13 ) -*> P-L ( 0 0 0 ) -*> -*> where the K-by-K matrix A12 and L-by-L matrix B13 are nonsingular -*> upper triangular; A23 is L-by-L upper triangular if M-K-L >= 0, -*> otherwise A23 is (M-K)-by-L upper trapezoidal. K+L = the effective -*> numerical rank of the (M+P)-by-N matrix (A**H,B**H)**H. -*> -*> This decomposition is the preprocessing step for computing the -*> Generalized Singular Value Decomposition (GSVD), see subroutine -*> ZGGSVD. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] JOBU -*> \verbatim -*> JOBU is CHARACTER*1 -*> = 'U': Unitary matrix U is computed; -*> = 'N': U is not computed. -*> \endverbatim -*> -*> \param[in] JOBV -*> \verbatim -*> JOBV is CHARACTER*1 -*> = 'V': Unitary matrix V is computed; -*> = 'N': V is not computed. -*> \endverbatim -*> -*> \param[in] JOBQ -*> \verbatim -*> JOBQ is CHARACTER*1 -*> = 'Q': Unitary matrix Q is computed; -*> = 'N': Q is not computed. -*> \endverbatim -*> -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix A. M >= 0. -*> \endverbatim -*> -*> \param[in] P -*> \verbatim -*> P is INTEGER -*> The number of rows of the matrix B. P >= 0. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrices A and B. N >= 0. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is COMPLEX*16 array, dimension (LDA,N) -*> On entry, the M-by-N matrix A. -*> On exit, A contains the triangular (or trapezoidal) matrix -*> described in the Purpose section. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of the array A. LDA >= max(1,M). -*> \endverbatim -*> -*> \param[in,out] B -*> \verbatim -*> B is COMPLEX*16 array, dimension (LDB,N) -*> On entry, the P-by-N matrix B. -*> On exit, B contains the triangular matrix described in -*> the Purpose section. -*> \endverbatim -*> -*> \param[in] LDB -*> \verbatim -*> LDB is INTEGER -*> The leading dimension of the array B. LDB >= max(1,P). -*> \endverbatim -*> -*> \param[in] TOLA -*> \verbatim -*> TOLA is DOUBLE PRECISION -*> \endverbatim -*> -*> \param[in] TOLB -*> \verbatim -*> TOLB is DOUBLE PRECISION -*> -*> TOLA and TOLB are the thresholds to determine the effective -*> numerical rank of matrix B and a subblock of A. Generally, -*> they are set to -*> TOLA = MAX(M,N)*norm(A)*MAZHEPS, -*> TOLB = MAX(P,N)*norm(B)*MAZHEPS. -*> The size of TOLA and TOLB may affect the size of backward -*> errors of the decomposition. -*> \endverbatim -*> -*> \param[out] K -*> \verbatim -*> K is INTEGER -*> \endverbatim -*> -*> \param[out] L -*> \verbatim -*> L is INTEGER -*> -*> On exit, K and L specify the dimension of the subblocks -*> described in Purpose section. -*> K + L = effective numerical rank of (A**H,B**H)**H. -*> \endverbatim -*> -*> \param[out] U -*> \verbatim -*> U is COMPLEX*16 array, dimension (LDU,M) -*> If JOBU = 'U', U contains the unitary matrix U. -*> If JOBU = 'N', U is not referenced. -*> \endverbatim -*> -*> \param[in] LDU -*> \verbatim -*> LDU is INTEGER -*> The leading dimension of the array U. LDU >= max(1,M) if -*> JOBU = 'U'; LDU >= 1 otherwise. -*> \endverbatim -*> -*> \param[out] V -*> \verbatim -*> V is COMPLEX*16 array, dimension (LDV,P) -*> If JOBV = 'V', V contains the unitary matrix V. -*> If JOBV = 'N', V is not referenced. -*> \endverbatim -*> -*> \param[in] LDV -*> \verbatim -*> LDV is INTEGER -*> The leading dimension of the array V. LDV >= max(1,P) if -*> JOBV = 'V'; LDV >= 1 otherwise. -*> \endverbatim -*> -*> \param[out] Q -*> \verbatim -*> Q is COMPLEX*16 array, dimension (LDQ,N) -*> If JOBQ = 'Q', Q contains the unitary matrix Q. -*> If JOBQ = 'N', Q is not referenced. -*> \endverbatim -*> -*> \param[in] LDQ -*> \verbatim -*> LDQ is INTEGER -*> The leading dimension of the array Q. LDQ >= max(1,N) if -*> JOBQ = 'Q'; LDQ >= 1 otherwise. -*> \endverbatim -*> -*> \param[out] IWORK -*> \verbatim -*> IWORK is INTEGER array, dimension (N) -*> \endverbatim -*> -*> \param[out] RWORK -*> \verbatim -*> RWORK is DOUBLE PRECISION array, dimension (2*N) -*> \endverbatim -*> -*> \param[out] TAU -*> \verbatim -*> TAU is COMPLEX*16 array, dimension (N) -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is COMPLEX*16 array, dimension (max(3*N,M,P)) -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value. -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup complex16OTHERcomputational -* -*> \par Further Details: -* ===================== -*> -*> \verbatim -*> -*> The subroutine uses LAPACK subroutine ZGEQPF for the QR factorization -*> with column pivoting to detect the effective numerical rank of the -*> a matrix. It may be replaced by a better rank determination strategy. -*> \endverbatim -*> -* ===================================================================== - SUBROUTINE ZGGSVP( JOBU, JOBV, JOBQ, M, P, N, A, LDA, B, LDB, - $ TOLA, TOLB, K, L, U, LDU, V, LDV, Q, LDQ, - $ IWORK, RWORK, TAU, WORK, INFO ) -* -* -- LAPACK computational routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER JOBQ, JOBU, JOBV - INTEGER INFO, K, L, LDA, LDB, LDQ, LDU, LDV, M, N, P - DOUBLE PRECISION TOLA, TOLB -* .. -* .. Array Arguments .. - INTEGER IWORK( * ) - DOUBLE PRECISION RWORK( * ) - COMPLEX*16 A( LDA, * ), B( LDB, * ), Q( LDQ, * ), - $ TAU( * ), U( LDU, * ), V( LDV, * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - COMPLEX*16 CZERO, CONE - PARAMETER ( CZERO = ( 0.0D+0, 0.0D+0 ), - $ CONE = ( 1.0D+0, 0.0D+0 ) ) -* .. -* .. Local Scalars .. - LOGICAL FORWRD, WANTQ, WANTU, WANTV - INTEGER I, J - COMPLEX*16 T -* .. -* .. External Functions .. - LOGICAL LSAME - EXTERNAL LSAME -* .. -* .. External Subroutines .. - EXTERNAL XERBLA, ZGEQPF, ZGEQR2, ZGERQ2, ZLACPY, ZLAPMT, - $ ZLASET, ZUNG2R, ZUNM2R, ZUNMR2 -* .. -* .. Intrinsic Functions .. - INTRINSIC ABS, DBLE, DIMAG, MAX, MIN -* .. -* .. Statement Functions .. - DOUBLE PRECISION CABS1 -* .. -* .. Statement Function definitions .. - CABS1( T ) = ABS( DBLE( T ) ) + ABS( DIMAG( T ) ) -* .. -* .. Executable Statements .. -* -* Test the input parameters -* - WANTU = LSAME( JOBU, 'U' ) - WANTV = LSAME( JOBV, 'V' ) - WANTQ = LSAME( JOBQ, 'Q' ) - FORWRD = .TRUE. -* - INFO = 0 - IF( .NOT.( WANTU .OR. LSAME( JOBU, 'N' ) ) ) THEN - INFO = -1 - ELSE IF( .NOT.( WANTV .OR. LSAME( JOBV, 'N' ) ) ) THEN - INFO = -2 - ELSE IF( .NOT.( WANTQ .OR. LSAME( JOBQ, 'N' ) ) ) THEN - INFO = -3 - ELSE IF( M.LT.0 ) THEN - INFO = -4 - ELSE IF( P.LT.0 ) THEN - INFO = -5 - ELSE IF( N.LT.0 ) THEN - INFO = -6 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -8 - ELSE IF( LDB.LT.MAX( 1, P ) ) THEN - INFO = -10 - ELSE IF( LDU.LT.1 .OR. ( WANTU .AND. LDU.LT.M ) ) THEN - INFO = -16 - ELSE IF( LDV.LT.1 .OR. ( WANTV .AND. LDV.LT.P ) ) THEN - INFO = -18 - ELSE IF( LDQ.LT.1 .OR. ( WANTQ .AND. LDQ.LT.N ) ) THEN - INFO = -20 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'ZGGSVP', -INFO ) - RETURN - END IF -* -* QR with column pivoting of B: B*P = V*( S11 S12 ) -* ( 0 0 ) -* - DO 10 I = 1, N - IWORK( I ) = 0 - 10 CONTINUE - CALL ZGEQPF( P, N, B, LDB, IWORK, TAU, WORK, RWORK, INFO ) -* -* Update A := A*P -* - CALL ZLAPMT( FORWRD, M, N, A, LDA, IWORK ) -* -* Determine the effective rank of matrix B. -* - L = 0 - DO 20 I = 1, MIN( P, N ) - IF( CABS1( B( I, I ) ).GT.TOLB ) - $ L = L + 1 - 20 CONTINUE -* - IF( WANTV ) THEN -* -* Copy the details of V, and form V. -* - CALL ZLASET( 'Full', P, P, CZERO, CZERO, V, LDV ) - IF( P.GT.1 ) - $ CALL ZLACPY( 'Lower', P-1, N, B( 2, 1 ), LDB, V( 2, 1 ), - $ LDV ) - CALL ZUNG2R( P, P, MIN( P, N ), V, LDV, TAU, WORK, INFO ) - END IF -* -* Clean up B -* - DO 40 J = 1, L - 1 - DO 30 I = J + 1, L - B( I, J ) = CZERO - 30 CONTINUE - 40 CONTINUE - IF( P.GT.L ) - $ CALL ZLASET( 'Full', P-L, N, CZERO, CZERO, B( L+1, 1 ), LDB ) -* - IF( WANTQ ) THEN -* -* Set Q = I and Update Q := Q*P -* - CALL ZLASET( 'Full', N, N, CZERO, CONE, Q, LDQ ) - CALL ZLAPMT( FORWRD, N, N, Q, LDQ, IWORK ) - END IF -* - IF( P.GE.L .AND. N.NE.L ) THEN -* -* RQ factorization of ( S11 S12 ) = ( 0 S12 )*Z -* - CALL ZGERQ2( L, N, B, LDB, TAU, WORK, INFO ) -* -* Update A := A*Z**H -* - CALL ZUNMR2( 'Right', 'Conjugate transpose', M, N, L, B, LDB, - $ TAU, A, LDA, WORK, INFO ) - IF( WANTQ ) THEN -* -* Update Q := Q*Z**H -* - CALL ZUNMR2( 'Right', 'Conjugate transpose', N, N, L, B, - $ LDB, TAU, Q, LDQ, WORK, INFO ) - END IF -* -* Clean up B -* - CALL ZLASET( 'Full', L, N-L, CZERO, CZERO, B, LDB ) - DO 60 J = N - L + 1, N - DO 50 I = J - N + L + 1, L - B( I, J ) = CZERO - 50 CONTINUE - 60 CONTINUE -* - END IF -* -* Let N-L L -* A = ( A11 A12 ) M, -* -* then the following does the complete QR decomposition of A11: -* -* A11 = U*( 0 T12 )*P1**H -* ( 0 0 ) -* - DO 70 I = 1, N - L - IWORK( I ) = 0 - 70 CONTINUE - CALL ZGEQPF( M, N-L, A, LDA, IWORK, TAU, WORK, RWORK, INFO ) -* -* Determine the effective rank of A11 -* - K = 0 - DO 80 I = 1, MIN( M, N-L ) - IF( CABS1( A( I, I ) ).GT.TOLA ) - $ K = K + 1 - 80 CONTINUE -* -* Update A12 := U**H*A12, where A12 = A( 1:M, N-L+1:N ) -* - CALL ZUNM2R( 'Left', 'Conjugate transpose', M, L, MIN( M, N-L ), - $ A, LDA, TAU, A( 1, N-L+1 ), LDA, WORK, INFO ) -* - IF( WANTU ) THEN -* -* Copy the details of U, and form U -* - CALL ZLASET( 'Full', M, M, CZERO, CZERO, U, LDU ) - IF( M.GT.1 ) - $ CALL ZLACPY( 'Lower', M-1, N-L, A( 2, 1 ), LDA, U( 2, 1 ), - $ LDU ) - CALL ZUNG2R( M, M, MIN( M, N-L ), U, LDU, TAU, WORK, INFO ) - END IF -* - IF( WANTQ ) THEN -* -* Update Q( 1:N, 1:N-L ) = Q( 1:N, 1:N-L )*P1 -* - CALL ZLAPMT( FORWRD, N, N-L, Q, LDQ, IWORK ) - END IF -* -* Clean up A: set the strictly lower triangular part of -* A(1:K, 1:K) = 0, and A( K+1:M, 1:N-L ) = 0. -* - DO 100 J = 1, K - 1 - DO 90 I = J + 1, K - A( I, J ) = CZERO - 90 CONTINUE - 100 CONTINUE - IF( M.GT.K ) - $ CALL ZLASET( 'Full', M-K, N-L, CZERO, CZERO, A( K+1, 1 ), LDA ) -* - IF( N-L.GT.K ) THEN -* -* RQ factorization of ( T11 T12 ) = ( 0 T12 )*Z1 -* - CALL ZGERQ2( K, N-L, A, LDA, TAU, WORK, INFO ) -* - IF( WANTQ ) THEN -* -* Update Q( 1:N,1:N-L ) = Q( 1:N,1:N-L )*Z1**H -* - CALL ZUNMR2( 'Right', 'Conjugate transpose', N, N-L, K, A, - $ LDA, TAU, Q, LDQ, WORK, INFO ) - END IF -* -* Clean up A -* - CALL ZLASET( 'Full', K, N-L-K, CZERO, CZERO, A, LDA ) - DO 120 J = N - L - K + 1, N - L - DO 110 I = J - N + L + K + 1, K - A( I, J ) = CZERO - 110 CONTINUE - 120 CONTINUE -* - END IF -* - IF( M.GT.K ) THEN -* -* QR factorization of A( K+1:M,N-L+1:N ) -* - CALL ZGEQR2( M-K, L, A( K+1, N-L+1 ), LDA, TAU, WORK, INFO ) -* - IF( WANTU ) THEN -* -* Update U(:,K+1:M) := U(:,K+1:M)*U1 -* - CALL ZUNM2R( 'Right', 'No transpose', M, M-K, MIN( M-K, L ), - $ A( K+1, N-L+1 ), LDA, TAU, U( 1, K+1 ), LDU, - $ WORK, INFO ) - END IF -* -* Clean up -* - DO 140 J = N - L + 1, N - DO 130 I = J - N + K + L + 1, M - A( I, J ) = CZERO - 130 CONTINUE - 140 CONTINUE -* - END IF -* - RETURN -* -* End of ZGGSVP -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/zlahrd.f b/dspl/liblapack/SRC/DEPRECATED/zlahrd.f deleted file mode 100644 index fb63e96..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/zlahrd.f +++ /dev/null @@ -1,292 +0,0 @@ -*> \brief \b ZLAHRD reduces the first nb columns of a general rectangular matrix A so that elements below the k-th subdiagonal are zero, and returns auxiliary matrices which are needed to apply the transformation to the unreduced part of A. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download ZLAHRD + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE ZLAHRD( N, K, NB, A, LDA, TAU, T, LDT, Y, LDY ) -* -* .. Scalar Arguments .. -* INTEGER K, LDA, LDT, LDY, N, NB -* .. -* .. Array Arguments .. -* COMPLEX*16 A( LDA, * ), T( LDT, NB ), TAU( NB ), -* $ Y( LDY, NB ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine ZLAHR2. -*> -*> ZLAHRD reduces the first NB columns of a complex general n-by-(n-k+1) -*> matrix A so that elements below the k-th subdiagonal are zero. The -*> reduction is performed by a unitary similarity transformation -*> Q**H * A * Q. The routine returns the matrices V and T which determine -*> Q as a block reflector I - V*T*V**H, and also the matrix Y = A * V * T. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The order of the matrix A. -*> \endverbatim -*> -*> \param[in] K -*> \verbatim -*> K is INTEGER -*> The offset for the reduction. Elements below the k-th -*> subdiagonal in the first NB columns are reduced to zero. -*> \endverbatim -*> -*> \param[in] NB -*> \verbatim -*> NB is INTEGER -*> The number of columns to be reduced. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is COMPLEX*16 array, dimension (LDA,N-K+1) -*> On entry, the n-by-(n-k+1) general matrix A. -*> On exit, the elements on and above the k-th subdiagonal in -*> the first NB columns are overwritten with the corresponding -*> elements of the reduced matrix; the elements below the k-th -*> subdiagonal, with the array TAU, represent the matrix Q as a -*> product of elementary reflectors. The other columns of A are -*> unchanged. See Further Details. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of the array A. LDA >= max(1,N). -*> \endverbatim -*> -*> \param[out] TAU -*> \verbatim -*> TAU is COMPLEX*16 array, dimension (NB) -*> The scalar factors of the elementary reflectors. See Further -*> Details. -*> \endverbatim -*> -*> \param[out] T -*> \verbatim -*> T is COMPLEX*16 array, dimension (LDT,NB) -*> The upper triangular matrix T. -*> \endverbatim -*> -*> \param[in] LDT -*> \verbatim -*> LDT is INTEGER -*> The leading dimension of the array T. LDT >= NB. -*> \endverbatim -*> -*> \param[out] Y -*> \verbatim -*> Y is COMPLEX*16 array, dimension (LDY,NB) -*> The n-by-nb matrix Y. -*> \endverbatim -*> -*> \param[in] LDY -*> \verbatim -*> LDY is INTEGER -*> The leading dimension of the array Y. LDY >= max(1,N). -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup complex16OTHERauxiliary -* -*> \par Further Details: -* ===================== -*> -*> \verbatim -*> -*> The matrix Q is represented as a product of nb elementary reflectors -*> -*> Q = H(1) H(2) . . . H(nb). -*> -*> Each H(i) has the form -*> -*> H(i) = I - tau * v * v**H -*> -*> where tau is a complex scalar, and v is a complex vector with -*> v(1:i+k-1) = 0, v(i+k) = 1; v(i+k+1:n) is stored on exit in -*> A(i+k+1:n,i), and tau in TAU(i). -*> -*> The elements of the vectors v together form the (n-k+1)-by-nb matrix -*> V which is needed, with T and Y, to apply the transformation to the -*> unreduced part of the matrix, using an update of the form: -*> A := (I - V*T*V**H) * (A - Y*V**H). -*> -*> The contents of A on exit are illustrated by the following example -*> with n = 7, k = 3 and nb = 2: -*> -*> ( a h a a a ) -*> ( a h a a a ) -*> ( a h a a a ) -*> ( h h a a a ) -*> ( v1 h a a a ) -*> ( v1 v2 a a a ) -*> ( v1 v2 a a a ) -*> -*> where a denotes an element of the original matrix A, h denotes a -*> modified element of the upper Hessenberg matrix H, and vi denotes an -*> element of the vector defining H(i). -*> \endverbatim -*> -* ===================================================================== - SUBROUTINE ZLAHRD( N, K, NB, A, LDA, TAU, T, LDT, Y, LDY ) -* -* -- LAPACK auxiliary routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER K, LDA, LDT, LDY, N, NB -* .. -* .. Array Arguments .. - COMPLEX*16 A( LDA, * ), T( LDT, NB ), TAU( NB ), - $ Y( LDY, NB ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - COMPLEX*16 ZERO, ONE - PARAMETER ( ZERO = ( 0.0D+0, 0.0D+0 ), - $ ONE = ( 1.0D+0, 0.0D+0 ) ) -* .. -* .. Local Scalars .. - INTEGER I - COMPLEX*16 EI -* .. -* .. External Subroutines .. - EXTERNAL ZAXPY, ZCOPY, ZGEMV, ZLACGV, ZLARFG, ZSCAL, - $ ZTRMV -* .. -* .. Intrinsic Functions .. - INTRINSIC MIN -* .. -* .. Executable Statements .. -* -* Quick return if possible -* - IF( N.LE.1 ) - $ RETURN -* - DO 10 I = 1, NB - IF( I.GT.1 ) THEN -* -* Update A(1:n,i) -* -* Compute i-th column of A - Y * V**H -* - CALL ZLACGV( I-1, A( K+I-1, 1 ), LDA ) - CALL ZGEMV( 'No transpose', N, I-1, -ONE, Y, LDY, - $ A( K+I-1, 1 ), LDA, ONE, A( 1, I ), 1 ) - CALL ZLACGV( I-1, A( K+I-1, 1 ), LDA ) -* -* Apply I - V * T**H * V**H to this column (call it b) from the -* left, using the last column of T as workspace -* -* Let V = ( V1 ) and b = ( b1 ) (first I-1 rows) -* ( V2 ) ( b2 ) -* -* where V1 is unit lower triangular -* -* w := V1**H * b1 -* - CALL ZCOPY( I-1, A( K+1, I ), 1, T( 1, NB ), 1 ) - CALL ZTRMV( 'Lower', 'Conjugate transpose', 'Unit', I-1, - $ A( K+1, 1 ), LDA, T( 1, NB ), 1 ) -* -* w := w + V2**H *b2 -* - CALL ZGEMV( 'Conjugate transpose', N-K-I+1, I-1, ONE, - $ A( K+I, 1 ), LDA, A( K+I, I ), 1, ONE, - $ T( 1, NB ), 1 ) -* -* w := T**H *w -* - CALL ZTRMV( 'Upper', 'Conjugate transpose', 'Non-unit', I-1, - $ T, LDT, T( 1, NB ), 1 ) -* -* b2 := b2 - V2*w -* - CALL ZGEMV( 'No transpose', N-K-I+1, I-1, -ONE, A( K+I, 1 ), - $ LDA, T( 1, NB ), 1, ONE, A( K+I, I ), 1 ) -* -* b1 := b1 - V1*w -* - CALL ZTRMV( 'Lower', 'No transpose', 'Unit', I-1, - $ A( K+1, 1 ), LDA, T( 1, NB ), 1 ) - CALL ZAXPY( I-1, -ONE, T( 1, NB ), 1, A( K+1, I ), 1 ) -* - A( K+I-1, I-1 ) = EI - END IF -* -* Generate the elementary reflector H(i) to annihilate -* A(k+i+1:n,i) -* - EI = A( K+I, I ) - CALL ZLARFG( N-K-I+1, EI, A( MIN( K+I+1, N ), I ), 1, - $ TAU( I ) ) - A( K+I, I ) = ONE -* -* Compute Y(1:n,i) -* - CALL ZGEMV( 'No transpose', N, N-K-I+1, ONE, A( 1, I+1 ), LDA, - $ A( K+I, I ), 1, ZERO, Y( 1, I ), 1 ) - CALL ZGEMV( 'Conjugate transpose', N-K-I+1, I-1, ONE, - $ A( K+I, 1 ), LDA, A( K+I, I ), 1, ZERO, T( 1, I ), - $ 1 ) - CALL ZGEMV( 'No transpose', N, I-1, -ONE, Y, LDY, T( 1, I ), 1, - $ ONE, Y( 1, I ), 1 ) - CALL ZSCAL( N, TAU( I ), Y( 1, I ), 1 ) -* -* Compute T(1:i,i) -* - CALL ZSCAL( I-1, -TAU( I ), T( 1, I ), 1 ) - CALL ZTRMV( 'Upper', 'No transpose', 'Non-unit', I-1, T, LDT, - $ T( 1, I ), 1 ) - T( I, I ) = TAU( I ) -* - 10 CONTINUE - A( K+NB, NB ) = EI -* - RETURN -* -* End of ZLAHRD -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/zlatzm.f b/dspl/liblapack/SRC/DEPRECATED/zlatzm.f deleted file mode 100644 index f53010a..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/zlatzm.f +++ /dev/null @@ -1,225 +0,0 @@ -*> \brief \b ZLATZM -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download ZLATZM + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE ZLATZM( SIDE, M, N, V, INCV, TAU, C1, C2, LDC, WORK ) -* -* .. Scalar Arguments .. -* CHARACTER SIDE -* INTEGER INCV, LDC, M, N -* COMPLEX*16 TAU -* .. -* .. Array Arguments .. -* COMPLEX*16 C1( LDC, * ), C2( LDC, * ), V( * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine ZUNMRZ. -*> -*> ZLATZM applies a Householder matrix generated by ZTZRQF to a matrix. -*> -*> Let P = I - tau*u*u**H, u = ( 1 ), -*> ( v ) -*> where v is an (m-1) vector if SIDE = 'L', or a (n-1) vector if -*> SIDE = 'R'. -*> -*> If SIDE equals 'L', let -*> C = [ C1 ] 1 -*> [ C2 ] m-1 -*> n -*> Then C is overwritten by P*C. -*> -*> If SIDE equals 'R', let -*> C = [ C1, C2 ] m -*> 1 n-1 -*> Then C is overwritten by C*P. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] SIDE -*> \verbatim -*> SIDE is CHARACTER*1 -*> = 'L': form P * C -*> = 'R': form C * P -*> \endverbatim -*> -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix C. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrix C. -*> \endverbatim -*> -*> \param[in] V -*> \verbatim -*> V is COMPLEX*16 array, dimension -*> (1 + (M-1)*abs(INCV)) if SIDE = 'L' -*> (1 + (N-1)*abs(INCV)) if SIDE = 'R' -*> The vector v in the representation of P. V is not used -*> if TAU = 0. -*> \endverbatim -*> -*> \param[in] INCV -*> \verbatim -*> INCV is INTEGER -*> The increment between elements of v. INCV <> 0 -*> \endverbatim -*> -*> \param[in] TAU -*> \verbatim -*> TAU is COMPLEX*16 -*> The value tau in the representation of P. -*> \endverbatim -*> -*> \param[in,out] C1 -*> \verbatim -*> C1 is COMPLEX*16 array, dimension -*> (LDC,N) if SIDE = 'L' -*> (M,1) if SIDE = 'R' -*> On entry, the n-vector C1 if SIDE = 'L', or the m-vector C1 -*> if SIDE = 'R'. -*> -*> On exit, the first row of P*C if SIDE = 'L', or the first -*> column of C*P if SIDE = 'R'. -*> \endverbatim -*> -*> \param[in,out] C2 -*> \verbatim -*> C2 is COMPLEX*16 array, dimension -*> (LDC, N) if SIDE = 'L' -*> (LDC, N-1) if SIDE = 'R' -*> On entry, the (m - 1) x n matrix C2 if SIDE = 'L', or the -*> m x (n - 1) matrix C2 if SIDE = 'R'. -*> -*> On exit, rows 2:m of P*C if SIDE = 'L', or columns 2:m of C*P -*> if SIDE = 'R'. -*> \endverbatim -*> -*> \param[in] LDC -*> \verbatim -*> LDC is INTEGER -*> The leading dimension of the arrays C1 and C2. -*> LDC >= max(1,M). -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is COMPLEX*16 array, dimension -*> (N) if SIDE = 'L' -*> (M) if SIDE = 'R' -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup complex16OTHERcomputational -* -* ===================================================================== - SUBROUTINE ZLATZM( SIDE, M, N, V, INCV, TAU, C1, C2, LDC, WORK ) -* -* -- LAPACK computational routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER SIDE - INTEGER INCV, LDC, M, N - COMPLEX*16 TAU -* .. -* .. Array Arguments .. - COMPLEX*16 C1( LDC, * ), C2( LDC, * ), V( * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - COMPLEX*16 ONE, ZERO - PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ), - $ ZERO = ( 0.0D+0, 0.0D+0 ) ) -* .. -* .. External Subroutines .. - EXTERNAL ZAXPY, ZCOPY, ZGEMV, ZGERC, ZGERU, ZLACGV -* .. -* .. External Functions .. - LOGICAL LSAME - EXTERNAL LSAME -* .. -* .. Intrinsic Functions .. - INTRINSIC MIN -* .. -* .. Executable Statements .. -* - IF( ( MIN( M, N ).EQ.0 ) .OR. ( TAU.EQ.ZERO ) ) - $ RETURN -* - IF( LSAME( SIDE, 'L' ) ) THEN -* -* w := ( C1 + v**H * C2 )**H -* - CALL ZCOPY( N, C1, LDC, WORK, 1 ) - CALL ZLACGV( N, WORK, 1 ) - CALL ZGEMV( 'Conjugate transpose', M-1, N, ONE, C2, LDC, V, - $ INCV, ONE, WORK, 1 ) -* -* [ C1 ] := [ C1 ] - tau* [ 1 ] * w**H -* [ C2 ] [ C2 ] [ v ] -* - CALL ZLACGV( N, WORK, 1 ) - CALL ZAXPY( N, -TAU, WORK, 1, C1, LDC ) - CALL ZGERU( M-1, N, -TAU, V, INCV, WORK, 1, C2, LDC ) -* - ELSE IF( LSAME( SIDE, 'R' ) ) THEN -* -* w := C1 + C2 * v -* - CALL ZCOPY( M, C1, 1, WORK, 1 ) - CALL ZGEMV( 'No transpose', M, N-1, ONE, C2, LDC, V, INCV, ONE, - $ WORK, 1 ) -* -* [ C1, C2 ] := [ C1, C2 ] - tau* w * [ 1 , v**H] -* - CALL ZAXPY( M, -TAU, WORK, 1, C1, 1 ) - CALL ZGERC( M, N-1, -TAU, WORK, 1, V, INCV, C2, LDC ) - END IF -* - RETURN -* -* End of ZLATZM -* - END diff --git a/dspl/liblapack/SRC/DEPRECATED/ztzrqf.f b/dspl/liblapack/SRC/DEPRECATED/ztzrqf.f deleted file mode 100644 index 7bfb2e0..0000000 --- a/dspl/liblapack/SRC/DEPRECATED/ztzrqf.f +++ /dev/null @@ -1,241 +0,0 @@ -*> \brief \b ZTZRQF -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download ZTZRQF + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE ZTZRQF( M, N, A, LDA, TAU, INFO ) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. -* COMPLEX*16 A( LDA, * ), TAU( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> This routine is deprecated and has been replaced by routine ZTZRZF. -*> -*> ZTZRQF reduces the M-by-N ( M<=N ) complex upper trapezoidal matrix A -*> to upper triangular form by means of unitary transformations. -*> -*> The upper trapezoidal matrix A is factored as -*> -*> A = ( R 0 ) * Z, -*> -*> where Z is an N-by-N unitary matrix and R is an M-by-M upper -*> triangular matrix. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix A. M >= 0. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrix A. N >= M. -*> \endverbatim -*> -*> \param[in,out] A -*> \verbatim -*> A is COMPLEX*16 array, dimension (LDA,N) -*> On entry, the leading M-by-N upper trapezoidal part of the -*> array A must contain the matrix to be factorized. -*> On exit, the leading M-by-M upper triangular part of A -*> contains the upper triangular matrix R, and elements M+1 to -*> N of the first M rows of A, with the array TAU, represent the -*> unitary matrix Z as a product of M elementary reflectors. -*> \endverbatim -*> -*> \param[in] LDA -*> \verbatim -*> LDA is INTEGER -*> The leading dimension of the array A. LDA >= max(1,M). -*> \endverbatim -*> -*> \param[out] TAU -*> \verbatim -*> TAU is COMPLEX*16 array, dimension (M) -*> The scalar factors of the elementary reflectors. -*> \endverbatim -*> -*> \param[out] INFO -*> \verbatim -*> INFO is INTEGER -*> = 0: successful exit -*> < 0: if INFO = -i, the i-th argument had an illegal value -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date December 2016 -* -*> \ingroup complex16OTHERcomputational -* -*> \par Further Details: -* ===================== -*> -*> \verbatim -*> -*> The factorization is obtained by Householder's method. The kth -*> transformation matrix, Z( k ), whose conjugate transpose is used to -*> introduce zeros into the (m - k + 1)th row of A, is given in the form -*> -*> Z( k ) = ( I 0 ), -*> ( 0 T( k ) ) -*> -*> where -*> -*> T( k ) = I - tau*u( k )*u( k )**H, u( k ) = ( 1 ), -*> ( 0 ) -*> ( z( k ) ) -*> -*> tau is a scalar and z( k ) is an ( n - m ) element vector. -*> tau and z( k ) are chosen to annihilate the elements of the kth row -*> of X. -*> -*> The scalar tau is returned in the kth element of TAU and the vector -*> u( k ) in the kth row of A, such that the elements of z( k ) are -*> in a( k, m + 1 ), ..., a( k, n ). The elements of R are returned in -*> the upper triangular part of A. -*> -*> Z is given by -*> -*> Z = Z( 1 ) * Z( 2 ) * ... * Z( m ). -*> \endverbatim -*> -* ===================================================================== - SUBROUTINE ZTZRQF( M, N, A, LDA, TAU, INFO ) -* -* -- LAPACK computational routine (version 3.7.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. - COMPLEX*16 A( LDA, * ), TAU( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - COMPLEX*16 CONE, CZERO - PARAMETER ( CONE = ( 1.0D+0, 0.0D+0 ), - $ CZERO = ( 0.0D+0, 0.0D+0 ) ) -* .. -* .. Local Scalars .. - INTEGER I, K, M1 - COMPLEX*16 ALPHA -* .. -* .. Intrinsic Functions .. - INTRINSIC DCONJG, MAX, MIN -* .. -* .. External Subroutines .. - EXTERNAL XERBLA, ZAXPY, ZCOPY, ZGEMV, ZGERC, ZLACGV, - $ ZLARFG -* .. -* .. Executable Statements .. -* -* Test the input parameters. -* - INFO = 0 - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.M ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'ZTZRQF', -INFO ) - RETURN - END IF -* -* Perform the factorization. -* - IF( M.EQ.0 ) - $ RETURN - IF( M.EQ.N ) THEN - DO 10 I = 1, N - TAU( I ) = CZERO - 10 CONTINUE - ELSE - M1 = MIN( M+1, N ) - DO 20 K = M, 1, -1 -* -* Use a Householder reflection to zero the kth row of A. -* First set up the reflection. -* - A( K, K ) = DCONJG( A( K, K ) ) - CALL ZLACGV( N-M, A( K, M1 ), LDA ) - ALPHA = A( K, K ) - CALL ZLARFG( N-M+1, ALPHA, A( K, M1 ), LDA, TAU( K ) ) - A( K, K ) = ALPHA - TAU( K ) = DCONJG( TAU( K ) ) -* - IF( TAU( K ).NE.CZERO .AND. K.GT.1 ) THEN -* -* We now perform the operation A := A*P( k )**H. -* -* Use the first ( k - 1 ) elements of TAU to store a( k ), -* where a( k ) consists of the first ( k - 1 ) elements of -* the kth column of A. Also let B denote the first -* ( k - 1 ) rows of the last ( n - m ) columns of A. -* - CALL ZCOPY( K-1, A( 1, K ), 1, TAU, 1 ) -* -* Form w = a( k ) + B*z( k ) in TAU. -* - CALL ZGEMV( 'No transpose', K-1, N-M, CONE, A( 1, M1 ), - $ LDA, A( K, M1 ), LDA, CONE, TAU, 1 ) -* -* Now form a( k ) := a( k ) - conjg(tau)*w -* and B := B - conjg(tau)*w*z( k )**H. -* - CALL ZAXPY( K-1, -DCONJG( TAU( K ) ), TAU, 1, A( 1, K ), - $ 1 ) - CALL ZGERC( K-1, N-M, -DCONJG( TAU( K ) ), TAU, 1, - $ A( K, M1 ), LDA, A( 1, M1 ), LDA ) - END IF - 20 CONTINUE - END IF -* - RETURN -* -* End of ZTZRQF -* - END diff --git a/dspl/liblapack/SRC/VARIANTS/Makefile b/dspl/liblapack/SRC/VARIANTS/Makefile deleted file mode 100644 index 9f14107..0000000 --- a/dspl/liblapack/SRC/VARIANTS/Makefile +++ /dev/null @@ -1,66 +0,0 @@ -include ../../make.inc - -####################################################################### -# This is the makefile to create a the variants libraries for LAPACK. -# The files are organized as follows: -# CHOLRL -- Right looking block version of the algorithm, calling Level 3 BLAS -# CHOLTOP -- Top looking block version of the algorithm, calling Level 3 BLAS -# LUCR -- Crout Level 3 BLAS version of LU factorization -# LULL -- left-looking Level 3 BLAS version of LU factorization -# QRLL -- left-looking Level 3 BLAS version of QR factorization -# LUREC -- an iterative version of Sivan Toledo's recursive LU algorithm[1]. -# For square matrices, this iterative versions should -# be within a factor of two of the optimum number of memory transfers. -# -# [1] Toledo, S. 1997. Locality of Reference in LU Decomposition with -# Partial Pivoting. SIAM J. Matrix Anal. Appl. 18, 4 (Oct. 1997), -# 1065-1081. http://dx.doi.org/10.1137/S0895479896297744 -####################################################################### - -CHOLRL = cholesky/RL/cpotrf.o cholesky/RL/dpotrf.o cholesky/RL/spotrf.o cholesky/RL/zpotrf.o - -CHOLTOP = cholesky/TOP/cpotrf.o cholesky/TOP/dpotrf.o cholesky/TOP/spotrf.o cholesky/TOP/zpotrf.o - -LUCR = lu/CR/cgetrf.o lu/CR/dgetrf.o lu/CR/sgetrf.o lu/CR/zgetrf.o - -LULL = lu/LL/cgetrf.o lu/LL/dgetrf.o lu/LL/sgetrf.o lu/LL/zgetrf.o - -LUREC = lu/REC/cgetrf.o lu/REC/dgetrf.o lu/REC/sgetrf.o lu/REC/zgetrf.o - -QRLL = qr/LL/cgeqrf.o qr/LL/dgeqrf.o qr/LL/sgeqrf.o qr/LL/zgeqrf.o qr/LL/sceil.o - - -all: cholrl.a choltop.a lucr.a lull.a lurec.a qrll.a - -cholrl.a: $(CHOLRL) - $(ARCH) $(ARCHFLAGS) $@ $^ - $(RANLIB) $@ - -choltop.a: $(CHOLTOP) - $(ARCH) $(ARCHFLAGS) $@ $^ - $(RANLIB) $@ - -lucr.a: $(LUCR) - $(ARCH) $(ARCHFLAGS) $@ $^ - $(RANLIB) $@ - -lull.a: $(LULL) - $(ARCH) $(ARCHFLAGS) $@ $^ - $(RANLIB) $@ - -lurec.a: $(LUREC) - $(ARCH) $(ARCHFLAGS) $@ $^ - $(RANLIB) $@ - -qrll.a: $(QRLL) - $(ARCH) $(ARCHFLAGS) $@ $^ - $(RANLIB) $@ - -clean: cleanobj cleanlib -cleanobj: - rm -f $(CHOLRL) $(CHOLTOP) $(LUCR) $(LULL) $(LUREC) $(QRLL) -cleanlib: - rm -f *.a - -.f.o: - $(FORTRAN) $(OPTS) -c -o $@ $< diff --git a/dspl/liblapack/SRC/VARIANTS/README b/dspl/liblapack/SRC/VARIANTS/README deleted file mode 100644 index 4d301cc..0000000 --- a/dspl/liblapack/SRC/VARIANTS/README +++ /dev/null @@ -1,84 +0,0 @@ - =============== - = README File = - =============== - -This README File is for the LAPACK driver variants. -It is composed of 5 sections: - - Description: contents a quick description of each of the variants. For a more detailed description please refer to LAWN XXX. - - Build - - Testing - - Linking your program - - Support - -Author: Peng DU and Julie LANGOU, May 2008 - -=============== -= DESCRIPTION = -=============== - -This directory contains several variants of LAPACK routines in single/double/complex/double complex precision: - - [sdcz]getrf with LU Crout Level 3 BLAS version algorithm [2]- Directory: SRC/VARIANTS/lu/CR - - [sdcz]getrf with LU Left Looking Level 3 BLAS version algorithm [2]- Directory: SRC/VARIANTS/lu/LL - - [sdcz]getrf with Sivan Toledo's recursive LU algorithm [1] - Directory: SRC/VARIANTS/lu/REC - - [sdcz]geqrf with QR Left Looking Level 3 BLAS version algorithm [2]- Directory: SRC/VARIANTS/qr/LL - - [sdcz]potrf with Cholesky Right Looking Level 3 BLAS version algorithm [2]- Directory: SRC/VARIANTS/cholesky/RL - - [sdcz]potrf with Cholesky Top Level 3 BLAS version algorithm [2]- Directory: SRC/VARIANTS/cholesky/TOP - -References:For a more detailed description please refer to - - [1] Toledo, S. 1997. Locality of Reference in LU Decomposition with Partial Pivoting. SIAM J. Matrix Anal. Appl. 18, 4 (Oct. 1997), - 1065-1081. http://dx.doi.org/10.1137/S0895479896297744 - - [2]LAWN XXX - -========= -= BUILD = -========= - -These variants are compiled by default in the build process but they are not tested by default. -The build process creates one new library per variants in the four arithmetics (single real/double real/single complex/double complex). -The libraries are in the SRC/VARIANTS directory. - -Corresponding libraries created in SRC/VARIANTS: - - LU Crout : lucr.a - - LU Left Looking : lull.a - - LU Sivan Toledo's recursive : lurec.a - - QR Left Looking : qrll.a - - Cholesky Right Looking : cholrl.a - - Cholesky Top : choltop.a - - -=========== -= TESTING = -=========== - -To test these variants you can type 'make variants-testing' -This will rerun the linear methods testings once per variants and append the short name of the variants to the output files. -You should then see the following files in the TESTING directory: -[scdz]test_cholrl.out -[scdz]test_choltop.out -[scdz]test_lucr.out -[scdz]test_lull.out -[scdz]test_lurec.out -[scdz]test_qrll.out - -======================== -= LINKING YOUR PROGRAM = -======================== - -You just need to add the variants methods library in your linking sequence before your lapack libary. -Here is a quick example for LU - -Default using LU Right Looking version: - $(FORTRAN) -c myprog.f - $(FORTRAN) -o myexe myprog.o $(LAPACKLIB) $(BLASLIB) - -Using LU Left Looking version: - $(FORTRAN) -c myprog.f - $(FORTRAN) -o myexe myprog.o $(PATH TO LAPACK/SRC/VARIANTS)/lull.a $(LAPACKLIB) $(BLASLIB) - -=========== -= SUPPORT = -=========== - -You can use either LAPACK forum or the LAPACK mailing list to get support. -LAPACK forum : http://icl.cs.utk.edu/lapack-forum -LAPACK mailing list : lapack@cs.utk.edu diff --git a/dspl/liblapack/SRC/VARIANTS/cholesky/RL/cpotrf.f b/dspl/liblapack/SRC/VARIANTS/cholesky/RL/cpotrf.f deleted file mode 100644 index 8cec880..0000000 --- a/dspl/liblapack/SRC/VARIANTS/cholesky/RL/cpotrf.f +++ /dev/null @@ -1,243 +0,0 @@ -C> \brief \b CPOTRF VARIANT: right looking block version of the algorithm, calling Level 3 BLAS. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE CPOTRF ( UPLO, N, A, LDA, INFO ) -* -* .. Scalar Arguments .. -* CHARACTER UPLO -* INTEGER INFO, LDA, N -* .. -* .. Array Arguments .. -* COMPLEX A( LDA, * ) -* .. -* -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C> -C> CPOTRF computes the Cholesky factorization of a real Hermitian -C> positive definite matrix A. -C> -C> The factorization has the form -C> A = U**H * U, if UPLO = 'U', or -C> A = L * L**H, if UPLO = 'L', -C> where U is an upper triangular matrix and L is lower triangular. -C> -C> This is the right looking block version of the algorithm, calling Level 3 BLAS. -C> -C>\endverbatim -* -* Arguments: -* ========== -* -C> \param[in] UPLO -C> \verbatim -C> UPLO is CHARACTER*1 -C> = 'U': Upper triangle of A is stored; -C> = 'L': Lower triangle of A is stored. -C> \endverbatim -C> -C> \param[in] N -C> \verbatim -C> N is INTEGER -C> The order of the matrix A. N >= 0. -C> \endverbatim -C> -C> \param[in,out] A -C> \verbatim -C> A is COMPLEX array, dimension (LDA,N) -C> On entry, the Hermitian matrix A. If UPLO = 'U', the leading -C> N-by-N upper triangular part of A contains the upper -C> triangular part of the matrix A, and the strictly lower -C> triangular part of A is not referenced. If UPLO = 'L', the -C> leading N-by-N lower triangular part of A contains the lower -C> triangular part of the matrix A, and the strictly upper -C> triangular part of A is not referenced. -C> \endverbatim -C> \verbatim -C> On exit, if INFO = 0, the factor U or L from the Cholesky -C> factorization A = U**H*U or A = L*L**H. -C> \endverbatim -C> -C> \param[in] LDA -C> \verbatim -C> LDA is INTEGER -C> The leading dimension of the array A. LDA >= max(1,N). -C> \endverbatim -C> -C> \param[out] INFO -C> \verbatim -C> INFO is INTEGER -C> = 0: successful exit -C> < 0: if INFO = -i, the i-th argument had an illegal value -C> > 0: if INFO = i, the leading minor of order i is not -C> positive definite, and the factorization could not be -C> completed. -C> \endverbatim -C> -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsPOcomputational -* -* ===================================================================== - SUBROUTINE CPOTRF ( UPLO, N, A, LDA, INFO ) -* -* -- LAPACK computational routine (version 3.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER UPLO - INTEGER INFO, LDA, N -* .. -* .. Array Arguments .. - COMPLEX A( LDA, * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - REAL ONE - COMPLEX CONE - PARAMETER ( ONE = 1.0E+0, CONE = ( 1.0E+0, 0.0E+0 ) ) -* .. -* .. Local Scalars .. - LOGICAL UPPER - INTEGER J, JB, NB -* .. -* .. External Functions .. - LOGICAL LSAME - INTEGER ILAENV - EXTERNAL LSAME, ILAENV -* .. -* .. External Subroutines .. - EXTERNAL CGEMM, CPOTF2, CHERK, CTRSM, XERBLA -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. Executable Statements .. -* -* Test the input parameters. -* - INFO = 0 - UPPER = LSAME( UPLO, 'U' ) - IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, N ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'CPOTRF', -INFO ) - RETURN - END IF -* -* Quick return if possible -* - IF( N.EQ.0 ) - $ RETURN -* -* Determine the block size for this environment. -* - NB = ILAENV( 1, 'CPOTRF', UPLO, N, -1, -1, -1 ) - IF( NB.LE.1 .OR. NB.GE.N ) THEN -* -* Use unblocked code. -* - CALL CPOTF2( UPLO, N, A, LDA, INFO ) - ELSE -* -* Use blocked code. -* - IF( UPPER ) THEN -* -* Compute the Cholesky factorization A = U'*U. -* - DO 10 J = 1, N, NB -* -* Update and factorize the current diagonal block and test -* for non-positive-definiteness. -* - JB = MIN( NB, N-J+1 ) - - CALL CPOTF2( 'Upper', JB, A( J, J ), LDA, INFO ) - - IF( INFO.NE.0 ) - $ GO TO 30 - - IF( J+JB.LE.N ) THEN -* -* Updating the trailing submatrix. -* - CALL CTRSM( 'Left', 'Upper', 'Conjugate Transpose', - $ 'Non-unit', JB, N-J-JB+1, CONE, A( J, J ), - $ LDA, A( J, J+JB ), LDA ) - CALL CHERK( 'Upper', 'Conjugate transpose', N-J-JB+1, - $ JB, -ONE, A( J, J+JB ), LDA, - $ ONE, A( J+JB, J+JB ), LDA ) - END IF - 10 CONTINUE -* - ELSE -* -* Compute the Cholesky factorization A = L*L'. -* - DO 20 J = 1, N, NB -* -* Update and factorize the current diagonal block and test -* for non-positive-definiteness. -* - JB = MIN( NB, N-J+1 ) - - CALL CPOTF2( 'Lower', JB, A( J, J ), LDA, INFO ) - - IF( INFO.NE.0 ) - $ GO TO 30 - - IF( J+JB.LE.N ) THEN -* -* Updating the trailing submatrix. -* - CALL CTRSM( 'Right', 'Lower', 'Conjugate Transpose', - $ 'Non-unit', N-J-JB+1, JB, CONE, A( J, J ), - $ LDA, A( J+JB, J ), LDA ) - - CALL CHERK( 'Lower', 'No Transpose', N-J-JB+1, JB, - $ -ONE, A( J+JB, J ), LDA, - $ ONE, A( J+JB, J+JB ), LDA ) - END IF - 20 CONTINUE - END IF - END IF - GO TO 40 -* - 30 CONTINUE - INFO = INFO + J - 1 -* - 40 CONTINUE - RETURN -* -* End of CPOTRF -* - END diff --git a/dspl/liblapack/SRC/VARIANTS/cholesky/RL/dpotrf.f b/dspl/liblapack/SRC/VARIANTS/cholesky/RL/dpotrf.f deleted file mode 100644 index 400fbf7..0000000 --- a/dspl/liblapack/SRC/VARIANTS/cholesky/RL/dpotrf.f +++ /dev/null @@ -1,242 +0,0 @@ -C> \brief \b DPOTRF VARIANT: right looking block version of the algorithm, calling Level 3 BLAS. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE DPOTRF ( UPLO, N, A, LDA, INFO ) -* -* .. Scalar Arguments .. -* CHARACTER UPLO -* INTEGER INFO, LDA, N -* .. -* .. Array Arguments .. -* DOUBLE PRECISION A( LDA, * ) -* .. -* -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C> -C> DPOTRF computes the Cholesky factorization of a real symmetric -C> positive definite matrix A. -C> -C> The factorization has the form -C> A = U**T * U, if UPLO = 'U', or -C> A = L * L**T, if UPLO = 'L', -C> where U is an upper triangular matrix and L is lower triangular. -C> -C> This is the right looking block version of the algorithm, calling Level 3 BLAS. -C> -C>\endverbatim -* -* Arguments: -* ========== -* -C> \param[in] UPLO -C> \verbatim -C> UPLO is CHARACTER*1 -C> = 'U': Upper triangle of A is stored; -C> = 'L': Lower triangle of A is stored. -C> \endverbatim -C> -C> \param[in] N -C> \verbatim -C> N is INTEGER -C> The order of the matrix A. N >= 0. -C> \endverbatim -C> -C> \param[in,out] A -C> \verbatim -C> A is DOUBLE PRECISION array, dimension (LDA,N) -C> On entry, the symmetric matrix A. If UPLO = 'U', the leading -C> N-by-N upper triangular part of A contains the upper -C> triangular part of the matrix A, and the strictly lower -C> triangular part of A is not referenced. If UPLO = 'L', the -C> leading N-by-N lower triangular part of A contains the lower -C> triangular part of the matrix A, and the strictly upper -C> triangular part of A is not referenced. -C> \endverbatim -C> \verbatim -C> On exit, if INFO = 0, the factor U or L from the Cholesky -C> factorization A = U**T*U or A = L*L**T. -C> \endverbatim -C> -C> \param[in] LDA -C> \verbatim -C> LDA is INTEGER -C> The leading dimension of the array A. LDA >= max(1,N). -C> \endverbatim -C> -C> \param[out] INFO -C> \verbatim -C> INFO is INTEGER -C> = 0: successful exit -C> < 0: if INFO = -i, the i-th argument had an illegal value -C> > 0: if INFO = i, the leading minor of order i is not -C> positive definite, and the factorization could not be -C> completed. -C> \endverbatim -C> -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsPOcomputational -* -* ===================================================================== - SUBROUTINE DPOTRF ( UPLO, N, A, LDA, INFO ) -* -* -- LAPACK computational routine (version 3.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER UPLO - INTEGER INFO, LDA, N -* .. -* .. Array Arguments .. - DOUBLE PRECISION A( LDA, * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - DOUBLE PRECISION ONE - PARAMETER ( ONE = 1.0D+0 ) -* .. -* .. Local Scalars .. - LOGICAL UPPER - INTEGER J, JB, NB -* .. -* .. External Functions .. - LOGICAL LSAME - INTEGER ILAENV - EXTERNAL LSAME, ILAENV -* .. -* .. External Subroutines .. - EXTERNAL DGEMM, DPOTF2, DSYRK, DTRSM, XERBLA -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. Executable Statements .. -* -* Test the input parameters. -* - INFO = 0 - UPPER = LSAME( UPLO, 'U' ) - IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, N ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'DPOTRF', -INFO ) - RETURN - END IF -* -* Quick return if possible -* - IF( N.EQ.0 ) - $ RETURN -* -* Determine the block size for this environment. -* - NB = ILAENV( 1, 'DPOTRF', UPLO, N, -1, -1, -1 ) - IF( NB.LE.1 .OR. NB.GE.N ) THEN -* -* Use unblocked code. -* - CALL DPOTF2( UPLO, N, A, LDA, INFO ) - ELSE -* -* Use blocked code. -* - IF( UPPER ) THEN -* -* Compute the Cholesky factorization A = U'*U. -* - DO 10 J = 1, N, NB -* -* Update and factorize the current diagonal block and test -* for non-positive-definiteness. -* - JB = MIN( NB, N-J+1 ) - - CALL DPOTF2( 'Upper', JB, A( J, J ), LDA, INFO ) - - IF( INFO.NE.0 ) - $ GO TO 30 - - IF( J+JB.LE.N ) THEN -* -* Updating the trailing submatrix. -* - CALL DTRSM( 'Left', 'Upper', 'Transpose', 'Non-unit', - $ JB, N-J-JB+1, ONE, A( J, J ), LDA, - $ A( J, J+JB ), LDA ) - CALL DSYRK( 'Upper', 'Transpose', N-J-JB+1, JB, -ONE, - $ A( J, J+JB ), LDA, - $ ONE, A( J+JB, J+JB ), LDA ) - END IF - 10 CONTINUE -* - ELSE -* -* Compute the Cholesky factorization A = L*L'. -* - DO 20 J = 1, N, NB -* -* Update and factorize the current diagonal block and test -* for non-positive-definiteness. -* - JB = MIN( NB, N-J+1 ) - - CALL DPOTF2( 'Lower', JB, A( J, J ), LDA, INFO ) - - IF( INFO.NE.0 ) - $ GO TO 30 - - IF( J+JB.LE.N ) THEN -* -* Updating the trailing submatrix. -* - CALL DTRSM( 'Right', 'Lower', 'Transpose', 'Non-unit', - $ N-J-JB+1, JB, ONE, A( J, J ), LDA, - $ A( J+JB, J ), LDA ) - - CALL DSYRK( 'Lower', 'No Transpose', N-J-JB+1, JB, - $ -ONE, A( J+JB, J ), LDA, - $ ONE, A( J+JB, J+JB ), LDA ) - END IF - 20 CONTINUE - END IF - END IF - GO TO 40 -* - 30 CONTINUE - INFO = INFO + J - 1 -* - 40 CONTINUE - RETURN -* -* End of DPOTRF -* - END diff --git a/dspl/liblapack/SRC/VARIANTS/cholesky/RL/spotrf.f b/dspl/liblapack/SRC/VARIANTS/cholesky/RL/spotrf.f deleted file mode 100644 index 090e528..0000000 --- a/dspl/liblapack/SRC/VARIANTS/cholesky/RL/spotrf.f +++ /dev/null @@ -1,242 +0,0 @@ -C> \brief \b SPOTRF VARIANT: right looking block version of the algorithm, calling Level 3 BLAS. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE SPOTRF ( UPLO, N, A, LDA, INFO ) -* -* .. Scalar Arguments .. -* CHARACTER UPLO -* INTEGER INFO, LDA, N -* .. -* .. Array Arguments .. -* REAL A( LDA, * ) -* .. -* -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C> -C> SPOTRF computes the Cholesky factorization of a real symmetric -C> positive definite matrix A. -C> -C> The factorization has the form -C> A = U**T * U, if UPLO = 'U', or -C> A = L * L**T, if UPLO = 'L', -C> where U is an upper triangular matrix and L is lower triangular. -C> -C> This is the right looking block version of the algorithm, calling Level 3 BLAS. -C> -C>\endverbatim -* -* Arguments: -* ========== -* -C> \param[in] UPLO -C> \verbatim -C> UPLO is CHARACTER*1 -C> = 'U': Upper triangle of A is stored; -C> = 'L': Lower triangle of A is stored. -C> \endverbatim -C> -C> \param[in] N -C> \verbatim -C> N is INTEGER -C> The order of the matrix A. N >= 0. -C> \endverbatim -C> -C> \param[in,out] A -C> \verbatim -C> A is REAL array, dimension (LDA,N) -C> On entry, the symmetric matrix A. If UPLO = 'U', the leading -C> N-by-N upper triangular part of A contains the upper -C> triangular part of the matrix A, and the strictly lower -C> triangular part of A is not referenced. If UPLO = 'L', the -C> leading N-by-N lower triangular part of A contains the lower -C> triangular part of the matrix A, and the strictly upper -C> triangular part of A is not referenced. -C> \endverbatim -C> \verbatim -C> On exit, if INFO = 0, the factor U or L from the Cholesky -C> factorization A = U**T*U or A = L*L**T. -C> \endverbatim -C> -C> \param[in] LDA -C> \verbatim -C> LDA is INTEGER -C> The leading dimension of the array A. LDA >= max(1,N). -C> \endverbatim -C> -C> \param[out] INFO -C> \verbatim -C> INFO is INTEGER -C> = 0: successful exit -C> < 0: if INFO = -i, the i-th argument had an illegal value -C> > 0: if INFO = i, the leading minor of order i is not -C> positive definite, and the factorization could not be -C> completed. -C> \endverbatim -C> -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsPOcomputational -* -* ===================================================================== - SUBROUTINE SPOTRF ( UPLO, N, A, LDA, INFO ) -* -* -- LAPACK computational routine (version 3.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER UPLO - INTEGER INFO, LDA, N -* .. -* .. Array Arguments .. - REAL A( LDA, * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - REAL ONE - PARAMETER ( ONE = 1.0E+0 ) -* .. -* .. Local Scalars .. - LOGICAL UPPER - INTEGER J, JB, NB -* .. -* .. External Functions .. - LOGICAL LSAME - INTEGER ILAENV - EXTERNAL LSAME, ILAENV -* .. -* .. External Subroutines .. - EXTERNAL SGEMM, SPOTF2, SSYRK, STRSM, XERBLA -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. Executable Statements .. -* -* Test the input parameters. -* - INFO = 0 - UPPER = LSAME( UPLO, 'U' ) - IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, N ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'SPOTRF', -INFO ) - RETURN - END IF -* -* Quick return if possible -* - IF( N.EQ.0 ) - $ RETURN -* -* Determine the block size for this environment. -* - NB = ILAENV( 1, 'SPOTRF', UPLO, N, -1, -1, -1 ) - IF( NB.LE.1 .OR. NB.GE.N ) THEN -* -* Use unblocked code. -* - CALL SPOTF2( UPLO, N, A, LDA, INFO ) - ELSE -* -* Use blocked code. -* - IF( UPPER ) THEN -* -* Compute the Cholesky factorization A = U'*U. -* - DO 10 J = 1, N, NB -* -* Update and factorize the current diagonal block and test -* for non-positive-definiteness. -* - JB = MIN( NB, N-J+1 ) - - CALL SPOTF2( 'Upper', JB, A( J, J ), LDA, INFO ) - - IF( INFO.NE.0 ) - $ GO TO 30 - - IF( J+JB.LE.N ) THEN -* -* Updating the trailing submatrix. -* - CALL STRSM( 'Left', 'Upper', 'Transpose', 'Non-unit', - $ JB, N-J-JB+1, ONE, A( J, J ), LDA, - $ A( J, J+JB ), LDA ) - CALL SSYRK( 'Upper', 'Transpose', N-J-JB+1, JB, -ONE, - $ A( J, J+JB ), LDA, - $ ONE, A( J+JB, J+JB ), LDA ) - END IF - 10 CONTINUE -* - ELSE -* -* Compute the Cholesky factorization A = L*L'. -* - DO 20 J = 1, N, NB -* -* Update and factorize the current diagonal block and test -* for non-positive-definiteness. -* - JB = MIN( NB, N-J+1 ) - - CALL SPOTF2( 'Lower', JB, A( J, J ), LDA, INFO ) - - IF( INFO.NE.0 ) - $ GO TO 30 - - IF( J+JB.LE.N ) THEN -* -* Updating the trailing submatrix. -* - CALL STRSM( 'Right', 'Lower', 'Transpose', 'Non-unit', - $ N-J-JB+1, JB, ONE, A( J, J ), LDA, - $ A( J+JB, J ), LDA ) - - CALL SSYRK( 'Lower', 'No Transpose', N-J-JB+1, JB, - $ -ONE, A( J+JB, J ), LDA, - $ ONE, A( J+JB, J+JB ), LDA ) - END IF - 20 CONTINUE - END IF - END IF - GO TO 40 -* - 30 CONTINUE - INFO = INFO + J - 1 -* - 40 CONTINUE - RETURN -* -* End of SPOTRF -* - END diff --git a/dspl/liblapack/SRC/VARIANTS/cholesky/RL/zpotrf.f b/dspl/liblapack/SRC/VARIANTS/cholesky/RL/zpotrf.f deleted file mode 100644 index 149eaac..0000000 --- a/dspl/liblapack/SRC/VARIANTS/cholesky/RL/zpotrf.f +++ /dev/null @@ -1,243 +0,0 @@ -C> \brief \b ZPOTRF VARIANT: right looking block version of the algorithm, calling Level 3 BLAS. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE ZPOTRF ( UPLO, N, A, LDA, INFO ) -* -* .. Scalar Arguments .. -* CHARACTER UPLO -* INTEGER INFO, LDA, N -* .. -* .. Array Arguments .. -* COMPLEX*16 A( LDA, * ) -* .. -* -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C> -C> ZPOTRF computes the Cholesky factorization of a real Hermitian -C> positive definite matrix A. -C> -C> The factorization has the form -C> A = U**H * U, if UPLO = 'U', or -C> A = L * L**H, if UPLO = 'L', -C> where U is an upper triangular matrix and L is lower triangular. -C> -C> This is the right looking block version of the algorithm, calling Level 3 BLAS. -C> -C>\endverbatim -* -* Arguments: -* ========== -* -C> \param[in] UPLO -C> \verbatim -C> UPLO is CHARACTER*1 -C> = 'U': Upper triangle of A is stored; -C> = 'L': Lower triangle of A is stored. -C> \endverbatim -C> -C> \param[in] N -C> \verbatim -C> N is INTEGER -C> The order of the matrix A. N >= 0. -C> \endverbatim -C> -C> \param[in,out] A -C> \verbatim -C> A is COMPLEX*16 array, dimension (LDA,N) -C> On entry, the Hermitian matrix A. If UPLO = 'U', the leading -C> N-by-N upper triangular part of A contains the upper -C> triangular part of the matrix A, and the strictly lower -C> triangular part of A is not referenced. If UPLO = 'L', the -C> leading N-by-N lower triangular part of A contains the lower -C> triangular part of the matrix A, and the strictly upper -C> triangular part of A is not referenced. -C> \endverbatim -C> \verbatim -C> On exit, if INFO = 0, the factor U or L from the Cholesky -C> factorization A = U**H*U or A = L*L**H. -C> \endverbatim -C> -C> \param[in] LDA -C> \verbatim -C> LDA is INTEGER -C> The leading dimension of the array A. LDA >= max(1,N). -C> \endverbatim -C> -C> \param[out] INFO -C> \verbatim -C> INFO is INTEGER -C> = 0: successful exit -C> < 0: if INFO = -i, the i-th argument had an illegal value -C> > 0: if INFO = i, the leading minor of order i is not -C> positive definite, and the factorization could not be -C> completed. -C> \endverbatim -C> -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsPOcomputational -* -* ===================================================================== - SUBROUTINE ZPOTRF ( UPLO, N, A, LDA, INFO ) -* -* -- LAPACK computational routine (version 3.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER UPLO - INTEGER INFO, LDA, N -* .. -* .. Array Arguments .. - COMPLEX*16 A( LDA, * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - DOUBLE PRECISION ONE - COMPLEX*16 CONE - PARAMETER ( ONE = 1.0D+0, CONE = ( 1.0D+0, 0.0D+0 ) ) -* .. -* .. Local Scalars .. - LOGICAL UPPER - INTEGER J, JB, NB -* .. -* .. External Functions .. - LOGICAL LSAME - INTEGER ILAENV - EXTERNAL LSAME, ILAENV -* .. -* .. External Subroutines .. - EXTERNAL ZGEMM, ZPOTF2, ZHERK, ZTRSM, XERBLA -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. Executable Statements .. -* -* Test the input parameters. -* - INFO = 0 - UPPER = LSAME( UPLO, 'U' ) - IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, N ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'ZPOTRF', -INFO ) - RETURN - END IF -* -* Quick return if possible -* - IF( N.EQ.0 ) - $ RETURN -* -* Determine the block size for this environment. -* - NB = ILAENV( 1, 'ZPOTRF', UPLO, N, -1, -1, -1 ) - IF( NB.LE.1 .OR. NB.GE.N ) THEN -* -* Use unblocked code. -* - CALL ZPOTF2( UPLO, N, A, LDA, INFO ) - ELSE -* -* Use blocked code. -* - IF( UPPER ) THEN -* -* Compute the Cholesky factorization A = U'*U. -* - DO 10 J = 1, N, NB -* -* Update and factorize the current diagonal block and test -* for non-positive-definiteness. -* - JB = MIN( NB, N-J+1 ) - - CALL ZPOTF2( 'Upper', JB, A( J, J ), LDA, INFO ) - - IF( INFO.NE.0 ) - $ GO TO 30 - - IF( J+JB.LE.N ) THEN -* -* Updating the trailing submatrix. -* - CALL ZTRSM( 'Left', 'Upper', 'Conjugate Transpose', - $ 'Non-unit', JB, N-J-JB+1, CONE, A( J, J ), - $ LDA, A( J, J+JB ), LDA ) - CALL ZHERK( 'Upper', 'Conjugate transpose', N-J-JB+1, - $ JB, -ONE, A( J, J+JB ), LDA, - $ ONE, A( J+JB, J+JB ), LDA ) - END IF - 10 CONTINUE -* - ELSE -* -* Compute the Cholesky factorization A = L*L'. -* - DO 20 J = 1, N, NB -* -* Update and factorize the current diagonal block and test -* for non-positive-definiteness. -* - JB = MIN( NB, N-J+1 ) - - CALL ZPOTF2( 'Lower', JB, A( J, J ), LDA, INFO ) - - IF( INFO.NE.0 ) - $ GO TO 30 - - IF( J+JB.LE.N ) THEN -* -* Updating the trailing submatrix. -* - CALL ZTRSM( 'Right', 'Lower', 'Conjugate Transpose', - $ 'Non-unit', N-J-JB+1, JB, CONE, A( J, J ), - $ LDA, A( J+JB, J ), LDA ) - - CALL ZHERK( 'Lower', 'No Transpose', N-J-JB+1, JB, - $ -ONE, A( J+JB, J ), LDA, - $ ONE, A( J+JB, J+JB ), LDA ) - END IF - 20 CONTINUE - END IF - END IF - GO TO 40 -* - 30 CONTINUE - INFO = INFO + J - 1 -* - 40 CONTINUE - RETURN -* -* End of ZPOTRF -* - END diff --git a/dspl/liblapack/SRC/VARIANTS/cholesky/TOP/cpotrf.f b/dspl/liblapack/SRC/VARIANTS/cholesky/TOP/cpotrf.f deleted file mode 100644 index fd2b13e..0000000 --- a/dspl/liblapack/SRC/VARIANTS/cholesky/TOP/cpotrf.f +++ /dev/null @@ -1,237 +0,0 @@ -C> \brief \b CPOTRF VARIANT: top-looking block version of the algorithm, calling Level 3 BLAS. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE CPOTRF ( UPLO, N, A, LDA, INFO ) -* -* .. Scalar Arguments .. -* CHARACTER UPLO -* INTEGER INFO, LDA, N -* .. -* .. Array Arguments .. -* COMPLEX A( LDA, * ) -* .. -* -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C> -C> CPOTRF computes the Cholesky factorization of a real symmetric -C> positive definite matrix A. -C> -C> The factorization has the form -C> A = U**H * U, if UPLO = 'U', or -C> A = L * L**H, if UPLO = 'L', -C> where U is an upper triangular matrix and L is lower triangular. -C> -C> This is the top-looking block version of the algorithm, calling Level 3 BLAS. -C> -C>\endverbatim -* -* Arguments: -* ========== -* -C> \param[in] UPLO -C> \verbatim -C> UPLO is CHARACTER*1 -C> = 'U': Upper triangle of A is stored; -C> = 'L': Lower triangle of A is stored. -C> \endverbatim -C> -C> \param[in] N -C> \verbatim -C> N is INTEGER -C> The order of the matrix A. N >= 0. -C> \endverbatim -C> -C> \param[in,out] A -C> \verbatim -C> A is COMPLEX array, dimension (LDA,N) -C> On entry, the symmetric matrix A. If UPLO = 'U', the leading -C> N-by-N upper triangular part of A contains the upper -C> triangular part of the matrix A, and the strictly lower -C> triangular part of A is not referenced. If UPLO = 'L', the -C> leading N-by-N lower triangular part of A contains the lower -C> triangular part of the matrix A, and the strictly upper -C> triangular part of A is not referenced. -C> \endverbatim -C> \verbatim -C> On exit, if INFO = 0, the factor U or L from the Cholesky -C> factorization A = U**H*U or A = L*L**H. -C> \endverbatim -C> -C> \param[in] LDA -C> \verbatim -C> LDA is INTEGER -C> The leading dimension of the array A. LDA >= max(1,N). -C> \endverbatim -C> -C> \param[out] INFO -C> \verbatim -C> INFO is INTEGER -C> = 0: successful exit -C> < 0: if INFO = -i, the i-th argument had an illegal value -C> > 0: if INFO = i, the leading minor of order i is not -C> positive definite, and the factorization could not be -C> completed. -C> \endverbatim -C> -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsPOcomputational -* -* ===================================================================== - SUBROUTINE CPOTRF ( UPLO, N, A, LDA, INFO ) -* -* -- LAPACK computational routine (version 3.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER UPLO - INTEGER INFO, LDA, N -* .. -* .. Array Arguments .. - COMPLEX A( LDA, * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - REAL ONE - COMPLEX CONE - PARAMETER ( ONE = 1.0E+0, CONE = ( 1.0E+0, 0.0E+0 ) ) -* .. -* .. Local Scalars .. - LOGICAL UPPER - INTEGER J, JB, NB -* .. -* .. External Functions .. - LOGICAL LSAME - INTEGER ILAENV - EXTERNAL LSAME, ILAENV -* .. -* .. External Subroutines .. - EXTERNAL CGEMM, CPOTF2, CHERK, CTRSM, XERBLA -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. Executable Statements .. -* -* Test the input parameters. -* - INFO = 0 - UPPER = LSAME( UPLO, 'U' ) - IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, N ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'CPOTRF', -INFO ) - RETURN - END IF -* -* Quick return if possible -* - IF( N.EQ.0 ) - $ RETURN -* -* Determine the block size for this environment. -* - NB = ILAENV( 1, 'CPOTRF', UPLO, N, -1, -1, -1 ) - IF( NB.LE.1 .OR. NB.GE.N ) THEN -* -* Use unblocked code. -* - CALL CPOTF2( UPLO, N, A, LDA, INFO ) - ELSE -* -* Use blocked code. -* - IF( UPPER ) THEN -* -* Compute the Cholesky factorization A = U'*U. -* - DO 10 J = 1, N, NB - - JB = MIN( NB, N-J+1 ) -* -* Compute the current block. -* - CALL CTRSM( 'Left', 'Upper', 'Conjugate Transpose', - $ 'Non-unit', J-1, JB, CONE, A( 1, 1 ), LDA, - $ A( 1, J ), LDA ) - - CALL CHERK( 'Upper', 'Conjugate Transpose', JB, J-1, - $ -ONE, A( 1, J ), LDA, ONE, A( J, J ), LDA ) -* -* Update and factorize the current diagonal block and test -* for non-positive-definiteness. -* - CALL CPOTF2( 'Upper', JB, A( J, J ), LDA, INFO ) - IF( INFO.NE.0 ) - $ GO TO 30 - - 10 CONTINUE -* - ELSE -* -* Compute the Cholesky factorization A = L*L'. -* - DO 20 J = 1, N, NB - - JB = MIN( NB, N-J+1 ) -* -* Compute the current block. -* - CALL CTRSM( 'Right', 'Lower', 'Conjugate Transpose', - $ 'Non-unit', JB, J-1, CONE, A( 1, 1 ), LDA, - $ A( J, 1 ), LDA ) - - CALL CHERK( 'Lower', 'No Transpose', JB, J-1, - $ -ONE, A( J, 1 ), LDA, - $ ONE, A( J, J ), LDA ) -* -* Update and factorize the current diagonal block and test -* for non-positive-definiteness. -* - CALL CPOTF2( 'Lower', JB, A( J, J ), LDA, INFO ) - IF( INFO.NE.0 ) - $ GO TO 30 - - 20 CONTINUE - END IF - END IF - GO TO 40 -* - 30 CONTINUE - INFO = INFO + J - 1 -* - 40 CONTINUE - RETURN -* -* End of CPOTRF -* - END diff --git a/dspl/liblapack/SRC/VARIANTS/cholesky/TOP/dpotrf.f b/dspl/liblapack/SRC/VARIANTS/cholesky/TOP/dpotrf.f deleted file mode 100644 index dbb51c4..0000000 --- a/dspl/liblapack/SRC/VARIANTS/cholesky/TOP/dpotrf.f +++ /dev/null @@ -1,238 +0,0 @@ -C> \brief \b DPOTRF VARIANT: top-looking block version of the algorithm, calling Level 3 BLAS. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE DPOTRF ( UPLO, N, A, LDA, INFO ) -* -* .. Scalar Arguments .. -* CHARACTER UPLO -* INTEGER INFO, LDA, N -* .. -* .. Array Arguments .. -* DOUBLE PRECISION A( LDA, * ) -* .. -* -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C> -C> DPOTRF computes the Cholesky factorization of a real symmetric -C> positive definite matrix A. -C> -C> The factorization has the form -C> A = U**T * U, if UPLO = 'U', or -C> A = L * L**T, if UPLO = 'L', -C> where U is an upper triangular matrix and L is lower triangular. -C> -C> This is the top-looking block version of the algorithm, calling Level 3 BLAS. -C> -C>\endverbatim -* -* Arguments: -* ========== -* -C> \param[in] UPLO -C> \verbatim -C> UPLO is CHARACTER*1 -C> = 'U': Upper triangle of A is stored; -C> = 'L': Lower triangle of A is stored. -C> \endverbatim -C> -C> \param[in] N -C> \verbatim -C> N is INTEGER -C> The order of the matrix A. N >= 0. -C> \endverbatim -C> -C> \param[in,out] A -C> \verbatim -C> A is DOUBLE PRECISION array, dimension (LDA,N) -C> On entry, the symmetric matrix A. If UPLO = 'U', the leading -C> N-by-N upper triangular part of A contains the upper -C> triangular part of the matrix A, and the strictly lower -C> triangular part of A is not referenced. If UPLO = 'L', the -C> leading N-by-N lower triangular part of A contains the lower -C> triangular part of the matrix A, and the strictly upper -C> triangular part of A is not referenced. -C> \endverbatim -C> \verbatim -C> On exit, if INFO = 0, the factor U or L from the Cholesky -C> factorization A = U**T*U or A = L*L**T. -C> \endverbatim -C> -C> \param[in] LDA -C> \verbatim -C> LDA is INTEGER -C> The leading dimension of the array A. LDA >= max(1,N). -C> \endverbatim -C> -C> \param[out] INFO -C> \verbatim -C> INFO is INTEGER -C> = 0: successful exit -C> < 0: if INFO = -i, the i-th argument had an illegal value -C> > 0: if INFO = i, the leading minor of order i is not -C> positive definite, and the factorization could not be -C> completed. -C> \endverbatim -C> -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsPOcomputational -* -* ===================================================================== - SUBROUTINE DPOTRF ( UPLO, N, A, LDA, INFO ) -* -* -- LAPACK computational routine (version 3.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER UPLO - INTEGER INFO, LDA, N -* .. -* .. Array Arguments .. - DOUBLE PRECISION A( LDA, * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - DOUBLE PRECISION ONE - PARAMETER ( ONE = 1.0D+0 ) -* .. -* .. Local Scalars .. - LOGICAL UPPER - INTEGER J, JB, NB -* .. -* .. External Functions .. - LOGICAL LSAME - INTEGER ILAENV - EXTERNAL LSAME, ILAENV -* .. -* .. External Subroutines .. - EXTERNAL DGEMM, DPOTF2, DSYRK, DTRSM, XERBLA -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. Executable Statements .. -* -* Test the input parameters. -* - INFO = 0 - UPPER = LSAME( UPLO, 'U' ) - IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, N ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'DPOTRF', -INFO ) - RETURN - END IF -* -* Quick return if possible -* - IF( N.EQ.0 ) - $ RETURN -* -* Determine the block size for this environment. -* - NB = ILAENV( 1, 'DPOTRF', UPLO, N, -1, -1, -1 ) - IF( NB.LE.1 .OR. NB.GE.N ) THEN -* -* Use unblocked code. -* - CALL DPOTF2( UPLO, N, A, LDA, INFO ) - ELSE -* -* Use blocked code. -* - IF( UPPER ) THEN -* -* Compute the Cholesky factorization A = U'*U. -* - DO 10 J = 1, N, NB - - JB = MIN( NB, N-J+1 ) -* -* Compute the current block. -* - CALL DTRSM( 'Left', 'Upper', 'Transpose', 'Non-unit', - $ J-1, JB, ONE, A( 1, 1 ), LDA, - $ A( 1, J ), LDA ) - - CALL DSYRK( 'Upper', 'Transpose', JB, J-1, -ONE, - $ A( 1, J ), LDA, - $ ONE, A( J, J ), LDA ) -* -* Update and factorize the current diagonal block and test -* for non-positive-definiteness. -* - CALL DPOTF2( 'Upper', JB, A( J, J ), LDA, INFO ) - IF( INFO.NE.0 ) - $ GO TO 30 - - 10 CONTINUE -* - ELSE -* -* Compute the Cholesky factorization A = L*L'. -* - DO 20 J = 1, N, NB - - JB = MIN( NB, N-J+1 ) -* -* Compute the current block. -* - CALL DTRSM( 'Right', 'Lower', 'Transpose', 'Non-unit', - $ JB, J-1, ONE, A( 1, 1 ), LDA, - $ A( J, 1 ), LDA ) - - CALL DSYRK( 'Lower', 'No Transpose', JB, J-1, - $ -ONE, A( J, 1 ), LDA, - $ ONE, A( J, J ), LDA ) - -* -* Update and factorize the current diagonal block and test -* for non-positive-definiteness. -* - CALL DPOTF2( 'Lower', JB, A( J, J ), LDA, INFO ) - IF( INFO.NE.0 ) - $ GO TO 30 - - 20 CONTINUE - END IF - END IF - GO TO 40 -* - 30 CONTINUE - INFO = INFO + J - 1 -* - 40 CONTINUE - RETURN -* -* End of DPOTRF -* - END diff --git a/dspl/liblapack/SRC/VARIANTS/cholesky/TOP/spotrf.f b/dspl/liblapack/SRC/VARIANTS/cholesky/TOP/spotrf.f deleted file mode 100644 index 81034df..0000000 --- a/dspl/liblapack/SRC/VARIANTS/cholesky/TOP/spotrf.f +++ /dev/null @@ -1,237 +0,0 @@ -C> \brief \b SPOTRF VARIANT: top-looking block version of the algorithm, calling Level 3 BLAS. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE SPOTRF ( UPLO, N, A, LDA, INFO ) -* -* .. Scalar Arguments .. -* CHARACTER UPLO -* INTEGER INFO, LDA, N -* .. -* .. Array Arguments .. -* REAL A( LDA, * ) -* .. -* -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C> -C> SPOTRF computes the Cholesky factorization of a real symmetric -C> positive definite matrix A. -C> -C> The factorization has the form -C> A = U**T * U, if UPLO = 'U', or -C> A = L * L**T, if UPLO = 'L', -C> where U is an upper triangular matrix and L is lower triangular. -C> -C> This is the top-looking block version of the algorithm, calling Level 3 BLAS. -C> -C>\endverbatim -* -* Arguments: -* ========== -* -C> \param[in] UPLO -C> \verbatim -C> UPLO is CHARACTER*1 -C> = 'U': Upper triangle of A is stored; -C> = 'L': Lower triangle of A is stored. -C> \endverbatim -C> -C> \param[in] N -C> \verbatim -C> N is INTEGER -C> The order of the matrix A. N >= 0. -C> \endverbatim -C> -C> \param[in,out] A -C> \verbatim -C> A is REAL array, dimension (LDA,N) -C> On entry, the symmetric matrix A. If UPLO = 'U', the leading -C> N-by-N upper triangular part of A contains the upper -C> triangular part of the matrix A, and the strictly lower -C> triangular part of A is not referenced. If UPLO = 'L', the -C> leading N-by-N lower triangular part of A contains the lower -C> triangular part of the matrix A, and the strictly upper -C> triangular part of A is not referenced. -C> \endverbatim -C> \verbatim -C> On exit, if INFO = 0, the factor U or L from the Cholesky -C> factorization A = U**T*U or A = L*L**T. -C> \endverbatim -C> -C> \param[in] LDA -C> \verbatim -C> LDA is INTEGER -C> The leading dimension of the array A. LDA >= max(1,N). -C> \endverbatim -C> -C> \param[out] INFO -C> \verbatim -C> INFO is INTEGER -C> = 0: successful exit -C> < 0: if INFO = -i, the i-th argument had an illegal value -C> > 0: if INFO = i, the leading minor of order i is not -C> positive definite, and the factorization could not be -C> completed. -C> \endverbatim -C> -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsPOcomputational -* -* ===================================================================== - SUBROUTINE SPOTRF ( UPLO, N, A, LDA, INFO ) -* -* -- LAPACK computational routine (version 3.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER UPLO - INTEGER INFO, LDA, N -* .. -* .. Array Arguments .. - REAL A( LDA, * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - REAL ONE - PARAMETER ( ONE = 1.0E+0 ) -* .. -* .. Local Scalars .. - LOGICAL UPPER - INTEGER J, JB, NB -* .. -* .. External Functions .. - LOGICAL LSAME - INTEGER ILAENV - EXTERNAL LSAME, ILAENV -* .. -* .. External Subroutines .. - EXTERNAL SGEMM, SPOTF2, SSYRK, STRSM, XERBLA -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. Executable Statements .. -* -* Test the input parameters. -* - INFO = 0 - UPPER = LSAME( UPLO, 'U' ) - IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, N ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'SPOTRF', -INFO ) - RETURN - END IF -* -* Quick return if possible -* - IF( N.EQ.0 ) - $ RETURN -* -* Determine the block size for this environment. -* - NB = ILAENV( 1, 'SPOTRF', UPLO, N, -1, -1, -1 ) - IF( NB.LE.1 .OR. NB.GE.N ) THEN -* -* Use unblocked code. -* - CALL SPOTF2( UPLO, N, A, LDA, INFO ) - ELSE -* -* Use blocked code. -* - IF( UPPER ) THEN -* -* Compute the Cholesky factorization A = U'*U. -* - DO 10 J = 1, N, NB - - JB = MIN( NB, N-J+1 ) -* -* Compute the current block. -* - CALL STRSM( 'Left', 'Upper', 'Transpose', 'Non-unit', - $ J-1, JB, ONE, A( 1, 1 ), LDA, - $ A( 1, J ), LDA ) - - CALL SSYRK( 'Upper', 'Transpose', JB, J-1, -ONE, - $ A( 1, J ), LDA, - $ ONE, A( J, J ), LDA ) -* -* Update and factorize the current diagonal block and test -* for non-positive-definiteness. -* - CALL SPOTF2( 'Upper', JB, A( J, J ), LDA, INFO ) - IF( INFO.NE.0 ) - $ GO TO 30 - - 10 CONTINUE -* - ELSE -* -* Compute the Cholesky factorization A = L*L'. -* - DO 20 J = 1, N, NB - - JB = MIN( NB, N-J+1 ) -* -* Compute the current block. -* - CALL STRSM( 'Right', 'Lower', 'Transpose', 'Non-unit', - $ JB, J-1, ONE, A( 1, 1 ), LDA, - $ A( J, 1 ), LDA ) - - CALL SSYRK( 'Lower', 'No Transpose', JB, J-1, - $ -ONE, A( J, 1 ), LDA, - $ ONE, A( J, J ), LDA ) -* -* Update and factorize the current diagonal block and test -* for non-positive-definiteness. -* - CALL SPOTF2( 'Lower', JB, A( J, J ), LDA, INFO ) - IF( INFO.NE.0 ) - $ GO TO 30 - - 20 CONTINUE - END IF - END IF - GO TO 40 -* - 30 CONTINUE - INFO = INFO + J - 1 -* - 40 CONTINUE - RETURN -* -* End of SPOTRF -* - END diff --git a/dspl/liblapack/SRC/VARIANTS/cholesky/TOP/zpotrf.f b/dspl/liblapack/SRC/VARIANTS/cholesky/TOP/zpotrf.f deleted file mode 100644 index 0096670..0000000 --- a/dspl/liblapack/SRC/VARIANTS/cholesky/TOP/zpotrf.f +++ /dev/null @@ -1,237 +0,0 @@ -C> \brief \b ZPOTRF VARIANT: top-looking block version of the algorithm, calling Level 3 BLAS. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE ZPOTRF ( UPLO, N, A, LDA, INFO ) -* -* .. Scalar Arguments .. -* CHARACTER UPLO -* INTEGER INFO, LDA, N -* .. -* .. Array Arguments .. -* COMPLEX*16 A( LDA, * ) -* .. -* -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C> -C> ZPOTRF computes the Cholesky factorization of a real symmetric -C> positive definite matrix A. -C> -C> The factorization has the form -C> A = U**H * U, if UPLO = 'U', or -C> A = L * L**H, if UPLO = 'L', -C> where U is an upper triangular matrix and L is lower triangular. -C> -C> This is the top-looking block version of the algorithm, calling Level 3 BLAS. -C> -C>\endverbatim -* -* Arguments: -* ========== -* -C> \param[in] UPLO -C> \verbatim -C> UPLO is CHARACTER*1 -C> = 'U': Upper triangle of A is stored; -C> = 'L': Lower triangle of A is stored. -C> \endverbatim -C> -C> \param[in] N -C> \verbatim -C> N is INTEGER -C> The order of the matrix A. N >= 0. -C> \endverbatim -C> -C> \param[in,out] A -C> \verbatim -C> A is COMPLEX*16 array, dimension (LDA,N) -C> On entry, the symmetric matrix A. If UPLO = 'U', the leading -C> N-by-N upper triangular part of A contains the upper -C> triangular part of the matrix A, and the strictly lower -C> triangular part of A is not referenced. If UPLO = 'L', the -C> leading N-by-N lower triangular part of A contains the lower -C> triangular part of the matrix A, and the strictly upper -C> triangular part of A is not referenced. -C> \endverbatim -C> \verbatim -C> On exit, if INFO = 0, the factor U or L from the Cholesky -C> factorization A = U**H*U or A = L*L**H. -C> \endverbatim -C> -C> \param[in] LDA -C> \verbatim -C> LDA is INTEGER -C> The leading dimension of the array A. LDA >= max(1,N). -C> \endverbatim -C> -C> \param[out] INFO -C> \verbatim -C> INFO is INTEGER -C> = 0: successful exit -C> < 0: if INFO = -i, the i-th argument had an illegal value -C> > 0: if INFO = i, the leading minor of order i is not -C> positive definite, and the factorization could not be -C> completed. -C> \endverbatim -C> -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsPOcomputational -* -* ===================================================================== - SUBROUTINE ZPOTRF ( UPLO, N, A, LDA, INFO ) -* -* -- LAPACK computational routine (version 3.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - CHARACTER UPLO - INTEGER INFO, LDA, N -* .. -* .. Array Arguments .. - COMPLEX*16 A( LDA, * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - DOUBLE PRECISION ONE - COMPLEX*16 CONE - PARAMETER ( ONE = 1.0D+0, CONE = ( 1.0D+0, 0.0D+0 ) ) -* .. -* .. Local Scalars .. - LOGICAL UPPER - INTEGER J, JB, NB -* .. -* .. External Functions .. - LOGICAL LSAME - INTEGER ILAENV - EXTERNAL LSAME, ILAENV -* .. -* .. External Subroutines .. - EXTERNAL ZGEMM, ZPOTF2, ZHERK, ZTRSM, XERBLA -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. Executable Statements .. -* -* Test the input parameters. -* - INFO = 0 - UPPER = LSAME( UPLO, 'U' ) - IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, N ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'ZPOTRF', -INFO ) - RETURN - END IF -* -* Quick return if possible -* - IF( N.EQ.0 ) - $ RETURN -* -* Determine the block size for this environment. -* - NB = ILAENV( 1, 'ZPOTRF', UPLO, N, -1, -1, -1 ) - IF( NB.LE.1 .OR. NB.GE.N ) THEN -* -* Use unblocked code. -* - CALL ZPOTF2( UPLO, N, A, LDA, INFO ) - ELSE -* -* Use blocked code. -* - IF( UPPER ) THEN -* -* Compute the Cholesky factorization A = U'*U. -* - DO 10 J = 1, N, NB - - JB = MIN( NB, N-J+1 ) -* -* Compute the current block. -* - CALL ZTRSM( 'Left', 'Upper', 'Conjugate Transpose', - $ 'Non-unit', J-1, JB, CONE, A( 1, 1 ), LDA, - $ A( 1, J ), LDA ) - - CALL ZHERK( 'Upper', 'Conjugate Transpose', JB, J-1, - $ -ONE, A( 1, J ), LDA, ONE, A( J, J ), LDA ) -* -* Update and factorize the current diagonal block and test -* for non-positive-definiteness. -* - CALL ZPOTF2( 'Upper', JB, A( J, J ), LDA, INFO ) - IF( INFO.NE.0 ) - $ GO TO 30 - - 10 CONTINUE -* - ELSE -* -* Compute the Cholesky factorization A = L*L'. -* - DO 20 J = 1, N, NB - - JB = MIN( NB, N-J+1 ) -* -* Compute the current block. -* - CALL ZTRSM( 'Right', 'Lower', 'Conjugate Transpose', - $ 'Non-unit', JB, J-1, CONE, A( 1, 1 ), LDA, - $ A( J, 1 ), LDA ) - - CALL ZHERK( 'Lower', 'No Transpose', JB, J-1, - $ -ONE, A( J, 1 ), LDA, - $ ONE, A( J, J ), LDA ) -* -* Update and factorize the current diagonal block and test -* for non-positive-definiteness. -* - CALL ZPOTF2( 'Lower', JB, A( J, J ), LDA, INFO ) - IF( INFO.NE.0 ) - $ GO TO 30 - - 20 CONTINUE - END IF - END IF - GO TO 40 -* - 30 CONTINUE - INFO = INFO + J - 1 -* - 40 CONTINUE - RETURN -* -* End of ZPOTRF -* - END diff --git a/dspl/liblapack/SRC/VARIANTS/lu/CR/cgetrf.f b/dspl/liblapack/SRC/VARIANTS/lu/CR/cgetrf.f deleted file mode 100644 index 2bddb44..0000000 --- a/dspl/liblapack/SRC/VARIANTS/lu/CR/cgetrf.f +++ /dev/null @@ -1,223 +0,0 @@ -C> \brief \b CGETRF VARIANT: Crout Level 3 BLAS version of the algorithm. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE CGETRF ( M, N, A, LDA, IPIV, INFO) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. -* INTEGER IPIV( * ) -* COMPLEX A( LDA, * ) -* .. -* -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C> -C> CGETRF computes an LU factorization of a general M-by-N matrix A -C> using partial pivoting with row interchanges. -C> -C> The factorization has the form -C> A = P * L * U -C> where P is a permutation matrix, L is lower triangular with unit -C> diagonal elements (lower trapezoidal if m > n), and U is upper -C> triangular (upper trapezoidal if m < n). -C> -C> This is the Crout Level 3 BLAS version of the algorithm. -C> -C>\endverbatim -* -* Arguments: -* ========== -* -C> \param[in] M -C> \verbatim -C> M is INTEGER -C> The number of rows of the matrix A. M >= 0. -C> \endverbatim -C> -C> \param[in] N -C> \verbatim -C> N is INTEGER -C> The number of columns of the matrix A. N >= 0. -C> \endverbatim -C> -C> \param[in,out] A -C> \verbatim -C> A is COMPLEX array, dimension (LDA,N) -C> On entry, the M-by-N matrix to be factored. -C> On exit, the factors L and U from the factorization -C> A = P*L*U; the unit diagonal elements of L are not stored. -C> \endverbatim -C> -C> \param[in] LDA -C> \verbatim -C> LDA is INTEGER -C> The leading dimension of the array A. LDA >= max(1,M). -C> \endverbatim -C> -C> \param[out] IPIV -C> \verbatim -C> IPIV is INTEGER array, dimension (min(M,N)) -C> The pivot indices; for 1 <= i <= min(M,N), row i of the -C> matrix was interchanged with row IPIV(i). -C> \endverbatim -C> -C> \param[out] INFO -C> \verbatim -C> INFO is INTEGER -C> = 0: successful exit -C> < 0: if INFO = -i, the i-th argument had an illegal value -C> > 0: if INFO = i, U(i,i) is exactly zero. The factorization -C> has been completed, but the factor U is exactly -C> singular, and division by zero will occur if it is used -C> to solve a system of equations. -C> \endverbatim -C> -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsGEcomputational -* -* ===================================================================== - SUBROUTINE CGETRF ( M, N, A, LDA, IPIV, INFO) -* -* -- LAPACK computational routine (version 3.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. - INTEGER IPIV( * ) - COMPLEX A( LDA, * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - COMPLEX ONE - PARAMETER ( ONE = ( 1.0E+0, 0.0E+0 ) ) -* .. -* .. Local Scalars .. - INTEGER I, IINFO, J, JB, NB -* .. -* .. External Subroutines .. - EXTERNAL CGEMM, CGETF2, CLASWP, CTRSM, XERBLA -* .. -* .. External Functions .. - INTEGER ILAENV - EXTERNAL ILAENV -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. Executable Statements .. -* -* Test the input parameters. -* - INFO = 0 - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'CGETRF', -INFO ) - RETURN - END IF -* -* Quick return if possible -* - IF( M.EQ.0 .OR. N.EQ.0 ) - $ RETURN -* -* Determine the block size for this environment. -* - NB = ILAENV( 1, 'CGETRF', ' ', M, N, -1, -1 ) - IF( NB.LE.1 .OR. NB.GE.MIN( M, N ) ) THEN -* -* Use unblocked code. -* - CALL CGETF2( M, N, A, LDA, IPIV, INFO ) - ELSE -* -* Use blocked code. -* - DO 20 J = 1, MIN( M, N ), NB - JB = MIN( MIN( M, N )-J+1, NB ) -* -* Update current block. -* - CALL CGEMM( 'No transpose', 'No transpose', - $ M-J+1, JB, J-1, -ONE, - $ A( J, 1 ), LDA, A( 1, J ), LDA, ONE, - $ A( J, J ), LDA ) - -* -* Factor diagonal and subdiagonal blocks and test for exact -* singularity. -* - CALL CGETF2( M-J+1, JB, A( J, J ), LDA, IPIV( J ), IINFO ) -* -* Adjust INFO and the pivot indices. -* - IF( INFO.EQ.0 .AND. IINFO.GT.0 ) - $ INFO = IINFO + J - 1 - DO 10 I = J, MIN( M, J+JB-1 ) - IPIV( I ) = J - 1 + IPIV( I ) - 10 CONTINUE -* -* Apply interchanges to column 1:J-1 -* - CALL CLASWP( J-1, A, LDA, J, J+JB-1, IPIV, 1 ) -* - IF ( J+JB.LE.N ) THEN -* -* Apply interchanges to column J+JB:N -* - CALL CLASWP( N-J-JB+1, A( 1, J+JB ), LDA, J, J+JB-1, - $ IPIV, 1 ) -* - CALL CGEMM( 'No transpose', 'No transpose', - $ JB, N-J-JB+1, J-1, -ONE, - $ A( J, 1 ), LDA, A( 1, J+JB ), LDA, ONE, - $ A( J, J+JB ), LDA ) -* -* Compute block row of U. -* - CALL CTRSM( 'Left', 'Lower', 'No transpose', 'Unit', - $ JB, N-J-JB+1, ONE, A( J, J ), LDA, - $ A( J, J+JB ), LDA ) - END IF - - 20 CONTINUE - - END IF - RETURN -* -* End of CGETRF -* - END diff --git a/dspl/liblapack/SRC/VARIANTS/lu/CR/dgetrf.f b/dspl/liblapack/SRC/VARIANTS/lu/CR/dgetrf.f deleted file mode 100644 index ce0ab22..0000000 --- a/dspl/liblapack/SRC/VARIANTS/lu/CR/dgetrf.f +++ /dev/null @@ -1,223 +0,0 @@ -C> \brief \b DGETRF VARIANT: Crout Level 3 BLAS version of the algorithm. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE DGETRF ( M, N, A, LDA, IPIV, INFO) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. -* INTEGER IPIV( * ) -* DOUBLE PRECISION A( LDA, * ) -* .. -* -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C> -C> DGETRF computes an LU factorization of a general M-by-N matrix A -C> using partial pivoting with row interchanges. -C> -C> The factorization has the form -C> A = P * L * U -C> where P is a permutation matrix, L is lower triangular with unit -C> diagonal elements (lower trapezoidal if m > n), and U is upper -C> triangular (upper trapezoidal if m < n). -C> -C> This is the Crout Level 3 BLAS version of the algorithm. -C> -C>\endverbatim -* -* Arguments: -* ========== -* -C> \param[in] M -C> \verbatim -C> M is INTEGER -C> The number of rows of the matrix A. M >= 0. -C> \endverbatim -C> -C> \param[in] N -C> \verbatim -C> N is INTEGER -C> The number of columns of the matrix A. N >= 0. -C> \endverbatim -C> -C> \param[in,out] A -C> \verbatim -C> A is DOUBLE PRECISION array, dimension (LDA,N) -C> On entry, the M-by-N matrix to be factored. -C> On exit, the factors L and U from the factorization -C> A = P*L*U; the unit diagonal elements of L are not stored. -C> \endverbatim -C> -C> \param[in] LDA -C> \verbatim -C> LDA is INTEGER -C> The leading dimension of the array A. LDA >= max(1,M). -C> \endverbatim -C> -C> \param[out] IPIV -C> \verbatim -C> IPIV is INTEGER array, dimension (min(M,N)) -C> The pivot indices; for 1 <= i <= min(M,N), row i of the -C> matrix was interchanged with row IPIV(i). -C> \endverbatim -C> -C> \param[out] INFO -C> \verbatim -C> INFO is INTEGER -C> = 0: successful exit -C> < 0: if INFO = -i, the i-th argument had an illegal value -C> > 0: if INFO = i, U(i,i) is exactly zero. The factorization -C> has been completed, but the factor U is exactly -C> singular, and division by zero will occur if it is used -C> to solve a system of equations. -C> \endverbatim -C> -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsGEcomputational -* -* ===================================================================== - SUBROUTINE DGETRF ( M, N, A, LDA, IPIV, INFO) -* -* -- LAPACK computational routine (version 3.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. - INTEGER IPIV( * ) - DOUBLE PRECISION A( LDA, * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - DOUBLE PRECISION ONE - PARAMETER ( ONE = 1.0D+0 ) -* .. -* .. Local Scalars .. - INTEGER I, IINFO, J, JB, NB -* .. -* .. External Subroutines .. - EXTERNAL DGEMM, DGETF2, DLASWP, DTRSM, XERBLA -* .. -* .. External Functions .. - INTEGER ILAENV - EXTERNAL ILAENV -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. Executable Statements .. -* -* Test the input parameters. -* - INFO = 0 - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'DGETRF', -INFO ) - RETURN - END IF -* -* Quick return if possible -* - IF( M.EQ.0 .OR. N.EQ.0 ) - $ RETURN -* -* Determine the block size for this environment. -* - NB = ILAENV( 1, 'DGETRF', ' ', M, N, -1, -1 ) - IF( NB.LE.1 .OR. NB.GE.MIN( M, N ) ) THEN -* -* Use unblocked code. -* - CALL DGETF2( M, N, A, LDA, IPIV, INFO ) - ELSE -* -* Use blocked code. -* - DO 20 J = 1, MIN( M, N ), NB - JB = MIN( MIN( M, N )-J+1, NB ) -* -* Update current block. -* - CALL DGEMM( 'No transpose', 'No transpose', - $ M-J+1, JB, J-1, -ONE, - $ A( J, 1 ), LDA, A( 1, J ), LDA, ONE, - $ A( J, J ), LDA ) - -* -* Factor diagonal and subdiagonal blocks and test for exact -* singularity. -* - CALL DGETF2( M-J+1, JB, A( J, J ), LDA, IPIV( J ), IINFO ) -* -* Adjust INFO and the pivot indices. -* - IF( INFO.EQ.0 .AND. IINFO.GT.0 ) - $ INFO = IINFO + J - 1 - DO 10 I = J, MIN( M, J+JB-1 ) - IPIV( I ) = J - 1 + IPIV( I ) - 10 CONTINUE -* -* Apply interchanges to column 1:J-1 -* - CALL DLASWP( J-1, A, LDA, J, J+JB-1, IPIV, 1 ) -* - IF ( J+JB.LE.N ) THEN -* -* Apply interchanges to column J+JB:N -* - CALL DLASWP( N-J-JB+1, A( 1, J+JB ), LDA, J, J+JB-1, - $ IPIV, 1 ) -* - CALL DGEMM( 'No transpose', 'No transpose', - $ JB, N-J-JB+1, J-1, -ONE, - $ A( J, 1 ), LDA, A( 1, J+JB ), LDA, ONE, - $ A( J, J+JB ), LDA ) -* -* Compute block row of U. -* - CALL DTRSM( 'Left', 'Lower', 'No transpose', 'Unit', - $ JB, N-J-JB+1, ONE, A( J, J ), LDA, - $ A( J, J+JB ), LDA ) - END IF - - 20 CONTINUE - - END IF - RETURN -* -* End of DGETRF -* - END diff --git a/dspl/liblapack/SRC/VARIANTS/lu/CR/sgetrf.f b/dspl/liblapack/SRC/VARIANTS/lu/CR/sgetrf.f deleted file mode 100644 index bb65431..0000000 --- a/dspl/liblapack/SRC/VARIANTS/lu/CR/sgetrf.f +++ /dev/null @@ -1,223 +0,0 @@ -C> \brief \b SGETRF VARIANT: Crout Level 3 BLAS version of the algorithm. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE SGETRF ( M, N, A, LDA, IPIV, INFO) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. -* INTEGER IPIV( * ) -* REAL A( LDA, * ) -* .. -* -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C> -C> SGETRF computes an LU factorization of a general M-by-N matrix A -C> using partial pivoting with row interchanges. -C> -C> The factorization has the form -C> A = P * L * U -C> where P is a permutation matrix, L is lower triangular with unit -C> diagonal elements (lower trapezoidal if m > n), and U is upper -C> triangular (upper trapezoidal if m < n). -C> -C> This is the Crout Level 3 BLAS version of the algorithm. -C> -C>\endverbatim -* -* Arguments: -* ========== -* -C> \param[in] M -C> \verbatim -C> M is INTEGER -C> The number of rows of the matrix A. M >= 0. -C> \endverbatim -C> -C> \param[in] N -C> \verbatim -C> N is INTEGER -C> The number of columns of the matrix A. N >= 0. -C> \endverbatim -C> -C> \param[in,out] A -C> \verbatim -C> A is REAL array, dimension (LDA,N) -C> On entry, the M-by-N matrix to be factored. -C> On exit, the factors L and U from the factorization -C> A = P*L*U; the unit diagonal elements of L are not stored. -C> \endverbatim -C> -C> \param[in] LDA -C> \verbatim -C> LDA is INTEGER -C> The leading dimension of the array A. LDA >= max(1,M). -C> \endverbatim -C> -C> \param[out] IPIV -C> \verbatim -C> IPIV is INTEGER array, dimension (min(M,N)) -C> The pivot indices; for 1 <= i <= min(M,N), row i of the -C> matrix was interchanged with row IPIV(i). -C> \endverbatim -C> -C> \param[out] INFO -C> \verbatim -C> INFO is INTEGER -C> = 0: successful exit -C> < 0: if INFO = -i, the i-th argument had an illegal value -C> > 0: if INFO = i, U(i,i) is exactly zero. The factorization -C> has been completed, but the factor U is exactly -C> singular, and division by zero will occur if it is used -C> to solve a system of equations. -C> \endverbatim -C> -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsGEcomputational -* -* ===================================================================== - SUBROUTINE SGETRF ( M, N, A, LDA, IPIV, INFO) -* -* -- LAPACK computational routine (version 3.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. - INTEGER IPIV( * ) - REAL A( LDA, * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - REAL ONE - PARAMETER ( ONE = 1.0E+0 ) -* .. -* .. Local Scalars .. - INTEGER I, IINFO, J, JB, NB -* .. -* .. External Subroutines .. - EXTERNAL SGEMM, SGETF2, SLASWP, STRSM, XERBLA -* .. -* .. External Functions .. - INTEGER ILAENV - EXTERNAL ILAENV -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. Executable Statements .. -* -* Test the input parameters. -* - INFO = 0 - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'SGETRF', -INFO ) - RETURN - END IF -* -* Quick return if possible -* - IF( M.EQ.0 .OR. N.EQ.0 ) - $ RETURN -* -* Determine the block size for this environment. -* - NB = ILAENV( 1, 'SGETRF', ' ', M, N, -1, -1 ) - IF( NB.LE.1 .OR. NB.GE.MIN( M, N ) ) THEN -* -* Use unblocked code. -* - CALL SGETF2( M, N, A, LDA, IPIV, INFO ) - ELSE -* -* Use blocked code. -* - DO 20 J = 1, MIN( M, N ), NB - JB = MIN( MIN( M, N )-J+1, NB ) -* -* Update current block. -* - CALL SGEMM( 'No transpose', 'No transpose', - $ M-J+1, JB, J-1, -ONE, - $ A( J, 1 ), LDA, A( 1, J ), LDA, ONE, - $ A( J, J ), LDA ) - -* -* Factor diagonal and subdiagonal blocks and test for exact -* singularity. -* - CALL SGETF2( M-J+1, JB, A( J, J ), LDA, IPIV( J ), IINFO ) -* -* Adjust INFO and the pivot indices. -* - IF( INFO.EQ.0 .AND. IINFO.GT.0 ) - $ INFO = IINFO + J - 1 - DO 10 I = J, MIN( M, J+JB-1 ) - IPIV( I ) = J - 1 + IPIV( I ) - 10 CONTINUE -* -* Apply interchanges to column 1:J-1 -* - CALL SLASWP( J-1, A, LDA, J, J+JB-1, IPIV, 1 ) -* - IF ( J+JB.LE.N ) THEN -* -* Apply interchanges to column J+JB:N -* - CALL SLASWP( N-J-JB+1, A( 1, J+JB ), LDA, J, J+JB-1, - $ IPIV, 1 ) -* - CALL SGEMM( 'No transpose', 'No transpose', - $ JB, N-J-JB+1, J-1, -ONE, - $ A( J, 1 ), LDA, A( 1, J+JB ), LDA, ONE, - $ A( J, J+JB ), LDA ) -* -* Compute block row of U. -* - CALL STRSM( 'Left', 'Lower', 'No transpose', 'Unit', - $ JB, N-J-JB+1, ONE, A( J, J ), LDA, - $ A( J, J+JB ), LDA ) - END IF - - 20 CONTINUE - - END IF - RETURN -* -* End of SGETRF -* - END diff --git a/dspl/liblapack/SRC/VARIANTS/lu/CR/zgetrf.f b/dspl/liblapack/SRC/VARIANTS/lu/CR/zgetrf.f deleted file mode 100644 index 39090e6..0000000 --- a/dspl/liblapack/SRC/VARIANTS/lu/CR/zgetrf.f +++ /dev/null @@ -1,223 +0,0 @@ -C> \brief \b ZGETRF VARIANT: Crout Level 3 BLAS version of the algorithm. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE ZGETRF ( M, N, A, LDA, IPIV, INFO) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. -* INTEGER IPIV( * ) -* COMPLEX*16 A( LDA, * ) -* .. -* -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C> -C> ZGETRF computes an LU factorization of a general M-by-N matrix A -C> using partial pivoting with row interchanges. -C> -C> The factorization has the form -C> A = P * L * U -C> where P is a permutation matrix, L is lower triangular with unit -C> diagonal elements (lower trapezoidal if m > n), and U is upper -C> triangular (upper trapezoidal if m < n). -C> -C> This is the Crout Level 3 BLAS version of the algorithm. -C> -C>\endverbatim -* -* Arguments: -* ========== -* -C> \param[in] M -C> \verbatim -C> M is INTEGER -C> The number of rows of the matrix A. M >= 0. -C> \endverbatim -C> -C> \param[in] N -C> \verbatim -C> N is INTEGER -C> The number of columns of the matrix A. N >= 0. -C> \endverbatim -C> -C> \param[in,out] A -C> \verbatim -C> A is COMPLEX*16 array, dimension (LDA,N) -C> On entry, the M-by-N matrix to be factored. -C> On exit, the factors L and U from the factorization -C> A = P*L*U; the unit diagonal elements of L are not stored. -C> \endverbatim -C> -C> \param[in] LDA -C> \verbatim -C> LDA is INTEGER -C> The leading dimension of the array A. LDA >= max(1,M). -C> \endverbatim -C> -C> \param[out] IPIV -C> \verbatim -C> IPIV is INTEGER array, dimension (min(M,N)) -C> The pivot indices; for 1 <= i <= min(M,N), row i of the -C> matrix was interchanged with row IPIV(i). -C> \endverbatim -C> -C> \param[out] INFO -C> \verbatim -C> INFO is INTEGER -C> = 0: successful exit -C> < 0: if INFO = -i, the i-th argument had an illegal value -C> > 0: if INFO = i, U(i,i) is exactly zero. The factorization -C> has been completed, but the factor U is exactly -C> singular, and division by zero will occur if it is used -C> to solve a system of equations. -C> \endverbatim -C> -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsGEcomputational -* -* ===================================================================== - SUBROUTINE ZGETRF ( M, N, A, LDA, IPIV, INFO) -* -* -- LAPACK computational routine (version 3.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. - INTEGER IPIV( * ) - COMPLEX*16 A( LDA, * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - COMPLEX*16 ONE - PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ) ) -* .. -* .. Local Scalars .. - INTEGER I, IINFO, J, JB, NB -* .. -* .. External Subroutines .. - EXTERNAL ZGEMM, ZGETF2, ZLASWP, ZTRSM, XERBLA -* .. -* .. External Functions .. - INTEGER ILAENV - EXTERNAL ILAENV -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. Executable Statements .. -* -* Test the input parameters. -* - INFO = 0 - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'ZGETRF', -INFO ) - RETURN - END IF -* -* Quick return if possible -* - IF( M.EQ.0 .OR. N.EQ.0 ) - $ RETURN -* -* Determine the block size for this environment. -* - NB = ILAENV( 1, 'ZGETRF', ' ', M, N, -1, -1 ) - IF( NB.LE.1 .OR. NB.GE.MIN( M, N ) ) THEN -* -* Use unblocked code. -* - CALL ZGETF2( M, N, A, LDA, IPIV, INFO ) - ELSE -* -* Use blocked code. -* - DO 20 J = 1, MIN( M, N ), NB - JB = MIN( MIN( M, N )-J+1, NB ) -* -* Update current block. -* - CALL ZGEMM( 'No transpose', 'No transpose', - $ M-J+1, JB, J-1, -ONE, - $ A( J, 1 ), LDA, A( 1, J ), LDA, ONE, - $ A( J, J ), LDA ) - -* -* Factor diagonal and subdiagonal blocks and test for exact -* singularity. -* - CALL ZGETF2( M-J+1, JB, A( J, J ), LDA, IPIV( J ), IINFO ) -* -* Adjust INFO and the pivot indices. -* - IF( INFO.EQ.0 .AND. IINFO.GT.0 ) - $ INFO = IINFO + J - 1 - DO 10 I = J, MIN( M, J+JB-1 ) - IPIV( I ) = J - 1 + IPIV( I ) - 10 CONTINUE -* -* Apply interchanges to column 1:J-1 -* - CALL ZLASWP( J-1, A, LDA, J, J+JB-1, IPIV, 1 ) -* - IF ( J+JB.LE.N ) THEN -* -* Apply interchanges to column J+JB:N -* - CALL ZLASWP( N-J-JB+1, A( 1, J+JB ), LDA, J, J+JB-1, - $ IPIV, 1 ) -* - CALL ZGEMM( 'No transpose', 'No transpose', - $ JB, N-J-JB+1, J-1, -ONE, - $ A( J, 1 ), LDA, A( 1, J+JB ), LDA, ONE, - $ A( J, J+JB ), LDA ) -* -* Compute block row of U. -* - CALL ZTRSM( 'Left', 'Lower', 'No transpose', 'Unit', - $ JB, N-J-JB+1, ONE, A( J, J ), LDA, - $ A( J, J+JB ), LDA ) - END IF - - 20 CONTINUE - - END IF - RETURN -* -* End of ZGETRF -* - END diff --git a/dspl/liblapack/SRC/VARIANTS/lu/LL/cgetrf.f b/dspl/liblapack/SRC/VARIANTS/lu/LL/cgetrf.f deleted file mode 100644 index 77c7472..0000000 --- a/dspl/liblapack/SRC/VARIANTS/lu/LL/cgetrf.f +++ /dev/null @@ -1,248 +0,0 @@ -C> \brief \b CGETRF VARIANT: left-looking Level 3 BLAS version of the algorithm. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE CGETRF ( M, N, A, LDA, IPIV, INFO) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. -* INTEGER IPIV( * ) -* COMPLEX A( LDA, * ) -* .. -* -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C> -C> CGETRF computes an LU factorization of a general M-by-N matrix A -C> using partial pivoting with row interchanges. -C> -C> The factorization has the form -C> A = P * L * U -C> where P is a permutation matrix, L is lower triangular with unit -C> diagonal elements (lower trapezoidal if m > n), and U is upper -C> triangular (upper trapezoidal if m < n). -C> -C> This is the left-looking Level 3 BLAS version of the algorithm. -C> -C>\endverbatim -* -* Arguments: -* ========== -* -C> \param[in] M -C> \verbatim -C> M is INTEGER -C> The number of rows of the matrix A. M >= 0. -C> \endverbatim -C> -C> \param[in] N -C> \verbatim -C> N is INTEGER -C> The number of columns of the matrix A. N >= 0. -C> \endverbatim -C> -C> \param[in,out] A -C> \verbatim -C> A is COMPLEX array, dimension (LDA,N) -C> On entry, the M-by-N matrix to be factored. -C> On exit, the factors L and U from the factorization -C> A = P*L*U; the unit diagonal elements of L are not stored. -C> \endverbatim -C> -C> \param[in] LDA -C> \verbatim -C> LDA is INTEGER -C> The leading dimension of the array A. LDA >= max(1,M). -C> \endverbatim -C> -C> \param[out] IPIV -C> \verbatim -C> IPIV is INTEGER array, dimension (min(M,N)) -C> The pivot indices; for 1 <= i <= min(M,N), row i of the -C> matrix was interchanged with row IPIV(i). -C> \endverbatim -C> -C> \param[out] INFO -C> \verbatim -C> INFO is INTEGER -C> = 0: successful exit -C> < 0: if INFO = -i, the i-th argument had an illegal value -C> > 0: if INFO = i, U(i,i) is exactly zero. The factorization -C> has been completed, but the factor U is exactly -C> singular, and division by zero will occur if it is used -C> to solve a system of equations. -C> \endverbatim -C> -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsGEcomputational -* -* ===================================================================== - SUBROUTINE CGETRF ( M, N, A, LDA, IPIV, INFO) -* -* -- LAPACK computational routine (version 3.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. - INTEGER IPIV( * ) - COMPLEX A( LDA, * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - COMPLEX ONE - PARAMETER ( ONE = (1.0E+0, 0.0E+0) ) -* .. -* .. Local Scalars .. - INTEGER I, IINFO, J, JB, K, NB -* .. -* .. External Subroutines .. - EXTERNAL CGEMM, CGETF2, CLASWP, CTRSM, XERBLA -* .. -* .. External Functions .. - INTEGER ILAENV - EXTERNAL ILAENV -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. Executable Statements .. -* -* Test the input parameters. -* - INFO = 0 - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'CGETRF', -INFO ) - RETURN - END IF -* -* Quick return if possible -* - IF( M.EQ.0 .OR. N.EQ.0 ) - $ RETURN -* -* Determine the block size for this environment. -* - NB = ILAENV( 1, 'CGETRF', ' ', M, N, -1, -1 ) - IF( NB.LE.1 .OR. NB.GE.MIN( M, N ) ) THEN -* -* Use unblocked code. -* - CALL CGETF2( M, N, A, LDA, IPIV, INFO ) - - ELSE -* -* Use blocked code. -* - DO 20 J = 1, MIN( M, N ), NB - JB = MIN( MIN( M, N )-J+1, NB ) -* -* -* Update before factoring the current panel -* - DO 30 K = 1, J-NB, NB -* -* Apply interchanges to rows K:K+NB-1. -* - CALL CLASWP( JB, A(1, J), LDA, K, K+NB-1, IPIV, 1 ) -* -* Compute block row of U. -* - CALL CTRSM( 'Left', 'Lower', 'No transpose', 'Unit', - $ NB, JB, ONE, A( K, K ), LDA, - $ A( K, J ), LDA ) -* -* Update trailing submatrix. -* - CALL CGEMM( 'No transpose', 'No transpose', - $ M-K-NB+1, JB, NB, -ONE, - $ A( K+NB, K ), LDA, A( K, J ), LDA, ONE, - $ A( K+NB, J ), LDA ) - 30 CONTINUE -* -* Factor diagonal and subdiagonal blocks and test for exact -* singularity. -* - CALL CGETF2( M-J+1, JB, A( J, J ), LDA, IPIV( J ), IINFO ) -* -* Adjust INFO and the pivot indices. -* - IF( INFO.EQ.0 .AND. IINFO.GT.0 ) - $ INFO = IINFO + J - 1 - DO 10 I = J, MIN( M, J+JB-1 ) - IPIV( I ) = J - 1 + IPIV( I ) - 10 CONTINUE -* - 20 CONTINUE - -* -* Apply interchanges to the left-overs -* - DO 40 K = 1, MIN( M, N ), NB - CALL CLASWP( K-1, A( 1, 1 ), LDA, K, - $ MIN (K+NB-1, MIN ( M, N )), IPIV, 1 ) - 40 CONTINUE -* -* Apply update to the M+1:N columns when N > M -* - IF ( N.GT.M ) THEN - - CALL CLASWP( N-M, A(1, M+1), LDA, 1, M, IPIV, 1 ) - - DO 50 K = 1, M, NB - - JB = MIN( M-K+1, NB ) -* - CALL CTRSM( 'Left', 'Lower', 'No transpose', 'Unit', - $ JB, N-M, ONE, A( K, K ), LDA, - $ A( K, M+1 ), LDA ) - -* - IF ( K+NB.LE.M ) THEN - CALL CGEMM( 'No transpose', 'No transpose', - $ M-K-NB+1, N-M, NB, -ONE, - $ A( K+NB, K ), LDA, A( K, M+1 ), LDA, ONE, - $ A( K+NB, M+1 ), LDA ) - END IF - 50 CONTINUE - END IF -* - END IF - RETURN -* -* End of CGETRF -* - END diff --git a/dspl/liblapack/SRC/VARIANTS/lu/LL/dgetrf.f b/dspl/liblapack/SRC/VARIANTS/lu/LL/dgetrf.f deleted file mode 100644 index 9f25abd..0000000 --- a/dspl/liblapack/SRC/VARIANTS/lu/LL/dgetrf.f +++ /dev/null @@ -1,247 +0,0 @@ -C> \brief \b DGETRF VARIANT: left-looking Level 3 BLAS version of the algorithm. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE DGETRF ( M, N, A, LDA, IPIV, INFO) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. -* INTEGER IPIV( * ) -* DOUBLE PRECISION A( LDA, * ) -* .. -* -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C> -C> DGETRF computes an LU factorization of a general M-by-N matrix A -C> using partial pivoting with row interchanges. -C> -C> The factorization has the form -C> A = P * L * U -C> where P is a permutation matrix, L is lower triangular with unit -C> diagonal elements (lower trapezoidal if m > n), and U is upper -C> triangular (upper trapezoidal if m < n). -C> -C> This is the left-looking Level 3 BLAS version of the algorithm. -C> -C>\endverbatim -* -* Arguments: -* ========== -* -C> \param[in] M -C> \verbatim -C> M is INTEGER -C> The number of rows of the matrix A. M >= 0. -C> \endverbatim -C> -C> \param[in] N -C> \verbatim -C> N is INTEGER -C> The number of columns of the matrix A. N >= 0. -C> \endverbatim -C> -C> \param[in,out] A -C> \verbatim -C> A is DOUBLE PRECISION array, dimension (LDA,N) -C> On entry, the M-by-N matrix to be factored. -C> On exit, the factors L and U from the factorization -C> A = P*L*U; the unit diagonal elements of L are not stored. -C> \endverbatim -C> -C> \param[in] LDA -C> \verbatim -C> LDA is INTEGER -C> The leading dimension of the array A. LDA >= max(1,M). -C> \endverbatim -C> -C> \param[out] IPIV -C> \verbatim -C> IPIV is INTEGER array, dimension (min(M,N)) -C> The pivot indices; for 1 <= i <= min(M,N), row i of the -C> matrix was interchanged with row IPIV(i). -C> \endverbatim -C> -C> \param[out] INFO -C> \verbatim -C> INFO is INTEGER -C> = 0: successful exit -C> < 0: if INFO = -i, the i-th argument had an illegal value -C> > 0: if INFO = i, U(i,i) is exactly zero. The factorization -C> has been completed, but the factor U is exactly -C> singular, and division by zero will occur if it is used -C> to solve a system of equations. -C> \endverbatim -C> -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsGEcomputational -* -* ===================================================================== - SUBROUTINE DGETRF ( M, N, A, LDA, IPIV, INFO) -* -* -- LAPACK computational routine (version 3.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. - INTEGER IPIV( * ) - DOUBLE PRECISION A( LDA, * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - DOUBLE PRECISION ONE - PARAMETER ( ONE = 1.0D+0 ) -* .. -* .. Local Scalars .. - INTEGER I, IINFO, J, JB, K, NB -* .. -* .. External Subroutines .. - EXTERNAL DGEMM, DGETF2, DLASWP, DTRSM, XERBLA -* .. -* .. External Functions .. - INTEGER ILAENV - EXTERNAL ILAENV -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. Executable Statements .. -* -* Test the input parameters. -* - INFO = 0 - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'DGETRF', -INFO ) - RETURN - END IF -* -* Quick return if possible -* - IF( M.EQ.0 .OR. N.EQ.0 ) - $ RETURN -* -* Determine the block size for this environment. -* - NB = ILAENV( 1, 'DGETRF', ' ', M, N, -1, -1 ) - IF( NB.LE.1 .OR. NB.GE.MIN( M, N ) ) THEN -* -* Use unblocked code. -* - CALL DGETF2( M, N, A, LDA, IPIV, INFO ) - - ELSE -* -* Use blocked code. -* - DO 20 J = 1, MIN( M, N ), NB - JB = MIN( MIN( M, N )-J+1, NB ) -* -* Update before factoring the current panel -* - DO 30 K = 1, J-NB, NB -* -* Apply interchanges to rows K:K+NB-1. -* - CALL DLASWP( JB, A(1, J), LDA, K, K+NB-1, IPIV, 1 ) -* -* Compute block row of U. -* - CALL DTRSM( 'Left', 'Lower', 'No transpose', 'Unit', - $ NB, JB, ONE, A( K, K ), LDA, - $ A( K, J ), LDA ) -* -* Update trailing submatrix. -* - CALL DGEMM( 'No transpose', 'No transpose', - $ M-K-NB+1, JB, NB, -ONE, - $ A( K+NB, K ), LDA, A( K, J ), LDA, ONE, - $ A( K+NB, J ), LDA ) - 30 CONTINUE -* -* Factor diagonal and subdiagonal blocks and test for exact -* singularity. -* - CALL DGETF2( M-J+1, JB, A( J, J ), LDA, IPIV( J ), IINFO ) -* -* Adjust INFO and the pivot indices. -* - IF( INFO.EQ.0 .AND. IINFO.GT.0 ) - $ INFO = IINFO + J - 1 - DO 10 I = J, MIN( M, J+JB-1 ) - IPIV( I ) = J - 1 + IPIV( I ) - 10 CONTINUE -* - 20 CONTINUE - -* -* Apply interchanges to the left-overs -* - DO 40 K = 1, MIN( M, N ), NB - CALL DLASWP( K-1, A( 1, 1 ), LDA, K, - $ MIN (K+NB-1, MIN ( M, N )), IPIV, 1 ) - 40 CONTINUE -* -* Apply update to the M+1:N columns when N > M -* - IF ( N.GT.M ) THEN - - CALL DLASWP( N-M, A(1, M+1), LDA, 1, M, IPIV, 1 ) - - DO 50 K = 1, M, NB - - JB = MIN( M-K+1, NB ) -* - CALL DTRSM( 'Left', 'Lower', 'No transpose', 'Unit', - $ JB, N-M, ONE, A( K, K ), LDA, - $ A( K, M+1 ), LDA ) - -* - IF ( K+NB.LE.M ) THEN - CALL DGEMM( 'No transpose', 'No transpose', - $ M-K-NB+1, N-M, NB, -ONE, - $ A( K+NB, K ), LDA, A( K, M+1 ), LDA, ONE, - $ A( K+NB, M+1 ), LDA ) - END IF - 50 CONTINUE - END IF -* - END IF - RETURN -* -* End of DGETRF -* - END diff --git a/dspl/liblapack/SRC/VARIANTS/lu/LL/sgetrf.f b/dspl/liblapack/SRC/VARIANTS/lu/LL/sgetrf.f deleted file mode 100644 index 765cacc..0000000 --- a/dspl/liblapack/SRC/VARIANTS/lu/LL/sgetrf.f +++ /dev/null @@ -1,248 +0,0 @@ -C> \brief \b SGETRF VARIANT: left-looking Level 3 BLAS version of the algorithm. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE SGETRF ( M, N, A, LDA, IPIV, INFO) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. -* INTEGER IPIV( * ) -* REAL A( LDA, * ) -* .. -* -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C> -C> SGETRF computes an LU factorization of a general M-by-N matrix A -C> using partial pivoting with row interchanges. -C> -C> The factorization has the form -C> A = P * L * U -C> where P is a permutation matrix, L is lower triangular with unit -C> diagonal elements (lower trapezoidal if m > n), and U is upper -C> triangular (upper trapezoidal if m < n). -C> -C> This is the left-looking Level 3 BLAS version of the algorithm. -C> -C>\endverbatim -* -* Arguments: -* ========== -* -C> \param[in] M -C> \verbatim -C> M is INTEGER -C> The number of rows of the matrix A. M >= 0. -C> \endverbatim -C> -C> \param[in] N -C> \verbatim -C> N is INTEGER -C> The number of columns of the matrix A. N >= 0. -C> \endverbatim -C> -C> \param[in,out] A -C> \verbatim -C> A is REAL array, dimension (LDA,N) -C> On entry, the M-by-N matrix to be factored. -C> On exit, the factors L and U from the factorization -C> A = P*L*U; the unit diagonal elements of L are not stored. -C> \endverbatim -C> -C> \param[in] LDA -C> \verbatim -C> LDA is INTEGER -C> The leading dimension of the array A. LDA >= max(1,M). -C> \endverbatim -C> -C> \param[out] IPIV -C> \verbatim -C> IPIV is INTEGER array, dimension (min(M,N)) -C> The pivot indices; for 1 <= i <= min(M,N), row i of the -C> matrix was interchanged with row IPIV(i). -C> \endverbatim -C> -C> \param[out] INFO -C> \verbatim -C> INFO is INTEGER -C> = 0: successful exit -C> < 0: if INFO = -i, the i-th argument had an illegal value -C> > 0: if INFO = i, U(i,i) is exactly zero. The factorization -C> has been completed, but the factor U is exactly -C> singular, and division by zero will occur if it is used -C> to solve a system of equations. -C> \endverbatim -C> -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsGEcomputational -* -* ===================================================================== - SUBROUTINE SGETRF ( M, N, A, LDA, IPIV, INFO) -* -* -- LAPACK computational routine (version 3.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. - INTEGER IPIV( * ) - REAL A( LDA, * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - REAL ONE - PARAMETER ( ONE = 1.0E+0 ) -* .. -* .. Local Scalars .. - INTEGER I, IINFO, J, JB, K, NB -* .. -* .. External Subroutines .. - EXTERNAL SGEMM, SGETF2, SLASWP, STRSM, XERBLA -* .. -* .. External Functions .. - INTEGER ILAENV - EXTERNAL ILAENV -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. Executable Statements .. -* -* Test the input parameters. -* - INFO = 0 - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'SGETRF', -INFO ) - RETURN - END IF -* -* Quick return if possible -* - IF( M.EQ.0 .OR. N.EQ.0 ) - $ RETURN -* -* Determine the block size for this environment. -* - NB = ILAENV( 1, 'SGETRF', ' ', M, N, -1, -1 ) - IF( NB.LE.1 .OR. NB.GE.MIN( M, N ) ) THEN -* -* Use unblocked code. -* - CALL SGETF2( M, N, A, LDA, IPIV, INFO ) - - ELSE -* -* Use blocked code. -* - DO 20 J = 1, MIN( M, N ), NB - JB = MIN( MIN( M, N )-J+1, NB ) -* -* -* Update before factoring the current panel -* - DO 30 K = 1, J-NB, NB -* -* Apply interchanges to rows K:K+NB-1. -* - CALL SLASWP( JB, A(1, J), LDA, K, K+NB-1, IPIV, 1 ) -* -* Compute block row of U. -* - CALL STRSM( 'Left', 'Lower', 'No transpose', 'Unit', - $ NB, JB, ONE, A( K, K ), LDA, - $ A( K, J ), LDA ) -* -* Update trailing submatrix. -* - CALL SGEMM( 'No transpose', 'No transpose', - $ M-K-NB+1, JB, NB, -ONE, - $ A( K+NB, K ), LDA, A( K, J ), LDA, ONE, - $ A( K+NB, J ), LDA ) - 30 CONTINUE -* -* Factor diagonal and subdiagonal blocks and test for exact -* singularity. -* - CALL SGETF2( M-J+1, JB, A( J, J ), LDA, IPIV( J ), IINFO ) -* -* Adjust INFO and the pivot indices. -* - IF( INFO.EQ.0 .AND. IINFO.GT.0 ) - $ INFO = IINFO + J - 1 - DO 10 I = J, MIN( M, J+JB-1 ) - IPIV( I ) = J - 1 + IPIV( I ) - 10 CONTINUE -* - 20 CONTINUE - -* -* Apply interchanges to the left-overs -* - DO 40 K = 1, MIN( M, N ), NB - CALL SLASWP( K-1, A( 1, 1 ), LDA, K, - $ MIN (K+NB-1, MIN ( M, N )), IPIV, 1 ) - 40 CONTINUE -* -* Apply update to the M+1:N columns when N > M -* - IF ( N.GT.M ) THEN - - CALL SLASWP( N-M, A(1, M+1), LDA, 1, M, IPIV, 1 ) - - DO 50 K = 1, M, NB - - JB = MIN( M-K+1, NB ) -* - CALL STRSM( 'Left', 'Lower', 'No transpose', 'Unit', - $ JB, N-M, ONE, A( K, K ), LDA, - $ A( K, M+1 ), LDA ) - -* - IF ( K+NB.LE.M ) THEN - CALL SGEMM( 'No transpose', 'No transpose', - $ M-K-NB+1, N-M, NB, -ONE, - $ A( K+NB, K ), LDA, A( K, M+1 ), LDA, ONE, - $ A( K+NB, M+1 ), LDA ) - END IF - 50 CONTINUE - END IF -* - END IF - RETURN -* -* End of SGETRF -* - END diff --git a/dspl/liblapack/SRC/VARIANTS/lu/LL/zgetrf.f b/dspl/liblapack/SRC/VARIANTS/lu/LL/zgetrf.f deleted file mode 100644 index ef3fbf4..0000000 --- a/dspl/liblapack/SRC/VARIANTS/lu/LL/zgetrf.f +++ /dev/null @@ -1,248 +0,0 @@ -C> \brief \b ZGETRF VARIANT: left-looking Level 3 BLAS version of the algorithm. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE ZGETRF ( M, N, A, LDA, IPIV, INFO) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. -* INTEGER IPIV( * ) -* COMPLEX*16 A( LDA, * ) -* .. -* -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C> -C> ZGETRF computes an LU factorization of a general M-by-N matrix A -C> using partial pivoting with row interchanges. -C> -C> The factorization has the form -C> A = P * L * U -C> where P is a permutation matrix, L is lower triangular with unit -C> diagonal elements (lower trapezoidal if m > n), and U is upper -C> triangular (upper trapezoidal if m < n). -C> -C> This is the left-looking Level 3 BLAS version of the algorithm. -C> -C>\endverbatim -* -* Arguments: -* ========== -* -C> \param[in] M -C> \verbatim -C> M is INTEGER -C> The number of rows of the matrix A. M >= 0. -C> \endverbatim -C> -C> \param[in] N -C> \verbatim -C> N is INTEGER -C> The number of columns of the matrix A. N >= 0. -C> \endverbatim -C> -C> \param[in,out] A -C> \verbatim -C> A is COMPLEX*16 array, dimension (LDA,N) -C> On entry, the M-by-N matrix to be factored. -C> On exit, the factors L and U from the factorization -C> A = P*L*U; the unit diagonal elements of L are not stored. -C> \endverbatim -C> -C> \param[in] LDA -C> \verbatim -C> LDA is INTEGER -C> The leading dimension of the array A. LDA >= max(1,M). -C> \endverbatim -C> -C> \param[out] IPIV -C> \verbatim -C> IPIV is INTEGER array, dimension (min(M,N)) -C> The pivot indices; for 1 <= i <= min(M,N), row i of the -C> matrix was interchanged with row IPIV(i). -C> \endverbatim -C> -C> \param[out] INFO -C> \verbatim -C> INFO is INTEGER -C> = 0: successful exit -C> < 0: if INFO = -i, the i-th argument had an illegal value -C> > 0: if INFO = i, U(i,i) is exactly zero. The factorization -C> has been completed, but the factor U is exactly -C> singular, and division by zero will occur if it is used -C> to solve a system of equations. -C> \endverbatim -C> -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsGEcomputational -* -* ===================================================================== - SUBROUTINE ZGETRF ( M, N, A, LDA, IPIV, INFO) -* -* -- LAPACK computational routine (version 3.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. - INTEGER IPIV( * ) - COMPLEX*16 A( LDA, * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - COMPLEX*16 ONE - PARAMETER ( ONE = (1.0D+0, 0.0D+0) ) -* .. -* .. Local Scalars .. - INTEGER I, IINFO, J, JB, K, NB -* .. -* .. External Subroutines .. - EXTERNAL ZGEMM, ZGETF2, ZLASWP, ZTRSM, XERBLA -* .. -* .. External Functions .. - INTEGER ILAENV - EXTERNAL ILAENV -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. Executable Statements .. -* -* Test the input parameters. -* - INFO = 0 - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'ZGETRF', -INFO ) - RETURN - END IF -* -* Quick return if possible -* - IF( M.EQ.0 .OR. N.EQ.0 ) - $ RETURN -* -* Determine the block size for this environment. -* - NB = ILAENV( 1, 'ZGETRF', ' ', M, N, -1, -1 ) - IF( NB.LE.1 .OR. NB.GE.MIN( M, N ) ) THEN -* -* Use unblocked code. -* - CALL ZGETF2( M, N, A, LDA, IPIV, INFO ) - - ELSE -* -* Use blocked code. -* - DO 20 J = 1, MIN( M, N ), NB - JB = MIN( MIN( M, N )-J+1, NB ) -* -* -* Update before factoring the current panel -* - DO 30 K = 1, J-NB, NB -* -* Apply interchanges to rows K:K+NB-1. -* - CALL ZLASWP( JB, A(1, J), LDA, K, K+NB-1, IPIV, 1 ) -* -* Compute block row of U. -* - CALL ZTRSM( 'Left', 'Lower', 'No transpose', 'Unit', - $ NB, JB, ONE, A( K, K ), LDA, - $ A( K, J ), LDA ) -* -* Update trailing submatrix. -* - CALL ZGEMM( 'No transpose', 'No transpose', - $ M-K-NB+1, JB, NB, -ONE, - $ A( K+NB, K ), LDA, A( K, J ), LDA, ONE, - $ A( K+NB, J ), LDA ) - 30 CONTINUE -* -* Factor diagonal and subdiagonal blocks and test for exact -* singularity. -* - CALL ZGETF2( M-J+1, JB, A( J, J ), LDA, IPIV( J ), IINFO ) -* -* Adjust INFO and the pivot indices. -* - IF( INFO.EQ.0 .AND. IINFO.GT.0 ) - $ INFO = IINFO + J - 1 - DO 10 I = J, MIN( M, J+JB-1 ) - IPIV( I ) = J - 1 + IPIV( I ) - 10 CONTINUE -* - 20 CONTINUE - -* -* Apply interchanges to the left-overs -* - DO 40 K = 1, MIN( M, N ), NB - CALL ZLASWP( K-1, A( 1, 1 ), LDA, K, - $ MIN (K+NB-1, MIN ( M, N )), IPIV, 1 ) - 40 CONTINUE -* -* Apply update to the M+1:N columns when N > M -* - IF ( N.GT.M ) THEN - - CALL ZLASWP( N-M, A(1, M+1), LDA, 1, M, IPIV, 1 ) - - DO 50 K = 1, M, NB - - JB = MIN( M-K+1, NB ) -* - CALL ZTRSM( 'Left', 'Lower', 'No transpose', 'Unit', - $ JB, N-M, ONE, A( K, K ), LDA, - $ A( K, M+1 ), LDA ) - -* - IF ( K+NB.LE.M ) THEN - CALL ZGEMM( 'No transpose', 'No transpose', - $ M-K-NB+1, N-M, NB, -ONE, - $ A( K+NB, K ), LDA, A( K, M+1 ), LDA, ONE, - $ A( K+NB, M+1 ), LDA ) - END IF - 50 CONTINUE - END IF -* - END IF - RETURN -* -* End of ZGETRF -* - END diff --git a/dspl/liblapack/SRC/VARIANTS/lu/REC/cgetrf.f b/dspl/liblapack/SRC/VARIANTS/lu/REC/cgetrf.f deleted file mode 100644 index 9daab38..0000000 --- a/dspl/liblapack/SRC/VARIANTS/lu/REC/cgetrf.f +++ /dev/null @@ -1,281 +0,0 @@ -C> \brief \b CGETRF VARIANT: iterative version of Sivan Toledo's recursive LU algorithm -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE CGETRF( M, N, A, LDA, IPIV, INFO ) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. -* INTEGER IPIV( * ) -* COMPLEX A( LDA, * ) -* .. -* -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C> -C> CGETRF computes an LU factorization of a general M-by-N matrix A -C> using partial pivoting with row interchanges. -C> -C> The factorization has the form -C> A = P * L * U -C> where P is a permutation matrix, L is lower triangular with unit -C> diagonal elements (lower trapezoidal if m > n), and U is upper -C> triangular (upper trapezoidal if m < n). -C> -C> This code implements an iterative version of Sivan Toledo's recursive -C> LU algorithm[1]. For square matrices, this iterative versions should -C> be within a factor of two of the optimum number of memory transfers. -C> -C> The pattern is as follows, with the large blocks of U being updated -C> in one call to DTRSM, and the dotted lines denoting sections that -C> have had all pending permutations applied: -C> -C> 1 2 3 4 5 6 7 8 -C> +-+-+---+-------+------ -C> | |1| | | -C> |.+-+ 2 | | -C> | | | | | -C> |.|.+-+-+ 4 | -C> | | | |1| | -C> | | |.+-+ | -C> | | | | | | -C> |.|.|.|.+-+-+---+ 8 -C> | | | | | |1| | -C> | | | | |.+-+ 2 | -C> | | | | | | | | -C> | | | | |.|.+-+-+ -C> | | | | | | | |1| -C> | | | | | | |.+-+ -C> | | | | | | | | | -C> |.|.|.|.|.|.|.|.+----- -C> | | | | | | | | | -C> -C> The 1-2-1-4-1-2-1-8-... pattern is the position of the last 1 bit in -C> the binary expansion of the current column. Each Schur update is -C> applied as soon as the necessary portion of U is available. -C> -C> [1] Toledo, S. 1997. Locality of Reference in LU Decomposition with -C> Partial Pivoting. SIAM J. Matrix Anal. Appl. 18, 4 (Oct. 1997), -C> 1065-1081. http://dx.doi.org/10.1137/S0895479896297744 -C> -C>\endverbatim -* -* Arguments: -* ========== -* -C> \param[in] M -C> \verbatim -C> M is INTEGER -C> The number of rows of the matrix A. M >= 0. -C> \endverbatim -C> -C> \param[in] N -C> \verbatim -C> N is INTEGER -C> The number of columns of the matrix A. N >= 0. -C> \endverbatim -C> -C> \param[in,out] A -C> \verbatim -C> A is COMPLEX array, dimension (LDA,N) -C> On entry, the M-by-N matrix to be factored. -C> On exit, the factors L and U from the factorization -C> A = P*L*U; the unit diagonal elements of L are not stored. -C> \endverbatim -C> -C> \param[in] LDA -C> \verbatim -C> LDA is INTEGER -C> The leading dimension of the array A. LDA >= max(1,M). -C> \endverbatim -C> -C> \param[out] IPIV -C> \verbatim -C> IPIV is INTEGER array, dimension (min(M,N)) -C> The pivot indices; for 1 <= i <= min(M,N), row i of the -C> matrix was interchanged with row IPIV(i). -C> \endverbatim -C> -C> \param[out] INFO -C> \verbatim -C> INFO is INTEGER -C> = 0: successful exit -C> < 0: if INFO = -i, the i-th argument had an illegal value -C> > 0: if INFO = i, U(i,i) is exactly zero. The factorization -C> has been completed, but the factor U is exactly -C> singular, and division by zero will occur if it is used -C> to solve a system of equations. -C> \endverbatim -C> -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsGEcomputational -* -* ===================================================================== - SUBROUTINE CGETRF( M, N, A, LDA, IPIV, INFO ) -* -* -- LAPACK computational routine (version 3.X) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. - INTEGER IPIV( * ) - COMPLEX A( LDA, * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - COMPLEX ONE, NEGONE - REAL ZERO - PARAMETER ( ONE = (1.0E+0, 0.0E+0) ) - PARAMETER ( NEGONE = (-1.0E+0, 0.0E+0) ) - PARAMETER ( ZERO = 0.0E+0 ) -* .. -* .. Local Scalars .. - REAL SFMIN, PIVMAG - COMPLEX TMP - INTEGER I, J, JP, NSTEP, NTOPIV, NPIVED, KAHEAD - INTEGER KSTART, IPIVSTART, JPIVSTART, KCOLS -* .. -* .. External Functions .. - REAL SLAMCH - INTEGER ICAMAX - LOGICAL SISNAN - EXTERNAL SLAMCH, ICAMAX, SISNAN -* .. -* .. External Subroutines .. - EXTERNAL CTRSM, CSCAL, XERBLA, CLASWP -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN, IAND, ABS -* .. -* .. Executable Statements .. -* -* Test the input parameters. -* - INFO = 0 - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'CGETRF', -INFO ) - RETURN - END IF -* -* Quick return if possible -* - IF( M.EQ.0 .OR. N.EQ.0 ) - $ RETURN -* -* Compute machine safe minimum -* - SFMIN = SLAMCH( 'S' ) -* - NSTEP = MIN( M, N ) - DO J = 1, NSTEP - KAHEAD = IAND( J, -J ) - KSTART = J + 1 - KAHEAD - KCOLS = MIN( KAHEAD, M-J ) -* -* Find pivot. -* - JP = J - 1 + ICAMAX( M-J+1, A( J, J ), 1 ) - IPIV( J ) = JP - -* Permute just this column. - IF (JP .NE. J) THEN - TMP = A( J, J ) - A( J, J ) = A( JP, J ) - A( JP, J ) = TMP - END IF - -* Apply pending permutations to L - NTOPIV = 1 - IPIVSTART = J - JPIVSTART = J - NTOPIV - DO WHILE ( NTOPIV .LT. KAHEAD ) - CALL CLASWP( NTOPIV, A( 1, JPIVSTART ), LDA, IPIVSTART, J, - $ IPIV, 1 ) - IPIVSTART = IPIVSTART - NTOPIV; - NTOPIV = NTOPIV * 2; - JPIVSTART = JPIVSTART - NTOPIV; - END DO - -* Permute U block to match L - CALL CLASWP( KCOLS, A( 1,J+1 ), LDA, KSTART, J, IPIV, 1 ) - -* Factor the current column - PIVMAG = ABS( A( J, J ) ) - IF( PIVMAG.NE.ZERO .AND. .NOT.SISNAN( PIVMAG ) ) THEN - IF( PIVMAG .GE. SFMIN ) THEN - CALL CSCAL( M-J, ONE / A( J, J ), A( J+1, J ), 1 ) - ELSE - DO I = 1, M-J - A( J+I, J ) = A( J+I, J ) / A( J, J ) - END DO - END IF - ELSE IF( PIVMAG .EQ. ZERO .AND. INFO .EQ. 0 ) THEN - INFO = J - END IF - -* Solve for U block. - CALL CTRSM( 'Left', 'Lower', 'No transpose', 'Unit', KAHEAD, - $ KCOLS, ONE, A( KSTART, KSTART ), LDA, - $ A( KSTART, J+1 ), LDA ) -* Schur complement. - CALL CGEMM( 'No transpose', 'No transpose', M-J, - $ KCOLS, KAHEAD, NEGONE, A( J+1, KSTART ), LDA, - $ A( KSTART, J+1 ), LDA, ONE, A( J+1, J+1 ), LDA ) - END DO - -* Handle pivot permutations on the way out of the recursion - NPIVED = IAND( NSTEP, -NSTEP ) - J = NSTEP - NPIVED - DO WHILE ( J .GT. 0 ) - NTOPIV = IAND( J, -J ) - CALL CLASWP( NTOPIV, A( 1, J-NTOPIV+1 ), LDA, J+1, NSTEP, - $ IPIV, 1 ) - J = J - NTOPIV - END DO - -* If short and wide, handle the rest of the columns. - IF ( M .LT. N ) THEN - CALL CLASWP( N-M, A( 1, M+KCOLS+1 ), LDA, 1, M, IPIV, 1 ) - CALL CTRSM( 'Left', 'Lower', 'No transpose', 'Unit', M, - $ N-M, ONE, A, LDA, A( 1,M+KCOLS+1 ), LDA ) - END IF - - RETURN -* -* End of CGETRF -* - END diff --git a/dspl/liblapack/SRC/VARIANTS/lu/REC/dgetrf.f b/dspl/liblapack/SRC/VARIANTS/lu/REC/dgetrf.f deleted file mode 100644 index db6cece..0000000 --- a/dspl/liblapack/SRC/VARIANTS/lu/REC/dgetrf.f +++ /dev/null @@ -1,277 +0,0 @@ -C> \brief \b DGETRF VARIANT: iterative version of Sivan Toledo's recursive LU algorithm -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE DGETRF( M, N, A, LDA, IPIV, INFO ) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. -* INTEGER IPIV( * ) -* DOUBLE PRECISION A( LDA, * ) -* .. -* -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C> -C> DGETRF computes an LU factorization of a general M-by-N matrix A -C> using partial pivoting with row interchanges. -C> -C> The factorization has the form -C> A = P * L * U -C> where P is a permutation matrix, L is lower triangular with unit -C> diagonal elements (lower trapezoidal if m > n), and U is upper -C> triangular (upper trapezoidal if m < n). -C> -C> This code implements an iterative version of Sivan Toledo's recursive -C> LU algorithm[1]. For square matrices, this iterative versions should -C> be within a factor of two of the optimum number of memory transfers. -C> -C> The pattern is as follows, with the large blocks of U being updated -C> in one call to DTRSM, and the dotted lines denoting sections that -C> have had all pending permutations applied: -C> -C> 1 2 3 4 5 6 7 8 -C> +-+-+---+-------+------ -C> | |1| | | -C> |.+-+ 2 | | -C> | | | | | -C> |.|.+-+-+ 4 | -C> | | | |1| | -C> | | |.+-+ | -C> | | | | | | -C> |.|.|.|.+-+-+---+ 8 -C> | | | | | |1| | -C> | | | | |.+-+ 2 | -C> | | | | | | | | -C> | | | | |.|.+-+-+ -C> | | | | | | | |1| -C> | | | | | | |.+-+ -C> | | | | | | | | | -C> |.|.|.|.|.|.|.|.+----- -C> | | | | | | | | | -C> -C> The 1-2-1-4-1-2-1-8-... pattern is the position of the last 1 bit in -C> the binary expansion of the current column. Each Schur update is -C> applied as soon as the necessary portion of U is available. -C> -C> [1] Toledo, S. 1997. Locality of Reference in LU Decomposition with -C> Partial Pivoting. SIAM J. Matrix Anal. Appl. 18, 4 (Oct. 1997), -C> 1065-1081. http://dx.doi.org/10.1137/S0895479896297744 -C> -C>\endverbatim -* -* Arguments: -* ========== -* -C> \param[in] M -C> \verbatim -C> M is INTEGER -C> The number of rows of the matrix A. M >= 0. -C> \endverbatim -C> -C> \param[in] N -C> \verbatim -C> N is INTEGER -C> The number of columns of the matrix A. N >= 0. -C> \endverbatim -C> -C> \param[in,out] A -C> \verbatim -C> A is DOUBLE PRECISION array, dimension (LDA,N) -C> On entry, the M-by-N matrix to be factored. -C> On exit, the factors L and U from the factorization -C> A = P*L*U; the unit diagonal elements of L are not stored. -C> \endverbatim -C> -C> \param[in] LDA -C> \verbatim -C> LDA is INTEGER -C> The leading dimension of the array A. LDA >= max(1,M). -C> \endverbatim -C> -C> \param[out] IPIV -C> \verbatim -C> IPIV is INTEGER array, dimension (min(M,N)) -C> The pivot indices; for 1 <= i <= min(M,N), row i of the -C> matrix was interchanged with row IPIV(i). -C> \endverbatim -C> -C> \param[out] INFO -C> \verbatim -C> INFO is INTEGER -C> = 0: successful exit -C> < 0: if INFO = -i, the i-th argument had an illegal value -C> > 0: if INFO = i, U(i,i) is exactly zero. The factorization -C> has been completed, but the factor U is exactly -C> singular, and division by zero will occur if it is used -C> to solve a system of equations. -C> \endverbatim -C> -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsGEcomputational -* -* ===================================================================== - SUBROUTINE DGETRF( M, N, A, LDA, IPIV, INFO ) -* -* -- LAPACK computational routine (version 3.X) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. - INTEGER IPIV( * ) - DOUBLE PRECISION A( LDA, * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - DOUBLE PRECISION ONE, ZERO, NEGONE - PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) - PARAMETER ( NEGONE = -1.0D+0 ) -* .. -* .. Local Scalars .. - DOUBLE PRECISION SFMIN, TMP - INTEGER I, J, JP, NSTEP, NTOPIV, NPIVED, KAHEAD - INTEGER KSTART, IPIVSTART, JPIVSTART, KCOLS -* .. -* .. External Functions .. - DOUBLE PRECISION DLAMCH - INTEGER IDAMAX - LOGICAL DISNAN - EXTERNAL DLAMCH, IDAMAX, DISNAN -* .. -* .. External Subroutines .. - EXTERNAL DTRSM, DSCAL, XERBLA, DLASWP -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN, IAND -* .. -* .. Executable Statements .. -* -* Test the input parameters. -* - INFO = 0 - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'DGETRF', -INFO ) - RETURN - END IF -* -* Quick return if possible -* - IF( M.EQ.0 .OR. N.EQ.0 ) - $ RETURN -* -* Compute machine safe minimum -* - SFMIN = DLAMCH( 'S' ) -* - NSTEP = MIN( M, N ) - DO J = 1, NSTEP - KAHEAD = IAND( J, -J ) - KSTART = J + 1 - KAHEAD - KCOLS = MIN( KAHEAD, M-J ) -* -* Find pivot. -* - JP = J - 1 + IDAMAX( M-J+1, A( J, J ), 1 ) - IPIV( J ) = JP - -* Permute just this column. - IF (JP .NE. J) THEN - TMP = A( J, J ) - A( J, J ) = A( JP, J ) - A( JP, J ) = TMP - END IF - -* Apply pending permutations to L - NTOPIV = 1 - IPIVSTART = J - JPIVSTART = J - NTOPIV - DO WHILE ( NTOPIV .LT. KAHEAD ) - CALL DLASWP( NTOPIV, A( 1, JPIVSTART ), LDA, IPIVSTART, J, - $ IPIV, 1 ) - IPIVSTART = IPIVSTART - NTOPIV; - NTOPIV = NTOPIV * 2; - JPIVSTART = JPIVSTART - NTOPIV; - END DO - -* Permute U block to match L - CALL DLASWP( KCOLS, A( 1,J+1 ), LDA, KSTART, J, IPIV, 1 ) - -* Factor the current column - IF( A( J, J ).NE.ZERO .AND. .NOT.DISNAN( A( J, J ) ) ) THEN - IF( ABS(A( J, J )) .GE. SFMIN ) THEN - CALL DSCAL( M-J, ONE / A( J, J ), A( J+1, J ), 1 ) - ELSE - DO I = 1, M-J - A( J+I, J ) = A( J+I, J ) / A( J, J ) - END DO - END IF - ELSE IF( A( J,J ) .EQ. ZERO .AND. INFO .EQ. 0 ) THEN - INFO = J - END IF - -* Solve for U block. - CALL DTRSM( 'Left', 'Lower', 'No transpose', 'Unit', KAHEAD, - $ KCOLS, ONE, A( KSTART, KSTART ), LDA, - $ A( KSTART, J+1 ), LDA ) -* Schur complement. - CALL DGEMM( 'No transpose', 'No transpose', M-J, - $ KCOLS, KAHEAD, NEGONE, A( J+1, KSTART ), LDA, - $ A( KSTART, J+1 ), LDA, ONE, A( J+1, J+1 ), LDA ) - END DO - -* Handle pivot permutations on the way out of the recursion - NPIVED = IAND( NSTEP, -NSTEP ) - J = NSTEP - NPIVED - DO WHILE ( J .GT. 0 ) - NTOPIV = IAND( J, -J ) - CALL DLASWP( NTOPIV, A( 1, J-NTOPIV+1 ), LDA, J+1, NSTEP, - $ IPIV, 1 ) - J = J - NTOPIV - END DO - -* If short and wide, handle the rest of the columns. - IF ( M .LT. N ) THEN - CALL DLASWP( N-M, A( 1, M+KCOLS+1 ), LDA, 1, M, IPIV, 1 ) - CALL DTRSM( 'Left', 'Lower', 'No transpose', 'Unit', M, - $ N-M, ONE, A, LDA, A( 1,M+KCOLS+1 ), LDA ) - END IF - - RETURN -* -* End of DGETRF -* - END diff --git a/dspl/liblapack/SRC/VARIANTS/lu/REC/sgetrf.f b/dspl/liblapack/SRC/VARIANTS/lu/REC/sgetrf.f deleted file mode 100644 index 379ad1c..0000000 --- a/dspl/liblapack/SRC/VARIANTS/lu/REC/sgetrf.f +++ /dev/null @@ -1,277 +0,0 @@ -C> \brief \b SGETRF VARIANT: iterative version of Sivan Toledo's recursive LU algorithm -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE SGETRF( M, N, A, LDA, IPIV, INFO ) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. -* INTEGER IPIV( * ) -* REAL A( LDA, * ) -* .. -* -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C> -C> SGETRF computes an LU factorization of a general M-by-N matrix A -C> using partial pivoting with row interchanges. -C> -C> The factorization has the form -C> A = P * L * U -C> where P is a permutation matrix, L is lower triangular with unit -C> diagonal elements (lower trapezoidal if m > n), and U is upper -C> triangular (upper trapezoidal if m < n). -C> -C> This code implements an iterative version of Sivan Toledo's recursive -C> LU algorithm[1]. For square matrices, this iterative versions should -C> be within a factor of two of the optimum number of memory transfers. -C> -C> The pattern is as follows, with the large blocks of U being updated -C> in one call to STRSM, and the dotted lines denoting sections that -C> have had all pending permutations applied: -C> -C> 1 2 3 4 5 6 7 8 -C> +-+-+---+-------+------ -C> | |1| | | -C> |.+-+ 2 | | -C> | | | | | -C> |.|.+-+-+ 4 | -C> | | | |1| | -C> | | |.+-+ | -C> | | | | | | -C> |.|.|.|.+-+-+---+ 8 -C> | | | | | |1| | -C> | | | | |.+-+ 2 | -C> | | | | | | | | -C> | | | | |.|.+-+-+ -C> | | | | | | | |1| -C> | | | | | | |.+-+ -C> | | | | | | | | | -C> |.|.|.|.|.|.|.|.+----- -C> | | | | | | | | | -C> -C> The 1-2-1-4-1-2-1-8-... pattern is the position of the last 1 bit in -C> the binary expansion of the current column. Each Schur update is -C> applied as soon as the necessary portion of U is available. -C> -C> [1] Toledo, S. 1997. Locality of Reference in LU Decomposition with -C> Partial Pivoting. SIAM J. Matrix Anal. Appl. 18, 4 (Oct. 1997), -C> 1065-1081. http://dx.doi.org/10.1137/S0895479896297744 -C> -C>\endverbatim -* -* Arguments: -* ========== -* -C> \param[in] M -C> \verbatim -C> M is INTEGER -C> The number of rows of the matrix A. M >= 0. -C> \endverbatim -C> -C> \param[in] N -C> \verbatim -C> N is INTEGER -C> The number of columns of the matrix A. N >= 0. -C> \endverbatim -C> -C> \param[in,out] A -C> \verbatim -C> A is REAL array, dimension (LDA,N) -C> On entry, the M-by-N matrix to be factored. -C> On exit, the factors L and U from the factorization -C> A = P*L*U; the unit diagonal elements of L are not stored. -C> \endverbatim -C> -C> \param[in] LDA -C> \verbatim -C> LDA is INTEGER -C> The leading dimension of the array A. LDA >= max(1,M). -C> \endverbatim -C> -C> \param[out] IPIV -C> \verbatim -C> IPIV is INTEGER array, dimension (min(M,N)) -C> The pivot indices; for 1 <= i <= min(M,N), row i of the -C> matrix was interchanged with row IPIV(i). -C> \endverbatim -C> -C> \param[out] INFO -C> \verbatim -C> INFO is INTEGER -C> = 0: successful exit -C> < 0: if INFO = -i, the i-th argument had an illegal value -C> > 0: if INFO = i, U(i,i) is exactly zero. The factorization -C> has been completed, but the factor U is exactly -C> singular, and division by zero will occur if it is used -C> to solve a system of equations. -C> \endverbatim -C> -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsGEcomputational -* -* ===================================================================== - SUBROUTINE SGETRF( M, N, A, LDA, IPIV, INFO ) -* -* -- LAPACK computational routine (version 3.X) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. - INTEGER IPIV( * ) - REAL A( LDA, * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - REAL ONE, ZERO, NEGONE - PARAMETER ( ONE = 1.0E+0, ZERO = 0.0E+0 ) - PARAMETER ( NEGONE = -1.0E+0 ) -* .. -* .. Local Scalars .. - REAL SFMIN, TMP - INTEGER I, J, JP, NSTEP, NTOPIV, NPIVED, KAHEAD - INTEGER KSTART, IPIVSTART, JPIVSTART, KCOLS -* .. -* .. External Functions .. - REAL SLAMCH - INTEGER ISAMAX - LOGICAL SISNAN - EXTERNAL SLAMCH, ISAMAX, SISNAN -* .. -* .. External Subroutines .. - EXTERNAL STRSM, SSCAL, XERBLA, SLASWP -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN, IAND -* .. -* .. Executable Statements .. -* -* Test the input parameters. -* - INFO = 0 - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'SGETRF', -INFO ) - RETURN - END IF -* -* Quick return if possible -* - IF( M.EQ.0 .OR. N.EQ.0 ) - $ RETURN -* -* Compute machine safe minimum -* - SFMIN = SLAMCH( 'S' ) -* - NSTEP = MIN( M, N ) - DO J = 1, NSTEP - KAHEAD = IAND( J, -J ) - KSTART = J + 1 - KAHEAD - KCOLS = MIN( KAHEAD, M-J ) -* -* Find pivot. -* - JP = J - 1 + ISAMAX( M-J+1, A( J, J ), 1 ) - IPIV( J ) = JP - -! Permute just this column. - IF (JP .NE. J) THEN - TMP = A( J, J ) - A( J, J ) = A( JP, J ) - A( JP, J ) = TMP - END IF - -! Apply pending permutations to L - NTOPIV = 1 - IPIVSTART = J - JPIVSTART = J - NTOPIV - DO WHILE ( NTOPIV .LT. KAHEAD ) - CALL SLASWP( NTOPIV, A( 1, JPIVSTART ), LDA, IPIVSTART, J, - $ IPIV, 1 ) - IPIVSTART = IPIVSTART - NTOPIV; - NTOPIV = NTOPIV * 2; - JPIVSTART = JPIVSTART - NTOPIV; - END DO - -! Permute U block to match L - CALL SLASWP( KCOLS, A( 1,J+1 ), LDA, KSTART, J, IPIV, 1 ) - -! Factor the current column - IF( A( J, J ).NE.ZERO .AND. .NOT.SISNAN( A( J, J ) ) ) THEN - IF( ABS(A( J, J )) .GE. SFMIN ) THEN - CALL SSCAL( M-J, ONE / A( J, J ), A( J+1, J ), 1 ) - ELSE - DO I = 1, M-J - A( J+I, J ) = A( J+I, J ) / A( J, J ) - END DO - END IF - ELSE IF( A( J,J ) .EQ. ZERO .AND. INFO .EQ. 0 ) THEN - INFO = J - END IF - -! Solve for U block. - CALL STRSM( 'Left', 'Lower', 'No transpose', 'Unit', KAHEAD, - $ KCOLS, ONE, A( KSTART, KSTART ), LDA, - $ A( KSTART, J+1 ), LDA ) -! Schur complement. - CALL SGEMM( 'No transpose', 'No transpose', M-J, - $ KCOLS, KAHEAD, NEGONE, A( J+1, KSTART ), LDA, - $ A( KSTART, J+1 ), LDA, ONE, A( J+1, J+1 ), LDA ) - END DO - -! Handle pivot permutations on the way out of the recursion - NPIVED = IAND( NSTEP, -NSTEP ) - J = NSTEP - NPIVED - DO WHILE ( J .GT. 0 ) - NTOPIV = IAND( J, -J ) - CALL SLASWP( NTOPIV, A( 1, J-NTOPIV+1 ), LDA, J+1, NSTEP, - $ IPIV, 1 ) - J = J - NTOPIV - END DO - -! If short and wide, handle the rest of the columns. - IF ( M .LT. N ) THEN - CALL SLASWP( N-M, A( 1, M+KCOLS+1 ), LDA, 1, M, IPIV, 1 ) - CALL STRSM( 'Left', 'Lower', 'No transpose', 'Unit', M, - $ N-M, ONE, A, LDA, A( 1,M+KCOLS+1 ), LDA ) - END IF - - RETURN -* -* End of SGETRF -* - END diff --git a/dspl/liblapack/SRC/VARIANTS/lu/REC/zgetrf.f b/dspl/liblapack/SRC/VARIANTS/lu/REC/zgetrf.f deleted file mode 100644 index dc42c83..0000000 --- a/dspl/liblapack/SRC/VARIANTS/lu/REC/zgetrf.f +++ /dev/null @@ -1,281 +0,0 @@ -C> \brief \b ZGETRF VARIANT: iterative version of Sivan Toledo's recursive LU algorithm -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE ZGETRF( M, N, A, LDA, IPIV, INFO ) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. -* INTEGER IPIV( * ) -* COMPLEX*16 A( LDA, * ) -* .. -* -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C> -C> ZGETRF computes an LU factorization of a general M-by-N matrix A -C> using partial pivoting with row interchanges. -C> -C> The factorization has the form -C> A = P * L * U -C> where P is a permutation matrix, L is lower triangular with unit -C> diagonal elements (lower trapezoidal if m > n), and U is upper -C> triangular (upper trapezoidal if m < n). -C> -C> This code implements an iterative version of Sivan Toledo's recursive -C> LU algorithm[1]. For square matrices, this iterative versions should -C> be within a factor of two of the optimum number of memory transfers. -C> -C> The pattern is as follows, with the large blocks of U being updated -C> in one call to DTRSM, and the dotted lines denoting sections that -C> have had all pending permutations applied: -C> -C> 1 2 3 4 5 6 7 8 -C> +-+-+---+-------+------ -C> | |1| | | -C> |.+-+ 2 | | -C> | | | | | -C> |.|.+-+-+ 4 | -C> | | | |1| | -C> | | |.+-+ | -C> | | | | | | -C> |.|.|.|.+-+-+---+ 8 -C> | | | | | |1| | -C> | | | | |.+-+ 2 | -C> | | | | | | | | -C> | | | | |.|.+-+-+ -C> | | | | | | | |1| -C> | | | | | | |.+-+ -C> | | | | | | | | | -C> |.|.|.|.|.|.|.|.+----- -C> | | | | | | | | | -C> -C> The 1-2-1-4-1-2-1-8-... pattern is the position of the last 1 bit in -C> the binary expansion of the current column. Each Schur update is -C> applied as soon as the necessary portion of U is available. -C> -C> [1] Toledo, S. 1997. Locality of Reference in LU Decomposition with -C> Partial Pivoting. SIAM J. Matrix Anal. Appl. 18, 4 (Oct. 1997), -C> 1065-1081. http://dx.doi.org/10.1137/S0895479896297744 -C> -C>\endverbatim -* -* Arguments: -* ========== -* -C> \param[in] M -C> \verbatim -C> M is INTEGER -C> The number of rows of the matrix A. M >= 0. -C> \endverbatim -C> -C> \param[in] N -C> \verbatim -C> N is INTEGER -C> The number of columns of the matrix A. N >= 0. -C> \endverbatim -C> -C> \param[in,out] A -C> \verbatim -C> A is COMPLEX*16 array, dimension (LDA,N) -C> On entry, the M-by-N matrix to be factored. -C> On exit, the factors L and U from the factorization -C> A = P*L*U; the unit diagonal elements of L are not stored. -C> \endverbatim -C> -C> \param[in] LDA -C> \verbatim -C> LDA is INTEGER -C> The leading dimension of the array A. LDA >= max(1,M). -C> \endverbatim -C> -C> \param[out] IPIV -C> \verbatim -C> IPIV is INTEGER array, dimension (min(M,N)) -C> The pivot indices; for 1 <= i <= min(M,N), row i of the -C> matrix was interchanged with row IPIV(i). -C> \endverbatim -C> -C> \param[out] INFO -C> \verbatim -C> INFO is INTEGER -C> = 0: successful exit -C> < 0: if INFO = -i, the i-th argument had an illegal value -C> > 0: if INFO = i, U(i,i) is exactly zero. The factorization -C> has been completed, but the factor U is exactly -C> singular, and division by zero will occur if it is used -C> to solve a system of equations. -C> \endverbatim -C> -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsGEcomputational -* -* ===================================================================== - SUBROUTINE ZGETRF( M, N, A, LDA, IPIV, INFO ) -* -* -- LAPACK computational routine (version 3.X) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, M, N -* .. -* .. Array Arguments .. - INTEGER IPIV( * ) - COMPLEX*16 A( LDA, * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - COMPLEX*16 ONE, NEGONE - DOUBLE PRECISION ZERO - PARAMETER ( ONE = (1.0D+0, 0.0D+0) ) - PARAMETER ( NEGONE = (-1.0D+0, 0.0D+0) ) - PARAMETER ( ZERO = 0.0D+0 ) -* .. -* .. Local Scalars .. - DOUBLE PRECISION SFMIN, PIVMAG - COMPLEX*16 TMP - INTEGER I, J, JP, NSTEP, NTOPIV, NPIVED, KAHEAD - INTEGER KSTART, IPIVSTART, JPIVSTART, KCOLS -* .. -* .. External Functions .. - DOUBLE PRECISION DLAMCH - INTEGER IZAMAX - LOGICAL DISNAN - EXTERNAL DLAMCH, IZAMAX, DISNAN -* .. -* .. External Subroutines .. - EXTERNAL ZTRSM, ZSCAL, XERBLA, ZLASWP -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN, IAND, ABS -* .. -* .. Executable Statements .. -* -* Test the input parameters. -* - INFO = 0 - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -4 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'ZGETRF', -INFO ) - RETURN - END IF -* -* Quick return if possible -* - IF( M.EQ.0 .OR. N.EQ.0 ) - $ RETURN -* -* Compute machine safe minimum -* - SFMIN = DLAMCH( 'S' ) -* - NSTEP = MIN( M, N ) - DO J = 1, NSTEP - KAHEAD = IAND( J, -J ) - KSTART = J + 1 - KAHEAD - KCOLS = MIN( KAHEAD, M-J ) -* -* Find pivot. -* - JP = J - 1 + IZAMAX( M-J+1, A( J, J ), 1 ) - IPIV( J ) = JP - -! Permute just this column. - IF (JP .NE. J) THEN - TMP = A( J, J ) - A( J, J ) = A( JP, J ) - A( JP, J ) = TMP - END IF - -! Apply pending permutations to L - NTOPIV = 1 - IPIVSTART = J - JPIVSTART = J - NTOPIV - DO WHILE ( NTOPIV .LT. KAHEAD ) - CALL ZLASWP( NTOPIV, A( 1, JPIVSTART ), LDA, IPIVSTART, J, - $ IPIV, 1 ) - IPIVSTART = IPIVSTART - NTOPIV; - NTOPIV = NTOPIV * 2; - JPIVSTART = JPIVSTART - NTOPIV; - END DO - -! Permute U block to match L - CALL ZLASWP( KCOLS, A( 1,J+1 ), LDA, KSTART, J, IPIV, 1 ) - -! Factor the current column - PIVMAG = ABS( A( J, J ) ) - IF( PIVMAG.NE.ZERO .AND. .NOT.DISNAN( PIVMAG ) ) THEN - IF( PIVMAG .GE. SFMIN ) THEN - CALL ZSCAL( M-J, ONE / A( J, J ), A( J+1, J ), 1 ) - ELSE - DO I = 1, M-J - A( J+I, J ) = A( J+I, J ) / A( J, J ) - END DO - END IF - ELSE IF( PIVMAG .EQ. ZERO .AND. INFO .EQ. 0 ) THEN - INFO = J - END IF - -! Solve for U block. - CALL ZTRSM( 'Left', 'Lower', 'No transpose', 'Unit', KAHEAD, - $ KCOLS, ONE, A( KSTART, KSTART ), LDA, - $ A( KSTART, J+1 ), LDA ) -! Schur complement. - CALL ZGEMM( 'No transpose', 'No transpose', M-J, - $ KCOLS, KAHEAD, NEGONE, A( J+1, KSTART ), LDA, - $ A( KSTART, J+1 ), LDA, ONE, A( J+1, J+1 ), LDA ) - END DO - -! Handle pivot permutations on the way out of the recursion - NPIVED = IAND( NSTEP, -NSTEP ) - J = NSTEP - NPIVED - DO WHILE ( J .GT. 0 ) - NTOPIV = IAND( J, -J ) - CALL ZLASWP( NTOPIV, A( 1, J-NTOPIV+1 ), LDA, J+1, NSTEP, - $ IPIV, 1 ) - J = J - NTOPIV - END DO - -! If short and wide, handle the rest of the columns. - IF ( M .LT. N ) THEN - CALL ZLASWP( N-M, A( 1, M+KCOLS+1 ), LDA, 1, M, IPIV, 1 ) - CALL ZTRSM( 'Left', 'Lower', 'No transpose', 'Unit', M, - $ N-M, ONE, A, LDA, A( 1,M+KCOLS+1 ), LDA ) - END IF - - RETURN -* -* End of ZGETRF -* - END diff --git a/dspl/liblapack/SRC/VARIANTS/qr/LL/cgeqrf.f b/dspl/liblapack/SRC/VARIANTS/qr/LL/cgeqrf.f deleted file mode 100644 index 3cbec13..0000000 --- a/dspl/liblapack/SRC/VARIANTS/qr/LL/cgeqrf.f +++ /dev/null @@ -1,416 +0,0 @@ -C> \brief \b CGEQRF VARIANT: left-looking Level 3 BLAS version of the algorithm. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE CGEQRF ( M, N, A, LDA, TAU, WORK, LWORK, INFO ) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, LWORK, M, N -* .. -* .. Array Arguments .. -* COMPLEX A( LDA, * ), TAU( * ), WORK( * ) -* .. -* -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C> -C> CGEQRF computes a QR factorization of a real M-by-N matrix A: -C> A = Q * R. -C> -C> This is the left-looking Level 3 BLAS version of the algorithm. -C> -C>\endverbatim -* -* Arguments: -* ========== -* -C> \param[in] M -C> \verbatim -C> M is INTEGER -C> The number of rows of the matrix A. M >= 0. -C> \endverbatim -C> -C> \param[in] N -C> \verbatim -C> N is INTEGER -C> The number of columns of the matrix A. N >= 0. -C> \endverbatim -C> -C> \param[in,out] A -C> \verbatim -C> A is COMPLEX array, dimension (LDA,N) -C> On entry, the M-by-N matrix A. -C> On exit, the elements on and above the diagonal of the array -C> contain the min(M,N)-by-N upper trapezoidal matrix R (R is -C> upper triangular if m >= n); the elements below the diagonal, -C> with the array TAU, represent the orthogonal matrix Q as a -C> product of min(m,n) elementary reflectors (see Further -C> Details). -C> \endverbatim -C> -C> \param[in] LDA -C> \verbatim -C> LDA is INTEGER -C> The leading dimension of the array A. LDA >= max(1,M). -C> \endverbatim -C> -C> \param[out] TAU -C> \verbatim -C> TAU is COMPLEX array, dimension (min(M,N)) -C> The scalar factors of the elementary reflectors (see Further -C> Details). -C> \endverbatim -C> -C> \param[out] WORK -C> \verbatim -C> WORK is COMPLEX array, dimension (MAX(1,LWORK)) -C> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. -C> \endverbatim -C> -C> \param[in] LWORK -C> \verbatim -C> LWORK is INTEGER -C> \endverbatim -C> \verbatim -C> The dimension of the array WORK. The dimension can be divided into three parts. -C> \endverbatim -C> \verbatim -C> 1) The part for the triangular factor T. If the very last T is not bigger -C> than any of the rest, then this part is NB x ceiling(K/NB), otherwise, -C> NB x (K-NT), where K = min(M,N) and NT is the dimension of the very last T -C> \endverbatim -C> \verbatim -C> 2) The part for the very last T when T is bigger than any of the rest T. -C> The size of this part is NT x NT, where NT = K - ceiling ((K-NX)/NB) x NB, -C> where K = min(M,N), NX is calculated by -C> NX = MAX( 0, ILAENV( 3, 'CGEQRF', ' ', M, N, -1, -1 ) ) -C> \endverbatim -C> \verbatim -C> 3) The part for dlarfb is of size max((N-M)*K, (N-M)*NB, K*NB, NB*NB) -C> \endverbatim -C> \verbatim -C> So LWORK = part1 + part2 + part3 -C> \endverbatim -C> \verbatim -C> If LWORK = -1, then a workspace query is assumed; the routine -C> only calculates the optimal size of the WORK array, returns -C> this value as the first entry of the WORK array, and no error -C> message related to LWORK is issued by XERBLA. -C> \endverbatim -C> -C> \param[out] INFO -C> \verbatim -C> INFO is INTEGER -C> = 0: successful exit -C> < 0: if INFO = -i, the i-th argument had an illegal value -C> \endverbatim -C> -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsGEcomputational -* -* Further Details -* =============== -C>\details \b Further \b Details -C> \verbatim -C> -C> The matrix Q is represented as a product of elementary reflectors -C> -C> Q = H(1) H(2) . . . H(k), where k = min(m,n). -C> -C> Each H(i) has the form -C> -C> H(i) = I - tau * v * v' -C> -C> where tau is a real scalar, and v is a real vector with -C> v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i), -C> and tau in TAU(i). -C> -C> \endverbatim -C> -* ===================================================================== - SUBROUTINE CGEQRF ( M, N, A, LDA, TAU, WORK, LWORK, INFO ) -* -* -- LAPACK computational routine (version 3.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, LWORK, M, N -* .. -* .. Array Arguments .. - COMPLEX A( LDA, * ), TAU( * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Local Scalars .. - LOGICAL LQUERY - INTEGER I, IB, IINFO, IWS, J, K, LWKOPT, NB, - $ NBMIN, NX, LBWORK, NT, LLWORK -* .. -* .. External Subroutines .. - EXTERNAL CGEQR2, CLARFB, CLARFT, XERBLA -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. External Functions .. - INTEGER ILAENV - REAL SCEIL - EXTERNAL ILAENV, SCEIL -* .. -* .. Executable Statements .. - - INFO = 0 - NBMIN = 2 - NX = 0 - IWS = N - K = MIN( M, N ) - NB = ILAENV( 1, 'CGEQRF', ' ', M, N, -1, -1 ) - - IF( NB.GT.1 .AND. NB.LT.K ) THEN -* -* Determine when to cross over from blocked to unblocked code. -* - NX = MAX( 0, ILAENV( 3, 'CGEQRF', ' ', M, N, -1, -1 ) ) - END IF -* -* Get NT, the size of the very last T, which is the left-over from in-between K-NX and K to K, eg.: -* -* NB=3 2NB=6 K=10 -* | | | -* 1--2--3--4--5--6--7--8--9--10 -* | \________/ -* K-NX=5 NT=4 -* -* So here 4 x 4 is the last T stored in the workspace -* - NT = K-SCEIL(REAL(K-NX)/REAL(NB))*NB - -* -* optimal workspace = space for dlarfb + space for normal T's + space for the last T -* - LLWORK = MAX (MAX((N-M)*K, (N-M)*NB), MAX(K*NB, NB*NB)) - LLWORK = SCEIL(REAL(LLWORK)/REAL(NB)) - - IF ( NT.GT.NB ) THEN - - LBWORK = K-NT -* -* Optimal workspace for dlarfb = MAX(1,N)*NT -* - LWKOPT = (LBWORK+LLWORK)*NB - WORK( 1 ) = (LWKOPT+NT*NT) - - ELSE - - LBWORK = SCEIL(REAL(K)/REAL(NB))*NB - LWKOPT = (LBWORK+LLWORK-NB)*NB - WORK( 1 ) = LWKOPT - - END IF - -* -* Test the input arguments -* - LQUERY = ( LWORK.EQ.-1 ) - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -4 - ELSE IF( LWORK.LT.MAX( 1, N ) .AND. .NOT.LQUERY ) THEN - INFO = -7 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'CGEQRF', -INFO ) - RETURN - ELSE IF( LQUERY ) THEN - RETURN - END IF -* -* Quick return if possible -* - IF( K.EQ.0 ) THEN - WORK( 1 ) = 1 - RETURN - END IF -* - IF( NB.GT.1 .AND. NB.LT.K ) THEN - - IF( NX.LT.K ) THEN -* -* Determine if workspace is large enough for blocked code. -* - IF ( NT.LE.NB ) THEN - IWS = (LBWORK+LLWORK-NB)*NB - ELSE - IWS = (LBWORK+LLWORK)*NB+NT*NT - END IF - - IF( LWORK.LT.IWS ) THEN -* -* Not enough workspace to use optimal NB: reduce NB and -* determine the minimum value of NB. -* - IF ( NT.LE.NB ) THEN - NB = LWORK / (LLWORK+(LBWORK-NB)) - ELSE - NB = (LWORK-NT*NT)/(LBWORK+LLWORK) - END IF - - NBMIN = MAX( 2, ILAENV( 2, 'CGEQRF', ' ', M, N, -1, - $ -1 ) ) - END IF - END IF - END IF -* - IF( NB.GE.NBMIN .AND. NB.LT.K .AND. NX.LT.K ) THEN -* -* Use blocked code initially -* - DO 10 I = 1, K - NX, NB - IB = MIN( K-I+1, NB ) -* -* Update the current column using old T's -* - DO 20 J = 1, I - NB, NB -* -* Apply H' to A(J:M,I:I+IB-1) from the left -* - CALL CLARFB( 'Left', 'Transpose', 'Forward', - $ 'Columnwise', M-J+1, IB, NB, - $ A( J, J ), LDA, WORK(J), LBWORK, - $ A( J, I ), LDA, WORK(LBWORK*NB+NT*NT+1), - $ IB) - -20 CONTINUE -* -* Compute the QR factorization of the current block -* A(I:M,I:I+IB-1) -* - CALL CGEQR2( M-I+1, IB, A( I, I ), LDA, TAU( I ), - $ WORK(LBWORK*NB+NT*NT+1), IINFO ) - - IF( I+IB.LE.N ) THEN -* -* Form the triangular factor of the block reflector -* H = H(i) H(i+1) . . . H(i+ib-1) -* - CALL CLARFT( 'Forward', 'Columnwise', M-I+1, IB, - $ A( I, I ), LDA, TAU( I ), - $ WORK(I), LBWORK ) -* - END IF - 10 CONTINUE - ELSE - I = 1 - END IF -* -* Use unblocked code to factor the last or only block. -* - IF( I.LE.K ) THEN - - IF ( I .NE. 1 ) THEN - - DO 30 J = 1, I - NB, NB -* -* Apply H' to A(J:M,I:K) from the left -* - CALL CLARFB( 'Left', 'Transpose', 'Forward', - $ 'Columnwise', M-J+1, K-I+1, NB, - $ A( J, J ), LDA, WORK(J), LBWORK, - $ A( J, I ), LDA, WORK(LBWORK*NB+NT*NT+1), - $ K-I+1) -30 CONTINUE - - CALL CGEQR2( M-I+1, K-I+1, A( I, I ), LDA, TAU( I ), - $ WORK(LBWORK*NB+NT*NT+1),IINFO ) - - ELSE -* -* Use unblocked code to factor the last or only block. -* - CALL CGEQR2( M-I+1, N-I+1, A( I, I ), LDA, TAU( I ), - $ WORK,IINFO ) - - END IF - END IF - - -* -* Apply update to the column M+1:N when N > M -* - IF ( M.LT.N .AND. I.NE.1) THEN -* -* Form the last triangular factor of the block reflector -* H = H(i) H(i+1) . . . H(i+ib-1) -* - IF ( NT .LE. NB ) THEN - CALL CLARFT( 'Forward', 'Columnwise', M-I+1, K-I+1, - $ A( I, I ), LDA, TAU( I ), WORK(I), LBWORK ) - ELSE - CALL CLARFT( 'Forward', 'Columnwise', M-I+1, K-I+1, - $ A( I, I ), LDA, TAU( I ), - $ WORK(LBWORK*NB+1), NT ) - END IF - -* -* Apply H' to A(1:M,M+1:N) from the left -* - DO 40 J = 1, K-NX, NB - - IB = MIN( K-J+1, NB ) - - CALL CLARFB( 'Left', 'Transpose', 'Forward', - $ 'Columnwise', M-J+1, N-M, IB, - $ A( J, J ), LDA, WORK(J), LBWORK, - $ A( J, M+1 ), LDA, WORK(LBWORK*NB+NT*NT+1), - $ N-M) - -40 CONTINUE - - IF ( NT.LE.NB ) THEN - CALL CLARFB( 'Left', 'Transpose', 'Forward', - $ 'Columnwise', M-J+1, N-M, K-J+1, - $ A( J, J ), LDA, WORK(J), LBWORK, - $ A( J, M+1 ), LDA, WORK(LBWORK*NB+NT*NT+1), - $ N-M) - ELSE - CALL CLARFB( 'Left', 'Transpose', 'Forward', - $ 'Columnwise', M-J+1, N-M, K-J+1, - $ A( J, J ), LDA, - $ WORK(LBWORK*NB+1), - $ NT, A( J, M+1 ), LDA, WORK(LBWORK*NB+NT*NT+1), - $ N-M) - END IF - - END IF - - WORK( 1 ) = IWS - RETURN -* -* End of CGEQRF -* - END diff --git a/dspl/liblapack/SRC/VARIANTS/qr/LL/dgeqrf.f b/dspl/liblapack/SRC/VARIANTS/qr/LL/dgeqrf.f deleted file mode 100644 index 8f1979d..0000000 --- a/dspl/liblapack/SRC/VARIANTS/qr/LL/dgeqrf.f +++ /dev/null @@ -1,417 +0,0 @@ -C> \brief \b DGEQRF VARIANT: left-looking Level 3 BLAS version of the algorithm. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE DGEQRF ( M, N, A, LDA, TAU, WORK, LWORK, INFO ) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, LWORK, M, N -* .. -* .. Array Arguments .. -* DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) -* .. -* -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C> -C> DGEQRF computes a QR factorization of a real M-by-N matrix A: -C> A = Q * R. -C> -C> This is the left-looking Level 3 BLAS version of the algorithm. -C> -C>\endverbatim -* -* Arguments: -* ========== -* -C> \param[in] M -C> \verbatim -C> M is INTEGER -C> The number of rows of the matrix A. M >= 0. -C> \endverbatim -C> -C> \param[in] N -C> \verbatim -C> N is INTEGER -C> The number of columns of the matrix A. N >= 0. -C> \endverbatim -C> -C> \param[in,out] A -C> \verbatim -C> A is DOUBLE PRECISION array, dimension (LDA,N) -C> On entry, the M-by-N matrix A. -C> On exit, the elements on and above the diagonal of the array -C> contain the min(M,N)-by-N upper trapezoidal matrix R (R is -C> upper triangular if m >= n); the elements below the diagonal, -C> with the array TAU, represent the orthogonal matrix Q as a -C> product of min(m,n) elementary reflectors (see Further -C> Details). -C> \endverbatim -C> -C> \param[in] LDA -C> \verbatim -C> LDA is INTEGER -C> The leading dimension of the array A. LDA >= max(1,M). -C> \endverbatim -C> -C> \param[out] TAU -C> \verbatim -C> TAU is DOUBLE PRECISION array, dimension (min(M,N)) -C> The scalar factors of the elementary reflectors (see Further -C> Details). -C> \endverbatim -C> -C> \param[out] WORK -C> \verbatim -C> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) -C> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. -C> \endverbatim -C> -C> \param[in] LWORK -C> \verbatim -C> LWORK is INTEGER -C> \endverbatim -C> \verbatim -C> The dimension of the array WORK. The dimension can be divided into three parts. -C> \endverbatim -C> \verbatim -C> 1) The part for the triangular factor T. If the very last T is not bigger -C> than any of the rest, then this part is NB x ceiling(K/NB), otherwise, -C> NB x (K-NT), where K = min(M,N) and NT is the dimension of the very last T -C> \endverbatim -C> \verbatim -C> 2) The part for the very last T when T is bigger than any of the rest T. -C> The size of this part is NT x NT, where NT = K - ceiling ((K-NX)/NB) x NB, -C> where K = min(M,N), NX is calculated by -C> NX = MAX( 0, ILAENV( 3, 'DGEQRF', ' ', M, N, -1, -1 ) ) -C> \endverbatim -C> \verbatim -C> 3) The part for dlarfb is of size max((N-M)*K, (N-M)*NB, K*NB, NB*NB) -C> \endverbatim -C> \verbatim -C> So LWORK = part1 + part2 + part3 -C> \endverbatim -C> \verbatim -C> If LWORK = -1, then a workspace query is assumed; the routine -C> only calculates the optimal size of the WORK array, returns -C> this value as the first entry of the WORK array, and no error -C> message related to LWORK is issued by XERBLA. -C> \endverbatim -C> -C> \param[out] INFO -C> \verbatim -C> INFO is INTEGER -C> = 0: successful exit -C> < 0: if INFO = -i, the i-th argument had an illegal value -C> \endverbatim -C> -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsGEcomputational -* -* Further Details -* =============== -C>\details \b Further \b Details -C> \verbatim -C> -C> The matrix Q is represented as a product of elementary reflectors -C> -C> Q = H(1) H(2) . . . H(k), where k = min(m,n). -C> -C> Each H(i) has the form -C> -C> H(i) = I - tau * v * v' -C> -C> where tau is a real scalar, and v is a real vector with -C> v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i), -C> and tau in TAU(i). -C> -C> \endverbatim -C> -* ===================================================================== - SUBROUTINE DGEQRF ( M, N, A, LDA, TAU, WORK, LWORK, INFO ) -* -* -- LAPACK computational routine (version 3.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, LWORK, M, N -* .. -* .. Array Arguments .. - DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Local Scalars .. - LOGICAL LQUERY - INTEGER I, IB, IINFO, IWS, J, K, LWKOPT, NB, - $ NBMIN, NX, LBWORK, NT, LLWORK -* .. -* .. External Subroutines .. - EXTERNAL DGEQR2, DLARFB, DLARFT, XERBLA -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. External Functions .. - INTEGER ILAENV - REAL SCEIL - EXTERNAL ILAENV, SCEIL -* .. -* .. Executable Statements .. - - INFO = 0 - NBMIN = 2 - NX = 0 - IWS = N - K = MIN( M, N ) - NB = ILAENV( 1, 'DGEQRF', ' ', M, N, -1, -1 ) - - IF( NB.GT.1 .AND. NB.LT.K ) THEN -* -* Determine when to cross over from blocked to unblocked code. -* - NX = MAX( 0, ILAENV( 3, 'DGEQRF', ' ', M, N, -1, -1 ) ) - END IF -* -* Get NT, the size of the very last T, which is the left-over from in-between K-NX and K to K, eg.: -* -* NB=3 2NB=6 K=10 -* | | | -* 1--2--3--4--5--6--7--8--9--10 -* | \________/ -* K-NX=5 NT=4 -* -* So here 4 x 4 is the last T stored in the workspace -* - NT = K-SCEIL(REAL(K-NX)/REAL(NB))*NB - -* -* optimal workspace = space for dlarfb + space for normal T's + space for the last T -* - LLWORK = MAX (MAX((N-M)*K, (N-M)*NB), MAX(K*NB, NB*NB)) - LLWORK = SCEIL(REAL(LLWORK)/REAL(NB)) - - IF ( NT.GT.NB ) THEN - - LBWORK = K-NT -* -* Optimal workspace for dlarfb = MAX(1,N)*NT -* - LWKOPT = (LBWORK+LLWORK)*NB - WORK( 1 ) = (LWKOPT+NT*NT) - - ELSE - - LBWORK = SCEIL(REAL(K)/REAL(NB))*NB - LWKOPT = (LBWORK+LLWORK-NB)*NB - WORK( 1 ) = LWKOPT - - END IF - -* -* Test the input arguments -* - LQUERY = ( LWORK.EQ.-1 ) - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -4 - ELSE IF( LWORK.LT.MAX( 1, N ) .AND. .NOT.LQUERY ) THEN - INFO = -7 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'DGEQRF', -INFO ) - RETURN - ELSE IF( LQUERY ) THEN - RETURN - END IF -* -* Quick return if possible -* - IF( K.EQ.0 ) THEN - WORK( 1 ) = 1 - RETURN - END IF -* - IF( NB.GT.1 .AND. NB.LT.K ) THEN - - IF( NX.LT.K ) THEN -* -* Determine if workspace is large enough for blocked code. -* - IF ( NT.LE.NB ) THEN - IWS = (LBWORK+LLWORK-NB)*NB - ELSE - IWS = (LBWORK+LLWORK)*NB+NT*NT - END IF - - IF( LWORK.LT.IWS ) THEN -* -* Not enough workspace to use optimal NB: reduce NB and -* determine the minimum value of NB. -* - IF ( NT.LE.NB ) THEN - NB = LWORK / (LLWORK+(LBWORK-NB)) - ELSE - NB = (LWORK-NT*NT)/(LBWORK+LLWORK) - END IF - - NBMIN = MAX( 2, ILAENV( 2, 'DGEQRF', ' ', M, N, -1, - $ -1 ) ) - END IF - END IF - END IF -* - IF( NB.GE.NBMIN .AND. NB.LT.K .AND. NX.LT.K ) THEN -* -* Use blocked code initially -* - DO 10 I = 1, K - NX, NB - IB = MIN( K-I+1, NB ) -* -* Update the current column using old T's -* - DO 20 J = 1, I - NB, NB -* -* Apply H' to A(J:M,I:I+IB-1) from the left -* - CALL DLARFB( 'Left', 'Transpose', 'Forward', - $ 'Columnwise', M-J+1, IB, NB, - $ A( J, J ), LDA, WORK(J), LBWORK, - $ A( J, I ), LDA, WORK(LBWORK*NB+NT*NT+1), - $ IB) - -20 CONTINUE -* -* Compute the QR factorization of the current block -* A(I:M,I:I+IB-1) -* - CALL DGEQR2( M-I+1, IB, A( I, I ), LDA, TAU( I ), - $ WORK(LBWORK*NB+NT*NT+1), IINFO ) - - IF( I+IB.LE.N ) THEN -* -* Form the triangular factor of the block reflector -* H = H(i) H(i+1) . . . H(i+ib-1) -* - CALL DLARFT( 'Forward', 'Columnwise', M-I+1, IB, - $ A( I, I ), LDA, TAU( I ), - $ WORK(I), LBWORK ) -* - END IF - 10 CONTINUE - ELSE - I = 1 - END IF -* -* Use unblocked code to factor the last or only block. -* - IF( I.LE.K ) THEN - - IF ( I .NE. 1 ) THEN - - DO 30 J = 1, I - NB, NB -* -* Apply H' to A(J:M,I:K) from the left -* - CALL DLARFB( 'Left', 'Transpose', 'Forward', - $ 'Columnwise', M-J+1, K-I+1, NB, - $ A( J, J ), LDA, WORK(J), LBWORK, - $ A( J, I ), LDA, WORK(LBWORK*NB+NT*NT+1), - $ K-I+1) -30 CONTINUE - - CALL DGEQR2( M-I+1, K-I+1, A( I, I ), LDA, TAU( I ), - $ WORK(LBWORK*NB+NT*NT+1),IINFO ) - - ELSE -* -* Use unblocked code to factor the last or only block. -* - CALL DGEQR2( M-I+1, N-I+1, A( I, I ), LDA, TAU( I ), - $ WORK,IINFO ) - - END IF - END IF - - -* -* Apply update to the column M+1:N when N > M -* - IF ( M.LT.N .AND. I.NE.1) THEN -* -* Form the last triangular factor of the block reflector -* H = H(i) H(i+1) . . . H(i+ib-1) -* - IF ( NT .LE. NB ) THEN - CALL DLARFT( 'Forward', 'Columnwise', M-I+1, K-I+1, - $ A( I, I ), LDA, TAU( I ), WORK(I), LBWORK ) - ELSE - CALL DLARFT( 'Forward', 'Columnwise', M-I+1, K-I+1, - $ A( I, I ), LDA, TAU( I ), - $ WORK(LBWORK*NB+1), NT ) - END IF - -* -* Apply H' to A(1:M,M+1:N) from the left -* - DO 40 J = 1, K-NX, NB - - IB = MIN( K-J+1, NB ) - - CALL DLARFB( 'Left', 'Transpose', 'Forward', - $ 'Columnwise', M-J+1, N-M, IB, - $ A( J, J ), LDA, WORK(J), LBWORK, - $ A( J, M+1 ), LDA, WORK(LBWORK*NB+NT*NT+1), - $ N-M) - -40 CONTINUE - - IF ( NT.LE.NB ) THEN - CALL DLARFB( 'Left', 'Transpose', 'Forward', - $ 'Columnwise', M-J+1, N-M, K-J+1, - $ A( J, J ), LDA, WORK(J), LBWORK, - $ A( J, M+1 ), LDA, WORK(LBWORK*NB+NT*NT+1), - $ N-M) - ELSE - CALL DLARFB( 'Left', 'Transpose', 'Forward', - $ 'Columnwise', M-J+1, N-M, K-J+1, - $ A( J, J ), LDA, - $ WORK(LBWORK*NB+1), - $ NT, A( J, M+1 ), LDA, WORK(LBWORK*NB+NT*NT+1), - $ N-M) - END IF - - END IF - - WORK( 1 ) = IWS - RETURN -* -* End of DGEQRF -* - END - diff --git a/dspl/liblapack/SRC/VARIANTS/qr/LL/sceil.f b/dspl/liblapack/SRC/VARIANTS/qr/LL/sceil.f deleted file mode 100644 index 86394cc..0000000 --- a/dspl/liblapack/SRC/VARIANTS/qr/LL/sceil.f +++ /dev/null @@ -1,87 +0,0 @@ -C> \brief \b SCEIL -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* REAL FUNCTION SCEIL( A ) -* -* .. Scalar Arguments .. -* REAL A -* .. -* -* ===================================================================== -* -* .. Intrinsic Functions .. -* INTRINSIC INT -* .. -* .. Executable Statements ..* -* -* IF (A-INT(A).EQ.0) THEN -* SCEIL = A -* ELSE IF (A.GT.0) THEN -* SCEIL = INT(A)+1; -* ELSE -* SCEIL = INT(A) -* END IF -* -* RETURN -* -* END -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C>\endverbatim -* -* Arguments: -* ========== -* -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsOTHERcomputational -* -* ===================================================================== - REAL FUNCTION SCEIL( A ) -* -* -- LAPACK computational routine (version 3.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments ..* - REAL A -* .. -* -* ===================================================================== -* -* .. Intrinsic Functions .. - INTRINSIC INT -* .. -* .. Executable Statements ..* -* - IF (A-INT(A).EQ.0) THEN - SCEIL = A - ELSE IF (A.GT.0) THEN - SCEIL = INT(A)+1; - ELSE - SCEIL = INT(A) - END IF - - RETURN -* - END diff --git a/dspl/liblapack/SRC/VARIANTS/qr/LL/sgeqrf.f b/dspl/liblapack/SRC/VARIANTS/qr/LL/sgeqrf.f deleted file mode 100644 index 7b02271..0000000 --- a/dspl/liblapack/SRC/VARIANTS/qr/LL/sgeqrf.f +++ /dev/null @@ -1,416 +0,0 @@ -C> \brief \b SGEQRF VARIANT: left-looking Level 3 BLAS version of the algorithm. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE SGEQRF ( M, N, A, LDA, TAU, WORK, LWORK, INFO ) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, LWORK, M, N -* .. -* .. Array Arguments .. -* REAL A( LDA, * ), TAU( * ), WORK( * ) -* .. -* -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C> -C> SGEQRF computes a QR factorization of a real M-by-N matrix A: -C> A = Q * R. -C> -C> This is the left-looking Level 3 BLAS version of the algorithm. -C> -C>\endverbatim -* -* Arguments: -* ========== -* -C> \param[in] M -C> \verbatim -C> M is INTEGER -C> The number of rows of the matrix A. M >= 0. -C> \endverbatim -C> -C> \param[in] N -C> \verbatim -C> N is INTEGER -C> The number of columns of the matrix A. N >= 0. -C> \endverbatim -C> -C> \param[in,out] A -C> \verbatim -C> A is REAL array, dimension (LDA,N) -C> On entry, the M-by-N matrix A. -C> On exit, the elements on and above the diagonal of the array -C> contain the min(M,N)-by-N upper trapezoidal matrix R (R is -C> upper triangular if m >= n); the elements below the diagonal, -C> with the array TAU, represent the orthogonal matrix Q as a -C> product of min(m,n) elementary reflectors (see Further -C> Details). -C> \endverbatim -C> -C> \param[in] LDA -C> \verbatim -C> LDA is INTEGER -C> The leading dimension of the array A. LDA >= max(1,M). -C> \endverbatim -C> -C> \param[out] TAU -C> \verbatim -C> TAU is REAL array, dimension (min(M,N)) -C> The scalar factors of the elementary reflectors (see Further -C> Details). -C> \endverbatim -C> -C> \param[out] WORK -C> \verbatim -C> WORK is REAL array, dimension (MAX(1,LWORK)) -C> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. -C> \endverbatim -C> -C> \param[in] LWORK -C> \verbatim -C> LWORK is INTEGER -C> \endverbatim -C> \verbatim -C> The dimension of the array WORK. The dimension can be divided into three parts. -C> \endverbatim -C> \verbatim -C> 1) The part for the triangular factor T. If the very last T is not bigger -C> than any of the rest, then this part is NB x ceiling(K/NB), otherwise, -C> NB x (K-NT), where K = min(M,N) and NT is the dimension of the very last T -C> \endverbatim -C> \verbatim -C> 2) The part for the very last T when T is bigger than any of the rest T. -C> The size of this part is NT x NT, where NT = K - ceiling ((K-NX)/NB) x NB, -C> where K = min(M,N), NX is calculated by -C> NX = MAX( 0, ILAENV( 3, 'SGEQRF', ' ', M, N, -1, -1 ) ) -C> \endverbatim -C> \verbatim -C> 3) The part for dlarfb is of size max((N-M)*K, (N-M)*NB, K*NB, NB*NB) -C> \endverbatim -C> \verbatim -C> So LWORK = part1 + part2 + part3 -C> \endverbatim -C> \verbatim -C> If LWORK = -1, then a workspace query is assumed; the routine -C> only calculates the optimal size of the WORK array, returns -C> this value as the first entry of the WORK array, and no error -C> message related to LWORK is issued by XERBLA. -C> \endverbatim -C> -C> \param[out] INFO -C> \verbatim -C> INFO is INTEGER -C> = 0: successful exit -C> < 0: if INFO = -i, the i-th argument had an illegal value -C> \endverbatim -C> -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsGEcomputational -* -* Further Details -* =============== -C>\details \b Further \b Details -C> \verbatim -C> -C> The matrix Q is represented as a product of elementary reflectors -C> -C> Q = H(1) H(2) . . . H(k), where k = min(m,n). -C> -C> Each H(i) has the form -C> -C> H(i) = I - tau * v * v' -C> -C> where tau is a real scalar, and v is a real vector with -C> v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i), -C> and tau in TAU(i). -C> -C> \endverbatim -C> -* ===================================================================== - SUBROUTINE SGEQRF ( M, N, A, LDA, TAU, WORK, LWORK, INFO ) -* -* -- LAPACK computational routine (version 3.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, LWORK, M, N -* .. -* .. Array Arguments .. - REAL A( LDA, * ), TAU( * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Local Scalars .. - LOGICAL LQUERY - INTEGER I, IB, IINFO, IWS, J, K, LWKOPT, NB, - $ NBMIN, NX, LBWORK, NT, LLWORK -* .. -* .. External Subroutines .. - EXTERNAL SGEQR2, SLARFB, SLARFT, XERBLA -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. External Functions .. - INTEGER ILAENV - REAL SCEIL - EXTERNAL ILAENV, SCEIL -* .. -* .. Executable Statements .. - - INFO = 0 - NBMIN = 2 - NX = 0 - IWS = N - K = MIN( M, N ) - NB = ILAENV( 1, 'SGEQRF', ' ', M, N, -1, -1 ) - - IF( NB.GT.1 .AND. NB.LT.K ) THEN -* -* Determine when to cross over from blocked to unblocked code. -* - NX = MAX( 0, ILAENV( 3, 'SGEQRF', ' ', M, N, -1, -1 ) ) - END IF -* -* Get NT, the size of the very last T, which is the left-over from in-between K-NX and K to K, eg.: -* -* NB=3 2NB=6 K=10 -* | | | -* 1--2--3--4--5--6--7--8--9--10 -* | \________/ -* K-NX=5 NT=4 -* -* So here 4 x 4 is the last T stored in the workspace -* - NT = K-SCEIL(REAL(K-NX)/REAL(NB))*NB - -* -* optimal workspace = space for dlarfb + space for normal T's + space for the last T -* - LLWORK = MAX (MAX((N-M)*K, (N-M)*NB), MAX(K*NB, NB*NB)) - LLWORK = SCEIL(REAL(LLWORK)/REAL(NB)) - - IF ( NT.GT.NB ) THEN - - LBWORK = K-NT -* -* Optimal workspace for dlarfb = MAX(1,N)*NT -* - LWKOPT = (LBWORK+LLWORK)*NB - WORK( 1 ) = (LWKOPT+NT*NT) - - ELSE - - LBWORK = SCEIL(REAL(K)/REAL(NB))*NB - LWKOPT = (LBWORK+LLWORK-NB)*NB - WORK( 1 ) = LWKOPT - - END IF - -* -* Test the input arguments -* - LQUERY = ( LWORK.EQ.-1 ) - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -4 - ELSE IF( LWORK.LT.MAX( 1, N ) .AND. .NOT.LQUERY ) THEN - INFO = -7 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'SGEQRF', -INFO ) - RETURN - ELSE IF( LQUERY ) THEN - RETURN - END IF -* -* Quick return if possible -* - IF( K.EQ.0 ) THEN - WORK( 1 ) = 1 - RETURN - END IF -* - IF( NB.GT.1 .AND. NB.LT.K ) THEN - - IF( NX.LT.K ) THEN -* -* Determine if workspace is large enough for blocked code. -* - IF ( NT.LE.NB ) THEN - IWS = (LBWORK+LLWORK-NB)*NB - ELSE - IWS = (LBWORK+LLWORK)*NB+NT*NT - END IF - - IF( LWORK.LT.IWS ) THEN -* -* Not enough workspace to use optimal NB: reduce NB and -* determine the minimum value of NB. -* - IF ( NT.LE.NB ) THEN - NB = LWORK / (LLWORK+(LBWORK-NB)) - ELSE - NB = (LWORK-NT*NT)/(LBWORK+LLWORK) - END IF - - NBMIN = MAX( 2, ILAENV( 2, 'SGEQRF', ' ', M, N, -1, - $ -1 ) ) - END IF - END IF - END IF -* - IF( NB.GE.NBMIN .AND. NB.LT.K .AND. NX.LT.K ) THEN -* -* Use blocked code initially -* - DO 10 I = 1, K - NX, NB - IB = MIN( K-I+1, NB ) -* -* Update the current column using old T's -* - DO 20 J = 1, I - NB, NB -* -* Apply H' to A(J:M,I:I+IB-1) from the left -* - CALL SLARFB( 'Left', 'Transpose', 'Forward', - $ 'Columnwise', M-J+1, IB, NB, - $ A( J, J ), LDA, WORK(J), LBWORK, - $ A( J, I ), LDA, WORK(LBWORK*NB+NT*NT+1), - $ IB) - -20 CONTINUE -* -* Compute the QR factorization of the current block -* A(I:M,I:I+IB-1) -* - CALL SGEQR2( M-I+1, IB, A( I, I ), LDA, TAU( I ), - $ WORK(LBWORK*NB+NT*NT+1), IINFO ) - - IF( I+IB.LE.N ) THEN -* -* Form the triangular factor of the block reflector -* H = H(i) H(i+1) . . . H(i+ib-1) -* - CALL SLARFT( 'Forward', 'Columnwise', M-I+1, IB, - $ A( I, I ), LDA, TAU( I ), - $ WORK(I), LBWORK ) -* - END IF - 10 CONTINUE - ELSE - I = 1 - END IF -* -* Use unblocked code to factor the last or only block. -* - IF( I.LE.K ) THEN - - IF ( I .NE. 1 ) THEN - - DO 30 J = 1, I - NB, NB -* -* Apply H' to A(J:M,I:K) from the left -* - CALL SLARFB( 'Left', 'Transpose', 'Forward', - $ 'Columnwise', M-J+1, K-I+1, NB, - $ A( J, J ), LDA, WORK(J), LBWORK, - $ A( J, I ), LDA, WORK(LBWORK*NB+NT*NT+1), - $ K-I+1) -30 CONTINUE - - CALL SGEQR2( M-I+1, K-I+1, A( I, I ), LDA, TAU( I ), - $ WORK(LBWORK*NB+NT*NT+1),IINFO ) - - ELSE -* -* Use unblocked code to factor the last or only block. -* - CALL SGEQR2( M-I+1, N-I+1, A( I, I ), LDA, TAU( I ), - $ WORK,IINFO ) - - END IF - END IF - - -* -* Apply update to the column M+1:N when N > M -* - IF ( M.LT.N .AND. I.NE.1) THEN -* -* Form the last triangular factor of the block reflector -* H = H(i) H(i+1) . . . H(i+ib-1) -* - IF ( NT .LE. NB ) THEN - CALL SLARFT( 'Forward', 'Columnwise', M-I+1, K-I+1, - $ A( I, I ), LDA, TAU( I ), WORK(I), LBWORK ) - ELSE - CALL SLARFT( 'Forward', 'Columnwise', M-I+1, K-I+1, - $ A( I, I ), LDA, TAU( I ), - $ WORK(LBWORK*NB+1), NT ) - END IF - -* -* Apply H' to A(1:M,M+1:N) from the left -* - DO 40 J = 1, K-NX, NB - - IB = MIN( K-J+1, NB ) - - CALL SLARFB( 'Left', 'Transpose', 'Forward', - $ 'Columnwise', M-J+1, N-M, IB, - $ A( J, J ), LDA, WORK(J), LBWORK, - $ A( J, M+1 ), LDA, WORK(LBWORK*NB+NT*NT+1), - $ N-M) - -40 CONTINUE - - IF ( NT.LE.NB ) THEN - CALL SLARFB( 'Left', 'Transpose', 'Forward', - $ 'Columnwise', M-J+1, N-M, K-J+1, - $ A( J, J ), LDA, WORK(J), LBWORK, - $ A( J, M+1 ), LDA, WORK(LBWORK*NB+NT*NT+1), - $ N-M) - ELSE - CALL SLARFB( 'Left', 'Transpose', 'Forward', - $ 'Columnwise', M-J+1, N-M, K-J+1, - $ A( J, J ), LDA, - $ WORK(LBWORK*NB+1), - $ NT, A( J, M+1 ), LDA, WORK(LBWORK*NB+NT*NT+1), - $ N-M) - END IF - - END IF - - WORK( 1 ) = IWS - RETURN -* -* End of SGEQRF -* - END diff --git a/dspl/liblapack/SRC/VARIANTS/qr/LL/zgeqrf.f b/dspl/liblapack/SRC/VARIANTS/qr/LL/zgeqrf.f deleted file mode 100644 index 4ddad00..0000000 --- a/dspl/liblapack/SRC/VARIANTS/qr/LL/zgeqrf.f +++ /dev/null @@ -1,416 +0,0 @@ -C> \brief \b ZGEQRF VARIANT: left-looking Level 3 BLAS of the algorithm. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -* Definition: -* =========== -* -* SUBROUTINE ZGEQRF ( M, N, A, LDA, TAU, WORK, LWORK, INFO ) -* -* .. Scalar Arguments .. -* INTEGER INFO, LDA, LWORK, M, N -* .. -* .. Array Arguments .. -* COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) -* .. -* -* Purpose -* ======= -* -C>\details \b Purpose: -C>\verbatim -C> -C> ZGEQRF computes a QR factorization of a real M-by-N matrix A: -C> A = Q * R. -C> -C> This is the left-looking Level 3 BLAS version of the algorithm. -C> -C>\endverbatim -* -* Arguments: -* ========== -* -C> \param[in] M -C> \verbatim -C> M is INTEGER -C> The number of rows of the matrix A. M >= 0. -C> \endverbatim -C> -C> \param[in] N -C> \verbatim -C> N is INTEGER -C> The number of columns of the matrix A. N >= 0. -C> \endverbatim -C> -C> \param[in,out] A -C> \verbatim -C> A is COMPLEX*16 array, dimension (LDA,N) -C> On entry, the M-by-N matrix A. -C> On exit, the elements on and above the diagonal of the array -C> contain the min(M,N)-by-N upper trapezoidal matrix R (R is -C> upper triangular if m >= n); the elements below the diagonal, -C> with the array TAU, represent the orthogonal matrix Q as a -C> product of min(m,n) elementary reflectors (see Further -C> Details). -C> \endverbatim -C> -C> \param[in] LDA -C> \verbatim -C> LDA is INTEGER -C> The leading dimension of the array A. LDA >= max(1,M). -C> \endverbatim -C> -C> \param[out] TAU -C> \verbatim -C> TAU is COMPLEX*16 array, dimension (min(M,N)) -C> The scalar factors of the elementary reflectors (see Further -C> Details). -C> \endverbatim -C> -C> \param[out] WORK -C> \verbatim -C> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) -C> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. -C> \endverbatim -C> -C> \param[in] LWORK -C> \verbatim -C> LWORK is INTEGER -C> \endverbatim -C> \verbatim -C> The dimension of the array WORK. The dimension can be divided into three parts. -C> \endverbatim -C> \verbatim -C> 1) The part for the triangular factor T. If the very last T is not bigger -C> than any of the rest, then this part is NB x ceiling(K/NB), otherwise, -C> NB x (K-NT), where K = min(M,N) and NT is the dimension of the very last T -C> \endverbatim -C> \verbatim -C> 2) The part for the very last T when T is bigger than any of the rest T. -C> The size of this part is NT x NT, where NT = K - ceiling ((K-NX)/NB) x NB, -C> where K = min(M,N), NX is calculated by -C> NX = MAX( 0, ILAENV( 3, 'ZGEQRF', ' ', M, N, -1, -1 ) ) -C> \endverbatim -C> \verbatim -C> 3) The part for dlarfb is of size max((N-M)*K, (N-M)*NB, K*NB, NB*NB) -C> \endverbatim -C> \verbatim -C> So LWORK = part1 + part2 + part3 -C> \endverbatim -C> \verbatim -C> If LWORK = -1, then a workspace query is assumed; the routine -C> only calculates the optimal size of the WORK array, returns -C> this value as the first entry of the WORK array, and no error -C> message related to LWORK is issued by XERBLA. -C> \endverbatim -C> -C> \param[out] INFO -C> \verbatim -C> INFO is INTEGER -C> = 0: successful exit -C> < 0: if INFO = -i, the i-th argument had an illegal value -C> \endverbatim -C> -* -* Authors: -* ======== -* -C> \author Univ. of Tennessee -C> \author Univ. of California Berkeley -C> \author Univ. of Colorado Denver -C> \author NAG Ltd. -* -C> \date December 2016 -* -C> \ingroup variantsGEcomputational -* -* Further Details -* =============== -C>\details \b Further \b Details -C> \verbatim -C> -C> The matrix Q is represented as a product of elementary reflectors -C> -C> Q = H(1) H(2) . . . H(k), where k = min(m,n). -C> -C> Each H(i) has the form -C> -C> H(i) = I - tau * v * v' -C> -C> where tau is a real scalar, and v is a real vector with -C> v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i), -C> and tau in TAU(i). -C> -C> \endverbatim -C> -* ===================================================================== - SUBROUTINE ZGEQRF ( M, N, A, LDA, TAU, WORK, LWORK, INFO ) -* -* -- LAPACK computational routine (version 3.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 -* -* .. Scalar Arguments .. - INTEGER INFO, LDA, LWORK, M, N -* .. -* .. Array Arguments .. - COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Local Scalars .. - LOGICAL LQUERY - INTEGER I, IB, IINFO, IWS, J, K, LWKOPT, NB, - $ NBMIN, NX, LBWORK, NT, LLWORK -* .. -* .. External Subroutines .. - EXTERNAL ZGEQR2, ZLARFB, ZLARFT, XERBLA -* .. -* .. Intrinsic Functions .. - INTRINSIC MAX, MIN -* .. -* .. External Functions .. - INTEGER ILAENV - REAL SCEIL - EXTERNAL ILAENV, SCEIL -* .. -* .. Executable Statements .. - - INFO = 0 - NBMIN = 2 - NX = 0 - IWS = N - K = MIN( M, N ) - NB = ILAENV( 1, 'ZGEQRF', ' ', M, N, -1, -1 ) - - IF( NB.GT.1 .AND. NB.LT.K ) THEN -* -* Determine when to cross over from blocked to unblocked code. -* - NX = MAX( 0, ILAENV( 3, 'ZGEQRF', ' ', M, N, -1, -1 ) ) - END IF -* -* Get NT, the size of the very last T, which is the left-over from in-between K-NX and K to K, eg.: -* -* NB=3 2NB=6 K=10 -* | | | -* 1--2--3--4--5--6--7--8--9--10 -* | \________/ -* K-NX=5 NT=4 -* -* So here 4 x 4 is the last T stored in the workspace -* - NT = K-SCEIL(REAL(K-NX)/REAL(NB))*NB - -* -* optimal workspace = space for dlarfb + space for normal T's + space for the last T -* - LLWORK = MAX (MAX((N-M)*K, (N-M)*NB), MAX(K*NB, NB*NB)) - LLWORK = SCEIL(REAL(LLWORK)/REAL(NB)) - - IF ( NT.GT.NB ) THEN - - LBWORK = K-NT -* -* Optimal workspace for dlarfb = MAX(1,N)*NT -* - LWKOPT = (LBWORK+LLWORK)*NB - WORK( 1 ) = (LWKOPT+NT*NT) - - ELSE - - LBWORK = SCEIL(REAL(K)/REAL(NB))*NB - LWKOPT = (LBWORK+LLWORK-NB)*NB - WORK( 1 ) = LWKOPT - - END IF - -* -* Test the input arguments -* - LQUERY = ( LWORK.EQ.-1 ) - IF( M.LT.0 ) THEN - INFO = -1 - ELSE IF( N.LT.0 ) THEN - INFO = -2 - ELSE IF( LDA.LT.MAX( 1, M ) ) THEN - INFO = -4 - ELSE IF( LWORK.LT.MAX( 1, N ) .AND. .NOT.LQUERY ) THEN - INFO = -7 - END IF - IF( INFO.NE.0 ) THEN - CALL XERBLA( 'ZGEQRF', -INFO ) - RETURN - ELSE IF( LQUERY ) THEN - RETURN - END IF -* -* Quick return if possible -* - IF( K.EQ.0 ) THEN - WORK( 1 ) = 1 - RETURN - END IF -* - IF( NB.GT.1 .AND. NB.LT.K ) THEN - - IF( NX.LT.K ) THEN -* -* Determine if workspace is large enough for blocked code. -* - IF ( NT.LE.NB ) THEN - IWS = (LBWORK+LLWORK-NB)*NB - ELSE - IWS = (LBWORK+LLWORK)*NB+NT*NT - END IF - - IF( LWORK.LT.IWS ) THEN -* -* Not enough workspace to use optimal NB: reduce NB and -* determine the minimum value of NB. -* - IF ( NT.LE.NB ) THEN - NB = LWORK / (LLWORK+(LBWORK-NB)) - ELSE - NB = (LWORK-NT*NT)/(LBWORK+LLWORK) - END IF - - NBMIN = MAX( 2, ILAENV( 2, 'ZGEQRF', ' ', M, N, -1, - $ -1 ) ) - END IF - END IF - END IF -* - IF( NB.GE.NBMIN .AND. NB.LT.K .AND. NX.LT.K ) THEN -* -* Use blocked code initially -* - DO 10 I = 1, K - NX, NB - IB = MIN( K-I+1, NB ) -* -* Update the current column using old T's -* - DO 20 J = 1, I - NB, NB -* -* Apply H' to A(J:M,I:I+IB-1) from the left -* - CALL ZLARFB( 'Left', 'Transpose', 'Forward', - $ 'Columnwise', M-J+1, IB, NB, - $ A( J, J ), LDA, WORK(J), LBWORK, - $ A( J, I ), LDA, WORK(LBWORK*NB+NT*NT+1), - $ IB) - -20 CONTINUE -* -* Compute the QR factorization of the current block -* A(I:M,I:I+IB-1) -* - CALL ZGEQR2( M-I+1, IB, A( I, I ), LDA, TAU( I ), - $ WORK(LBWORK*NB+NT*NT+1), IINFO ) - - IF( I+IB.LE.N ) THEN -* -* Form the triangular factor of the block reflector -* H = H(i) H(i+1) . . . H(i+ib-1) -* - CALL ZLARFT( 'Forward', 'Columnwise', M-I+1, IB, - $ A( I, I ), LDA, TAU( I ), - $ WORK(I), LBWORK ) -* - END IF - 10 CONTINUE - ELSE - I = 1 - END IF -* -* Use unblocked code to factor the last or only block. -* - IF( I.LE.K ) THEN - - IF ( I .NE. 1 ) THEN - - DO 30 J = 1, I - NB, NB -* -* Apply H' to A(J:M,I:K) from the left -* - CALL ZLARFB( 'Left', 'Transpose', 'Forward', - $ 'Columnwise', M-J+1, K-I+1, NB, - $ A( J, J ), LDA, WORK(J), LBWORK, - $ A( J, I ), LDA, WORK(LBWORK*NB+NT*NT+1), - $ K-I+1) -30 CONTINUE - - CALL ZGEQR2( M-I+1, K-I+1, A( I, I ), LDA, TAU( I ), - $ WORK(LBWORK*NB+NT*NT+1),IINFO ) - - ELSE -* -* Use unblocked code to factor the last or only block. -* - CALL ZGEQR2( M-I+1, N-I+1, A( I, I ), LDA, TAU( I ), - $ WORK,IINFO ) - - END IF - END IF - - -* -* Apply update to the column M+1:N when N > M -* - IF ( M.LT.N .AND. I.NE.1) THEN -* -* Form the last triangular factor of the block reflector -* H = H(i) H(i+1) . . . H(i+ib-1) -* - IF ( NT .LE. NB ) THEN - CALL ZLARFT( 'Forward', 'Columnwise', M-I+1, K-I+1, - $ A( I, I ), LDA, TAU( I ), WORK(I), LBWORK ) - ELSE - CALL ZLARFT( 'Forward', 'Columnwise', M-I+1, K-I+1, - $ A( I, I ), LDA, TAU( I ), - $ WORK(LBWORK*NB+1), NT ) - END IF - -* -* Apply H' to A(1:M,M+1:N) from the left -* - DO 40 J = 1, K-NX, NB - - IB = MIN( K-J+1, NB ) - - CALL ZLARFB( 'Left', 'Transpose', 'Forward', - $ 'Columnwise', M-J+1, N-M, IB, - $ A( J, J ), LDA, WORK(J), LBWORK, - $ A( J, M+1 ), LDA, WORK(LBWORK*NB+NT*NT+1), - $ N-M) - -40 CONTINUE - - IF ( NT.LE.NB ) THEN - CALL ZLARFB( 'Left', 'Transpose', 'Forward', - $ 'Columnwise', M-J+1, N-M, K-J+1, - $ A( J, J ), LDA, WORK(J), LBWORK, - $ A( J, M+1 ), LDA, WORK(LBWORK*NB+NT*NT+1), - $ N-M) - ELSE - CALL ZLARFB( 'Left', 'Transpose', 'Forward', - $ 'Columnwise', M-J+1, N-M, K-J+1, - $ A( J, J ), LDA, - $ WORK(LBWORK*NB+1), - $ NT, A( J, M+1 ), LDA, WORK(LBWORK*NB+NT*NT+1), - $ N-M) - END IF - - END IF - - WORK( 1 ) = IWS - RETURN -* -* End of ZGEQRF -* - END diff --git a/dspl/liblapack/make.inc b/dspl/liblapack/make.inc deleted file mode 100644 index eef22c3..0000000 --- a/dspl/liblapack/make.inc +++ /dev/null @@ -1,85 +0,0 @@ -#################################################################### -# LAPACK make include file. # -# LAPACK, Version 3.8.0 # -# November 2017 # -#################################################################### - -SHELL = /bin/sh - -# CC is the C compiler, normally invoked with options CFLAGS. -# -CC = gcc -CFLAGS = -O3 - -# Modify the FORTRAN and OPTS definitions to refer to the compiler -# and desired compiler options for your machine. NOOPT refers to -# the compiler options desired when NO OPTIMIZATION is selected. -# -# Note: During a regular execution, LAPACK might create NaN and Inf -# and handle these quantities appropriately. As a consequence, one -# should not compile LAPACK with flags such as -ffpe-trap=overflow. -# -FORTRAN = gfortran -OPTS = -O3 -frecursive -DRVOPTS = $(OPTS) -NOOPT = -O0 -frecursive - -# Define LOADER and LOADOPTS to refer to the loader and desired -# load options for your machine. -# -LOADER = gfortran -LOADOPTS = - -# The archiver and the flag(s) to use when building an archive -# (library). If your system has no ranlib, set RANLIB = echo. -# -ARCH = ar -ARCHFLAGS = cr -RANLIB = ranlib - -# Timer for the SECOND and DSECND routines -# -# Default: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME -#TIMER = EXT_ETIME -# For RS6K: SECOND and DSECND will use a call to the -# EXTERNAL FUNCTION ETIME_ -#TIMER = EXT_ETIME_ -# For gfortran compiler: SECOND and DSECND will use a call to the -# INTERNAL FUNCTION ETIME -TIMER = INT_ETIME -# If your Fortran compiler does not provide etime (like Nag Fortran -# Compiler, etc...) SECOND and DSECND will use a call to the -# INTERNAL FUNCTION CPU_TIME -#TIMER = INT_CPU_TIME -# If none of these work, you can use the NONE value. -# In that case, SECOND and DSECND will always return 0. -#TIMER = NONE - -# Uncomment the following line to include deprecated routines in -# the LAPACK library. -# -#BUILD_DEPRECATED = Yes - -# LAPACKE has the interface to some routines from tmglib. -# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE. -# -#LAPACKE_WITH_TMG = Yes - -# Location of the extended-precision BLAS (XBLAS) Fortran library -# used for building and testing extended-precision routines. The -# relevant routines will be compiled and XBLAS will be linked only -# if USEXBLAS is defined. -# -#USEXBLAS = Yes -#XBLASLIB = -lxblas - -# The location of the libraries to which you will link. (The -# machine-specific, optimized BLAS library should be used whenever -# possible.) -# -BLASLIB = ../../librefblas.a -CBLASLIB = ../../libcblas.a -LAPACKLIB = liblapack.a -TMGLIB = libtmglib.a -LAPACKELIB = liblapacke.a diff --git a/dspl/dspl_src/array.c b/dspl/src/array.c similarity index 100% rename from dspl/dspl_src/array.c rename to dspl/src/array.c diff --git a/dspl/dspl_src/blas.h b/dspl/src/blas.h similarity index 100% rename from dspl/dspl_src/blas.h rename to dspl/src/blas.h diff --git a/dspl/dspl_src/cheby.c b/dspl/src/cheby.c similarity index 100% rename from dspl/dspl_src/cheby.c rename to dspl/src/cheby.c diff --git a/dspl/dspl_src/complex.c b/dspl/src/complex.c similarity index 100% rename from dspl/dspl_src/complex.c rename to dspl/src/complex.c diff --git a/dspl/dspl_src/conv.c b/dspl/src/conv.c similarity index 100% rename from dspl/dspl_src/conv.c rename to dspl/src/conv.c diff --git a/dspl/dspl_src/dft.c b/dspl/src/dft.c similarity index 100% rename from dspl/dspl_src/dft.c rename to dspl/src/dft.c diff --git a/dspl/dspl_src/dspl_internal.h b/dspl/src/dspl_internal.h similarity index 100% rename from dspl/dspl_src/dspl_internal.h rename to dspl/src/dspl_internal.h diff --git a/dspl/dspl_src/ellipj.c b/dspl/src/ellipj.c similarity index 100% rename from dspl/dspl_src/ellipj.c rename to dspl/src/ellipj.c diff --git a/dspl/dspl_src/fft.c b/dspl/src/fft.c similarity index 100% rename from dspl/dspl_src/fft.c rename to dspl/src/fft.c diff --git a/dspl/dspl_src/fft_subkernel.c b/dspl/src/fft_subkernel.c similarity index 100% rename from dspl/dspl_src/fft_subkernel.c rename to dspl/src/fft_subkernel.c diff --git a/dspl/dspl_src/fillarray.c b/dspl/src/fillarray.c similarity index 100% rename from dspl/dspl_src/fillarray.c rename to dspl/src/fillarray.c diff --git a/dspl/dspl_src/filter_an.c b/dspl/src/filter_an.c similarity index 100% rename from dspl/dspl_src/filter_an.c rename to dspl/src/filter_an.c diff --git a/dspl/dspl_src/filter_ap.c b/dspl/src/filter_ap.c similarity index 100% rename from dspl/dspl_src/filter_ap.c rename to dspl/src/filter_ap.c diff --git a/dspl/dspl_src/filter_fir.c b/dspl/src/filter_fir.c similarity index 100% rename from dspl/dspl_src/filter_fir.c rename to dspl/src/filter_fir.c diff --git a/dspl/dspl_src/filter_ft.c b/dspl/src/filter_ft.c similarity index 100% rename from dspl/dspl_src/filter_ft.c rename to dspl/src/filter_ft.c diff --git a/dspl/dspl_src/filter_iir.c b/dspl/src/filter_iir.c similarity index 100% rename from dspl/dspl_src/filter_iir.c rename to dspl/src/filter_iir.c diff --git a/dspl/dspl_src/fourier_series.c b/dspl/src/fourier_series.c similarity index 100% rename from dspl/dspl_src/fourier_series.c rename to dspl/src/fourier_series.c diff --git a/dspl/dspl_src/goertzel.c b/dspl/src/goertzel.c similarity index 100% rename from dspl/dspl_src/goertzel.c rename to dspl/src/goertzel.c diff --git a/dspl/dspl_src/inout.c b/dspl/src/inout.c similarity index 86% rename from dspl/dspl_src/inout.c rename to dspl/src/inout.c index 3db6e75..fca254d 100644 --- a/dspl/dspl_src/inout.c +++ b/dspl/src/inout.c @@ -21,6 +21,8 @@ #include #include +#include + #include "dspl.h" @@ -36,10 +38,46 @@ void DSPL_API dspl_info() printf(" Sergey Bakhurin www.dsplib.org\n"); printf(" ---------------------------------------------\n"); printf(" BLAS and LAPACK ver.: 3.8.0 www.netlib.org\n"); - + } +/******************************************************************************* +run gnuplot script +*******************************************************************************/ +int DSPL_API gnuplot_script(int argc, char* argv[], char* fn) +{ + char cmd[1024] = {0}; + + if(!fn || !argv) + return ERROR_PTR; + + if(argc > 1) + { + if(!strcmp(argv[1], "--noplot")) + { + return RES_OK; + } + if(!strcmp(argv[1], "--plotwin")) + { + sprintf(cmd, "gnuplot -e \"plotterm = 'wxt'\" -p %s", fn); + goto script_label; + } + if(!strcmp(argv[1], "--plotpng")) + { + sprintf("gnuplot -e \"plotterm = 'pngcairo'\" -p %s", fn); + goto script_label; + } + return ERROR_GNUPLOT_TERM; + } + { + sprintf(cmd, "gnuplot -e \"plotterm = 'wxt'\" -p %s", fn); + goto script_label; + } + +script_label: + return system(cmd); +} /****************************************************************************** @@ -49,7 +87,7 @@ int DSPL_API readbin(char* fn, void** x, int* k, int* dtype) { FILE* pFile = NULL; int n, m, t, err; - + if(!x) return ERROR_PTR; if(!fn) @@ -57,52 +95,52 @@ int DSPL_API readbin(char* fn, void** x, int* k, int* dtype) pFile = fopen(fn, "rb"); if(pFile == NULL) - return ERROR_FOPEN; + return ERROR_FOPEN; if(fread(&t, sizeof(int), 1, pFile) != 1) { err = ERROR_FREAD_SIZE; goto exit_label; } - - if(dtype) + + if(dtype) *dtype = t; - + if(fread(&n, sizeof(int), 1, pFile) != 1) { err = ERROR_FREAD_SIZE; goto exit_label; } - + if(fread(&m, sizeof(int), 1, pFile) != 1) { err = ERROR_FREAD_SIZE; goto exit_label; } - + if(k) *k = n*m; - + switch(t) { case DAT_DOUBLE: - (*x) = (*x) ? realloc(*x, n*m*sizeof(double)) : - malloc(n*m*sizeof(double)); + (*x) = (*x) ? realloc(*x, n*m*sizeof(double)) : + malloc(n*m*sizeof(double)); if(fread(*x, sizeof(double), n*m, pFile) != n*m) { err = ERROR_FREAD_SIZE; goto exit_label; - } - + } + break; case DAT_COMPLEX: - (*x) = (*x) ? realloc(*x, n*m*sizeof(complex_t)) : - malloc(n*m*sizeof(complex_t)); + (*x) = (*x) ? realloc(*x, n*m*sizeof(complex_t)) : + malloc(n*m*sizeof(complex_t)); if(fread(*x, sizeof(complex_t), n*m, pFile) != n*m) { err = ERROR_FREAD_SIZE; goto exit_label; - } + } default: err = ERROR_DAT_TYPE; goto exit_label; @@ -111,7 +149,7 @@ int DSPL_API readbin(char* fn, void** x, int* k, int* dtype) exit_label: if(pFile) fclose(pFile); - return err; + return err; } diff --git a/dspl/dspl_src/math.c b/dspl/src/math.c similarity index 100% rename from dspl/dspl_src/math.c rename to dspl/src/math.c diff --git a/dspl/dspl_src/matrix.c b/dspl/src/matrix.c similarity index 100% rename from dspl/dspl_src/matrix.c rename to dspl/src/matrix.c diff --git a/dspl/dspl_src/mt19937.c b/dspl/src/mt19937.c similarity index 100% rename from dspl/dspl_src/mt19937.c rename to dspl/src/mt19937.c diff --git a/dspl/dspl_src/mt19937.h b/dspl/src/mt19937.h similarity index 100% rename from dspl/dspl_src/mt19937.h rename to dspl/src/mt19937.h diff --git a/dspl/dspl_src/polyval.c b/dspl/src/polyval.c similarity index 100% rename from dspl/dspl_src/polyval.c rename to dspl/src/polyval.c diff --git a/dspl/dspl_src/randgen.c b/dspl/src/randgen.c similarity index 86% rename from dspl/dspl_src/randgen.c rename to dspl/src/randgen.c index 2fb764f..7486844 100644 --- a/dspl/dspl_src/randgen.c +++ b/dspl/src/randgen.c @@ -38,7 +38,7 @@ int DSPL_API random_init(random_t* prnd, int type) switch(type) { case RAND_TYPE_MRG32K3A: - /* MRG32k3a init */ + /* MRG32k3a init */ prnd->mrg32k3a_x[0] = prnd->mrg32k3a_x[1] = 1.0; prnd->mrg32k3a_y[0] = prnd->mrg32k3a_y[1] = prnd->mrg32k3a_y[2] = 1.0; prnd->mrg32k3a_x[2] = rand(); @@ -50,7 +50,7 @@ int DSPL_API random_init(random_t* prnd, int type) return ERROR_RAND_TYPE; } prnd->type = type; - return RES_OK; + return RES_OK; } @@ -61,7 +61,7 @@ Uniform random generator mrg32k3a *******************************************************************************/ int randu_mrg32k3a (double* u, int n, random_t* prnd) { - + if(!u || !prnd) return ERROR_PTR; if(n < 1) @@ -70,34 +70,34 @@ int randu_mrg32k3a (double* u, int n, random_t* prnd) long z; double xn, yn, *x, *y; int k; - + x = prnd->mrg32k3a_x; y = prnd->mrg32k3a_y; for(k = 0; k < n; k++) { /* Component x[n] */ xn = MRG32K3A_A12 * x[1] - MRG32K3A_A13 * x[2]; - + z = (long)(xn / MRG32K3A_M1); xn -= (double)z * MRG32K3A_M1; if (xn < 0.0) xn += MRG32K3A_M1; - + x[2] = x[1]; x[1] = x[0]; x[0] = xn; - + /* Component y[n] */ yn = MRG32K3A_A21 * y[0] - MRG32K3A_A23 * y[2]; z = (long)(yn / MRG32K3A_M2); yn -= (double)z * MRG32K3A_M2; if (yn < 0.0) yn += MRG32K3A_M2; - + y[2] = y[1]; y[1] = y[0]; y[0] = yn; - + /* Combination */ u[k] = (xn <= yn) ? ((xn - yn + MRG32K3A_M1) * MRG32K3A_NORM): (xn - yn) * MRG32K3A_NORM; @@ -117,12 +117,12 @@ Uniform random numbers generator int DSPL_API randu(double* x, int n, random_t* prnd) { int i; - + if(!x || !prnd) return ERROR_PTR; if(n < 0) return ERROR_SIZE; - + if(prnd) { switch(prnd->type) @@ -131,7 +131,7 @@ int DSPL_API randu(double* x, int n, random_t* prnd) return randu_mrg32k3a(x, n, prnd); case RAND_TYPE_MT19937: for(i = 0; i < n; i++) - x[i] = mt19937_genrand64_real1(prnd); + x[i] = mt19937_genrand64_real1(prnd); return RES_OK; default: return ERROR_RAND_TYPE; @@ -144,9 +144,9 @@ int DSPL_API randu(double* x, int n, random_t* prnd) if(n<1) return ERROR_SIZE; for(i = 0; i < n; i++) - x[n] = (double)rand()/RAND_MAX; + x[n] = (double)rand()/RAND_MAX; } - + return RES_OK; } @@ -159,7 +159,7 @@ Gaussian random numbers generator int DSPL_API randn(double* x, int n, double mu, double sigma, random_t* prnd) { int k, m; - double x1[128], x2[128]; + double x1[512], x2[512]; int res; if(!x) return ERROR_PTR; @@ -171,37 +171,24 @@ int DSPL_API randn(double* x, int n, double mu, double sigma, random_t* prnd) return ERROR_RAND_SIGMA; k=0; - - while(k+128 < n) + while(k < n) { - if((res = randu(x1, 128, prnd)) != RES_OK) + if((res = randu(x1, 512, prnd)) != RES_OK) goto exit_label; - if((res = randu(x2, 128, prnd)) != RES_OK) + if((res = randu(x2, 512, prnd)) != RES_OK) goto exit_label; - - for(m = 0; m < 128; m++) + m = 0; + while(k < n && m < 512) { if(x1[m] != 0.0) { x[k] = sqrt(-2.0*log(x1[m]))*cos(M_2PI*x2[m])*sigma + mu; k++; + m++; } } } - - while(k < n) - { - if((res = randu(x1, 1, prnd)) != RES_OK) - goto exit_label; - if((res = randu(x2, 1, prnd)) != RES_OK) - goto exit_label; - if(x1[1] != 0.0) - { - x[k] = sqrt(-2.0*log(x1[1]))*cos(M_2PI*x2[1])*sigma + mu; - k++; - } - } - + res = RES_OK; exit_label: return res; diff --git a/dspl/dspl_src/resampling.c b/dspl/src/resampling.c similarity index 100% rename from dspl/dspl_src/resampling.c rename to dspl/src/resampling.c diff --git a/dspl/dspl_src/signals.c b/dspl/src/signals.c similarity index 100% rename from dspl/dspl_src/signals.c rename to dspl/src/signals.c diff --git a/dspl/dspl_src/statistic.c b/dspl/src/statistic.c similarity index 100% rename from dspl/dspl_src/statistic.c rename to dspl/src/statistic.c diff --git a/dspl/dspl_src/trapint.c b/dspl/src/trapint.c similarity index 100% rename from dspl/dspl_src/trapint.c rename to dspl/src/trapint.c diff --git a/dspl/dspl_src/win.c b/dspl/src/win.c similarity index 100% rename from dspl/dspl_src/win.c rename to dspl/src/win.c diff --git a/examples/bin/.gitignore b/examples/bin/.gitignore deleted file mode 100644 index 8f3d17a..0000000 --- a/examples/bin/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -*.exe -*.so -*.dll -*.exp -*.ipdb -*.pdb -*.iobj -*.lib diff --git a/examples/bin/dat/.gitignore b/examples/bin/dat/.gitignore deleted file mode 100644 index c24ff9f..0000000 --- a/examples/bin/dat/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*.txt -*.csv -*.dat -*.bin diff --git a/examples/bin/img/.gitignore b/examples/bin/img/.gitignore deleted file mode 100644 index aab52d9..0000000 --- a/examples/bin/img/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.png \ No newline at end of file diff --git a/examples/examples.cbp b/examples/examples.cbp new file mode 100644 index 0000000..244cdd1 --- /dev/null +++ b/examples/examples.cbp @@ -0,0 +1,62 @@ + + + + + + diff --git a/examples/examples.cbp.mak b/examples/examples.cbp.mak new file mode 100644 index 0000000..037e634 --- /dev/null +++ b/examples/examples.cbp.mak @@ -0,0 +1,100 @@ +#------------------------------------------------------------------------------# +# This makefile was generated by 'cbp2make' tool rev.147 # +#------------------------------------------------------------------------------# + + +WORKDIR = %cd% + +CC = gcc.exe +CXX = g++.exe +AR = ar.exe +LD = g++.exe +WINDRES = windres.exe + +INC = +CFLAGS = -Wall -I../include -DWIN_OS +RESINC = +LIBDIR = +LIB = +LDFLAGS = + +INC_DEBUG = $(INC) +CFLAGS_DEBUG = $(CFLAGS) -g +RESINC_DEBUG = $(RESINC) +RCFLAGS_DEBUG = $(RCFLAGS) +LIBDIR_DEBUG = $(LIBDIR) +LIB_DEBUG = $(LIB) +LDFLAGS_DEBUG = $(LDFLAGS) +OBJDIR_DEBUG = obj\\Debug +DEP_DEBUG = +OUT_DEBUG = ..\\bin\\example.exe + +INC_RELEASE = $(INC) +CFLAGS_RELEASE = $(CFLAGS) -O2 +RESINC_RELEASE = $(RESINC) +RCFLAGS_RELEASE = $(RCFLAGS) +LIBDIR_RELEASE = $(LIBDIR) +LIB_RELEASE = $(LIB) +LDFLAGS_RELEASE = $(LDFLAGS) -s +OBJDIR_RELEASE = obj\\Release +DEP_RELEASE = +OUT_RELEASE = ..\\bin\\example.exe + +OBJ_DEBUG = $(OBJDIR_DEBUG)\\__\\include\\dspl.o $(OBJDIR_DEBUG)\\src\\filter_iir_test.o + +OBJ_RELEASE = $(OBJDIR_RELEASE)\\__\\include\\dspl.o $(OBJDIR_RELEASE)\\src\\filter_iir_test.o + +all: debug release + +clean: clean_debug clean_release + +before_debug: + cmd /c if not exist ..\\bin md ..\\bin + cmd /c if not exist $(OBJDIR_DEBUG)\\__\\include md $(OBJDIR_DEBUG)\\__\\include + cmd /c if not exist $(OBJDIR_DEBUG)\\src md $(OBJDIR_DEBUG)\\src + +after_debug: + +debug: before_debug out_debug after_debug + +out_debug: before_debug $(OBJ_DEBUG) $(DEP_DEBUG) + $(LD) $(LIBDIR_DEBUG) -o $(OUT_DEBUG) $(OBJ_DEBUG) $(LDFLAGS_DEBUG) $(LIB_DEBUG) + +$(OBJDIR_DEBUG)\\__\\include\\dspl.o: ..\\include\\dspl.c + $(CC) $(CFLAGS_DEBUG) $(INC_DEBUG) -c ..\\include\\dspl.c -o $(OBJDIR_DEBUG)\\__\\include\\dspl.o + +$(OBJDIR_DEBUG)\\src\\filter_iir_test.o: src\\filter_iir_test.c + $(CC) $(CFLAGS_DEBUG) $(INC_DEBUG) -c src\\filter_iir_test.c -o $(OBJDIR_DEBUG)\\src\\filter_iir_test.o + +clean_debug: + cmd /c del /f $(OBJ_DEBUG) $(OUT_DEBUG) + cmd /c rd ..\\bin + cmd /c rd $(OBJDIR_DEBUG)\\__\\include + cmd /c rd $(OBJDIR_DEBUG)\\src + +before_release: + cmd /c if not exist ..\\bin md ..\\bin + cmd /c if not exist $(OBJDIR_RELEASE)\\__\\include md $(OBJDIR_RELEASE)\\__\\include + cmd /c if not exist $(OBJDIR_RELEASE)\\src md $(OBJDIR_RELEASE)\\src + +after_release: + +release: before_release out_release after_release + +out_release: before_release $(OBJ_RELEASE) $(DEP_RELEASE) + $(LD) $(LIBDIR_RELEASE) -o $(OUT_RELEASE) $(OBJ_RELEASE) $(LDFLAGS_RELEASE) $(LIB_RELEASE) + +$(OBJDIR_RELEASE)\\__\\include\\dspl.o: ..\\include\\dspl.c + $(CC) $(CFLAGS_RELEASE) $(INC_RELEASE) -c ..\\include\\dspl.c -o $(OBJDIR_RELEASE)\\__\\include\\dspl.o + +$(OBJDIR_RELEASE)\\src\\filter_iir_test.o: src\\filter_iir_test.c + $(CC) $(CFLAGS_RELEASE) $(INC_RELEASE) -c src\\filter_iir_test.c -o $(OBJDIR_RELEASE)\\src\\filter_iir_test.o + +clean_release: + cmd /c del /f $(OBJ_RELEASE) $(OUT_RELEASE) + cmd /c rd ..\\bin + cmd /c rd $(OBJDIR_RELEASE)\\__\\include + cmd /c rd $(OBJDIR_RELEASE)\\src + +.PHONY: before_debug after_debug clean_debug before_release after_release clean_release + diff --git a/examples/examples.depend b/examples/examples.depend new file mode 100644 index 0000000..a9fec41 --- /dev/null +++ b/examples/examples.depend @@ -0,0 +1,22 @@ +# depslib dependency file v1.0 +1572186508 source:f:\dsplib.org\libdspl-2.0_ide\include\dspl.c + + + + "dspl.h" + +1572178425 f:\dsplib.org\libdspl-2.0_ide\include\dspl.h + + +1572185008 source:f:\dsplib.org\libdspl-2.0_ide\examples\src\test.c + + + + "dspl.h" + +1572186227 source:f:\dsplib.org\libdspl-2.0_ide\examples\src\filter_iir_test.c + + + + "dspl.h" + diff --git a/examples/examples.layout b/examples/examples.layout new file mode 100644 index 0000000..e612b19 --- /dev/null +++ b/examples/examples.layout @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/examples/obj/.gitignore b/examples/obj/.gitignore deleted file mode 100644 index e69de29..0000000 diff --git a/examples/src/filter_iir_test.c b/examples/src/filter_iir_test.c index dc1377d..36900ee 100644 --- a/examples/src/filter_iir_test.c +++ b/examples/src/filter_iir_test.c @@ -5,35 +5,40 @@ #define ORD 6 #define N 1000 -int main() +int main(int argc, char* argv[]) { - void* handle; // DSPL handle - handle = dspl_load(); // Load DSPL function + void* handle; /* DSPL handle */ + double b[ORD+1], a[ORD+1]; - double t[N], s[N], n[N], sf[N]; - random_t rnd; + double t[N], s[N], n[N], sf[N]; + random_t rnd; int k; + int err; - random_init(&rnd, RAND_TYPE_MT19937); // random generator init - linspace(0, N, N, DSPL_PERIODIC, t); // fill t vector - randn(n, N, 0, 1.0, &rnd); // generate noise + handle = dspl_load(); /* Load DSPL function */ - // input signal s = sin(2*pi*t) + n(t) + random_init(&rnd, RAND_TYPE_MRG32K3A); /* random generator init */ + linspace(0, N, N, DSPL_PERIODIC, t); /* fill t vector */ + randn(n, N, 0, 1.0, &rnd); /* generate noise */ + + /* input signal s = sin(2*pi*t) + n(t) */ for(k = 0; k < N; k++) s[k] = sin(M_2PI*0.02*t[k]) + n[k]; - // iir filter calculation + /* iir filter calculation */ iir(1.0, 70.0, ORD, 0.06, 0.0, DSPL_FILTER_ELLIP | DSPL_FILTER_LPF, b, a); - + // input signal filtration filter_iir(b, a, ORD, s, N, sf); - + // save input signal and filter output to the txt-files writetxt(t,s, N, "dat/s.txt"); writetxt(t,sf,N, "dat/sf.txt"); + + err = gnuplot_script(argc, argv, "gnuplot/filter_iir.plt"); dspl_free(handle); // free dspl handle // run GNUPLOT script - return system("gnuplot -p gnuplot/filter_iir.plt"); + return err; } diff --git a/examples/src/test.c b/examples/src/test.c new file mode 100644 index 0000000..fc0e628 --- /dev/null +++ b/examples/src/test.c @@ -0,0 +1,32 @@ +#include +#include +#include +#include "dspl.h" + +#define N 3 + +int main() +{ + void* handle; /* DSPL handle */ + handle = dspl_load(); /* Load DSPL function */ + + complex_t a[N*N] = {{1.0, 0.0}, {1.0, 0.0}, {0.0, 0.0}, + {2.0, 0.0}, {0.0, 0.0}, {1.0, 0.0}, + {3.0, 0.0}, {0.0, 0.0}, {0.0, 0.0}}; + + complex_t v[N]; + int err, info; + matrix_print_cmplx(a, N, N, "A", "%8.2f%+8.2fi"); + + err = matrix_eig_cmplx(a, N, v, &info); + if(err!=RES_OK) + { + printf("ERROR CODE: 0x%.8x, info = %d\n", err, info); + } + + matrix_print_cmplx(v, N, 1, "v", "%10.6f%+10.6fi"); + + dspl_free(handle); /* free dspl handle */ + return 0; +} + diff --git a/ide/visualstudio/libdspl-2.0.sln b/ide/visualstudio/libdspl-2.0.sln deleted file mode 100644 index a264241..0000000 --- a/ide/visualstudio/libdspl-2.0.sln +++ /dev/null @@ -1,41 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27703.2042 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "test.vcxproj", "{281E42D9-1F9F-4A4B-852D-AAD12291EBF1}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdspl-2.0", "libdspl-2.0.vcxproj", "{B7A08A03-C9D7-49C8-89C5-15B0EB872A2E}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {281E42D9-1F9F-4A4B-852D-AAD12291EBF1}.Debug|x64.ActiveCfg = Debug|x64 - {281E42D9-1F9F-4A4B-852D-AAD12291EBF1}.Debug|x64.Build.0 = Debug|x64 - {281E42D9-1F9F-4A4B-852D-AAD12291EBF1}.Debug|x86.ActiveCfg = Debug|Win32 - {281E42D9-1F9F-4A4B-852D-AAD12291EBF1}.Debug|x86.Build.0 = Debug|Win32 - {281E42D9-1F9F-4A4B-852D-AAD12291EBF1}.Release|x64.ActiveCfg = Release|x64 - {281E42D9-1F9F-4A4B-852D-AAD12291EBF1}.Release|x64.Build.0 = Release|x64 - {281E42D9-1F9F-4A4B-852D-AAD12291EBF1}.Release|x86.ActiveCfg = Release|Win32 - {281E42D9-1F9F-4A4B-852D-AAD12291EBF1}.Release|x86.Build.0 = Release|Win32 - {B7A08A03-C9D7-49C8-89C5-15B0EB872A2E}.Debug|x64.ActiveCfg = Debug|x64 - {B7A08A03-C9D7-49C8-89C5-15B0EB872A2E}.Debug|x64.Build.0 = Debug|x64 - {B7A08A03-C9D7-49C8-89C5-15B0EB872A2E}.Debug|x86.ActiveCfg = Debug|Win32 - {B7A08A03-C9D7-49C8-89C5-15B0EB872A2E}.Debug|x86.Build.0 = Debug|Win32 - {B7A08A03-C9D7-49C8-89C5-15B0EB872A2E}.Release|x64.ActiveCfg = Release|x64 - {B7A08A03-C9D7-49C8-89C5-15B0EB872A2E}.Release|x64.Build.0 = Release|x64 - {B7A08A03-C9D7-49C8-89C5-15B0EB872A2E}.Release|x86.ActiveCfg = Release|Win32 - {B7A08A03-C9D7-49C8-89C5-15B0EB872A2E}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {71230A03-7736-47BD-BB65-804F946D83FA} - EndGlobalSection -EndGlobal diff --git a/ide/visualstudio/libdspl-2.0.vcxproj b/ide/visualstudio/libdspl-2.0.vcxproj deleted file mode 100644 index 052d96c..0000000 --- a/ide/visualstudio/libdspl-2.0.vcxproj +++ /dev/null @@ -1,211 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 15.0 - {B7A08A03-C9D7-49C8-89C5-15B0EB872A2E} - Win32Proj - libdspl20 - 10.0.17134.0 - libdspl-2.0 - - - - DynamicLibrary - true - v141 - Unicode - - - DynamicLibrary - false - v141 - true - Unicode - - - DynamicLibrary - true - v141 - Unicode - - - DynamicLibrary - false - v141 - true - Unicode - - - - - - - - - - - - - - - - - - - - - true - ..\..\test\bin\ - libdspl - $(Configuration)\dll\ - - - true - ..\..\test\bin\ - libdspl - $(Configuration)\dll\ - - - false - ..\..\test\bin\ - libdspl - $(Configuration)\dll\ - - - false - ..\..\test\bin\ - libdspl - $(Configuration)\dll\ - - - - NotUsing - Level3 - MaxSpeed - true - BUILD_LIB;WIN_OS;_CRT_SECURE_NO_WARNINGS - true - ../../include;%(AdditionalIncludeDirectories) - Speed - true - Default - MultiThreadedDebugDLL - - - Windows - true - ../../test/bin/libdspl.dll - - - - - NotUsing - Level3 - MaxSpeed - true - BUILD_LIB;WIN_OS;_CRT_SECURE_NO_WARNINGS - true - ../../include;%(AdditionalIncludeDirectories) - Speed - true - Default - MultiThreadedDebugDLL - - - Windows - true - ../../test/bin/libdspl.dll - - - - - NotUsing - Level3 - MaxSpeed - true - true - BUILD_LIB;WIN_OS;_CRT_SECURE_NO_WARNINGS - true - ../../include;%(AdditionalIncludeDirectories) - Speed - true - MultiThreadedDebugDLL - - - Windows - true - true - true - ../../test/bin/libdspl.dll - - - - - NotUsing - Level3 - MaxSpeed - true - true - BUILD_LIB;WIN_OS;_CRT_SECURE_NO_WARNINGS - true - ../../include;%(AdditionalIncludeDirectories) - Speed - true - MultiThreadedDebugDLL - - - Windows - true - true - true - ../../test/bin/libdspl.dll - - - - - - \ No newline at end of file diff --git a/ide/visualstudio/libdspl-2.0.vcxproj.filters b/ide/visualstudio/libdspl-2.0.vcxproj.filters deleted file mode 100644 index 307ba29..0000000 --- a/ide/visualstudio/libdspl-2.0.vcxproj.filters +++ /dev/null @@ -1,87 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;hm;inl;inc;ipp;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Исходные файлы - - - Исходные файлы - - - Исходные файлы - - - Исходные файлы - - - Исходные файлы - - - Исходные файлы - - - Исходные файлы - - - Исходные файлы - - - Исходные файлы - - - Исходные файлы - - - Исходные файлы - - - Исходные файлы - - - Исходные файлы - - - Исходные файлы - - - Исходные файлы - - - Исходные файлы - - - Исходные файлы - - - Исходные файлы - - - Исходные файлы - - - Исходные файлы - - - Исходные файлы - - - - - Файлы заголовков - - - \ No newline at end of file diff --git a/ide/visualstudio/libdspl-2.0.vcxproj.user b/ide/visualstudio/libdspl-2.0.vcxproj.user deleted file mode 100644 index 6e2aec7..0000000 --- a/ide/visualstudio/libdspl-2.0.vcxproj.user +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/ide/visualstudio/test.vcxproj b/ide/visualstudio/test.vcxproj deleted file mode 100644 index ba72778..0000000 --- a/ide/visualstudio/test.vcxproj +++ /dev/null @@ -1,150 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - 15.0 - {281E42D9-1F9F-4A4B-852D-AAD12291EBF1} - test - 10.0.17134.0 - - - - Application - true - v141 - MultiByte - - - Application - false - v141 - true - MultiByte - - - Application - true - v141 - MultiByte - - - Application - false - v141 - true - MultiByte - - - - - - - - - - - - - - - - - - - - - ..\..\test\bin\ - $(Configuration)\test\ - - - ..\..\test\bin\ - $(Configuration)\test\ - - - ..\..\test\bin\ - $(Configuration)\test\ - - - ..\..\test\bin\ - $(Configuration)\test\ - - - - Level3 - MaxSpeed - true - true - true - true - ../../include;%(AdditionalIncludeDirectories) - WIN_OS;%(PreprocessorDefinitions) - - - true - true - - - - - Level3 - Disabled - true - true - ../../include;%(AdditionalIncludeDirectories) - WIN_OS;%(PreprocessorDefinitions) - - - - - Level3 - Disabled - true - true - ../../include;%(AdditionalIncludeDirectories) - WIN_OS;%(PreprocessorDefinitions) - - - - - Level3 - MaxSpeed - true - true - true - true - ../../include;%(AdditionalIncludeDirectories) - WIN_OS;%(PreprocessorDefinitions) - - - true - true - - - - - - - - - - - - - \ No newline at end of file diff --git a/ide/visualstudio/test.vcxproj.filters b/ide/visualstudio/test.vcxproj.filters deleted file mode 100644 index ee56c37..0000000 --- a/ide/visualstudio/test.vcxproj.filters +++ /dev/null @@ -1,30 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;hm;inl;inc;ipp;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Исходные файлы - - - Исходные файлы - - - - - Файлы заголовков - - - \ No newline at end of file diff --git a/ide/visualstudio/test.vcxproj.user b/ide/visualstudio/test.vcxproj.user deleted file mode 100644 index da0e35c..0000000 --- a/ide/visualstudio/test.vcxproj.user +++ /dev/null @@ -1,19 +0,0 @@ - - - - $(ProjectDir)../../test/bin - WindowsLocalDebugger - - - $(ProjectDir)../../test/bin - WindowsLocalDebugger - - - $(ProjectDir)../../test/bin - WindowsLocalDebugger - - - $(ProjectDir)../../test/bin - WindowsLocalDebugger - - \ No newline at end of file diff --git a/include/dspl.c b/include/dspl.c index b4a94fb..cbdccd2 100644 --- a/include/dspl.c +++ b/include/dspl.c @@ -37,10 +37,12 @@ p_acos_cmplx acos_cmplx ; p_asin_cmplx asin_cmplx ; + p_butter_ap butter_ap ; p_bessel_i0 bessel_i0 ; p_bilinear bilinear ; p_butter_ap_zp butter_ap_zp ; + p_cheby_poly1 cheby_poly1 ; p_cheby_poly2 cheby_poly2 ; p_cheby1_ap cheby1_ap ; @@ -55,12 +57,14 @@ p_conv_cmplx conv_cmplx ; p_conv_fft conv_fft ; p_conv_fft_cmplx conv_fft_cmplx ; p_cos_cmplx cos_cmplx ; + p_decimate decimate ; p_decimate_cmplx decimate_cmplx ; p_dft dft ; p_dft_cmplx dft_cmplx ; p_dmod dmod ; p_dspl_info dspl_info ; + p_ellip_acd ellip_acd ; p_ellip_acd_cmplx ellip_acd_cmplx ; p_ellip_ap ellip_ap ; @@ -74,6 +78,7 @@ p_ellip_modulareq ellip_modulareq ; p_ellip_rat ellip_rat ; p_ellip_sn ellip_sn ; p_ellip_sn_cmplx ellip_sn_cmplx ; + p_farrow_lagrange farrow_lagrange ; p_farrow_spline farrow_spline ; p_fft fft ; @@ -100,13 +105,18 @@ p_freqs freqs ; p_freqs_cmplx freqs_cmplx ; p_freqs2time freqs2time ; p_freqz freqz ; + +p_gnuplot_script gnuplot_script ; p_goertzel goertzel ; p_goertzel_cmplx goertzel_cmplx ; + p_histogram histogram ; p_histogram_norm histogram_norm ; + p_idft_cmplx idft_cmplx ; p_ifft_cmplx ifft_cmplx ; p_iir iir ; + p_linspace linspace ; p_log_cmplx log_cmplx ; p_logspace logspace ; @@ -124,30 +134,35 @@ p_matrix_print_cmplx matrix_print_cmplx ; p_matrix_transpose matrix_transpose ; p_matrix_transpose_cmplx matrix_transpose_cmplx ; p_matrix_transpose_hermite matrix_transpose_hermite ; - - p_minmax minmax ; + p_poly_z2a_cmplx poly_z2a_cmplx ; p_polyval polyval ; p_polyval_cmplx polyval_cmplx ; + p_randn randn ; p_random_init random_init ; p_randu randu ; p_ratcompos ratcompos ; p_re2cmplx re2cmplx ; p_readbin readbin ; + p_signal_pimp signal_pimp ; p_signal_saw signal_saw ; p_sin_cmplx sin_cmplx ; p_sinc sinc ; p_sine_int sine_int ; p_sqrt_cmplx sqrt_cmplx ; + p_trapint trapint ; p_trapint_cmplx trapint_cmplx ; + p_unwrap unwrap ; + p_vector_dot vector_dot ; p_verif verif ; p_verif_cmplx verif_cmplx ; + p_window window ; p_writebin writebin ; p_writetxt writetxt ; @@ -157,7 +172,6 @@ p_writetxt_cmplx_im writetxt_cmplx_im ; p_writetxt_cmplx_re writetxt_cmplx_re ; -#endif /* BUILD_LIB */ @@ -183,6 +197,8 @@ p_writetxt_cmplx_re writetxt_cmplx_re ; void* dspl_load() { + + char* fname; #ifdef WIN_OS HINSTANCE handle; @@ -207,12 +223,18 @@ void* dspl_load() } #endif /* LINUX_OS */ + + + + LOAD_FUNC(acos_cmplx); LOAD_FUNC(asin_cmplx); + LOAD_FUNC(bessel_i0); LOAD_FUNC(bilinear); LOAD_FUNC(butter_ap); LOAD_FUNC(butter_ap_zp); + LOAD_FUNC(cheby_poly1); LOAD_FUNC(cheby_poly2); LOAD_FUNC(cheby1_ap); @@ -227,12 +249,14 @@ void* dspl_load() LOAD_FUNC(conv_fft); LOAD_FUNC(conv_fft_cmplx); LOAD_FUNC(cos_cmplx); + LOAD_FUNC(decimate); LOAD_FUNC(decimate_cmplx); LOAD_FUNC(dft); LOAD_FUNC(dft_cmplx); LOAD_FUNC(dmod); LOAD_FUNC(dspl_info); + LOAD_FUNC(ellip_acd); LOAD_FUNC(ellip_acd_cmplx); LOAD_FUNC(ellip_ap); @@ -246,6 +270,7 @@ void* dspl_load() LOAD_FUNC(ellip_rat); LOAD_FUNC(ellip_sn); LOAD_FUNC(ellip_sn_cmplx); + LOAD_FUNC(farrow_lagrange); LOAD_FUNC(farrow_spline); LOAD_FUNC(fft); @@ -272,13 +297,18 @@ void* dspl_load() LOAD_FUNC(freqs); LOAD_FUNC(freqs_cmplx); LOAD_FUNC(freqs2time); + + LOAD_FUNC(gnuplot_script); LOAD_FUNC(goertzel); LOAD_FUNC(goertzel_cmplx); + LOAD_FUNC(histogram); LOAD_FUNC(histogram_norm); + LOAD_FUNC(idft_cmplx); LOAD_FUNC(ifft_cmplx); LOAD_FUNC(iir); + LOAD_FUNC(linspace); LOAD_FUNC(log_cmplx); LOAD_FUNC(logspace); @@ -286,6 +316,7 @@ void* dspl_load() LOAD_FUNC(low2bs); LOAD_FUNC(low2high); LOAD_FUNC(low2low); + LOAD_FUNC(matrix_eig_cmplx); LOAD_FUNC(matrix_eye); LOAD_FUNC(matrix_eye_cmplx); @@ -296,27 +327,34 @@ void* dspl_load() LOAD_FUNC(matrix_transpose_cmplx); LOAD_FUNC(matrix_transpose_hermite); LOAD_FUNC(minmax); + LOAD_FUNC(poly_z2a_cmplx); LOAD_FUNC(polyval); LOAD_FUNC(polyval_cmplx); + LOAD_FUNC(randn); LOAD_FUNC(random_init); LOAD_FUNC(randu); LOAD_FUNC(ratcompos); LOAD_FUNC(re2cmplx); LOAD_FUNC(readbin); + LOAD_FUNC(signal_pimp); LOAD_FUNC(signal_saw); LOAD_FUNC(sin_cmplx); LOAD_FUNC(sinc); LOAD_FUNC(sine_int); LOAD_FUNC(sqrt_cmplx); + LOAD_FUNC(trapint); LOAD_FUNC(trapint_cmplx); + LOAD_FUNC(unwrap); + LOAD_FUNC(vector_dot); LOAD_FUNC(verif); LOAD_FUNC(verif_cmplx); + LOAD_FUNC(window); LOAD_FUNC(writebin); LOAD_FUNC(writetxt); @@ -325,6 +363,7 @@ void* dspl_load() LOAD_FUNC(writetxt_cmplx_im); LOAD_FUNC(writetxt_cmplx_re); + #ifdef WIN_OS return (void*)handle; exit_label: @@ -343,6 +382,8 @@ void* dspl_load() dlclose(handle); return NULL; #endif /* LINUX_OS */ + + } @@ -363,3 +404,4 @@ void dspl_free(void* handle) } +#endif /* BUILD_LIB */ diff --git a/include/dspl.h b/include/dspl.h index 7f93dfb..8465e6d 100644 --- a/include/dspl.h +++ b/include/dspl.h @@ -120,6 +120,7 @@ typedef struct #define ERROR_FREAD_SIZE 0x06180501 #define ERROR_FWRITE_SIZE 0x06231820 /* G 0x07xxxxxx*/ +#define ERROR_GNUPLOT_TERM 0x07161220 /* H 0x08xxxxxx*/ /* I 0x09xxxxxx*/ #define ERROR_INC_SIZE 0x09140319 @@ -625,6 +626,10 @@ DECLARE_FUNC(int, freqz, double* COMMA int COMMA complex_t*); /*----------------------------------------------------------------------------*/ +DECLARE_FUNC(int, gnuplot_script, int argc + COMMA char* argv[] + COMMA char* fn); +/*----------------------------------------------------------------------------*/ DECLARE_FUNC(int, goertzel, double* COMMA int COMMA int* diff --git a/lapack/Makefile b/lapack/Makefile new file mode 100644 index 0000000..e416618 --- /dev/null +++ b/lapack/Makefile @@ -0,0 +1,55 @@ + + +FORTRAN = gfortran +OPTS = -O3 +DRVOPTS = $(OPTS) +NOOPT = +LOADOPTS = +# +# The archiver and the flag(s) to use when building archive (library) +# If you system has no ranlib, set RANLIB = echo. +# +ARCH = ar +ARCHFLAGS= cr +RANLIB = ranlib +# +# The location and name of the Reference BLAS library. +# +LAPACK_DOUBLE_LIB = bin/Release/liblapack_double.a +LAPACK_COMPLEX_LIB = bin/Release/liblapack_complex.a + +LAPACK_OBJ_DIR = obj/Release/src + +# DSPL src and obj files list +include lapack_double.inc +include lapack_complex.inc + +LAPACK_DOUBLE_OBJ_FILES = $(addprefix $(LAPACK_OBJ_DIR)/,$(notdir $(LAPACK_DOUBLE_SRC:.f=.o))) +LAPACK_DOUBLE_OBJ_FILES1 = $(addprefix $(LAPACK_OBJ_DIR)/,$(notdir $(LAPACK_DOUBLE_SRCF:.F=.o))) +LAPACK_COMPLEX_OBJ_FILES = $(addprefix $(LAPACK_OBJ_DIR)/,$(notdir $(LAPACK_COMPLEX_SRC:.f=.o))) +LAPACK_COMPLEX_OBJ_FILES1 = $(addprefix $(LAPACK_OBJ_DIR)/,$(notdir $(LAPACK_COMPLEX_SRCF:.F=.o))) + + +all: $(LAPACK_DOUBLE_LIB) $(LAPACK_COMPLEX_LIB) + + +$(LAPACK_DOUBLE_LIB): $(LAPACK_DOUBLE_OBJ_FILES) $(LAPACK_DOUBLE_OBJ_FILES1) + $(ARCH) $(ARCHFLAGS) $@ $(LAPACK_DOUBLE_OBJ_FILES) $(LAPACK_DOUBLE_OBJ_FILES1) + $(RANLIB) $@ + + +$(LAPACK_COMPLEX_LIB): $(LAPACK_COMPLEX_OBJ_FILES) $(LAPACK_COMPLEX_OBJ_FILES1) + $(ARCH) $(ARCHFLAGS) $@ $(LAPACK_COMPLEX_OBJ_FILES) $(LAPACK_COMPLEX_OBJ_FILES1) + $(RANLIB) $@ + + +$(LAPACK_OBJ_DIR)/%.o:src/%.f + $(FORTRAN) $(OPTS) -c $< -o $@ + +$(LAPACK_OBJ_DIR)/%.o:src/%.F + $(FORTRAN) $(OPTS) -c $< -o $@ + +clean: + rm -f $(LAPACK_OBJ_DIR)/*.o + rm -f $(LAPACK_DOUBLE_LIB) + rm -f $(LAPACK_COMPLEX_LIB) diff --git a/lapack/lapack_complex.cbp b/lapack/lapack_complex.cbp new file mode 100644 index 0000000..2c003c4 --- /dev/null +++ b/lapack/lapack_complex.cbp @@ -0,0 +1,1567 @@ + + + + + + diff --git a/lapack/lapack_complex.cbp.mak b/lapack/lapack_complex.cbp.mak new file mode 100644 index 0000000..ce9f528 --- /dev/null +++ b/lapack/lapack_complex.cbp.mak @@ -0,0 +1,80 @@ +#------------------------------------------------------------------------------# +# This makefile was generated by 'cbp2make' tool rev.147 # +#------------------------------------------------------------------------------# + + +WORKDIR = %cd% + +CC = gcc.exe +CXX = g++.exe +AR = ar.exe +LD = g++.exe +WINDRES = windres.exe + +INC = +CFLAGS = +RESINC = +LIBDIR = +LIB = +LDFLAGS = + +INC_DEBUG = $(INC) +CFLAGS_DEBUG = $(CFLAGS) -Wall -g +RESINC_DEBUG = $(RESINC) +RCFLAGS_DEBUG = $(RCFLAGS) +LIBDIR_DEBUG = $(LIBDIR) +LIB_DEBUG = $(LIB) +LDFLAGS_DEBUG = $(LDFLAGS) +OBJDIR_DEBUG = obj\\Debug +DEP_DEBUG = +OUT_DEBUG = bin\\Debug\\liblapack_complex.a + +INC_RELEASE = $(INC) +CFLAGS_RELEASE = $(CFLAGS) -Wall -O2 +RESINC_RELEASE = $(RESINC) +RCFLAGS_RELEASE = $(RCFLAGS) +LIBDIR_RELEASE = $(LIBDIR) +LIB_RELEASE = $(LIB) +LDFLAGS_RELEASE = $(LDFLAGS) -s +OBJDIR_RELEASE = obj\\Release +DEP_RELEASE = +OUT_RELEASE = bin\\Release\\liblapack_complex.a + +OBJ_DEBUG = + +OBJ_RELEASE = + +all: debug release + +clean: clean_debug clean_release + +before_debug: + cmd /c if not exist bin\\Debug md bin\\Debug + +after_debug: + +debug: before_debug out_debug after_debug + +out_debug: before_debug $(OBJ_DEBUG) $(DEP_DEBUG) + $(AR) rcs $(OUT_DEBUG) $(OBJ_DEBUG) + +clean_debug: + cmd /c del /f $(OBJ_DEBUG) $(OUT_DEBUG) + cmd /c rd bin\\Debug + +before_release: + cmd /c if not exist bin\\Release md bin\\Release + +after_release: + +release: before_release out_release after_release + +out_release: before_release $(OBJ_RELEASE) $(DEP_RELEASE) + $(AR) rcs $(OUT_RELEASE) $(OBJ_RELEASE) + +clean_release: + cmd /c del /f $(OBJ_RELEASE) $(OUT_RELEASE) + cmd /c rd bin\\Release + +.PHONY: before_debug after_debug clean_debug before_release after_release clean_release + diff --git a/lapack/lapack_complex.depend b/lapack/lapack_complex.depend new file mode 100644 index 0000000..c4ac310 --- /dev/null +++ b/lapack/lapack_complex.depend @@ -0,0 +1 @@ +# depslib dependency file v1.0 diff --git a/lapack/lapack_complex.inc b/lapack/lapack_complex.inc new file mode 100644 index 0000000..80ee066 --- /dev/null +++ b/lapack/lapack_complex.inc @@ -0,0 +1,3 @@ +LAPACK_COMPLEX_SRC = dlamch.f icmax1.f ieeeck.f ilaclc.f ilaclr.f iladiag.f iladlc.f iladlr.f ilaenv.f ilaenv2stage.f ilaprec.f ilaslc.f ilaslr.f ilatrans.f ilauplo.f ilazlc.f ilazlr.f iparmq.f izmax1.f zbbcsd.f zbdsqr.f zcgesv.f zcposv.f zdrscl.f zgbbrd.f zgbcon.f zgbequ.f zgbequb.f zgbrfs.f zgbrfsx.f zgbsv.f zgbsvx.f zgbsvxx.f zgbtf2.f zgbtrf.f zgbtrs.f zgebak.f zgebal.f zgebd2.f zgebrd.f zgecon.f zgeequ.f zgeequb.f zgees.f zgeesx.f zgeev.f zgeevx.f zgehd2.f zgehrd.f zgejsv.f zgelq.f zgelq2.f zgelqf.f zgelqt.f zgelqt3.f zgels.f zgelsd.f zgelss.f zgelsy.f zgemlq.f zgemlqt.f zgemqr.f zgemqrt.f zgeql2.f zgeqlf.f zgeqp3.f zgeqr.f zgeqr2.f zgeqr2p.f zgeqrf.f zgeqrfp.f zgeqrt.f zgeqrt2.f zgeqrt3.f zgerfs.f zgerfsx.f zgerq2.f zgerqf.f zgesc2.f zgesdd.f zgesv.f zgesvd.f zgesvdx.f zgesvj.f zgesvx.f zgesvxx.f zgetc2.f zgetf2.f zgetrf.f zgetrf2.f zgetri.f zgetrs.f zgetsls.f zggbak.f zggbal.f zgges.f zgges3.f zggesx.f zggev.f zggev3.f zggevx.f zggglm.f zgghd3.f zgghrd.f zgglse.f zggqrf.f zggrqf.f zggsvd3.f zggsvp3.f zgsvj0.f zgsvj1.f zgtcon.f zgtrfs.f zgtsv.f zgtsvx.f zgttrf.f zgttrs.f zgtts2.f zhb2st_kernels.f zhbev.f zhbev_2stage.f zhbevd.f zhbevd_2stage.f zhbevx.f zhbevx_2stage.f zhbgst.f zhbgv.f zhbgvd.f zhbgvx.f zhbtrd.f zhecon.f zhecon_3.f zhecon_rook.f zheequb.f zheev.f zheev_2stage.f zheevd.f zheevd_2stage.f zheevr.f zheevr_2stage.f zheevx.f zheevx_2stage.f zhegs2.f zhegst.f zhegv.f zhegv_2stage.f zhegvd.f zhegvx.f zherfs.f zherfsx.f zhesv.f zhesv_aa.f zhesv_aa_2stage.f zhesv_rk.f zhesv_rook.f zhesvx.f zhesvxx.f zheswapr.f zhetd2.f zhetf2.f zhetf2_rk.f zhetf2_rook.f zhetrd.f zhetrd_2stage.f zhetrd_he2hb.f zhetrf.f zhetrf_aa.f zhetrf_aa_2stage.f zhetrf_rk.f zhetrf_rook.f zhetri.f zhetri2.f zhetri2x.f zhetri_3.f zhetri_3x.f zhetri_rook.f zhetrs.f zhetrs2.f zhetrs_3.f zhetrs_aa.f zhetrs_aa_2stage.f zhetrs_rook.f zhfrk.f zhgeqz.f zhpcon.f zhpev.f zhpevd.f zhpevx.f zhpgst.f zhpgv.f zhpgvd.f zhpgvx.f zhprfs.f zhpsv.f zhpsvx.f zhptrd.f zhptrf.f zhptri.f zhptrs.f zhsein.f zhseqr.f zla_gbamv.f zla_gbrcond_c.f zla_gbrcond_x.f zla_gbrfsx_extended.f zla_gbrpvgrw.f zla_geamv.f zla_gercond_c.f zla_gercond_x.f zla_gerfsx_extended.f zla_gerpvgrw.f zla_heamv.f zla_hercond_c.f zla_hercond_x.f zla_herfsx_extended.f zla_herpvgrw.f zla_lin_berr.f zla_porcond_c.f zla_porcond_x.f zla_porfsx_extended.f zla_porpvgrw.f zla_syamv.f zla_syrcond_c.f zla_syrcond_x.f zla_syrfsx_extended.f zla_syrpvgrw.f zla_wwaddw.f zlabrd.f zlacgv.f zlacn2.f zlacon.f zlacp2.f zlacpy.f zlacrm.f zlacrt.f zladiv.f zlaed0.f zlaed7.f zlaed8.f zlaein.f zlaesy.f zlaev2.f zlag2c.f zlags2.f zlagtm.f zlahef.f zlahef_aa.f zlahef_rk.f zlahef_rook.f zlahqr.f zlahr2.f zlaic1.f zlals0.f zlalsa.f zlalsd.f zlamswlq.f zlamtsqr.f zlangb.f zlange.f zlangt.f zlanhb.f zlanhe.f zlanhf.f zlanhp.f zlanhs.f zlanht.f zlansb.f zlansp.f zlansy.f zlantb.f zlantp.f zlantr.f zlapll.f zlapmr.f zlapmt.f zlaqgb.f zlaqge.f zlaqhb.f zlaqhe.f zlaqhp.f zlaqp2.f zlaqps.f zlaqr0.f zlaqr1.f zlaqr2.f zlaqr3.f zlaqr4.f zlaqr5.f zlaqsb.f zlaqsp.f zlaqsy.f zlar1v.f zlar2v.f zlarcm.f zlarf.f zlarfb.f zlarfg.f zlarfgp.f zlarft.f zlarfx.f zlarfy.f zlargv.f zlarnv.f zlarrv.f zlarscl2.f zlartg.f zlartv.f zlarz.f zlarzb.f zlarzt.f zlascl.f zlascl2.f zlaset.f zlasr.f zlassq.f zlaswlq.f zlaswp.f zlasyf.f zlasyf_aa.f zlasyf_rk.f zlasyf_rook.f zlat2c.f zlatbs.f zlatdf.f zlatps.f zlatrd.f zlatrs.f zlatrz.f zlatsqr.f zlauu2.f zlauum.f zpbcon.f zpbequ.f zpbrfs.f zpbstf.f zpbsv.f zpbsvx.f zpbtf2.f zpbtrf.f zpbtrs.f zpftrf.f zpftri.f zpftrs.f zpocon.f zpoequ.f zpoequb.f zporfs.f zporfsx.f zposv.f zposvx.f zposvxx.f zpotf2.f zpotrf.f zpotrf2.f zpotri.f zpotrs.f zppcon.f zppequ.f zpprfs.f zppsv.f zppsvx.f zpptrf.f zpptri.f zpptrs.f zpstf2.f zpstrf.f zptcon.f zpteqr.f zptrfs.f zptsv.f zptsvx.f zpttrf.f zpttrs.f zptts2.f zrot.f zspcon.f zspmv.f zspr.f zsprfs.f zspsv.f zspsvx.f zsptrf.f zsptri.f zsptrs.f zstedc.f zstegr.f zstein.f zstemr.f zsteqr.f zsycon.f zsycon_3.f zsycon_rook.f zsyconv.f zsyconvf.f zsyconvf_rook.f zsyequb.f zsymv.f zsyr.f zsyrfs.f zsyrfsx.f zsysv.f zsysv_aa.f zsysv_aa_2stage.f zsysv_rk.f zsysv_rook.f zsysvx.f zsysvxx.f zsyswapr.f zsytf2.f zsytf2_rk.f zsytf2_rook.f zsytrf.f zsytrf_aa.f zsytrf_aa_2stage.f zsytrf_rk.f zsytrf_rook.f zsytri.f zsytri2.f zsytri2x.f zsytri_3.f zsytri_3x.f zsytri_rook.f zsytrs.f zsytrs2.f zsytrs_3.f zsytrs_aa.f zsytrs_aa_2stage.f zsytrs_rook.f ztbcon.f ztbrfs.f ztbtrs.f ztfsm.f ztftri.f ztfttp.f ztfttr.f ztgevc.f ztgex2.f ztgexc.f ztgsen.f ztgsja.f ztgsna.f ztgsy2.f ztgsyl.f ztpcon.f ztplqt.f ztplqt2.f ztpmlqt.f ztpmqrt.f ztpqrt.f ztpqrt2.f ztprfb.f ztprfs.f ztptri.f ztptrs.f ztpttf.f ztpttr.f ztrcon.f ztrevc.f ztrevc3.f ztrexc.f ztrrfs.f ztrsen.f ztrsna.f ztrsyl.f ztrti2.f ztrtri.f ztrtrs.f ztrttf.f ztrttp.f ztzrzf.f zunbdb.f zunbdb1.f zunbdb2.f zunbdb3.f zunbdb4.f zunbdb5.f zunbdb6.f zuncsd.f zuncsd2by1.f zung2l.f zung2r.f zungbr.f zunghr.f zungl2.f zunglq.f zungql.f zungqr.f zungr2.f zungrq.f zungtr.f zunm22.f zunm2l.f zunm2r.f zunmbr.f zunmhr.f zunml2.f zunmlq.f zunmql.f zunmqr.f zunmr2.f zunmr3.f zunmrq.f zunmrz.f zunmtr.f zupgtr.f zupmtr.f + +LAPACK_COMPLEX_SRCF = iparam2stage.F zhetrd_hb2st.F \ No newline at end of file diff --git a/lapack/lapack_complex.layout b/lapack/lapack_complex.layout new file mode 100644 index 0000000..3ef35d8 --- /dev/null +++ b/lapack/lapack_complex.layout @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/lapack/lapack_double.cbp b/lapack/lapack_double.cbp new file mode 100644 index 0000000..51dd231 --- /dev/null +++ b/lapack/lapack_double.cbp @@ -0,0 +1,1561 @@ + + + + + + diff --git a/lapack/lapack_double.depend b/lapack/lapack_double.depend new file mode 100644 index 0000000..c4ac310 --- /dev/null +++ b/lapack/lapack_double.depend @@ -0,0 +1 @@ +# depslib dependency file v1.0 diff --git a/lapack/lapack_double.inc b/lapack/lapack_double.inc new file mode 100644 index 0000000..4cbd462 --- /dev/null +++ b/lapack/lapack_double.inc @@ -0,0 +1,92 @@ +LAPACK_DOUBLE_SRC = dbbcsd.f dbdsdc.f dbdsqr.f dbdsvdx.f ddisna.f dgbbrd.f\ + dgbcon.f dgbequ.f dgbequb.f dgbrfs.f dgbrfsx.f dgbsv.f\ + dgbsvx.f dgbsvxx.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 dgehd2.f dgehrd.f\ + dgejsv.f dgelq.f dgelq2.f dgelqf.f dgelqt.f dgelqt3.f\ + dgels.f dgelsd.f dgelss.f dgelsy.f dgemlq.f dgemlqt.f\ + dgemqr.f dgemqrt.f dgeql2.f dgeqlf.f dgeqp3.f dgeqr.f\ + dgeqr2.f dgeqr2p.f dgeqrf.f dgeqrfp.f dgeqrt.f dgeqrt2.f\ + dgeqrt3.f dgerfs.f dgerfsx.f dgerq2.f dgerqf.f dgesc2.f\ + dgesdd.f dgesv.f dgesvd.f dgesvdx.f dgesvj.f dgesvx.f\ + dgesvxx.f dgetc2.f dgetf2.f dgetrf.f dgetrf2.f dgetri.f\ + dgetrs.f dgetsls.f dggbak.f dggbal.f dgges.f dgges3.f\ + dggesx.f dggev.f dggev3.f dggevx.f dggglm.f dgghd3.f\ + dgghrd.f dgglse.f dggqrf.f dggrqf.f dggsvd3.f dggsvp3.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_gbrfsx_extended.f\ + dla_gbrpvgrw.f dla_geamv.f dla_gercond.f dla_gerfsx_extended.f\ + dla_gerpvgrw.f dla_lin_berr.f dla_porcond.f dla_porfsx_extended.f\ + dla_porpvgrw.f dla_syamv.f dla_syrcond.f dla_syrfsx_extended.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 dlags2.f dlagtf.f dlagtm.f dlagts.f\ + dlagv2.f dlahqr.f dlahr2.f dlaic1.f dlaisnan.f dlaln2.f\ + dlals0.f dlalsa.f dlalsd.f dlamch.f dlamrg.f dlamswlq.f\ + dlamtsqr.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\ + dlarf.f dlarfb.f dlarfg.f dlarfgp.f dlarft.f dlarfx.f\ + dlarfy.f dlargv.f dlarnv.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 dlaswlq.f\ + dlaswp.f dlasy2.f dlasyf.f dlasyf_aa.f dlasyf_rk.f\ + dlasyf_rook.f dlat2s.f dlatbs.f dlatdf.f dlatps.f dlatrd.f\ + dlatrs.f dlatrz.f dlatsqr.f dlauu2.f dlauum.f dopgtr.f\ + dopmtr.f dorbdb.f dorbdb1.f dorbdb2.f dorbdb3.f dorbdb4.f\ + dorbdb5.f dorbdb6.f dorcsd.f dorcsd2by1.f dorg2l.f\ + dorg2r.f dorgbr.f dorghr.f dorgl2.f dorglq.f dorgql.f\ + dorgqr.f dorgr2.f dorgrq.f dorgtr.f dorm22.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 dporfsx.f dposv.f\ + dposvx.f dposvxx.f dpotf2.f dpotrf.f dpotrf2.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 dsb2st_kernels.f dsbev.f dsbev_2stage.f\ + dsbevd.f dsbevd_2stage.f dsbevx.f dsbevx_2stage.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 dsycon_3.f\ + dsycon_rook.f dsyconv.f dsyconvf.f dsyconvf_rook.f\ + dsyequb.f dsyev.f dsyev_2stage.f dsyevd.f dsyevd_2stage.f\ + dsyevr.f dsyevr_2stage.f dsyevx.f dsyevx_2stage.f dsygs2.f\ + dsygst.f dsygv.f dsygv_2stage.f dsygvd.f dsygvx.f dsyrfs.f\ + dsyrfsx.f dsysv.f dsysv_aa.f dsysv_aa_2stage.f dsysv_rk.f\ + dsysv_rook.f dsysvx.f dsysvxx.f dsyswapr.f dsytd2.f\ + dsytf2.f dsytf2_rk.f dsytf2_rook.f dsytrd.f dsytrd_2stage.f\ + dsytrf.f dsytrf_aa.f\ + dsytrf_aa_2stage.f dsytrf_rk.f dsytrf_rook.f dsytri.f\ + dsytri2.f dsytri2x.f dsytri_3.f dsytri_3x.f dsytri_rook.f\ + dsytrs.f dsytrs2.f dsytrs_3.f dsytrs_aa.f dsytrs_aa_2stage.f\ + dsytrs_rook.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 dtplqt.f\ + dtplqt2.f dtpmlqt.f dtpmqrt.f dtpqrt.f dtpqrt2.f dtprfb.f\ + dtprfs.f dtptri.f dtptrs.f dtpttf.f dtpttr.f dtrcon.f\ + dtrevc.f dtrevc3.f dtrexc.f dtrrfs.f dtrsen.f dtrsna.f\ + dtrsyl.f dtrti2.f dtrtri.f dtrtrs.f dtrttf.f dtrttp.f\ + dtzrzf.f dzsum1.f icmax1.f ieeeck.f ilaclc.f ilaclr.f\ + iladiag.f iladlc.f iladlr.f ilaenv.f ilaenv2stage.f\ + ilaprec.f ilaslc.f ilaslr.f ilatrans.f ilauplo.f ilazlc.f\ + ilazlr.f iparmq.f izmax1.f + + +LAPACK_DOUBLE_SRCF = iparam2stage.F dsytrd_sb2st.F dsytrd_sy2sb.F \ No newline at end of file diff --git a/lapack/lapack_double.layout b/lapack/lapack_double.layout new file mode 100644 index 0000000..593c06e --- /dev/null +++ b/lapack/lapack_double.layout @@ -0,0 +1,5 @@ + + + + + diff --git a/dspl/libblas/.gitignore b/lapack/src/.gitignore similarity index 100% rename from dspl/libblas/.gitignore rename to lapack/src/.gitignore diff --git a/dspl/liblapack/SRC/Makefile b/lapack/src/Makefile similarity index 100% rename from dspl/liblapack/SRC/Makefile rename to lapack/src/Makefile diff --git a/dspl/liblapack/SRC/cbbcsd.f b/lapack/src/cbbcsd.f similarity index 100% rename from dspl/liblapack/SRC/cbbcsd.f rename to lapack/src/cbbcsd.f diff --git a/dspl/liblapack/SRC/cbdsqr.f b/lapack/src/cbdsqr.f similarity index 100% rename from dspl/liblapack/SRC/cbdsqr.f rename to lapack/src/cbdsqr.f diff --git a/dspl/liblapack/SRC/cgbbrd.f b/lapack/src/cgbbrd.f similarity index 100% rename from dspl/liblapack/SRC/cgbbrd.f rename to lapack/src/cgbbrd.f diff --git a/dspl/liblapack/SRC/cgbcon.f b/lapack/src/cgbcon.f similarity index 100% rename from dspl/liblapack/SRC/cgbcon.f rename to lapack/src/cgbcon.f diff --git a/dspl/liblapack/SRC/cgbequ.f b/lapack/src/cgbequ.f similarity index 100% rename from dspl/liblapack/SRC/cgbequ.f rename to lapack/src/cgbequ.f diff --git a/dspl/liblapack/SRC/cgbequb.f b/lapack/src/cgbequb.f similarity index 100% rename from dspl/liblapack/SRC/cgbequb.f rename to lapack/src/cgbequb.f diff --git a/dspl/liblapack/SRC/cgbrfs.f b/lapack/src/cgbrfs.f similarity index 100% rename from dspl/liblapack/SRC/cgbrfs.f rename to lapack/src/cgbrfs.f diff --git a/dspl/liblapack/SRC/cgbrfsx.f b/lapack/src/cgbrfsx.f similarity index 100% rename from dspl/liblapack/SRC/cgbrfsx.f rename to lapack/src/cgbrfsx.f diff --git a/dspl/liblapack/SRC/cgbsv.f b/lapack/src/cgbsv.f similarity index 100% rename from dspl/liblapack/SRC/cgbsv.f rename to lapack/src/cgbsv.f diff --git a/dspl/liblapack/SRC/cgbsvx.f b/lapack/src/cgbsvx.f similarity index 100% rename from dspl/liblapack/SRC/cgbsvx.f rename to lapack/src/cgbsvx.f diff --git a/dspl/liblapack/SRC/cgbsvxx.f b/lapack/src/cgbsvxx.f similarity index 100% rename from dspl/liblapack/SRC/cgbsvxx.f rename to lapack/src/cgbsvxx.f diff --git a/dspl/liblapack/SRC/cgbtf2.f b/lapack/src/cgbtf2.f similarity index 100% rename from dspl/liblapack/SRC/cgbtf2.f rename to lapack/src/cgbtf2.f diff --git a/dspl/liblapack/SRC/cgbtrf.f b/lapack/src/cgbtrf.f similarity index 100% rename from dspl/liblapack/SRC/cgbtrf.f rename to lapack/src/cgbtrf.f diff --git a/dspl/liblapack/SRC/cgbtrs.f b/lapack/src/cgbtrs.f similarity index 100% rename from dspl/liblapack/SRC/cgbtrs.f rename to lapack/src/cgbtrs.f diff --git a/dspl/liblapack/SRC/cgebak.f b/lapack/src/cgebak.f similarity index 100% rename from dspl/liblapack/SRC/cgebak.f rename to lapack/src/cgebak.f diff --git a/dspl/liblapack/SRC/cgebal.f b/lapack/src/cgebal.f similarity index 100% rename from dspl/liblapack/SRC/cgebal.f rename to lapack/src/cgebal.f diff --git a/dspl/liblapack/SRC/cgebd2.f b/lapack/src/cgebd2.f similarity index 100% rename from dspl/liblapack/SRC/cgebd2.f rename to lapack/src/cgebd2.f diff --git a/dspl/liblapack/SRC/cgebrd.f b/lapack/src/cgebrd.f similarity index 100% rename from dspl/liblapack/SRC/cgebrd.f rename to lapack/src/cgebrd.f diff --git a/dspl/liblapack/SRC/cgecon.f b/lapack/src/cgecon.f similarity index 100% rename from dspl/liblapack/SRC/cgecon.f rename to lapack/src/cgecon.f diff --git a/dspl/liblapack/SRC/cgeequ.f b/lapack/src/cgeequ.f similarity index 100% rename from dspl/liblapack/SRC/cgeequ.f rename to lapack/src/cgeequ.f diff --git a/dspl/liblapack/SRC/cgeequb.f b/lapack/src/cgeequb.f similarity index 100% rename from dspl/liblapack/SRC/cgeequb.f rename to lapack/src/cgeequb.f diff --git a/dspl/liblapack/SRC/cgees.f b/lapack/src/cgees.f similarity index 100% rename from dspl/liblapack/SRC/cgees.f rename to lapack/src/cgees.f diff --git a/dspl/liblapack/SRC/cgeesx.f b/lapack/src/cgeesx.f similarity index 100% rename from dspl/liblapack/SRC/cgeesx.f rename to lapack/src/cgeesx.f diff --git a/dspl/liblapack/SRC/cgeev.f b/lapack/src/cgeev.f similarity index 100% rename from dspl/liblapack/SRC/cgeev.f rename to lapack/src/cgeev.f diff --git a/dspl/liblapack/SRC/cgeevx.f b/lapack/src/cgeevx.f similarity index 100% rename from dspl/liblapack/SRC/cgeevx.f rename to lapack/src/cgeevx.f diff --git a/dspl/liblapack/SRC/cgehd2.f b/lapack/src/cgehd2.f similarity index 100% rename from dspl/liblapack/SRC/cgehd2.f rename to lapack/src/cgehd2.f diff --git a/dspl/liblapack/SRC/cgehrd.f b/lapack/src/cgehrd.f similarity index 100% rename from dspl/liblapack/SRC/cgehrd.f rename to lapack/src/cgehrd.f diff --git a/dspl/liblapack/SRC/cgejsv.f b/lapack/src/cgejsv.f similarity index 100% rename from dspl/liblapack/SRC/cgejsv.f rename to lapack/src/cgejsv.f diff --git a/dspl/liblapack/SRC/cgelq.f b/lapack/src/cgelq.f similarity index 100% rename from dspl/liblapack/SRC/cgelq.f rename to lapack/src/cgelq.f diff --git a/dspl/liblapack/SRC/cgelq2.f b/lapack/src/cgelq2.f similarity index 100% rename from dspl/liblapack/SRC/cgelq2.f rename to lapack/src/cgelq2.f diff --git a/dspl/liblapack/SRC/cgelqf.f b/lapack/src/cgelqf.f similarity index 100% rename from dspl/liblapack/SRC/cgelqf.f rename to lapack/src/cgelqf.f diff --git a/dspl/liblapack/SRC/cgelqt.f b/lapack/src/cgelqt.f similarity index 100% rename from dspl/liblapack/SRC/cgelqt.f rename to lapack/src/cgelqt.f diff --git a/dspl/liblapack/SRC/cgelqt3.f b/lapack/src/cgelqt3.f similarity index 100% rename from dspl/liblapack/SRC/cgelqt3.f rename to lapack/src/cgelqt3.f diff --git a/dspl/liblapack/SRC/cgels.f b/lapack/src/cgels.f similarity index 100% rename from dspl/liblapack/SRC/cgels.f rename to lapack/src/cgels.f diff --git a/dspl/liblapack/SRC/cgelsd.f b/lapack/src/cgelsd.f similarity index 100% rename from dspl/liblapack/SRC/cgelsd.f rename to lapack/src/cgelsd.f diff --git a/dspl/liblapack/SRC/cgelss.f b/lapack/src/cgelss.f similarity index 100% rename from dspl/liblapack/SRC/cgelss.f rename to lapack/src/cgelss.f diff --git a/dspl/liblapack/SRC/cgelsy.f b/lapack/src/cgelsy.f similarity index 100% rename from dspl/liblapack/SRC/cgelsy.f rename to lapack/src/cgelsy.f diff --git a/dspl/liblapack/SRC/cgemlq.f b/lapack/src/cgemlq.f similarity index 100% rename from dspl/liblapack/SRC/cgemlq.f rename to lapack/src/cgemlq.f diff --git a/dspl/liblapack/SRC/cgemlqt.f b/lapack/src/cgemlqt.f similarity index 100% rename from dspl/liblapack/SRC/cgemlqt.f rename to lapack/src/cgemlqt.f diff --git a/dspl/liblapack/SRC/cgemqr.f b/lapack/src/cgemqr.f similarity index 100% rename from dspl/liblapack/SRC/cgemqr.f rename to lapack/src/cgemqr.f diff --git a/dspl/liblapack/SRC/cgemqrt.f b/lapack/src/cgemqrt.f similarity index 100% rename from dspl/liblapack/SRC/cgemqrt.f rename to lapack/src/cgemqrt.f diff --git a/dspl/liblapack/SRC/cgeql2.f b/lapack/src/cgeql2.f similarity index 100% rename from dspl/liblapack/SRC/cgeql2.f rename to lapack/src/cgeql2.f diff --git a/dspl/liblapack/SRC/cgeqlf.f b/lapack/src/cgeqlf.f similarity index 100% rename from dspl/liblapack/SRC/cgeqlf.f rename to lapack/src/cgeqlf.f diff --git a/dspl/liblapack/SRC/cgeqp3.f b/lapack/src/cgeqp3.f similarity index 100% rename from dspl/liblapack/SRC/cgeqp3.f rename to lapack/src/cgeqp3.f diff --git a/dspl/liblapack/SRC/cgeqr.f b/lapack/src/cgeqr.f similarity index 100% rename from dspl/liblapack/SRC/cgeqr.f rename to lapack/src/cgeqr.f diff --git a/dspl/liblapack/SRC/cgeqr2.f b/lapack/src/cgeqr2.f similarity index 100% rename from dspl/liblapack/SRC/cgeqr2.f rename to lapack/src/cgeqr2.f diff --git a/dspl/liblapack/SRC/cgeqr2p.f b/lapack/src/cgeqr2p.f similarity index 100% rename from dspl/liblapack/SRC/cgeqr2p.f rename to lapack/src/cgeqr2p.f diff --git a/dspl/liblapack/SRC/cgeqrf.f b/lapack/src/cgeqrf.f similarity index 100% rename from dspl/liblapack/SRC/cgeqrf.f rename to lapack/src/cgeqrf.f diff --git a/dspl/liblapack/SRC/cgeqrfp.f b/lapack/src/cgeqrfp.f similarity index 100% rename from dspl/liblapack/SRC/cgeqrfp.f rename to lapack/src/cgeqrfp.f diff --git a/dspl/liblapack/SRC/cgeqrt.f b/lapack/src/cgeqrt.f similarity index 100% rename from dspl/liblapack/SRC/cgeqrt.f rename to lapack/src/cgeqrt.f diff --git a/dspl/liblapack/SRC/cgeqrt2.f b/lapack/src/cgeqrt2.f similarity index 100% rename from dspl/liblapack/SRC/cgeqrt2.f rename to lapack/src/cgeqrt2.f diff --git a/dspl/liblapack/SRC/cgeqrt3.f b/lapack/src/cgeqrt3.f similarity index 100% rename from dspl/liblapack/SRC/cgeqrt3.f rename to lapack/src/cgeqrt3.f diff --git a/dspl/liblapack/SRC/cgerfs.f b/lapack/src/cgerfs.f similarity index 100% rename from dspl/liblapack/SRC/cgerfs.f rename to lapack/src/cgerfs.f diff --git a/dspl/liblapack/SRC/cgerfsx.f b/lapack/src/cgerfsx.f similarity index 100% rename from dspl/liblapack/SRC/cgerfsx.f rename to lapack/src/cgerfsx.f diff --git a/dspl/liblapack/SRC/cgerq2.f b/lapack/src/cgerq2.f similarity index 100% rename from dspl/liblapack/SRC/cgerq2.f rename to lapack/src/cgerq2.f diff --git a/dspl/liblapack/SRC/cgerqf.f b/lapack/src/cgerqf.f similarity index 100% rename from dspl/liblapack/SRC/cgerqf.f rename to lapack/src/cgerqf.f diff --git a/dspl/liblapack/SRC/cgesc2.f b/lapack/src/cgesc2.f similarity index 100% rename from dspl/liblapack/SRC/cgesc2.f rename to lapack/src/cgesc2.f diff --git a/dspl/liblapack/SRC/cgesdd.f b/lapack/src/cgesdd.f similarity index 100% rename from dspl/liblapack/SRC/cgesdd.f rename to lapack/src/cgesdd.f diff --git a/dspl/liblapack/SRC/cgesv.f b/lapack/src/cgesv.f similarity index 100% rename from dspl/liblapack/SRC/cgesv.f rename to lapack/src/cgesv.f diff --git a/dspl/liblapack/SRC/cgesvd.f b/lapack/src/cgesvd.f similarity index 100% rename from dspl/liblapack/SRC/cgesvd.f rename to lapack/src/cgesvd.f diff --git a/dspl/liblapack/SRC/cgesvdx.f b/lapack/src/cgesvdx.f similarity index 100% rename from dspl/liblapack/SRC/cgesvdx.f rename to lapack/src/cgesvdx.f diff --git a/dspl/liblapack/SRC/cgesvj.f b/lapack/src/cgesvj.f similarity index 100% rename from dspl/liblapack/SRC/cgesvj.f rename to lapack/src/cgesvj.f diff --git a/dspl/liblapack/SRC/cgesvx.f b/lapack/src/cgesvx.f similarity index 100% rename from dspl/liblapack/SRC/cgesvx.f rename to lapack/src/cgesvx.f diff --git a/dspl/liblapack/SRC/cgesvxx.f b/lapack/src/cgesvxx.f similarity index 100% rename from dspl/liblapack/SRC/cgesvxx.f rename to lapack/src/cgesvxx.f diff --git a/dspl/liblapack/SRC/cgetc2.f b/lapack/src/cgetc2.f similarity index 100% rename from dspl/liblapack/SRC/cgetc2.f rename to lapack/src/cgetc2.f diff --git a/dspl/liblapack/SRC/cgetf2.f b/lapack/src/cgetf2.f similarity index 100% rename from dspl/liblapack/SRC/cgetf2.f rename to lapack/src/cgetf2.f diff --git a/dspl/liblapack/SRC/cgetrf.f b/lapack/src/cgetrf.f similarity index 100% rename from dspl/liblapack/SRC/cgetrf.f rename to lapack/src/cgetrf.f diff --git a/dspl/liblapack/SRC/cgetrf2.f b/lapack/src/cgetrf2.f similarity index 100% rename from dspl/liblapack/SRC/cgetrf2.f rename to lapack/src/cgetrf2.f diff --git a/dspl/liblapack/SRC/cgetri.f b/lapack/src/cgetri.f similarity index 100% rename from dspl/liblapack/SRC/cgetri.f rename to lapack/src/cgetri.f diff --git a/dspl/liblapack/SRC/cgetrs.f b/lapack/src/cgetrs.f similarity index 100% rename from dspl/liblapack/SRC/cgetrs.f rename to lapack/src/cgetrs.f diff --git a/dspl/liblapack/SRC/cgetsls.f b/lapack/src/cgetsls.f similarity index 100% rename from dspl/liblapack/SRC/cgetsls.f rename to lapack/src/cgetsls.f diff --git a/dspl/liblapack/SRC/cggbak.f b/lapack/src/cggbak.f similarity index 100% rename from dspl/liblapack/SRC/cggbak.f rename to lapack/src/cggbak.f diff --git a/dspl/liblapack/SRC/cggbal.f b/lapack/src/cggbal.f similarity index 100% rename from dspl/liblapack/SRC/cggbal.f rename to lapack/src/cggbal.f diff --git a/dspl/liblapack/SRC/cgges.f b/lapack/src/cgges.f similarity index 100% rename from dspl/liblapack/SRC/cgges.f rename to lapack/src/cgges.f diff --git a/dspl/liblapack/SRC/cgges3.f b/lapack/src/cgges3.f similarity index 100% rename from dspl/liblapack/SRC/cgges3.f rename to lapack/src/cgges3.f diff --git a/dspl/liblapack/SRC/cggesx.f b/lapack/src/cggesx.f similarity index 100% rename from dspl/liblapack/SRC/cggesx.f rename to lapack/src/cggesx.f diff --git a/dspl/liblapack/SRC/cggev.f b/lapack/src/cggev.f similarity index 100% rename from dspl/liblapack/SRC/cggev.f rename to lapack/src/cggev.f diff --git a/dspl/liblapack/SRC/cggev3.f b/lapack/src/cggev3.f similarity index 100% rename from dspl/liblapack/SRC/cggev3.f rename to lapack/src/cggev3.f diff --git a/dspl/liblapack/SRC/cggevx.f b/lapack/src/cggevx.f similarity index 100% rename from dspl/liblapack/SRC/cggevx.f rename to lapack/src/cggevx.f diff --git a/dspl/liblapack/SRC/cggglm.f b/lapack/src/cggglm.f similarity index 100% rename from dspl/liblapack/SRC/cggglm.f rename to lapack/src/cggglm.f diff --git a/dspl/liblapack/SRC/cgghd3.f b/lapack/src/cgghd3.f similarity index 100% rename from dspl/liblapack/SRC/cgghd3.f rename to lapack/src/cgghd3.f diff --git a/dspl/liblapack/SRC/cgghrd.f b/lapack/src/cgghrd.f similarity index 100% rename from dspl/liblapack/SRC/cgghrd.f rename to lapack/src/cgghrd.f diff --git a/dspl/liblapack/SRC/cgglse.f b/lapack/src/cgglse.f similarity index 100% rename from dspl/liblapack/SRC/cgglse.f rename to lapack/src/cgglse.f diff --git a/dspl/liblapack/SRC/cggqrf.f b/lapack/src/cggqrf.f similarity index 100% rename from dspl/liblapack/SRC/cggqrf.f rename to lapack/src/cggqrf.f diff --git a/dspl/liblapack/SRC/cggrqf.f b/lapack/src/cggrqf.f similarity index 100% rename from dspl/liblapack/SRC/cggrqf.f rename to lapack/src/cggrqf.f diff --git a/dspl/liblapack/SRC/cggsvd3.f b/lapack/src/cggsvd3.f similarity index 100% rename from dspl/liblapack/SRC/cggsvd3.f rename to lapack/src/cggsvd3.f diff --git a/dspl/liblapack/SRC/cggsvp3.f b/lapack/src/cggsvp3.f similarity index 100% rename from dspl/liblapack/SRC/cggsvp3.f rename to lapack/src/cggsvp3.f diff --git a/dspl/liblapack/SRC/cgsvj0.f b/lapack/src/cgsvj0.f similarity index 100% rename from dspl/liblapack/SRC/cgsvj0.f rename to lapack/src/cgsvj0.f diff --git a/dspl/liblapack/SRC/cgsvj1.f b/lapack/src/cgsvj1.f similarity index 100% rename from dspl/liblapack/SRC/cgsvj1.f rename to lapack/src/cgsvj1.f diff --git a/dspl/liblapack/SRC/cgtcon.f b/lapack/src/cgtcon.f similarity index 100% rename from dspl/liblapack/SRC/cgtcon.f rename to lapack/src/cgtcon.f diff --git a/dspl/liblapack/SRC/cgtrfs.f b/lapack/src/cgtrfs.f similarity index 100% rename from dspl/liblapack/SRC/cgtrfs.f rename to lapack/src/cgtrfs.f diff --git a/dspl/liblapack/SRC/cgtsv.f b/lapack/src/cgtsv.f similarity index 100% rename from dspl/liblapack/SRC/cgtsv.f rename to lapack/src/cgtsv.f diff --git a/dspl/liblapack/SRC/cgtsvx.f b/lapack/src/cgtsvx.f similarity index 100% rename from dspl/liblapack/SRC/cgtsvx.f rename to lapack/src/cgtsvx.f diff --git a/dspl/liblapack/SRC/cgttrf.f b/lapack/src/cgttrf.f similarity index 100% rename from dspl/liblapack/SRC/cgttrf.f rename to lapack/src/cgttrf.f diff --git a/dspl/liblapack/SRC/cgttrs.f b/lapack/src/cgttrs.f similarity index 100% rename from dspl/liblapack/SRC/cgttrs.f rename to lapack/src/cgttrs.f diff --git a/dspl/liblapack/SRC/cgtts2.f b/lapack/src/cgtts2.f similarity index 100% rename from dspl/liblapack/SRC/cgtts2.f rename to lapack/src/cgtts2.f diff --git a/dspl/liblapack/SRC/chb2st_kernels.f b/lapack/src/chb2st_kernels.f similarity index 100% rename from dspl/liblapack/SRC/chb2st_kernels.f rename to lapack/src/chb2st_kernels.f diff --git a/dspl/liblapack/SRC/chbev.f b/lapack/src/chbev.f similarity index 100% rename from dspl/liblapack/SRC/chbev.f rename to lapack/src/chbev.f diff --git a/dspl/liblapack/SRC/chbev_2stage.f b/lapack/src/chbev_2stage.f similarity index 100% rename from dspl/liblapack/SRC/chbev_2stage.f rename to lapack/src/chbev_2stage.f diff --git a/dspl/liblapack/SRC/chbevd.f b/lapack/src/chbevd.f similarity index 100% rename from dspl/liblapack/SRC/chbevd.f rename to lapack/src/chbevd.f diff --git a/dspl/liblapack/SRC/chbevd_2stage.f b/lapack/src/chbevd_2stage.f similarity index 100% rename from dspl/liblapack/SRC/chbevd_2stage.f rename to lapack/src/chbevd_2stage.f diff --git a/dspl/liblapack/SRC/chbevx.f b/lapack/src/chbevx.f similarity index 100% rename from dspl/liblapack/SRC/chbevx.f rename to lapack/src/chbevx.f diff --git a/dspl/liblapack/SRC/chbevx_2stage.f b/lapack/src/chbevx_2stage.f similarity index 100% rename from dspl/liblapack/SRC/chbevx_2stage.f rename to lapack/src/chbevx_2stage.f diff --git a/dspl/liblapack/SRC/chbgst.f b/lapack/src/chbgst.f similarity index 100% rename from dspl/liblapack/SRC/chbgst.f rename to lapack/src/chbgst.f diff --git a/dspl/liblapack/SRC/chbgv.f b/lapack/src/chbgv.f similarity index 100% rename from dspl/liblapack/SRC/chbgv.f rename to lapack/src/chbgv.f diff --git a/dspl/liblapack/SRC/chbgvd.f b/lapack/src/chbgvd.f similarity index 100% rename from dspl/liblapack/SRC/chbgvd.f rename to lapack/src/chbgvd.f diff --git a/dspl/liblapack/SRC/chbgvx.f b/lapack/src/chbgvx.f similarity index 100% rename from dspl/liblapack/SRC/chbgvx.f rename to lapack/src/chbgvx.f diff --git a/dspl/liblapack/SRC/chbtrd.f b/lapack/src/chbtrd.f similarity index 100% rename from dspl/liblapack/SRC/chbtrd.f rename to lapack/src/chbtrd.f diff --git a/dspl/liblapack/SRC/checon.f b/lapack/src/checon.f similarity index 100% rename from dspl/liblapack/SRC/checon.f rename to lapack/src/checon.f diff --git a/dspl/liblapack/SRC/checon_3.f b/lapack/src/checon_3.f similarity index 100% rename from dspl/liblapack/SRC/checon_3.f rename to lapack/src/checon_3.f diff --git a/dspl/liblapack/SRC/checon_rook.f b/lapack/src/checon_rook.f similarity index 100% rename from dspl/liblapack/SRC/checon_rook.f rename to lapack/src/checon_rook.f diff --git a/dspl/liblapack/SRC/cheequb.f b/lapack/src/cheequb.f similarity index 100% rename from dspl/liblapack/SRC/cheequb.f rename to lapack/src/cheequb.f diff --git a/dspl/liblapack/SRC/cheev.f b/lapack/src/cheev.f similarity index 100% rename from dspl/liblapack/SRC/cheev.f rename to lapack/src/cheev.f diff --git a/dspl/liblapack/SRC/cheev_2stage.f b/lapack/src/cheev_2stage.f similarity index 100% rename from dspl/liblapack/SRC/cheev_2stage.f rename to lapack/src/cheev_2stage.f diff --git a/dspl/liblapack/SRC/cheevd.f b/lapack/src/cheevd.f similarity index 100% rename from dspl/liblapack/SRC/cheevd.f rename to lapack/src/cheevd.f diff --git a/dspl/liblapack/SRC/cheevd_2stage.f b/lapack/src/cheevd_2stage.f similarity index 100% rename from dspl/liblapack/SRC/cheevd_2stage.f rename to lapack/src/cheevd_2stage.f diff --git a/dspl/liblapack/SRC/cheevr.f b/lapack/src/cheevr.f similarity index 100% rename from dspl/liblapack/SRC/cheevr.f rename to lapack/src/cheevr.f diff --git a/dspl/liblapack/SRC/cheevr_2stage.f b/lapack/src/cheevr_2stage.f similarity index 100% rename from dspl/liblapack/SRC/cheevr_2stage.f rename to lapack/src/cheevr_2stage.f diff --git a/dspl/liblapack/SRC/cheevx.f b/lapack/src/cheevx.f similarity index 100% rename from dspl/liblapack/SRC/cheevx.f rename to lapack/src/cheevx.f diff --git a/dspl/liblapack/SRC/cheevx_2stage.f b/lapack/src/cheevx_2stage.f similarity index 100% rename from dspl/liblapack/SRC/cheevx_2stage.f rename to lapack/src/cheevx_2stage.f diff --git a/dspl/liblapack/SRC/chegs2.f b/lapack/src/chegs2.f similarity index 100% rename from dspl/liblapack/SRC/chegs2.f rename to lapack/src/chegs2.f diff --git a/dspl/liblapack/SRC/chegst.f b/lapack/src/chegst.f similarity index 100% rename from dspl/liblapack/SRC/chegst.f rename to lapack/src/chegst.f diff --git a/dspl/liblapack/SRC/chegv.f b/lapack/src/chegv.f similarity index 100% rename from dspl/liblapack/SRC/chegv.f rename to lapack/src/chegv.f diff --git a/dspl/liblapack/SRC/chegv_2stage.f b/lapack/src/chegv_2stage.f similarity index 100% rename from dspl/liblapack/SRC/chegv_2stage.f rename to lapack/src/chegv_2stage.f diff --git a/dspl/liblapack/SRC/chegvd.f b/lapack/src/chegvd.f similarity index 100% rename from dspl/liblapack/SRC/chegvd.f rename to lapack/src/chegvd.f diff --git a/dspl/liblapack/SRC/chegvx.f b/lapack/src/chegvx.f similarity index 100% rename from dspl/liblapack/SRC/chegvx.f rename to lapack/src/chegvx.f diff --git a/dspl/liblapack/SRC/cherfs.f b/lapack/src/cherfs.f similarity index 100% rename from dspl/liblapack/SRC/cherfs.f rename to lapack/src/cherfs.f diff --git a/dspl/liblapack/SRC/cherfsx.f b/lapack/src/cherfsx.f similarity index 100% rename from dspl/liblapack/SRC/cherfsx.f rename to lapack/src/cherfsx.f diff --git a/dspl/liblapack/SRC/chesv.f b/lapack/src/chesv.f similarity index 100% rename from dspl/liblapack/SRC/chesv.f rename to lapack/src/chesv.f diff --git a/dspl/liblapack/SRC/chesv_aa.f b/lapack/src/chesv_aa.f similarity index 100% rename from dspl/liblapack/SRC/chesv_aa.f rename to lapack/src/chesv_aa.f diff --git a/dspl/liblapack/SRC/chesv_aa_2stage.f b/lapack/src/chesv_aa_2stage.f similarity index 100% rename from dspl/liblapack/SRC/chesv_aa_2stage.f rename to lapack/src/chesv_aa_2stage.f diff --git a/dspl/liblapack/SRC/chesv_rk.f b/lapack/src/chesv_rk.f similarity index 100% rename from dspl/liblapack/SRC/chesv_rk.f rename to lapack/src/chesv_rk.f diff --git a/dspl/liblapack/SRC/chesv_rook.f b/lapack/src/chesv_rook.f similarity index 100% rename from dspl/liblapack/SRC/chesv_rook.f rename to lapack/src/chesv_rook.f diff --git a/dspl/liblapack/SRC/chesvx.f b/lapack/src/chesvx.f similarity index 100% rename from dspl/liblapack/SRC/chesvx.f rename to lapack/src/chesvx.f diff --git a/dspl/liblapack/SRC/chesvxx.f b/lapack/src/chesvxx.f similarity index 100% rename from dspl/liblapack/SRC/chesvxx.f rename to lapack/src/chesvxx.f diff --git a/dspl/liblapack/SRC/cheswapr.f b/lapack/src/cheswapr.f similarity index 100% rename from dspl/liblapack/SRC/cheswapr.f rename to lapack/src/cheswapr.f diff --git a/dspl/liblapack/SRC/chetd2.f b/lapack/src/chetd2.f similarity index 100% rename from dspl/liblapack/SRC/chetd2.f rename to lapack/src/chetd2.f diff --git a/dspl/liblapack/SRC/chetf2.f b/lapack/src/chetf2.f similarity index 100% rename from dspl/liblapack/SRC/chetf2.f rename to lapack/src/chetf2.f diff --git a/dspl/liblapack/SRC/chetf2_rk.f b/lapack/src/chetf2_rk.f similarity index 100% rename from dspl/liblapack/SRC/chetf2_rk.f rename to lapack/src/chetf2_rk.f diff --git a/dspl/liblapack/SRC/chetf2_rook.f b/lapack/src/chetf2_rook.f similarity index 100% rename from dspl/liblapack/SRC/chetf2_rook.f rename to lapack/src/chetf2_rook.f diff --git a/dspl/liblapack/SRC/chetrd.f b/lapack/src/chetrd.f similarity index 100% rename from dspl/liblapack/SRC/chetrd.f rename to lapack/src/chetrd.f diff --git a/dspl/liblapack/SRC/chetrd_2stage.f b/lapack/src/chetrd_2stage.f similarity index 100% rename from dspl/liblapack/SRC/chetrd_2stage.f rename to lapack/src/chetrd_2stage.f diff --git a/dspl/liblapack/SRC/chetrd_hb2st.F b/lapack/src/chetrd_hb2st.F similarity index 100% rename from dspl/liblapack/SRC/chetrd_hb2st.F rename to lapack/src/chetrd_hb2st.F diff --git a/dspl/liblapack/SRC/chetrd_he2hb.f b/lapack/src/chetrd_he2hb.f similarity index 100% rename from dspl/liblapack/SRC/chetrd_he2hb.f rename to lapack/src/chetrd_he2hb.f diff --git a/dspl/liblapack/SRC/chetrf.f b/lapack/src/chetrf.f similarity index 100% rename from dspl/liblapack/SRC/chetrf.f rename to lapack/src/chetrf.f diff --git a/dspl/liblapack/SRC/chetrf_aa.f b/lapack/src/chetrf_aa.f similarity index 100% rename from dspl/liblapack/SRC/chetrf_aa.f rename to lapack/src/chetrf_aa.f diff --git a/dspl/liblapack/SRC/chetrf_aa_2stage.f b/lapack/src/chetrf_aa_2stage.f similarity index 100% rename from dspl/liblapack/SRC/chetrf_aa_2stage.f rename to lapack/src/chetrf_aa_2stage.f diff --git a/dspl/liblapack/SRC/chetrf_rk.f b/lapack/src/chetrf_rk.f similarity index 100% rename from dspl/liblapack/SRC/chetrf_rk.f rename to lapack/src/chetrf_rk.f diff --git a/dspl/liblapack/SRC/chetrf_rook.f b/lapack/src/chetrf_rook.f similarity index 100% rename from dspl/liblapack/SRC/chetrf_rook.f rename to lapack/src/chetrf_rook.f diff --git a/dspl/liblapack/SRC/chetri.f b/lapack/src/chetri.f similarity index 100% rename from dspl/liblapack/SRC/chetri.f rename to lapack/src/chetri.f diff --git a/dspl/liblapack/SRC/chetri2.f b/lapack/src/chetri2.f similarity index 100% rename from dspl/liblapack/SRC/chetri2.f rename to lapack/src/chetri2.f diff --git a/dspl/liblapack/SRC/chetri2x.f b/lapack/src/chetri2x.f similarity index 100% rename from dspl/liblapack/SRC/chetri2x.f rename to lapack/src/chetri2x.f diff --git a/dspl/liblapack/SRC/chetri_3.f b/lapack/src/chetri_3.f similarity index 100% rename from dspl/liblapack/SRC/chetri_3.f rename to lapack/src/chetri_3.f diff --git a/dspl/liblapack/SRC/chetri_3x.f b/lapack/src/chetri_3x.f similarity index 100% rename from dspl/liblapack/SRC/chetri_3x.f rename to lapack/src/chetri_3x.f diff --git a/dspl/liblapack/SRC/chetri_rook.f b/lapack/src/chetri_rook.f similarity index 100% rename from dspl/liblapack/SRC/chetri_rook.f rename to lapack/src/chetri_rook.f diff --git a/dspl/liblapack/SRC/chetrs.f b/lapack/src/chetrs.f similarity index 100% rename from dspl/liblapack/SRC/chetrs.f rename to lapack/src/chetrs.f diff --git a/dspl/liblapack/SRC/chetrs2.f b/lapack/src/chetrs2.f similarity index 100% rename from dspl/liblapack/SRC/chetrs2.f rename to lapack/src/chetrs2.f diff --git a/dspl/liblapack/SRC/chetrs_3.f b/lapack/src/chetrs_3.f similarity index 100% rename from dspl/liblapack/SRC/chetrs_3.f rename to lapack/src/chetrs_3.f diff --git a/dspl/liblapack/SRC/chetrs_aa.f b/lapack/src/chetrs_aa.f similarity index 100% rename from dspl/liblapack/SRC/chetrs_aa.f rename to lapack/src/chetrs_aa.f diff --git a/dspl/liblapack/SRC/chetrs_aa_2stage.f b/lapack/src/chetrs_aa_2stage.f similarity index 100% rename from dspl/liblapack/SRC/chetrs_aa_2stage.f rename to lapack/src/chetrs_aa_2stage.f diff --git a/dspl/liblapack/SRC/chetrs_rook.f b/lapack/src/chetrs_rook.f similarity index 100% rename from dspl/liblapack/SRC/chetrs_rook.f rename to lapack/src/chetrs_rook.f diff --git a/dspl/liblapack/SRC/chfrk.f b/lapack/src/chfrk.f similarity index 100% rename from dspl/liblapack/SRC/chfrk.f rename to lapack/src/chfrk.f diff --git a/dspl/liblapack/SRC/chgeqz.f b/lapack/src/chgeqz.f similarity index 100% rename from dspl/liblapack/SRC/chgeqz.f rename to lapack/src/chgeqz.f diff --git a/dspl/liblapack/SRC/chla_transtype.f b/lapack/src/chla_transtype.f similarity index 100% rename from dspl/liblapack/SRC/chla_transtype.f rename to lapack/src/chla_transtype.f diff --git a/dspl/liblapack/SRC/chpcon.f b/lapack/src/chpcon.f similarity index 100% rename from dspl/liblapack/SRC/chpcon.f rename to lapack/src/chpcon.f diff --git a/dspl/liblapack/SRC/chpev.f b/lapack/src/chpev.f similarity index 100% rename from dspl/liblapack/SRC/chpev.f rename to lapack/src/chpev.f diff --git a/dspl/liblapack/SRC/chpevd.f b/lapack/src/chpevd.f similarity index 100% rename from dspl/liblapack/SRC/chpevd.f rename to lapack/src/chpevd.f diff --git a/dspl/liblapack/SRC/chpevx.f b/lapack/src/chpevx.f similarity index 100% rename from dspl/liblapack/SRC/chpevx.f rename to lapack/src/chpevx.f diff --git a/dspl/liblapack/SRC/chpgst.f b/lapack/src/chpgst.f similarity index 100% rename from dspl/liblapack/SRC/chpgst.f rename to lapack/src/chpgst.f diff --git a/dspl/liblapack/SRC/chpgv.f b/lapack/src/chpgv.f similarity index 100% rename from dspl/liblapack/SRC/chpgv.f rename to lapack/src/chpgv.f diff --git a/dspl/liblapack/SRC/chpgvd.f b/lapack/src/chpgvd.f similarity index 100% rename from dspl/liblapack/SRC/chpgvd.f rename to lapack/src/chpgvd.f diff --git a/dspl/liblapack/SRC/chpgvx.f b/lapack/src/chpgvx.f similarity index 100% rename from dspl/liblapack/SRC/chpgvx.f rename to lapack/src/chpgvx.f diff --git a/dspl/liblapack/SRC/chprfs.f b/lapack/src/chprfs.f similarity index 100% rename from dspl/liblapack/SRC/chprfs.f rename to lapack/src/chprfs.f diff --git a/dspl/liblapack/SRC/chpsv.f b/lapack/src/chpsv.f similarity index 100% rename from dspl/liblapack/SRC/chpsv.f rename to lapack/src/chpsv.f diff --git a/dspl/liblapack/SRC/chpsvx.f b/lapack/src/chpsvx.f similarity index 100% rename from dspl/liblapack/SRC/chpsvx.f rename to lapack/src/chpsvx.f diff --git a/dspl/liblapack/SRC/chptrd.f b/lapack/src/chptrd.f similarity index 100% rename from dspl/liblapack/SRC/chptrd.f rename to lapack/src/chptrd.f diff --git a/dspl/liblapack/SRC/chptrf.f b/lapack/src/chptrf.f similarity index 100% rename from dspl/liblapack/SRC/chptrf.f rename to lapack/src/chptrf.f diff --git a/dspl/liblapack/SRC/chptri.f b/lapack/src/chptri.f similarity index 100% rename from dspl/liblapack/SRC/chptri.f rename to lapack/src/chptri.f diff --git a/dspl/liblapack/SRC/chptrs.f b/lapack/src/chptrs.f similarity index 100% rename from dspl/liblapack/SRC/chptrs.f rename to lapack/src/chptrs.f diff --git a/dspl/liblapack/SRC/chsein.f b/lapack/src/chsein.f similarity index 100% rename from dspl/liblapack/SRC/chsein.f rename to lapack/src/chsein.f diff --git a/dspl/liblapack/SRC/chseqr.f b/lapack/src/chseqr.f similarity index 100% rename from dspl/liblapack/SRC/chseqr.f rename to lapack/src/chseqr.f diff --git a/dspl/liblapack/SRC/cla_gbamv.f b/lapack/src/cla_gbamv.f similarity index 100% rename from dspl/liblapack/SRC/cla_gbamv.f rename to lapack/src/cla_gbamv.f diff --git a/dspl/liblapack/SRC/cla_gbrcond_c.f b/lapack/src/cla_gbrcond_c.f similarity index 100% rename from dspl/liblapack/SRC/cla_gbrcond_c.f rename to lapack/src/cla_gbrcond_c.f diff --git a/dspl/liblapack/SRC/cla_gbrcond_x.f b/lapack/src/cla_gbrcond_x.f similarity index 100% rename from dspl/liblapack/SRC/cla_gbrcond_x.f rename to lapack/src/cla_gbrcond_x.f diff --git a/dspl/liblapack/SRC/cla_gbrfsx_extended.f b/lapack/src/cla_gbrfsx_extended.f similarity index 100% rename from dspl/liblapack/SRC/cla_gbrfsx_extended.f rename to lapack/src/cla_gbrfsx_extended.f diff --git a/dspl/liblapack/SRC/cla_gbrpvgrw.f b/lapack/src/cla_gbrpvgrw.f similarity index 100% rename from dspl/liblapack/SRC/cla_gbrpvgrw.f rename to lapack/src/cla_gbrpvgrw.f diff --git a/dspl/liblapack/SRC/cla_geamv.f b/lapack/src/cla_geamv.f similarity index 100% rename from dspl/liblapack/SRC/cla_geamv.f rename to lapack/src/cla_geamv.f diff --git a/dspl/liblapack/SRC/cla_gercond_c.f b/lapack/src/cla_gercond_c.f similarity index 100% rename from dspl/liblapack/SRC/cla_gercond_c.f rename to lapack/src/cla_gercond_c.f diff --git a/dspl/liblapack/SRC/cla_gercond_x.f b/lapack/src/cla_gercond_x.f similarity index 100% rename from dspl/liblapack/SRC/cla_gercond_x.f rename to lapack/src/cla_gercond_x.f diff --git a/dspl/liblapack/SRC/cla_gerfsx_extended.f b/lapack/src/cla_gerfsx_extended.f similarity index 100% rename from dspl/liblapack/SRC/cla_gerfsx_extended.f rename to lapack/src/cla_gerfsx_extended.f diff --git a/dspl/liblapack/SRC/cla_gerpvgrw.f b/lapack/src/cla_gerpvgrw.f similarity index 100% rename from dspl/liblapack/SRC/cla_gerpvgrw.f rename to lapack/src/cla_gerpvgrw.f diff --git a/dspl/liblapack/SRC/cla_heamv.f b/lapack/src/cla_heamv.f similarity index 100% rename from dspl/liblapack/SRC/cla_heamv.f rename to lapack/src/cla_heamv.f diff --git a/dspl/liblapack/SRC/cla_hercond_c.f b/lapack/src/cla_hercond_c.f similarity index 100% rename from dspl/liblapack/SRC/cla_hercond_c.f rename to lapack/src/cla_hercond_c.f diff --git a/dspl/liblapack/SRC/cla_hercond_x.f b/lapack/src/cla_hercond_x.f similarity index 100% rename from dspl/liblapack/SRC/cla_hercond_x.f rename to lapack/src/cla_hercond_x.f diff --git a/dspl/liblapack/SRC/cla_herfsx_extended.f b/lapack/src/cla_herfsx_extended.f similarity index 100% rename from dspl/liblapack/SRC/cla_herfsx_extended.f rename to lapack/src/cla_herfsx_extended.f diff --git a/dspl/liblapack/SRC/cla_herpvgrw.f b/lapack/src/cla_herpvgrw.f similarity index 100% rename from dspl/liblapack/SRC/cla_herpvgrw.f rename to lapack/src/cla_herpvgrw.f diff --git a/dspl/liblapack/SRC/cla_lin_berr.f b/lapack/src/cla_lin_berr.f similarity index 100% rename from dspl/liblapack/SRC/cla_lin_berr.f rename to lapack/src/cla_lin_berr.f diff --git a/dspl/liblapack/SRC/cla_porcond_c.f b/lapack/src/cla_porcond_c.f similarity index 100% rename from dspl/liblapack/SRC/cla_porcond_c.f rename to lapack/src/cla_porcond_c.f diff --git a/dspl/liblapack/SRC/cla_porcond_x.f b/lapack/src/cla_porcond_x.f similarity index 100% rename from dspl/liblapack/SRC/cla_porcond_x.f rename to lapack/src/cla_porcond_x.f diff --git a/dspl/liblapack/SRC/cla_porfsx_extended.f b/lapack/src/cla_porfsx_extended.f similarity index 100% rename from dspl/liblapack/SRC/cla_porfsx_extended.f rename to lapack/src/cla_porfsx_extended.f diff --git a/dspl/liblapack/SRC/cla_porpvgrw.f b/lapack/src/cla_porpvgrw.f similarity index 100% rename from dspl/liblapack/SRC/cla_porpvgrw.f rename to lapack/src/cla_porpvgrw.f diff --git a/dspl/liblapack/SRC/cla_syamv.f b/lapack/src/cla_syamv.f similarity index 100% rename from dspl/liblapack/SRC/cla_syamv.f rename to lapack/src/cla_syamv.f diff --git a/dspl/liblapack/SRC/cla_syrcond_c.f b/lapack/src/cla_syrcond_c.f similarity index 100% rename from dspl/liblapack/SRC/cla_syrcond_c.f rename to lapack/src/cla_syrcond_c.f diff --git a/dspl/liblapack/SRC/cla_syrcond_x.f b/lapack/src/cla_syrcond_x.f similarity index 100% rename from dspl/liblapack/SRC/cla_syrcond_x.f rename to lapack/src/cla_syrcond_x.f diff --git a/dspl/liblapack/SRC/cla_syrfsx_extended.f b/lapack/src/cla_syrfsx_extended.f similarity index 100% rename from dspl/liblapack/SRC/cla_syrfsx_extended.f rename to lapack/src/cla_syrfsx_extended.f diff --git a/dspl/liblapack/SRC/cla_syrpvgrw.f b/lapack/src/cla_syrpvgrw.f similarity index 100% rename from dspl/liblapack/SRC/cla_syrpvgrw.f rename to lapack/src/cla_syrpvgrw.f diff --git a/dspl/liblapack/SRC/cla_wwaddw.f b/lapack/src/cla_wwaddw.f similarity index 100% rename from dspl/liblapack/SRC/cla_wwaddw.f rename to lapack/src/cla_wwaddw.f diff --git a/dspl/liblapack/SRC/clabrd.f b/lapack/src/clabrd.f similarity index 100% rename from dspl/liblapack/SRC/clabrd.f rename to lapack/src/clabrd.f diff --git a/dspl/liblapack/SRC/clacgv.f b/lapack/src/clacgv.f similarity index 100% rename from dspl/liblapack/SRC/clacgv.f rename to lapack/src/clacgv.f diff --git a/dspl/liblapack/SRC/clacn2.f b/lapack/src/clacn2.f similarity index 100% rename from dspl/liblapack/SRC/clacn2.f rename to lapack/src/clacn2.f diff --git a/dspl/liblapack/SRC/clacon.f b/lapack/src/clacon.f similarity index 100% rename from dspl/liblapack/SRC/clacon.f rename to lapack/src/clacon.f diff --git a/dspl/liblapack/SRC/clacp2.f b/lapack/src/clacp2.f similarity index 100% rename from dspl/liblapack/SRC/clacp2.f rename to lapack/src/clacp2.f diff --git a/dspl/liblapack/SRC/clacpy.f b/lapack/src/clacpy.f similarity index 100% rename from dspl/liblapack/SRC/clacpy.f rename to lapack/src/clacpy.f diff --git a/dspl/liblapack/SRC/clacrm.f b/lapack/src/clacrm.f similarity index 100% rename from dspl/liblapack/SRC/clacrm.f rename to lapack/src/clacrm.f diff --git a/dspl/liblapack/SRC/clacrt.f b/lapack/src/clacrt.f similarity index 100% rename from dspl/liblapack/SRC/clacrt.f rename to lapack/src/clacrt.f diff --git a/dspl/liblapack/SRC/cladiv.f b/lapack/src/cladiv.f similarity index 100% rename from dspl/liblapack/SRC/cladiv.f rename to lapack/src/cladiv.f diff --git a/dspl/liblapack/SRC/claed0.f b/lapack/src/claed0.f similarity index 100% rename from dspl/liblapack/SRC/claed0.f rename to lapack/src/claed0.f diff --git a/dspl/liblapack/SRC/claed7.f b/lapack/src/claed7.f similarity index 100% rename from dspl/liblapack/SRC/claed7.f rename to lapack/src/claed7.f diff --git a/dspl/liblapack/SRC/claed8.f b/lapack/src/claed8.f similarity index 100% rename from dspl/liblapack/SRC/claed8.f rename to lapack/src/claed8.f diff --git a/dspl/liblapack/SRC/claein.f b/lapack/src/claein.f similarity index 100% rename from dspl/liblapack/SRC/claein.f rename to lapack/src/claein.f diff --git a/dspl/liblapack/SRC/claesy.f b/lapack/src/claesy.f similarity index 100% rename from dspl/liblapack/SRC/claesy.f rename to lapack/src/claesy.f diff --git a/dspl/liblapack/SRC/claev2.f b/lapack/src/claev2.f similarity index 100% rename from dspl/liblapack/SRC/claev2.f rename to lapack/src/claev2.f diff --git a/dspl/liblapack/SRC/clag2z.f b/lapack/src/clag2z.f similarity index 100% rename from dspl/liblapack/SRC/clag2z.f rename to lapack/src/clag2z.f diff --git a/dspl/liblapack/SRC/clags2.f b/lapack/src/clags2.f similarity index 100% rename from dspl/liblapack/SRC/clags2.f rename to lapack/src/clags2.f diff --git a/dspl/liblapack/SRC/clagtm.f b/lapack/src/clagtm.f similarity index 100% rename from dspl/liblapack/SRC/clagtm.f rename to lapack/src/clagtm.f diff --git a/dspl/liblapack/SRC/clahef.f b/lapack/src/clahef.f similarity index 100% rename from dspl/liblapack/SRC/clahef.f rename to lapack/src/clahef.f diff --git a/dspl/liblapack/SRC/clahef_aa.f b/lapack/src/clahef_aa.f similarity index 100% rename from dspl/liblapack/SRC/clahef_aa.f rename to lapack/src/clahef_aa.f diff --git a/dspl/liblapack/SRC/clahef_rk.f b/lapack/src/clahef_rk.f similarity index 100% rename from dspl/liblapack/SRC/clahef_rk.f rename to lapack/src/clahef_rk.f diff --git a/dspl/liblapack/SRC/clahef_rook.f b/lapack/src/clahef_rook.f similarity index 100% rename from dspl/liblapack/SRC/clahef_rook.f rename to lapack/src/clahef_rook.f diff --git a/dspl/liblapack/SRC/clahqr.f b/lapack/src/clahqr.f similarity index 100% rename from dspl/liblapack/SRC/clahqr.f rename to lapack/src/clahqr.f diff --git a/dspl/liblapack/SRC/clahr2.f b/lapack/src/clahr2.f similarity index 100% rename from dspl/liblapack/SRC/clahr2.f rename to lapack/src/clahr2.f diff --git a/dspl/liblapack/SRC/claic1.f b/lapack/src/claic1.f similarity index 100% rename from dspl/liblapack/SRC/claic1.f rename to lapack/src/claic1.f diff --git a/dspl/liblapack/SRC/clals0.f b/lapack/src/clals0.f similarity index 100% rename from dspl/liblapack/SRC/clals0.f rename to lapack/src/clals0.f diff --git a/dspl/liblapack/SRC/clalsa.f b/lapack/src/clalsa.f similarity index 100% rename from dspl/liblapack/SRC/clalsa.f rename to lapack/src/clalsa.f diff --git a/dspl/liblapack/SRC/clalsd.f b/lapack/src/clalsd.f similarity index 100% rename from dspl/liblapack/SRC/clalsd.f rename to lapack/src/clalsd.f diff --git a/dspl/liblapack/SRC/clamswlq.f b/lapack/src/clamswlq.f similarity index 100% rename from dspl/liblapack/SRC/clamswlq.f rename to lapack/src/clamswlq.f diff --git a/dspl/liblapack/SRC/clamtsqr.f b/lapack/src/clamtsqr.f similarity index 100% rename from dspl/liblapack/SRC/clamtsqr.f rename to lapack/src/clamtsqr.f diff --git a/dspl/liblapack/SRC/clangb.f b/lapack/src/clangb.f similarity index 100% rename from dspl/liblapack/SRC/clangb.f rename to lapack/src/clangb.f diff --git a/dspl/liblapack/SRC/clange.f b/lapack/src/clange.f similarity index 100% rename from dspl/liblapack/SRC/clange.f rename to lapack/src/clange.f diff --git a/dspl/liblapack/SRC/clangt.f b/lapack/src/clangt.f similarity index 100% rename from dspl/liblapack/SRC/clangt.f rename to lapack/src/clangt.f diff --git a/dspl/liblapack/SRC/clanhb.f b/lapack/src/clanhb.f similarity index 100% rename from dspl/liblapack/SRC/clanhb.f rename to lapack/src/clanhb.f diff --git a/dspl/liblapack/SRC/clanhe.f b/lapack/src/clanhe.f similarity index 100% rename from dspl/liblapack/SRC/clanhe.f rename to lapack/src/clanhe.f diff --git a/dspl/liblapack/SRC/clanhf.f b/lapack/src/clanhf.f similarity index 100% rename from dspl/liblapack/SRC/clanhf.f rename to lapack/src/clanhf.f diff --git a/dspl/liblapack/SRC/clanhp.f b/lapack/src/clanhp.f similarity index 100% rename from dspl/liblapack/SRC/clanhp.f rename to lapack/src/clanhp.f diff --git a/dspl/liblapack/SRC/clanhs.f b/lapack/src/clanhs.f similarity index 100% rename from dspl/liblapack/SRC/clanhs.f rename to lapack/src/clanhs.f diff --git a/dspl/liblapack/SRC/clanht.f b/lapack/src/clanht.f similarity index 100% rename from dspl/liblapack/SRC/clanht.f rename to lapack/src/clanht.f diff --git a/dspl/liblapack/SRC/clansb.f b/lapack/src/clansb.f similarity index 100% rename from dspl/liblapack/SRC/clansb.f rename to lapack/src/clansb.f diff --git a/dspl/liblapack/SRC/clansp.f b/lapack/src/clansp.f similarity index 100% rename from dspl/liblapack/SRC/clansp.f rename to lapack/src/clansp.f diff --git a/dspl/liblapack/SRC/clansy.f b/lapack/src/clansy.f similarity index 100% rename from dspl/liblapack/SRC/clansy.f rename to lapack/src/clansy.f diff --git a/dspl/liblapack/SRC/clantb.f b/lapack/src/clantb.f similarity index 100% rename from dspl/liblapack/SRC/clantb.f rename to lapack/src/clantb.f diff --git a/dspl/liblapack/SRC/clantp.f b/lapack/src/clantp.f similarity index 100% rename from dspl/liblapack/SRC/clantp.f rename to lapack/src/clantp.f diff --git a/dspl/liblapack/SRC/clantr.f b/lapack/src/clantr.f similarity index 100% rename from dspl/liblapack/SRC/clantr.f rename to lapack/src/clantr.f diff --git a/dspl/liblapack/SRC/clapll.f b/lapack/src/clapll.f similarity index 100% rename from dspl/liblapack/SRC/clapll.f rename to lapack/src/clapll.f diff --git a/dspl/liblapack/SRC/clapmr.f b/lapack/src/clapmr.f similarity index 100% rename from dspl/liblapack/SRC/clapmr.f rename to lapack/src/clapmr.f diff --git a/dspl/liblapack/SRC/clapmt.f b/lapack/src/clapmt.f similarity index 100% rename from dspl/liblapack/SRC/clapmt.f rename to lapack/src/clapmt.f diff --git a/dspl/liblapack/SRC/claqgb.f b/lapack/src/claqgb.f similarity index 100% rename from dspl/liblapack/SRC/claqgb.f rename to lapack/src/claqgb.f diff --git a/dspl/liblapack/SRC/claqge.f b/lapack/src/claqge.f similarity index 100% rename from dspl/liblapack/SRC/claqge.f rename to lapack/src/claqge.f diff --git a/dspl/liblapack/SRC/claqhb.f b/lapack/src/claqhb.f similarity index 100% rename from dspl/liblapack/SRC/claqhb.f rename to lapack/src/claqhb.f diff --git a/dspl/liblapack/SRC/claqhe.f b/lapack/src/claqhe.f similarity index 100% rename from dspl/liblapack/SRC/claqhe.f rename to lapack/src/claqhe.f diff --git a/dspl/liblapack/SRC/claqhp.f b/lapack/src/claqhp.f similarity index 100% rename from dspl/liblapack/SRC/claqhp.f rename to lapack/src/claqhp.f diff --git a/dspl/liblapack/SRC/claqp2.f b/lapack/src/claqp2.f similarity index 100% rename from dspl/liblapack/SRC/claqp2.f rename to lapack/src/claqp2.f diff --git a/dspl/liblapack/SRC/claqps.f b/lapack/src/claqps.f similarity index 100% rename from dspl/liblapack/SRC/claqps.f rename to lapack/src/claqps.f diff --git a/dspl/liblapack/SRC/claqr0.f b/lapack/src/claqr0.f similarity index 100% rename from dspl/liblapack/SRC/claqr0.f rename to lapack/src/claqr0.f diff --git a/dspl/liblapack/SRC/claqr1.f b/lapack/src/claqr1.f similarity index 100% rename from dspl/liblapack/SRC/claqr1.f rename to lapack/src/claqr1.f diff --git a/dspl/liblapack/SRC/claqr2.f b/lapack/src/claqr2.f similarity index 100% rename from dspl/liblapack/SRC/claqr2.f rename to lapack/src/claqr2.f diff --git a/dspl/liblapack/SRC/claqr3.f b/lapack/src/claqr3.f similarity index 100% rename from dspl/liblapack/SRC/claqr3.f rename to lapack/src/claqr3.f diff --git a/dspl/liblapack/SRC/claqr4.f b/lapack/src/claqr4.f similarity index 100% rename from dspl/liblapack/SRC/claqr4.f rename to lapack/src/claqr4.f diff --git a/dspl/liblapack/SRC/claqr5.f b/lapack/src/claqr5.f similarity index 100% rename from dspl/liblapack/SRC/claqr5.f rename to lapack/src/claqr5.f diff --git a/dspl/liblapack/SRC/claqsb.f b/lapack/src/claqsb.f similarity index 100% rename from dspl/liblapack/SRC/claqsb.f rename to lapack/src/claqsb.f diff --git a/dspl/liblapack/SRC/claqsp.f b/lapack/src/claqsp.f similarity index 100% rename from dspl/liblapack/SRC/claqsp.f rename to lapack/src/claqsp.f diff --git a/dspl/liblapack/SRC/claqsy.f b/lapack/src/claqsy.f similarity index 100% rename from dspl/liblapack/SRC/claqsy.f rename to lapack/src/claqsy.f diff --git a/dspl/liblapack/SRC/clar1v.f b/lapack/src/clar1v.f similarity index 100% rename from dspl/liblapack/SRC/clar1v.f rename to lapack/src/clar1v.f diff --git a/dspl/liblapack/SRC/clar2v.f b/lapack/src/clar2v.f similarity index 100% rename from dspl/liblapack/SRC/clar2v.f rename to lapack/src/clar2v.f diff --git a/dspl/liblapack/SRC/clarcm.f b/lapack/src/clarcm.f similarity index 100% rename from dspl/liblapack/SRC/clarcm.f rename to lapack/src/clarcm.f diff --git a/dspl/liblapack/SRC/clarf.f b/lapack/src/clarf.f similarity index 100% rename from dspl/liblapack/SRC/clarf.f rename to lapack/src/clarf.f diff --git a/dspl/liblapack/SRC/clarfb.f b/lapack/src/clarfb.f similarity index 100% rename from dspl/liblapack/SRC/clarfb.f rename to lapack/src/clarfb.f diff --git a/dspl/liblapack/SRC/clarfg.f b/lapack/src/clarfg.f similarity index 100% rename from dspl/liblapack/SRC/clarfg.f rename to lapack/src/clarfg.f diff --git a/dspl/liblapack/SRC/clarfgp.f b/lapack/src/clarfgp.f similarity index 100% rename from dspl/liblapack/SRC/clarfgp.f rename to lapack/src/clarfgp.f diff --git a/dspl/liblapack/SRC/clarft.f b/lapack/src/clarft.f similarity index 100% rename from dspl/liblapack/SRC/clarft.f rename to lapack/src/clarft.f diff --git a/dspl/liblapack/SRC/clarfx.f b/lapack/src/clarfx.f similarity index 100% rename from dspl/liblapack/SRC/clarfx.f rename to lapack/src/clarfx.f diff --git a/dspl/liblapack/SRC/clarfy.f b/lapack/src/clarfy.f similarity index 100% rename from dspl/liblapack/SRC/clarfy.f rename to lapack/src/clarfy.f diff --git a/dspl/liblapack/SRC/clargv.f b/lapack/src/clargv.f similarity index 100% rename from dspl/liblapack/SRC/clargv.f rename to lapack/src/clargv.f diff --git a/dspl/liblapack/SRC/clarnv.f b/lapack/src/clarnv.f similarity index 100% rename from dspl/liblapack/SRC/clarnv.f rename to lapack/src/clarnv.f diff --git a/dspl/liblapack/SRC/clarrv.f b/lapack/src/clarrv.f similarity index 100% rename from dspl/liblapack/SRC/clarrv.f rename to lapack/src/clarrv.f diff --git a/dspl/liblapack/SRC/clarscl2.f b/lapack/src/clarscl2.f similarity index 100% rename from dspl/liblapack/SRC/clarscl2.f rename to lapack/src/clarscl2.f diff --git a/dspl/liblapack/SRC/clartg.f b/lapack/src/clartg.f similarity index 100% rename from dspl/liblapack/SRC/clartg.f rename to lapack/src/clartg.f diff --git a/dspl/liblapack/SRC/clartv.f b/lapack/src/clartv.f similarity index 100% rename from dspl/liblapack/SRC/clartv.f rename to lapack/src/clartv.f diff --git a/dspl/liblapack/SRC/clarz.f b/lapack/src/clarz.f similarity index 100% rename from dspl/liblapack/SRC/clarz.f rename to lapack/src/clarz.f diff --git a/dspl/liblapack/SRC/clarzb.f b/lapack/src/clarzb.f similarity index 100% rename from dspl/liblapack/SRC/clarzb.f rename to lapack/src/clarzb.f diff --git a/dspl/liblapack/SRC/clarzt.f b/lapack/src/clarzt.f similarity index 100% rename from dspl/liblapack/SRC/clarzt.f rename to lapack/src/clarzt.f diff --git a/dspl/liblapack/SRC/clascl.f b/lapack/src/clascl.f similarity index 100% rename from dspl/liblapack/SRC/clascl.f rename to lapack/src/clascl.f diff --git a/dspl/liblapack/SRC/clascl2.f b/lapack/src/clascl2.f similarity index 100% rename from dspl/liblapack/SRC/clascl2.f rename to lapack/src/clascl2.f diff --git a/dspl/liblapack/SRC/claset.f b/lapack/src/claset.f similarity index 100% rename from dspl/liblapack/SRC/claset.f rename to lapack/src/claset.f diff --git a/dspl/liblapack/SRC/clasr.f b/lapack/src/clasr.f similarity index 100% rename from dspl/liblapack/SRC/clasr.f rename to lapack/src/clasr.f diff --git a/dspl/liblapack/SRC/classq.f b/lapack/src/classq.f similarity index 100% rename from dspl/liblapack/SRC/classq.f rename to lapack/src/classq.f diff --git a/dspl/liblapack/SRC/claswlq.f b/lapack/src/claswlq.f similarity index 100% rename from dspl/liblapack/SRC/claswlq.f rename to lapack/src/claswlq.f diff --git a/dspl/liblapack/SRC/claswp.f b/lapack/src/claswp.f similarity index 100% rename from dspl/liblapack/SRC/claswp.f rename to lapack/src/claswp.f diff --git a/dspl/liblapack/SRC/clasyf.f b/lapack/src/clasyf.f similarity index 100% rename from dspl/liblapack/SRC/clasyf.f rename to lapack/src/clasyf.f diff --git a/dspl/liblapack/SRC/clasyf_aa.f b/lapack/src/clasyf_aa.f similarity index 100% rename from dspl/liblapack/SRC/clasyf_aa.f rename to lapack/src/clasyf_aa.f diff --git a/dspl/liblapack/SRC/clasyf_rk.f b/lapack/src/clasyf_rk.f similarity index 100% rename from dspl/liblapack/SRC/clasyf_rk.f rename to lapack/src/clasyf_rk.f diff --git a/dspl/liblapack/SRC/clasyf_rook.f b/lapack/src/clasyf_rook.f similarity index 100% rename from dspl/liblapack/SRC/clasyf_rook.f rename to lapack/src/clasyf_rook.f diff --git a/dspl/liblapack/SRC/clatbs.f b/lapack/src/clatbs.f similarity index 100% rename from dspl/liblapack/SRC/clatbs.f rename to lapack/src/clatbs.f diff --git a/dspl/liblapack/SRC/clatdf.f b/lapack/src/clatdf.f similarity index 100% rename from dspl/liblapack/SRC/clatdf.f rename to lapack/src/clatdf.f diff --git a/dspl/liblapack/SRC/clatps.f b/lapack/src/clatps.f similarity index 100% rename from dspl/liblapack/SRC/clatps.f rename to lapack/src/clatps.f diff --git a/dspl/liblapack/SRC/clatrd.f b/lapack/src/clatrd.f similarity index 100% rename from dspl/liblapack/SRC/clatrd.f rename to lapack/src/clatrd.f diff --git a/dspl/liblapack/SRC/clatrs.f b/lapack/src/clatrs.f similarity index 100% rename from dspl/liblapack/SRC/clatrs.f rename to lapack/src/clatrs.f diff --git a/dspl/liblapack/SRC/clatrz.f b/lapack/src/clatrz.f similarity index 100% rename from dspl/liblapack/SRC/clatrz.f rename to lapack/src/clatrz.f diff --git a/dspl/liblapack/SRC/clatsqr.f b/lapack/src/clatsqr.f similarity index 100% rename from dspl/liblapack/SRC/clatsqr.f rename to lapack/src/clatsqr.f diff --git a/dspl/liblapack/SRC/clauu2.f b/lapack/src/clauu2.f similarity index 100% rename from dspl/liblapack/SRC/clauu2.f rename to lapack/src/clauu2.f diff --git a/dspl/liblapack/SRC/clauum.f b/lapack/src/clauum.f similarity index 100% rename from dspl/liblapack/SRC/clauum.f rename to lapack/src/clauum.f diff --git a/dspl/liblapack/SRC/cpbcon.f b/lapack/src/cpbcon.f similarity index 100% rename from dspl/liblapack/SRC/cpbcon.f rename to lapack/src/cpbcon.f diff --git a/dspl/liblapack/SRC/cpbequ.f b/lapack/src/cpbequ.f similarity index 100% rename from dspl/liblapack/SRC/cpbequ.f rename to lapack/src/cpbequ.f diff --git a/dspl/liblapack/SRC/cpbrfs.f b/lapack/src/cpbrfs.f similarity index 100% rename from dspl/liblapack/SRC/cpbrfs.f rename to lapack/src/cpbrfs.f diff --git a/dspl/liblapack/SRC/cpbstf.f b/lapack/src/cpbstf.f similarity index 100% rename from dspl/liblapack/SRC/cpbstf.f rename to lapack/src/cpbstf.f diff --git a/dspl/liblapack/SRC/cpbsv.f b/lapack/src/cpbsv.f similarity index 100% rename from dspl/liblapack/SRC/cpbsv.f rename to lapack/src/cpbsv.f diff --git a/dspl/liblapack/SRC/cpbsvx.f b/lapack/src/cpbsvx.f similarity index 100% rename from dspl/liblapack/SRC/cpbsvx.f rename to lapack/src/cpbsvx.f diff --git a/dspl/liblapack/SRC/cpbtf2.f b/lapack/src/cpbtf2.f similarity index 100% rename from dspl/liblapack/SRC/cpbtf2.f rename to lapack/src/cpbtf2.f diff --git a/dspl/liblapack/SRC/cpbtrf.f b/lapack/src/cpbtrf.f similarity index 100% rename from dspl/liblapack/SRC/cpbtrf.f rename to lapack/src/cpbtrf.f diff --git a/dspl/liblapack/SRC/cpbtrs.f b/lapack/src/cpbtrs.f similarity index 100% rename from dspl/liblapack/SRC/cpbtrs.f rename to lapack/src/cpbtrs.f diff --git a/dspl/liblapack/SRC/cpftrf.f b/lapack/src/cpftrf.f similarity index 100% rename from dspl/liblapack/SRC/cpftrf.f rename to lapack/src/cpftrf.f diff --git a/dspl/liblapack/SRC/cpftri.f b/lapack/src/cpftri.f similarity index 100% rename from dspl/liblapack/SRC/cpftri.f rename to lapack/src/cpftri.f diff --git a/dspl/liblapack/SRC/cpftrs.f b/lapack/src/cpftrs.f similarity index 100% rename from dspl/liblapack/SRC/cpftrs.f rename to lapack/src/cpftrs.f diff --git a/dspl/liblapack/SRC/cpocon.f b/lapack/src/cpocon.f similarity index 100% rename from dspl/liblapack/SRC/cpocon.f rename to lapack/src/cpocon.f diff --git a/dspl/liblapack/SRC/cpoequ.f b/lapack/src/cpoequ.f similarity index 100% rename from dspl/liblapack/SRC/cpoequ.f rename to lapack/src/cpoequ.f diff --git a/dspl/liblapack/SRC/cpoequb.f b/lapack/src/cpoequb.f similarity index 100% rename from dspl/liblapack/SRC/cpoequb.f rename to lapack/src/cpoequb.f diff --git a/dspl/liblapack/SRC/cporfs.f b/lapack/src/cporfs.f similarity index 100% rename from dspl/liblapack/SRC/cporfs.f rename to lapack/src/cporfs.f diff --git a/dspl/liblapack/SRC/cporfsx.f b/lapack/src/cporfsx.f similarity index 100% rename from dspl/liblapack/SRC/cporfsx.f rename to lapack/src/cporfsx.f diff --git a/dspl/liblapack/SRC/cposv.f b/lapack/src/cposv.f similarity index 100% rename from dspl/liblapack/SRC/cposv.f rename to lapack/src/cposv.f diff --git a/dspl/liblapack/SRC/cposvx.f b/lapack/src/cposvx.f similarity index 100% rename from dspl/liblapack/SRC/cposvx.f rename to lapack/src/cposvx.f diff --git a/dspl/liblapack/SRC/cposvxx.f b/lapack/src/cposvxx.f similarity index 100% rename from dspl/liblapack/SRC/cposvxx.f rename to lapack/src/cposvxx.f diff --git a/dspl/liblapack/SRC/cpotf2.f b/lapack/src/cpotf2.f similarity index 100% rename from dspl/liblapack/SRC/cpotf2.f rename to lapack/src/cpotf2.f diff --git a/dspl/liblapack/SRC/cpotrf.f b/lapack/src/cpotrf.f similarity index 100% rename from dspl/liblapack/SRC/cpotrf.f rename to lapack/src/cpotrf.f diff --git a/dspl/liblapack/SRC/cpotrf2.f b/lapack/src/cpotrf2.f similarity index 100% rename from dspl/liblapack/SRC/cpotrf2.f rename to lapack/src/cpotrf2.f diff --git a/dspl/liblapack/SRC/cpotri.f b/lapack/src/cpotri.f similarity index 100% rename from dspl/liblapack/SRC/cpotri.f rename to lapack/src/cpotri.f diff --git a/dspl/liblapack/SRC/cpotrs.f b/lapack/src/cpotrs.f similarity index 100% rename from dspl/liblapack/SRC/cpotrs.f rename to lapack/src/cpotrs.f diff --git a/dspl/liblapack/SRC/cppcon.f b/lapack/src/cppcon.f similarity index 100% rename from dspl/liblapack/SRC/cppcon.f rename to lapack/src/cppcon.f diff --git a/dspl/liblapack/SRC/cppequ.f b/lapack/src/cppequ.f similarity index 100% rename from dspl/liblapack/SRC/cppequ.f rename to lapack/src/cppequ.f diff --git a/dspl/liblapack/SRC/cpprfs.f b/lapack/src/cpprfs.f similarity index 100% rename from dspl/liblapack/SRC/cpprfs.f rename to lapack/src/cpprfs.f diff --git a/dspl/liblapack/SRC/cppsv.f b/lapack/src/cppsv.f similarity index 100% rename from dspl/liblapack/SRC/cppsv.f rename to lapack/src/cppsv.f diff --git a/dspl/liblapack/SRC/cppsvx.f b/lapack/src/cppsvx.f similarity index 100% rename from dspl/liblapack/SRC/cppsvx.f rename to lapack/src/cppsvx.f diff --git a/dspl/liblapack/SRC/cpptrf.f b/lapack/src/cpptrf.f similarity index 100% rename from dspl/liblapack/SRC/cpptrf.f rename to lapack/src/cpptrf.f diff --git a/dspl/liblapack/SRC/cpptri.f b/lapack/src/cpptri.f similarity index 100% rename from dspl/liblapack/SRC/cpptri.f rename to lapack/src/cpptri.f diff --git a/dspl/liblapack/SRC/cpptrs.f b/lapack/src/cpptrs.f similarity index 100% rename from dspl/liblapack/SRC/cpptrs.f rename to lapack/src/cpptrs.f diff --git a/dspl/liblapack/SRC/cpstf2.f b/lapack/src/cpstf2.f similarity index 100% rename from dspl/liblapack/SRC/cpstf2.f rename to lapack/src/cpstf2.f diff --git a/dspl/liblapack/SRC/cpstrf.f b/lapack/src/cpstrf.f similarity index 100% rename from dspl/liblapack/SRC/cpstrf.f rename to lapack/src/cpstrf.f diff --git a/dspl/liblapack/SRC/cptcon.f b/lapack/src/cptcon.f similarity index 100% rename from dspl/liblapack/SRC/cptcon.f rename to lapack/src/cptcon.f diff --git a/dspl/liblapack/SRC/cpteqr.f b/lapack/src/cpteqr.f similarity index 100% rename from dspl/liblapack/SRC/cpteqr.f rename to lapack/src/cpteqr.f diff --git a/dspl/liblapack/SRC/cptrfs.f b/lapack/src/cptrfs.f similarity index 100% rename from dspl/liblapack/SRC/cptrfs.f rename to lapack/src/cptrfs.f diff --git a/dspl/liblapack/SRC/cptsv.f b/lapack/src/cptsv.f similarity index 100% rename from dspl/liblapack/SRC/cptsv.f rename to lapack/src/cptsv.f diff --git a/dspl/liblapack/SRC/cptsvx.f b/lapack/src/cptsvx.f similarity index 100% rename from dspl/liblapack/SRC/cptsvx.f rename to lapack/src/cptsvx.f diff --git a/dspl/liblapack/SRC/cpttrf.f b/lapack/src/cpttrf.f similarity index 100% rename from dspl/liblapack/SRC/cpttrf.f rename to lapack/src/cpttrf.f diff --git a/dspl/liblapack/SRC/cpttrs.f b/lapack/src/cpttrs.f similarity index 100% rename from dspl/liblapack/SRC/cpttrs.f rename to lapack/src/cpttrs.f diff --git a/dspl/liblapack/SRC/cptts2.f b/lapack/src/cptts2.f similarity index 100% rename from dspl/liblapack/SRC/cptts2.f rename to lapack/src/cptts2.f diff --git a/dspl/liblapack/SRC/crot.f b/lapack/src/crot.f similarity index 100% rename from dspl/liblapack/SRC/crot.f rename to lapack/src/crot.f diff --git a/dspl/liblapack/SRC/cspcon.f b/lapack/src/cspcon.f similarity index 100% rename from dspl/liblapack/SRC/cspcon.f rename to lapack/src/cspcon.f diff --git a/dspl/liblapack/SRC/cspmv.f b/lapack/src/cspmv.f similarity index 100% rename from dspl/liblapack/SRC/cspmv.f rename to lapack/src/cspmv.f diff --git a/dspl/liblapack/SRC/cspr.f b/lapack/src/cspr.f similarity index 100% rename from dspl/liblapack/SRC/cspr.f rename to lapack/src/cspr.f diff --git a/dspl/liblapack/SRC/csprfs.f b/lapack/src/csprfs.f similarity index 100% rename from dspl/liblapack/SRC/csprfs.f rename to lapack/src/csprfs.f diff --git a/dspl/liblapack/SRC/cspsv.f b/lapack/src/cspsv.f similarity index 100% rename from dspl/liblapack/SRC/cspsv.f rename to lapack/src/cspsv.f diff --git a/dspl/liblapack/SRC/cspsvx.f b/lapack/src/cspsvx.f similarity index 100% rename from dspl/liblapack/SRC/cspsvx.f rename to lapack/src/cspsvx.f diff --git a/dspl/liblapack/SRC/csptrf.f b/lapack/src/csptrf.f similarity index 100% rename from dspl/liblapack/SRC/csptrf.f rename to lapack/src/csptrf.f diff --git a/dspl/liblapack/SRC/csptri.f b/lapack/src/csptri.f similarity index 100% rename from dspl/liblapack/SRC/csptri.f rename to lapack/src/csptri.f diff --git a/dspl/liblapack/SRC/csptrs.f b/lapack/src/csptrs.f similarity index 100% rename from dspl/liblapack/SRC/csptrs.f rename to lapack/src/csptrs.f diff --git a/dspl/liblapack/SRC/csrscl.f b/lapack/src/csrscl.f similarity index 100% rename from dspl/liblapack/SRC/csrscl.f rename to lapack/src/csrscl.f diff --git a/dspl/liblapack/SRC/cstedc.f b/lapack/src/cstedc.f similarity index 100% rename from dspl/liblapack/SRC/cstedc.f rename to lapack/src/cstedc.f diff --git a/dspl/liblapack/SRC/cstegr.f b/lapack/src/cstegr.f similarity index 100% rename from dspl/liblapack/SRC/cstegr.f rename to lapack/src/cstegr.f diff --git a/dspl/liblapack/SRC/cstein.f b/lapack/src/cstein.f similarity index 100% rename from dspl/liblapack/SRC/cstein.f rename to lapack/src/cstein.f diff --git a/dspl/liblapack/SRC/cstemr.f b/lapack/src/cstemr.f similarity index 100% rename from dspl/liblapack/SRC/cstemr.f rename to lapack/src/cstemr.f diff --git a/dspl/liblapack/SRC/csteqr.f b/lapack/src/csteqr.f similarity index 100% rename from dspl/liblapack/SRC/csteqr.f rename to lapack/src/csteqr.f diff --git a/dspl/liblapack/SRC/csycon.f b/lapack/src/csycon.f similarity index 100% rename from dspl/liblapack/SRC/csycon.f rename to lapack/src/csycon.f diff --git a/dspl/liblapack/SRC/csycon_3.f b/lapack/src/csycon_3.f similarity index 100% rename from dspl/liblapack/SRC/csycon_3.f rename to lapack/src/csycon_3.f diff --git a/dspl/liblapack/SRC/csycon_rook.f b/lapack/src/csycon_rook.f similarity index 100% rename from dspl/liblapack/SRC/csycon_rook.f rename to lapack/src/csycon_rook.f diff --git a/dspl/liblapack/SRC/csyconv.f b/lapack/src/csyconv.f similarity index 100% rename from dspl/liblapack/SRC/csyconv.f rename to lapack/src/csyconv.f diff --git a/dspl/liblapack/SRC/csyconvf.f b/lapack/src/csyconvf.f similarity index 100% rename from dspl/liblapack/SRC/csyconvf.f rename to lapack/src/csyconvf.f diff --git a/dspl/liblapack/SRC/csyconvf_rook.f b/lapack/src/csyconvf_rook.f similarity index 100% rename from dspl/liblapack/SRC/csyconvf_rook.f rename to lapack/src/csyconvf_rook.f diff --git a/dspl/liblapack/SRC/csyequb.f b/lapack/src/csyequb.f similarity index 100% rename from dspl/liblapack/SRC/csyequb.f rename to lapack/src/csyequb.f diff --git a/dspl/liblapack/SRC/csymv.f b/lapack/src/csymv.f similarity index 100% rename from dspl/liblapack/SRC/csymv.f rename to lapack/src/csymv.f diff --git a/dspl/liblapack/SRC/csyr.f b/lapack/src/csyr.f similarity index 100% rename from dspl/liblapack/SRC/csyr.f rename to lapack/src/csyr.f diff --git a/dspl/liblapack/SRC/csyrfs.f b/lapack/src/csyrfs.f similarity index 100% rename from dspl/liblapack/SRC/csyrfs.f rename to lapack/src/csyrfs.f diff --git a/dspl/liblapack/SRC/csyrfsx.f b/lapack/src/csyrfsx.f similarity index 100% rename from dspl/liblapack/SRC/csyrfsx.f rename to lapack/src/csyrfsx.f diff --git a/dspl/liblapack/SRC/csysv.f b/lapack/src/csysv.f similarity index 100% rename from dspl/liblapack/SRC/csysv.f rename to lapack/src/csysv.f diff --git a/dspl/liblapack/SRC/csysv_aa.f b/lapack/src/csysv_aa.f similarity index 100% rename from dspl/liblapack/SRC/csysv_aa.f rename to lapack/src/csysv_aa.f diff --git a/dspl/liblapack/SRC/csysv_aa_2stage.f b/lapack/src/csysv_aa_2stage.f similarity index 100% rename from dspl/liblapack/SRC/csysv_aa_2stage.f rename to lapack/src/csysv_aa_2stage.f diff --git a/dspl/liblapack/SRC/csysv_rk.f b/lapack/src/csysv_rk.f similarity index 100% rename from dspl/liblapack/SRC/csysv_rk.f rename to lapack/src/csysv_rk.f diff --git a/dspl/liblapack/SRC/csysv_rook.f b/lapack/src/csysv_rook.f similarity index 100% rename from dspl/liblapack/SRC/csysv_rook.f rename to lapack/src/csysv_rook.f diff --git a/dspl/liblapack/SRC/csysvx.f b/lapack/src/csysvx.f similarity index 100% rename from dspl/liblapack/SRC/csysvx.f rename to lapack/src/csysvx.f diff --git a/dspl/liblapack/SRC/csysvxx.f b/lapack/src/csysvxx.f similarity index 100% rename from dspl/liblapack/SRC/csysvxx.f rename to lapack/src/csysvxx.f diff --git a/dspl/liblapack/SRC/csyswapr.f b/lapack/src/csyswapr.f similarity index 100% rename from dspl/liblapack/SRC/csyswapr.f rename to lapack/src/csyswapr.f diff --git a/dspl/liblapack/SRC/csytf2.f b/lapack/src/csytf2.f similarity index 100% rename from dspl/liblapack/SRC/csytf2.f rename to lapack/src/csytf2.f diff --git a/dspl/liblapack/SRC/csytf2_rk.f b/lapack/src/csytf2_rk.f similarity index 100% rename from dspl/liblapack/SRC/csytf2_rk.f rename to lapack/src/csytf2_rk.f diff --git a/dspl/liblapack/SRC/csytf2_rook.f b/lapack/src/csytf2_rook.f similarity index 100% rename from dspl/liblapack/SRC/csytf2_rook.f rename to lapack/src/csytf2_rook.f diff --git a/dspl/liblapack/SRC/csytrf.f b/lapack/src/csytrf.f similarity index 100% rename from dspl/liblapack/SRC/csytrf.f rename to lapack/src/csytrf.f diff --git a/dspl/liblapack/SRC/csytrf_aa.f b/lapack/src/csytrf_aa.f similarity index 100% rename from dspl/liblapack/SRC/csytrf_aa.f rename to lapack/src/csytrf_aa.f diff --git a/dspl/liblapack/SRC/csytrf_aa_2stage.f b/lapack/src/csytrf_aa_2stage.f similarity index 100% rename from dspl/liblapack/SRC/csytrf_aa_2stage.f rename to lapack/src/csytrf_aa_2stage.f diff --git a/dspl/liblapack/SRC/csytrf_rk.f b/lapack/src/csytrf_rk.f similarity index 100% rename from dspl/liblapack/SRC/csytrf_rk.f rename to lapack/src/csytrf_rk.f diff --git a/dspl/liblapack/SRC/csytrf_rook.f b/lapack/src/csytrf_rook.f similarity index 100% rename from dspl/liblapack/SRC/csytrf_rook.f rename to lapack/src/csytrf_rook.f diff --git a/dspl/liblapack/SRC/csytri.f b/lapack/src/csytri.f similarity index 100% rename from dspl/liblapack/SRC/csytri.f rename to lapack/src/csytri.f diff --git a/dspl/liblapack/SRC/csytri2.f b/lapack/src/csytri2.f similarity index 100% rename from dspl/liblapack/SRC/csytri2.f rename to lapack/src/csytri2.f diff --git a/dspl/liblapack/SRC/csytri2x.f b/lapack/src/csytri2x.f similarity index 100% rename from dspl/liblapack/SRC/csytri2x.f rename to lapack/src/csytri2x.f diff --git a/dspl/liblapack/SRC/csytri_3.f b/lapack/src/csytri_3.f similarity index 100% rename from dspl/liblapack/SRC/csytri_3.f rename to lapack/src/csytri_3.f diff --git a/dspl/liblapack/SRC/csytri_3x.f b/lapack/src/csytri_3x.f similarity index 100% rename from dspl/liblapack/SRC/csytri_3x.f rename to lapack/src/csytri_3x.f diff --git a/dspl/liblapack/SRC/csytri_rook.f b/lapack/src/csytri_rook.f similarity index 100% rename from dspl/liblapack/SRC/csytri_rook.f rename to lapack/src/csytri_rook.f diff --git a/dspl/liblapack/SRC/csytrs.f b/lapack/src/csytrs.f similarity index 100% rename from dspl/liblapack/SRC/csytrs.f rename to lapack/src/csytrs.f diff --git a/dspl/liblapack/SRC/csytrs2.f b/lapack/src/csytrs2.f similarity index 100% rename from dspl/liblapack/SRC/csytrs2.f rename to lapack/src/csytrs2.f diff --git a/dspl/liblapack/SRC/csytrs_3.f b/lapack/src/csytrs_3.f similarity index 100% rename from dspl/liblapack/SRC/csytrs_3.f rename to lapack/src/csytrs_3.f diff --git a/dspl/liblapack/SRC/csytrs_aa.f b/lapack/src/csytrs_aa.f similarity index 100% rename from dspl/liblapack/SRC/csytrs_aa.f rename to lapack/src/csytrs_aa.f diff --git a/dspl/liblapack/SRC/csytrs_aa_2stage.f b/lapack/src/csytrs_aa_2stage.f similarity index 100% rename from dspl/liblapack/SRC/csytrs_aa_2stage.f rename to lapack/src/csytrs_aa_2stage.f diff --git a/dspl/liblapack/SRC/csytrs_rook.f b/lapack/src/csytrs_rook.f similarity index 100% rename from dspl/liblapack/SRC/csytrs_rook.f rename to lapack/src/csytrs_rook.f diff --git a/dspl/liblapack/SRC/ctbcon.f b/lapack/src/ctbcon.f similarity index 100% rename from dspl/liblapack/SRC/ctbcon.f rename to lapack/src/ctbcon.f diff --git a/dspl/liblapack/SRC/ctbrfs.f b/lapack/src/ctbrfs.f similarity index 100% rename from dspl/liblapack/SRC/ctbrfs.f rename to lapack/src/ctbrfs.f diff --git a/dspl/liblapack/SRC/ctbtrs.f b/lapack/src/ctbtrs.f similarity index 100% rename from dspl/liblapack/SRC/ctbtrs.f rename to lapack/src/ctbtrs.f diff --git a/dspl/liblapack/SRC/ctfsm.f b/lapack/src/ctfsm.f similarity index 100% rename from dspl/liblapack/SRC/ctfsm.f rename to lapack/src/ctfsm.f diff --git a/dspl/liblapack/SRC/ctftri.f b/lapack/src/ctftri.f similarity index 100% rename from dspl/liblapack/SRC/ctftri.f rename to lapack/src/ctftri.f diff --git a/dspl/liblapack/SRC/ctfttp.f b/lapack/src/ctfttp.f similarity index 100% rename from dspl/liblapack/SRC/ctfttp.f rename to lapack/src/ctfttp.f diff --git a/dspl/liblapack/SRC/ctfttr.f b/lapack/src/ctfttr.f similarity index 100% rename from dspl/liblapack/SRC/ctfttr.f rename to lapack/src/ctfttr.f diff --git a/dspl/liblapack/SRC/ctgevc.f b/lapack/src/ctgevc.f similarity index 100% rename from dspl/liblapack/SRC/ctgevc.f rename to lapack/src/ctgevc.f diff --git a/dspl/liblapack/SRC/ctgex2.f b/lapack/src/ctgex2.f similarity index 100% rename from dspl/liblapack/SRC/ctgex2.f rename to lapack/src/ctgex2.f diff --git a/dspl/liblapack/SRC/ctgexc.f b/lapack/src/ctgexc.f similarity index 100% rename from dspl/liblapack/SRC/ctgexc.f rename to lapack/src/ctgexc.f diff --git a/dspl/liblapack/SRC/ctgsen.f b/lapack/src/ctgsen.f similarity index 100% rename from dspl/liblapack/SRC/ctgsen.f rename to lapack/src/ctgsen.f diff --git a/dspl/liblapack/SRC/ctgsja.f b/lapack/src/ctgsja.f similarity index 100% rename from dspl/liblapack/SRC/ctgsja.f rename to lapack/src/ctgsja.f diff --git a/dspl/liblapack/SRC/ctgsna.f b/lapack/src/ctgsna.f similarity index 100% rename from dspl/liblapack/SRC/ctgsna.f rename to lapack/src/ctgsna.f diff --git a/dspl/liblapack/SRC/ctgsy2.f b/lapack/src/ctgsy2.f similarity index 100% rename from dspl/liblapack/SRC/ctgsy2.f rename to lapack/src/ctgsy2.f diff --git a/dspl/liblapack/SRC/ctgsyl.f b/lapack/src/ctgsyl.f similarity index 100% rename from dspl/liblapack/SRC/ctgsyl.f rename to lapack/src/ctgsyl.f diff --git a/dspl/liblapack/SRC/ctpcon.f b/lapack/src/ctpcon.f similarity index 100% rename from dspl/liblapack/SRC/ctpcon.f rename to lapack/src/ctpcon.f diff --git a/dspl/liblapack/SRC/ctplqt.f b/lapack/src/ctplqt.f similarity index 100% rename from dspl/liblapack/SRC/ctplqt.f rename to lapack/src/ctplqt.f diff --git a/dspl/liblapack/SRC/ctplqt2.f b/lapack/src/ctplqt2.f similarity index 100% rename from dspl/liblapack/SRC/ctplqt2.f rename to lapack/src/ctplqt2.f diff --git a/dspl/liblapack/SRC/ctpmlqt.f b/lapack/src/ctpmlqt.f similarity index 100% rename from dspl/liblapack/SRC/ctpmlqt.f rename to lapack/src/ctpmlqt.f diff --git a/dspl/liblapack/SRC/ctpmqrt.f b/lapack/src/ctpmqrt.f similarity index 100% rename from dspl/liblapack/SRC/ctpmqrt.f rename to lapack/src/ctpmqrt.f diff --git a/dspl/liblapack/SRC/ctpqrt.f b/lapack/src/ctpqrt.f similarity index 100% rename from dspl/liblapack/SRC/ctpqrt.f rename to lapack/src/ctpqrt.f diff --git a/dspl/liblapack/SRC/ctpqrt2.f b/lapack/src/ctpqrt2.f similarity index 100% rename from dspl/liblapack/SRC/ctpqrt2.f rename to lapack/src/ctpqrt2.f diff --git a/dspl/liblapack/SRC/ctprfb.f b/lapack/src/ctprfb.f similarity index 100% rename from dspl/liblapack/SRC/ctprfb.f rename to lapack/src/ctprfb.f diff --git a/dspl/liblapack/SRC/ctprfs.f b/lapack/src/ctprfs.f similarity index 100% rename from dspl/liblapack/SRC/ctprfs.f rename to lapack/src/ctprfs.f diff --git a/dspl/liblapack/SRC/ctptri.f b/lapack/src/ctptri.f similarity index 100% rename from dspl/liblapack/SRC/ctptri.f rename to lapack/src/ctptri.f diff --git a/dspl/liblapack/SRC/ctptrs.f b/lapack/src/ctptrs.f similarity index 100% rename from dspl/liblapack/SRC/ctptrs.f rename to lapack/src/ctptrs.f diff --git a/dspl/liblapack/SRC/ctpttf.f b/lapack/src/ctpttf.f similarity index 100% rename from dspl/liblapack/SRC/ctpttf.f rename to lapack/src/ctpttf.f diff --git a/dspl/liblapack/SRC/ctpttr.f b/lapack/src/ctpttr.f similarity index 100% rename from dspl/liblapack/SRC/ctpttr.f rename to lapack/src/ctpttr.f diff --git a/dspl/liblapack/SRC/ctrcon.f b/lapack/src/ctrcon.f similarity index 100% rename from dspl/liblapack/SRC/ctrcon.f rename to lapack/src/ctrcon.f diff --git a/dspl/liblapack/SRC/ctrevc.f b/lapack/src/ctrevc.f similarity index 100% rename from dspl/liblapack/SRC/ctrevc.f rename to lapack/src/ctrevc.f diff --git a/dspl/liblapack/SRC/ctrevc3.f b/lapack/src/ctrevc3.f similarity index 100% rename from dspl/liblapack/SRC/ctrevc3.f rename to lapack/src/ctrevc3.f diff --git a/dspl/liblapack/SRC/ctrexc.f b/lapack/src/ctrexc.f similarity index 100% rename from dspl/liblapack/SRC/ctrexc.f rename to lapack/src/ctrexc.f diff --git a/dspl/liblapack/SRC/ctrrfs.f b/lapack/src/ctrrfs.f similarity index 100% rename from dspl/liblapack/SRC/ctrrfs.f rename to lapack/src/ctrrfs.f diff --git a/dspl/liblapack/SRC/ctrsen.f b/lapack/src/ctrsen.f similarity index 100% rename from dspl/liblapack/SRC/ctrsen.f rename to lapack/src/ctrsen.f diff --git a/dspl/liblapack/SRC/ctrsna.f b/lapack/src/ctrsna.f similarity index 100% rename from dspl/liblapack/SRC/ctrsna.f rename to lapack/src/ctrsna.f diff --git a/dspl/liblapack/SRC/ctrsyl.f b/lapack/src/ctrsyl.f similarity index 100% rename from dspl/liblapack/SRC/ctrsyl.f rename to lapack/src/ctrsyl.f diff --git a/dspl/liblapack/SRC/ctrti2.f b/lapack/src/ctrti2.f similarity index 100% rename from dspl/liblapack/SRC/ctrti2.f rename to lapack/src/ctrti2.f diff --git a/dspl/liblapack/SRC/ctrtri.f b/lapack/src/ctrtri.f similarity index 100% rename from dspl/liblapack/SRC/ctrtri.f rename to lapack/src/ctrtri.f diff --git a/dspl/liblapack/SRC/ctrtrs.f b/lapack/src/ctrtrs.f similarity index 100% rename from dspl/liblapack/SRC/ctrtrs.f rename to lapack/src/ctrtrs.f diff --git a/dspl/liblapack/SRC/ctrttf.f b/lapack/src/ctrttf.f similarity index 100% rename from dspl/liblapack/SRC/ctrttf.f rename to lapack/src/ctrttf.f diff --git a/dspl/liblapack/SRC/ctrttp.f b/lapack/src/ctrttp.f similarity index 100% rename from dspl/liblapack/SRC/ctrttp.f rename to lapack/src/ctrttp.f diff --git a/dspl/liblapack/SRC/ctzrzf.f b/lapack/src/ctzrzf.f similarity index 100% rename from dspl/liblapack/SRC/ctzrzf.f rename to lapack/src/ctzrzf.f diff --git a/dspl/liblapack/SRC/cunbdb.f b/lapack/src/cunbdb.f similarity index 100% rename from dspl/liblapack/SRC/cunbdb.f rename to lapack/src/cunbdb.f diff --git a/dspl/liblapack/SRC/cunbdb1.f b/lapack/src/cunbdb1.f similarity index 100% rename from dspl/liblapack/SRC/cunbdb1.f rename to lapack/src/cunbdb1.f diff --git a/dspl/liblapack/SRC/cunbdb2.f b/lapack/src/cunbdb2.f similarity index 100% rename from dspl/liblapack/SRC/cunbdb2.f rename to lapack/src/cunbdb2.f diff --git a/dspl/liblapack/SRC/cunbdb3.f b/lapack/src/cunbdb3.f similarity index 100% rename from dspl/liblapack/SRC/cunbdb3.f rename to lapack/src/cunbdb3.f diff --git a/dspl/liblapack/SRC/cunbdb4.f b/lapack/src/cunbdb4.f similarity index 100% rename from dspl/liblapack/SRC/cunbdb4.f rename to lapack/src/cunbdb4.f diff --git a/dspl/liblapack/SRC/cunbdb5.f b/lapack/src/cunbdb5.f similarity index 100% rename from dspl/liblapack/SRC/cunbdb5.f rename to lapack/src/cunbdb5.f diff --git a/dspl/liblapack/SRC/cunbdb6.f b/lapack/src/cunbdb6.f similarity index 100% rename from dspl/liblapack/SRC/cunbdb6.f rename to lapack/src/cunbdb6.f diff --git a/dspl/liblapack/SRC/cuncsd.f b/lapack/src/cuncsd.f similarity index 100% rename from dspl/liblapack/SRC/cuncsd.f rename to lapack/src/cuncsd.f diff --git a/dspl/liblapack/SRC/cuncsd2by1.f b/lapack/src/cuncsd2by1.f similarity index 100% rename from dspl/liblapack/SRC/cuncsd2by1.f rename to lapack/src/cuncsd2by1.f diff --git a/dspl/liblapack/SRC/cung2l.f b/lapack/src/cung2l.f similarity index 100% rename from dspl/liblapack/SRC/cung2l.f rename to lapack/src/cung2l.f diff --git a/dspl/liblapack/SRC/cung2r.f b/lapack/src/cung2r.f similarity index 100% rename from dspl/liblapack/SRC/cung2r.f rename to lapack/src/cung2r.f diff --git a/dspl/liblapack/SRC/cungbr.f b/lapack/src/cungbr.f similarity index 100% rename from dspl/liblapack/SRC/cungbr.f rename to lapack/src/cungbr.f diff --git a/dspl/liblapack/SRC/cunghr.f b/lapack/src/cunghr.f similarity index 100% rename from dspl/liblapack/SRC/cunghr.f rename to lapack/src/cunghr.f diff --git a/dspl/liblapack/SRC/cungl2.f b/lapack/src/cungl2.f similarity index 100% rename from dspl/liblapack/SRC/cungl2.f rename to lapack/src/cungl2.f diff --git a/dspl/liblapack/SRC/cunglq.f b/lapack/src/cunglq.f similarity index 100% rename from dspl/liblapack/SRC/cunglq.f rename to lapack/src/cunglq.f diff --git a/dspl/liblapack/SRC/cungql.f b/lapack/src/cungql.f similarity index 100% rename from dspl/liblapack/SRC/cungql.f rename to lapack/src/cungql.f diff --git a/dspl/liblapack/SRC/cungqr.f b/lapack/src/cungqr.f similarity index 100% rename from dspl/liblapack/SRC/cungqr.f rename to lapack/src/cungqr.f diff --git a/dspl/liblapack/SRC/cungr2.f b/lapack/src/cungr2.f similarity index 100% rename from dspl/liblapack/SRC/cungr2.f rename to lapack/src/cungr2.f diff --git a/dspl/liblapack/SRC/cungrq.f b/lapack/src/cungrq.f similarity index 100% rename from dspl/liblapack/SRC/cungrq.f rename to lapack/src/cungrq.f diff --git a/dspl/liblapack/SRC/cungtr.f b/lapack/src/cungtr.f similarity index 100% rename from dspl/liblapack/SRC/cungtr.f rename to lapack/src/cungtr.f diff --git a/dspl/liblapack/SRC/cunm22.f b/lapack/src/cunm22.f similarity index 100% rename from dspl/liblapack/SRC/cunm22.f rename to lapack/src/cunm22.f diff --git a/dspl/liblapack/SRC/cunm2l.f b/lapack/src/cunm2l.f similarity index 100% rename from dspl/liblapack/SRC/cunm2l.f rename to lapack/src/cunm2l.f diff --git a/dspl/liblapack/SRC/cunm2r.f b/lapack/src/cunm2r.f similarity index 100% rename from dspl/liblapack/SRC/cunm2r.f rename to lapack/src/cunm2r.f diff --git a/dspl/liblapack/SRC/cunmbr.f b/lapack/src/cunmbr.f similarity index 100% rename from dspl/liblapack/SRC/cunmbr.f rename to lapack/src/cunmbr.f diff --git a/dspl/liblapack/SRC/cunmhr.f b/lapack/src/cunmhr.f similarity index 100% rename from dspl/liblapack/SRC/cunmhr.f rename to lapack/src/cunmhr.f diff --git a/dspl/liblapack/SRC/cunml2.f b/lapack/src/cunml2.f similarity index 100% rename from dspl/liblapack/SRC/cunml2.f rename to lapack/src/cunml2.f diff --git a/dspl/liblapack/SRC/cunmlq.f b/lapack/src/cunmlq.f similarity index 100% rename from dspl/liblapack/SRC/cunmlq.f rename to lapack/src/cunmlq.f diff --git a/dspl/liblapack/SRC/cunmql.f b/lapack/src/cunmql.f similarity index 100% rename from dspl/liblapack/SRC/cunmql.f rename to lapack/src/cunmql.f diff --git a/dspl/liblapack/SRC/cunmqr.f b/lapack/src/cunmqr.f similarity index 100% rename from dspl/liblapack/SRC/cunmqr.f rename to lapack/src/cunmqr.f diff --git a/dspl/liblapack/SRC/cunmr2.f b/lapack/src/cunmr2.f similarity index 100% rename from dspl/liblapack/SRC/cunmr2.f rename to lapack/src/cunmr2.f diff --git a/dspl/liblapack/SRC/cunmr3.f b/lapack/src/cunmr3.f similarity index 100% rename from dspl/liblapack/SRC/cunmr3.f rename to lapack/src/cunmr3.f diff --git a/dspl/liblapack/SRC/cunmrq.f b/lapack/src/cunmrq.f similarity index 100% rename from dspl/liblapack/SRC/cunmrq.f rename to lapack/src/cunmrq.f diff --git a/dspl/liblapack/SRC/cunmrz.f b/lapack/src/cunmrz.f similarity index 100% rename from dspl/liblapack/SRC/cunmrz.f rename to lapack/src/cunmrz.f diff --git a/dspl/liblapack/SRC/cunmtr.f b/lapack/src/cunmtr.f similarity index 100% rename from dspl/liblapack/SRC/cunmtr.f rename to lapack/src/cunmtr.f diff --git a/dspl/liblapack/SRC/cupgtr.f b/lapack/src/cupgtr.f similarity index 100% rename from dspl/liblapack/SRC/cupgtr.f rename to lapack/src/cupgtr.f diff --git a/dspl/liblapack/SRC/cupmtr.f b/lapack/src/cupmtr.f similarity index 100% rename from dspl/liblapack/SRC/cupmtr.f rename to lapack/src/cupmtr.f diff --git a/dspl/liblapack/SRC/dbbcsd.f b/lapack/src/dbbcsd.f similarity index 100% rename from dspl/liblapack/SRC/dbbcsd.f rename to lapack/src/dbbcsd.f diff --git a/dspl/liblapack/SRC/dbdsdc.f b/lapack/src/dbdsdc.f similarity index 100% rename from dspl/liblapack/SRC/dbdsdc.f rename to lapack/src/dbdsdc.f diff --git a/dspl/liblapack/SRC/dbdsqr.f b/lapack/src/dbdsqr.f similarity index 100% rename from dspl/liblapack/SRC/dbdsqr.f rename to lapack/src/dbdsqr.f diff --git a/dspl/liblapack/SRC/dbdsvdx.f b/lapack/src/dbdsvdx.f similarity index 100% rename from dspl/liblapack/SRC/dbdsvdx.f rename to lapack/src/dbdsvdx.f diff --git a/dspl/liblapack/SRC/ddisna.f b/lapack/src/ddisna.f similarity index 100% rename from dspl/liblapack/SRC/ddisna.f rename to lapack/src/ddisna.f diff --git a/dspl/liblapack/SRC/dgbbrd.f b/lapack/src/dgbbrd.f similarity index 100% rename from dspl/liblapack/SRC/dgbbrd.f rename to lapack/src/dgbbrd.f diff --git a/dspl/liblapack/SRC/dgbcon.f b/lapack/src/dgbcon.f similarity index 100% rename from dspl/liblapack/SRC/dgbcon.f rename to lapack/src/dgbcon.f diff --git a/dspl/liblapack/SRC/dgbequ.f b/lapack/src/dgbequ.f similarity index 100% rename from dspl/liblapack/SRC/dgbequ.f rename to lapack/src/dgbequ.f diff --git a/dspl/liblapack/SRC/dgbequb.f b/lapack/src/dgbequb.f similarity index 100% rename from dspl/liblapack/SRC/dgbequb.f rename to lapack/src/dgbequb.f diff --git a/dspl/liblapack/SRC/dgbrfs.f b/lapack/src/dgbrfs.f similarity index 100% rename from dspl/liblapack/SRC/dgbrfs.f rename to lapack/src/dgbrfs.f diff --git a/dspl/liblapack/SRC/dgbrfsx.f b/lapack/src/dgbrfsx.f similarity index 100% rename from dspl/liblapack/SRC/dgbrfsx.f rename to lapack/src/dgbrfsx.f diff --git a/dspl/liblapack/SRC/dgbsv.f b/lapack/src/dgbsv.f similarity index 100% rename from dspl/liblapack/SRC/dgbsv.f rename to lapack/src/dgbsv.f diff --git a/dspl/liblapack/SRC/dgbsvx.f b/lapack/src/dgbsvx.f similarity index 100% rename from dspl/liblapack/SRC/dgbsvx.f rename to lapack/src/dgbsvx.f diff --git a/dspl/liblapack/SRC/dgbsvxx.f b/lapack/src/dgbsvxx.f similarity index 100% rename from dspl/liblapack/SRC/dgbsvxx.f rename to lapack/src/dgbsvxx.f diff --git a/dspl/liblapack/SRC/dgbtf2.f b/lapack/src/dgbtf2.f similarity index 100% rename from dspl/liblapack/SRC/dgbtf2.f rename to lapack/src/dgbtf2.f diff --git a/dspl/liblapack/SRC/dgbtrf.f b/lapack/src/dgbtrf.f similarity index 100% rename from dspl/liblapack/SRC/dgbtrf.f rename to lapack/src/dgbtrf.f diff --git a/dspl/liblapack/SRC/dgbtrs.f b/lapack/src/dgbtrs.f similarity index 100% rename from dspl/liblapack/SRC/dgbtrs.f rename to lapack/src/dgbtrs.f diff --git a/dspl/liblapack/SRC/dgebak.f b/lapack/src/dgebak.f similarity index 100% rename from dspl/liblapack/SRC/dgebak.f rename to lapack/src/dgebak.f diff --git a/dspl/liblapack/SRC/dgebal.f b/lapack/src/dgebal.f similarity index 100% rename from dspl/liblapack/SRC/dgebal.f rename to lapack/src/dgebal.f diff --git a/dspl/liblapack/SRC/dgebd2.f b/lapack/src/dgebd2.f similarity index 100% rename from dspl/liblapack/SRC/dgebd2.f rename to lapack/src/dgebd2.f diff --git a/dspl/liblapack/SRC/dgebrd.f b/lapack/src/dgebrd.f similarity index 100% rename from dspl/liblapack/SRC/dgebrd.f rename to lapack/src/dgebrd.f diff --git a/dspl/liblapack/SRC/dgecon.f b/lapack/src/dgecon.f similarity index 100% rename from dspl/liblapack/SRC/dgecon.f rename to lapack/src/dgecon.f diff --git a/dspl/liblapack/SRC/dgeequ.f b/lapack/src/dgeequ.f similarity index 100% rename from dspl/liblapack/SRC/dgeequ.f rename to lapack/src/dgeequ.f diff --git a/dspl/liblapack/SRC/dgeequb.f b/lapack/src/dgeequb.f similarity index 100% rename from dspl/liblapack/SRC/dgeequb.f rename to lapack/src/dgeequb.f diff --git a/dspl/liblapack/SRC/dgees.f b/lapack/src/dgees.f similarity index 100% rename from dspl/liblapack/SRC/dgees.f rename to lapack/src/dgees.f diff --git a/dspl/liblapack/SRC/dgeesx.f b/lapack/src/dgeesx.f similarity index 100% rename from dspl/liblapack/SRC/dgeesx.f rename to lapack/src/dgeesx.f diff --git a/dspl/liblapack/SRC/dgeev.f b/lapack/src/dgeev.f similarity index 100% rename from dspl/liblapack/SRC/dgeev.f rename to lapack/src/dgeev.f diff --git a/dspl/liblapack/SRC/dgeevx.f b/lapack/src/dgeevx.f similarity index 100% rename from dspl/liblapack/SRC/dgeevx.f rename to lapack/src/dgeevx.f diff --git a/dspl/liblapack/SRC/dgehd2.f b/lapack/src/dgehd2.f similarity index 100% rename from dspl/liblapack/SRC/dgehd2.f rename to lapack/src/dgehd2.f diff --git a/dspl/liblapack/SRC/dgehrd.f b/lapack/src/dgehrd.f similarity index 100% rename from dspl/liblapack/SRC/dgehrd.f rename to lapack/src/dgehrd.f diff --git a/dspl/liblapack/SRC/dgejsv.f b/lapack/src/dgejsv.f similarity index 100% rename from dspl/liblapack/SRC/dgejsv.f rename to lapack/src/dgejsv.f diff --git a/dspl/liblapack/SRC/dgelq.f b/lapack/src/dgelq.f similarity index 100% rename from dspl/liblapack/SRC/dgelq.f rename to lapack/src/dgelq.f diff --git a/dspl/liblapack/SRC/dgelq2.f b/lapack/src/dgelq2.f similarity index 100% rename from dspl/liblapack/SRC/dgelq2.f rename to lapack/src/dgelq2.f diff --git a/dspl/liblapack/SRC/dgelqf.f b/lapack/src/dgelqf.f similarity index 100% rename from dspl/liblapack/SRC/dgelqf.f rename to lapack/src/dgelqf.f diff --git a/dspl/liblapack/SRC/dgelqt.f b/lapack/src/dgelqt.f similarity index 100% rename from dspl/liblapack/SRC/dgelqt.f rename to lapack/src/dgelqt.f diff --git a/dspl/liblapack/SRC/dgelqt3.f b/lapack/src/dgelqt3.f similarity index 100% rename from dspl/liblapack/SRC/dgelqt3.f rename to lapack/src/dgelqt3.f diff --git a/dspl/liblapack/SRC/dgels.f b/lapack/src/dgels.f similarity index 100% rename from dspl/liblapack/SRC/dgels.f rename to lapack/src/dgels.f diff --git a/dspl/liblapack/SRC/dgelsd.f b/lapack/src/dgelsd.f similarity index 100% rename from dspl/liblapack/SRC/dgelsd.f rename to lapack/src/dgelsd.f diff --git a/dspl/liblapack/SRC/dgelss.f b/lapack/src/dgelss.f similarity index 100% rename from dspl/liblapack/SRC/dgelss.f rename to lapack/src/dgelss.f diff --git a/dspl/liblapack/SRC/dgelsy.f b/lapack/src/dgelsy.f similarity index 100% rename from dspl/liblapack/SRC/dgelsy.f rename to lapack/src/dgelsy.f diff --git a/dspl/liblapack/SRC/dgemlq.f b/lapack/src/dgemlq.f similarity index 100% rename from dspl/liblapack/SRC/dgemlq.f rename to lapack/src/dgemlq.f diff --git a/dspl/liblapack/SRC/dgemlqt.f b/lapack/src/dgemlqt.f similarity index 100% rename from dspl/liblapack/SRC/dgemlqt.f rename to lapack/src/dgemlqt.f diff --git a/dspl/liblapack/SRC/dgemqr.f b/lapack/src/dgemqr.f similarity index 100% rename from dspl/liblapack/SRC/dgemqr.f rename to lapack/src/dgemqr.f diff --git a/dspl/liblapack/SRC/dgemqrt.f b/lapack/src/dgemqrt.f similarity index 100% rename from dspl/liblapack/SRC/dgemqrt.f rename to lapack/src/dgemqrt.f diff --git a/dspl/liblapack/SRC/dgeql2.f b/lapack/src/dgeql2.f similarity index 100% rename from dspl/liblapack/SRC/dgeql2.f rename to lapack/src/dgeql2.f diff --git a/dspl/liblapack/SRC/dgeqlf.f b/lapack/src/dgeqlf.f similarity index 100% rename from dspl/liblapack/SRC/dgeqlf.f rename to lapack/src/dgeqlf.f diff --git a/dspl/liblapack/SRC/dgeqp3.f b/lapack/src/dgeqp3.f similarity index 100% rename from dspl/liblapack/SRC/dgeqp3.f rename to lapack/src/dgeqp3.f diff --git a/dspl/liblapack/SRC/dgeqr.f b/lapack/src/dgeqr.f similarity index 100% rename from dspl/liblapack/SRC/dgeqr.f rename to lapack/src/dgeqr.f diff --git a/dspl/liblapack/SRC/dgeqr2.f b/lapack/src/dgeqr2.f similarity index 100% rename from dspl/liblapack/SRC/dgeqr2.f rename to lapack/src/dgeqr2.f diff --git a/dspl/liblapack/SRC/dgeqr2p.f b/lapack/src/dgeqr2p.f similarity index 100% rename from dspl/liblapack/SRC/dgeqr2p.f rename to lapack/src/dgeqr2p.f diff --git a/dspl/liblapack/SRC/dgeqrf.f b/lapack/src/dgeqrf.f similarity index 100% rename from dspl/liblapack/SRC/dgeqrf.f rename to lapack/src/dgeqrf.f diff --git a/dspl/liblapack/SRC/dgeqrfp.f b/lapack/src/dgeqrfp.f similarity index 100% rename from dspl/liblapack/SRC/dgeqrfp.f rename to lapack/src/dgeqrfp.f diff --git a/dspl/liblapack/SRC/dgeqrt.f b/lapack/src/dgeqrt.f similarity index 100% rename from dspl/liblapack/SRC/dgeqrt.f rename to lapack/src/dgeqrt.f diff --git a/dspl/liblapack/SRC/dgeqrt2.f b/lapack/src/dgeqrt2.f similarity index 100% rename from dspl/liblapack/SRC/dgeqrt2.f rename to lapack/src/dgeqrt2.f diff --git a/dspl/liblapack/SRC/dgeqrt3.f b/lapack/src/dgeqrt3.f similarity index 100% rename from dspl/liblapack/SRC/dgeqrt3.f rename to lapack/src/dgeqrt3.f diff --git a/dspl/liblapack/SRC/dgerfs.f b/lapack/src/dgerfs.f similarity index 100% rename from dspl/liblapack/SRC/dgerfs.f rename to lapack/src/dgerfs.f diff --git a/dspl/liblapack/SRC/dgerfsx.f b/lapack/src/dgerfsx.f similarity index 100% rename from dspl/liblapack/SRC/dgerfsx.f rename to lapack/src/dgerfsx.f diff --git a/dspl/liblapack/SRC/dgerq2.f b/lapack/src/dgerq2.f similarity index 100% rename from dspl/liblapack/SRC/dgerq2.f rename to lapack/src/dgerq2.f diff --git a/dspl/liblapack/SRC/dgerqf.f b/lapack/src/dgerqf.f similarity index 100% rename from dspl/liblapack/SRC/dgerqf.f rename to lapack/src/dgerqf.f diff --git a/dspl/liblapack/SRC/dgesc2.f b/lapack/src/dgesc2.f similarity index 100% rename from dspl/liblapack/SRC/dgesc2.f rename to lapack/src/dgesc2.f diff --git a/dspl/liblapack/SRC/dgesdd.f b/lapack/src/dgesdd.f similarity index 100% rename from dspl/liblapack/SRC/dgesdd.f rename to lapack/src/dgesdd.f diff --git a/dspl/liblapack/SRC/dgesv.f b/lapack/src/dgesv.f similarity index 100% rename from dspl/liblapack/SRC/dgesv.f rename to lapack/src/dgesv.f diff --git a/dspl/liblapack/SRC/dgesvd.f b/lapack/src/dgesvd.f similarity index 100% rename from dspl/liblapack/SRC/dgesvd.f rename to lapack/src/dgesvd.f diff --git a/dspl/liblapack/SRC/dgesvdx.f b/lapack/src/dgesvdx.f similarity index 100% rename from dspl/liblapack/SRC/dgesvdx.f rename to lapack/src/dgesvdx.f diff --git a/dspl/liblapack/SRC/dgesvj.f b/lapack/src/dgesvj.f similarity index 100% rename from dspl/liblapack/SRC/dgesvj.f rename to lapack/src/dgesvj.f diff --git a/dspl/liblapack/SRC/dgesvx.f b/lapack/src/dgesvx.f similarity index 100% rename from dspl/liblapack/SRC/dgesvx.f rename to lapack/src/dgesvx.f diff --git a/dspl/liblapack/SRC/dgesvxx.f b/lapack/src/dgesvxx.f similarity index 100% rename from dspl/liblapack/SRC/dgesvxx.f rename to lapack/src/dgesvxx.f diff --git a/dspl/liblapack/SRC/dgetc2.f b/lapack/src/dgetc2.f similarity index 100% rename from dspl/liblapack/SRC/dgetc2.f rename to lapack/src/dgetc2.f diff --git a/dspl/liblapack/SRC/dgetf2.f b/lapack/src/dgetf2.f similarity index 100% rename from dspl/liblapack/SRC/dgetf2.f rename to lapack/src/dgetf2.f diff --git a/dspl/liblapack/SRC/dgetrf.f b/lapack/src/dgetrf.f similarity index 100% rename from dspl/liblapack/SRC/dgetrf.f rename to lapack/src/dgetrf.f diff --git a/dspl/liblapack/SRC/dgetrf2.f b/lapack/src/dgetrf2.f similarity index 100% rename from dspl/liblapack/SRC/dgetrf2.f rename to lapack/src/dgetrf2.f diff --git a/dspl/liblapack/SRC/dgetri.f b/lapack/src/dgetri.f similarity index 100% rename from dspl/liblapack/SRC/dgetri.f rename to lapack/src/dgetri.f diff --git a/dspl/liblapack/SRC/dgetrs.f b/lapack/src/dgetrs.f similarity index 100% rename from dspl/liblapack/SRC/dgetrs.f rename to lapack/src/dgetrs.f diff --git a/dspl/liblapack/SRC/dgetsls.f b/lapack/src/dgetsls.f similarity index 100% rename from dspl/liblapack/SRC/dgetsls.f rename to lapack/src/dgetsls.f diff --git a/dspl/liblapack/SRC/dggbak.f b/lapack/src/dggbak.f similarity index 100% rename from dspl/liblapack/SRC/dggbak.f rename to lapack/src/dggbak.f diff --git a/dspl/liblapack/SRC/dggbal.f b/lapack/src/dggbal.f similarity index 100% rename from dspl/liblapack/SRC/dggbal.f rename to lapack/src/dggbal.f diff --git a/dspl/liblapack/SRC/dgges.f b/lapack/src/dgges.f similarity index 100% rename from dspl/liblapack/SRC/dgges.f rename to lapack/src/dgges.f diff --git a/dspl/liblapack/SRC/dgges3.f b/lapack/src/dgges3.f similarity index 100% rename from dspl/liblapack/SRC/dgges3.f rename to lapack/src/dgges3.f diff --git a/dspl/liblapack/SRC/dggesx.f b/lapack/src/dggesx.f similarity index 100% rename from dspl/liblapack/SRC/dggesx.f rename to lapack/src/dggesx.f diff --git a/dspl/liblapack/SRC/dggev.f b/lapack/src/dggev.f similarity index 100% rename from dspl/liblapack/SRC/dggev.f rename to lapack/src/dggev.f diff --git a/dspl/liblapack/SRC/dggev3.f b/lapack/src/dggev3.f similarity index 100% rename from dspl/liblapack/SRC/dggev3.f rename to lapack/src/dggev3.f diff --git a/dspl/liblapack/SRC/dggevx.f b/lapack/src/dggevx.f similarity index 100% rename from dspl/liblapack/SRC/dggevx.f rename to lapack/src/dggevx.f diff --git a/dspl/liblapack/SRC/dggglm.f b/lapack/src/dggglm.f similarity index 100% rename from dspl/liblapack/SRC/dggglm.f rename to lapack/src/dggglm.f diff --git a/dspl/liblapack/SRC/dgghd3.f b/lapack/src/dgghd3.f similarity index 100% rename from dspl/liblapack/SRC/dgghd3.f rename to lapack/src/dgghd3.f diff --git a/dspl/liblapack/SRC/dgghrd.f b/lapack/src/dgghrd.f similarity index 100% rename from dspl/liblapack/SRC/dgghrd.f rename to lapack/src/dgghrd.f diff --git a/dspl/liblapack/SRC/dgglse.f b/lapack/src/dgglse.f similarity index 100% rename from dspl/liblapack/SRC/dgglse.f rename to lapack/src/dgglse.f diff --git a/dspl/liblapack/SRC/dggqrf.f b/lapack/src/dggqrf.f similarity index 100% rename from dspl/liblapack/SRC/dggqrf.f rename to lapack/src/dggqrf.f diff --git a/dspl/liblapack/SRC/dggrqf.f b/lapack/src/dggrqf.f similarity index 100% rename from dspl/liblapack/SRC/dggrqf.f rename to lapack/src/dggrqf.f diff --git a/dspl/liblapack/SRC/dggsvd3.f b/lapack/src/dggsvd3.f similarity index 100% rename from dspl/liblapack/SRC/dggsvd3.f rename to lapack/src/dggsvd3.f diff --git a/dspl/liblapack/SRC/dggsvp3.f b/lapack/src/dggsvp3.f similarity index 100% rename from dspl/liblapack/SRC/dggsvp3.f rename to lapack/src/dggsvp3.f diff --git a/dspl/liblapack/SRC/dgsvj0.f b/lapack/src/dgsvj0.f similarity index 100% rename from dspl/liblapack/SRC/dgsvj0.f rename to lapack/src/dgsvj0.f diff --git a/dspl/liblapack/SRC/dgsvj1.f b/lapack/src/dgsvj1.f similarity index 100% rename from dspl/liblapack/SRC/dgsvj1.f rename to lapack/src/dgsvj1.f diff --git a/dspl/liblapack/SRC/dgtcon.f b/lapack/src/dgtcon.f similarity index 100% rename from dspl/liblapack/SRC/dgtcon.f rename to lapack/src/dgtcon.f diff --git a/dspl/liblapack/SRC/dgtrfs.f b/lapack/src/dgtrfs.f similarity index 100% rename from dspl/liblapack/SRC/dgtrfs.f rename to lapack/src/dgtrfs.f diff --git a/dspl/liblapack/SRC/dgtsv.f b/lapack/src/dgtsv.f similarity index 100% rename from dspl/liblapack/SRC/dgtsv.f rename to lapack/src/dgtsv.f diff --git a/dspl/liblapack/SRC/dgtsvx.f b/lapack/src/dgtsvx.f similarity index 100% rename from dspl/liblapack/SRC/dgtsvx.f rename to lapack/src/dgtsvx.f diff --git a/dspl/liblapack/SRC/dgttrf.f b/lapack/src/dgttrf.f similarity index 100% rename from dspl/liblapack/SRC/dgttrf.f rename to lapack/src/dgttrf.f diff --git a/dspl/liblapack/SRC/dgttrs.f b/lapack/src/dgttrs.f similarity index 100% rename from dspl/liblapack/SRC/dgttrs.f rename to lapack/src/dgttrs.f diff --git a/dspl/liblapack/SRC/dgtts2.f b/lapack/src/dgtts2.f similarity index 100% rename from dspl/liblapack/SRC/dgtts2.f rename to lapack/src/dgtts2.f diff --git a/dspl/liblapack/SRC/dhgeqz.f b/lapack/src/dhgeqz.f similarity index 100% rename from dspl/liblapack/SRC/dhgeqz.f rename to lapack/src/dhgeqz.f diff --git a/dspl/liblapack/SRC/dhsein.f b/lapack/src/dhsein.f similarity index 100% rename from dspl/liblapack/SRC/dhsein.f rename to lapack/src/dhsein.f diff --git a/dspl/liblapack/SRC/dhseqr.f b/lapack/src/dhseqr.f similarity index 100% rename from dspl/liblapack/SRC/dhseqr.f rename to lapack/src/dhseqr.f diff --git a/dspl/liblapack/SRC/disnan.f b/lapack/src/disnan.f similarity index 100% rename from dspl/liblapack/SRC/disnan.f rename to lapack/src/disnan.f diff --git a/dspl/liblapack/SRC/dla_gbamv.f b/lapack/src/dla_gbamv.f similarity index 100% rename from dspl/liblapack/SRC/dla_gbamv.f rename to lapack/src/dla_gbamv.f diff --git a/dspl/liblapack/SRC/dla_gbrcond.f b/lapack/src/dla_gbrcond.f similarity index 100% rename from dspl/liblapack/SRC/dla_gbrcond.f rename to lapack/src/dla_gbrcond.f diff --git a/dspl/liblapack/SRC/dla_gbrfsx_extended.f b/lapack/src/dla_gbrfsx_extended.f similarity index 100% rename from dspl/liblapack/SRC/dla_gbrfsx_extended.f rename to lapack/src/dla_gbrfsx_extended.f diff --git a/dspl/liblapack/SRC/dla_gbrpvgrw.f b/lapack/src/dla_gbrpvgrw.f similarity index 100% rename from dspl/liblapack/SRC/dla_gbrpvgrw.f rename to lapack/src/dla_gbrpvgrw.f diff --git a/dspl/liblapack/SRC/dla_geamv.f b/lapack/src/dla_geamv.f similarity index 100% rename from dspl/liblapack/SRC/dla_geamv.f rename to lapack/src/dla_geamv.f diff --git a/dspl/liblapack/SRC/dla_gercond.f b/lapack/src/dla_gercond.f similarity index 100% rename from dspl/liblapack/SRC/dla_gercond.f rename to lapack/src/dla_gercond.f diff --git a/dspl/liblapack/SRC/dla_gerfsx_extended.f b/lapack/src/dla_gerfsx_extended.f similarity index 100% rename from dspl/liblapack/SRC/dla_gerfsx_extended.f rename to lapack/src/dla_gerfsx_extended.f diff --git a/dspl/liblapack/SRC/dla_gerpvgrw.f b/lapack/src/dla_gerpvgrw.f similarity index 100% rename from dspl/liblapack/SRC/dla_gerpvgrw.f rename to lapack/src/dla_gerpvgrw.f diff --git a/dspl/liblapack/SRC/dla_lin_berr.f b/lapack/src/dla_lin_berr.f similarity index 100% rename from dspl/liblapack/SRC/dla_lin_berr.f rename to lapack/src/dla_lin_berr.f diff --git a/dspl/liblapack/SRC/dla_porcond.f b/lapack/src/dla_porcond.f similarity index 100% rename from dspl/liblapack/SRC/dla_porcond.f rename to lapack/src/dla_porcond.f diff --git a/dspl/liblapack/SRC/dla_porfsx_extended.f b/lapack/src/dla_porfsx_extended.f similarity index 100% rename from dspl/liblapack/SRC/dla_porfsx_extended.f rename to lapack/src/dla_porfsx_extended.f diff --git a/dspl/liblapack/SRC/dla_porpvgrw.f b/lapack/src/dla_porpvgrw.f similarity index 100% rename from dspl/liblapack/SRC/dla_porpvgrw.f rename to lapack/src/dla_porpvgrw.f diff --git a/dspl/liblapack/SRC/dla_syamv.f b/lapack/src/dla_syamv.f similarity index 100% rename from dspl/liblapack/SRC/dla_syamv.f rename to lapack/src/dla_syamv.f diff --git a/dspl/liblapack/SRC/dla_syrcond.f b/lapack/src/dla_syrcond.f similarity index 100% rename from dspl/liblapack/SRC/dla_syrcond.f rename to lapack/src/dla_syrcond.f diff --git a/dspl/liblapack/SRC/dla_syrfsx_extended.f b/lapack/src/dla_syrfsx_extended.f similarity index 100% rename from dspl/liblapack/SRC/dla_syrfsx_extended.f rename to lapack/src/dla_syrfsx_extended.f diff --git a/dspl/liblapack/SRC/dla_syrpvgrw.f b/lapack/src/dla_syrpvgrw.f similarity index 100% rename from dspl/liblapack/SRC/dla_syrpvgrw.f rename to lapack/src/dla_syrpvgrw.f diff --git a/dspl/liblapack/SRC/dla_wwaddw.f b/lapack/src/dla_wwaddw.f similarity index 100% rename from dspl/liblapack/SRC/dla_wwaddw.f rename to lapack/src/dla_wwaddw.f diff --git a/dspl/liblapack/SRC/dlabad.f b/lapack/src/dlabad.f similarity index 100% rename from dspl/liblapack/SRC/dlabad.f rename to lapack/src/dlabad.f diff --git a/dspl/liblapack/SRC/dlabrd.f b/lapack/src/dlabrd.f similarity index 100% rename from dspl/liblapack/SRC/dlabrd.f rename to lapack/src/dlabrd.f diff --git a/dspl/liblapack/SRC/dlacn2.f b/lapack/src/dlacn2.f similarity index 100% rename from dspl/liblapack/SRC/dlacn2.f rename to lapack/src/dlacn2.f diff --git a/dspl/liblapack/SRC/dlacon.f b/lapack/src/dlacon.f similarity index 100% rename from dspl/liblapack/SRC/dlacon.f rename to lapack/src/dlacon.f diff --git a/dspl/liblapack/SRC/dlacpy.f b/lapack/src/dlacpy.f similarity index 100% rename from dspl/liblapack/SRC/dlacpy.f rename to lapack/src/dlacpy.f diff --git a/dspl/liblapack/SRC/dladiv.f b/lapack/src/dladiv.f similarity index 100% rename from dspl/liblapack/SRC/dladiv.f rename to lapack/src/dladiv.f diff --git a/dspl/liblapack/SRC/dlae2.f b/lapack/src/dlae2.f similarity index 100% rename from dspl/liblapack/SRC/dlae2.f rename to lapack/src/dlae2.f diff --git a/dspl/liblapack/SRC/dlaebz.f b/lapack/src/dlaebz.f similarity index 100% rename from dspl/liblapack/SRC/dlaebz.f rename to lapack/src/dlaebz.f diff --git a/dspl/liblapack/SRC/dlaed0.f b/lapack/src/dlaed0.f similarity index 100% rename from dspl/liblapack/SRC/dlaed0.f rename to lapack/src/dlaed0.f diff --git a/dspl/liblapack/SRC/dlaed1.f b/lapack/src/dlaed1.f similarity index 100% rename from dspl/liblapack/SRC/dlaed1.f rename to lapack/src/dlaed1.f diff --git a/dspl/liblapack/SRC/dlaed2.f b/lapack/src/dlaed2.f similarity index 100% rename from dspl/liblapack/SRC/dlaed2.f rename to lapack/src/dlaed2.f diff --git a/dspl/liblapack/SRC/dlaed3.f b/lapack/src/dlaed3.f similarity index 100% rename from dspl/liblapack/SRC/dlaed3.f rename to lapack/src/dlaed3.f diff --git a/dspl/liblapack/SRC/dlaed4.f b/lapack/src/dlaed4.f similarity index 100% rename from dspl/liblapack/SRC/dlaed4.f rename to lapack/src/dlaed4.f diff --git a/dspl/liblapack/SRC/dlaed5.f b/lapack/src/dlaed5.f similarity index 100% rename from dspl/liblapack/SRC/dlaed5.f rename to lapack/src/dlaed5.f diff --git a/dspl/liblapack/SRC/dlaed6.f b/lapack/src/dlaed6.f similarity index 100% rename from dspl/liblapack/SRC/dlaed6.f rename to lapack/src/dlaed6.f diff --git a/dspl/liblapack/SRC/dlaed7.f b/lapack/src/dlaed7.f similarity index 100% rename from dspl/liblapack/SRC/dlaed7.f rename to lapack/src/dlaed7.f diff --git a/dspl/liblapack/SRC/dlaed8.f b/lapack/src/dlaed8.f similarity index 100% rename from dspl/liblapack/SRC/dlaed8.f rename to lapack/src/dlaed8.f diff --git a/dspl/liblapack/SRC/dlaed9.f b/lapack/src/dlaed9.f similarity index 100% rename from dspl/liblapack/SRC/dlaed9.f rename to lapack/src/dlaed9.f diff --git a/dspl/liblapack/SRC/dlaeda.f b/lapack/src/dlaeda.f similarity index 100% rename from dspl/liblapack/SRC/dlaeda.f rename to lapack/src/dlaeda.f diff --git a/dspl/liblapack/SRC/dlaein.f b/lapack/src/dlaein.f similarity index 100% rename from dspl/liblapack/SRC/dlaein.f rename to lapack/src/dlaein.f diff --git a/dspl/liblapack/SRC/dlaev2.f b/lapack/src/dlaev2.f similarity index 100% rename from dspl/liblapack/SRC/dlaev2.f rename to lapack/src/dlaev2.f diff --git a/dspl/liblapack/SRC/dlaexc.f b/lapack/src/dlaexc.f similarity index 100% rename from dspl/liblapack/SRC/dlaexc.f rename to lapack/src/dlaexc.f diff --git a/dspl/liblapack/SRC/dlag2.f b/lapack/src/dlag2.f similarity index 100% rename from dspl/liblapack/SRC/dlag2.f rename to lapack/src/dlag2.f diff --git a/dspl/liblapack/SRC/dlag2s.f b/lapack/src/dlag2s.f similarity index 100% rename from dspl/liblapack/SRC/dlag2s.f rename to lapack/src/dlag2s.f diff --git a/dspl/liblapack/SRC/dlags2.f b/lapack/src/dlags2.f similarity index 100% rename from dspl/liblapack/SRC/dlags2.f rename to lapack/src/dlags2.f diff --git a/dspl/liblapack/SRC/dlagtf.f b/lapack/src/dlagtf.f similarity index 100% rename from dspl/liblapack/SRC/dlagtf.f rename to lapack/src/dlagtf.f diff --git a/dspl/liblapack/SRC/dlagtm.f b/lapack/src/dlagtm.f similarity index 100% rename from dspl/liblapack/SRC/dlagtm.f rename to lapack/src/dlagtm.f diff --git a/dspl/liblapack/SRC/dlagts.f b/lapack/src/dlagts.f similarity index 100% rename from dspl/liblapack/SRC/dlagts.f rename to lapack/src/dlagts.f diff --git a/dspl/liblapack/SRC/dlagv2.f b/lapack/src/dlagv2.f similarity index 100% rename from dspl/liblapack/SRC/dlagv2.f rename to lapack/src/dlagv2.f diff --git a/dspl/liblapack/SRC/dlahqr.f b/lapack/src/dlahqr.f similarity index 100% rename from dspl/liblapack/SRC/dlahqr.f rename to lapack/src/dlahqr.f diff --git a/dspl/liblapack/SRC/dlahr2.f b/lapack/src/dlahr2.f similarity index 100% rename from dspl/liblapack/SRC/dlahr2.f rename to lapack/src/dlahr2.f diff --git a/dspl/liblapack/SRC/dlaic1.f b/lapack/src/dlaic1.f similarity index 100% rename from dspl/liblapack/SRC/dlaic1.f rename to lapack/src/dlaic1.f diff --git a/dspl/liblapack/SRC/dlaisnan.f b/lapack/src/dlaisnan.f similarity index 100% rename from dspl/liblapack/SRC/dlaisnan.f rename to lapack/src/dlaisnan.f diff --git a/dspl/liblapack/SRC/dlaln2.f b/lapack/src/dlaln2.f similarity index 100% rename from dspl/liblapack/SRC/dlaln2.f rename to lapack/src/dlaln2.f diff --git a/dspl/liblapack/SRC/dlals0.f b/lapack/src/dlals0.f similarity index 100% rename from dspl/liblapack/SRC/dlals0.f rename to lapack/src/dlals0.f diff --git a/dspl/liblapack/SRC/dlalsa.f b/lapack/src/dlalsa.f similarity index 100% rename from dspl/liblapack/SRC/dlalsa.f rename to lapack/src/dlalsa.f diff --git a/dspl/liblapack/SRC/dlalsd.f b/lapack/src/dlalsd.f similarity index 100% rename from dspl/liblapack/SRC/dlalsd.f rename to lapack/src/dlalsd.f diff --git a/dspl/liblapack/INSTALL/dlamch.f b/lapack/src/dlamch.f similarity index 100% rename from dspl/liblapack/INSTALL/dlamch.f rename to lapack/src/dlamch.f diff --git a/dspl/liblapack/SRC/dlamrg.f b/lapack/src/dlamrg.f similarity index 100% rename from dspl/liblapack/SRC/dlamrg.f rename to lapack/src/dlamrg.f diff --git a/dspl/liblapack/SRC/dlamswlq.f b/lapack/src/dlamswlq.f similarity index 100% rename from dspl/liblapack/SRC/dlamswlq.f rename to lapack/src/dlamswlq.f diff --git a/dspl/liblapack/SRC/dlamtsqr.f b/lapack/src/dlamtsqr.f similarity index 100% rename from dspl/liblapack/SRC/dlamtsqr.f rename to lapack/src/dlamtsqr.f diff --git a/dspl/liblapack/SRC/dlaneg.f b/lapack/src/dlaneg.f similarity index 100% rename from dspl/liblapack/SRC/dlaneg.f rename to lapack/src/dlaneg.f diff --git a/dspl/liblapack/SRC/dlangb.f b/lapack/src/dlangb.f similarity index 100% rename from dspl/liblapack/SRC/dlangb.f rename to lapack/src/dlangb.f diff --git a/dspl/liblapack/SRC/dlange.f b/lapack/src/dlange.f similarity index 100% rename from dspl/liblapack/SRC/dlange.f rename to lapack/src/dlange.f diff --git a/dspl/liblapack/SRC/dlangt.f b/lapack/src/dlangt.f similarity index 100% rename from dspl/liblapack/SRC/dlangt.f rename to lapack/src/dlangt.f diff --git a/dspl/liblapack/SRC/dlanhs.f b/lapack/src/dlanhs.f similarity index 100% rename from dspl/liblapack/SRC/dlanhs.f rename to lapack/src/dlanhs.f diff --git a/dspl/liblapack/SRC/dlansb.f b/lapack/src/dlansb.f similarity index 100% rename from dspl/liblapack/SRC/dlansb.f rename to lapack/src/dlansb.f diff --git a/dspl/liblapack/SRC/dlansf.f b/lapack/src/dlansf.f similarity index 100% rename from dspl/liblapack/SRC/dlansf.f rename to lapack/src/dlansf.f diff --git a/dspl/liblapack/SRC/dlansp.f b/lapack/src/dlansp.f similarity index 100% rename from dspl/liblapack/SRC/dlansp.f rename to lapack/src/dlansp.f diff --git a/dspl/liblapack/SRC/dlanst.f b/lapack/src/dlanst.f similarity index 100% rename from dspl/liblapack/SRC/dlanst.f rename to lapack/src/dlanst.f diff --git a/dspl/liblapack/SRC/dlansy.f b/lapack/src/dlansy.f similarity index 100% rename from dspl/liblapack/SRC/dlansy.f rename to lapack/src/dlansy.f diff --git a/dspl/liblapack/SRC/dlantb.f b/lapack/src/dlantb.f similarity index 100% rename from dspl/liblapack/SRC/dlantb.f rename to lapack/src/dlantb.f diff --git a/dspl/liblapack/SRC/dlantp.f b/lapack/src/dlantp.f similarity index 100% rename from dspl/liblapack/SRC/dlantp.f rename to lapack/src/dlantp.f diff --git a/dspl/liblapack/SRC/dlantr.f b/lapack/src/dlantr.f similarity index 100% rename from dspl/liblapack/SRC/dlantr.f rename to lapack/src/dlantr.f diff --git a/dspl/liblapack/SRC/dlanv2.f b/lapack/src/dlanv2.f similarity index 100% rename from dspl/liblapack/SRC/dlanv2.f rename to lapack/src/dlanv2.f diff --git a/dspl/liblapack/SRC/dlapll.f b/lapack/src/dlapll.f similarity index 100% rename from dspl/liblapack/SRC/dlapll.f rename to lapack/src/dlapll.f diff --git a/dspl/liblapack/SRC/dlapmr.f b/lapack/src/dlapmr.f similarity index 100% rename from dspl/liblapack/SRC/dlapmr.f rename to lapack/src/dlapmr.f diff --git a/dspl/liblapack/SRC/dlapmt.f b/lapack/src/dlapmt.f similarity index 100% rename from dspl/liblapack/SRC/dlapmt.f rename to lapack/src/dlapmt.f diff --git a/dspl/liblapack/SRC/dlapy2.f b/lapack/src/dlapy2.f similarity index 100% rename from dspl/liblapack/SRC/dlapy2.f rename to lapack/src/dlapy2.f diff --git a/dspl/liblapack/SRC/dlapy3.f b/lapack/src/dlapy3.f similarity index 100% rename from dspl/liblapack/SRC/dlapy3.f rename to lapack/src/dlapy3.f diff --git a/dspl/liblapack/SRC/dlaqgb.f b/lapack/src/dlaqgb.f similarity index 100% rename from dspl/liblapack/SRC/dlaqgb.f rename to lapack/src/dlaqgb.f diff --git a/dspl/liblapack/SRC/dlaqge.f b/lapack/src/dlaqge.f similarity index 100% rename from dspl/liblapack/SRC/dlaqge.f rename to lapack/src/dlaqge.f diff --git a/dspl/liblapack/SRC/dlaqp2.f b/lapack/src/dlaqp2.f similarity index 100% rename from dspl/liblapack/SRC/dlaqp2.f rename to lapack/src/dlaqp2.f diff --git a/dspl/liblapack/SRC/dlaqps.f b/lapack/src/dlaqps.f similarity index 100% rename from dspl/liblapack/SRC/dlaqps.f rename to lapack/src/dlaqps.f diff --git a/dspl/liblapack/SRC/dlaqr0.f b/lapack/src/dlaqr0.f similarity index 100% rename from dspl/liblapack/SRC/dlaqr0.f rename to lapack/src/dlaqr0.f diff --git a/dspl/liblapack/SRC/dlaqr1.f b/lapack/src/dlaqr1.f similarity index 100% rename from dspl/liblapack/SRC/dlaqr1.f rename to lapack/src/dlaqr1.f diff --git a/dspl/liblapack/SRC/dlaqr2.f b/lapack/src/dlaqr2.f similarity index 100% rename from dspl/liblapack/SRC/dlaqr2.f rename to lapack/src/dlaqr2.f diff --git a/dspl/liblapack/SRC/dlaqr3.f b/lapack/src/dlaqr3.f similarity index 100% rename from dspl/liblapack/SRC/dlaqr3.f rename to lapack/src/dlaqr3.f diff --git a/dspl/liblapack/SRC/dlaqr4.f b/lapack/src/dlaqr4.f similarity index 100% rename from dspl/liblapack/SRC/dlaqr4.f rename to lapack/src/dlaqr4.f diff --git a/dspl/liblapack/SRC/dlaqr5.f b/lapack/src/dlaqr5.f similarity index 100% rename from dspl/liblapack/SRC/dlaqr5.f rename to lapack/src/dlaqr5.f diff --git a/dspl/liblapack/SRC/dlaqsb.f b/lapack/src/dlaqsb.f similarity index 100% rename from dspl/liblapack/SRC/dlaqsb.f rename to lapack/src/dlaqsb.f diff --git a/dspl/liblapack/SRC/dlaqsp.f b/lapack/src/dlaqsp.f similarity index 100% rename from dspl/liblapack/SRC/dlaqsp.f rename to lapack/src/dlaqsp.f diff --git a/dspl/liblapack/SRC/dlaqsy.f b/lapack/src/dlaqsy.f similarity index 100% rename from dspl/liblapack/SRC/dlaqsy.f rename to lapack/src/dlaqsy.f diff --git a/dspl/liblapack/SRC/dlaqtr.f b/lapack/src/dlaqtr.f similarity index 100% rename from dspl/liblapack/SRC/dlaqtr.f rename to lapack/src/dlaqtr.f diff --git a/dspl/liblapack/SRC/dlar1v.f b/lapack/src/dlar1v.f similarity index 100% rename from dspl/liblapack/SRC/dlar1v.f rename to lapack/src/dlar1v.f diff --git a/dspl/liblapack/SRC/dlar2v.f b/lapack/src/dlar2v.f similarity index 100% rename from dspl/liblapack/SRC/dlar2v.f rename to lapack/src/dlar2v.f diff --git a/dspl/liblapack/SRC/dlarf.f b/lapack/src/dlarf.f similarity index 100% rename from dspl/liblapack/SRC/dlarf.f rename to lapack/src/dlarf.f diff --git a/dspl/liblapack/SRC/dlarfb.f b/lapack/src/dlarfb.f similarity index 100% rename from dspl/liblapack/SRC/dlarfb.f rename to lapack/src/dlarfb.f diff --git a/dspl/liblapack/SRC/dlarfg.f b/lapack/src/dlarfg.f similarity index 100% rename from dspl/liblapack/SRC/dlarfg.f rename to lapack/src/dlarfg.f diff --git a/dspl/liblapack/SRC/dlarfgp.f b/lapack/src/dlarfgp.f similarity index 100% rename from dspl/liblapack/SRC/dlarfgp.f rename to lapack/src/dlarfgp.f diff --git a/dspl/liblapack/SRC/dlarft.f b/lapack/src/dlarft.f similarity index 100% rename from dspl/liblapack/SRC/dlarft.f rename to lapack/src/dlarft.f diff --git a/dspl/liblapack/SRC/dlarfx.f b/lapack/src/dlarfx.f similarity index 100% rename from dspl/liblapack/SRC/dlarfx.f rename to lapack/src/dlarfx.f diff --git a/dspl/liblapack/SRC/dlarfy.f b/lapack/src/dlarfy.f similarity index 100% rename from dspl/liblapack/SRC/dlarfy.f rename to lapack/src/dlarfy.f diff --git a/dspl/liblapack/SRC/dlargv.f b/lapack/src/dlargv.f similarity index 100% rename from dspl/liblapack/SRC/dlargv.f rename to lapack/src/dlargv.f diff --git a/dspl/liblapack/SRC/dlarnv.f b/lapack/src/dlarnv.f similarity index 100% rename from dspl/liblapack/SRC/dlarnv.f rename to lapack/src/dlarnv.f diff --git a/dspl/liblapack/SRC/dlarra.f b/lapack/src/dlarra.f similarity index 100% rename from dspl/liblapack/SRC/dlarra.f rename to lapack/src/dlarra.f diff --git a/dspl/liblapack/SRC/dlarrb.f b/lapack/src/dlarrb.f similarity index 100% rename from dspl/liblapack/SRC/dlarrb.f rename to lapack/src/dlarrb.f diff --git a/dspl/liblapack/SRC/dlarrc.f b/lapack/src/dlarrc.f similarity index 100% rename from dspl/liblapack/SRC/dlarrc.f rename to lapack/src/dlarrc.f diff --git a/dspl/liblapack/SRC/dlarrd.f b/lapack/src/dlarrd.f similarity index 100% rename from dspl/liblapack/SRC/dlarrd.f rename to lapack/src/dlarrd.f diff --git a/dspl/liblapack/SRC/dlarre.f b/lapack/src/dlarre.f similarity index 100% rename from dspl/liblapack/SRC/dlarre.f rename to lapack/src/dlarre.f diff --git a/dspl/liblapack/SRC/dlarrf.f b/lapack/src/dlarrf.f similarity index 100% rename from dspl/liblapack/SRC/dlarrf.f rename to lapack/src/dlarrf.f diff --git a/dspl/liblapack/SRC/dlarrj.f b/lapack/src/dlarrj.f similarity index 100% rename from dspl/liblapack/SRC/dlarrj.f rename to lapack/src/dlarrj.f diff --git a/dspl/liblapack/SRC/dlarrk.f b/lapack/src/dlarrk.f similarity index 100% rename from dspl/liblapack/SRC/dlarrk.f rename to lapack/src/dlarrk.f diff --git a/dspl/liblapack/SRC/dlarrr.f b/lapack/src/dlarrr.f similarity index 100% rename from dspl/liblapack/SRC/dlarrr.f rename to lapack/src/dlarrr.f diff --git a/dspl/liblapack/SRC/dlarrv.f b/lapack/src/dlarrv.f similarity index 100% rename from dspl/liblapack/SRC/dlarrv.f rename to lapack/src/dlarrv.f diff --git a/dspl/liblapack/SRC/dlarscl2.f b/lapack/src/dlarscl2.f similarity index 100% rename from dspl/liblapack/SRC/dlarscl2.f rename to lapack/src/dlarscl2.f diff --git a/dspl/liblapack/SRC/dlartg.f b/lapack/src/dlartg.f similarity index 100% rename from dspl/liblapack/SRC/dlartg.f rename to lapack/src/dlartg.f diff --git a/dspl/liblapack/SRC/dlartgp.f b/lapack/src/dlartgp.f similarity index 100% rename from dspl/liblapack/SRC/dlartgp.f rename to lapack/src/dlartgp.f diff --git a/dspl/liblapack/SRC/dlartgs.f b/lapack/src/dlartgs.f similarity index 100% rename from dspl/liblapack/SRC/dlartgs.f rename to lapack/src/dlartgs.f diff --git a/dspl/liblapack/SRC/dlartv.f b/lapack/src/dlartv.f similarity index 100% rename from dspl/liblapack/SRC/dlartv.f rename to lapack/src/dlartv.f diff --git a/dspl/liblapack/SRC/dlaruv.f b/lapack/src/dlaruv.f similarity index 100% rename from dspl/liblapack/SRC/dlaruv.f rename to lapack/src/dlaruv.f diff --git a/dspl/liblapack/SRC/dlarz.f b/lapack/src/dlarz.f similarity index 100% rename from dspl/liblapack/SRC/dlarz.f rename to lapack/src/dlarz.f diff --git a/dspl/liblapack/SRC/dlarzb.f b/lapack/src/dlarzb.f similarity index 100% rename from dspl/liblapack/SRC/dlarzb.f rename to lapack/src/dlarzb.f diff --git a/dspl/liblapack/SRC/dlarzt.f b/lapack/src/dlarzt.f similarity index 100% rename from dspl/liblapack/SRC/dlarzt.f rename to lapack/src/dlarzt.f diff --git a/dspl/liblapack/SRC/dlas2.f b/lapack/src/dlas2.f similarity index 100% rename from dspl/liblapack/SRC/dlas2.f rename to lapack/src/dlas2.f diff --git a/dspl/liblapack/SRC/dlascl.f b/lapack/src/dlascl.f similarity index 100% rename from dspl/liblapack/SRC/dlascl.f rename to lapack/src/dlascl.f diff --git a/dspl/liblapack/SRC/dlascl2.f b/lapack/src/dlascl2.f similarity index 100% rename from dspl/liblapack/SRC/dlascl2.f rename to lapack/src/dlascl2.f diff --git a/dspl/liblapack/SRC/dlasd0.f b/lapack/src/dlasd0.f similarity index 100% rename from dspl/liblapack/SRC/dlasd0.f rename to lapack/src/dlasd0.f diff --git a/dspl/liblapack/SRC/dlasd1.f b/lapack/src/dlasd1.f similarity index 100% rename from dspl/liblapack/SRC/dlasd1.f rename to lapack/src/dlasd1.f diff --git a/dspl/liblapack/SRC/dlasd2.f b/lapack/src/dlasd2.f similarity index 100% rename from dspl/liblapack/SRC/dlasd2.f rename to lapack/src/dlasd2.f diff --git a/dspl/liblapack/SRC/dlasd3.f b/lapack/src/dlasd3.f similarity index 100% rename from dspl/liblapack/SRC/dlasd3.f rename to lapack/src/dlasd3.f diff --git a/dspl/liblapack/SRC/dlasd4.f b/lapack/src/dlasd4.f similarity index 100% rename from dspl/liblapack/SRC/dlasd4.f rename to lapack/src/dlasd4.f diff --git a/dspl/liblapack/SRC/dlasd5.f b/lapack/src/dlasd5.f similarity index 100% rename from dspl/liblapack/SRC/dlasd5.f rename to lapack/src/dlasd5.f diff --git a/dspl/liblapack/SRC/dlasd6.f b/lapack/src/dlasd6.f similarity index 100% rename from dspl/liblapack/SRC/dlasd6.f rename to lapack/src/dlasd6.f diff --git a/dspl/liblapack/SRC/dlasd7.f b/lapack/src/dlasd7.f similarity index 100% rename from dspl/liblapack/SRC/dlasd7.f rename to lapack/src/dlasd7.f diff --git a/dspl/liblapack/SRC/dlasd8.f b/lapack/src/dlasd8.f similarity index 100% rename from dspl/liblapack/SRC/dlasd8.f rename to lapack/src/dlasd8.f diff --git a/dspl/liblapack/SRC/dlasda.f b/lapack/src/dlasda.f similarity index 100% rename from dspl/liblapack/SRC/dlasda.f rename to lapack/src/dlasda.f diff --git a/dspl/liblapack/SRC/dlasdq.f b/lapack/src/dlasdq.f similarity index 100% rename from dspl/liblapack/SRC/dlasdq.f rename to lapack/src/dlasdq.f diff --git a/dspl/liblapack/SRC/dlasdt.f b/lapack/src/dlasdt.f similarity index 100% rename from dspl/liblapack/SRC/dlasdt.f rename to lapack/src/dlasdt.f diff --git a/dspl/liblapack/SRC/dlaset.f b/lapack/src/dlaset.f similarity index 100% rename from dspl/liblapack/SRC/dlaset.f rename to lapack/src/dlaset.f diff --git a/dspl/liblapack/SRC/dlasq1.f b/lapack/src/dlasq1.f similarity index 100% rename from dspl/liblapack/SRC/dlasq1.f rename to lapack/src/dlasq1.f diff --git a/dspl/liblapack/SRC/dlasq2.f b/lapack/src/dlasq2.f similarity index 100% rename from dspl/liblapack/SRC/dlasq2.f rename to lapack/src/dlasq2.f diff --git a/dspl/liblapack/SRC/dlasq3.f b/lapack/src/dlasq3.f similarity index 100% rename from dspl/liblapack/SRC/dlasq3.f rename to lapack/src/dlasq3.f diff --git a/dspl/liblapack/SRC/dlasq4.f b/lapack/src/dlasq4.f similarity index 100% rename from dspl/liblapack/SRC/dlasq4.f rename to lapack/src/dlasq4.f diff --git a/dspl/liblapack/SRC/dlasq5.f b/lapack/src/dlasq5.f similarity index 100% rename from dspl/liblapack/SRC/dlasq5.f rename to lapack/src/dlasq5.f diff --git a/dspl/liblapack/SRC/dlasq6.f b/lapack/src/dlasq6.f similarity index 100% rename from dspl/liblapack/SRC/dlasq6.f rename to lapack/src/dlasq6.f diff --git a/dspl/liblapack/SRC/dlasr.f b/lapack/src/dlasr.f similarity index 100% rename from dspl/liblapack/SRC/dlasr.f rename to lapack/src/dlasr.f diff --git a/dspl/liblapack/SRC/dlasrt.f b/lapack/src/dlasrt.f similarity index 100% rename from dspl/liblapack/SRC/dlasrt.f rename to lapack/src/dlasrt.f diff --git a/dspl/liblapack/SRC/dlassq.f b/lapack/src/dlassq.f similarity index 100% rename from dspl/liblapack/SRC/dlassq.f rename to lapack/src/dlassq.f diff --git a/dspl/liblapack/SRC/dlasv2.f b/lapack/src/dlasv2.f similarity index 100% rename from dspl/liblapack/SRC/dlasv2.f rename to lapack/src/dlasv2.f diff --git a/dspl/liblapack/SRC/dlaswlq.f b/lapack/src/dlaswlq.f similarity index 100% rename from dspl/liblapack/SRC/dlaswlq.f rename to lapack/src/dlaswlq.f diff --git a/dspl/liblapack/SRC/dlaswp.f b/lapack/src/dlaswp.f similarity index 100% rename from dspl/liblapack/SRC/dlaswp.f rename to lapack/src/dlaswp.f diff --git a/dspl/liblapack/SRC/dlasy2.f b/lapack/src/dlasy2.f similarity index 100% rename from dspl/liblapack/SRC/dlasy2.f rename to lapack/src/dlasy2.f diff --git a/dspl/liblapack/SRC/dlasyf.f b/lapack/src/dlasyf.f similarity index 100% rename from dspl/liblapack/SRC/dlasyf.f rename to lapack/src/dlasyf.f diff --git a/dspl/liblapack/SRC/dlasyf_aa.f b/lapack/src/dlasyf_aa.f similarity index 100% rename from dspl/liblapack/SRC/dlasyf_aa.f rename to lapack/src/dlasyf_aa.f diff --git a/dspl/liblapack/SRC/dlasyf_rk.f b/lapack/src/dlasyf_rk.f similarity index 100% rename from dspl/liblapack/SRC/dlasyf_rk.f rename to lapack/src/dlasyf_rk.f diff --git a/dspl/liblapack/SRC/dlasyf_rook.f b/lapack/src/dlasyf_rook.f similarity index 100% rename from dspl/liblapack/SRC/dlasyf_rook.f rename to lapack/src/dlasyf_rook.f diff --git a/dspl/liblapack/SRC/dlat2s.f b/lapack/src/dlat2s.f similarity index 100% rename from dspl/liblapack/SRC/dlat2s.f rename to lapack/src/dlat2s.f diff --git a/dspl/liblapack/SRC/dlatbs.f b/lapack/src/dlatbs.f similarity index 100% rename from dspl/liblapack/SRC/dlatbs.f rename to lapack/src/dlatbs.f diff --git a/dspl/liblapack/SRC/dlatdf.f b/lapack/src/dlatdf.f similarity index 100% rename from dspl/liblapack/SRC/dlatdf.f rename to lapack/src/dlatdf.f diff --git a/dspl/liblapack/SRC/dlatps.f b/lapack/src/dlatps.f similarity index 100% rename from dspl/liblapack/SRC/dlatps.f rename to lapack/src/dlatps.f diff --git a/dspl/liblapack/SRC/dlatrd.f b/lapack/src/dlatrd.f similarity index 100% rename from dspl/liblapack/SRC/dlatrd.f rename to lapack/src/dlatrd.f diff --git a/dspl/liblapack/SRC/dlatrs.f b/lapack/src/dlatrs.f similarity index 100% rename from dspl/liblapack/SRC/dlatrs.f rename to lapack/src/dlatrs.f diff --git a/dspl/liblapack/SRC/dlatrz.f b/lapack/src/dlatrz.f similarity index 100% rename from dspl/liblapack/SRC/dlatrz.f rename to lapack/src/dlatrz.f diff --git a/dspl/liblapack/SRC/dlatsqr.f b/lapack/src/dlatsqr.f similarity index 100% rename from dspl/liblapack/SRC/dlatsqr.f rename to lapack/src/dlatsqr.f diff --git a/dspl/liblapack/SRC/dlauu2.f b/lapack/src/dlauu2.f similarity index 100% rename from dspl/liblapack/SRC/dlauu2.f rename to lapack/src/dlauu2.f diff --git a/dspl/liblapack/SRC/dlauum.f b/lapack/src/dlauum.f similarity index 100% rename from dspl/liblapack/SRC/dlauum.f rename to lapack/src/dlauum.f diff --git a/dspl/liblapack/SRC/dopgtr.f b/lapack/src/dopgtr.f similarity index 100% rename from dspl/liblapack/SRC/dopgtr.f rename to lapack/src/dopgtr.f diff --git a/dspl/liblapack/SRC/dopmtr.f b/lapack/src/dopmtr.f similarity index 100% rename from dspl/liblapack/SRC/dopmtr.f rename to lapack/src/dopmtr.f diff --git a/dspl/liblapack/SRC/dorbdb.f b/lapack/src/dorbdb.f similarity index 100% rename from dspl/liblapack/SRC/dorbdb.f rename to lapack/src/dorbdb.f diff --git a/dspl/liblapack/SRC/dorbdb1.f b/lapack/src/dorbdb1.f similarity index 100% rename from dspl/liblapack/SRC/dorbdb1.f rename to lapack/src/dorbdb1.f diff --git a/dspl/liblapack/SRC/dorbdb2.f b/lapack/src/dorbdb2.f similarity index 100% rename from dspl/liblapack/SRC/dorbdb2.f rename to lapack/src/dorbdb2.f diff --git a/dspl/liblapack/SRC/dorbdb3.f b/lapack/src/dorbdb3.f similarity index 100% rename from dspl/liblapack/SRC/dorbdb3.f rename to lapack/src/dorbdb3.f diff --git a/dspl/liblapack/SRC/dorbdb4.f b/lapack/src/dorbdb4.f similarity index 100% rename from dspl/liblapack/SRC/dorbdb4.f rename to lapack/src/dorbdb4.f diff --git a/dspl/liblapack/SRC/dorbdb5.f b/lapack/src/dorbdb5.f similarity index 100% rename from dspl/liblapack/SRC/dorbdb5.f rename to lapack/src/dorbdb5.f diff --git a/dspl/liblapack/SRC/dorbdb6.f b/lapack/src/dorbdb6.f similarity index 100% rename from dspl/liblapack/SRC/dorbdb6.f rename to lapack/src/dorbdb6.f diff --git a/dspl/liblapack/SRC/dorcsd.f b/lapack/src/dorcsd.f similarity index 100% rename from dspl/liblapack/SRC/dorcsd.f rename to lapack/src/dorcsd.f diff --git a/dspl/liblapack/SRC/dorcsd2by1.f b/lapack/src/dorcsd2by1.f similarity index 100% rename from dspl/liblapack/SRC/dorcsd2by1.f rename to lapack/src/dorcsd2by1.f diff --git a/dspl/liblapack/SRC/dorg2l.f b/lapack/src/dorg2l.f similarity index 100% rename from dspl/liblapack/SRC/dorg2l.f rename to lapack/src/dorg2l.f diff --git a/dspl/liblapack/SRC/dorg2r.f b/lapack/src/dorg2r.f similarity index 100% rename from dspl/liblapack/SRC/dorg2r.f rename to lapack/src/dorg2r.f diff --git a/dspl/liblapack/SRC/dorgbr.f b/lapack/src/dorgbr.f similarity index 100% rename from dspl/liblapack/SRC/dorgbr.f rename to lapack/src/dorgbr.f diff --git a/dspl/liblapack/SRC/dorghr.f b/lapack/src/dorghr.f similarity index 100% rename from dspl/liblapack/SRC/dorghr.f rename to lapack/src/dorghr.f diff --git a/dspl/liblapack/SRC/dorgl2.f b/lapack/src/dorgl2.f similarity index 100% rename from dspl/liblapack/SRC/dorgl2.f rename to lapack/src/dorgl2.f diff --git a/dspl/liblapack/SRC/dorglq.f b/lapack/src/dorglq.f similarity index 100% rename from dspl/liblapack/SRC/dorglq.f rename to lapack/src/dorglq.f diff --git a/dspl/liblapack/SRC/dorgql.f b/lapack/src/dorgql.f similarity index 100% rename from dspl/liblapack/SRC/dorgql.f rename to lapack/src/dorgql.f diff --git a/dspl/liblapack/SRC/dorgqr.f b/lapack/src/dorgqr.f similarity index 100% rename from dspl/liblapack/SRC/dorgqr.f rename to lapack/src/dorgqr.f diff --git a/dspl/liblapack/SRC/dorgr2.f b/lapack/src/dorgr2.f similarity index 100% rename from dspl/liblapack/SRC/dorgr2.f rename to lapack/src/dorgr2.f diff --git a/dspl/liblapack/SRC/dorgrq.f b/lapack/src/dorgrq.f similarity index 100% rename from dspl/liblapack/SRC/dorgrq.f rename to lapack/src/dorgrq.f diff --git a/dspl/liblapack/SRC/dorgtr.f b/lapack/src/dorgtr.f similarity index 100% rename from dspl/liblapack/SRC/dorgtr.f rename to lapack/src/dorgtr.f diff --git a/dspl/liblapack/SRC/dorm22.f b/lapack/src/dorm22.f similarity index 100% rename from dspl/liblapack/SRC/dorm22.f rename to lapack/src/dorm22.f diff --git a/dspl/liblapack/SRC/dorm2l.f b/lapack/src/dorm2l.f similarity index 100% rename from dspl/liblapack/SRC/dorm2l.f rename to lapack/src/dorm2l.f diff --git a/dspl/liblapack/SRC/dorm2r.f b/lapack/src/dorm2r.f similarity index 100% rename from dspl/liblapack/SRC/dorm2r.f rename to lapack/src/dorm2r.f diff --git a/dspl/liblapack/SRC/dormbr.f b/lapack/src/dormbr.f similarity index 100% rename from dspl/liblapack/SRC/dormbr.f rename to lapack/src/dormbr.f diff --git a/dspl/liblapack/SRC/dormhr.f b/lapack/src/dormhr.f similarity index 100% rename from dspl/liblapack/SRC/dormhr.f rename to lapack/src/dormhr.f diff --git a/dspl/liblapack/SRC/dorml2.f b/lapack/src/dorml2.f similarity index 100% rename from dspl/liblapack/SRC/dorml2.f rename to lapack/src/dorml2.f diff --git a/dspl/liblapack/SRC/dormlq.f b/lapack/src/dormlq.f similarity index 100% rename from dspl/liblapack/SRC/dormlq.f rename to lapack/src/dormlq.f diff --git a/dspl/liblapack/SRC/dormql.f b/lapack/src/dormql.f similarity index 100% rename from dspl/liblapack/SRC/dormql.f rename to lapack/src/dormql.f diff --git a/dspl/liblapack/SRC/dormqr.f b/lapack/src/dormqr.f similarity index 100% rename from dspl/liblapack/SRC/dormqr.f rename to lapack/src/dormqr.f diff --git a/dspl/liblapack/SRC/dormr2.f b/lapack/src/dormr2.f similarity index 100% rename from dspl/liblapack/SRC/dormr2.f rename to lapack/src/dormr2.f diff --git a/dspl/liblapack/SRC/dormr3.f b/lapack/src/dormr3.f similarity index 100% rename from dspl/liblapack/SRC/dormr3.f rename to lapack/src/dormr3.f diff --git a/dspl/liblapack/SRC/dormrq.f b/lapack/src/dormrq.f similarity index 100% rename from dspl/liblapack/SRC/dormrq.f rename to lapack/src/dormrq.f diff --git a/dspl/liblapack/SRC/dormrz.f b/lapack/src/dormrz.f similarity index 100% rename from dspl/liblapack/SRC/dormrz.f rename to lapack/src/dormrz.f diff --git a/dspl/liblapack/SRC/dormtr.f b/lapack/src/dormtr.f similarity index 100% rename from dspl/liblapack/SRC/dormtr.f rename to lapack/src/dormtr.f diff --git a/dspl/liblapack/SRC/dpbcon.f b/lapack/src/dpbcon.f similarity index 100% rename from dspl/liblapack/SRC/dpbcon.f rename to lapack/src/dpbcon.f diff --git a/dspl/liblapack/SRC/dpbequ.f b/lapack/src/dpbequ.f similarity index 100% rename from dspl/liblapack/SRC/dpbequ.f rename to lapack/src/dpbequ.f diff --git a/dspl/liblapack/SRC/dpbrfs.f b/lapack/src/dpbrfs.f similarity index 100% rename from dspl/liblapack/SRC/dpbrfs.f rename to lapack/src/dpbrfs.f diff --git a/dspl/liblapack/SRC/dpbstf.f b/lapack/src/dpbstf.f similarity index 100% rename from dspl/liblapack/SRC/dpbstf.f rename to lapack/src/dpbstf.f diff --git a/dspl/liblapack/SRC/dpbsv.f b/lapack/src/dpbsv.f similarity index 100% rename from dspl/liblapack/SRC/dpbsv.f rename to lapack/src/dpbsv.f diff --git a/dspl/liblapack/SRC/dpbsvx.f b/lapack/src/dpbsvx.f similarity index 100% rename from dspl/liblapack/SRC/dpbsvx.f rename to lapack/src/dpbsvx.f diff --git a/dspl/liblapack/SRC/dpbtf2.f b/lapack/src/dpbtf2.f similarity index 100% rename from dspl/liblapack/SRC/dpbtf2.f rename to lapack/src/dpbtf2.f diff --git a/dspl/liblapack/SRC/dpbtrf.f b/lapack/src/dpbtrf.f similarity index 100% rename from dspl/liblapack/SRC/dpbtrf.f rename to lapack/src/dpbtrf.f diff --git a/dspl/liblapack/SRC/dpbtrs.f b/lapack/src/dpbtrs.f similarity index 100% rename from dspl/liblapack/SRC/dpbtrs.f rename to lapack/src/dpbtrs.f diff --git a/dspl/liblapack/SRC/dpftrf.f b/lapack/src/dpftrf.f similarity index 100% rename from dspl/liblapack/SRC/dpftrf.f rename to lapack/src/dpftrf.f diff --git a/dspl/liblapack/SRC/dpftri.f b/lapack/src/dpftri.f similarity index 100% rename from dspl/liblapack/SRC/dpftri.f rename to lapack/src/dpftri.f diff --git a/dspl/liblapack/SRC/dpftrs.f b/lapack/src/dpftrs.f similarity index 100% rename from dspl/liblapack/SRC/dpftrs.f rename to lapack/src/dpftrs.f diff --git a/dspl/liblapack/SRC/dpocon.f b/lapack/src/dpocon.f similarity index 100% rename from dspl/liblapack/SRC/dpocon.f rename to lapack/src/dpocon.f diff --git a/dspl/liblapack/SRC/dpoequ.f b/lapack/src/dpoequ.f similarity index 100% rename from dspl/liblapack/SRC/dpoequ.f rename to lapack/src/dpoequ.f diff --git a/dspl/liblapack/SRC/dpoequb.f b/lapack/src/dpoequb.f similarity index 100% rename from dspl/liblapack/SRC/dpoequb.f rename to lapack/src/dpoequb.f diff --git a/dspl/liblapack/SRC/dporfs.f b/lapack/src/dporfs.f similarity index 100% rename from dspl/liblapack/SRC/dporfs.f rename to lapack/src/dporfs.f diff --git a/dspl/liblapack/SRC/dporfsx.f b/lapack/src/dporfsx.f similarity index 100% rename from dspl/liblapack/SRC/dporfsx.f rename to lapack/src/dporfsx.f diff --git a/dspl/liblapack/SRC/dposv.f b/lapack/src/dposv.f similarity index 100% rename from dspl/liblapack/SRC/dposv.f rename to lapack/src/dposv.f diff --git a/dspl/liblapack/SRC/dposvx.f b/lapack/src/dposvx.f similarity index 100% rename from dspl/liblapack/SRC/dposvx.f rename to lapack/src/dposvx.f diff --git a/dspl/liblapack/SRC/dposvxx.f b/lapack/src/dposvxx.f similarity index 100% rename from dspl/liblapack/SRC/dposvxx.f rename to lapack/src/dposvxx.f diff --git a/dspl/liblapack/SRC/dpotf2.f b/lapack/src/dpotf2.f similarity index 100% rename from dspl/liblapack/SRC/dpotf2.f rename to lapack/src/dpotf2.f diff --git a/dspl/liblapack/SRC/dpotrf.f b/lapack/src/dpotrf.f similarity index 100% rename from dspl/liblapack/SRC/dpotrf.f rename to lapack/src/dpotrf.f diff --git a/dspl/liblapack/SRC/dpotrf2.f b/lapack/src/dpotrf2.f similarity index 100% rename from dspl/liblapack/SRC/dpotrf2.f rename to lapack/src/dpotrf2.f diff --git a/dspl/liblapack/SRC/dpotri.f b/lapack/src/dpotri.f similarity index 100% rename from dspl/liblapack/SRC/dpotri.f rename to lapack/src/dpotri.f diff --git a/dspl/liblapack/SRC/dpotrs.f b/lapack/src/dpotrs.f similarity index 100% rename from dspl/liblapack/SRC/dpotrs.f rename to lapack/src/dpotrs.f diff --git a/dspl/liblapack/SRC/dppcon.f b/lapack/src/dppcon.f similarity index 100% rename from dspl/liblapack/SRC/dppcon.f rename to lapack/src/dppcon.f diff --git a/dspl/liblapack/SRC/dppequ.f b/lapack/src/dppequ.f similarity index 100% rename from dspl/liblapack/SRC/dppequ.f rename to lapack/src/dppequ.f diff --git a/dspl/liblapack/SRC/dpprfs.f b/lapack/src/dpprfs.f similarity index 100% rename from dspl/liblapack/SRC/dpprfs.f rename to lapack/src/dpprfs.f diff --git a/dspl/liblapack/SRC/dppsv.f b/lapack/src/dppsv.f similarity index 100% rename from dspl/liblapack/SRC/dppsv.f rename to lapack/src/dppsv.f diff --git a/dspl/liblapack/SRC/dppsvx.f b/lapack/src/dppsvx.f similarity index 100% rename from dspl/liblapack/SRC/dppsvx.f rename to lapack/src/dppsvx.f diff --git a/dspl/liblapack/SRC/dpptrf.f b/lapack/src/dpptrf.f similarity index 100% rename from dspl/liblapack/SRC/dpptrf.f rename to lapack/src/dpptrf.f diff --git a/dspl/liblapack/SRC/dpptri.f b/lapack/src/dpptri.f similarity index 100% rename from dspl/liblapack/SRC/dpptri.f rename to lapack/src/dpptri.f diff --git a/dspl/liblapack/SRC/dpptrs.f b/lapack/src/dpptrs.f similarity index 100% rename from dspl/liblapack/SRC/dpptrs.f rename to lapack/src/dpptrs.f diff --git a/dspl/liblapack/SRC/dpstf2.f b/lapack/src/dpstf2.f similarity index 100% rename from dspl/liblapack/SRC/dpstf2.f rename to lapack/src/dpstf2.f diff --git a/dspl/liblapack/SRC/dpstrf.f b/lapack/src/dpstrf.f similarity index 100% rename from dspl/liblapack/SRC/dpstrf.f rename to lapack/src/dpstrf.f diff --git a/dspl/liblapack/SRC/dptcon.f b/lapack/src/dptcon.f similarity index 100% rename from dspl/liblapack/SRC/dptcon.f rename to lapack/src/dptcon.f diff --git a/dspl/liblapack/SRC/dpteqr.f b/lapack/src/dpteqr.f similarity index 100% rename from dspl/liblapack/SRC/dpteqr.f rename to lapack/src/dpteqr.f diff --git a/dspl/liblapack/SRC/dptrfs.f b/lapack/src/dptrfs.f similarity index 100% rename from dspl/liblapack/SRC/dptrfs.f rename to lapack/src/dptrfs.f diff --git a/dspl/liblapack/SRC/dptsv.f b/lapack/src/dptsv.f similarity index 100% rename from dspl/liblapack/SRC/dptsv.f rename to lapack/src/dptsv.f diff --git a/dspl/liblapack/SRC/dptsvx.f b/lapack/src/dptsvx.f similarity index 100% rename from dspl/liblapack/SRC/dptsvx.f rename to lapack/src/dptsvx.f diff --git a/dspl/liblapack/SRC/dpttrf.f b/lapack/src/dpttrf.f similarity index 100% rename from dspl/liblapack/SRC/dpttrf.f rename to lapack/src/dpttrf.f diff --git a/dspl/liblapack/SRC/dpttrs.f b/lapack/src/dpttrs.f similarity index 100% rename from dspl/liblapack/SRC/dpttrs.f rename to lapack/src/dpttrs.f diff --git a/dspl/liblapack/SRC/dptts2.f b/lapack/src/dptts2.f similarity index 100% rename from dspl/liblapack/SRC/dptts2.f rename to lapack/src/dptts2.f diff --git a/dspl/liblapack/SRC/drscl.f b/lapack/src/drscl.f similarity index 100% rename from dspl/liblapack/SRC/drscl.f rename to lapack/src/drscl.f diff --git a/dspl/liblapack/SRC/dsb2st_kernels.f b/lapack/src/dsb2st_kernels.f similarity index 100% rename from dspl/liblapack/SRC/dsb2st_kernels.f rename to lapack/src/dsb2st_kernels.f diff --git a/dspl/liblapack/SRC/dsbev.f b/lapack/src/dsbev.f similarity index 100% rename from dspl/liblapack/SRC/dsbev.f rename to lapack/src/dsbev.f diff --git a/dspl/liblapack/SRC/dsbev_2stage.f b/lapack/src/dsbev_2stage.f similarity index 100% rename from dspl/liblapack/SRC/dsbev_2stage.f rename to lapack/src/dsbev_2stage.f diff --git a/dspl/liblapack/SRC/dsbevd.f b/lapack/src/dsbevd.f similarity index 100% rename from dspl/liblapack/SRC/dsbevd.f rename to lapack/src/dsbevd.f diff --git a/dspl/liblapack/SRC/dsbevd_2stage.f b/lapack/src/dsbevd_2stage.f similarity index 100% rename from dspl/liblapack/SRC/dsbevd_2stage.f rename to lapack/src/dsbevd_2stage.f diff --git a/dspl/liblapack/SRC/dsbevx.f b/lapack/src/dsbevx.f similarity index 100% rename from dspl/liblapack/SRC/dsbevx.f rename to lapack/src/dsbevx.f diff --git a/dspl/liblapack/SRC/dsbevx_2stage.f b/lapack/src/dsbevx_2stage.f similarity index 100% rename from dspl/liblapack/SRC/dsbevx_2stage.f rename to lapack/src/dsbevx_2stage.f diff --git a/dspl/liblapack/SRC/dsbgst.f b/lapack/src/dsbgst.f similarity index 100% rename from dspl/liblapack/SRC/dsbgst.f rename to lapack/src/dsbgst.f diff --git a/dspl/liblapack/SRC/dsbgv.f b/lapack/src/dsbgv.f similarity index 100% rename from dspl/liblapack/SRC/dsbgv.f rename to lapack/src/dsbgv.f diff --git a/dspl/liblapack/SRC/dsbgvd.f b/lapack/src/dsbgvd.f similarity index 100% rename from dspl/liblapack/SRC/dsbgvd.f rename to lapack/src/dsbgvd.f diff --git a/dspl/liblapack/SRC/dsbgvx.f b/lapack/src/dsbgvx.f similarity index 100% rename from dspl/liblapack/SRC/dsbgvx.f rename to lapack/src/dsbgvx.f diff --git a/dspl/liblapack/SRC/dsbtrd.f b/lapack/src/dsbtrd.f similarity index 100% rename from dspl/liblapack/SRC/dsbtrd.f rename to lapack/src/dsbtrd.f diff --git a/dspl/liblapack/SRC/dsfrk.f b/lapack/src/dsfrk.f similarity index 100% rename from dspl/liblapack/SRC/dsfrk.f rename to lapack/src/dsfrk.f diff --git a/dspl/liblapack/SRC/dsgesv.f b/lapack/src/dsgesv.f similarity index 100% rename from dspl/liblapack/SRC/dsgesv.f rename to lapack/src/dsgesv.f diff --git a/dspl/liblapack/SRC/dspcon.f b/lapack/src/dspcon.f similarity index 100% rename from dspl/liblapack/SRC/dspcon.f rename to lapack/src/dspcon.f diff --git a/dspl/liblapack/SRC/dspev.f b/lapack/src/dspev.f similarity index 100% rename from dspl/liblapack/SRC/dspev.f rename to lapack/src/dspev.f diff --git a/dspl/liblapack/SRC/dspevd.f b/lapack/src/dspevd.f similarity index 100% rename from dspl/liblapack/SRC/dspevd.f rename to lapack/src/dspevd.f diff --git a/dspl/liblapack/SRC/dspevx.f b/lapack/src/dspevx.f similarity index 100% rename from dspl/liblapack/SRC/dspevx.f rename to lapack/src/dspevx.f diff --git a/dspl/liblapack/SRC/dspgst.f b/lapack/src/dspgst.f similarity index 100% rename from dspl/liblapack/SRC/dspgst.f rename to lapack/src/dspgst.f diff --git a/dspl/liblapack/SRC/dspgv.f b/lapack/src/dspgv.f similarity index 100% rename from dspl/liblapack/SRC/dspgv.f rename to lapack/src/dspgv.f diff --git a/dspl/liblapack/SRC/dspgvd.f b/lapack/src/dspgvd.f similarity index 100% rename from dspl/liblapack/SRC/dspgvd.f rename to lapack/src/dspgvd.f diff --git a/dspl/liblapack/SRC/dspgvx.f b/lapack/src/dspgvx.f similarity index 100% rename from dspl/liblapack/SRC/dspgvx.f rename to lapack/src/dspgvx.f diff --git a/dspl/liblapack/SRC/dsposv.f b/lapack/src/dsposv.f similarity index 100% rename from dspl/liblapack/SRC/dsposv.f rename to lapack/src/dsposv.f diff --git a/dspl/liblapack/SRC/dsprfs.f b/lapack/src/dsprfs.f similarity index 100% rename from dspl/liblapack/SRC/dsprfs.f rename to lapack/src/dsprfs.f diff --git a/dspl/liblapack/SRC/dspsv.f b/lapack/src/dspsv.f similarity index 100% rename from dspl/liblapack/SRC/dspsv.f rename to lapack/src/dspsv.f diff --git a/dspl/liblapack/SRC/dspsvx.f b/lapack/src/dspsvx.f similarity index 100% rename from dspl/liblapack/SRC/dspsvx.f rename to lapack/src/dspsvx.f diff --git a/dspl/liblapack/SRC/dsptrd.f b/lapack/src/dsptrd.f similarity index 100% rename from dspl/liblapack/SRC/dsptrd.f rename to lapack/src/dsptrd.f diff --git a/dspl/liblapack/SRC/dsptrf.f b/lapack/src/dsptrf.f similarity index 100% rename from dspl/liblapack/SRC/dsptrf.f rename to lapack/src/dsptrf.f diff --git a/dspl/liblapack/SRC/dsptri.f b/lapack/src/dsptri.f similarity index 100% rename from dspl/liblapack/SRC/dsptri.f rename to lapack/src/dsptri.f diff --git a/dspl/liblapack/SRC/dsptrs.f b/lapack/src/dsptrs.f similarity index 100% rename from dspl/liblapack/SRC/dsptrs.f rename to lapack/src/dsptrs.f diff --git a/dspl/liblapack/SRC/dstebz.f b/lapack/src/dstebz.f similarity index 100% rename from dspl/liblapack/SRC/dstebz.f rename to lapack/src/dstebz.f diff --git a/dspl/liblapack/SRC/dstedc.f b/lapack/src/dstedc.f similarity index 100% rename from dspl/liblapack/SRC/dstedc.f rename to lapack/src/dstedc.f diff --git a/dspl/liblapack/SRC/dstegr.f b/lapack/src/dstegr.f similarity index 100% rename from dspl/liblapack/SRC/dstegr.f rename to lapack/src/dstegr.f diff --git a/dspl/liblapack/SRC/dstein.f b/lapack/src/dstein.f similarity index 100% rename from dspl/liblapack/SRC/dstein.f rename to lapack/src/dstein.f diff --git a/dspl/liblapack/SRC/dstemr.f b/lapack/src/dstemr.f similarity index 100% rename from dspl/liblapack/SRC/dstemr.f rename to lapack/src/dstemr.f diff --git a/dspl/liblapack/SRC/dsteqr.f b/lapack/src/dsteqr.f similarity index 100% rename from dspl/liblapack/SRC/dsteqr.f rename to lapack/src/dsteqr.f diff --git a/dspl/liblapack/SRC/dsterf.f b/lapack/src/dsterf.f similarity index 100% rename from dspl/liblapack/SRC/dsterf.f rename to lapack/src/dsterf.f diff --git a/dspl/liblapack/SRC/dstev.f b/lapack/src/dstev.f similarity index 100% rename from dspl/liblapack/SRC/dstev.f rename to lapack/src/dstev.f diff --git a/dspl/liblapack/SRC/dstevd.f b/lapack/src/dstevd.f similarity index 100% rename from dspl/liblapack/SRC/dstevd.f rename to lapack/src/dstevd.f diff --git a/dspl/liblapack/SRC/dstevr.f b/lapack/src/dstevr.f similarity index 100% rename from dspl/liblapack/SRC/dstevr.f rename to lapack/src/dstevr.f diff --git a/dspl/liblapack/SRC/dstevx.f b/lapack/src/dstevx.f similarity index 100% rename from dspl/liblapack/SRC/dstevx.f rename to lapack/src/dstevx.f diff --git a/dspl/liblapack/SRC/dsycon.f b/lapack/src/dsycon.f similarity index 100% rename from dspl/liblapack/SRC/dsycon.f rename to lapack/src/dsycon.f diff --git a/dspl/liblapack/SRC/dsycon_3.f b/lapack/src/dsycon_3.f similarity index 100% rename from dspl/liblapack/SRC/dsycon_3.f rename to lapack/src/dsycon_3.f diff --git a/dspl/liblapack/SRC/dsycon_rook.f b/lapack/src/dsycon_rook.f similarity index 100% rename from dspl/liblapack/SRC/dsycon_rook.f rename to lapack/src/dsycon_rook.f diff --git a/dspl/liblapack/SRC/dsyconv.f b/lapack/src/dsyconv.f similarity index 100% rename from dspl/liblapack/SRC/dsyconv.f rename to lapack/src/dsyconv.f diff --git a/dspl/liblapack/SRC/dsyconvf.f b/lapack/src/dsyconvf.f similarity index 100% rename from dspl/liblapack/SRC/dsyconvf.f rename to lapack/src/dsyconvf.f diff --git a/dspl/liblapack/SRC/dsyconvf_rook.f b/lapack/src/dsyconvf_rook.f similarity index 100% rename from dspl/liblapack/SRC/dsyconvf_rook.f rename to lapack/src/dsyconvf_rook.f diff --git a/dspl/liblapack/SRC/dsyequb.f b/lapack/src/dsyequb.f similarity index 100% rename from dspl/liblapack/SRC/dsyequb.f rename to lapack/src/dsyequb.f diff --git a/dspl/liblapack/SRC/dsyev.f b/lapack/src/dsyev.f similarity index 100% rename from dspl/liblapack/SRC/dsyev.f rename to lapack/src/dsyev.f diff --git a/dspl/liblapack/SRC/dsyev_2stage.f b/lapack/src/dsyev_2stage.f similarity index 100% rename from dspl/liblapack/SRC/dsyev_2stage.f rename to lapack/src/dsyev_2stage.f diff --git a/dspl/liblapack/SRC/dsyevd.f b/lapack/src/dsyevd.f similarity index 100% rename from dspl/liblapack/SRC/dsyevd.f rename to lapack/src/dsyevd.f diff --git a/dspl/liblapack/SRC/dsyevd_2stage.f b/lapack/src/dsyevd_2stage.f similarity index 100% rename from dspl/liblapack/SRC/dsyevd_2stage.f rename to lapack/src/dsyevd_2stage.f diff --git a/dspl/liblapack/SRC/dsyevr.f b/lapack/src/dsyevr.f similarity index 100% rename from dspl/liblapack/SRC/dsyevr.f rename to lapack/src/dsyevr.f diff --git a/dspl/liblapack/SRC/dsyevr_2stage.f b/lapack/src/dsyevr_2stage.f similarity index 100% rename from dspl/liblapack/SRC/dsyevr_2stage.f rename to lapack/src/dsyevr_2stage.f diff --git a/dspl/liblapack/SRC/dsyevx.f b/lapack/src/dsyevx.f similarity index 100% rename from dspl/liblapack/SRC/dsyevx.f rename to lapack/src/dsyevx.f diff --git a/dspl/liblapack/SRC/dsyevx_2stage.f b/lapack/src/dsyevx_2stage.f similarity index 100% rename from dspl/liblapack/SRC/dsyevx_2stage.f rename to lapack/src/dsyevx_2stage.f diff --git a/dspl/liblapack/SRC/dsygs2.f b/lapack/src/dsygs2.f similarity index 100% rename from dspl/liblapack/SRC/dsygs2.f rename to lapack/src/dsygs2.f diff --git a/dspl/liblapack/SRC/dsygst.f b/lapack/src/dsygst.f similarity index 100% rename from dspl/liblapack/SRC/dsygst.f rename to lapack/src/dsygst.f diff --git a/dspl/liblapack/SRC/dsygv.f b/lapack/src/dsygv.f similarity index 100% rename from dspl/liblapack/SRC/dsygv.f rename to lapack/src/dsygv.f diff --git a/dspl/liblapack/SRC/dsygv_2stage.f b/lapack/src/dsygv_2stage.f similarity index 100% rename from dspl/liblapack/SRC/dsygv_2stage.f rename to lapack/src/dsygv_2stage.f diff --git a/dspl/liblapack/SRC/dsygvd.f b/lapack/src/dsygvd.f similarity index 100% rename from dspl/liblapack/SRC/dsygvd.f rename to lapack/src/dsygvd.f diff --git a/dspl/liblapack/SRC/dsygvx.f b/lapack/src/dsygvx.f similarity index 100% rename from dspl/liblapack/SRC/dsygvx.f rename to lapack/src/dsygvx.f diff --git a/dspl/liblapack/SRC/dsyrfs.f b/lapack/src/dsyrfs.f similarity index 100% rename from dspl/liblapack/SRC/dsyrfs.f rename to lapack/src/dsyrfs.f diff --git a/dspl/liblapack/SRC/dsyrfsx.f b/lapack/src/dsyrfsx.f similarity index 100% rename from dspl/liblapack/SRC/dsyrfsx.f rename to lapack/src/dsyrfsx.f diff --git a/dspl/liblapack/SRC/dsysv.f b/lapack/src/dsysv.f similarity index 100% rename from dspl/liblapack/SRC/dsysv.f rename to lapack/src/dsysv.f diff --git a/dspl/liblapack/SRC/dsysv_aa.f b/lapack/src/dsysv_aa.f similarity index 100% rename from dspl/liblapack/SRC/dsysv_aa.f rename to lapack/src/dsysv_aa.f diff --git a/dspl/liblapack/SRC/dsysv_aa_2stage.f b/lapack/src/dsysv_aa_2stage.f similarity index 100% rename from dspl/liblapack/SRC/dsysv_aa_2stage.f rename to lapack/src/dsysv_aa_2stage.f diff --git a/dspl/liblapack/SRC/dsysv_rk.f b/lapack/src/dsysv_rk.f similarity index 100% rename from dspl/liblapack/SRC/dsysv_rk.f rename to lapack/src/dsysv_rk.f diff --git a/dspl/liblapack/SRC/dsysv_rook.f b/lapack/src/dsysv_rook.f similarity index 100% rename from dspl/liblapack/SRC/dsysv_rook.f rename to lapack/src/dsysv_rook.f diff --git a/dspl/liblapack/SRC/dsysvx.f b/lapack/src/dsysvx.f similarity index 100% rename from dspl/liblapack/SRC/dsysvx.f rename to lapack/src/dsysvx.f diff --git a/dspl/liblapack/SRC/dsysvxx.f b/lapack/src/dsysvxx.f similarity index 100% rename from dspl/liblapack/SRC/dsysvxx.f rename to lapack/src/dsysvxx.f diff --git a/dspl/liblapack/SRC/dsyswapr.f b/lapack/src/dsyswapr.f similarity index 100% rename from dspl/liblapack/SRC/dsyswapr.f rename to lapack/src/dsyswapr.f diff --git a/dspl/liblapack/SRC/dsytd2.f b/lapack/src/dsytd2.f similarity index 100% rename from dspl/liblapack/SRC/dsytd2.f rename to lapack/src/dsytd2.f diff --git a/dspl/liblapack/SRC/dsytf2.f b/lapack/src/dsytf2.f similarity index 100% rename from dspl/liblapack/SRC/dsytf2.f rename to lapack/src/dsytf2.f diff --git a/dspl/liblapack/SRC/dsytf2_rk.f b/lapack/src/dsytf2_rk.f similarity index 100% rename from dspl/liblapack/SRC/dsytf2_rk.f rename to lapack/src/dsytf2_rk.f diff --git a/dspl/liblapack/SRC/dsytf2_rook.f b/lapack/src/dsytf2_rook.f similarity index 100% rename from dspl/liblapack/SRC/dsytf2_rook.f rename to lapack/src/dsytf2_rook.f diff --git a/dspl/liblapack/SRC/dsytrd.f b/lapack/src/dsytrd.f similarity index 100% rename from dspl/liblapack/SRC/dsytrd.f rename to lapack/src/dsytrd.f diff --git a/dspl/liblapack/SRC/dsytrd_2stage.f b/lapack/src/dsytrd_2stage.f similarity index 100% rename from dspl/liblapack/SRC/dsytrd_2stage.f rename to lapack/src/dsytrd_2stage.f diff --git a/dspl/liblapack/SRC/dsytrd_sb2st.F b/lapack/src/dsytrd_sb2st.F similarity index 100% rename from dspl/liblapack/SRC/dsytrd_sb2st.F rename to lapack/src/dsytrd_sb2st.F diff --git a/dspl/liblapack/SRC/dsytrd_sy2sb.f b/lapack/src/dsytrd_sy2sb.f similarity index 100% rename from dspl/liblapack/SRC/dsytrd_sy2sb.f rename to lapack/src/dsytrd_sy2sb.f diff --git a/dspl/liblapack/SRC/dsytrf.f b/lapack/src/dsytrf.f similarity index 100% rename from dspl/liblapack/SRC/dsytrf.f rename to lapack/src/dsytrf.f diff --git a/dspl/liblapack/SRC/dsytrf_aa.f b/lapack/src/dsytrf_aa.f similarity index 100% rename from dspl/liblapack/SRC/dsytrf_aa.f rename to lapack/src/dsytrf_aa.f diff --git a/dspl/liblapack/SRC/dsytrf_aa_2stage.f b/lapack/src/dsytrf_aa_2stage.f similarity index 100% rename from dspl/liblapack/SRC/dsytrf_aa_2stage.f rename to lapack/src/dsytrf_aa_2stage.f diff --git a/dspl/liblapack/SRC/dsytrf_rk.f b/lapack/src/dsytrf_rk.f similarity index 100% rename from dspl/liblapack/SRC/dsytrf_rk.f rename to lapack/src/dsytrf_rk.f diff --git a/dspl/liblapack/SRC/dsytrf_rook.f b/lapack/src/dsytrf_rook.f similarity index 100% rename from dspl/liblapack/SRC/dsytrf_rook.f rename to lapack/src/dsytrf_rook.f diff --git a/dspl/liblapack/SRC/dsytri.f b/lapack/src/dsytri.f similarity index 100% rename from dspl/liblapack/SRC/dsytri.f rename to lapack/src/dsytri.f diff --git a/dspl/liblapack/SRC/dsytri2.f b/lapack/src/dsytri2.f similarity index 100% rename from dspl/liblapack/SRC/dsytri2.f rename to lapack/src/dsytri2.f diff --git a/dspl/liblapack/SRC/dsytri2x.f b/lapack/src/dsytri2x.f similarity index 100% rename from dspl/liblapack/SRC/dsytri2x.f rename to lapack/src/dsytri2x.f diff --git a/dspl/liblapack/SRC/dsytri_3.f b/lapack/src/dsytri_3.f similarity index 100% rename from dspl/liblapack/SRC/dsytri_3.f rename to lapack/src/dsytri_3.f diff --git a/dspl/liblapack/SRC/dsytri_3x.f b/lapack/src/dsytri_3x.f similarity index 100% rename from dspl/liblapack/SRC/dsytri_3x.f rename to lapack/src/dsytri_3x.f diff --git a/dspl/liblapack/SRC/dsytri_rook.f b/lapack/src/dsytri_rook.f similarity index 100% rename from dspl/liblapack/SRC/dsytri_rook.f rename to lapack/src/dsytri_rook.f diff --git a/dspl/liblapack/SRC/dsytrs.f b/lapack/src/dsytrs.f similarity index 100% rename from dspl/liblapack/SRC/dsytrs.f rename to lapack/src/dsytrs.f diff --git a/dspl/liblapack/SRC/dsytrs2.f b/lapack/src/dsytrs2.f similarity index 100% rename from dspl/liblapack/SRC/dsytrs2.f rename to lapack/src/dsytrs2.f diff --git a/dspl/liblapack/SRC/dsytrs_3.f b/lapack/src/dsytrs_3.f similarity index 100% rename from dspl/liblapack/SRC/dsytrs_3.f rename to lapack/src/dsytrs_3.f diff --git a/dspl/liblapack/SRC/dsytrs_aa.f b/lapack/src/dsytrs_aa.f similarity index 100% rename from dspl/liblapack/SRC/dsytrs_aa.f rename to lapack/src/dsytrs_aa.f diff --git a/dspl/liblapack/SRC/dsytrs_aa_2stage.f b/lapack/src/dsytrs_aa_2stage.f similarity index 100% rename from dspl/liblapack/SRC/dsytrs_aa_2stage.f rename to lapack/src/dsytrs_aa_2stage.f diff --git a/dspl/liblapack/SRC/dsytrs_rook.f b/lapack/src/dsytrs_rook.f similarity index 100% rename from dspl/liblapack/SRC/dsytrs_rook.f rename to lapack/src/dsytrs_rook.f diff --git a/dspl/liblapack/SRC/dtbcon.f b/lapack/src/dtbcon.f similarity index 100% rename from dspl/liblapack/SRC/dtbcon.f rename to lapack/src/dtbcon.f diff --git a/dspl/liblapack/SRC/dtbrfs.f b/lapack/src/dtbrfs.f similarity index 100% rename from dspl/liblapack/SRC/dtbrfs.f rename to lapack/src/dtbrfs.f diff --git a/dspl/liblapack/SRC/dtbtrs.f b/lapack/src/dtbtrs.f similarity index 100% rename from dspl/liblapack/SRC/dtbtrs.f rename to lapack/src/dtbtrs.f diff --git a/dspl/liblapack/SRC/dtfsm.f b/lapack/src/dtfsm.f similarity index 100% rename from dspl/liblapack/SRC/dtfsm.f rename to lapack/src/dtfsm.f diff --git a/dspl/liblapack/SRC/dtftri.f b/lapack/src/dtftri.f similarity index 100% rename from dspl/liblapack/SRC/dtftri.f rename to lapack/src/dtftri.f diff --git a/dspl/liblapack/SRC/dtfttp.f b/lapack/src/dtfttp.f similarity index 100% rename from dspl/liblapack/SRC/dtfttp.f rename to lapack/src/dtfttp.f diff --git a/dspl/liblapack/SRC/dtfttr.f b/lapack/src/dtfttr.f similarity index 100% rename from dspl/liblapack/SRC/dtfttr.f rename to lapack/src/dtfttr.f diff --git a/dspl/liblapack/SRC/dtgevc.f b/lapack/src/dtgevc.f similarity index 100% rename from dspl/liblapack/SRC/dtgevc.f rename to lapack/src/dtgevc.f diff --git a/dspl/liblapack/SRC/dtgex2.f b/lapack/src/dtgex2.f similarity index 100% rename from dspl/liblapack/SRC/dtgex2.f rename to lapack/src/dtgex2.f diff --git a/dspl/liblapack/SRC/dtgexc.f b/lapack/src/dtgexc.f similarity index 100% rename from dspl/liblapack/SRC/dtgexc.f rename to lapack/src/dtgexc.f diff --git a/dspl/liblapack/SRC/dtgsen.f b/lapack/src/dtgsen.f similarity index 100% rename from dspl/liblapack/SRC/dtgsen.f rename to lapack/src/dtgsen.f diff --git a/dspl/liblapack/SRC/dtgsja.f b/lapack/src/dtgsja.f similarity index 100% rename from dspl/liblapack/SRC/dtgsja.f rename to lapack/src/dtgsja.f diff --git a/dspl/liblapack/SRC/dtgsna.f b/lapack/src/dtgsna.f similarity index 100% rename from dspl/liblapack/SRC/dtgsna.f rename to lapack/src/dtgsna.f diff --git a/dspl/liblapack/SRC/dtgsy2.f b/lapack/src/dtgsy2.f similarity index 100% rename from dspl/liblapack/SRC/dtgsy2.f rename to lapack/src/dtgsy2.f diff --git a/dspl/liblapack/SRC/dtgsyl.f b/lapack/src/dtgsyl.f similarity index 100% rename from dspl/liblapack/SRC/dtgsyl.f rename to lapack/src/dtgsyl.f diff --git a/dspl/liblapack/SRC/dtpcon.f b/lapack/src/dtpcon.f similarity index 100% rename from dspl/liblapack/SRC/dtpcon.f rename to lapack/src/dtpcon.f diff --git a/dspl/liblapack/SRC/dtplqt.f b/lapack/src/dtplqt.f similarity index 100% rename from dspl/liblapack/SRC/dtplqt.f rename to lapack/src/dtplqt.f diff --git a/dspl/liblapack/SRC/dtplqt2.f b/lapack/src/dtplqt2.f similarity index 100% rename from dspl/liblapack/SRC/dtplqt2.f rename to lapack/src/dtplqt2.f diff --git a/dspl/liblapack/SRC/dtpmlqt.f b/lapack/src/dtpmlqt.f similarity index 100% rename from dspl/liblapack/SRC/dtpmlqt.f rename to lapack/src/dtpmlqt.f diff --git a/dspl/liblapack/SRC/dtpmqrt.f b/lapack/src/dtpmqrt.f similarity index 100% rename from dspl/liblapack/SRC/dtpmqrt.f rename to lapack/src/dtpmqrt.f diff --git a/dspl/liblapack/SRC/dtpqrt.f b/lapack/src/dtpqrt.f similarity index 100% rename from dspl/liblapack/SRC/dtpqrt.f rename to lapack/src/dtpqrt.f diff --git a/dspl/liblapack/SRC/dtpqrt2.f b/lapack/src/dtpqrt2.f similarity index 100% rename from dspl/liblapack/SRC/dtpqrt2.f rename to lapack/src/dtpqrt2.f diff --git a/dspl/liblapack/SRC/dtprfb.f b/lapack/src/dtprfb.f similarity index 100% rename from dspl/liblapack/SRC/dtprfb.f rename to lapack/src/dtprfb.f diff --git a/dspl/liblapack/SRC/dtprfs.f b/lapack/src/dtprfs.f similarity index 100% rename from dspl/liblapack/SRC/dtprfs.f rename to lapack/src/dtprfs.f diff --git a/dspl/liblapack/SRC/dtptri.f b/lapack/src/dtptri.f similarity index 100% rename from dspl/liblapack/SRC/dtptri.f rename to lapack/src/dtptri.f diff --git a/dspl/liblapack/SRC/dtptrs.f b/lapack/src/dtptrs.f similarity index 100% rename from dspl/liblapack/SRC/dtptrs.f rename to lapack/src/dtptrs.f diff --git a/dspl/liblapack/SRC/dtpttf.f b/lapack/src/dtpttf.f similarity index 100% rename from dspl/liblapack/SRC/dtpttf.f rename to lapack/src/dtpttf.f diff --git a/dspl/liblapack/SRC/dtpttr.f b/lapack/src/dtpttr.f similarity index 100% rename from dspl/liblapack/SRC/dtpttr.f rename to lapack/src/dtpttr.f diff --git a/dspl/liblapack/SRC/dtrcon.f b/lapack/src/dtrcon.f similarity index 100% rename from dspl/liblapack/SRC/dtrcon.f rename to lapack/src/dtrcon.f diff --git a/dspl/liblapack/SRC/dtrevc.f b/lapack/src/dtrevc.f similarity index 100% rename from dspl/liblapack/SRC/dtrevc.f rename to lapack/src/dtrevc.f diff --git a/dspl/liblapack/SRC/dtrevc3.f b/lapack/src/dtrevc3.f similarity index 100% rename from dspl/liblapack/SRC/dtrevc3.f rename to lapack/src/dtrevc3.f diff --git a/dspl/liblapack/SRC/dtrexc.f b/lapack/src/dtrexc.f similarity index 100% rename from dspl/liblapack/SRC/dtrexc.f rename to lapack/src/dtrexc.f diff --git a/dspl/liblapack/SRC/dtrrfs.f b/lapack/src/dtrrfs.f similarity index 100% rename from dspl/liblapack/SRC/dtrrfs.f rename to lapack/src/dtrrfs.f diff --git a/dspl/liblapack/SRC/dtrsen.f b/lapack/src/dtrsen.f similarity index 100% rename from dspl/liblapack/SRC/dtrsen.f rename to lapack/src/dtrsen.f diff --git a/dspl/liblapack/SRC/dtrsna.f b/lapack/src/dtrsna.f similarity index 100% rename from dspl/liblapack/SRC/dtrsna.f rename to lapack/src/dtrsna.f diff --git a/dspl/liblapack/SRC/dtrsyl.f b/lapack/src/dtrsyl.f similarity index 100% rename from dspl/liblapack/SRC/dtrsyl.f rename to lapack/src/dtrsyl.f diff --git a/dspl/liblapack/SRC/dtrti2.f b/lapack/src/dtrti2.f similarity index 100% rename from dspl/liblapack/SRC/dtrti2.f rename to lapack/src/dtrti2.f diff --git a/dspl/liblapack/SRC/dtrtri.f b/lapack/src/dtrtri.f similarity index 100% rename from dspl/liblapack/SRC/dtrtri.f rename to lapack/src/dtrtri.f diff --git a/dspl/liblapack/SRC/dtrtrs.f b/lapack/src/dtrtrs.f similarity index 100% rename from dspl/liblapack/SRC/dtrtrs.f rename to lapack/src/dtrtrs.f diff --git a/dspl/liblapack/SRC/dtrttf.f b/lapack/src/dtrttf.f similarity index 100% rename from dspl/liblapack/SRC/dtrttf.f rename to lapack/src/dtrttf.f diff --git a/dspl/liblapack/SRC/dtrttp.f b/lapack/src/dtrttp.f similarity index 100% rename from dspl/liblapack/SRC/dtrttp.f rename to lapack/src/dtrttp.f diff --git a/dspl/liblapack/SRC/dtzrzf.f b/lapack/src/dtzrzf.f similarity index 100% rename from dspl/liblapack/SRC/dtzrzf.f rename to lapack/src/dtzrzf.f diff --git a/dspl/liblapack/SRC/dzsum1.f b/lapack/src/dzsum1.f similarity index 100% rename from dspl/liblapack/SRC/dzsum1.f rename to lapack/src/dzsum1.f diff --git a/dspl/liblapack/SRC/icmax1.f b/lapack/src/icmax1.f similarity index 100% rename from dspl/liblapack/SRC/icmax1.f rename to lapack/src/icmax1.f diff --git a/dspl/liblapack/SRC/ieeeck.f b/lapack/src/ieeeck.f similarity index 100% rename from dspl/liblapack/SRC/ieeeck.f rename to lapack/src/ieeeck.f diff --git a/dspl/liblapack/SRC/ilaclc.f b/lapack/src/ilaclc.f similarity index 100% rename from dspl/liblapack/SRC/ilaclc.f rename to lapack/src/ilaclc.f diff --git a/dspl/liblapack/SRC/ilaclr.f b/lapack/src/ilaclr.f similarity index 100% rename from dspl/liblapack/SRC/ilaclr.f rename to lapack/src/ilaclr.f diff --git a/dspl/liblapack/SRC/iladiag.f b/lapack/src/iladiag.f similarity index 100% rename from dspl/liblapack/SRC/iladiag.f rename to lapack/src/iladiag.f diff --git a/dspl/liblapack/SRC/iladlc.f b/lapack/src/iladlc.f similarity index 100% rename from dspl/liblapack/SRC/iladlc.f rename to lapack/src/iladlc.f diff --git a/dspl/liblapack/SRC/iladlr.f b/lapack/src/iladlr.f similarity index 100% rename from dspl/liblapack/SRC/iladlr.f rename to lapack/src/iladlr.f diff --git a/dspl/liblapack/SRC/ilaenv.f b/lapack/src/ilaenv.f similarity index 100% rename from dspl/liblapack/SRC/ilaenv.f rename to lapack/src/ilaenv.f diff --git a/dspl/liblapack/SRC/ilaenv2stage.f b/lapack/src/ilaenv2stage.f similarity index 100% rename from dspl/liblapack/SRC/ilaenv2stage.f rename to lapack/src/ilaenv2stage.f diff --git a/dspl/liblapack/SRC/ilaprec.f b/lapack/src/ilaprec.f similarity index 100% rename from dspl/liblapack/SRC/ilaprec.f rename to lapack/src/ilaprec.f diff --git a/dspl/liblapack/SRC/ilaslc.f b/lapack/src/ilaslc.f similarity index 100% rename from dspl/liblapack/SRC/ilaslc.f rename to lapack/src/ilaslc.f diff --git a/dspl/liblapack/SRC/ilaslr.f b/lapack/src/ilaslr.f similarity index 100% rename from dspl/liblapack/SRC/ilaslr.f rename to lapack/src/ilaslr.f diff --git a/dspl/liblapack/SRC/ilatrans.f b/lapack/src/ilatrans.f similarity index 100% rename from dspl/liblapack/SRC/ilatrans.f rename to lapack/src/ilatrans.f diff --git a/dspl/liblapack/SRC/ilauplo.f b/lapack/src/ilauplo.f similarity index 100% rename from dspl/liblapack/SRC/ilauplo.f rename to lapack/src/ilauplo.f diff --git a/dspl/liblapack/SRC/ilazlc.f b/lapack/src/ilazlc.f similarity index 100% rename from dspl/liblapack/SRC/ilazlc.f rename to lapack/src/ilazlc.f diff --git a/dspl/liblapack/SRC/ilazlr.f b/lapack/src/ilazlr.f similarity index 100% rename from dspl/liblapack/SRC/ilazlr.f rename to lapack/src/ilazlr.f diff --git a/dspl/liblapack/SRC/iparam2stage.F b/lapack/src/iparam2stage.F similarity index 100% rename from dspl/liblapack/SRC/iparam2stage.F rename to lapack/src/iparam2stage.F diff --git a/dspl/liblapack/SRC/iparmq.f b/lapack/src/iparmq.f similarity index 100% rename from dspl/liblapack/SRC/iparmq.f rename to lapack/src/iparmq.f diff --git a/dspl/liblapack/SRC/izmax1.f b/lapack/src/izmax1.f similarity index 100% rename from dspl/liblapack/SRC/izmax1.f rename to lapack/src/izmax1.f diff --git a/dspl/liblapack/SRC/lsamen.f b/lapack/src/lsamen.f similarity index 100% rename from dspl/liblapack/SRC/lsamen.f rename to lapack/src/lsamen.f diff --git a/dspl/liblapack/SRC/sbbcsd.f b/lapack/src/sbbcsd.f similarity index 100% rename from dspl/liblapack/SRC/sbbcsd.f rename to lapack/src/sbbcsd.f diff --git a/dspl/liblapack/SRC/sbdsdc.f b/lapack/src/sbdsdc.f similarity index 100% rename from dspl/liblapack/SRC/sbdsdc.f rename to lapack/src/sbdsdc.f diff --git a/dspl/liblapack/SRC/sbdsqr.f b/lapack/src/sbdsqr.f similarity index 100% rename from dspl/liblapack/SRC/sbdsqr.f rename to lapack/src/sbdsqr.f diff --git a/dspl/liblapack/SRC/sbdsvdx.f b/lapack/src/sbdsvdx.f similarity index 100% rename from dspl/liblapack/SRC/sbdsvdx.f rename to lapack/src/sbdsvdx.f diff --git a/dspl/liblapack/SRC/scsum1.f b/lapack/src/scsum1.f similarity index 100% rename from dspl/liblapack/SRC/scsum1.f rename to lapack/src/scsum1.f diff --git a/dspl/liblapack/SRC/sdisna.f b/lapack/src/sdisna.f similarity index 100% rename from dspl/liblapack/SRC/sdisna.f rename to lapack/src/sdisna.f diff --git a/dspl/liblapack/SRC/sgbbrd.f b/lapack/src/sgbbrd.f similarity index 100% rename from dspl/liblapack/SRC/sgbbrd.f rename to lapack/src/sgbbrd.f diff --git a/dspl/liblapack/SRC/sgbcon.f b/lapack/src/sgbcon.f similarity index 100% rename from dspl/liblapack/SRC/sgbcon.f rename to lapack/src/sgbcon.f diff --git a/dspl/liblapack/SRC/sgbequ.f b/lapack/src/sgbequ.f similarity index 100% rename from dspl/liblapack/SRC/sgbequ.f rename to lapack/src/sgbequ.f diff --git a/dspl/liblapack/SRC/sgbequb.f b/lapack/src/sgbequb.f similarity index 100% rename from dspl/liblapack/SRC/sgbequb.f rename to lapack/src/sgbequb.f diff --git a/dspl/liblapack/SRC/sgbrfs.f b/lapack/src/sgbrfs.f similarity index 100% rename from dspl/liblapack/SRC/sgbrfs.f rename to lapack/src/sgbrfs.f diff --git a/dspl/liblapack/SRC/sgbrfsx.f b/lapack/src/sgbrfsx.f similarity index 100% rename from dspl/liblapack/SRC/sgbrfsx.f rename to lapack/src/sgbrfsx.f diff --git a/dspl/liblapack/SRC/sgbsv.f b/lapack/src/sgbsv.f similarity index 100% rename from dspl/liblapack/SRC/sgbsv.f rename to lapack/src/sgbsv.f diff --git a/dspl/liblapack/SRC/sgbsvx.f b/lapack/src/sgbsvx.f similarity index 100% rename from dspl/liblapack/SRC/sgbsvx.f rename to lapack/src/sgbsvx.f diff --git a/dspl/liblapack/SRC/sgbsvxx.f b/lapack/src/sgbsvxx.f similarity index 100% rename from dspl/liblapack/SRC/sgbsvxx.f rename to lapack/src/sgbsvxx.f diff --git a/dspl/liblapack/SRC/sgbtf2.f b/lapack/src/sgbtf2.f similarity index 100% rename from dspl/liblapack/SRC/sgbtf2.f rename to lapack/src/sgbtf2.f diff --git a/dspl/liblapack/SRC/sgbtrf.f b/lapack/src/sgbtrf.f similarity index 100% rename from dspl/liblapack/SRC/sgbtrf.f rename to lapack/src/sgbtrf.f diff --git a/dspl/liblapack/SRC/sgbtrs.f b/lapack/src/sgbtrs.f similarity index 100% rename from dspl/liblapack/SRC/sgbtrs.f rename to lapack/src/sgbtrs.f diff --git a/dspl/liblapack/SRC/sgebak.f b/lapack/src/sgebak.f similarity index 100% rename from dspl/liblapack/SRC/sgebak.f rename to lapack/src/sgebak.f diff --git a/dspl/liblapack/SRC/sgebal.f b/lapack/src/sgebal.f similarity index 100% rename from dspl/liblapack/SRC/sgebal.f rename to lapack/src/sgebal.f diff --git a/dspl/liblapack/SRC/sgebd2.f b/lapack/src/sgebd2.f similarity index 100% rename from dspl/liblapack/SRC/sgebd2.f rename to lapack/src/sgebd2.f diff --git a/dspl/liblapack/SRC/sgebrd.f b/lapack/src/sgebrd.f similarity index 100% rename from dspl/liblapack/SRC/sgebrd.f rename to lapack/src/sgebrd.f diff --git a/dspl/liblapack/SRC/sgecon.f b/lapack/src/sgecon.f similarity index 100% rename from dspl/liblapack/SRC/sgecon.f rename to lapack/src/sgecon.f diff --git a/dspl/liblapack/SRC/sgeequ.f b/lapack/src/sgeequ.f similarity index 100% rename from dspl/liblapack/SRC/sgeequ.f rename to lapack/src/sgeequ.f diff --git a/dspl/liblapack/SRC/sgeequb.f b/lapack/src/sgeequb.f similarity index 100% rename from dspl/liblapack/SRC/sgeequb.f rename to lapack/src/sgeequb.f diff --git a/dspl/liblapack/SRC/sgees.f b/lapack/src/sgees.f similarity index 100% rename from dspl/liblapack/SRC/sgees.f rename to lapack/src/sgees.f diff --git a/dspl/liblapack/SRC/sgeesx.f b/lapack/src/sgeesx.f similarity index 100% rename from dspl/liblapack/SRC/sgeesx.f rename to lapack/src/sgeesx.f diff --git a/dspl/liblapack/SRC/sgeev.f b/lapack/src/sgeev.f similarity index 100% rename from dspl/liblapack/SRC/sgeev.f rename to lapack/src/sgeev.f diff --git a/dspl/liblapack/SRC/sgeevx.f b/lapack/src/sgeevx.f similarity index 100% rename from dspl/liblapack/SRC/sgeevx.f rename to lapack/src/sgeevx.f diff --git a/dspl/liblapack/SRC/sgehd2.f b/lapack/src/sgehd2.f similarity index 100% rename from dspl/liblapack/SRC/sgehd2.f rename to lapack/src/sgehd2.f diff --git a/dspl/liblapack/SRC/sgehrd.f b/lapack/src/sgehrd.f similarity index 100% rename from dspl/liblapack/SRC/sgehrd.f rename to lapack/src/sgehrd.f diff --git a/dspl/liblapack/SRC/sgejsv.f b/lapack/src/sgejsv.f similarity index 100% rename from dspl/liblapack/SRC/sgejsv.f rename to lapack/src/sgejsv.f diff --git a/dspl/liblapack/SRC/sgelq.f b/lapack/src/sgelq.f similarity index 100% rename from dspl/liblapack/SRC/sgelq.f rename to lapack/src/sgelq.f diff --git a/dspl/liblapack/SRC/sgelq2.f b/lapack/src/sgelq2.f similarity index 100% rename from dspl/liblapack/SRC/sgelq2.f rename to lapack/src/sgelq2.f diff --git a/dspl/liblapack/SRC/sgelqf.f b/lapack/src/sgelqf.f similarity index 100% rename from dspl/liblapack/SRC/sgelqf.f rename to lapack/src/sgelqf.f diff --git a/dspl/liblapack/SRC/sgelqt.f b/lapack/src/sgelqt.f similarity index 100% rename from dspl/liblapack/SRC/sgelqt.f rename to lapack/src/sgelqt.f diff --git a/dspl/liblapack/SRC/sgelqt3.f b/lapack/src/sgelqt3.f similarity index 100% rename from dspl/liblapack/SRC/sgelqt3.f rename to lapack/src/sgelqt3.f diff --git a/dspl/liblapack/SRC/sgels.f b/lapack/src/sgels.f similarity index 100% rename from dspl/liblapack/SRC/sgels.f rename to lapack/src/sgels.f diff --git a/dspl/liblapack/SRC/sgelsd.f b/lapack/src/sgelsd.f similarity index 100% rename from dspl/liblapack/SRC/sgelsd.f rename to lapack/src/sgelsd.f diff --git a/dspl/liblapack/SRC/sgelss.f b/lapack/src/sgelss.f similarity index 100% rename from dspl/liblapack/SRC/sgelss.f rename to lapack/src/sgelss.f diff --git a/dspl/liblapack/SRC/sgelsy.f b/lapack/src/sgelsy.f similarity index 100% rename from dspl/liblapack/SRC/sgelsy.f rename to lapack/src/sgelsy.f diff --git a/dspl/liblapack/SRC/sgemlq.f b/lapack/src/sgemlq.f similarity index 100% rename from dspl/liblapack/SRC/sgemlq.f rename to lapack/src/sgemlq.f diff --git a/dspl/liblapack/SRC/sgemlqt.f b/lapack/src/sgemlqt.f similarity index 100% rename from dspl/liblapack/SRC/sgemlqt.f rename to lapack/src/sgemlqt.f diff --git a/dspl/liblapack/SRC/sgemqr.f b/lapack/src/sgemqr.f similarity index 100% rename from dspl/liblapack/SRC/sgemqr.f rename to lapack/src/sgemqr.f diff --git a/dspl/liblapack/SRC/sgemqrt.f b/lapack/src/sgemqrt.f similarity index 100% rename from dspl/liblapack/SRC/sgemqrt.f rename to lapack/src/sgemqrt.f diff --git a/dspl/liblapack/SRC/sgeql2.f b/lapack/src/sgeql2.f similarity index 100% rename from dspl/liblapack/SRC/sgeql2.f rename to lapack/src/sgeql2.f diff --git a/dspl/liblapack/SRC/sgeqlf.f b/lapack/src/sgeqlf.f similarity index 100% rename from dspl/liblapack/SRC/sgeqlf.f rename to lapack/src/sgeqlf.f diff --git a/dspl/liblapack/SRC/sgeqp3.f b/lapack/src/sgeqp3.f similarity index 100% rename from dspl/liblapack/SRC/sgeqp3.f rename to lapack/src/sgeqp3.f diff --git a/dspl/liblapack/SRC/sgeqr.f b/lapack/src/sgeqr.f similarity index 100% rename from dspl/liblapack/SRC/sgeqr.f rename to lapack/src/sgeqr.f diff --git a/dspl/liblapack/SRC/sgeqr2.f b/lapack/src/sgeqr2.f similarity index 100% rename from dspl/liblapack/SRC/sgeqr2.f rename to lapack/src/sgeqr2.f diff --git a/dspl/liblapack/SRC/sgeqr2p.f b/lapack/src/sgeqr2p.f similarity index 100% rename from dspl/liblapack/SRC/sgeqr2p.f rename to lapack/src/sgeqr2p.f diff --git a/dspl/liblapack/SRC/sgeqrf.f b/lapack/src/sgeqrf.f similarity index 100% rename from dspl/liblapack/SRC/sgeqrf.f rename to lapack/src/sgeqrf.f diff --git a/dspl/liblapack/SRC/sgeqrfp.f b/lapack/src/sgeqrfp.f similarity index 100% rename from dspl/liblapack/SRC/sgeqrfp.f rename to lapack/src/sgeqrfp.f diff --git a/dspl/liblapack/SRC/sgeqrt.f b/lapack/src/sgeqrt.f similarity index 100% rename from dspl/liblapack/SRC/sgeqrt.f rename to lapack/src/sgeqrt.f diff --git a/dspl/liblapack/SRC/sgeqrt2.f b/lapack/src/sgeqrt2.f similarity index 100% rename from dspl/liblapack/SRC/sgeqrt2.f rename to lapack/src/sgeqrt2.f diff --git a/dspl/liblapack/SRC/sgeqrt3.f b/lapack/src/sgeqrt3.f similarity index 100% rename from dspl/liblapack/SRC/sgeqrt3.f rename to lapack/src/sgeqrt3.f diff --git a/dspl/liblapack/SRC/sgerfs.f b/lapack/src/sgerfs.f similarity index 100% rename from dspl/liblapack/SRC/sgerfs.f rename to lapack/src/sgerfs.f diff --git a/dspl/liblapack/SRC/sgerfsx.f b/lapack/src/sgerfsx.f similarity index 100% rename from dspl/liblapack/SRC/sgerfsx.f rename to lapack/src/sgerfsx.f diff --git a/dspl/liblapack/SRC/sgerq2.f b/lapack/src/sgerq2.f similarity index 100% rename from dspl/liblapack/SRC/sgerq2.f rename to lapack/src/sgerq2.f diff --git a/dspl/liblapack/SRC/sgerqf.f b/lapack/src/sgerqf.f similarity index 100% rename from dspl/liblapack/SRC/sgerqf.f rename to lapack/src/sgerqf.f diff --git a/dspl/liblapack/SRC/sgesc2.f b/lapack/src/sgesc2.f similarity index 100% rename from dspl/liblapack/SRC/sgesc2.f rename to lapack/src/sgesc2.f diff --git a/dspl/liblapack/SRC/sgesdd.f b/lapack/src/sgesdd.f similarity index 100% rename from dspl/liblapack/SRC/sgesdd.f rename to lapack/src/sgesdd.f diff --git a/dspl/liblapack/SRC/sgesv.f b/lapack/src/sgesv.f similarity index 100% rename from dspl/liblapack/SRC/sgesv.f rename to lapack/src/sgesv.f diff --git a/dspl/liblapack/SRC/sgesvd.f b/lapack/src/sgesvd.f similarity index 100% rename from dspl/liblapack/SRC/sgesvd.f rename to lapack/src/sgesvd.f diff --git a/dspl/liblapack/SRC/sgesvdx.f b/lapack/src/sgesvdx.f similarity index 100% rename from dspl/liblapack/SRC/sgesvdx.f rename to lapack/src/sgesvdx.f diff --git a/dspl/liblapack/SRC/sgesvj.f b/lapack/src/sgesvj.f similarity index 100% rename from dspl/liblapack/SRC/sgesvj.f rename to lapack/src/sgesvj.f diff --git a/dspl/liblapack/SRC/sgesvx.f b/lapack/src/sgesvx.f similarity index 100% rename from dspl/liblapack/SRC/sgesvx.f rename to lapack/src/sgesvx.f diff --git a/dspl/liblapack/SRC/sgesvxx.f b/lapack/src/sgesvxx.f similarity index 100% rename from dspl/liblapack/SRC/sgesvxx.f rename to lapack/src/sgesvxx.f diff --git a/dspl/liblapack/SRC/sgetc2.f b/lapack/src/sgetc2.f similarity index 100% rename from dspl/liblapack/SRC/sgetc2.f rename to lapack/src/sgetc2.f diff --git a/dspl/liblapack/SRC/sgetf2.f b/lapack/src/sgetf2.f similarity index 100% rename from dspl/liblapack/SRC/sgetf2.f rename to lapack/src/sgetf2.f diff --git a/dspl/liblapack/SRC/sgetrf.f b/lapack/src/sgetrf.f similarity index 100% rename from dspl/liblapack/SRC/sgetrf.f rename to lapack/src/sgetrf.f diff --git a/dspl/liblapack/SRC/sgetrf2.f b/lapack/src/sgetrf2.f similarity index 100% rename from dspl/liblapack/SRC/sgetrf2.f rename to lapack/src/sgetrf2.f diff --git a/dspl/liblapack/SRC/sgetri.f b/lapack/src/sgetri.f similarity index 100% rename from dspl/liblapack/SRC/sgetri.f rename to lapack/src/sgetri.f diff --git a/dspl/liblapack/SRC/sgetrs.f b/lapack/src/sgetrs.f similarity index 100% rename from dspl/liblapack/SRC/sgetrs.f rename to lapack/src/sgetrs.f diff --git a/dspl/liblapack/SRC/sgetsls.f b/lapack/src/sgetsls.f similarity index 100% rename from dspl/liblapack/SRC/sgetsls.f rename to lapack/src/sgetsls.f diff --git a/dspl/liblapack/SRC/sggbak.f b/lapack/src/sggbak.f similarity index 100% rename from dspl/liblapack/SRC/sggbak.f rename to lapack/src/sggbak.f diff --git a/dspl/liblapack/SRC/sggbal.f b/lapack/src/sggbal.f similarity index 100% rename from dspl/liblapack/SRC/sggbal.f rename to lapack/src/sggbal.f diff --git a/dspl/liblapack/SRC/sgges.f b/lapack/src/sgges.f similarity index 100% rename from dspl/liblapack/SRC/sgges.f rename to lapack/src/sgges.f diff --git a/dspl/liblapack/SRC/sgges3.f b/lapack/src/sgges3.f similarity index 100% rename from dspl/liblapack/SRC/sgges3.f rename to lapack/src/sgges3.f diff --git a/dspl/liblapack/SRC/sggesx.f b/lapack/src/sggesx.f similarity index 100% rename from dspl/liblapack/SRC/sggesx.f rename to lapack/src/sggesx.f diff --git a/dspl/liblapack/SRC/sggev.f b/lapack/src/sggev.f similarity index 100% rename from dspl/liblapack/SRC/sggev.f rename to lapack/src/sggev.f diff --git a/dspl/liblapack/SRC/sggev3.f b/lapack/src/sggev3.f similarity index 100% rename from dspl/liblapack/SRC/sggev3.f rename to lapack/src/sggev3.f diff --git a/dspl/liblapack/SRC/sggevx.f b/lapack/src/sggevx.f similarity index 100% rename from dspl/liblapack/SRC/sggevx.f rename to lapack/src/sggevx.f diff --git a/dspl/liblapack/SRC/sggglm.f b/lapack/src/sggglm.f similarity index 100% rename from dspl/liblapack/SRC/sggglm.f rename to lapack/src/sggglm.f diff --git a/dspl/liblapack/SRC/sgghd3.f b/lapack/src/sgghd3.f similarity index 100% rename from dspl/liblapack/SRC/sgghd3.f rename to lapack/src/sgghd3.f diff --git a/dspl/liblapack/SRC/sgghrd.f b/lapack/src/sgghrd.f similarity index 100% rename from dspl/liblapack/SRC/sgghrd.f rename to lapack/src/sgghrd.f diff --git a/dspl/liblapack/SRC/sgglse.f b/lapack/src/sgglse.f similarity index 100% rename from dspl/liblapack/SRC/sgglse.f rename to lapack/src/sgglse.f diff --git a/dspl/liblapack/SRC/sggqrf.f b/lapack/src/sggqrf.f similarity index 100% rename from dspl/liblapack/SRC/sggqrf.f rename to lapack/src/sggqrf.f diff --git a/dspl/liblapack/SRC/sggrqf.f b/lapack/src/sggrqf.f similarity index 100% rename from dspl/liblapack/SRC/sggrqf.f rename to lapack/src/sggrqf.f diff --git a/dspl/liblapack/SRC/sggsvd3.f b/lapack/src/sggsvd3.f similarity index 100% rename from dspl/liblapack/SRC/sggsvd3.f rename to lapack/src/sggsvd3.f diff --git a/dspl/liblapack/SRC/sggsvp3.f b/lapack/src/sggsvp3.f similarity index 100% rename from dspl/liblapack/SRC/sggsvp3.f rename to lapack/src/sggsvp3.f diff --git a/dspl/liblapack/SRC/sgsvj0.f b/lapack/src/sgsvj0.f similarity index 100% rename from dspl/liblapack/SRC/sgsvj0.f rename to lapack/src/sgsvj0.f diff --git a/dspl/liblapack/SRC/sgsvj1.f b/lapack/src/sgsvj1.f similarity index 100% rename from dspl/liblapack/SRC/sgsvj1.f rename to lapack/src/sgsvj1.f diff --git a/dspl/liblapack/SRC/sgtcon.f b/lapack/src/sgtcon.f similarity index 100% rename from dspl/liblapack/SRC/sgtcon.f rename to lapack/src/sgtcon.f diff --git a/dspl/liblapack/SRC/sgtrfs.f b/lapack/src/sgtrfs.f similarity index 100% rename from dspl/liblapack/SRC/sgtrfs.f rename to lapack/src/sgtrfs.f diff --git a/dspl/liblapack/SRC/sgtsv.f b/lapack/src/sgtsv.f similarity index 100% rename from dspl/liblapack/SRC/sgtsv.f rename to lapack/src/sgtsv.f diff --git a/dspl/liblapack/SRC/sgtsvx.f b/lapack/src/sgtsvx.f similarity index 100% rename from dspl/liblapack/SRC/sgtsvx.f rename to lapack/src/sgtsvx.f diff --git a/dspl/liblapack/SRC/sgttrf.f b/lapack/src/sgttrf.f similarity index 100% rename from dspl/liblapack/SRC/sgttrf.f rename to lapack/src/sgttrf.f diff --git a/dspl/liblapack/SRC/sgttrs.f b/lapack/src/sgttrs.f similarity index 100% rename from dspl/liblapack/SRC/sgttrs.f rename to lapack/src/sgttrs.f diff --git a/dspl/liblapack/SRC/sgtts2.f b/lapack/src/sgtts2.f similarity index 100% rename from dspl/liblapack/SRC/sgtts2.f rename to lapack/src/sgtts2.f diff --git a/dspl/liblapack/SRC/shgeqz.f b/lapack/src/shgeqz.f similarity index 100% rename from dspl/liblapack/SRC/shgeqz.f rename to lapack/src/shgeqz.f diff --git a/dspl/liblapack/SRC/shsein.f b/lapack/src/shsein.f similarity index 100% rename from dspl/liblapack/SRC/shsein.f rename to lapack/src/shsein.f diff --git a/dspl/liblapack/SRC/shseqr.f b/lapack/src/shseqr.f similarity index 100% rename from dspl/liblapack/SRC/shseqr.f rename to lapack/src/shseqr.f diff --git a/dspl/liblapack/SRC/sisnan.f b/lapack/src/sisnan.f similarity index 100% rename from dspl/liblapack/SRC/sisnan.f rename to lapack/src/sisnan.f diff --git a/dspl/liblapack/SRC/sla_gbamv.f b/lapack/src/sla_gbamv.f similarity index 100% rename from dspl/liblapack/SRC/sla_gbamv.f rename to lapack/src/sla_gbamv.f diff --git a/dspl/liblapack/SRC/sla_gbrcond.f b/lapack/src/sla_gbrcond.f similarity index 100% rename from dspl/liblapack/SRC/sla_gbrcond.f rename to lapack/src/sla_gbrcond.f diff --git a/dspl/liblapack/SRC/sla_gbrfsx_extended.f b/lapack/src/sla_gbrfsx_extended.f similarity index 100% rename from dspl/liblapack/SRC/sla_gbrfsx_extended.f rename to lapack/src/sla_gbrfsx_extended.f diff --git a/dspl/liblapack/SRC/sla_gbrpvgrw.f b/lapack/src/sla_gbrpvgrw.f similarity index 100% rename from dspl/liblapack/SRC/sla_gbrpvgrw.f rename to lapack/src/sla_gbrpvgrw.f diff --git a/dspl/liblapack/SRC/sla_geamv.f b/lapack/src/sla_geamv.f similarity index 100% rename from dspl/liblapack/SRC/sla_geamv.f rename to lapack/src/sla_geamv.f diff --git a/dspl/liblapack/SRC/sla_gercond.f b/lapack/src/sla_gercond.f similarity index 100% rename from dspl/liblapack/SRC/sla_gercond.f rename to lapack/src/sla_gercond.f diff --git a/dspl/liblapack/SRC/sla_gerfsx_extended.f b/lapack/src/sla_gerfsx_extended.f similarity index 100% rename from dspl/liblapack/SRC/sla_gerfsx_extended.f rename to lapack/src/sla_gerfsx_extended.f diff --git a/dspl/liblapack/SRC/sla_gerpvgrw.f b/lapack/src/sla_gerpvgrw.f similarity index 100% rename from dspl/liblapack/SRC/sla_gerpvgrw.f rename to lapack/src/sla_gerpvgrw.f diff --git a/dspl/liblapack/SRC/sla_lin_berr.f b/lapack/src/sla_lin_berr.f similarity index 100% rename from dspl/liblapack/SRC/sla_lin_berr.f rename to lapack/src/sla_lin_berr.f diff --git a/dspl/liblapack/SRC/sla_porcond.f b/lapack/src/sla_porcond.f similarity index 100% rename from dspl/liblapack/SRC/sla_porcond.f rename to lapack/src/sla_porcond.f diff --git a/dspl/liblapack/SRC/sla_porfsx_extended.f b/lapack/src/sla_porfsx_extended.f similarity index 100% rename from dspl/liblapack/SRC/sla_porfsx_extended.f rename to lapack/src/sla_porfsx_extended.f diff --git a/dspl/liblapack/SRC/sla_porpvgrw.f b/lapack/src/sla_porpvgrw.f similarity index 100% rename from dspl/liblapack/SRC/sla_porpvgrw.f rename to lapack/src/sla_porpvgrw.f diff --git a/dspl/liblapack/SRC/sla_syamv.f b/lapack/src/sla_syamv.f similarity index 100% rename from dspl/liblapack/SRC/sla_syamv.f rename to lapack/src/sla_syamv.f diff --git a/dspl/liblapack/SRC/sla_syrcond.f b/lapack/src/sla_syrcond.f similarity index 100% rename from dspl/liblapack/SRC/sla_syrcond.f rename to lapack/src/sla_syrcond.f diff --git a/dspl/liblapack/SRC/sla_syrfsx_extended.f b/lapack/src/sla_syrfsx_extended.f similarity index 100% rename from dspl/liblapack/SRC/sla_syrfsx_extended.f rename to lapack/src/sla_syrfsx_extended.f diff --git a/dspl/liblapack/SRC/sla_syrpvgrw.f b/lapack/src/sla_syrpvgrw.f similarity index 100% rename from dspl/liblapack/SRC/sla_syrpvgrw.f rename to lapack/src/sla_syrpvgrw.f diff --git a/dspl/liblapack/SRC/sla_wwaddw.f b/lapack/src/sla_wwaddw.f similarity index 100% rename from dspl/liblapack/SRC/sla_wwaddw.f rename to lapack/src/sla_wwaddw.f diff --git a/dspl/liblapack/SRC/slabad.f b/lapack/src/slabad.f similarity index 100% rename from dspl/liblapack/SRC/slabad.f rename to lapack/src/slabad.f diff --git a/dspl/liblapack/SRC/slabrd.f b/lapack/src/slabrd.f similarity index 100% rename from dspl/liblapack/SRC/slabrd.f rename to lapack/src/slabrd.f diff --git a/dspl/liblapack/SRC/slacn2.f b/lapack/src/slacn2.f similarity index 100% rename from dspl/liblapack/SRC/slacn2.f rename to lapack/src/slacn2.f diff --git a/dspl/liblapack/SRC/slacon.f b/lapack/src/slacon.f similarity index 100% rename from dspl/liblapack/SRC/slacon.f rename to lapack/src/slacon.f diff --git a/dspl/liblapack/SRC/slacpy.f b/lapack/src/slacpy.f similarity index 100% rename from dspl/liblapack/SRC/slacpy.f rename to lapack/src/slacpy.f diff --git a/dspl/liblapack/SRC/sladiv.f b/lapack/src/sladiv.f similarity index 100% rename from dspl/liblapack/SRC/sladiv.f rename to lapack/src/sladiv.f diff --git a/dspl/liblapack/SRC/slae2.f b/lapack/src/slae2.f similarity index 100% rename from dspl/liblapack/SRC/slae2.f rename to lapack/src/slae2.f diff --git a/dspl/liblapack/SRC/slaebz.f b/lapack/src/slaebz.f similarity index 100% rename from dspl/liblapack/SRC/slaebz.f rename to lapack/src/slaebz.f diff --git a/dspl/liblapack/SRC/slaed0.f b/lapack/src/slaed0.f similarity index 100% rename from dspl/liblapack/SRC/slaed0.f rename to lapack/src/slaed0.f diff --git a/dspl/liblapack/SRC/slaed1.f b/lapack/src/slaed1.f similarity index 100% rename from dspl/liblapack/SRC/slaed1.f rename to lapack/src/slaed1.f diff --git a/dspl/liblapack/SRC/slaed2.f b/lapack/src/slaed2.f similarity index 100% rename from dspl/liblapack/SRC/slaed2.f rename to lapack/src/slaed2.f diff --git a/dspl/liblapack/SRC/slaed3.f b/lapack/src/slaed3.f similarity index 100% rename from dspl/liblapack/SRC/slaed3.f rename to lapack/src/slaed3.f diff --git a/dspl/liblapack/SRC/slaed4.f b/lapack/src/slaed4.f similarity index 100% rename from dspl/liblapack/SRC/slaed4.f rename to lapack/src/slaed4.f diff --git a/dspl/liblapack/SRC/slaed5.f b/lapack/src/slaed5.f similarity index 100% rename from dspl/liblapack/SRC/slaed5.f rename to lapack/src/slaed5.f diff --git a/dspl/liblapack/SRC/slaed6.f b/lapack/src/slaed6.f similarity index 100% rename from dspl/liblapack/SRC/slaed6.f rename to lapack/src/slaed6.f diff --git a/dspl/liblapack/SRC/slaed7.f b/lapack/src/slaed7.f similarity index 100% rename from dspl/liblapack/SRC/slaed7.f rename to lapack/src/slaed7.f diff --git a/dspl/liblapack/SRC/slaed8.f b/lapack/src/slaed8.f similarity index 100% rename from dspl/liblapack/SRC/slaed8.f rename to lapack/src/slaed8.f diff --git a/dspl/liblapack/SRC/slaed9.f b/lapack/src/slaed9.f similarity index 100% rename from dspl/liblapack/SRC/slaed9.f rename to lapack/src/slaed9.f diff --git a/dspl/liblapack/SRC/slaeda.f b/lapack/src/slaeda.f similarity index 100% rename from dspl/liblapack/SRC/slaeda.f rename to lapack/src/slaeda.f diff --git a/dspl/liblapack/SRC/slaein.f b/lapack/src/slaein.f similarity index 100% rename from dspl/liblapack/SRC/slaein.f rename to lapack/src/slaein.f diff --git a/dspl/liblapack/SRC/slaev2.f b/lapack/src/slaev2.f similarity index 100% rename from dspl/liblapack/SRC/slaev2.f rename to lapack/src/slaev2.f diff --git a/dspl/liblapack/SRC/slaexc.f b/lapack/src/slaexc.f similarity index 100% rename from dspl/liblapack/SRC/slaexc.f rename to lapack/src/slaexc.f diff --git a/dspl/liblapack/SRC/slag2.f b/lapack/src/slag2.f similarity index 100% rename from dspl/liblapack/SRC/slag2.f rename to lapack/src/slag2.f diff --git a/dspl/liblapack/SRC/slag2d.f b/lapack/src/slag2d.f similarity index 100% rename from dspl/liblapack/SRC/slag2d.f rename to lapack/src/slag2d.f diff --git a/dspl/liblapack/SRC/slags2.f b/lapack/src/slags2.f similarity index 100% rename from dspl/liblapack/SRC/slags2.f rename to lapack/src/slags2.f diff --git a/dspl/liblapack/SRC/slagtf.f b/lapack/src/slagtf.f similarity index 100% rename from dspl/liblapack/SRC/slagtf.f rename to lapack/src/slagtf.f diff --git a/dspl/liblapack/SRC/slagtm.f b/lapack/src/slagtm.f similarity index 100% rename from dspl/liblapack/SRC/slagtm.f rename to lapack/src/slagtm.f diff --git a/dspl/liblapack/SRC/slagts.f b/lapack/src/slagts.f similarity index 100% rename from dspl/liblapack/SRC/slagts.f rename to lapack/src/slagts.f diff --git a/dspl/liblapack/SRC/slagv2.f b/lapack/src/slagv2.f similarity index 100% rename from dspl/liblapack/SRC/slagv2.f rename to lapack/src/slagv2.f diff --git a/dspl/liblapack/SRC/slahqr.f b/lapack/src/slahqr.f similarity index 100% rename from dspl/liblapack/SRC/slahqr.f rename to lapack/src/slahqr.f diff --git a/dspl/liblapack/SRC/slahr2.f b/lapack/src/slahr2.f similarity index 100% rename from dspl/liblapack/SRC/slahr2.f rename to lapack/src/slahr2.f diff --git a/dspl/liblapack/SRC/slaic1.f b/lapack/src/slaic1.f similarity index 100% rename from dspl/liblapack/SRC/slaic1.f rename to lapack/src/slaic1.f diff --git a/dspl/liblapack/SRC/slaisnan.f b/lapack/src/slaisnan.f similarity index 100% rename from dspl/liblapack/SRC/slaisnan.f rename to lapack/src/slaisnan.f diff --git a/dspl/liblapack/SRC/slaln2.f b/lapack/src/slaln2.f similarity index 100% rename from dspl/liblapack/SRC/slaln2.f rename to lapack/src/slaln2.f diff --git a/dspl/liblapack/SRC/slals0.f b/lapack/src/slals0.f similarity index 100% rename from dspl/liblapack/SRC/slals0.f rename to lapack/src/slals0.f diff --git a/dspl/liblapack/SRC/slalsa.f b/lapack/src/slalsa.f similarity index 100% rename from dspl/liblapack/SRC/slalsa.f rename to lapack/src/slalsa.f diff --git a/dspl/liblapack/SRC/slalsd.f b/lapack/src/slalsd.f similarity index 100% rename from dspl/liblapack/SRC/slalsd.f rename to lapack/src/slalsd.f diff --git a/dspl/liblapack/SRC/slamrg.f b/lapack/src/slamrg.f similarity index 100% rename from dspl/liblapack/SRC/slamrg.f rename to lapack/src/slamrg.f diff --git a/dspl/liblapack/SRC/slamswlq.f b/lapack/src/slamswlq.f similarity index 100% rename from dspl/liblapack/SRC/slamswlq.f rename to lapack/src/slamswlq.f diff --git a/dspl/liblapack/SRC/slamtsqr.f b/lapack/src/slamtsqr.f similarity index 100% rename from dspl/liblapack/SRC/slamtsqr.f rename to lapack/src/slamtsqr.f diff --git a/dspl/liblapack/SRC/slaneg.f b/lapack/src/slaneg.f similarity index 100% rename from dspl/liblapack/SRC/slaneg.f rename to lapack/src/slaneg.f diff --git a/dspl/liblapack/SRC/slangb.f b/lapack/src/slangb.f similarity index 100% rename from dspl/liblapack/SRC/slangb.f rename to lapack/src/slangb.f diff --git a/dspl/liblapack/SRC/slange.f b/lapack/src/slange.f similarity index 100% rename from dspl/liblapack/SRC/slange.f rename to lapack/src/slange.f diff --git a/dspl/liblapack/SRC/slangt.f b/lapack/src/slangt.f similarity index 100% rename from dspl/liblapack/SRC/slangt.f rename to lapack/src/slangt.f diff --git a/dspl/liblapack/SRC/slanhs.f b/lapack/src/slanhs.f similarity index 100% rename from dspl/liblapack/SRC/slanhs.f rename to lapack/src/slanhs.f diff --git a/dspl/liblapack/SRC/slansb.f b/lapack/src/slansb.f similarity index 100% rename from dspl/liblapack/SRC/slansb.f rename to lapack/src/slansb.f diff --git a/dspl/liblapack/SRC/slansf.f b/lapack/src/slansf.f similarity index 100% rename from dspl/liblapack/SRC/slansf.f rename to lapack/src/slansf.f diff --git a/dspl/liblapack/SRC/slansp.f b/lapack/src/slansp.f similarity index 100% rename from dspl/liblapack/SRC/slansp.f rename to lapack/src/slansp.f diff --git a/dspl/liblapack/SRC/slanst.f b/lapack/src/slanst.f similarity index 100% rename from dspl/liblapack/SRC/slanst.f rename to lapack/src/slanst.f diff --git a/dspl/liblapack/SRC/slansy.f b/lapack/src/slansy.f similarity index 100% rename from dspl/liblapack/SRC/slansy.f rename to lapack/src/slansy.f diff --git a/dspl/liblapack/SRC/slantb.f b/lapack/src/slantb.f similarity index 100% rename from dspl/liblapack/SRC/slantb.f rename to lapack/src/slantb.f diff --git a/dspl/liblapack/SRC/slantp.f b/lapack/src/slantp.f similarity index 100% rename from dspl/liblapack/SRC/slantp.f rename to lapack/src/slantp.f diff --git a/dspl/liblapack/SRC/slantr.f b/lapack/src/slantr.f similarity index 100% rename from dspl/liblapack/SRC/slantr.f rename to lapack/src/slantr.f diff --git a/dspl/liblapack/SRC/slanv2.f b/lapack/src/slanv2.f similarity index 100% rename from dspl/liblapack/SRC/slanv2.f rename to lapack/src/slanv2.f diff --git a/dspl/liblapack/SRC/slapll.f b/lapack/src/slapll.f similarity index 100% rename from dspl/liblapack/SRC/slapll.f rename to lapack/src/slapll.f diff --git a/dspl/liblapack/SRC/slapmr.f b/lapack/src/slapmr.f similarity index 100% rename from dspl/liblapack/SRC/slapmr.f rename to lapack/src/slapmr.f diff --git a/dspl/liblapack/SRC/slapmt.f b/lapack/src/slapmt.f similarity index 100% rename from dspl/liblapack/SRC/slapmt.f rename to lapack/src/slapmt.f diff --git a/dspl/liblapack/SRC/slapy2.f b/lapack/src/slapy2.f similarity index 100% rename from dspl/liblapack/SRC/slapy2.f rename to lapack/src/slapy2.f diff --git a/dspl/liblapack/SRC/slapy3.f b/lapack/src/slapy3.f similarity index 100% rename from dspl/liblapack/SRC/slapy3.f rename to lapack/src/slapy3.f diff --git a/dspl/liblapack/SRC/slaqgb.f b/lapack/src/slaqgb.f similarity index 100% rename from dspl/liblapack/SRC/slaqgb.f rename to lapack/src/slaqgb.f diff --git a/dspl/liblapack/SRC/slaqge.f b/lapack/src/slaqge.f similarity index 100% rename from dspl/liblapack/SRC/slaqge.f rename to lapack/src/slaqge.f diff --git a/dspl/liblapack/SRC/slaqp2.f b/lapack/src/slaqp2.f similarity index 100% rename from dspl/liblapack/SRC/slaqp2.f rename to lapack/src/slaqp2.f diff --git a/dspl/liblapack/SRC/slaqps.f b/lapack/src/slaqps.f similarity index 100% rename from dspl/liblapack/SRC/slaqps.f rename to lapack/src/slaqps.f diff --git a/dspl/liblapack/SRC/slaqr0.f b/lapack/src/slaqr0.f similarity index 100% rename from dspl/liblapack/SRC/slaqr0.f rename to lapack/src/slaqr0.f diff --git a/dspl/liblapack/SRC/slaqr1.f b/lapack/src/slaqr1.f similarity index 100% rename from dspl/liblapack/SRC/slaqr1.f rename to lapack/src/slaqr1.f diff --git a/dspl/liblapack/SRC/slaqr2.f b/lapack/src/slaqr2.f similarity index 100% rename from dspl/liblapack/SRC/slaqr2.f rename to lapack/src/slaqr2.f diff --git a/dspl/liblapack/SRC/slaqr3.f b/lapack/src/slaqr3.f similarity index 100% rename from dspl/liblapack/SRC/slaqr3.f rename to lapack/src/slaqr3.f diff --git a/dspl/liblapack/SRC/slaqr4.f b/lapack/src/slaqr4.f similarity index 100% rename from dspl/liblapack/SRC/slaqr4.f rename to lapack/src/slaqr4.f diff --git a/dspl/liblapack/SRC/slaqr5.f b/lapack/src/slaqr5.f similarity index 100% rename from dspl/liblapack/SRC/slaqr5.f rename to lapack/src/slaqr5.f diff --git a/dspl/liblapack/SRC/slaqsb.f b/lapack/src/slaqsb.f similarity index 100% rename from dspl/liblapack/SRC/slaqsb.f rename to lapack/src/slaqsb.f diff --git a/dspl/liblapack/SRC/slaqsp.f b/lapack/src/slaqsp.f similarity index 100% rename from dspl/liblapack/SRC/slaqsp.f rename to lapack/src/slaqsp.f diff --git a/dspl/liblapack/SRC/slaqsy.f b/lapack/src/slaqsy.f similarity index 100% rename from dspl/liblapack/SRC/slaqsy.f rename to lapack/src/slaqsy.f diff --git a/dspl/liblapack/SRC/slaqtr.f b/lapack/src/slaqtr.f similarity index 100% rename from dspl/liblapack/SRC/slaqtr.f rename to lapack/src/slaqtr.f diff --git a/dspl/liblapack/SRC/slar1v.f b/lapack/src/slar1v.f similarity index 100% rename from dspl/liblapack/SRC/slar1v.f rename to lapack/src/slar1v.f diff --git a/dspl/liblapack/SRC/slar2v.f b/lapack/src/slar2v.f similarity index 100% rename from dspl/liblapack/SRC/slar2v.f rename to lapack/src/slar2v.f diff --git a/dspl/liblapack/SRC/slarf.f b/lapack/src/slarf.f similarity index 100% rename from dspl/liblapack/SRC/slarf.f rename to lapack/src/slarf.f diff --git a/dspl/liblapack/SRC/slarfb.f b/lapack/src/slarfb.f similarity index 100% rename from dspl/liblapack/SRC/slarfb.f rename to lapack/src/slarfb.f diff --git a/dspl/liblapack/SRC/slarfg.f b/lapack/src/slarfg.f similarity index 100% rename from dspl/liblapack/SRC/slarfg.f rename to lapack/src/slarfg.f diff --git a/dspl/liblapack/SRC/slarfgp.f b/lapack/src/slarfgp.f similarity index 100% rename from dspl/liblapack/SRC/slarfgp.f rename to lapack/src/slarfgp.f diff --git a/dspl/liblapack/SRC/slarft.f b/lapack/src/slarft.f similarity index 100% rename from dspl/liblapack/SRC/slarft.f rename to lapack/src/slarft.f diff --git a/dspl/liblapack/SRC/slarfx.f b/lapack/src/slarfx.f similarity index 100% rename from dspl/liblapack/SRC/slarfx.f rename to lapack/src/slarfx.f diff --git a/dspl/liblapack/SRC/slarfy.f b/lapack/src/slarfy.f similarity index 100% rename from dspl/liblapack/SRC/slarfy.f rename to lapack/src/slarfy.f diff --git a/dspl/liblapack/SRC/slargv.f b/lapack/src/slargv.f similarity index 100% rename from dspl/liblapack/SRC/slargv.f rename to lapack/src/slargv.f diff --git a/dspl/liblapack/SRC/slarnv.f b/lapack/src/slarnv.f similarity index 100% rename from dspl/liblapack/SRC/slarnv.f rename to lapack/src/slarnv.f diff --git a/dspl/liblapack/SRC/slarra.f b/lapack/src/slarra.f similarity index 100% rename from dspl/liblapack/SRC/slarra.f rename to lapack/src/slarra.f diff --git a/dspl/liblapack/SRC/slarrb.f b/lapack/src/slarrb.f similarity index 100% rename from dspl/liblapack/SRC/slarrb.f rename to lapack/src/slarrb.f diff --git a/dspl/liblapack/SRC/slarrc.f b/lapack/src/slarrc.f similarity index 100% rename from dspl/liblapack/SRC/slarrc.f rename to lapack/src/slarrc.f diff --git a/dspl/liblapack/SRC/slarrd.f b/lapack/src/slarrd.f similarity index 100% rename from dspl/liblapack/SRC/slarrd.f rename to lapack/src/slarrd.f diff --git a/dspl/liblapack/SRC/slarre.f b/lapack/src/slarre.f similarity index 100% rename from dspl/liblapack/SRC/slarre.f rename to lapack/src/slarre.f diff --git a/dspl/liblapack/SRC/slarrf.f b/lapack/src/slarrf.f similarity index 100% rename from dspl/liblapack/SRC/slarrf.f rename to lapack/src/slarrf.f diff --git a/dspl/liblapack/SRC/slarrj.f b/lapack/src/slarrj.f similarity index 100% rename from dspl/liblapack/SRC/slarrj.f rename to lapack/src/slarrj.f diff --git a/dspl/liblapack/SRC/slarrk.f b/lapack/src/slarrk.f similarity index 100% rename from dspl/liblapack/SRC/slarrk.f rename to lapack/src/slarrk.f diff --git a/dspl/liblapack/SRC/slarrr.f b/lapack/src/slarrr.f similarity index 100% rename from dspl/liblapack/SRC/slarrr.f rename to lapack/src/slarrr.f diff --git a/dspl/liblapack/SRC/slarrv.f b/lapack/src/slarrv.f similarity index 100% rename from dspl/liblapack/SRC/slarrv.f rename to lapack/src/slarrv.f diff --git a/dspl/liblapack/SRC/slarscl2.f b/lapack/src/slarscl2.f similarity index 100% rename from dspl/liblapack/SRC/slarscl2.f rename to lapack/src/slarscl2.f diff --git a/dspl/liblapack/SRC/slartg.f b/lapack/src/slartg.f similarity index 100% rename from dspl/liblapack/SRC/slartg.f rename to lapack/src/slartg.f diff --git a/dspl/liblapack/SRC/slartgp.f b/lapack/src/slartgp.f similarity index 100% rename from dspl/liblapack/SRC/slartgp.f rename to lapack/src/slartgp.f diff --git a/dspl/liblapack/SRC/slartgs.f b/lapack/src/slartgs.f similarity index 100% rename from dspl/liblapack/SRC/slartgs.f rename to lapack/src/slartgs.f diff --git a/dspl/liblapack/SRC/slartv.f b/lapack/src/slartv.f similarity index 100% rename from dspl/liblapack/SRC/slartv.f rename to lapack/src/slartv.f diff --git a/dspl/liblapack/SRC/slaruv.f b/lapack/src/slaruv.f similarity index 100% rename from dspl/liblapack/SRC/slaruv.f rename to lapack/src/slaruv.f diff --git a/dspl/liblapack/SRC/slarz.f b/lapack/src/slarz.f similarity index 100% rename from dspl/liblapack/SRC/slarz.f rename to lapack/src/slarz.f diff --git a/dspl/liblapack/SRC/slarzb.f b/lapack/src/slarzb.f similarity index 100% rename from dspl/liblapack/SRC/slarzb.f rename to lapack/src/slarzb.f diff --git a/dspl/liblapack/SRC/slarzt.f b/lapack/src/slarzt.f similarity index 100% rename from dspl/liblapack/SRC/slarzt.f rename to lapack/src/slarzt.f diff --git a/dspl/liblapack/SRC/slas2.f b/lapack/src/slas2.f similarity index 100% rename from dspl/liblapack/SRC/slas2.f rename to lapack/src/slas2.f diff --git a/dspl/liblapack/SRC/slascl.f b/lapack/src/slascl.f similarity index 100% rename from dspl/liblapack/SRC/slascl.f rename to lapack/src/slascl.f diff --git a/dspl/liblapack/SRC/slascl2.f b/lapack/src/slascl2.f similarity index 100% rename from dspl/liblapack/SRC/slascl2.f rename to lapack/src/slascl2.f diff --git a/dspl/liblapack/SRC/slasd0.f b/lapack/src/slasd0.f similarity index 100% rename from dspl/liblapack/SRC/slasd0.f rename to lapack/src/slasd0.f diff --git a/dspl/liblapack/SRC/slasd1.f b/lapack/src/slasd1.f similarity index 100% rename from dspl/liblapack/SRC/slasd1.f rename to lapack/src/slasd1.f diff --git a/dspl/liblapack/SRC/slasd2.f b/lapack/src/slasd2.f similarity index 100% rename from dspl/liblapack/SRC/slasd2.f rename to lapack/src/slasd2.f diff --git a/dspl/liblapack/SRC/slasd3.f b/lapack/src/slasd3.f similarity index 100% rename from dspl/liblapack/SRC/slasd3.f rename to lapack/src/slasd3.f diff --git a/dspl/liblapack/SRC/slasd4.f b/lapack/src/slasd4.f similarity index 100% rename from dspl/liblapack/SRC/slasd4.f rename to lapack/src/slasd4.f diff --git a/dspl/liblapack/SRC/slasd5.f b/lapack/src/slasd5.f similarity index 100% rename from dspl/liblapack/SRC/slasd5.f rename to lapack/src/slasd5.f diff --git a/dspl/liblapack/SRC/slasd6.f b/lapack/src/slasd6.f similarity index 100% rename from dspl/liblapack/SRC/slasd6.f rename to lapack/src/slasd6.f diff --git a/dspl/liblapack/SRC/slasd7.f b/lapack/src/slasd7.f similarity index 100% rename from dspl/liblapack/SRC/slasd7.f rename to lapack/src/slasd7.f diff --git a/dspl/liblapack/SRC/slasd8.f b/lapack/src/slasd8.f similarity index 100% rename from dspl/liblapack/SRC/slasd8.f rename to lapack/src/slasd8.f diff --git a/dspl/liblapack/SRC/slasda.f b/lapack/src/slasda.f similarity index 100% rename from dspl/liblapack/SRC/slasda.f rename to lapack/src/slasda.f diff --git a/dspl/liblapack/SRC/slasdq.f b/lapack/src/slasdq.f similarity index 100% rename from dspl/liblapack/SRC/slasdq.f rename to lapack/src/slasdq.f diff --git a/dspl/liblapack/SRC/slasdt.f b/lapack/src/slasdt.f similarity index 100% rename from dspl/liblapack/SRC/slasdt.f rename to lapack/src/slasdt.f diff --git a/dspl/liblapack/SRC/slaset.f b/lapack/src/slaset.f similarity index 100% rename from dspl/liblapack/SRC/slaset.f rename to lapack/src/slaset.f diff --git a/dspl/liblapack/SRC/slasq1.f b/lapack/src/slasq1.f similarity index 100% rename from dspl/liblapack/SRC/slasq1.f rename to lapack/src/slasq1.f diff --git a/dspl/liblapack/SRC/slasq2.f b/lapack/src/slasq2.f similarity index 100% rename from dspl/liblapack/SRC/slasq2.f rename to lapack/src/slasq2.f diff --git a/dspl/liblapack/SRC/slasq3.f b/lapack/src/slasq3.f similarity index 100% rename from dspl/liblapack/SRC/slasq3.f rename to lapack/src/slasq3.f diff --git a/dspl/liblapack/SRC/slasq4.f b/lapack/src/slasq4.f similarity index 100% rename from dspl/liblapack/SRC/slasq4.f rename to lapack/src/slasq4.f diff --git a/dspl/liblapack/SRC/slasq5.f b/lapack/src/slasq5.f similarity index 100% rename from dspl/liblapack/SRC/slasq5.f rename to lapack/src/slasq5.f diff --git a/dspl/liblapack/SRC/slasq6.f b/lapack/src/slasq6.f similarity index 100% rename from dspl/liblapack/SRC/slasq6.f rename to lapack/src/slasq6.f diff --git a/dspl/liblapack/SRC/slasr.f b/lapack/src/slasr.f similarity index 100% rename from dspl/liblapack/SRC/slasr.f rename to lapack/src/slasr.f diff --git a/dspl/liblapack/SRC/slasrt.f b/lapack/src/slasrt.f similarity index 100% rename from dspl/liblapack/SRC/slasrt.f rename to lapack/src/slasrt.f diff --git a/dspl/liblapack/SRC/slassq.f b/lapack/src/slassq.f similarity index 100% rename from dspl/liblapack/SRC/slassq.f rename to lapack/src/slassq.f diff --git a/dspl/liblapack/SRC/slasv2.f b/lapack/src/slasv2.f similarity index 100% rename from dspl/liblapack/SRC/slasv2.f rename to lapack/src/slasv2.f diff --git a/dspl/liblapack/SRC/slaswlq.f b/lapack/src/slaswlq.f similarity index 100% rename from dspl/liblapack/SRC/slaswlq.f rename to lapack/src/slaswlq.f diff --git a/dspl/liblapack/SRC/slaswp.f b/lapack/src/slaswp.f similarity index 100% rename from dspl/liblapack/SRC/slaswp.f rename to lapack/src/slaswp.f diff --git a/dspl/liblapack/SRC/slasy2.f b/lapack/src/slasy2.f similarity index 100% rename from dspl/liblapack/SRC/slasy2.f rename to lapack/src/slasy2.f diff --git a/dspl/liblapack/SRC/slasyf.f b/lapack/src/slasyf.f similarity index 100% rename from dspl/liblapack/SRC/slasyf.f rename to lapack/src/slasyf.f diff --git a/dspl/liblapack/SRC/slasyf_aa.f b/lapack/src/slasyf_aa.f similarity index 100% rename from dspl/liblapack/SRC/slasyf_aa.f rename to lapack/src/slasyf_aa.f diff --git a/dspl/liblapack/SRC/slasyf_rk.f b/lapack/src/slasyf_rk.f similarity index 100% rename from dspl/liblapack/SRC/slasyf_rk.f rename to lapack/src/slasyf_rk.f diff --git a/dspl/liblapack/SRC/slasyf_rook.f b/lapack/src/slasyf_rook.f similarity index 100% rename from dspl/liblapack/SRC/slasyf_rook.f rename to lapack/src/slasyf_rook.f diff --git a/dspl/liblapack/SRC/slatbs.f b/lapack/src/slatbs.f similarity index 100% rename from dspl/liblapack/SRC/slatbs.f rename to lapack/src/slatbs.f diff --git a/dspl/liblapack/SRC/slatdf.f b/lapack/src/slatdf.f similarity index 100% rename from dspl/liblapack/SRC/slatdf.f rename to lapack/src/slatdf.f diff --git a/dspl/liblapack/SRC/slatps.f b/lapack/src/slatps.f similarity index 100% rename from dspl/liblapack/SRC/slatps.f rename to lapack/src/slatps.f diff --git a/dspl/liblapack/SRC/slatrd.f b/lapack/src/slatrd.f similarity index 100% rename from dspl/liblapack/SRC/slatrd.f rename to lapack/src/slatrd.f diff --git a/dspl/liblapack/SRC/slatrs.f b/lapack/src/slatrs.f similarity index 100% rename from dspl/liblapack/SRC/slatrs.f rename to lapack/src/slatrs.f diff --git a/dspl/liblapack/SRC/slatrz.f b/lapack/src/slatrz.f similarity index 100% rename from dspl/liblapack/SRC/slatrz.f rename to lapack/src/slatrz.f diff --git a/dspl/liblapack/SRC/slatsqr.f b/lapack/src/slatsqr.f similarity index 100% rename from dspl/liblapack/SRC/slatsqr.f rename to lapack/src/slatsqr.f diff --git a/dspl/liblapack/SRC/slauu2.f b/lapack/src/slauu2.f similarity index 100% rename from dspl/liblapack/SRC/slauu2.f rename to lapack/src/slauu2.f diff --git a/dspl/liblapack/SRC/slauum.f b/lapack/src/slauum.f similarity index 100% rename from dspl/liblapack/SRC/slauum.f rename to lapack/src/slauum.f diff --git a/dspl/liblapack/SRC/sopgtr.f b/lapack/src/sopgtr.f similarity index 100% rename from dspl/liblapack/SRC/sopgtr.f rename to lapack/src/sopgtr.f diff --git a/dspl/liblapack/SRC/sopmtr.f b/lapack/src/sopmtr.f similarity index 100% rename from dspl/liblapack/SRC/sopmtr.f rename to lapack/src/sopmtr.f diff --git a/dspl/liblapack/SRC/sorbdb.f b/lapack/src/sorbdb.f similarity index 100% rename from dspl/liblapack/SRC/sorbdb.f rename to lapack/src/sorbdb.f diff --git a/dspl/liblapack/SRC/sorbdb1.f b/lapack/src/sorbdb1.f similarity index 100% rename from dspl/liblapack/SRC/sorbdb1.f rename to lapack/src/sorbdb1.f diff --git a/dspl/liblapack/SRC/sorbdb2.f b/lapack/src/sorbdb2.f similarity index 100% rename from dspl/liblapack/SRC/sorbdb2.f rename to lapack/src/sorbdb2.f diff --git a/dspl/liblapack/SRC/sorbdb3.f b/lapack/src/sorbdb3.f similarity index 100% rename from dspl/liblapack/SRC/sorbdb3.f rename to lapack/src/sorbdb3.f diff --git a/dspl/liblapack/SRC/sorbdb4.f b/lapack/src/sorbdb4.f similarity index 100% rename from dspl/liblapack/SRC/sorbdb4.f rename to lapack/src/sorbdb4.f diff --git a/dspl/liblapack/SRC/sorbdb5.f b/lapack/src/sorbdb5.f similarity index 100% rename from dspl/liblapack/SRC/sorbdb5.f rename to lapack/src/sorbdb5.f diff --git a/dspl/liblapack/SRC/sorbdb6.f b/lapack/src/sorbdb6.f similarity index 100% rename from dspl/liblapack/SRC/sorbdb6.f rename to lapack/src/sorbdb6.f diff --git a/dspl/liblapack/SRC/sorcsd.f b/lapack/src/sorcsd.f similarity index 100% rename from dspl/liblapack/SRC/sorcsd.f rename to lapack/src/sorcsd.f diff --git a/dspl/liblapack/SRC/sorcsd2by1.f b/lapack/src/sorcsd2by1.f similarity index 100% rename from dspl/liblapack/SRC/sorcsd2by1.f rename to lapack/src/sorcsd2by1.f diff --git a/dspl/liblapack/SRC/sorg2l.f b/lapack/src/sorg2l.f similarity index 100% rename from dspl/liblapack/SRC/sorg2l.f rename to lapack/src/sorg2l.f diff --git a/dspl/liblapack/SRC/sorg2r.f b/lapack/src/sorg2r.f similarity index 100% rename from dspl/liblapack/SRC/sorg2r.f rename to lapack/src/sorg2r.f diff --git a/dspl/liblapack/SRC/sorgbr.f b/lapack/src/sorgbr.f similarity index 100% rename from dspl/liblapack/SRC/sorgbr.f rename to lapack/src/sorgbr.f diff --git a/dspl/liblapack/SRC/sorghr.f b/lapack/src/sorghr.f similarity index 100% rename from dspl/liblapack/SRC/sorghr.f rename to lapack/src/sorghr.f diff --git a/dspl/liblapack/SRC/sorgl2.f b/lapack/src/sorgl2.f similarity index 100% rename from dspl/liblapack/SRC/sorgl2.f rename to lapack/src/sorgl2.f diff --git a/dspl/liblapack/SRC/sorglq.f b/lapack/src/sorglq.f similarity index 100% rename from dspl/liblapack/SRC/sorglq.f rename to lapack/src/sorglq.f diff --git a/dspl/liblapack/SRC/sorgql.f b/lapack/src/sorgql.f similarity index 100% rename from dspl/liblapack/SRC/sorgql.f rename to lapack/src/sorgql.f diff --git a/dspl/liblapack/SRC/sorgqr.f b/lapack/src/sorgqr.f similarity index 100% rename from dspl/liblapack/SRC/sorgqr.f rename to lapack/src/sorgqr.f diff --git a/dspl/liblapack/SRC/sorgr2.f b/lapack/src/sorgr2.f similarity index 100% rename from dspl/liblapack/SRC/sorgr2.f rename to lapack/src/sorgr2.f diff --git a/dspl/liblapack/SRC/sorgrq.f b/lapack/src/sorgrq.f similarity index 100% rename from dspl/liblapack/SRC/sorgrq.f rename to lapack/src/sorgrq.f diff --git a/dspl/liblapack/SRC/sorgtr.f b/lapack/src/sorgtr.f similarity index 100% rename from dspl/liblapack/SRC/sorgtr.f rename to lapack/src/sorgtr.f diff --git a/dspl/liblapack/SRC/sorm22.f b/lapack/src/sorm22.f similarity index 100% rename from dspl/liblapack/SRC/sorm22.f rename to lapack/src/sorm22.f diff --git a/dspl/liblapack/SRC/sorm2l.f b/lapack/src/sorm2l.f similarity index 100% rename from dspl/liblapack/SRC/sorm2l.f rename to lapack/src/sorm2l.f diff --git a/dspl/liblapack/SRC/sorm2r.f b/lapack/src/sorm2r.f similarity index 100% rename from dspl/liblapack/SRC/sorm2r.f rename to lapack/src/sorm2r.f diff --git a/dspl/liblapack/SRC/sormbr.f b/lapack/src/sormbr.f similarity index 100% rename from dspl/liblapack/SRC/sormbr.f rename to lapack/src/sormbr.f diff --git a/dspl/liblapack/SRC/sormhr.f b/lapack/src/sormhr.f similarity index 100% rename from dspl/liblapack/SRC/sormhr.f rename to lapack/src/sormhr.f diff --git a/dspl/liblapack/SRC/sorml2.f b/lapack/src/sorml2.f similarity index 100% rename from dspl/liblapack/SRC/sorml2.f rename to lapack/src/sorml2.f diff --git a/dspl/liblapack/SRC/sormlq.f b/lapack/src/sormlq.f similarity index 100% rename from dspl/liblapack/SRC/sormlq.f rename to lapack/src/sormlq.f diff --git a/dspl/liblapack/SRC/sormql.f b/lapack/src/sormql.f similarity index 100% rename from dspl/liblapack/SRC/sormql.f rename to lapack/src/sormql.f diff --git a/dspl/liblapack/SRC/sormqr.f b/lapack/src/sormqr.f similarity index 100% rename from dspl/liblapack/SRC/sormqr.f rename to lapack/src/sormqr.f diff --git a/dspl/liblapack/SRC/sormr2.f b/lapack/src/sormr2.f similarity index 100% rename from dspl/liblapack/SRC/sormr2.f rename to lapack/src/sormr2.f diff --git a/dspl/liblapack/SRC/sormr3.f b/lapack/src/sormr3.f similarity index 100% rename from dspl/liblapack/SRC/sormr3.f rename to lapack/src/sormr3.f diff --git a/dspl/liblapack/SRC/sormrq.f b/lapack/src/sormrq.f similarity index 100% rename from dspl/liblapack/SRC/sormrq.f rename to lapack/src/sormrq.f diff --git a/dspl/liblapack/SRC/sormrz.f b/lapack/src/sormrz.f similarity index 100% rename from dspl/liblapack/SRC/sormrz.f rename to lapack/src/sormrz.f diff --git a/dspl/liblapack/SRC/sormtr.f b/lapack/src/sormtr.f similarity index 100% rename from dspl/liblapack/SRC/sormtr.f rename to lapack/src/sormtr.f diff --git a/dspl/liblapack/SRC/spbcon.f b/lapack/src/spbcon.f similarity index 100% rename from dspl/liblapack/SRC/spbcon.f rename to lapack/src/spbcon.f diff --git a/dspl/liblapack/SRC/spbequ.f b/lapack/src/spbequ.f similarity index 100% rename from dspl/liblapack/SRC/spbequ.f rename to lapack/src/spbequ.f diff --git a/dspl/liblapack/SRC/spbrfs.f b/lapack/src/spbrfs.f similarity index 100% rename from dspl/liblapack/SRC/spbrfs.f rename to lapack/src/spbrfs.f diff --git a/dspl/liblapack/SRC/spbstf.f b/lapack/src/spbstf.f similarity index 100% rename from dspl/liblapack/SRC/spbstf.f rename to lapack/src/spbstf.f diff --git a/dspl/liblapack/SRC/spbsv.f b/lapack/src/spbsv.f similarity index 100% rename from dspl/liblapack/SRC/spbsv.f rename to lapack/src/spbsv.f diff --git a/dspl/liblapack/SRC/spbsvx.f b/lapack/src/spbsvx.f similarity index 100% rename from dspl/liblapack/SRC/spbsvx.f rename to lapack/src/spbsvx.f diff --git a/dspl/liblapack/SRC/spbtf2.f b/lapack/src/spbtf2.f similarity index 100% rename from dspl/liblapack/SRC/spbtf2.f rename to lapack/src/spbtf2.f diff --git a/dspl/liblapack/SRC/spbtrf.f b/lapack/src/spbtrf.f similarity index 100% rename from dspl/liblapack/SRC/spbtrf.f rename to lapack/src/spbtrf.f diff --git a/dspl/liblapack/SRC/spbtrs.f b/lapack/src/spbtrs.f similarity index 100% rename from dspl/liblapack/SRC/spbtrs.f rename to lapack/src/spbtrs.f diff --git a/dspl/liblapack/SRC/spftrf.f b/lapack/src/spftrf.f similarity index 100% rename from dspl/liblapack/SRC/spftrf.f rename to lapack/src/spftrf.f diff --git a/dspl/liblapack/SRC/spftri.f b/lapack/src/spftri.f similarity index 100% rename from dspl/liblapack/SRC/spftri.f rename to lapack/src/spftri.f diff --git a/dspl/liblapack/SRC/spftrs.f b/lapack/src/spftrs.f similarity index 100% rename from dspl/liblapack/SRC/spftrs.f rename to lapack/src/spftrs.f diff --git a/dspl/liblapack/SRC/spocon.f b/lapack/src/spocon.f similarity index 100% rename from dspl/liblapack/SRC/spocon.f rename to lapack/src/spocon.f diff --git a/dspl/liblapack/SRC/spoequ.f b/lapack/src/spoequ.f similarity index 100% rename from dspl/liblapack/SRC/spoequ.f rename to lapack/src/spoequ.f diff --git a/dspl/liblapack/SRC/spoequb.f b/lapack/src/spoequb.f similarity index 100% rename from dspl/liblapack/SRC/spoequb.f rename to lapack/src/spoequb.f diff --git a/dspl/liblapack/SRC/sporfs.f b/lapack/src/sporfs.f similarity index 100% rename from dspl/liblapack/SRC/sporfs.f rename to lapack/src/sporfs.f diff --git a/dspl/liblapack/SRC/sporfsx.f b/lapack/src/sporfsx.f similarity index 100% rename from dspl/liblapack/SRC/sporfsx.f rename to lapack/src/sporfsx.f diff --git a/dspl/liblapack/SRC/sposv.f b/lapack/src/sposv.f similarity index 100% rename from dspl/liblapack/SRC/sposv.f rename to lapack/src/sposv.f diff --git a/dspl/liblapack/SRC/sposvx.f b/lapack/src/sposvx.f similarity index 100% rename from dspl/liblapack/SRC/sposvx.f rename to lapack/src/sposvx.f diff --git a/dspl/liblapack/SRC/sposvxx.f b/lapack/src/sposvxx.f similarity index 100% rename from dspl/liblapack/SRC/sposvxx.f rename to lapack/src/sposvxx.f diff --git a/dspl/liblapack/SRC/spotf2.f b/lapack/src/spotf2.f similarity index 100% rename from dspl/liblapack/SRC/spotf2.f rename to lapack/src/spotf2.f diff --git a/dspl/liblapack/SRC/spotrf.f b/lapack/src/spotrf.f similarity index 100% rename from dspl/liblapack/SRC/spotrf.f rename to lapack/src/spotrf.f diff --git a/dspl/liblapack/SRC/spotrf2.f b/lapack/src/spotrf2.f similarity index 100% rename from dspl/liblapack/SRC/spotrf2.f rename to lapack/src/spotrf2.f diff --git a/dspl/liblapack/SRC/spotri.f b/lapack/src/spotri.f similarity index 100% rename from dspl/liblapack/SRC/spotri.f rename to lapack/src/spotri.f diff --git a/dspl/liblapack/SRC/spotrs.f b/lapack/src/spotrs.f similarity index 100% rename from dspl/liblapack/SRC/spotrs.f rename to lapack/src/spotrs.f diff --git a/dspl/liblapack/SRC/sppcon.f b/lapack/src/sppcon.f similarity index 100% rename from dspl/liblapack/SRC/sppcon.f rename to lapack/src/sppcon.f diff --git a/dspl/liblapack/SRC/sppequ.f b/lapack/src/sppequ.f similarity index 100% rename from dspl/liblapack/SRC/sppequ.f rename to lapack/src/sppequ.f diff --git a/dspl/liblapack/SRC/spprfs.f b/lapack/src/spprfs.f similarity index 100% rename from dspl/liblapack/SRC/spprfs.f rename to lapack/src/spprfs.f diff --git a/dspl/liblapack/SRC/sppsv.f b/lapack/src/sppsv.f similarity index 100% rename from dspl/liblapack/SRC/sppsv.f rename to lapack/src/sppsv.f diff --git a/dspl/liblapack/SRC/sppsvx.f b/lapack/src/sppsvx.f similarity index 100% rename from dspl/liblapack/SRC/sppsvx.f rename to lapack/src/sppsvx.f diff --git a/dspl/liblapack/SRC/spptrf.f b/lapack/src/spptrf.f similarity index 100% rename from dspl/liblapack/SRC/spptrf.f rename to lapack/src/spptrf.f diff --git a/dspl/liblapack/SRC/spptri.f b/lapack/src/spptri.f similarity index 100% rename from dspl/liblapack/SRC/spptri.f rename to lapack/src/spptri.f diff --git a/dspl/liblapack/SRC/spptrs.f b/lapack/src/spptrs.f similarity index 100% rename from dspl/liblapack/SRC/spptrs.f rename to lapack/src/spptrs.f diff --git a/dspl/liblapack/SRC/spstf2.f b/lapack/src/spstf2.f similarity index 100% rename from dspl/liblapack/SRC/spstf2.f rename to lapack/src/spstf2.f diff --git a/dspl/liblapack/SRC/spstrf.f b/lapack/src/spstrf.f similarity index 100% rename from dspl/liblapack/SRC/spstrf.f rename to lapack/src/spstrf.f diff --git a/dspl/liblapack/SRC/sptcon.f b/lapack/src/sptcon.f similarity index 100% rename from dspl/liblapack/SRC/sptcon.f rename to lapack/src/sptcon.f diff --git a/dspl/liblapack/SRC/spteqr.f b/lapack/src/spteqr.f similarity index 100% rename from dspl/liblapack/SRC/spteqr.f rename to lapack/src/spteqr.f diff --git a/dspl/liblapack/SRC/sptrfs.f b/lapack/src/sptrfs.f similarity index 100% rename from dspl/liblapack/SRC/sptrfs.f rename to lapack/src/sptrfs.f diff --git a/dspl/liblapack/SRC/sptsv.f b/lapack/src/sptsv.f similarity index 100% rename from dspl/liblapack/SRC/sptsv.f rename to lapack/src/sptsv.f diff --git a/dspl/liblapack/SRC/sptsvx.f b/lapack/src/sptsvx.f similarity index 100% rename from dspl/liblapack/SRC/sptsvx.f rename to lapack/src/sptsvx.f diff --git a/dspl/liblapack/SRC/spttrf.f b/lapack/src/spttrf.f similarity index 100% rename from dspl/liblapack/SRC/spttrf.f rename to lapack/src/spttrf.f diff --git a/dspl/liblapack/SRC/spttrs.f b/lapack/src/spttrs.f similarity index 100% rename from dspl/liblapack/SRC/spttrs.f rename to lapack/src/spttrs.f diff --git a/dspl/liblapack/SRC/sptts2.f b/lapack/src/sptts2.f similarity index 100% rename from dspl/liblapack/SRC/sptts2.f rename to lapack/src/sptts2.f diff --git a/dspl/liblapack/SRC/srscl.f b/lapack/src/srscl.f similarity index 100% rename from dspl/liblapack/SRC/srscl.f rename to lapack/src/srscl.f diff --git a/dspl/liblapack/SRC/ssb2st_kernels.f b/lapack/src/ssb2st_kernels.f similarity index 100% rename from dspl/liblapack/SRC/ssb2st_kernels.f rename to lapack/src/ssb2st_kernels.f diff --git a/dspl/liblapack/SRC/ssbev.f b/lapack/src/ssbev.f similarity index 100% rename from dspl/liblapack/SRC/ssbev.f rename to lapack/src/ssbev.f diff --git a/dspl/liblapack/SRC/ssbev_2stage.f b/lapack/src/ssbev_2stage.f similarity index 100% rename from dspl/liblapack/SRC/ssbev_2stage.f rename to lapack/src/ssbev_2stage.f diff --git a/dspl/liblapack/SRC/ssbevd.f b/lapack/src/ssbevd.f similarity index 100% rename from dspl/liblapack/SRC/ssbevd.f rename to lapack/src/ssbevd.f diff --git a/dspl/liblapack/SRC/ssbevd_2stage.f b/lapack/src/ssbevd_2stage.f similarity index 100% rename from dspl/liblapack/SRC/ssbevd_2stage.f rename to lapack/src/ssbevd_2stage.f diff --git a/dspl/liblapack/SRC/ssbevx.f b/lapack/src/ssbevx.f similarity index 100% rename from dspl/liblapack/SRC/ssbevx.f rename to lapack/src/ssbevx.f diff --git a/dspl/liblapack/SRC/ssbevx_2stage.f b/lapack/src/ssbevx_2stage.f similarity index 100% rename from dspl/liblapack/SRC/ssbevx_2stage.f rename to lapack/src/ssbevx_2stage.f diff --git a/dspl/liblapack/SRC/ssbgst.f b/lapack/src/ssbgst.f similarity index 100% rename from dspl/liblapack/SRC/ssbgst.f rename to lapack/src/ssbgst.f diff --git a/dspl/liblapack/SRC/ssbgv.f b/lapack/src/ssbgv.f similarity index 100% rename from dspl/liblapack/SRC/ssbgv.f rename to lapack/src/ssbgv.f diff --git a/dspl/liblapack/SRC/ssbgvd.f b/lapack/src/ssbgvd.f similarity index 100% rename from dspl/liblapack/SRC/ssbgvd.f rename to lapack/src/ssbgvd.f diff --git a/dspl/liblapack/SRC/ssbgvx.f b/lapack/src/ssbgvx.f similarity index 100% rename from dspl/liblapack/SRC/ssbgvx.f rename to lapack/src/ssbgvx.f diff --git a/dspl/liblapack/SRC/ssbtrd.f b/lapack/src/ssbtrd.f similarity index 100% rename from dspl/liblapack/SRC/ssbtrd.f rename to lapack/src/ssbtrd.f diff --git a/dspl/liblapack/SRC/ssfrk.f b/lapack/src/ssfrk.f similarity index 100% rename from dspl/liblapack/SRC/ssfrk.f rename to lapack/src/ssfrk.f diff --git a/dspl/liblapack/SRC/sspcon.f b/lapack/src/sspcon.f similarity index 100% rename from dspl/liblapack/SRC/sspcon.f rename to lapack/src/sspcon.f diff --git a/dspl/liblapack/SRC/sspev.f b/lapack/src/sspev.f similarity index 100% rename from dspl/liblapack/SRC/sspev.f rename to lapack/src/sspev.f diff --git a/dspl/liblapack/SRC/sspevd.f b/lapack/src/sspevd.f similarity index 100% rename from dspl/liblapack/SRC/sspevd.f rename to lapack/src/sspevd.f diff --git a/dspl/liblapack/SRC/sspevx.f b/lapack/src/sspevx.f similarity index 100% rename from dspl/liblapack/SRC/sspevx.f rename to lapack/src/sspevx.f diff --git a/dspl/liblapack/SRC/sspgst.f b/lapack/src/sspgst.f similarity index 100% rename from dspl/liblapack/SRC/sspgst.f rename to lapack/src/sspgst.f diff --git a/dspl/liblapack/SRC/sspgv.f b/lapack/src/sspgv.f similarity index 100% rename from dspl/liblapack/SRC/sspgv.f rename to lapack/src/sspgv.f diff --git a/dspl/liblapack/SRC/sspgvd.f b/lapack/src/sspgvd.f similarity index 100% rename from dspl/liblapack/SRC/sspgvd.f rename to lapack/src/sspgvd.f diff --git a/dspl/liblapack/SRC/sspgvx.f b/lapack/src/sspgvx.f similarity index 100% rename from dspl/liblapack/SRC/sspgvx.f rename to lapack/src/sspgvx.f diff --git a/dspl/liblapack/SRC/ssprfs.f b/lapack/src/ssprfs.f similarity index 100% rename from dspl/liblapack/SRC/ssprfs.f rename to lapack/src/ssprfs.f diff --git a/dspl/liblapack/SRC/sspsv.f b/lapack/src/sspsv.f similarity index 100% rename from dspl/liblapack/SRC/sspsv.f rename to lapack/src/sspsv.f diff --git a/dspl/liblapack/SRC/sspsvx.f b/lapack/src/sspsvx.f similarity index 100% rename from dspl/liblapack/SRC/sspsvx.f rename to lapack/src/sspsvx.f diff --git a/dspl/liblapack/SRC/ssptrd.f b/lapack/src/ssptrd.f similarity index 100% rename from dspl/liblapack/SRC/ssptrd.f rename to lapack/src/ssptrd.f diff --git a/dspl/liblapack/SRC/ssptrf.f b/lapack/src/ssptrf.f similarity index 100% rename from dspl/liblapack/SRC/ssptrf.f rename to lapack/src/ssptrf.f diff --git a/dspl/liblapack/SRC/ssptri.f b/lapack/src/ssptri.f similarity index 100% rename from dspl/liblapack/SRC/ssptri.f rename to lapack/src/ssptri.f diff --git a/dspl/liblapack/SRC/ssptrs.f b/lapack/src/ssptrs.f similarity index 100% rename from dspl/liblapack/SRC/ssptrs.f rename to lapack/src/ssptrs.f diff --git a/dspl/liblapack/SRC/sstebz.f b/lapack/src/sstebz.f similarity index 100% rename from dspl/liblapack/SRC/sstebz.f rename to lapack/src/sstebz.f diff --git a/dspl/liblapack/SRC/sstedc.f b/lapack/src/sstedc.f similarity index 100% rename from dspl/liblapack/SRC/sstedc.f rename to lapack/src/sstedc.f diff --git a/dspl/liblapack/SRC/sstegr.f b/lapack/src/sstegr.f similarity index 100% rename from dspl/liblapack/SRC/sstegr.f rename to lapack/src/sstegr.f diff --git a/dspl/liblapack/SRC/sstein.f b/lapack/src/sstein.f similarity index 100% rename from dspl/liblapack/SRC/sstein.f rename to lapack/src/sstein.f diff --git a/dspl/liblapack/SRC/sstemr.f b/lapack/src/sstemr.f similarity index 100% rename from dspl/liblapack/SRC/sstemr.f rename to lapack/src/sstemr.f diff --git a/dspl/liblapack/SRC/ssteqr.f b/lapack/src/ssteqr.f similarity index 100% rename from dspl/liblapack/SRC/ssteqr.f rename to lapack/src/ssteqr.f diff --git a/dspl/liblapack/SRC/ssterf.f b/lapack/src/ssterf.f similarity index 100% rename from dspl/liblapack/SRC/ssterf.f rename to lapack/src/ssterf.f diff --git a/dspl/liblapack/SRC/sstev.f b/lapack/src/sstev.f similarity index 100% rename from dspl/liblapack/SRC/sstev.f rename to lapack/src/sstev.f diff --git a/dspl/liblapack/SRC/sstevd.f b/lapack/src/sstevd.f similarity index 100% rename from dspl/liblapack/SRC/sstevd.f rename to lapack/src/sstevd.f diff --git a/dspl/liblapack/SRC/sstevr.f b/lapack/src/sstevr.f similarity index 100% rename from dspl/liblapack/SRC/sstevr.f rename to lapack/src/sstevr.f diff --git a/dspl/liblapack/SRC/sstevx.f b/lapack/src/sstevx.f similarity index 100% rename from dspl/liblapack/SRC/sstevx.f rename to lapack/src/sstevx.f diff --git a/dspl/liblapack/SRC/ssycon.f b/lapack/src/ssycon.f similarity index 100% rename from dspl/liblapack/SRC/ssycon.f rename to lapack/src/ssycon.f diff --git a/dspl/liblapack/SRC/ssycon_3.f b/lapack/src/ssycon_3.f similarity index 100% rename from dspl/liblapack/SRC/ssycon_3.f rename to lapack/src/ssycon_3.f diff --git a/dspl/liblapack/SRC/ssycon_rook.f b/lapack/src/ssycon_rook.f similarity index 100% rename from dspl/liblapack/SRC/ssycon_rook.f rename to lapack/src/ssycon_rook.f diff --git a/dspl/liblapack/SRC/ssyconv.f b/lapack/src/ssyconv.f similarity index 100% rename from dspl/liblapack/SRC/ssyconv.f rename to lapack/src/ssyconv.f diff --git a/dspl/liblapack/SRC/ssyconvf.f b/lapack/src/ssyconvf.f similarity index 100% rename from dspl/liblapack/SRC/ssyconvf.f rename to lapack/src/ssyconvf.f diff --git a/dspl/liblapack/SRC/ssyconvf_rook.f b/lapack/src/ssyconvf_rook.f similarity index 100% rename from dspl/liblapack/SRC/ssyconvf_rook.f rename to lapack/src/ssyconvf_rook.f diff --git a/dspl/liblapack/SRC/ssyequb.f b/lapack/src/ssyequb.f similarity index 100% rename from dspl/liblapack/SRC/ssyequb.f rename to lapack/src/ssyequb.f diff --git a/dspl/liblapack/SRC/ssyev.f b/lapack/src/ssyev.f similarity index 100% rename from dspl/liblapack/SRC/ssyev.f rename to lapack/src/ssyev.f diff --git a/dspl/liblapack/SRC/ssyev_2stage.f b/lapack/src/ssyev_2stage.f similarity index 100% rename from dspl/liblapack/SRC/ssyev_2stage.f rename to lapack/src/ssyev_2stage.f diff --git a/dspl/liblapack/SRC/ssyevd.f b/lapack/src/ssyevd.f similarity index 100% rename from dspl/liblapack/SRC/ssyevd.f rename to lapack/src/ssyevd.f diff --git a/dspl/liblapack/SRC/ssyevd_2stage.f b/lapack/src/ssyevd_2stage.f similarity index 100% rename from dspl/liblapack/SRC/ssyevd_2stage.f rename to lapack/src/ssyevd_2stage.f diff --git a/dspl/liblapack/SRC/ssyevr.f b/lapack/src/ssyevr.f similarity index 100% rename from dspl/liblapack/SRC/ssyevr.f rename to lapack/src/ssyevr.f diff --git a/dspl/liblapack/SRC/ssyevr_2stage.f b/lapack/src/ssyevr_2stage.f similarity index 100% rename from dspl/liblapack/SRC/ssyevr_2stage.f rename to lapack/src/ssyevr_2stage.f diff --git a/dspl/liblapack/SRC/ssyevx.f b/lapack/src/ssyevx.f similarity index 100% rename from dspl/liblapack/SRC/ssyevx.f rename to lapack/src/ssyevx.f diff --git a/dspl/liblapack/SRC/ssyevx_2stage.f b/lapack/src/ssyevx_2stage.f similarity index 100% rename from dspl/liblapack/SRC/ssyevx_2stage.f rename to lapack/src/ssyevx_2stage.f diff --git a/dspl/liblapack/SRC/ssygs2.f b/lapack/src/ssygs2.f similarity index 100% rename from dspl/liblapack/SRC/ssygs2.f rename to lapack/src/ssygs2.f diff --git a/dspl/liblapack/SRC/ssygst.f b/lapack/src/ssygst.f similarity index 100% rename from dspl/liblapack/SRC/ssygst.f rename to lapack/src/ssygst.f diff --git a/dspl/liblapack/SRC/ssygv.f b/lapack/src/ssygv.f similarity index 100% rename from dspl/liblapack/SRC/ssygv.f rename to lapack/src/ssygv.f diff --git a/dspl/liblapack/SRC/ssygv_2stage.f b/lapack/src/ssygv_2stage.f similarity index 100% rename from dspl/liblapack/SRC/ssygv_2stage.f rename to lapack/src/ssygv_2stage.f diff --git a/dspl/liblapack/SRC/ssygvd.f b/lapack/src/ssygvd.f similarity index 100% rename from dspl/liblapack/SRC/ssygvd.f rename to lapack/src/ssygvd.f diff --git a/dspl/liblapack/SRC/ssygvx.f b/lapack/src/ssygvx.f similarity index 100% rename from dspl/liblapack/SRC/ssygvx.f rename to lapack/src/ssygvx.f diff --git a/dspl/liblapack/SRC/ssyrfs.f b/lapack/src/ssyrfs.f similarity index 100% rename from dspl/liblapack/SRC/ssyrfs.f rename to lapack/src/ssyrfs.f diff --git a/dspl/liblapack/SRC/ssyrfsx.f b/lapack/src/ssyrfsx.f similarity index 100% rename from dspl/liblapack/SRC/ssyrfsx.f rename to lapack/src/ssyrfsx.f diff --git a/dspl/liblapack/SRC/ssysv.f b/lapack/src/ssysv.f similarity index 100% rename from dspl/liblapack/SRC/ssysv.f rename to lapack/src/ssysv.f diff --git a/dspl/liblapack/SRC/ssysv_aa.f b/lapack/src/ssysv_aa.f similarity index 100% rename from dspl/liblapack/SRC/ssysv_aa.f rename to lapack/src/ssysv_aa.f diff --git a/dspl/liblapack/SRC/ssysv_aa_2stage.f b/lapack/src/ssysv_aa_2stage.f similarity index 100% rename from dspl/liblapack/SRC/ssysv_aa_2stage.f rename to lapack/src/ssysv_aa_2stage.f diff --git a/dspl/liblapack/SRC/ssysv_rk.f b/lapack/src/ssysv_rk.f similarity index 100% rename from dspl/liblapack/SRC/ssysv_rk.f rename to lapack/src/ssysv_rk.f diff --git a/dspl/liblapack/SRC/ssysv_rook.f b/lapack/src/ssysv_rook.f similarity index 100% rename from dspl/liblapack/SRC/ssysv_rook.f rename to lapack/src/ssysv_rook.f diff --git a/dspl/liblapack/SRC/ssysvx.f b/lapack/src/ssysvx.f similarity index 100% rename from dspl/liblapack/SRC/ssysvx.f rename to lapack/src/ssysvx.f diff --git a/dspl/liblapack/SRC/ssysvxx.f b/lapack/src/ssysvxx.f similarity index 100% rename from dspl/liblapack/SRC/ssysvxx.f rename to lapack/src/ssysvxx.f diff --git a/dspl/liblapack/SRC/ssyswapr.f b/lapack/src/ssyswapr.f similarity index 100% rename from dspl/liblapack/SRC/ssyswapr.f rename to lapack/src/ssyswapr.f diff --git a/dspl/liblapack/SRC/ssytd2.f b/lapack/src/ssytd2.f similarity index 100% rename from dspl/liblapack/SRC/ssytd2.f rename to lapack/src/ssytd2.f diff --git a/dspl/liblapack/SRC/ssytf2.f b/lapack/src/ssytf2.f similarity index 100% rename from dspl/liblapack/SRC/ssytf2.f rename to lapack/src/ssytf2.f diff --git a/dspl/liblapack/SRC/ssytf2_rk.f b/lapack/src/ssytf2_rk.f similarity index 100% rename from dspl/liblapack/SRC/ssytf2_rk.f rename to lapack/src/ssytf2_rk.f diff --git a/dspl/liblapack/SRC/ssytf2_rook.f b/lapack/src/ssytf2_rook.f similarity index 100% rename from dspl/liblapack/SRC/ssytf2_rook.f rename to lapack/src/ssytf2_rook.f diff --git a/dspl/liblapack/SRC/ssytrd.f b/lapack/src/ssytrd.f similarity index 100% rename from dspl/liblapack/SRC/ssytrd.f rename to lapack/src/ssytrd.f diff --git a/dspl/liblapack/SRC/ssytrd_2stage.f b/lapack/src/ssytrd_2stage.f similarity index 100% rename from dspl/liblapack/SRC/ssytrd_2stage.f rename to lapack/src/ssytrd_2stage.f diff --git a/dspl/liblapack/SRC/ssytrd_sb2st.F b/lapack/src/ssytrd_sb2st.F similarity index 100% rename from dspl/liblapack/SRC/ssytrd_sb2st.F rename to lapack/src/ssytrd_sb2st.F diff --git a/dspl/liblapack/SRC/ssytrd_sy2sb.f b/lapack/src/ssytrd_sy2sb.f similarity index 100% rename from dspl/liblapack/SRC/ssytrd_sy2sb.f rename to lapack/src/ssytrd_sy2sb.f diff --git a/dspl/liblapack/SRC/ssytrf.f b/lapack/src/ssytrf.f similarity index 100% rename from dspl/liblapack/SRC/ssytrf.f rename to lapack/src/ssytrf.f diff --git a/dspl/liblapack/SRC/ssytrf_aa.f b/lapack/src/ssytrf_aa.f similarity index 100% rename from dspl/liblapack/SRC/ssytrf_aa.f rename to lapack/src/ssytrf_aa.f diff --git a/dspl/liblapack/SRC/ssytrf_aa_2stage.f b/lapack/src/ssytrf_aa_2stage.f similarity index 100% rename from dspl/liblapack/SRC/ssytrf_aa_2stage.f rename to lapack/src/ssytrf_aa_2stage.f diff --git a/dspl/liblapack/SRC/ssytrf_rk.f b/lapack/src/ssytrf_rk.f similarity index 100% rename from dspl/liblapack/SRC/ssytrf_rk.f rename to lapack/src/ssytrf_rk.f diff --git a/dspl/liblapack/SRC/ssytrf_rook.f b/lapack/src/ssytrf_rook.f similarity index 100% rename from dspl/liblapack/SRC/ssytrf_rook.f rename to lapack/src/ssytrf_rook.f diff --git a/dspl/liblapack/SRC/ssytri.f b/lapack/src/ssytri.f similarity index 100% rename from dspl/liblapack/SRC/ssytri.f rename to lapack/src/ssytri.f diff --git a/dspl/liblapack/SRC/ssytri2.f b/lapack/src/ssytri2.f similarity index 100% rename from dspl/liblapack/SRC/ssytri2.f rename to lapack/src/ssytri2.f diff --git a/dspl/liblapack/SRC/ssytri2x.f b/lapack/src/ssytri2x.f similarity index 100% rename from dspl/liblapack/SRC/ssytri2x.f rename to lapack/src/ssytri2x.f diff --git a/dspl/liblapack/SRC/ssytri_3.f b/lapack/src/ssytri_3.f similarity index 100% rename from dspl/liblapack/SRC/ssytri_3.f rename to lapack/src/ssytri_3.f diff --git a/dspl/liblapack/SRC/ssytri_3x.f b/lapack/src/ssytri_3x.f similarity index 100% rename from dspl/liblapack/SRC/ssytri_3x.f rename to lapack/src/ssytri_3x.f diff --git a/dspl/liblapack/SRC/ssytri_rook.f b/lapack/src/ssytri_rook.f similarity index 100% rename from dspl/liblapack/SRC/ssytri_rook.f rename to lapack/src/ssytri_rook.f diff --git a/dspl/liblapack/SRC/ssytrs.f b/lapack/src/ssytrs.f similarity index 100% rename from dspl/liblapack/SRC/ssytrs.f rename to lapack/src/ssytrs.f diff --git a/dspl/liblapack/SRC/ssytrs2.f b/lapack/src/ssytrs2.f similarity index 100% rename from dspl/liblapack/SRC/ssytrs2.f rename to lapack/src/ssytrs2.f diff --git a/dspl/liblapack/SRC/ssytrs_3.f b/lapack/src/ssytrs_3.f similarity index 100% rename from dspl/liblapack/SRC/ssytrs_3.f rename to lapack/src/ssytrs_3.f diff --git a/dspl/liblapack/SRC/ssytrs_aa.f b/lapack/src/ssytrs_aa.f similarity index 100% rename from dspl/liblapack/SRC/ssytrs_aa.f rename to lapack/src/ssytrs_aa.f diff --git a/dspl/liblapack/SRC/ssytrs_aa_2stage.f b/lapack/src/ssytrs_aa_2stage.f similarity index 100% rename from dspl/liblapack/SRC/ssytrs_aa_2stage.f rename to lapack/src/ssytrs_aa_2stage.f diff --git a/dspl/liblapack/SRC/ssytrs_rook.f b/lapack/src/ssytrs_rook.f similarity index 100% rename from dspl/liblapack/SRC/ssytrs_rook.f rename to lapack/src/ssytrs_rook.f diff --git a/dspl/liblapack/SRC/stbcon.f b/lapack/src/stbcon.f similarity index 100% rename from dspl/liblapack/SRC/stbcon.f rename to lapack/src/stbcon.f diff --git a/dspl/liblapack/SRC/stbrfs.f b/lapack/src/stbrfs.f similarity index 100% rename from dspl/liblapack/SRC/stbrfs.f rename to lapack/src/stbrfs.f diff --git a/dspl/liblapack/SRC/stbtrs.f b/lapack/src/stbtrs.f similarity index 100% rename from dspl/liblapack/SRC/stbtrs.f rename to lapack/src/stbtrs.f diff --git a/dspl/liblapack/SRC/stfsm.f b/lapack/src/stfsm.f similarity index 100% rename from dspl/liblapack/SRC/stfsm.f rename to lapack/src/stfsm.f diff --git a/dspl/liblapack/SRC/stftri.f b/lapack/src/stftri.f similarity index 100% rename from dspl/liblapack/SRC/stftri.f rename to lapack/src/stftri.f diff --git a/dspl/liblapack/SRC/stfttp.f b/lapack/src/stfttp.f similarity index 100% rename from dspl/liblapack/SRC/stfttp.f rename to lapack/src/stfttp.f diff --git a/dspl/liblapack/SRC/stfttr.f b/lapack/src/stfttr.f similarity index 100% rename from dspl/liblapack/SRC/stfttr.f rename to lapack/src/stfttr.f diff --git a/dspl/liblapack/SRC/stgevc.f b/lapack/src/stgevc.f similarity index 100% rename from dspl/liblapack/SRC/stgevc.f rename to lapack/src/stgevc.f diff --git a/dspl/liblapack/SRC/stgex2.f b/lapack/src/stgex2.f similarity index 100% rename from dspl/liblapack/SRC/stgex2.f rename to lapack/src/stgex2.f diff --git a/dspl/liblapack/SRC/stgexc.f b/lapack/src/stgexc.f similarity index 100% rename from dspl/liblapack/SRC/stgexc.f rename to lapack/src/stgexc.f diff --git a/dspl/liblapack/SRC/stgsen.f b/lapack/src/stgsen.f similarity index 100% rename from dspl/liblapack/SRC/stgsen.f rename to lapack/src/stgsen.f diff --git a/dspl/liblapack/SRC/stgsja.f b/lapack/src/stgsja.f similarity index 100% rename from dspl/liblapack/SRC/stgsja.f rename to lapack/src/stgsja.f diff --git a/dspl/liblapack/SRC/stgsna.f b/lapack/src/stgsna.f similarity index 100% rename from dspl/liblapack/SRC/stgsna.f rename to lapack/src/stgsna.f diff --git a/dspl/liblapack/SRC/stgsy2.f b/lapack/src/stgsy2.f similarity index 100% rename from dspl/liblapack/SRC/stgsy2.f rename to lapack/src/stgsy2.f diff --git a/dspl/liblapack/SRC/stgsyl.f b/lapack/src/stgsyl.f similarity index 100% rename from dspl/liblapack/SRC/stgsyl.f rename to lapack/src/stgsyl.f diff --git a/dspl/liblapack/SRC/stpcon.f b/lapack/src/stpcon.f similarity index 100% rename from dspl/liblapack/SRC/stpcon.f rename to lapack/src/stpcon.f diff --git a/dspl/liblapack/SRC/stplqt.f b/lapack/src/stplqt.f similarity index 100% rename from dspl/liblapack/SRC/stplqt.f rename to lapack/src/stplqt.f diff --git a/dspl/liblapack/SRC/stplqt2.f b/lapack/src/stplqt2.f similarity index 100% rename from dspl/liblapack/SRC/stplqt2.f rename to lapack/src/stplqt2.f diff --git a/dspl/liblapack/SRC/stpmlqt.f b/lapack/src/stpmlqt.f similarity index 100% rename from dspl/liblapack/SRC/stpmlqt.f rename to lapack/src/stpmlqt.f diff --git a/dspl/liblapack/SRC/stpmqrt.f b/lapack/src/stpmqrt.f similarity index 100% rename from dspl/liblapack/SRC/stpmqrt.f rename to lapack/src/stpmqrt.f diff --git a/dspl/liblapack/SRC/stpqrt.f b/lapack/src/stpqrt.f similarity index 100% rename from dspl/liblapack/SRC/stpqrt.f rename to lapack/src/stpqrt.f diff --git a/dspl/liblapack/SRC/stpqrt2.f b/lapack/src/stpqrt2.f similarity index 100% rename from dspl/liblapack/SRC/stpqrt2.f rename to lapack/src/stpqrt2.f diff --git a/dspl/liblapack/SRC/stprfb.f b/lapack/src/stprfb.f similarity index 100% rename from dspl/liblapack/SRC/stprfb.f rename to lapack/src/stprfb.f diff --git a/dspl/liblapack/SRC/stprfs.f b/lapack/src/stprfs.f similarity index 100% rename from dspl/liblapack/SRC/stprfs.f rename to lapack/src/stprfs.f diff --git a/dspl/liblapack/SRC/stptri.f b/lapack/src/stptri.f similarity index 100% rename from dspl/liblapack/SRC/stptri.f rename to lapack/src/stptri.f diff --git a/dspl/liblapack/SRC/stptrs.f b/lapack/src/stptrs.f similarity index 100% rename from dspl/liblapack/SRC/stptrs.f rename to lapack/src/stptrs.f diff --git a/dspl/liblapack/SRC/stpttf.f b/lapack/src/stpttf.f similarity index 100% rename from dspl/liblapack/SRC/stpttf.f rename to lapack/src/stpttf.f diff --git a/dspl/liblapack/SRC/stpttr.f b/lapack/src/stpttr.f similarity index 100% rename from dspl/liblapack/SRC/stpttr.f rename to lapack/src/stpttr.f diff --git a/dspl/liblapack/SRC/strcon.f b/lapack/src/strcon.f similarity index 100% rename from dspl/liblapack/SRC/strcon.f rename to lapack/src/strcon.f diff --git a/dspl/liblapack/SRC/strevc.f b/lapack/src/strevc.f similarity index 100% rename from dspl/liblapack/SRC/strevc.f rename to lapack/src/strevc.f diff --git a/dspl/liblapack/SRC/strevc3.f b/lapack/src/strevc3.f similarity index 100% rename from dspl/liblapack/SRC/strevc3.f rename to lapack/src/strevc3.f diff --git a/dspl/liblapack/SRC/strexc.f b/lapack/src/strexc.f similarity index 100% rename from dspl/liblapack/SRC/strexc.f rename to lapack/src/strexc.f diff --git a/dspl/liblapack/SRC/strrfs.f b/lapack/src/strrfs.f similarity index 100% rename from dspl/liblapack/SRC/strrfs.f rename to lapack/src/strrfs.f diff --git a/dspl/liblapack/SRC/strsen.f b/lapack/src/strsen.f similarity index 100% rename from dspl/liblapack/SRC/strsen.f rename to lapack/src/strsen.f diff --git a/dspl/liblapack/SRC/strsna.f b/lapack/src/strsna.f similarity index 100% rename from dspl/liblapack/SRC/strsna.f rename to lapack/src/strsna.f diff --git a/dspl/liblapack/SRC/strsyl.f b/lapack/src/strsyl.f similarity index 100% rename from dspl/liblapack/SRC/strsyl.f rename to lapack/src/strsyl.f diff --git a/dspl/liblapack/SRC/strti2.f b/lapack/src/strti2.f similarity index 100% rename from dspl/liblapack/SRC/strti2.f rename to lapack/src/strti2.f diff --git a/dspl/liblapack/SRC/strtri.f b/lapack/src/strtri.f similarity index 100% rename from dspl/liblapack/SRC/strtri.f rename to lapack/src/strtri.f diff --git a/dspl/liblapack/SRC/strtrs.f b/lapack/src/strtrs.f similarity index 100% rename from dspl/liblapack/SRC/strtrs.f rename to lapack/src/strtrs.f diff --git a/dspl/liblapack/SRC/strttf.f b/lapack/src/strttf.f similarity index 100% rename from dspl/liblapack/SRC/strttf.f rename to lapack/src/strttf.f diff --git a/dspl/liblapack/SRC/strttp.f b/lapack/src/strttp.f similarity index 100% rename from dspl/liblapack/SRC/strttp.f rename to lapack/src/strttp.f diff --git a/dspl/liblapack/SRC/stzrzf.f b/lapack/src/stzrzf.f similarity index 100% rename from dspl/liblapack/SRC/stzrzf.f rename to lapack/src/stzrzf.f diff --git a/dspl/liblapack/SRC/xerbla.f b/lapack/src/xerbla.f similarity index 100% rename from dspl/liblapack/SRC/xerbla.f rename to lapack/src/xerbla.f diff --git a/dspl/liblapack/SRC/xerbla_array.f b/lapack/src/xerbla_array.f similarity index 100% rename from dspl/liblapack/SRC/xerbla_array.f rename to lapack/src/xerbla_array.f diff --git a/dspl/liblapack/SRC/zbbcsd.f b/lapack/src/zbbcsd.f similarity index 100% rename from dspl/liblapack/SRC/zbbcsd.f rename to lapack/src/zbbcsd.f diff --git a/dspl/liblapack/SRC/zbdsqr.f b/lapack/src/zbdsqr.f similarity index 100% rename from dspl/liblapack/SRC/zbdsqr.f rename to lapack/src/zbdsqr.f diff --git a/dspl/liblapack/SRC/zcgesv.f b/lapack/src/zcgesv.f similarity index 100% rename from dspl/liblapack/SRC/zcgesv.f rename to lapack/src/zcgesv.f diff --git a/dspl/liblapack/SRC/zcposv.f b/lapack/src/zcposv.f similarity index 100% rename from dspl/liblapack/SRC/zcposv.f rename to lapack/src/zcposv.f diff --git a/dspl/liblapack/SRC/zdrscl.f b/lapack/src/zdrscl.f similarity index 100% rename from dspl/liblapack/SRC/zdrscl.f rename to lapack/src/zdrscl.f diff --git a/dspl/liblapack/SRC/zgbbrd.f b/lapack/src/zgbbrd.f similarity index 100% rename from dspl/liblapack/SRC/zgbbrd.f rename to lapack/src/zgbbrd.f diff --git a/dspl/liblapack/SRC/zgbcon.f b/lapack/src/zgbcon.f similarity index 100% rename from dspl/liblapack/SRC/zgbcon.f rename to lapack/src/zgbcon.f diff --git a/dspl/liblapack/SRC/zgbequ.f b/lapack/src/zgbequ.f similarity index 100% rename from dspl/liblapack/SRC/zgbequ.f rename to lapack/src/zgbequ.f diff --git a/dspl/liblapack/SRC/zgbequb.f b/lapack/src/zgbequb.f similarity index 100% rename from dspl/liblapack/SRC/zgbequb.f rename to lapack/src/zgbequb.f diff --git a/dspl/liblapack/SRC/zgbrfs.f b/lapack/src/zgbrfs.f similarity index 100% rename from dspl/liblapack/SRC/zgbrfs.f rename to lapack/src/zgbrfs.f diff --git a/dspl/liblapack/SRC/zgbrfsx.f b/lapack/src/zgbrfsx.f similarity index 100% rename from dspl/liblapack/SRC/zgbrfsx.f rename to lapack/src/zgbrfsx.f diff --git a/dspl/liblapack/SRC/zgbsv.f b/lapack/src/zgbsv.f similarity index 100% rename from dspl/liblapack/SRC/zgbsv.f rename to lapack/src/zgbsv.f diff --git a/dspl/liblapack/SRC/zgbsvx.f b/lapack/src/zgbsvx.f similarity index 100% rename from dspl/liblapack/SRC/zgbsvx.f rename to lapack/src/zgbsvx.f diff --git a/dspl/liblapack/SRC/zgbsvxx.f b/lapack/src/zgbsvxx.f similarity index 100% rename from dspl/liblapack/SRC/zgbsvxx.f rename to lapack/src/zgbsvxx.f diff --git a/dspl/liblapack/SRC/zgbtf2.f b/lapack/src/zgbtf2.f similarity index 100% rename from dspl/liblapack/SRC/zgbtf2.f rename to lapack/src/zgbtf2.f diff --git a/dspl/liblapack/SRC/zgbtrf.f b/lapack/src/zgbtrf.f similarity index 100% rename from dspl/liblapack/SRC/zgbtrf.f rename to lapack/src/zgbtrf.f diff --git a/dspl/liblapack/SRC/zgbtrs.f b/lapack/src/zgbtrs.f similarity index 100% rename from dspl/liblapack/SRC/zgbtrs.f rename to lapack/src/zgbtrs.f diff --git a/dspl/liblapack/SRC/zgebak.f b/lapack/src/zgebak.f similarity index 100% rename from dspl/liblapack/SRC/zgebak.f rename to lapack/src/zgebak.f diff --git a/dspl/liblapack/SRC/zgebal.f b/lapack/src/zgebal.f similarity index 100% rename from dspl/liblapack/SRC/zgebal.f rename to lapack/src/zgebal.f diff --git a/dspl/liblapack/SRC/zgebd2.f b/lapack/src/zgebd2.f similarity index 100% rename from dspl/liblapack/SRC/zgebd2.f rename to lapack/src/zgebd2.f diff --git a/dspl/liblapack/SRC/zgebrd.f b/lapack/src/zgebrd.f similarity index 100% rename from dspl/liblapack/SRC/zgebrd.f rename to lapack/src/zgebrd.f diff --git a/dspl/liblapack/SRC/zgecon.f b/lapack/src/zgecon.f similarity index 100% rename from dspl/liblapack/SRC/zgecon.f rename to lapack/src/zgecon.f diff --git a/dspl/liblapack/SRC/zgeequ.f b/lapack/src/zgeequ.f similarity index 100% rename from dspl/liblapack/SRC/zgeequ.f rename to lapack/src/zgeequ.f diff --git a/dspl/liblapack/SRC/zgeequb.f b/lapack/src/zgeequb.f similarity index 100% rename from dspl/liblapack/SRC/zgeequb.f rename to lapack/src/zgeequb.f diff --git a/dspl/liblapack/SRC/zgees.f b/lapack/src/zgees.f similarity index 100% rename from dspl/liblapack/SRC/zgees.f rename to lapack/src/zgees.f diff --git a/dspl/liblapack/SRC/zgeesx.f b/lapack/src/zgeesx.f similarity index 100% rename from dspl/liblapack/SRC/zgeesx.f rename to lapack/src/zgeesx.f diff --git a/dspl/liblapack/SRC/zgeev.f b/lapack/src/zgeev.f similarity index 100% rename from dspl/liblapack/SRC/zgeev.f rename to lapack/src/zgeev.f diff --git a/dspl/liblapack/SRC/zgeevx.f b/lapack/src/zgeevx.f similarity index 100% rename from dspl/liblapack/SRC/zgeevx.f rename to lapack/src/zgeevx.f diff --git a/dspl/liblapack/SRC/zgehd2.f b/lapack/src/zgehd2.f similarity index 100% rename from dspl/liblapack/SRC/zgehd2.f rename to lapack/src/zgehd2.f diff --git a/dspl/liblapack/SRC/zgehrd.f b/lapack/src/zgehrd.f similarity index 100% rename from dspl/liblapack/SRC/zgehrd.f rename to lapack/src/zgehrd.f diff --git a/dspl/liblapack/SRC/zgejsv.f b/lapack/src/zgejsv.f similarity index 100% rename from dspl/liblapack/SRC/zgejsv.f rename to lapack/src/zgejsv.f diff --git a/dspl/liblapack/SRC/zgelq.f b/lapack/src/zgelq.f similarity index 100% rename from dspl/liblapack/SRC/zgelq.f rename to lapack/src/zgelq.f diff --git a/dspl/liblapack/SRC/zgelq2.f b/lapack/src/zgelq2.f similarity index 100% rename from dspl/liblapack/SRC/zgelq2.f rename to lapack/src/zgelq2.f diff --git a/dspl/liblapack/SRC/zgelqf.f b/lapack/src/zgelqf.f similarity index 100% rename from dspl/liblapack/SRC/zgelqf.f rename to lapack/src/zgelqf.f diff --git a/dspl/liblapack/SRC/zgelqt.f b/lapack/src/zgelqt.f similarity index 100% rename from dspl/liblapack/SRC/zgelqt.f rename to lapack/src/zgelqt.f diff --git a/dspl/liblapack/SRC/zgelqt3.f b/lapack/src/zgelqt3.f similarity index 100% rename from dspl/liblapack/SRC/zgelqt3.f rename to lapack/src/zgelqt3.f diff --git a/dspl/liblapack/SRC/zgels.f b/lapack/src/zgels.f similarity index 100% rename from dspl/liblapack/SRC/zgels.f rename to lapack/src/zgels.f diff --git a/dspl/liblapack/SRC/zgelsd.f b/lapack/src/zgelsd.f similarity index 100% rename from dspl/liblapack/SRC/zgelsd.f rename to lapack/src/zgelsd.f diff --git a/dspl/liblapack/SRC/zgelss.f b/lapack/src/zgelss.f similarity index 100% rename from dspl/liblapack/SRC/zgelss.f rename to lapack/src/zgelss.f diff --git a/dspl/liblapack/SRC/zgelsy.f b/lapack/src/zgelsy.f similarity index 100% rename from dspl/liblapack/SRC/zgelsy.f rename to lapack/src/zgelsy.f diff --git a/dspl/liblapack/SRC/zgemlq.f b/lapack/src/zgemlq.f similarity index 100% rename from dspl/liblapack/SRC/zgemlq.f rename to lapack/src/zgemlq.f diff --git a/dspl/liblapack/SRC/zgemlqt.f b/lapack/src/zgemlqt.f similarity index 100% rename from dspl/liblapack/SRC/zgemlqt.f rename to lapack/src/zgemlqt.f diff --git a/dspl/liblapack/SRC/zgemqr.f b/lapack/src/zgemqr.f similarity index 100% rename from dspl/liblapack/SRC/zgemqr.f rename to lapack/src/zgemqr.f diff --git a/dspl/liblapack/SRC/zgemqrt.f b/lapack/src/zgemqrt.f similarity index 100% rename from dspl/liblapack/SRC/zgemqrt.f rename to lapack/src/zgemqrt.f diff --git a/dspl/liblapack/SRC/zgeql2.f b/lapack/src/zgeql2.f similarity index 100% rename from dspl/liblapack/SRC/zgeql2.f rename to lapack/src/zgeql2.f diff --git a/dspl/liblapack/SRC/zgeqlf.f b/lapack/src/zgeqlf.f similarity index 100% rename from dspl/liblapack/SRC/zgeqlf.f rename to lapack/src/zgeqlf.f diff --git a/dspl/liblapack/SRC/zgeqp3.f b/lapack/src/zgeqp3.f similarity index 100% rename from dspl/liblapack/SRC/zgeqp3.f rename to lapack/src/zgeqp3.f diff --git a/dspl/liblapack/SRC/zgeqr.f b/lapack/src/zgeqr.f similarity index 100% rename from dspl/liblapack/SRC/zgeqr.f rename to lapack/src/zgeqr.f diff --git a/dspl/liblapack/SRC/zgeqr2.f b/lapack/src/zgeqr2.f similarity index 100% rename from dspl/liblapack/SRC/zgeqr2.f rename to lapack/src/zgeqr2.f diff --git a/dspl/liblapack/SRC/zgeqr2p.f b/lapack/src/zgeqr2p.f similarity index 100% rename from dspl/liblapack/SRC/zgeqr2p.f rename to lapack/src/zgeqr2p.f diff --git a/dspl/liblapack/SRC/zgeqrf.f b/lapack/src/zgeqrf.f similarity index 100% rename from dspl/liblapack/SRC/zgeqrf.f rename to lapack/src/zgeqrf.f diff --git a/dspl/liblapack/SRC/zgeqrfp.f b/lapack/src/zgeqrfp.f similarity index 100% rename from dspl/liblapack/SRC/zgeqrfp.f rename to lapack/src/zgeqrfp.f diff --git a/dspl/liblapack/SRC/zgeqrt.f b/lapack/src/zgeqrt.f similarity index 100% rename from dspl/liblapack/SRC/zgeqrt.f rename to lapack/src/zgeqrt.f diff --git a/dspl/liblapack/SRC/zgeqrt2.f b/lapack/src/zgeqrt2.f similarity index 100% rename from dspl/liblapack/SRC/zgeqrt2.f rename to lapack/src/zgeqrt2.f diff --git a/dspl/liblapack/SRC/zgeqrt3.f b/lapack/src/zgeqrt3.f similarity index 100% rename from dspl/liblapack/SRC/zgeqrt3.f rename to lapack/src/zgeqrt3.f diff --git a/dspl/liblapack/SRC/zgerfs.f b/lapack/src/zgerfs.f similarity index 100% rename from dspl/liblapack/SRC/zgerfs.f rename to lapack/src/zgerfs.f diff --git a/dspl/liblapack/SRC/zgerfsx.f b/lapack/src/zgerfsx.f similarity index 100% rename from dspl/liblapack/SRC/zgerfsx.f rename to lapack/src/zgerfsx.f diff --git a/dspl/liblapack/SRC/zgerq2.f b/lapack/src/zgerq2.f similarity index 100% rename from dspl/liblapack/SRC/zgerq2.f rename to lapack/src/zgerq2.f diff --git a/dspl/liblapack/SRC/zgerqf.f b/lapack/src/zgerqf.f similarity index 100% rename from dspl/liblapack/SRC/zgerqf.f rename to lapack/src/zgerqf.f diff --git a/dspl/liblapack/SRC/zgesc2.f b/lapack/src/zgesc2.f similarity index 100% rename from dspl/liblapack/SRC/zgesc2.f rename to lapack/src/zgesc2.f diff --git a/dspl/liblapack/SRC/zgesdd.f b/lapack/src/zgesdd.f similarity index 100% rename from dspl/liblapack/SRC/zgesdd.f rename to lapack/src/zgesdd.f diff --git a/dspl/liblapack/SRC/zgesv.f b/lapack/src/zgesv.f similarity index 100% rename from dspl/liblapack/SRC/zgesv.f rename to lapack/src/zgesv.f diff --git a/dspl/liblapack/SRC/zgesvd.f b/lapack/src/zgesvd.f similarity index 100% rename from dspl/liblapack/SRC/zgesvd.f rename to lapack/src/zgesvd.f diff --git a/dspl/liblapack/SRC/zgesvdx.f b/lapack/src/zgesvdx.f similarity index 100% rename from dspl/liblapack/SRC/zgesvdx.f rename to lapack/src/zgesvdx.f diff --git a/dspl/liblapack/SRC/zgesvj.f b/lapack/src/zgesvj.f similarity index 100% rename from dspl/liblapack/SRC/zgesvj.f rename to lapack/src/zgesvj.f diff --git a/dspl/liblapack/SRC/zgesvx.f b/lapack/src/zgesvx.f similarity index 100% rename from dspl/liblapack/SRC/zgesvx.f rename to lapack/src/zgesvx.f diff --git a/dspl/liblapack/SRC/zgesvxx.f b/lapack/src/zgesvxx.f similarity index 100% rename from dspl/liblapack/SRC/zgesvxx.f rename to lapack/src/zgesvxx.f diff --git a/dspl/liblapack/SRC/zgetc2.f b/lapack/src/zgetc2.f similarity index 100% rename from dspl/liblapack/SRC/zgetc2.f rename to lapack/src/zgetc2.f diff --git a/dspl/liblapack/SRC/zgetf2.f b/lapack/src/zgetf2.f similarity index 100% rename from dspl/liblapack/SRC/zgetf2.f rename to lapack/src/zgetf2.f diff --git a/dspl/liblapack/SRC/zgetrf.f b/lapack/src/zgetrf.f similarity index 100% rename from dspl/liblapack/SRC/zgetrf.f rename to lapack/src/zgetrf.f diff --git a/dspl/liblapack/SRC/zgetrf2.f b/lapack/src/zgetrf2.f similarity index 100% rename from dspl/liblapack/SRC/zgetrf2.f rename to lapack/src/zgetrf2.f diff --git a/dspl/liblapack/SRC/zgetri.f b/lapack/src/zgetri.f similarity index 100% rename from dspl/liblapack/SRC/zgetri.f rename to lapack/src/zgetri.f diff --git a/dspl/liblapack/SRC/zgetrs.f b/lapack/src/zgetrs.f similarity index 100% rename from dspl/liblapack/SRC/zgetrs.f rename to lapack/src/zgetrs.f diff --git a/dspl/liblapack/SRC/zgetsls.f b/lapack/src/zgetsls.f similarity index 100% rename from dspl/liblapack/SRC/zgetsls.f rename to lapack/src/zgetsls.f diff --git a/dspl/liblapack/SRC/zggbak.f b/lapack/src/zggbak.f similarity index 100% rename from dspl/liblapack/SRC/zggbak.f rename to lapack/src/zggbak.f diff --git a/dspl/liblapack/SRC/zggbal.f b/lapack/src/zggbal.f similarity index 100% rename from dspl/liblapack/SRC/zggbal.f rename to lapack/src/zggbal.f diff --git a/dspl/liblapack/SRC/zgges.f b/lapack/src/zgges.f similarity index 100% rename from dspl/liblapack/SRC/zgges.f rename to lapack/src/zgges.f diff --git a/dspl/liblapack/SRC/zgges3.f b/lapack/src/zgges3.f similarity index 100% rename from dspl/liblapack/SRC/zgges3.f rename to lapack/src/zgges3.f diff --git a/dspl/liblapack/SRC/zggesx.f b/lapack/src/zggesx.f similarity index 100% rename from dspl/liblapack/SRC/zggesx.f rename to lapack/src/zggesx.f diff --git a/dspl/liblapack/SRC/zggev.f b/lapack/src/zggev.f similarity index 100% rename from dspl/liblapack/SRC/zggev.f rename to lapack/src/zggev.f diff --git a/dspl/liblapack/SRC/zggev3.f b/lapack/src/zggev3.f similarity index 100% rename from dspl/liblapack/SRC/zggev3.f rename to lapack/src/zggev3.f diff --git a/dspl/liblapack/SRC/zggevx.f b/lapack/src/zggevx.f similarity index 100% rename from dspl/liblapack/SRC/zggevx.f rename to lapack/src/zggevx.f diff --git a/dspl/liblapack/SRC/zggglm.f b/lapack/src/zggglm.f similarity index 100% rename from dspl/liblapack/SRC/zggglm.f rename to lapack/src/zggglm.f diff --git a/dspl/liblapack/SRC/zgghd3.f b/lapack/src/zgghd3.f similarity index 100% rename from dspl/liblapack/SRC/zgghd3.f rename to lapack/src/zgghd3.f diff --git a/dspl/liblapack/SRC/zgghrd.f b/lapack/src/zgghrd.f similarity index 100% rename from dspl/liblapack/SRC/zgghrd.f rename to lapack/src/zgghrd.f diff --git a/dspl/liblapack/SRC/zgglse.f b/lapack/src/zgglse.f similarity index 100% rename from dspl/liblapack/SRC/zgglse.f rename to lapack/src/zgglse.f diff --git a/dspl/liblapack/SRC/zggqrf.f b/lapack/src/zggqrf.f similarity index 100% rename from dspl/liblapack/SRC/zggqrf.f rename to lapack/src/zggqrf.f diff --git a/dspl/liblapack/SRC/zggrqf.f b/lapack/src/zggrqf.f similarity index 100% rename from dspl/liblapack/SRC/zggrqf.f rename to lapack/src/zggrqf.f diff --git a/dspl/liblapack/SRC/zggsvd3.f b/lapack/src/zggsvd3.f similarity index 100% rename from dspl/liblapack/SRC/zggsvd3.f rename to lapack/src/zggsvd3.f diff --git a/dspl/liblapack/SRC/zggsvp3.f b/lapack/src/zggsvp3.f similarity index 100% rename from dspl/liblapack/SRC/zggsvp3.f rename to lapack/src/zggsvp3.f diff --git a/dspl/liblapack/SRC/zgsvj0.f b/lapack/src/zgsvj0.f similarity index 100% rename from dspl/liblapack/SRC/zgsvj0.f rename to lapack/src/zgsvj0.f diff --git a/dspl/liblapack/SRC/zgsvj1.f b/lapack/src/zgsvj1.f similarity index 100% rename from dspl/liblapack/SRC/zgsvj1.f rename to lapack/src/zgsvj1.f diff --git a/dspl/liblapack/SRC/zgtcon.f b/lapack/src/zgtcon.f similarity index 100% rename from dspl/liblapack/SRC/zgtcon.f rename to lapack/src/zgtcon.f diff --git a/dspl/liblapack/SRC/zgtrfs.f b/lapack/src/zgtrfs.f similarity index 100% rename from dspl/liblapack/SRC/zgtrfs.f rename to lapack/src/zgtrfs.f diff --git a/dspl/liblapack/SRC/zgtsv.f b/lapack/src/zgtsv.f similarity index 100% rename from dspl/liblapack/SRC/zgtsv.f rename to lapack/src/zgtsv.f diff --git a/dspl/liblapack/SRC/zgtsvx.f b/lapack/src/zgtsvx.f similarity index 100% rename from dspl/liblapack/SRC/zgtsvx.f rename to lapack/src/zgtsvx.f diff --git a/dspl/liblapack/SRC/zgttrf.f b/lapack/src/zgttrf.f similarity index 100% rename from dspl/liblapack/SRC/zgttrf.f rename to lapack/src/zgttrf.f diff --git a/dspl/liblapack/SRC/zgttrs.f b/lapack/src/zgttrs.f similarity index 100% rename from dspl/liblapack/SRC/zgttrs.f rename to lapack/src/zgttrs.f diff --git a/dspl/liblapack/SRC/zgtts2.f b/lapack/src/zgtts2.f similarity index 100% rename from dspl/liblapack/SRC/zgtts2.f rename to lapack/src/zgtts2.f diff --git a/dspl/liblapack/SRC/zhb2st_kernels.f b/lapack/src/zhb2st_kernels.f similarity index 100% rename from dspl/liblapack/SRC/zhb2st_kernels.f rename to lapack/src/zhb2st_kernels.f diff --git a/dspl/liblapack/SRC/zhbev.f b/lapack/src/zhbev.f similarity index 100% rename from dspl/liblapack/SRC/zhbev.f rename to lapack/src/zhbev.f diff --git a/dspl/liblapack/SRC/zhbev_2stage.f b/lapack/src/zhbev_2stage.f similarity index 100% rename from dspl/liblapack/SRC/zhbev_2stage.f rename to lapack/src/zhbev_2stage.f diff --git a/dspl/liblapack/SRC/zhbevd.f b/lapack/src/zhbevd.f similarity index 100% rename from dspl/liblapack/SRC/zhbevd.f rename to lapack/src/zhbevd.f diff --git a/dspl/liblapack/SRC/zhbevd_2stage.f b/lapack/src/zhbevd_2stage.f similarity index 100% rename from dspl/liblapack/SRC/zhbevd_2stage.f rename to lapack/src/zhbevd_2stage.f diff --git a/dspl/liblapack/SRC/zhbevx.f b/lapack/src/zhbevx.f similarity index 100% rename from dspl/liblapack/SRC/zhbevx.f rename to lapack/src/zhbevx.f diff --git a/dspl/liblapack/SRC/zhbevx_2stage.f b/lapack/src/zhbevx_2stage.f similarity index 100% rename from dspl/liblapack/SRC/zhbevx_2stage.f rename to lapack/src/zhbevx_2stage.f diff --git a/dspl/liblapack/SRC/zhbgst.f b/lapack/src/zhbgst.f similarity index 100% rename from dspl/liblapack/SRC/zhbgst.f rename to lapack/src/zhbgst.f diff --git a/dspl/liblapack/SRC/zhbgv.f b/lapack/src/zhbgv.f similarity index 100% rename from dspl/liblapack/SRC/zhbgv.f rename to lapack/src/zhbgv.f diff --git a/dspl/liblapack/SRC/zhbgvd.f b/lapack/src/zhbgvd.f similarity index 100% rename from dspl/liblapack/SRC/zhbgvd.f rename to lapack/src/zhbgvd.f diff --git a/dspl/liblapack/SRC/zhbgvx.f b/lapack/src/zhbgvx.f similarity index 100% rename from dspl/liblapack/SRC/zhbgvx.f rename to lapack/src/zhbgvx.f diff --git a/dspl/liblapack/SRC/zhbtrd.f b/lapack/src/zhbtrd.f similarity index 100% rename from dspl/liblapack/SRC/zhbtrd.f rename to lapack/src/zhbtrd.f diff --git a/dspl/liblapack/SRC/zhecon.f b/lapack/src/zhecon.f similarity index 100% rename from dspl/liblapack/SRC/zhecon.f rename to lapack/src/zhecon.f diff --git a/dspl/liblapack/SRC/zhecon_3.f b/lapack/src/zhecon_3.f similarity index 100% rename from dspl/liblapack/SRC/zhecon_3.f rename to lapack/src/zhecon_3.f diff --git a/dspl/liblapack/SRC/zhecon_rook.f b/lapack/src/zhecon_rook.f similarity index 100% rename from dspl/liblapack/SRC/zhecon_rook.f rename to lapack/src/zhecon_rook.f diff --git a/dspl/liblapack/SRC/zheequb.f b/lapack/src/zheequb.f similarity index 100% rename from dspl/liblapack/SRC/zheequb.f rename to lapack/src/zheequb.f diff --git a/dspl/liblapack/SRC/zheev.f b/lapack/src/zheev.f similarity index 100% rename from dspl/liblapack/SRC/zheev.f rename to lapack/src/zheev.f diff --git a/dspl/liblapack/SRC/zheev_2stage.f b/lapack/src/zheev_2stage.f similarity index 100% rename from dspl/liblapack/SRC/zheev_2stage.f rename to lapack/src/zheev_2stage.f diff --git a/dspl/liblapack/SRC/zheevd.f b/lapack/src/zheevd.f similarity index 100% rename from dspl/liblapack/SRC/zheevd.f rename to lapack/src/zheevd.f diff --git a/dspl/liblapack/SRC/zheevd_2stage.f b/lapack/src/zheevd_2stage.f similarity index 100% rename from dspl/liblapack/SRC/zheevd_2stage.f rename to lapack/src/zheevd_2stage.f diff --git a/dspl/liblapack/SRC/zheevr.f b/lapack/src/zheevr.f similarity index 100% rename from dspl/liblapack/SRC/zheevr.f rename to lapack/src/zheevr.f diff --git a/dspl/liblapack/SRC/zheevr_2stage.f b/lapack/src/zheevr_2stage.f similarity index 100% rename from dspl/liblapack/SRC/zheevr_2stage.f rename to lapack/src/zheevr_2stage.f diff --git a/dspl/liblapack/SRC/zheevx.f b/lapack/src/zheevx.f similarity index 100% rename from dspl/liblapack/SRC/zheevx.f rename to lapack/src/zheevx.f diff --git a/dspl/liblapack/SRC/zheevx_2stage.f b/lapack/src/zheevx_2stage.f similarity index 100% rename from dspl/liblapack/SRC/zheevx_2stage.f rename to lapack/src/zheevx_2stage.f diff --git a/dspl/liblapack/SRC/zhegs2.f b/lapack/src/zhegs2.f similarity index 100% rename from dspl/liblapack/SRC/zhegs2.f rename to lapack/src/zhegs2.f diff --git a/dspl/liblapack/SRC/zhegst.f b/lapack/src/zhegst.f similarity index 100% rename from dspl/liblapack/SRC/zhegst.f rename to lapack/src/zhegst.f diff --git a/dspl/liblapack/SRC/zhegv.f b/lapack/src/zhegv.f similarity index 100% rename from dspl/liblapack/SRC/zhegv.f rename to lapack/src/zhegv.f diff --git a/dspl/liblapack/SRC/zhegv_2stage.f b/lapack/src/zhegv_2stage.f similarity index 100% rename from dspl/liblapack/SRC/zhegv_2stage.f rename to lapack/src/zhegv_2stage.f diff --git a/dspl/liblapack/SRC/zhegvd.f b/lapack/src/zhegvd.f similarity index 100% rename from dspl/liblapack/SRC/zhegvd.f rename to lapack/src/zhegvd.f diff --git a/dspl/liblapack/SRC/zhegvx.f b/lapack/src/zhegvx.f similarity index 100% rename from dspl/liblapack/SRC/zhegvx.f rename to lapack/src/zhegvx.f diff --git a/dspl/liblapack/SRC/zherfs.f b/lapack/src/zherfs.f similarity index 100% rename from dspl/liblapack/SRC/zherfs.f rename to lapack/src/zherfs.f diff --git a/dspl/liblapack/SRC/zherfsx.f b/lapack/src/zherfsx.f similarity index 100% rename from dspl/liblapack/SRC/zherfsx.f rename to lapack/src/zherfsx.f diff --git a/dspl/liblapack/SRC/zhesv.f b/lapack/src/zhesv.f similarity index 100% rename from dspl/liblapack/SRC/zhesv.f rename to lapack/src/zhesv.f diff --git a/dspl/liblapack/SRC/zhesv_aa.f b/lapack/src/zhesv_aa.f similarity index 100% rename from dspl/liblapack/SRC/zhesv_aa.f rename to lapack/src/zhesv_aa.f diff --git a/dspl/liblapack/SRC/zhesv_aa_2stage.f b/lapack/src/zhesv_aa_2stage.f similarity index 100% rename from dspl/liblapack/SRC/zhesv_aa_2stage.f rename to lapack/src/zhesv_aa_2stage.f diff --git a/dspl/liblapack/SRC/zhesv_rk.f b/lapack/src/zhesv_rk.f similarity index 100% rename from dspl/liblapack/SRC/zhesv_rk.f rename to lapack/src/zhesv_rk.f diff --git a/dspl/liblapack/SRC/zhesv_rook.f b/lapack/src/zhesv_rook.f similarity index 100% rename from dspl/liblapack/SRC/zhesv_rook.f rename to lapack/src/zhesv_rook.f diff --git a/dspl/liblapack/SRC/zhesvx.f b/lapack/src/zhesvx.f similarity index 100% rename from dspl/liblapack/SRC/zhesvx.f rename to lapack/src/zhesvx.f diff --git a/dspl/liblapack/SRC/zhesvxx.f b/lapack/src/zhesvxx.f similarity index 100% rename from dspl/liblapack/SRC/zhesvxx.f rename to lapack/src/zhesvxx.f diff --git a/dspl/liblapack/SRC/zheswapr.f b/lapack/src/zheswapr.f similarity index 100% rename from dspl/liblapack/SRC/zheswapr.f rename to lapack/src/zheswapr.f diff --git a/dspl/liblapack/SRC/zhetd2.f b/lapack/src/zhetd2.f similarity index 100% rename from dspl/liblapack/SRC/zhetd2.f rename to lapack/src/zhetd2.f diff --git a/dspl/liblapack/SRC/zhetf2.f b/lapack/src/zhetf2.f similarity index 100% rename from dspl/liblapack/SRC/zhetf2.f rename to lapack/src/zhetf2.f diff --git a/dspl/liblapack/SRC/zhetf2_rk.f b/lapack/src/zhetf2_rk.f similarity index 100% rename from dspl/liblapack/SRC/zhetf2_rk.f rename to lapack/src/zhetf2_rk.f diff --git a/dspl/liblapack/SRC/zhetf2_rook.f b/lapack/src/zhetf2_rook.f similarity index 100% rename from dspl/liblapack/SRC/zhetf2_rook.f rename to lapack/src/zhetf2_rook.f diff --git a/dspl/liblapack/SRC/zhetrd.f b/lapack/src/zhetrd.f similarity index 100% rename from dspl/liblapack/SRC/zhetrd.f rename to lapack/src/zhetrd.f diff --git a/dspl/liblapack/SRC/zhetrd_2stage.f b/lapack/src/zhetrd_2stage.f similarity index 100% rename from dspl/liblapack/SRC/zhetrd_2stage.f rename to lapack/src/zhetrd_2stage.f diff --git a/dspl/liblapack/SRC/zhetrd_hb2st.F b/lapack/src/zhetrd_hb2st.F similarity index 100% rename from dspl/liblapack/SRC/zhetrd_hb2st.F rename to lapack/src/zhetrd_hb2st.F diff --git a/dspl/liblapack/SRC/zhetrd_he2hb.f b/lapack/src/zhetrd_he2hb.f similarity index 100% rename from dspl/liblapack/SRC/zhetrd_he2hb.f rename to lapack/src/zhetrd_he2hb.f diff --git a/dspl/liblapack/SRC/zhetrf.f b/lapack/src/zhetrf.f similarity index 100% rename from dspl/liblapack/SRC/zhetrf.f rename to lapack/src/zhetrf.f diff --git a/dspl/liblapack/SRC/zhetrf_aa.f b/lapack/src/zhetrf_aa.f similarity index 100% rename from dspl/liblapack/SRC/zhetrf_aa.f rename to lapack/src/zhetrf_aa.f diff --git a/dspl/liblapack/SRC/zhetrf_aa_2stage.f b/lapack/src/zhetrf_aa_2stage.f similarity index 100% rename from dspl/liblapack/SRC/zhetrf_aa_2stage.f rename to lapack/src/zhetrf_aa_2stage.f diff --git a/dspl/liblapack/SRC/zhetrf_rk.f b/lapack/src/zhetrf_rk.f similarity index 100% rename from dspl/liblapack/SRC/zhetrf_rk.f rename to lapack/src/zhetrf_rk.f diff --git a/dspl/liblapack/SRC/zhetrf_rook.f b/lapack/src/zhetrf_rook.f similarity index 100% rename from dspl/liblapack/SRC/zhetrf_rook.f rename to lapack/src/zhetrf_rook.f diff --git a/dspl/liblapack/SRC/zhetri.f b/lapack/src/zhetri.f similarity index 100% rename from dspl/liblapack/SRC/zhetri.f rename to lapack/src/zhetri.f diff --git a/dspl/liblapack/SRC/zhetri2.f b/lapack/src/zhetri2.f similarity index 100% rename from dspl/liblapack/SRC/zhetri2.f rename to lapack/src/zhetri2.f diff --git a/dspl/liblapack/SRC/zhetri2x.f b/lapack/src/zhetri2x.f similarity index 100% rename from dspl/liblapack/SRC/zhetri2x.f rename to lapack/src/zhetri2x.f diff --git a/dspl/liblapack/SRC/zhetri_3.f b/lapack/src/zhetri_3.f similarity index 100% rename from dspl/liblapack/SRC/zhetri_3.f rename to lapack/src/zhetri_3.f diff --git a/dspl/liblapack/SRC/zhetri_3x.f b/lapack/src/zhetri_3x.f similarity index 100% rename from dspl/liblapack/SRC/zhetri_3x.f rename to lapack/src/zhetri_3x.f diff --git a/dspl/liblapack/SRC/zhetri_rook.f b/lapack/src/zhetri_rook.f similarity index 100% rename from dspl/liblapack/SRC/zhetri_rook.f rename to lapack/src/zhetri_rook.f diff --git a/dspl/liblapack/SRC/zhetrs.f b/lapack/src/zhetrs.f similarity index 100% rename from dspl/liblapack/SRC/zhetrs.f rename to lapack/src/zhetrs.f diff --git a/dspl/liblapack/SRC/zhetrs2.f b/lapack/src/zhetrs2.f similarity index 100% rename from dspl/liblapack/SRC/zhetrs2.f rename to lapack/src/zhetrs2.f diff --git a/dspl/liblapack/SRC/zhetrs_3.f b/lapack/src/zhetrs_3.f similarity index 100% rename from dspl/liblapack/SRC/zhetrs_3.f rename to lapack/src/zhetrs_3.f diff --git a/dspl/liblapack/SRC/zhetrs_aa.f b/lapack/src/zhetrs_aa.f similarity index 100% rename from dspl/liblapack/SRC/zhetrs_aa.f rename to lapack/src/zhetrs_aa.f diff --git a/dspl/liblapack/SRC/zhetrs_aa_2stage.f b/lapack/src/zhetrs_aa_2stage.f similarity index 100% rename from dspl/liblapack/SRC/zhetrs_aa_2stage.f rename to lapack/src/zhetrs_aa_2stage.f diff --git a/dspl/liblapack/SRC/zhetrs_rook.f b/lapack/src/zhetrs_rook.f similarity index 100% rename from dspl/liblapack/SRC/zhetrs_rook.f rename to lapack/src/zhetrs_rook.f diff --git a/dspl/liblapack/SRC/zhfrk.f b/lapack/src/zhfrk.f similarity index 100% rename from dspl/liblapack/SRC/zhfrk.f rename to lapack/src/zhfrk.f diff --git a/dspl/liblapack/SRC/zhgeqz.f b/lapack/src/zhgeqz.f similarity index 100% rename from dspl/liblapack/SRC/zhgeqz.f rename to lapack/src/zhgeqz.f diff --git a/dspl/liblapack/SRC/zhpcon.f b/lapack/src/zhpcon.f similarity index 100% rename from dspl/liblapack/SRC/zhpcon.f rename to lapack/src/zhpcon.f diff --git a/dspl/liblapack/SRC/zhpev.f b/lapack/src/zhpev.f similarity index 100% rename from dspl/liblapack/SRC/zhpev.f rename to lapack/src/zhpev.f diff --git a/dspl/liblapack/SRC/zhpevd.f b/lapack/src/zhpevd.f similarity index 100% rename from dspl/liblapack/SRC/zhpevd.f rename to lapack/src/zhpevd.f diff --git a/dspl/liblapack/SRC/zhpevx.f b/lapack/src/zhpevx.f similarity index 100% rename from dspl/liblapack/SRC/zhpevx.f rename to lapack/src/zhpevx.f diff --git a/dspl/liblapack/SRC/zhpgst.f b/lapack/src/zhpgst.f similarity index 100% rename from dspl/liblapack/SRC/zhpgst.f rename to lapack/src/zhpgst.f diff --git a/dspl/liblapack/SRC/zhpgv.f b/lapack/src/zhpgv.f similarity index 100% rename from dspl/liblapack/SRC/zhpgv.f rename to lapack/src/zhpgv.f diff --git a/dspl/liblapack/SRC/zhpgvd.f b/lapack/src/zhpgvd.f similarity index 100% rename from dspl/liblapack/SRC/zhpgvd.f rename to lapack/src/zhpgvd.f diff --git a/dspl/liblapack/SRC/zhpgvx.f b/lapack/src/zhpgvx.f similarity index 100% rename from dspl/liblapack/SRC/zhpgvx.f rename to lapack/src/zhpgvx.f diff --git a/dspl/liblapack/SRC/zhprfs.f b/lapack/src/zhprfs.f similarity index 100% rename from dspl/liblapack/SRC/zhprfs.f rename to lapack/src/zhprfs.f diff --git a/dspl/liblapack/SRC/zhpsv.f b/lapack/src/zhpsv.f similarity index 100% rename from dspl/liblapack/SRC/zhpsv.f rename to lapack/src/zhpsv.f diff --git a/dspl/liblapack/SRC/zhpsvx.f b/lapack/src/zhpsvx.f similarity index 100% rename from dspl/liblapack/SRC/zhpsvx.f rename to lapack/src/zhpsvx.f diff --git a/dspl/liblapack/SRC/zhptrd.f b/lapack/src/zhptrd.f similarity index 100% rename from dspl/liblapack/SRC/zhptrd.f rename to lapack/src/zhptrd.f diff --git a/dspl/liblapack/SRC/zhptrf.f b/lapack/src/zhptrf.f similarity index 100% rename from dspl/liblapack/SRC/zhptrf.f rename to lapack/src/zhptrf.f diff --git a/dspl/liblapack/SRC/zhptri.f b/lapack/src/zhptri.f similarity index 100% rename from dspl/liblapack/SRC/zhptri.f rename to lapack/src/zhptri.f diff --git a/dspl/liblapack/SRC/zhptrs.f b/lapack/src/zhptrs.f similarity index 100% rename from dspl/liblapack/SRC/zhptrs.f rename to lapack/src/zhptrs.f diff --git a/dspl/liblapack/SRC/zhsein.f b/lapack/src/zhsein.f similarity index 100% rename from dspl/liblapack/SRC/zhsein.f rename to lapack/src/zhsein.f diff --git a/dspl/liblapack/SRC/zhseqr.f b/lapack/src/zhseqr.f similarity index 100% rename from dspl/liblapack/SRC/zhseqr.f rename to lapack/src/zhseqr.f diff --git a/dspl/liblapack/SRC/zla_gbamv.f b/lapack/src/zla_gbamv.f similarity index 100% rename from dspl/liblapack/SRC/zla_gbamv.f rename to lapack/src/zla_gbamv.f diff --git a/dspl/liblapack/SRC/zla_gbrcond_c.f b/lapack/src/zla_gbrcond_c.f similarity index 100% rename from dspl/liblapack/SRC/zla_gbrcond_c.f rename to lapack/src/zla_gbrcond_c.f diff --git a/dspl/liblapack/SRC/zla_gbrcond_x.f b/lapack/src/zla_gbrcond_x.f similarity index 100% rename from dspl/liblapack/SRC/zla_gbrcond_x.f rename to lapack/src/zla_gbrcond_x.f diff --git a/dspl/liblapack/SRC/zla_gbrfsx_extended.f b/lapack/src/zla_gbrfsx_extended.f similarity index 100% rename from dspl/liblapack/SRC/zla_gbrfsx_extended.f rename to lapack/src/zla_gbrfsx_extended.f diff --git a/dspl/liblapack/SRC/zla_gbrpvgrw.f b/lapack/src/zla_gbrpvgrw.f similarity index 100% rename from dspl/liblapack/SRC/zla_gbrpvgrw.f rename to lapack/src/zla_gbrpvgrw.f diff --git a/dspl/liblapack/SRC/zla_geamv.f b/lapack/src/zla_geamv.f similarity index 100% rename from dspl/liblapack/SRC/zla_geamv.f rename to lapack/src/zla_geamv.f diff --git a/dspl/liblapack/SRC/zla_gercond_c.f b/lapack/src/zla_gercond_c.f similarity index 100% rename from dspl/liblapack/SRC/zla_gercond_c.f rename to lapack/src/zla_gercond_c.f diff --git a/dspl/liblapack/SRC/zla_gercond_x.f b/lapack/src/zla_gercond_x.f similarity index 100% rename from dspl/liblapack/SRC/zla_gercond_x.f rename to lapack/src/zla_gercond_x.f diff --git a/dspl/liblapack/SRC/zla_gerfsx_extended.f b/lapack/src/zla_gerfsx_extended.f similarity index 100% rename from dspl/liblapack/SRC/zla_gerfsx_extended.f rename to lapack/src/zla_gerfsx_extended.f diff --git a/dspl/liblapack/SRC/zla_gerpvgrw.f b/lapack/src/zla_gerpvgrw.f similarity index 100% rename from dspl/liblapack/SRC/zla_gerpvgrw.f rename to lapack/src/zla_gerpvgrw.f diff --git a/dspl/liblapack/SRC/zla_heamv.f b/lapack/src/zla_heamv.f similarity index 100% rename from dspl/liblapack/SRC/zla_heamv.f rename to lapack/src/zla_heamv.f diff --git a/dspl/liblapack/SRC/zla_hercond_c.f b/lapack/src/zla_hercond_c.f similarity index 100% rename from dspl/liblapack/SRC/zla_hercond_c.f rename to lapack/src/zla_hercond_c.f diff --git a/dspl/liblapack/SRC/zla_hercond_x.f b/lapack/src/zla_hercond_x.f similarity index 100% rename from dspl/liblapack/SRC/zla_hercond_x.f rename to lapack/src/zla_hercond_x.f diff --git a/dspl/liblapack/SRC/zla_herfsx_extended.f b/lapack/src/zla_herfsx_extended.f similarity index 100% rename from dspl/liblapack/SRC/zla_herfsx_extended.f rename to lapack/src/zla_herfsx_extended.f diff --git a/dspl/liblapack/SRC/zla_herpvgrw.f b/lapack/src/zla_herpvgrw.f similarity index 100% rename from dspl/liblapack/SRC/zla_herpvgrw.f rename to lapack/src/zla_herpvgrw.f diff --git a/dspl/liblapack/SRC/zla_lin_berr.f b/lapack/src/zla_lin_berr.f similarity index 100% rename from dspl/liblapack/SRC/zla_lin_berr.f rename to lapack/src/zla_lin_berr.f diff --git a/dspl/liblapack/SRC/zla_porcond_c.f b/lapack/src/zla_porcond_c.f similarity index 100% rename from dspl/liblapack/SRC/zla_porcond_c.f rename to lapack/src/zla_porcond_c.f diff --git a/dspl/liblapack/SRC/zla_porcond_x.f b/lapack/src/zla_porcond_x.f similarity index 100% rename from dspl/liblapack/SRC/zla_porcond_x.f rename to lapack/src/zla_porcond_x.f diff --git a/dspl/liblapack/SRC/zla_porfsx_extended.f b/lapack/src/zla_porfsx_extended.f similarity index 100% rename from dspl/liblapack/SRC/zla_porfsx_extended.f rename to lapack/src/zla_porfsx_extended.f diff --git a/dspl/liblapack/SRC/zla_porpvgrw.f b/lapack/src/zla_porpvgrw.f similarity index 100% rename from dspl/liblapack/SRC/zla_porpvgrw.f rename to lapack/src/zla_porpvgrw.f diff --git a/dspl/liblapack/SRC/zla_syamv.f b/lapack/src/zla_syamv.f similarity index 100% rename from dspl/liblapack/SRC/zla_syamv.f rename to lapack/src/zla_syamv.f diff --git a/dspl/liblapack/SRC/zla_syrcond_c.f b/lapack/src/zla_syrcond_c.f similarity index 100% rename from dspl/liblapack/SRC/zla_syrcond_c.f rename to lapack/src/zla_syrcond_c.f diff --git a/dspl/liblapack/SRC/zla_syrcond_x.f b/lapack/src/zla_syrcond_x.f similarity index 100% rename from dspl/liblapack/SRC/zla_syrcond_x.f rename to lapack/src/zla_syrcond_x.f diff --git a/dspl/liblapack/SRC/zla_syrfsx_extended.f b/lapack/src/zla_syrfsx_extended.f similarity index 100% rename from dspl/liblapack/SRC/zla_syrfsx_extended.f rename to lapack/src/zla_syrfsx_extended.f diff --git a/dspl/liblapack/SRC/zla_syrpvgrw.f b/lapack/src/zla_syrpvgrw.f similarity index 100% rename from dspl/liblapack/SRC/zla_syrpvgrw.f rename to lapack/src/zla_syrpvgrw.f diff --git a/dspl/liblapack/SRC/zla_wwaddw.f b/lapack/src/zla_wwaddw.f similarity index 100% rename from dspl/liblapack/SRC/zla_wwaddw.f rename to lapack/src/zla_wwaddw.f diff --git a/dspl/liblapack/SRC/zlabrd.f b/lapack/src/zlabrd.f similarity index 100% rename from dspl/liblapack/SRC/zlabrd.f rename to lapack/src/zlabrd.f diff --git a/dspl/liblapack/SRC/zlacgv.f b/lapack/src/zlacgv.f similarity index 100% rename from dspl/liblapack/SRC/zlacgv.f rename to lapack/src/zlacgv.f diff --git a/dspl/liblapack/SRC/zlacn2.f b/lapack/src/zlacn2.f similarity index 100% rename from dspl/liblapack/SRC/zlacn2.f rename to lapack/src/zlacn2.f diff --git a/dspl/liblapack/SRC/zlacon.f b/lapack/src/zlacon.f similarity index 100% rename from dspl/liblapack/SRC/zlacon.f rename to lapack/src/zlacon.f diff --git a/dspl/liblapack/SRC/zlacp2.f b/lapack/src/zlacp2.f similarity index 100% rename from dspl/liblapack/SRC/zlacp2.f rename to lapack/src/zlacp2.f diff --git a/dspl/liblapack/SRC/zlacpy.f b/lapack/src/zlacpy.f similarity index 100% rename from dspl/liblapack/SRC/zlacpy.f rename to lapack/src/zlacpy.f diff --git a/dspl/liblapack/SRC/zlacrm.f b/lapack/src/zlacrm.f similarity index 100% rename from dspl/liblapack/SRC/zlacrm.f rename to lapack/src/zlacrm.f diff --git a/dspl/liblapack/SRC/zlacrt.f b/lapack/src/zlacrt.f similarity index 100% rename from dspl/liblapack/SRC/zlacrt.f rename to lapack/src/zlacrt.f diff --git a/dspl/liblapack/SRC/zladiv.f b/lapack/src/zladiv.f similarity index 100% rename from dspl/liblapack/SRC/zladiv.f rename to lapack/src/zladiv.f diff --git a/dspl/liblapack/SRC/zlaed0.f b/lapack/src/zlaed0.f similarity index 100% rename from dspl/liblapack/SRC/zlaed0.f rename to lapack/src/zlaed0.f diff --git a/dspl/liblapack/SRC/zlaed7.f b/lapack/src/zlaed7.f similarity index 100% rename from dspl/liblapack/SRC/zlaed7.f rename to lapack/src/zlaed7.f diff --git a/dspl/liblapack/SRC/zlaed8.f b/lapack/src/zlaed8.f similarity index 100% rename from dspl/liblapack/SRC/zlaed8.f rename to lapack/src/zlaed8.f diff --git a/dspl/liblapack/SRC/zlaein.f b/lapack/src/zlaein.f similarity index 100% rename from dspl/liblapack/SRC/zlaein.f rename to lapack/src/zlaein.f diff --git a/dspl/liblapack/SRC/zlaesy.f b/lapack/src/zlaesy.f similarity index 100% rename from dspl/liblapack/SRC/zlaesy.f rename to lapack/src/zlaesy.f diff --git a/dspl/liblapack/SRC/zlaev2.f b/lapack/src/zlaev2.f similarity index 100% rename from dspl/liblapack/SRC/zlaev2.f rename to lapack/src/zlaev2.f diff --git a/dspl/liblapack/SRC/zlag2c.f b/lapack/src/zlag2c.f similarity index 100% rename from dspl/liblapack/SRC/zlag2c.f rename to lapack/src/zlag2c.f diff --git a/dspl/liblapack/SRC/zlags2.f b/lapack/src/zlags2.f similarity index 100% rename from dspl/liblapack/SRC/zlags2.f rename to lapack/src/zlags2.f diff --git a/dspl/liblapack/SRC/zlagtm.f b/lapack/src/zlagtm.f similarity index 100% rename from dspl/liblapack/SRC/zlagtm.f rename to lapack/src/zlagtm.f diff --git a/dspl/liblapack/SRC/zlahef.f b/lapack/src/zlahef.f similarity index 100% rename from dspl/liblapack/SRC/zlahef.f rename to lapack/src/zlahef.f diff --git a/dspl/liblapack/SRC/zlahef_aa.f b/lapack/src/zlahef_aa.f similarity index 100% rename from dspl/liblapack/SRC/zlahef_aa.f rename to lapack/src/zlahef_aa.f diff --git a/dspl/liblapack/SRC/zlahef_rk.f b/lapack/src/zlahef_rk.f similarity index 100% rename from dspl/liblapack/SRC/zlahef_rk.f rename to lapack/src/zlahef_rk.f diff --git a/dspl/liblapack/SRC/zlahef_rook.f b/lapack/src/zlahef_rook.f similarity index 100% rename from dspl/liblapack/SRC/zlahef_rook.f rename to lapack/src/zlahef_rook.f diff --git a/dspl/liblapack/SRC/zlahqr.f b/lapack/src/zlahqr.f similarity index 100% rename from dspl/liblapack/SRC/zlahqr.f rename to lapack/src/zlahqr.f diff --git a/dspl/liblapack/SRC/zlahr2.f b/lapack/src/zlahr2.f similarity index 100% rename from dspl/liblapack/SRC/zlahr2.f rename to lapack/src/zlahr2.f diff --git a/dspl/liblapack/SRC/zlaic1.f b/lapack/src/zlaic1.f similarity index 100% rename from dspl/liblapack/SRC/zlaic1.f rename to lapack/src/zlaic1.f diff --git a/dspl/liblapack/SRC/zlals0.f b/lapack/src/zlals0.f similarity index 100% rename from dspl/liblapack/SRC/zlals0.f rename to lapack/src/zlals0.f diff --git a/dspl/liblapack/SRC/zlalsa.f b/lapack/src/zlalsa.f similarity index 100% rename from dspl/liblapack/SRC/zlalsa.f rename to lapack/src/zlalsa.f diff --git a/dspl/liblapack/SRC/zlalsd.f b/lapack/src/zlalsd.f similarity index 100% rename from dspl/liblapack/SRC/zlalsd.f rename to lapack/src/zlalsd.f diff --git a/dspl/liblapack/SRC/zlamswlq.f b/lapack/src/zlamswlq.f similarity index 100% rename from dspl/liblapack/SRC/zlamswlq.f rename to lapack/src/zlamswlq.f diff --git a/dspl/liblapack/SRC/zlamtsqr.f b/lapack/src/zlamtsqr.f similarity index 100% rename from dspl/liblapack/SRC/zlamtsqr.f rename to lapack/src/zlamtsqr.f diff --git a/dspl/liblapack/SRC/zlangb.f b/lapack/src/zlangb.f similarity index 100% rename from dspl/liblapack/SRC/zlangb.f rename to lapack/src/zlangb.f diff --git a/dspl/liblapack/SRC/zlange.f b/lapack/src/zlange.f similarity index 100% rename from dspl/liblapack/SRC/zlange.f rename to lapack/src/zlange.f diff --git a/dspl/liblapack/SRC/zlangt.f b/lapack/src/zlangt.f similarity index 100% rename from dspl/liblapack/SRC/zlangt.f rename to lapack/src/zlangt.f diff --git a/dspl/liblapack/SRC/zlanhb.f b/lapack/src/zlanhb.f similarity index 100% rename from dspl/liblapack/SRC/zlanhb.f rename to lapack/src/zlanhb.f diff --git a/dspl/liblapack/SRC/zlanhe.f b/lapack/src/zlanhe.f similarity index 100% rename from dspl/liblapack/SRC/zlanhe.f rename to lapack/src/zlanhe.f diff --git a/dspl/liblapack/SRC/zlanhf.f b/lapack/src/zlanhf.f similarity index 100% rename from dspl/liblapack/SRC/zlanhf.f rename to lapack/src/zlanhf.f diff --git a/dspl/liblapack/SRC/zlanhp.f b/lapack/src/zlanhp.f similarity index 100% rename from dspl/liblapack/SRC/zlanhp.f rename to lapack/src/zlanhp.f diff --git a/dspl/liblapack/SRC/zlanhs.f b/lapack/src/zlanhs.f similarity index 100% rename from dspl/liblapack/SRC/zlanhs.f rename to lapack/src/zlanhs.f diff --git a/dspl/liblapack/SRC/zlanht.f b/lapack/src/zlanht.f similarity index 100% rename from dspl/liblapack/SRC/zlanht.f rename to lapack/src/zlanht.f diff --git a/dspl/liblapack/SRC/zlansb.f b/lapack/src/zlansb.f similarity index 100% rename from dspl/liblapack/SRC/zlansb.f rename to lapack/src/zlansb.f diff --git a/dspl/liblapack/SRC/zlansp.f b/lapack/src/zlansp.f similarity index 100% rename from dspl/liblapack/SRC/zlansp.f rename to lapack/src/zlansp.f diff --git a/dspl/liblapack/SRC/zlansy.f b/lapack/src/zlansy.f similarity index 100% rename from dspl/liblapack/SRC/zlansy.f rename to lapack/src/zlansy.f diff --git a/dspl/liblapack/SRC/zlantb.f b/lapack/src/zlantb.f similarity index 100% rename from dspl/liblapack/SRC/zlantb.f rename to lapack/src/zlantb.f diff --git a/dspl/liblapack/SRC/zlantp.f b/lapack/src/zlantp.f similarity index 100% rename from dspl/liblapack/SRC/zlantp.f rename to lapack/src/zlantp.f diff --git a/dspl/liblapack/SRC/zlantr.f b/lapack/src/zlantr.f similarity index 100% rename from dspl/liblapack/SRC/zlantr.f rename to lapack/src/zlantr.f diff --git a/dspl/liblapack/SRC/zlapll.f b/lapack/src/zlapll.f similarity index 100% rename from dspl/liblapack/SRC/zlapll.f rename to lapack/src/zlapll.f diff --git a/dspl/liblapack/SRC/zlapmr.f b/lapack/src/zlapmr.f similarity index 100% rename from dspl/liblapack/SRC/zlapmr.f rename to lapack/src/zlapmr.f diff --git a/dspl/liblapack/SRC/zlapmt.f b/lapack/src/zlapmt.f similarity index 100% rename from dspl/liblapack/SRC/zlapmt.f rename to lapack/src/zlapmt.f diff --git a/dspl/liblapack/SRC/zlaqgb.f b/lapack/src/zlaqgb.f similarity index 100% rename from dspl/liblapack/SRC/zlaqgb.f rename to lapack/src/zlaqgb.f diff --git a/dspl/liblapack/SRC/zlaqge.f b/lapack/src/zlaqge.f similarity index 100% rename from dspl/liblapack/SRC/zlaqge.f rename to lapack/src/zlaqge.f diff --git a/dspl/liblapack/SRC/zlaqhb.f b/lapack/src/zlaqhb.f similarity index 100% rename from dspl/liblapack/SRC/zlaqhb.f rename to lapack/src/zlaqhb.f diff --git a/dspl/liblapack/SRC/zlaqhe.f b/lapack/src/zlaqhe.f similarity index 100% rename from dspl/liblapack/SRC/zlaqhe.f rename to lapack/src/zlaqhe.f diff --git a/dspl/liblapack/SRC/zlaqhp.f b/lapack/src/zlaqhp.f similarity index 100% rename from dspl/liblapack/SRC/zlaqhp.f rename to lapack/src/zlaqhp.f diff --git a/dspl/liblapack/SRC/zlaqp2.f b/lapack/src/zlaqp2.f similarity index 100% rename from dspl/liblapack/SRC/zlaqp2.f rename to lapack/src/zlaqp2.f diff --git a/dspl/liblapack/SRC/zlaqps.f b/lapack/src/zlaqps.f similarity index 100% rename from dspl/liblapack/SRC/zlaqps.f rename to lapack/src/zlaqps.f diff --git a/dspl/liblapack/SRC/zlaqr0.f b/lapack/src/zlaqr0.f similarity index 100% rename from dspl/liblapack/SRC/zlaqr0.f rename to lapack/src/zlaqr0.f diff --git a/dspl/liblapack/SRC/zlaqr1.f b/lapack/src/zlaqr1.f similarity index 100% rename from dspl/liblapack/SRC/zlaqr1.f rename to lapack/src/zlaqr1.f diff --git a/dspl/liblapack/SRC/zlaqr2.f b/lapack/src/zlaqr2.f similarity index 100% rename from dspl/liblapack/SRC/zlaqr2.f rename to lapack/src/zlaqr2.f diff --git a/dspl/liblapack/SRC/zlaqr3.f b/lapack/src/zlaqr3.f similarity index 100% rename from dspl/liblapack/SRC/zlaqr3.f rename to lapack/src/zlaqr3.f diff --git a/dspl/liblapack/SRC/zlaqr4.f b/lapack/src/zlaqr4.f similarity index 100% rename from dspl/liblapack/SRC/zlaqr4.f rename to lapack/src/zlaqr4.f diff --git a/dspl/liblapack/SRC/zlaqr5.f b/lapack/src/zlaqr5.f similarity index 100% rename from dspl/liblapack/SRC/zlaqr5.f rename to lapack/src/zlaqr5.f diff --git a/dspl/liblapack/SRC/zlaqsb.f b/lapack/src/zlaqsb.f similarity index 100% rename from dspl/liblapack/SRC/zlaqsb.f rename to lapack/src/zlaqsb.f diff --git a/dspl/liblapack/SRC/zlaqsp.f b/lapack/src/zlaqsp.f similarity index 100% rename from dspl/liblapack/SRC/zlaqsp.f rename to lapack/src/zlaqsp.f diff --git a/dspl/liblapack/SRC/zlaqsy.f b/lapack/src/zlaqsy.f similarity index 100% rename from dspl/liblapack/SRC/zlaqsy.f rename to lapack/src/zlaqsy.f diff --git a/dspl/liblapack/SRC/zlar1v.f b/lapack/src/zlar1v.f similarity index 100% rename from dspl/liblapack/SRC/zlar1v.f rename to lapack/src/zlar1v.f diff --git a/dspl/liblapack/SRC/zlar2v.f b/lapack/src/zlar2v.f similarity index 100% rename from dspl/liblapack/SRC/zlar2v.f rename to lapack/src/zlar2v.f diff --git a/dspl/liblapack/SRC/zlarcm.f b/lapack/src/zlarcm.f similarity index 100% rename from dspl/liblapack/SRC/zlarcm.f rename to lapack/src/zlarcm.f diff --git a/dspl/liblapack/SRC/zlarf.f b/lapack/src/zlarf.f similarity index 100% rename from dspl/liblapack/SRC/zlarf.f rename to lapack/src/zlarf.f diff --git a/dspl/liblapack/SRC/zlarfb.f b/lapack/src/zlarfb.f similarity index 100% rename from dspl/liblapack/SRC/zlarfb.f rename to lapack/src/zlarfb.f diff --git a/dspl/liblapack/SRC/zlarfg.f b/lapack/src/zlarfg.f similarity index 100% rename from dspl/liblapack/SRC/zlarfg.f rename to lapack/src/zlarfg.f diff --git a/dspl/liblapack/SRC/zlarfgp.f b/lapack/src/zlarfgp.f similarity index 100% rename from dspl/liblapack/SRC/zlarfgp.f rename to lapack/src/zlarfgp.f diff --git a/dspl/liblapack/SRC/zlarft.f b/lapack/src/zlarft.f similarity index 100% rename from dspl/liblapack/SRC/zlarft.f rename to lapack/src/zlarft.f diff --git a/dspl/liblapack/SRC/zlarfx.f b/lapack/src/zlarfx.f similarity index 100% rename from dspl/liblapack/SRC/zlarfx.f rename to lapack/src/zlarfx.f diff --git a/dspl/liblapack/SRC/zlarfy.f b/lapack/src/zlarfy.f similarity index 100% rename from dspl/liblapack/SRC/zlarfy.f rename to lapack/src/zlarfy.f diff --git a/dspl/liblapack/SRC/zlargv.f b/lapack/src/zlargv.f similarity index 100% rename from dspl/liblapack/SRC/zlargv.f rename to lapack/src/zlargv.f diff --git a/dspl/liblapack/SRC/zlarnv.f b/lapack/src/zlarnv.f similarity index 100% rename from dspl/liblapack/SRC/zlarnv.f rename to lapack/src/zlarnv.f diff --git a/dspl/liblapack/SRC/zlarrv.f b/lapack/src/zlarrv.f similarity index 100% rename from dspl/liblapack/SRC/zlarrv.f rename to lapack/src/zlarrv.f diff --git a/dspl/liblapack/SRC/zlarscl2.f b/lapack/src/zlarscl2.f similarity index 100% rename from dspl/liblapack/SRC/zlarscl2.f rename to lapack/src/zlarscl2.f diff --git a/dspl/liblapack/SRC/zlartg.f b/lapack/src/zlartg.f similarity index 100% rename from dspl/liblapack/SRC/zlartg.f rename to lapack/src/zlartg.f diff --git a/dspl/liblapack/SRC/zlartv.f b/lapack/src/zlartv.f similarity index 100% rename from dspl/liblapack/SRC/zlartv.f rename to lapack/src/zlartv.f diff --git a/dspl/liblapack/SRC/zlarz.f b/lapack/src/zlarz.f similarity index 100% rename from dspl/liblapack/SRC/zlarz.f rename to lapack/src/zlarz.f diff --git a/dspl/liblapack/SRC/zlarzb.f b/lapack/src/zlarzb.f similarity index 100% rename from dspl/liblapack/SRC/zlarzb.f rename to lapack/src/zlarzb.f diff --git a/dspl/liblapack/SRC/zlarzt.f b/lapack/src/zlarzt.f similarity index 100% rename from dspl/liblapack/SRC/zlarzt.f rename to lapack/src/zlarzt.f diff --git a/dspl/liblapack/SRC/zlascl.f b/lapack/src/zlascl.f similarity index 100% rename from dspl/liblapack/SRC/zlascl.f rename to lapack/src/zlascl.f diff --git a/dspl/liblapack/SRC/zlascl2.f b/lapack/src/zlascl2.f similarity index 100% rename from dspl/liblapack/SRC/zlascl2.f rename to lapack/src/zlascl2.f diff --git a/dspl/liblapack/SRC/zlaset.f b/lapack/src/zlaset.f similarity index 100% rename from dspl/liblapack/SRC/zlaset.f rename to lapack/src/zlaset.f diff --git a/dspl/liblapack/SRC/zlasr.f b/lapack/src/zlasr.f similarity index 100% rename from dspl/liblapack/SRC/zlasr.f rename to lapack/src/zlasr.f diff --git a/dspl/liblapack/SRC/zlassq.f b/lapack/src/zlassq.f similarity index 100% rename from dspl/liblapack/SRC/zlassq.f rename to lapack/src/zlassq.f diff --git a/dspl/liblapack/SRC/zlaswlq.f b/lapack/src/zlaswlq.f similarity index 100% rename from dspl/liblapack/SRC/zlaswlq.f rename to lapack/src/zlaswlq.f diff --git a/dspl/liblapack/SRC/zlaswp.f b/lapack/src/zlaswp.f similarity index 100% rename from dspl/liblapack/SRC/zlaswp.f rename to lapack/src/zlaswp.f diff --git a/dspl/liblapack/SRC/zlasyf.f b/lapack/src/zlasyf.f similarity index 100% rename from dspl/liblapack/SRC/zlasyf.f rename to lapack/src/zlasyf.f diff --git a/dspl/liblapack/SRC/zlasyf_aa.f b/lapack/src/zlasyf_aa.f similarity index 100% rename from dspl/liblapack/SRC/zlasyf_aa.f rename to lapack/src/zlasyf_aa.f diff --git a/dspl/liblapack/SRC/zlasyf_rk.f b/lapack/src/zlasyf_rk.f similarity index 100% rename from dspl/liblapack/SRC/zlasyf_rk.f rename to lapack/src/zlasyf_rk.f diff --git a/dspl/liblapack/SRC/zlasyf_rook.f b/lapack/src/zlasyf_rook.f similarity index 100% rename from dspl/liblapack/SRC/zlasyf_rook.f rename to lapack/src/zlasyf_rook.f diff --git a/dspl/liblapack/SRC/zlat2c.f b/lapack/src/zlat2c.f similarity index 100% rename from dspl/liblapack/SRC/zlat2c.f rename to lapack/src/zlat2c.f diff --git a/dspl/liblapack/SRC/zlatbs.f b/lapack/src/zlatbs.f similarity index 100% rename from dspl/liblapack/SRC/zlatbs.f rename to lapack/src/zlatbs.f diff --git a/dspl/liblapack/SRC/zlatdf.f b/lapack/src/zlatdf.f similarity index 100% rename from dspl/liblapack/SRC/zlatdf.f rename to lapack/src/zlatdf.f diff --git a/dspl/liblapack/SRC/zlatps.f b/lapack/src/zlatps.f similarity index 100% rename from dspl/liblapack/SRC/zlatps.f rename to lapack/src/zlatps.f diff --git a/dspl/liblapack/SRC/zlatrd.f b/lapack/src/zlatrd.f similarity index 100% rename from dspl/liblapack/SRC/zlatrd.f rename to lapack/src/zlatrd.f diff --git a/dspl/liblapack/SRC/zlatrs.f b/lapack/src/zlatrs.f similarity index 100% rename from dspl/liblapack/SRC/zlatrs.f rename to lapack/src/zlatrs.f diff --git a/dspl/liblapack/SRC/zlatrz.f b/lapack/src/zlatrz.f similarity index 100% rename from dspl/liblapack/SRC/zlatrz.f rename to lapack/src/zlatrz.f diff --git a/dspl/liblapack/SRC/zlatsqr.f b/lapack/src/zlatsqr.f similarity index 100% rename from dspl/liblapack/SRC/zlatsqr.f rename to lapack/src/zlatsqr.f diff --git a/dspl/liblapack/SRC/zlauu2.f b/lapack/src/zlauu2.f similarity index 100% rename from dspl/liblapack/SRC/zlauu2.f rename to lapack/src/zlauu2.f diff --git a/dspl/liblapack/SRC/zlauum.f b/lapack/src/zlauum.f similarity index 100% rename from dspl/liblapack/SRC/zlauum.f rename to lapack/src/zlauum.f diff --git a/dspl/liblapack/SRC/zpbcon.f b/lapack/src/zpbcon.f similarity index 100% rename from dspl/liblapack/SRC/zpbcon.f rename to lapack/src/zpbcon.f diff --git a/dspl/liblapack/SRC/zpbequ.f b/lapack/src/zpbequ.f similarity index 100% rename from dspl/liblapack/SRC/zpbequ.f rename to lapack/src/zpbequ.f diff --git a/dspl/liblapack/SRC/zpbrfs.f b/lapack/src/zpbrfs.f similarity index 100% rename from dspl/liblapack/SRC/zpbrfs.f rename to lapack/src/zpbrfs.f diff --git a/dspl/liblapack/SRC/zpbstf.f b/lapack/src/zpbstf.f similarity index 100% rename from dspl/liblapack/SRC/zpbstf.f rename to lapack/src/zpbstf.f diff --git a/dspl/liblapack/SRC/zpbsv.f b/lapack/src/zpbsv.f similarity index 100% rename from dspl/liblapack/SRC/zpbsv.f rename to lapack/src/zpbsv.f diff --git a/dspl/liblapack/SRC/zpbsvx.f b/lapack/src/zpbsvx.f similarity index 100% rename from dspl/liblapack/SRC/zpbsvx.f rename to lapack/src/zpbsvx.f diff --git a/dspl/liblapack/SRC/zpbtf2.f b/lapack/src/zpbtf2.f similarity index 100% rename from dspl/liblapack/SRC/zpbtf2.f rename to lapack/src/zpbtf2.f diff --git a/dspl/liblapack/SRC/zpbtrf.f b/lapack/src/zpbtrf.f similarity index 100% rename from dspl/liblapack/SRC/zpbtrf.f rename to lapack/src/zpbtrf.f diff --git a/dspl/liblapack/SRC/zpbtrs.f b/lapack/src/zpbtrs.f similarity index 100% rename from dspl/liblapack/SRC/zpbtrs.f rename to lapack/src/zpbtrs.f diff --git a/dspl/liblapack/SRC/zpftrf.f b/lapack/src/zpftrf.f similarity index 100% rename from dspl/liblapack/SRC/zpftrf.f rename to lapack/src/zpftrf.f diff --git a/dspl/liblapack/SRC/zpftri.f b/lapack/src/zpftri.f similarity index 100% rename from dspl/liblapack/SRC/zpftri.f rename to lapack/src/zpftri.f diff --git a/dspl/liblapack/SRC/zpftrs.f b/lapack/src/zpftrs.f similarity index 100% rename from dspl/liblapack/SRC/zpftrs.f rename to lapack/src/zpftrs.f diff --git a/dspl/liblapack/SRC/zpocon.f b/lapack/src/zpocon.f similarity index 100% rename from dspl/liblapack/SRC/zpocon.f rename to lapack/src/zpocon.f diff --git a/dspl/liblapack/SRC/zpoequ.f b/lapack/src/zpoequ.f similarity index 100% rename from dspl/liblapack/SRC/zpoequ.f rename to lapack/src/zpoequ.f diff --git a/dspl/liblapack/SRC/zpoequb.f b/lapack/src/zpoequb.f similarity index 100% rename from dspl/liblapack/SRC/zpoequb.f rename to lapack/src/zpoequb.f diff --git a/dspl/liblapack/SRC/zporfs.f b/lapack/src/zporfs.f similarity index 100% rename from dspl/liblapack/SRC/zporfs.f rename to lapack/src/zporfs.f diff --git a/dspl/liblapack/SRC/zporfsx.f b/lapack/src/zporfsx.f similarity index 100% rename from dspl/liblapack/SRC/zporfsx.f rename to lapack/src/zporfsx.f diff --git a/dspl/liblapack/SRC/zposv.f b/lapack/src/zposv.f similarity index 100% rename from dspl/liblapack/SRC/zposv.f rename to lapack/src/zposv.f diff --git a/dspl/liblapack/SRC/zposvx.f b/lapack/src/zposvx.f similarity index 100% rename from dspl/liblapack/SRC/zposvx.f rename to lapack/src/zposvx.f diff --git a/dspl/liblapack/SRC/zposvxx.f b/lapack/src/zposvxx.f similarity index 100% rename from dspl/liblapack/SRC/zposvxx.f rename to lapack/src/zposvxx.f diff --git a/dspl/liblapack/SRC/zpotf2.f b/lapack/src/zpotf2.f similarity index 100% rename from dspl/liblapack/SRC/zpotf2.f rename to lapack/src/zpotf2.f diff --git a/dspl/liblapack/SRC/zpotrf.f b/lapack/src/zpotrf.f similarity index 100% rename from dspl/liblapack/SRC/zpotrf.f rename to lapack/src/zpotrf.f diff --git a/dspl/liblapack/SRC/zpotrf2.f b/lapack/src/zpotrf2.f similarity index 100% rename from dspl/liblapack/SRC/zpotrf2.f rename to lapack/src/zpotrf2.f diff --git a/dspl/liblapack/SRC/zpotri.f b/lapack/src/zpotri.f similarity index 100% rename from dspl/liblapack/SRC/zpotri.f rename to lapack/src/zpotri.f diff --git a/dspl/liblapack/SRC/zpotrs.f b/lapack/src/zpotrs.f similarity index 100% rename from dspl/liblapack/SRC/zpotrs.f rename to lapack/src/zpotrs.f diff --git a/dspl/liblapack/SRC/zppcon.f b/lapack/src/zppcon.f similarity index 100% rename from dspl/liblapack/SRC/zppcon.f rename to lapack/src/zppcon.f diff --git a/dspl/liblapack/SRC/zppequ.f b/lapack/src/zppequ.f similarity index 100% rename from dspl/liblapack/SRC/zppequ.f rename to lapack/src/zppequ.f diff --git a/dspl/liblapack/SRC/zpprfs.f b/lapack/src/zpprfs.f similarity index 100% rename from dspl/liblapack/SRC/zpprfs.f rename to lapack/src/zpprfs.f diff --git a/dspl/liblapack/SRC/zppsv.f b/lapack/src/zppsv.f similarity index 100% rename from dspl/liblapack/SRC/zppsv.f rename to lapack/src/zppsv.f diff --git a/dspl/liblapack/SRC/zppsvx.f b/lapack/src/zppsvx.f similarity index 100% rename from dspl/liblapack/SRC/zppsvx.f rename to lapack/src/zppsvx.f diff --git a/dspl/liblapack/SRC/zpptrf.f b/lapack/src/zpptrf.f similarity index 100% rename from dspl/liblapack/SRC/zpptrf.f rename to lapack/src/zpptrf.f diff --git a/dspl/liblapack/SRC/zpptri.f b/lapack/src/zpptri.f similarity index 100% rename from dspl/liblapack/SRC/zpptri.f rename to lapack/src/zpptri.f diff --git a/dspl/liblapack/SRC/zpptrs.f b/lapack/src/zpptrs.f similarity index 100% rename from dspl/liblapack/SRC/zpptrs.f rename to lapack/src/zpptrs.f diff --git a/dspl/liblapack/SRC/zpstf2.f b/lapack/src/zpstf2.f similarity index 100% rename from dspl/liblapack/SRC/zpstf2.f rename to lapack/src/zpstf2.f diff --git a/dspl/liblapack/SRC/zpstrf.f b/lapack/src/zpstrf.f similarity index 100% rename from dspl/liblapack/SRC/zpstrf.f rename to lapack/src/zpstrf.f diff --git a/dspl/liblapack/SRC/zptcon.f b/lapack/src/zptcon.f similarity index 100% rename from dspl/liblapack/SRC/zptcon.f rename to lapack/src/zptcon.f diff --git a/dspl/liblapack/SRC/zpteqr.f b/lapack/src/zpteqr.f similarity index 100% rename from dspl/liblapack/SRC/zpteqr.f rename to lapack/src/zpteqr.f diff --git a/dspl/liblapack/SRC/zptrfs.f b/lapack/src/zptrfs.f similarity index 100% rename from dspl/liblapack/SRC/zptrfs.f rename to lapack/src/zptrfs.f diff --git a/dspl/liblapack/SRC/zptsv.f b/lapack/src/zptsv.f similarity index 100% rename from dspl/liblapack/SRC/zptsv.f rename to lapack/src/zptsv.f diff --git a/dspl/liblapack/SRC/zptsvx.f b/lapack/src/zptsvx.f similarity index 100% rename from dspl/liblapack/SRC/zptsvx.f rename to lapack/src/zptsvx.f diff --git a/dspl/liblapack/SRC/zpttrf.f b/lapack/src/zpttrf.f similarity index 100% rename from dspl/liblapack/SRC/zpttrf.f rename to lapack/src/zpttrf.f diff --git a/dspl/liblapack/SRC/zpttrs.f b/lapack/src/zpttrs.f similarity index 100% rename from dspl/liblapack/SRC/zpttrs.f rename to lapack/src/zpttrs.f diff --git a/dspl/liblapack/SRC/zptts2.f b/lapack/src/zptts2.f similarity index 100% rename from dspl/liblapack/SRC/zptts2.f rename to lapack/src/zptts2.f diff --git a/dspl/liblapack/SRC/zrot.f b/lapack/src/zrot.f similarity index 100% rename from dspl/liblapack/SRC/zrot.f rename to lapack/src/zrot.f diff --git a/dspl/liblapack/SRC/zspcon.f b/lapack/src/zspcon.f similarity index 100% rename from dspl/liblapack/SRC/zspcon.f rename to lapack/src/zspcon.f diff --git a/dspl/liblapack/SRC/zspmv.f b/lapack/src/zspmv.f similarity index 100% rename from dspl/liblapack/SRC/zspmv.f rename to lapack/src/zspmv.f diff --git a/dspl/liblapack/SRC/zspr.f b/lapack/src/zspr.f similarity index 100% rename from dspl/liblapack/SRC/zspr.f rename to lapack/src/zspr.f diff --git a/dspl/liblapack/SRC/zsprfs.f b/lapack/src/zsprfs.f similarity index 100% rename from dspl/liblapack/SRC/zsprfs.f rename to lapack/src/zsprfs.f diff --git a/dspl/liblapack/SRC/zspsv.f b/lapack/src/zspsv.f similarity index 100% rename from dspl/liblapack/SRC/zspsv.f rename to lapack/src/zspsv.f diff --git a/dspl/liblapack/SRC/zspsvx.f b/lapack/src/zspsvx.f similarity index 100% rename from dspl/liblapack/SRC/zspsvx.f rename to lapack/src/zspsvx.f diff --git a/dspl/liblapack/SRC/zsptrf.f b/lapack/src/zsptrf.f similarity index 100% rename from dspl/liblapack/SRC/zsptrf.f rename to lapack/src/zsptrf.f diff --git a/dspl/liblapack/SRC/zsptri.f b/lapack/src/zsptri.f similarity index 100% rename from dspl/liblapack/SRC/zsptri.f rename to lapack/src/zsptri.f diff --git a/dspl/liblapack/SRC/zsptrs.f b/lapack/src/zsptrs.f similarity index 100% rename from dspl/liblapack/SRC/zsptrs.f rename to lapack/src/zsptrs.f diff --git a/dspl/liblapack/SRC/zstedc.f b/lapack/src/zstedc.f similarity index 100% rename from dspl/liblapack/SRC/zstedc.f rename to lapack/src/zstedc.f diff --git a/dspl/liblapack/SRC/zstegr.f b/lapack/src/zstegr.f similarity index 100% rename from dspl/liblapack/SRC/zstegr.f rename to lapack/src/zstegr.f diff --git a/dspl/liblapack/SRC/zstein.f b/lapack/src/zstein.f similarity index 100% rename from dspl/liblapack/SRC/zstein.f rename to lapack/src/zstein.f diff --git a/dspl/liblapack/SRC/zstemr.f b/lapack/src/zstemr.f similarity index 100% rename from dspl/liblapack/SRC/zstemr.f rename to lapack/src/zstemr.f diff --git a/dspl/liblapack/SRC/zsteqr.f b/lapack/src/zsteqr.f similarity index 100% rename from dspl/liblapack/SRC/zsteqr.f rename to lapack/src/zsteqr.f diff --git a/dspl/liblapack/SRC/zsycon.f b/lapack/src/zsycon.f similarity index 100% rename from dspl/liblapack/SRC/zsycon.f rename to lapack/src/zsycon.f diff --git a/dspl/liblapack/SRC/zsycon_3.f b/lapack/src/zsycon_3.f similarity index 100% rename from dspl/liblapack/SRC/zsycon_3.f rename to lapack/src/zsycon_3.f diff --git a/dspl/liblapack/SRC/zsycon_rook.f b/lapack/src/zsycon_rook.f similarity index 100% rename from dspl/liblapack/SRC/zsycon_rook.f rename to lapack/src/zsycon_rook.f diff --git a/dspl/liblapack/SRC/zsyconv.f b/lapack/src/zsyconv.f similarity index 100% rename from dspl/liblapack/SRC/zsyconv.f rename to lapack/src/zsyconv.f diff --git a/dspl/liblapack/SRC/zsyconvf.f b/lapack/src/zsyconvf.f similarity index 100% rename from dspl/liblapack/SRC/zsyconvf.f rename to lapack/src/zsyconvf.f diff --git a/dspl/liblapack/SRC/zsyconvf_rook.f b/lapack/src/zsyconvf_rook.f similarity index 100% rename from dspl/liblapack/SRC/zsyconvf_rook.f rename to lapack/src/zsyconvf_rook.f diff --git a/dspl/liblapack/SRC/zsyequb.f b/lapack/src/zsyequb.f similarity index 100% rename from dspl/liblapack/SRC/zsyequb.f rename to lapack/src/zsyequb.f diff --git a/dspl/liblapack/SRC/zsymv.f b/lapack/src/zsymv.f similarity index 100% rename from dspl/liblapack/SRC/zsymv.f rename to lapack/src/zsymv.f diff --git a/dspl/liblapack/SRC/zsyr.f b/lapack/src/zsyr.f similarity index 100% rename from dspl/liblapack/SRC/zsyr.f rename to lapack/src/zsyr.f diff --git a/dspl/liblapack/SRC/zsyrfs.f b/lapack/src/zsyrfs.f similarity index 100% rename from dspl/liblapack/SRC/zsyrfs.f rename to lapack/src/zsyrfs.f diff --git a/dspl/liblapack/SRC/zsyrfsx.f b/lapack/src/zsyrfsx.f similarity index 100% rename from dspl/liblapack/SRC/zsyrfsx.f rename to lapack/src/zsyrfsx.f diff --git a/dspl/liblapack/SRC/zsysv.f b/lapack/src/zsysv.f similarity index 100% rename from dspl/liblapack/SRC/zsysv.f rename to lapack/src/zsysv.f diff --git a/dspl/liblapack/SRC/zsysv_aa.f b/lapack/src/zsysv_aa.f similarity index 100% rename from dspl/liblapack/SRC/zsysv_aa.f rename to lapack/src/zsysv_aa.f diff --git a/dspl/liblapack/SRC/zsysv_aa_2stage.f b/lapack/src/zsysv_aa_2stage.f similarity index 100% rename from dspl/liblapack/SRC/zsysv_aa_2stage.f rename to lapack/src/zsysv_aa_2stage.f diff --git a/dspl/liblapack/SRC/zsysv_rk.f b/lapack/src/zsysv_rk.f similarity index 100% rename from dspl/liblapack/SRC/zsysv_rk.f rename to lapack/src/zsysv_rk.f diff --git a/dspl/liblapack/SRC/zsysv_rook.f b/lapack/src/zsysv_rook.f similarity index 100% rename from dspl/liblapack/SRC/zsysv_rook.f rename to lapack/src/zsysv_rook.f diff --git a/dspl/liblapack/SRC/zsysvx.f b/lapack/src/zsysvx.f similarity index 100% rename from dspl/liblapack/SRC/zsysvx.f rename to lapack/src/zsysvx.f diff --git a/dspl/liblapack/SRC/zsysvxx.f b/lapack/src/zsysvxx.f similarity index 100% rename from dspl/liblapack/SRC/zsysvxx.f rename to lapack/src/zsysvxx.f diff --git a/dspl/liblapack/SRC/zsyswapr.f b/lapack/src/zsyswapr.f similarity index 100% rename from dspl/liblapack/SRC/zsyswapr.f rename to lapack/src/zsyswapr.f diff --git a/dspl/liblapack/SRC/zsytf2.f b/lapack/src/zsytf2.f similarity index 100% rename from dspl/liblapack/SRC/zsytf2.f rename to lapack/src/zsytf2.f diff --git a/dspl/liblapack/SRC/zsytf2_rk.f b/lapack/src/zsytf2_rk.f similarity index 100% rename from dspl/liblapack/SRC/zsytf2_rk.f rename to lapack/src/zsytf2_rk.f diff --git a/dspl/liblapack/SRC/zsytf2_rook.f b/lapack/src/zsytf2_rook.f similarity index 100% rename from dspl/liblapack/SRC/zsytf2_rook.f rename to lapack/src/zsytf2_rook.f diff --git a/dspl/liblapack/SRC/zsytrf.f b/lapack/src/zsytrf.f similarity index 100% rename from dspl/liblapack/SRC/zsytrf.f rename to lapack/src/zsytrf.f diff --git a/dspl/liblapack/SRC/zsytrf_aa.f b/lapack/src/zsytrf_aa.f similarity index 100% rename from dspl/liblapack/SRC/zsytrf_aa.f rename to lapack/src/zsytrf_aa.f diff --git a/dspl/liblapack/SRC/zsytrf_aa_2stage.f b/lapack/src/zsytrf_aa_2stage.f similarity index 100% rename from dspl/liblapack/SRC/zsytrf_aa_2stage.f rename to lapack/src/zsytrf_aa_2stage.f diff --git a/dspl/liblapack/SRC/zsytrf_rk.f b/lapack/src/zsytrf_rk.f similarity index 100% rename from dspl/liblapack/SRC/zsytrf_rk.f rename to lapack/src/zsytrf_rk.f diff --git a/dspl/liblapack/SRC/zsytrf_rook.f b/lapack/src/zsytrf_rook.f similarity index 100% rename from dspl/liblapack/SRC/zsytrf_rook.f rename to lapack/src/zsytrf_rook.f diff --git a/dspl/liblapack/SRC/zsytri.f b/lapack/src/zsytri.f similarity index 100% rename from dspl/liblapack/SRC/zsytri.f rename to lapack/src/zsytri.f diff --git a/dspl/liblapack/SRC/zsytri2.f b/lapack/src/zsytri2.f similarity index 100% rename from dspl/liblapack/SRC/zsytri2.f rename to lapack/src/zsytri2.f diff --git a/dspl/liblapack/SRC/zsytri2x.f b/lapack/src/zsytri2x.f similarity index 100% rename from dspl/liblapack/SRC/zsytri2x.f rename to lapack/src/zsytri2x.f diff --git a/dspl/liblapack/SRC/zsytri_3.f b/lapack/src/zsytri_3.f similarity index 100% rename from dspl/liblapack/SRC/zsytri_3.f rename to lapack/src/zsytri_3.f diff --git a/dspl/liblapack/SRC/zsytri_3x.f b/lapack/src/zsytri_3x.f similarity index 100% rename from dspl/liblapack/SRC/zsytri_3x.f rename to lapack/src/zsytri_3x.f diff --git a/dspl/liblapack/SRC/zsytri_rook.f b/lapack/src/zsytri_rook.f similarity index 100% rename from dspl/liblapack/SRC/zsytri_rook.f rename to lapack/src/zsytri_rook.f diff --git a/dspl/liblapack/SRC/zsytrs.f b/lapack/src/zsytrs.f similarity index 100% rename from dspl/liblapack/SRC/zsytrs.f rename to lapack/src/zsytrs.f diff --git a/dspl/liblapack/SRC/zsytrs2.f b/lapack/src/zsytrs2.f similarity index 100% rename from dspl/liblapack/SRC/zsytrs2.f rename to lapack/src/zsytrs2.f diff --git a/dspl/liblapack/SRC/zsytrs_3.f b/lapack/src/zsytrs_3.f similarity index 100% rename from dspl/liblapack/SRC/zsytrs_3.f rename to lapack/src/zsytrs_3.f diff --git a/dspl/liblapack/SRC/zsytrs_aa.f b/lapack/src/zsytrs_aa.f similarity index 100% rename from dspl/liblapack/SRC/zsytrs_aa.f rename to lapack/src/zsytrs_aa.f diff --git a/dspl/liblapack/SRC/zsytrs_aa_2stage.f b/lapack/src/zsytrs_aa_2stage.f similarity index 100% rename from dspl/liblapack/SRC/zsytrs_aa_2stage.f rename to lapack/src/zsytrs_aa_2stage.f diff --git a/dspl/liblapack/SRC/zsytrs_rook.f b/lapack/src/zsytrs_rook.f similarity index 100% rename from dspl/liblapack/SRC/zsytrs_rook.f rename to lapack/src/zsytrs_rook.f diff --git a/dspl/liblapack/SRC/ztbcon.f b/lapack/src/ztbcon.f similarity index 100% rename from dspl/liblapack/SRC/ztbcon.f rename to lapack/src/ztbcon.f diff --git a/dspl/liblapack/SRC/ztbrfs.f b/lapack/src/ztbrfs.f similarity index 100% rename from dspl/liblapack/SRC/ztbrfs.f rename to lapack/src/ztbrfs.f diff --git a/dspl/liblapack/SRC/ztbtrs.f b/lapack/src/ztbtrs.f similarity index 100% rename from dspl/liblapack/SRC/ztbtrs.f rename to lapack/src/ztbtrs.f diff --git a/dspl/liblapack/SRC/ztfsm.f b/lapack/src/ztfsm.f similarity index 100% rename from dspl/liblapack/SRC/ztfsm.f rename to lapack/src/ztfsm.f diff --git a/dspl/liblapack/SRC/ztftri.f b/lapack/src/ztftri.f similarity index 100% rename from dspl/liblapack/SRC/ztftri.f rename to lapack/src/ztftri.f diff --git a/dspl/liblapack/SRC/ztfttp.f b/lapack/src/ztfttp.f similarity index 100% rename from dspl/liblapack/SRC/ztfttp.f rename to lapack/src/ztfttp.f diff --git a/dspl/liblapack/SRC/ztfttr.f b/lapack/src/ztfttr.f similarity index 100% rename from dspl/liblapack/SRC/ztfttr.f rename to lapack/src/ztfttr.f diff --git a/dspl/liblapack/SRC/ztgevc.f b/lapack/src/ztgevc.f similarity index 100% rename from dspl/liblapack/SRC/ztgevc.f rename to lapack/src/ztgevc.f diff --git a/dspl/liblapack/SRC/ztgex2.f b/lapack/src/ztgex2.f similarity index 100% rename from dspl/liblapack/SRC/ztgex2.f rename to lapack/src/ztgex2.f diff --git a/dspl/liblapack/SRC/ztgexc.f b/lapack/src/ztgexc.f similarity index 100% rename from dspl/liblapack/SRC/ztgexc.f rename to lapack/src/ztgexc.f diff --git a/dspl/liblapack/SRC/ztgsen.f b/lapack/src/ztgsen.f similarity index 100% rename from dspl/liblapack/SRC/ztgsen.f rename to lapack/src/ztgsen.f diff --git a/dspl/liblapack/SRC/ztgsja.f b/lapack/src/ztgsja.f similarity index 100% rename from dspl/liblapack/SRC/ztgsja.f rename to lapack/src/ztgsja.f diff --git a/dspl/liblapack/SRC/ztgsna.f b/lapack/src/ztgsna.f similarity index 100% rename from dspl/liblapack/SRC/ztgsna.f rename to lapack/src/ztgsna.f diff --git a/dspl/liblapack/SRC/ztgsy2.f b/lapack/src/ztgsy2.f similarity index 100% rename from dspl/liblapack/SRC/ztgsy2.f rename to lapack/src/ztgsy2.f diff --git a/dspl/liblapack/SRC/ztgsyl.f b/lapack/src/ztgsyl.f similarity index 100% rename from dspl/liblapack/SRC/ztgsyl.f rename to lapack/src/ztgsyl.f diff --git a/dspl/liblapack/SRC/ztpcon.f b/lapack/src/ztpcon.f similarity index 100% rename from dspl/liblapack/SRC/ztpcon.f rename to lapack/src/ztpcon.f diff --git a/dspl/liblapack/SRC/ztplqt.f b/lapack/src/ztplqt.f similarity index 100% rename from dspl/liblapack/SRC/ztplqt.f rename to lapack/src/ztplqt.f diff --git a/dspl/liblapack/SRC/ztplqt2.f b/lapack/src/ztplqt2.f similarity index 100% rename from dspl/liblapack/SRC/ztplqt2.f rename to lapack/src/ztplqt2.f diff --git a/dspl/liblapack/SRC/ztpmlqt.f b/lapack/src/ztpmlqt.f similarity index 100% rename from dspl/liblapack/SRC/ztpmlqt.f rename to lapack/src/ztpmlqt.f diff --git a/dspl/liblapack/SRC/ztpmqrt.f b/lapack/src/ztpmqrt.f similarity index 100% rename from dspl/liblapack/SRC/ztpmqrt.f rename to lapack/src/ztpmqrt.f diff --git a/dspl/liblapack/SRC/ztpqrt.f b/lapack/src/ztpqrt.f similarity index 100% rename from dspl/liblapack/SRC/ztpqrt.f rename to lapack/src/ztpqrt.f diff --git a/dspl/liblapack/SRC/ztpqrt2.f b/lapack/src/ztpqrt2.f similarity index 100% rename from dspl/liblapack/SRC/ztpqrt2.f rename to lapack/src/ztpqrt2.f diff --git a/dspl/liblapack/SRC/ztprfb.f b/lapack/src/ztprfb.f similarity index 100% rename from dspl/liblapack/SRC/ztprfb.f rename to lapack/src/ztprfb.f diff --git a/dspl/liblapack/SRC/ztprfs.f b/lapack/src/ztprfs.f similarity index 100% rename from dspl/liblapack/SRC/ztprfs.f rename to lapack/src/ztprfs.f diff --git a/dspl/liblapack/SRC/ztptri.f b/lapack/src/ztptri.f similarity index 100% rename from dspl/liblapack/SRC/ztptri.f rename to lapack/src/ztptri.f diff --git a/dspl/liblapack/SRC/ztptrs.f b/lapack/src/ztptrs.f similarity index 100% rename from dspl/liblapack/SRC/ztptrs.f rename to lapack/src/ztptrs.f diff --git a/dspl/liblapack/SRC/ztpttf.f b/lapack/src/ztpttf.f similarity index 100% rename from dspl/liblapack/SRC/ztpttf.f rename to lapack/src/ztpttf.f diff --git a/dspl/liblapack/SRC/ztpttr.f b/lapack/src/ztpttr.f similarity index 100% rename from dspl/liblapack/SRC/ztpttr.f rename to lapack/src/ztpttr.f diff --git a/dspl/liblapack/SRC/ztrcon.f b/lapack/src/ztrcon.f similarity index 100% rename from dspl/liblapack/SRC/ztrcon.f rename to lapack/src/ztrcon.f diff --git a/dspl/liblapack/SRC/ztrevc.f b/lapack/src/ztrevc.f similarity index 100% rename from dspl/liblapack/SRC/ztrevc.f rename to lapack/src/ztrevc.f diff --git a/dspl/liblapack/SRC/ztrevc3.f b/lapack/src/ztrevc3.f similarity index 100% rename from dspl/liblapack/SRC/ztrevc3.f rename to lapack/src/ztrevc3.f diff --git a/dspl/liblapack/SRC/ztrexc.f b/lapack/src/ztrexc.f similarity index 100% rename from dspl/liblapack/SRC/ztrexc.f rename to lapack/src/ztrexc.f diff --git a/dspl/liblapack/SRC/ztrrfs.f b/lapack/src/ztrrfs.f similarity index 100% rename from dspl/liblapack/SRC/ztrrfs.f rename to lapack/src/ztrrfs.f diff --git a/dspl/liblapack/SRC/ztrsen.f b/lapack/src/ztrsen.f similarity index 100% rename from dspl/liblapack/SRC/ztrsen.f rename to lapack/src/ztrsen.f diff --git a/dspl/liblapack/SRC/ztrsna.f b/lapack/src/ztrsna.f similarity index 100% rename from dspl/liblapack/SRC/ztrsna.f rename to lapack/src/ztrsna.f diff --git a/dspl/liblapack/SRC/ztrsyl.f b/lapack/src/ztrsyl.f similarity index 100% rename from dspl/liblapack/SRC/ztrsyl.f rename to lapack/src/ztrsyl.f diff --git a/dspl/liblapack/SRC/ztrti2.f b/lapack/src/ztrti2.f similarity index 100% rename from dspl/liblapack/SRC/ztrti2.f rename to lapack/src/ztrti2.f diff --git a/dspl/liblapack/SRC/ztrtri.f b/lapack/src/ztrtri.f similarity index 100% rename from dspl/liblapack/SRC/ztrtri.f rename to lapack/src/ztrtri.f diff --git a/dspl/liblapack/SRC/ztrtrs.f b/lapack/src/ztrtrs.f similarity index 100% rename from dspl/liblapack/SRC/ztrtrs.f rename to lapack/src/ztrtrs.f diff --git a/dspl/liblapack/SRC/ztrttf.f b/lapack/src/ztrttf.f similarity index 100% rename from dspl/liblapack/SRC/ztrttf.f rename to lapack/src/ztrttf.f diff --git a/dspl/liblapack/SRC/ztrttp.f b/lapack/src/ztrttp.f similarity index 100% rename from dspl/liblapack/SRC/ztrttp.f rename to lapack/src/ztrttp.f diff --git a/dspl/liblapack/SRC/ztzrzf.f b/lapack/src/ztzrzf.f similarity index 100% rename from dspl/liblapack/SRC/ztzrzf.f rename to lapack/src/ztzrzf.f diff --git a/dspl/liblapack/SRC/zunbdb.f b/lapack/src/zunbdb.f similarity index 100% rename from dspl/liblapack/SRC/zunbdb.f rename to lapack/src/zunbdb.f diff --git a/dspl/liblapack/SRC/zunbdb1.f b/lapack/src/zunbdb1.f similarity index 100% rename from dspl/liblapack/SRC/zunbdb1.f rename to lapack/src/zunbdb1.f diff --git a/dspl/liblapack/SRC/zunbdb2.f b/lapack/src/zunbdb2.f similarity index 100% rename from dspl/liblapack/SRC/zunbdb2.f rename to lapack/src/zunbdb2.f diff --git a/dspl/liblapack/SRC/zunbdb3.f b/lapack/src/zunbdb3.f similarity index 100% rename from dspl/liblapack/SRC/zunbdb3.f rename to lapack/src/zunbdb3.f diff --git a/dspl/liblapack/SRC/zunbdb4.f b/lapack/src/zunbdb4.f similarity index 100% rename from dspl/liblapack/SRC/zunbdb4.f rename to lapack/src/zunbdb4.f diff --git a/dspl/liblapack/SRC/zunbdb5.f b/lapack/src/zunbdb5.f similarity index 100% rename from dspl/liblapack/SRC/zunbdb5.f rename to lapack/src/zunbdb5.f diff --git a/dspl/liblapack/SRC/zunbdb6.f b/lapack/src/zunbdb6.f similarity index 100% rename from dspl/liblapack/SRC/zunbdb6.f rename to lapack/src/zunbdb6.f diff --git a/dspl/liblapack/SRC/zuncsd.f b/lapack/src/zuncsd.f similarity index 100% rename from dspl/liblapack/SRC/zuncsd.f rename to lapack/src/zuncsd.f diff --git a/dspl/liblapack/SRC/zuncsd2by1.f b/lapack/src/zuncsd2by1.f similarity index 100% rename from dspl/liblapack/SRC/zuncsd2by1.f rename to lapack/src/zuncsd2by1.f diff --git a/dspl/liblapack/SRC/zung2l.f b/lapack/src/zung2l.f similarity index 100% rename from dspl/liblapack/SRC/zung2l.f rename to lapack/src/zung2l.f diff --git a/dspl/liblapack/SRC/zung2r.f b/lapack/src/zung2r.f similarity index 100% rename from dspl/liblapack/SRC/zung2r.f rename to lapack/src/zung2r.f diff --git a/dspl/liblapack/SRC/zungbr.f b/lapack/src/zungbr.f similarity index 100% rename from dspl/liblapack/SRC/zungbr.f rename to lapack/src/zungbr.f diff --git a/dspl/liblapack/SRC/zunghr.f b/lapack/src/zunghr.f similarity index 100% rename from dspl/liblapack/SRC/zunghr.f rename to lapack/src/zunghr.f diff --git a/dspl/liblapack/SRC/zungl2.f b/lapack/src/zungl2.f similarity index 100% rename from dspl/liblapack/SRC/zungl2.f rename to lapack/src/zungl2.f diff --git a/dspl/liblapack/SRC/zunglq.f b/lapack/src/zunglq.f similarity index 100% rename from dspl/liblapack/SRC/zunglq.f rename to lapack/src/zunglq.f diff --git a/dspl/liblapack/SRC/zungql.f b/lapack/src/zungql.f similarity index 100% rename from dspl/liblapack/SRC/zungql.f rename to lapack/src/zungql.f diff --git a/dspl/liblapack/SRC/zungqr.f b/lapack/src/zungqr.f similarity index 100% rename from dspl/liblapack/SRC/zungqr.f rename to lapack/src/zungqr.f diff --git a/dspl/liblapack/SRC/zungr2.f b/lapack/src/zungr2.f similarity index 100% rename from dspl/liblapack/SRC/zungr2.f rename to lapack/src/zungr2.f diff --git a/dspl/liblapack/SRC/zungrq.f b/lapack/src/zungrq.f similarity index 100% rename from dspl/liblapack/SRC/zungrq.f rename to lapack/src/zungrq.f diff --git a/dspl/liblapack/SRC/zungtr.f b/lapack/src/zungtr.f similarity index 100% rename from dspl/liblapack/SRC/zungtr.f rename to lapack/src/zungtr.f diff --git a/dspl/liblapack/SRC/zunm22.f b/lapack/src/zunm22.f similarity index 100% rename from dspl/liblapack/SRC/zunm22.f rename to lapack/src/zunm22.f diff --git a/dspl/liblapack/SRC/zunm2l.f b/lapack/src/zunm2l.f similarity index 100% rename from dspl/liblapack/SRC/zunm2l.f rename to lapack/src/zunm2l.f diff --git a/dspl/liblapack/SRC/zunm2r.f b/lapack/src/zunm2r.f similarity index 100% rename from dspl/liblapack/SRC/zunm2r.f rename to lapack/src/zunm2r.f diff --git a/dspl/liblapack/SRC/zunmbr.f b/lapack/src/zunmbr.f similarity index 100% rename from dspl/liblapack/SRC/zunmbr.f rename to lapack/src/zunmbr.f diff --git a/dspl/liblapack/SRC/zunmhr.f b/lapack/src/zunmhr.f similarity index 100% rename from dspl/liblapack/SRC/zunmhr.f rename to lapack/src/zunmhr.f diff --git a/dspl/liblapack/SRC/zunml2.f b/lapack/src/zunml2.f similarity index 100% rename from dspl/liblapack/SRC/zunml2.f rename to lapack/src/zunml2.f diff --git a/dspl/liblapack/SRC/zunmlq.f b/lapack/src/zunmlq.f similarity index 100% rename from dspl/liblapack/SRC/zunmlq.f rename to lapack/src/zunmlq.f diff --git a/dspl/liblapack/SRC/zunmql.f b/lapack/src/zunmql.f similarity index 100% rename from dspl/liblapack/SRC/zunmql.f rename to lapack/src/zunmql.f diff --git a/dspl/liblapack/SRC/zunmqr.f b/lapack/src/zunmqr.f similarity index 100% rename from dspl/liblapack/SRC/zunmqr.f rename to lapack/src/zunmqr.f diff --git a/dspl/liblapack/SRC/zunmr2.f b/lapack/src/zunmr2.f similarity index 100% rename from dspl/liblapack/SRC/zunmr2.f rename to lapack/src/zunmr2.f diff --git a/dspl/liblapack/SRC/zunmr3.f b/lapack/src/zunmr3.f similarity index 100% rename from dspl/liblapack/SRC/zunmr3.f rename to lapack/src/zunmr3.f diff --git a/dspl/liblapack/SRC/zunmrq.f b/lapack/src/zunmrq.f similarity index 100% rename from dspl/liblapack/SRC/zunmrq.f rename to lapack/src/zunmrq.f diff --git a/dspl/liblapack/SRC/zunmrz.f b/lapack/src/zunmrz.f similarity index 100% rename from dspl/liblapack/SRC/zunmrz.f rename to lapack/src/zunmrz.f diff --git a/dspl/liblapack/SRC/zunmtr.f b/lapack/src/zunmtr.f similarity index 100% rename from dspl/liblapack/SRC/zunmtr.f rename to lapack/src/zunmtr.f diff --git a/dspl/liblapack/SRC/zupgtr.f b/lapack/src/zupgtr.f similarity index 100% rename from dspl/liblapack/SRC/zupgtr.f rename to lapack/src/zupgtr.f diff --git a/dspl/liblapack/SRC/zupmtr.f b/lapack/src/zupmtr.f similarity index 100% rename from dspl/liblapack/SRC/zupmtr.f rename to lapack/src/zupmtr.f diff --git a/make.inc b/make.inc index f7d3b22..d4be232 100644 --- a/make.inc +++ b/make.inc @@ -1,30 +1,40 @@ CC = gcc -FORTRAN = gfortran +FORTRAN = g++ AR = ar -LIB_DIR = dspl + # DSPL source and obj file path -DSPL_SRC_DIR = $(LIB_DIR)/dspl_src -DSPL_OBJ_DIR = $(LIB_DIR)/dspl_obj +DSPL_SRC_DIR = src +DSPL_OBJ_DIR = obj + # BLAS source path -BLAS_LIB_DIR = $(LIB_DIR)/libblas/ -BLAS_SRC_DIR = $(BLAS_LIB_DIR)/SRC -BLAS_LIB_NAME = $(BLAS_LIB_DIR)/libblas.a +BLAS_LIB_DIR = ../blas +BLAS_SRC_DIR = $(BLAS_LIB_DIR)/src +BLAS_RELEASE_DIR = $(BLAS_LIB_DIR)/bin/Release + +BLAS_LIB_NAME = $(BLAS_RELEASE_DIR)/libblas.a # LAPACK source path -LAPACK_LIB_DIR = $(LIB_DIR)/liblapack/ -LAPACK_SRC_DIR = $(LAPACK_LIB_DIR)/SRC -LAPACK_LIB_NAME = $(LAPACK_LIB_DIR)/liblapack.a +LAPACK_LIB_DIR = ../lapack +LAPACK_RELEASE_DIR = $(LAPACK_LIB_DIR)/bin/Release + + +LAPACK_DOUBLE_SRC_DIR = $(LAPACK_LIB_DIR)/src +LAPACK_DOUBLE_LIB_NAME = $(LAPACK_RELEASE_DIR)/liblapack_double.a + +LAPACK_COMPLEX_SRC_DIR = $(LAPACK_LIB_DIR)/src +LAPACK_COMPLEX_LIB_NAME = $(LAPACK_RELEASE_DIR)/liblapack_complex.a + #common source for DSPL and examples -COMMON_SRC_DIR = $(COMMON_DIR)/src +#COMMON_SRC_DIR = $(COMMON_DIR)/src -INC_DIR = include -RELEASE_DIR = release/lib +INC_DIR = ../include +RELEASE_DIR = ../bin ifeq ($(OS),Windows_NT) DSPL_LIBNAME = libdspl.dll diff --git a/release/doc/.gitignore b/release/doc/.gitignore deleted file mode 100644 index e69de29..0000000 diff --git a/release/doc/ru/.gitignore b/release/doc/ru/.gitignore deleted file mode 100644 index 9190863..0000000 --- a/release/doc/ru/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -*.html -*.png -*.css -*.js -*.* diff --git a/release/include/dspl.c b/release/include/dspl.c deleted file mode 100644 index b4a94fb..0000000 --- a/release/include/dspl.c +++ /dev/null @@ -1,365 +0,0 @@ -/* -* Copyright (c) 2015-2019 Sergey Bakhurin -* Digital Signal Processing Library [http://dsplib.org] -* -* This file is part of libdspl-2.0. -* -* is free software: you can redistribute it and/or modify -* it under the terms of the GNU Lesser General Public License as published by -* the Free Software Foundation, either version 3 of the License, or -* (at your option) any later version. -* -* DSPL is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU Lesser General Public License -* along with Foobar. If not, see . -*/ - - - -#ifdef WIN_OS -#include -#endif /* WIN_OS */ - -#ifdef LINUX_OS -#include -#endif /* LINUX_OS */ - - -#include -#include "dspl.h" - - -#ifndef BUILD_LIB - -p_acos_cmplx acos_cmplx ; -p_asin_cmplx asin_cmplx ; -p_butter_ap butter_ap ; -p_bessel_i0 bessel_i0 ; -p_bilinear bilinear ; -p_butter_ap_zp butter_ap_zp ; -p_cheby_poly1 cheby_poly1 ; -p_cheby_poly2 cheby_poly2 ; -p_cheby1_ap cheby1_ap ; -p_cheby1_ap_zp cheby1_ap_zp ; -p_cheby2_ap cheby2_ap ; -p_cheby2_ap_wp1 cheby2_ap_wp1 ; -p_cheby2_ap_zp cheby2_ap_zp ; -p_cmplx2re cmplx2re ; -p_concat concat ; -p_conv conv ; -p_conv_cmplx conv_cmplx ; -p_conv_fft conv_fft ; -p_conv_fft_cmplx conv_fft_cmplx ; -p_cos_cmplx cos_cmplx ; -p_decimate decimate ; -p_decimate_cmplx decimate_cmplx ; -p_dft dft ; -p_dft_cmplx dft_cmplx ; -p_dmod dmod ; -p_dspl_info dspl_info ; -p_ellip_acd ellip_acd ; -p_ellip_acd_cmplx ellip_acd_cmplx ; -p_ellip_ap ellip_ap ; -p_ellip_ap_zp ellip_ap_zp ; -p_ellip_asn ellip_asn ; -p_ellip_asn_cmplx ellip_asn_cmplx ; -p_ellip_cd ellip_cd ; -p_ellip_cd_cmplx ellip_cd_cmplx ; -p_ellip_landen ellip_landen ; -p_ellip_modulareq ellip_modulareq ; -p_ellip_rat ellip_rat ; -p_ellip_sn ellip_sn ; -p_ellip_sn_cmplx ellip_sn_cmplx ; -p_farrow_lagrange farrow_lagrange ; -p_farrow_spline farrow_spline ; -p_fft fft ; -p_fft_cmplx fft_cmplx ; -p_fft_create fft_create ; -p_fft_free fft_free ; -p_fft_mag fft_mag ; -p_fft_mag_cmplx fft_mag_cmplx ; -p_fft_shift fft_shift ; -p_fft_shift_cmplx fft_shift_cmplx ; -p_filter_freq_resp filter_freq_resp ; -p_filter_iir filter_iir ; -p_filter_ws1 filter_ws1 ; -p_filter_zp2ab filter_zp2ab ; -p_find_max_abs find_max_abs ; -p_fir_linphase fir_linphase ; -p_flipip flipip ; -p_flipip_cmplx flipip_cmplx ; -p_fourier_integral_cmplx fourier_integral_cmplx ; -p_fourier_series_dec fourier_series_dec ; -p_fourier_series_dec_cmplx fourier_series_dec_cmplx ; -p_fourier_series_rec fourier_series_rec ; -p_freqs freqs ; -p_freqs_cmplx freqs_cmplx ; -p_freqs2time freqs2time ; -p_freqz freqz ; -p_goertzel goertzel ; -p_goertzel_cmplx goertzel_cmplx ; -p_histogram histogram ; -p_histogram_norm histogram_norm ; -p_idft_cmplx idft_cmplx ; -p_ifft_cmplx ifft_cmplx ; -p_iir iir ; -p_linspace linspace ; -p_log_cmplx log_cmplx ; -p_logspace logspace ; -p_low2bp low2bp ; -p_low2bs low2bs ; -p_low2high low2high ; -p_low2low low2low ; - -p_matrix_eig_cmplx matrix_eig_cmplx ; -p_matrix_eye matrix_eye ; -p_matrix_eye_cmplx matrix_eye_cmplx ; -p_matrix_mul matrix_mul ; -p_matrix_print matrix_print ; -p_matrix_print_cmplx matrix_print_cmplx ; -p_matrix_transpose matrix_transpose ; -p_matrix_transpose_cmplx matrix_transpose_cmplx ; -p_matrix_transpose_hermite matrix_transpose_hermite ; - - -p_minmax minmax ; -p_poly_z2a_cmplx poly_z2a_cmplx ; -p_polyval polyval ; -p_polyval_cmplx polyval_cmplx ; -p_randn randn ; -p_random_init random_init ; -p_randu randu ; -p_ratcompos ratcompos ; -p_re2cmplx re2cmplx ; -p_readbin readbin ; -p_signal_pimp signal_pimp ; -p_signal_saw signal_saw ; -p_sin_cmplx sin_cmplx ; -p_sinc sinc ; -p_sine_int sine_int ; -p_sqrt_cmplx sqrt_cmplx ; -p_trapint trapint ; -p_trapint_cmplx trapint_cmplx ; -p_unwrap unwrap ; -p_vector_dot vector_dot ; -p_verif verif ; -p_verif_cmplx verif_cmplx ; -p_window window ; -p_writebin writebin ; -p_writetxt writetxt ; -p_writetxt_3d writetxt_3d ; -p_writetxt_3dline writetxt_3dline ; -p_writetxt_cmplx_im writetxt_cmplx_im ; -p_writetxt_cmplx_re writetxt_cmplx_re ; - - -#endif /* BUILD_LIB */ - - - - -#ifdef WIN_OS -#define LOAD_FUNC(fn) \ - fname = #fn;\ - fn = (p_##fn)GetProcAddress(handle, fname);\ - if(! fn) goto exit_label; -#endif - - - -#ifdef LINUX_OS -#define LOAD_FUNC(fn) \ - fname = #fn;\ - fn = (p_##fn)dlsym(handle, fname);\ - if ((error = dlerror()) != NULL) goto exit_label -#endif - - - - -void* dspl_load() -{ - char* fname; - #ifdef WIN_OS - HINSTANCE handle; - handle = LoadLibrary(TEXT("libdspl.dll")); - if (!handle) - { - printf("libdspl.dll loading ERROR!\n"); - return NULL; - } - #endif /* WIN_OS */ - - - #ifdef LINUX_OS - char* error; - void *handle; - /* open the *.so */ - handle = dlopen ("./libdspl.so", RTLD_LAZY); - if (!handle) - { - printf("libdspl.so loading ERROR!\n"); - return NULL; - } - #endif /* LINUX_OS */ - - LOAD_FUNC(acos_cmplx); - LOAD_FUNC(asin_cmplx); - LOAD_FUNC(bessel_i0); - LOAD_FUNC(bilinear); - LOAD_FUNC(butter_ap); - LOAD_FUNC(butter_ap_zp); - LOAD_FUNC(cheby_poly1); - LOAD_FUNC(cheby_poly2); - LOAD_FUNC(cheby1_ap); - LOAD_FUNC(cheby1_ap_zp); - LOAD_FUNC(cheby2_ap); - LOAD_FUNC(cheby2_ap_wp1); - LOAD_FUNC(cheby2_ap_zp); - LOAD_FUNC(cmplx2re); - LOAD_FUNC(concat); - LOAD_FUNC(conv); - LOAD_FUNC(conv_cmplx); - LOAD_FUNC(conv_fft); - LOAD_FUNC(conv_fft_cmplx); - LOAD_FUNC(cos_cmplx); - LOAD_FUNC(decimate); - LOAD_FUNC(decimate_cmplx); - LOAD_FUNC(dft); - LOAD_FUNC(dft_cmplx); - LOAD_FUNC(dmod); - LOAD_FUNC(dspl_info); - LOAD_FUNC(ellip_acd); - LOAD_FUNC(ellip_acd_cmplx); - LOAD_FUNC(ellip_ap); - LOAD_FUNC(ellip_ap_zp); - LOAD_FUNC(ellip_asn); - LOAD_FUNC(ellip_asn_cmplx); - LOAD_FUNC(ellip_cd); - LOAD_FUNC(ellip_cd_cmplx); - LOAD_FUNC(ellip_landen); - LOAD_FUNC(ellip_modulareq); - LOAD_FUNC(ellip_rat); - LOAD_FUNC(ellip_sn); - LOAD_FUNC(ellip_sn_cmplx); - LOAD_FUNC(farrow_lagrange); - LOAD_FUNC(farrow_spline); - LOAD_FUNC(fft); - LOAD_FUNC(fft_cmplx); - LOAD_FUNC(fft_create); - LOAD_FUNC(fft_free); - LOAD_FUNC(fft_mag); - LOAD_FUNC(fft_mag_cmplx); - LOAD_FUNC(fft_shift); - LOAD_FUNC(fft_shift_cmplx); - LOAD_FUNC(filter_freq_resp); - LOAD_FUNC(filter_iir); - LOAD_FUNC(filter_ws1); - LOAD_FUNC(filter_zp2ab); - LOAD_FUNC(find_max_abs); - LOAD_FUNC(fir_linphase); - LOAD_FUNC(flipip); - LOAD_FUNC(flipip_cmplx); - LOAD_FUNC(fourier_integral_cmplx); - LOAD_FUNC(fourier_series_dec); - LOAD_FUNC(fourier_series_dec_cmplx); - LOAD_FUNC(fourier_series_rec); - LOAD_FUNC(freqz); - LOAD_FUNC(freqs); - LOAD_FUNC(freqs_cmplx); - LOAD_FUNC(freqs2time); - LOAD_FUNC(goertzel); - LOAD_FUNC(goertzel_cmplx); - LOAD_FUNC(histogram); - LOAD_FUNC(histogram_norm); - LOAD_FUNC(idft_cmplx); - LOAD_FUNC(ifft_cmplx); - LOAD_FUNC(iir); - LOAD_FUNC(linspace); - LOAD_FUNC(log_cmplx); - LOAD_FUNC(logspace); - LOAD_FUNC(low2bp); - LOAD_FUNC(low2bs); - LOAD_FUNC(low2high); - LOAD_FUNC(low2low); - LOAD_FUNC(matrix_eig_cmplx); - LOAD_FUNC(matrix_eye); - LOAD_FUNC(matrix_eye_cmplx); - LOAD_FUNC(matrix_mul); - LOAD_FUNC(matrix_print); - LOAD_FUNC(matrix_print_cmplx); - LOAD_FUNC(matrix_transpose); - LOAD_FUNC(matrix_transpose_cmplx); - LOAD_FUNC(matrix_transpose_hermite); - LOAD_FUNC(minmax); - LOAD_FUNC(poly_z2a_cmplx); - LOAD_FUNC(polyval); - LOAD_FUNC(polyval_cmplx); - LOAD_FUNC(randn); - LOAD_FUNC(random_init); - LOAD_FUNC(randu); - LOAD_FUNC(ratcompos); - LOAD_FUNC(re2cmplx); - LOAD_FUNC(readbin); - LOAD_FUNC(signal_pimp); - LOAD_FUNC(signal_saw); - LOAD_FUNC(sin_cmplx); - LOAD_FUNC(sinc); - LOAD_FUNC(sine_int); - LOAD_FUNC(sqrt_cmplx); - LOAD_FUNC(trapint); - LOAD_FUNC(trapint_cmplx); - LOAD_FUNC(unwrap); - LOAD_FUNC(vector_dot); - LOAD_FUNC(verif); - LOAD_FUNC(verif_cmplx); - LOAD_FUNC(window); - LOAD_FUNC(writebin); - LOAD_FUNC(writetxt); - LOAD_FUNC(writetxt_3d); - LOAD_FUNC(writetxt_3dline); - LOAD_FUNC(writetxt_cmplx_im); - LOAD_FUNC(writetxt_cmplx_re); - - #ifdef WIN_OS - return (void*)handle; - exit_label: - printf("function %s loading ERROR!\n", fname); - if(handle) - FreeLibrary(handle); - return NULL; - #endif /* WIN_OS */ - - - #ifdef LINUX_OS - return handle; - exit_label: - printf("function %s loading ERROR!\n", fname); - if(handle) - dlclose(handle); - return NULL; - #endif /* LINUX_OS */ -} - - - - - - - -void dspl_free(void* handle) -{ - #ifdef WIN_OS - FreeLibrary((HINSTANCE)handle); - #endif /* WIN_OS */ - - #ifdef LINUX_OS - dlclose(handle); - #endif /* LINUX_OS */ - -} - diff --git a/release/include/dspl.h b/release/include/dspl.h deleted file mode 100644 index 7f93dfb..0000000 --- a/release/include/dspl.h +++ /dev/null @@ -1,935 +0,0 @@ -/* -* Copyright (c) 2015-2019 Sergey Bakhurin -* Digital Signal Processing Library [http://dsplib.org] -* -* This file is part of libdspl-2.0. -* -* is free software: you can redistribute it and/or modify -* it under the terms of the GNU Lesser General Public License as published by -* the Free Software Foundation, either version 3 of the License, or -* (at your option) any later version. -* -* DSPL is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU Lesser General Public License -* along with Foobar. If not, see . -*/ - - -#ifndef DSPL_H -#define DSPL_H - - - -#include - - -/* math const definition */ -#ifndef M_PI - #define M_PI 3.1415926535897932384626433832795 -#endif - -#ifndef M_2PI - #define M_2PI 6.283185307179586476925286766559 -#endif - - - -typedef double complex_t[2]; - - - - -typedef struct -{ - complex_t* w; - complex_t* t0; - complex_t* t1; - int n; -} fft_t; - - -#define RAND_TYPE_MRG32K3A 0x00000001 -#define RAND_TYPE_MT19937 0x00000002 - -#define RAND_MT19937_NN 312 -typedef struct -{ - - double mrg32k3a_seed; - double mrg32k3a_x[3]; - double mrg32k3a_y[3]; - - /* The array for the MT19937 state vector */ - unsigned long long mt19937_mt[RAND_MT19937_NN]; - int mt19937_mti; - - int type; - -}random_t; - - - - -#define RE(x) (x[0]) -#define IM(x) (x[1]) - - -#define SQR(x) ((x) * (x)) -#define ABSSQR(x) ((SQR(RE(x))) + (SQR(IM(x)))) -#define ABS(x) sqrt((ABSSQR(x))) -#define ARG(x) atan2(IM(x), RE(x)) - -#define CMRE(a,b) ((RE(a)) * (RE(b)) - (IM(a)) * (IM(b))) -#define CMIM(a,b) ((RE(a)) * (IM(b)) + (IM(a)) * (RE(b))) - -#define CMCONJRE(a, b) ((RE(a)) * (RE(b)) + (IM(a)) * (IM(b))) -#define CMCONJIM(a, b) ((IM(a)) * (RE(b)) - (RE(a)) * (IM(b))) - - - -#define RES_OK 0 - -/* Error codes */ -/* A 0x01xxxxxx*/ -/* B 0x02xxxxxx*/ -/* C 0x03xxxxxx*/ -/* D 0x04xxxxxx*/ -#define ERROR_DAT_TYPE 0x04012020 -#define ERROR_DIV_ZERO 0x04102226 -/* E 0x05xxxxxx*/ -#define ERROR_ELLIP_MODULE 0x05121315 -/* F 0x06xxxxxx*/ -#define ERROR_FFT_CREATE 0x06060318 -#define ERROR_FFT_SIZE 0x06062021 -#define ERROR_FILTER_A0 0x06090100 -#define ERROR_FILTER_APPROX 0x06090116 -#define ERROR_FILTER_FT 0x06090620 -#define ERROR_FILTER_ORD 0x06091518 -#define ERROR_FILTER_ORD_BP 0x06091519 -#define ERROR_FILTER_RP 0x06091816 -#define ERROR_FILTER_RS 0x06091819 -#define ERROR_FILTER_TYPE 0x06092025 -#define ERROR_FILTER_WP 0x06092316 -#define ERROR_FILTER_WS 0x06092319 -#define ERROR_FNAME 0x06140113 -#define ERROR_FOPEN 0x06151605 -#define ERROR_FREAD_SIZE 0x06180501 -#define ERROR_FWRITE_SIZE 0x06231820 -/* G 0x07xxxxxx*/ -/* H 0x08xxxxxx*/ -/* I 0x09xxxxxx*/ -#define ERROR_INC_SIZE 0x09140319 -/* J 0x10xxxxxx*/ -/* K 0x11xxxxxx*/ -/* L 0x12xxxxxx*/ -#define ERROR_LAPACK 0x12011601 -/* M 0x13xxxxxx*/ -#define ERROR_MATRIX_INDEX 0x13010914 -#define ERROR_MATRIX_SINGULAR 0x13011914 -#define ERROR_MATRIX_SIZE 0x13011926 -/* N 0x14xxxxxx*/ -#define ERROR_NEGATIVE 0x14050701 -/* O 0x15xxxxxx*/ -/* P 0x16xxxxxx*/ -#define ERROR_POLY_ORD 0x16151518 -#define ERROR_PTR 0x16201800 -/* Q 0x17xxxxxx*/ -/* R 0x18xxxxxx*/ -#define ERROR_RAND_SIGMA 0x18011909 -#define ERROR_RAND_TYPE 0x18012009 -#define ERROR_RESAMPLE_RATIO 0x18051801 -#define ERROR_RESAMPLE_FRAC_DELAY 0x18050604 -/* S 0x19xxxxxx*/ -#define ERROR_SIZE 0x19092605 -#define ERROR_SYM_TYPE 0x19251320 -/* T 0x20xxxxxx*/ -/* U 0x21xxxxxx*/ -#define ERROR_UNWRAP 0x21142318 -/* V 0x22xxxxxx*/ -/* W 0x23xxxxxx*/ -#define ERROR_WIN_PARAM 0x23091601 -#define ERROR_WIN_SYM 0x23091925 -#define ERROR_WIN_TYPE 0x23092025 -/* X 0x24xxxxxx*/ -/* Y 0x25xxxxxx*/ -/* Z 0x26xxxxxx*/ - -#define DAT_MASK 0x00000001 -#define DAT_DOUBLE 0x00000000 -#define DAT_COMPLEX 0x00000001 - -#define DSPL_MATRIX_BLOCK 32 - - -#define DSPL_SYMMETRIC 0x00000000 -#define DSPL_PERIODIC 0x00000001 - -#define DSPL_FLAG_DIGITAL 0x00000000 -#define DSPL_FLAG_ANALOG 0x00000001 -#define DSPL_FLAG_LOGMAG 0x00000002 -#define DSPL_FLAG_UNWRAP 0x00000004 -#define DSPL_FLAG_FFT_SHIFT 0x00000008 - - - -#define DSPL_WIN_SYM_MASK 0x00000001 -#define DSPL_WIN_MASK 0x00FFFFFE - -#define DSPL_WIN_SYMMETRIC DSPL_SYMMETRIC -#define DSPL_WIN_PERIODIC DSPL_PERIODIC - - -#define DSPL_WIN_BARTLETT 0x00000004 -#define DSPL_WIN_BARTLETT_HANN 0x00000008 -#define DSPL_WIN_BLACKMAN 0x00000010 -#define DSPL_WIN_BLACKMAN_HARRIS 0x00000040 -#define DSPL_WIN_BLACKMAN_NUTTALL 0x00000080 -#define DSPL_WIN_FLAT_TOP 0x00000100 -#define DSPL_WIN_GAUSSIAN 0x00000400 -#define DSPL_WIN_HAMMING 0x00000800 -#define DSPL_WIN_HANN 0x00001000 -#define DSPL_WIN_LANCZOS 0x00004000 -#define DSPL_WIN_NUTTALL 0x00008000 -#define DSPL_WIN_RECT 0x00010000 -#define DSPL_WIN_COS 0x00040000 -#define DSPL_WIN_CHEBY 0x00080000 -#define DSPL_WIN_KAISER 0x00100000 - - -#define DSPL_FILTER_TYPE_MASK 0x000000FF -#define DSPL_FILTER_LPF 0x00000001 -#define DSPL_FILTER_HPF 0x00000002 -#define DSPL_FILTER_BPASS 0x00000004 -#define DSPL_FILTER_BSTOP 0x00000008 - -#define DSPL_FILTER_APPROX_MASK 0x0000FF00 -#define DSPL_FILTER_BUTTER 0x00000100 -#define DSPL_FILTER_CHEBY1 0x00000200 -#define DSPL_FILTER_CHEBY2 0x00000400 -#define DSPL_FILTER_ELLIP 0x00000800 - - - -#define ELLIP_ITER 16 -#define ELLIP_MAX_ORD 24 - -#define DSPL_VERIF_FAILED 1 -#define DSPL_VERIF_SUCCESS 0 - -#ifdef __cplusplus - extern "C" { -#endif - - - -#ifdef BUILD_LIB - /* Declare DSPL_API for Windows OS */ - #ifdef WIN_OS - #define DSPL_API __declspec(dllexport) - #endif /* WIN_OS */ - /* Declare DSPL_API for LINUX OS */ - #ifdef LINUX_OS - #define DSPL_API - #endif /* LINUX_OS */ -#endif /* BUILD_DLL */ - -#define COMMA , - - -#ifdef BUILD_LIB - #define DECLARE_FUNC(type, fn, param)\ - type DSPL_API fn(param); -#endif - -#ifndef BUILD_LIB - #define DECLARE_FUNC( type, fn, param)\ - typedef type (*p_##fn)(param);\ - extern p_##fn fn; - -#endif - - -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, acos_cmplx, complex_t* - COMMA int - COMMA complex_t*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, asin_cmplx, complex_t* - COMMA int - COMMA complex_t*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, bessel_i0, double* x - COMMA int n - COMMA double* y); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, bilinear, double* bs - COMMA double* as - COMMA int ord - COMMA double* bz - COMMA double* az); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, butter_ap, double - COMMA int - COMMA double* - COMMA double*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, butter_ap_zp, int - COMMA double - COMMA complex_t* - COMMA int* - COMMA complex_t* - COMMA int*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, cheby_poly1, double* - COMMA int - COMMA int - COMMA double*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, cheby_poly2, double* - COMMA int - COMMA int - COMMA double*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, cheby1_ap, double - COMMA int - COMMA double* - COMMA double*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, cheby1_ap_zp, int - COMMA double - COMMA complex_t* - COMMA int* - COMMA complex_t* - COMMA int*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, cheby2_ap, double rs - COMMA int ord - COMMA double* b - COMMA double* a); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, cheby2_ap_wp1, double rp - COMMA double rs - COMMA int ord - COMMA double* b - COMMA double* a); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, cheby2_ap_zp, int - COMMA double - COMMA complex_t* - COMMA int* - COMMA complex_t* - COMMA int*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, cmplx2re, complex_t* - COMMA int - COMMA double* - COMMA double*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, concat, void* - COMMA size_t - COMMA void* - COMMA size_t - COMMA void*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, conv, double* - COMMA int - COMMA double* - COMMA int - COMMA double*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, conv_cmplx, complex_t* - COMMA int - COMMA complex_t* - COMMA int - COMMA complex_t*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, conv_fft, double* a - COMMA int na - COMMA double* b - COMMA int nb - COMMA fft_t* pfft - COMMA int nfft - COMMA double* c); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, conv_fft_cmplx, complex_t* a - COMMA int na - COMMA complex_t* b - COMMA int nb - COMMA fft_t* pfft - COMMA int nfft - COMMA complex_t* c); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, cos_cmplx, complex_t* - COMMA int - COMMA complex_t*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, decimate, double* x - COMMA int n - COMMA int d - COMMA double* y - COMMA int* cnt); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, decimate_cmplx, complex_t* x - COMMA int n - COMMA int d - COMMA complex_t* y - COMMA int* cnt); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, dft, double* - COMMA int - COMMA complex_t*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, dft_cmplx, complex_t* - COMMA int - COMMA complex_t*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(double, dmod, double - COMMA double); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(void, dspl_info, void); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, ellip_acd, double* w - COMMA int n - COMMA double k - COMMA double* u); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, ellip_acd_cmplx, complex_t* w - COMMA int n - COMMA double k - COMMA complex_t* u); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, ellip_ap, double rp - COMMA double rs - COMMA int ord - COMMA double* b - COMMA double* a); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, ellip_ap_zp, int ord - COMMA double rp - COMMA double rs - COMMA complex_t* z - COMMA int* nz - COMMA complex_t* p - COMMA int* np); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, ellip_asn, double* w - COMMA int n - COMMA double k - COMMA double* u); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, ellip_asn_cmplx, complex_t* w - COMMA int n - COMMA double k - COMMA complex_t* u); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, ellip_cd, double* u - COMMA int n - COMMA double k - COMMA double* y); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, ellip_cd_cmplx, complex_t* u - COMMA int n - COMMA double k - COMMA complex_t* y); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, ellip_landen, double k - COMMA int n - COMMA double* y); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, ellip_modulareq, double rp - COMMA double rs - COMMA int ord - COMMA double* k); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, ellip_rat, double* w - COMMA int n - COMMA int ord - COMMA double k - COMMA double* u); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, ellip_sn, double* u - COMMA int n - COMMA double k - COMMA double* y); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, ellip_sn_cmplx, complex_t* u - COMMA int n - COMMA double k - COMMA complex_t* y); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, farrow_lagrange, double* - COMMA int - COMMA double - COMMA double - COMMA double - COMMA double** - COMMA int*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, farrow_spline, double* - COMMA int - COMMA double - COMMA double - COMMA double - COMMA double** - COMMA int*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, fft, double* - COMMA int - COMMA fft_t* - COMMA complex_t* ); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, fft_cmplx, complex_t* - COMMA int - COMMA fft_t* - COMMA complex_t* ); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, fft_create, fft_t* - COMMA int); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(void, fft_free, fft_t*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, fft_mag, double* x - COMMA int n - COMMA fft_t* pfft - COMMA double fs - COMMA int flag - COMMA double* mag - COMMA double* freq); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, fft_mag_cmplx, complex_t* x - COMMA int n - COMMA fft_t* pfft - COMMA double fs - COMMA int flag - COMMA double* mag - COMMA double* freq); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, fft_shift, double* - COMMA int n - COMMA double*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, fft_shift_cmplx, complex_t* - COMMA int - COMMA complex_t*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, filter_freq_resp, double* b - COMMA double* a - COMMA int ord - COMMA double* w - COMMA int n - COMMA int flag - COMMA double* mag - COMMA double* phi - COMMA double* tau); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, filter_iir, double* - COMMA double* - COMMA int - COMMA double* - COMMA int - COMMA double*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(double, filter_ws1, int ord - COMMA double rp - COMMA double rs - COMMA int type); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, filter_zp2ab, complex_t* - COMMA int - COMMA complex_t* - COMMA int - COMMA int - COMMA double* - COMMA double*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, find_max_abs, double* a - COMMA int n - COMMA double* m - COMMA int* ind); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, fir_linphase, int ord - COMMA double w0 - COMMA double w1 - COMMA int filter_type - COMMA int wintype - COMMA double winparam - COMMA double* h); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, flipip, double* - COMMA int); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, flipip_cmplx, complex_t* - COMMA int); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, fourier_integral_cmplx, double* t - COMMA complex_t* s - COMMA int nt - COMMA int nw - COMMA double* w - COMMA complex_t* y); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, fourier_series_dec, double* - COMMA double* - COMMA int - COMMA double - COMMA int - COMMA double* - COMMA complex_t*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, fourier_series_dec_cmplx, double* t - COMMA complex_t* s - COMMA int nt - COMMA double period - COMMA int nw - COMMA double* w - COMMA complex_t* y); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, fourier_series_rec, double* - COMMA complex_t* - COMMA int - COMMA double* - COMMA int - COMMA complex_t*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, freqs, double* - COMMA double* - COMMA int - COMMA double* - COMMA int - COMMA complex_t*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, freqs_cmplx, double* b - COMMA double* a - COMMA int ord - COMMA complex_t* s - COMMA int n - COMMA complex_t* h); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, freqs2time, double* - COMMA double* - COMMA int - COMMA double - COMMA int - COMMA fft_t* - COMMA double* - COMMA double*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, freqz, double* - COMMA double* - COMMA int - COMMA double* - COMMA int - COMMA complex_t*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, goertzel, double* - COMMA int - COMMA int* - COMMA int - COMMA complex_t*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, goertzel_cmplx, complex_t* - COMMA int - COMMA int* - COMMA int - COMMA complex_t*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, histogram, double* x - COMMA int n - COMMA int nh - COMMA double* pedges - COMMA double* ph); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, histogram_norm, double* y - COMMA int n - COMMA int nh - COMMA double* x - COMMA double* w); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, idft_cmplx, complex_t* - COMMA int - COMMA complex_t*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, ifft_cmplx, complex_t* - COMMA int - COMMA fft_t* - COMMA complex_t* ); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, iir, double rp - COMMA double rs - COMMA int ord - COMMA double w0 - COMMA double w1 - COMMA int type - COMMA double* b - COMMA double* a); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, linspace, double - COMMA double - COMMA int - COMMA int - COMMA double*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, log_cmplx, complex_t* - COMMA int - COMMA complex_t*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, logspace, double - COMMA double - COMMA int - COMMA int - COMMA double*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, low2bp, double* b - COMMA double* a - COMMA int ord - COMMA double w0 - COMMA double wpl - COMMA double wph - COMMA double* beta - COMMA double* alpha); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, low2bs, double* b - COMMA double* a - COMMA int ord - COMMA double w0 - COMMA double wsl - COMMA double wsh - COMMA double* beta - COMMA double* alpha); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, low2high, double* b - COMMA double* a - COMMA int ord - COMMA double w0 - COMMA double w1 - COMMA double* beta - COMMA double* alpha); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, low2low, double* b - COMMA double* a - COMMA int ord - COMMA double w0 - COMMA double w1 - COMMA double* beta - COMMA double* alpha); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, matrix_eig_cmplx, complex_t* a - COMMA int n - COMMA complex_t* v - COMMA int* info); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, matrix_eye, double* a - COMMA int n - COMMA int m); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, matrix_eye_cmplx, complex_t* a - COMMA int n - COMMA int m); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, matrix_mul, double* a - COMMA int na - COMMA int ma - COMMA double* b - COMMA int nb - COMMA int mb - COMMA double* c); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, matrix_print, double* a - COMMA int n - COMMA int m - COMMA const char* name - COMMA const char* format); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, matrix_print_cmplx, complex_t* a - COMMA int n - COMMA int m - COMMA const char* name - COMMA const char* format); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, matrix_transpose, double* a - COMMA int n - COMMA int m - COMMA double* b); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, matrix_transpose_cmplx, complex_t* a - COMMA int n - COMMA int m - COMMA complex_t* b); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, matrix_transpose_hermite, complex_t* a - COMMA int n - COMMA int m - COMMA complex_t* b); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, minmax, double* x - COMMA int n - COMMA double* xmin - COMMA double* xmax); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, poly_z2a_cmplx, complex_t* - COMMA int - COMMA int - COMMA complex_t*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, polyval, double* - COMMA int - COMMA double* - COMMA int - COMMA double*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, polyval_cmplx, complex_t* - COMMA int - COMMA complex_t* - COMMA int - COMMA complex_t*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, randn, double* - COMMA int - COMMA double - COMMA double - COMMA random_t* prnd); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, random_init, random_t* prnd - COMMA int type); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, randu, double* - COMMA int - COMMA random_t* prnd); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, ratcompos, double* b - COMMA double* a - COMMA int n - COMMA double* c - COMMA double* d - COMMA int p - COMMA double* beta - COMMA double* alpha); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, re2cmplx, double* - COMMA int - COMMA complex_t*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, readbin, char* fn - COMMA void** x - COMMA int* k - COMMA int* dtype); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, signal_pimp, double* - COMMA size_t - COMMA double - COMMA double - COMMA double - COMMA double - COMMA double*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, signal_saw, double* t - COMMA size_t n - COMMA double amp - COMMA double dt - COMMA double period - COMMA double* y); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, sin_cmplx, complex_t* - COMMA int - COMMA complex_t*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, sinc, double* x - COMMA int n - COMMA double a - COMMA double* y); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, sine_int, double* x - COMMA int n - COMMA double* si); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, sqrt_cmplx, complex_t* - COMMA int - COMMA complex_t*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, trapint, double* - COMMA double* - COMMA int - COMMA double*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, trapint_cmplx, double* - COMMA complex_t* - COMMA int - COMMA complex_t*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, unwrap, double* - COMMA int - COMMA double - COMMA double); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, vector_dot, double* x - COMMA double* y - COMMA int n - COMMA double* p); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, verif, double* x - COMMA double* y - COMMA size_t n - COMMA double eps - COMMA double* err); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, verif_cmplx, complex_t* x - COMMA complex_t* y - COMMA size_t n - COMMA double eps - COMMA double* err); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, window, double* w - COMMA int n - COMMA int win_type - COMMA double param); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, writebin, void* - COMMA int - COMMA int - COMMA char*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, writetxt, double* - COMMA double* - COMMA int - COMMA char*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, writetxt_3d, double* x - COMMA int nx - COMMA double* y - COMMA int ny - COMMA double* z - COMMA char* fn); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, writetxt_3dline, double* x - COMMA double* y - COMMA double* z - COMMA int n - COMMA char* fn); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, writetxt_cmplx_im, double* - COMMA complex_t* - COMMA int - COMMA char*); -/*----------------------------------------------------------------------------*/ -DECLARE_FUNC(int, writetxt_cmplx_re, double* - COMMA complex_t* - COMMA int - COMMA char*); -/*----------------------------------------------------------------------------*/ - -#ifdef __cplusplus - } -#endif - - -void* dspl_load(); -void dspl_free(void* handle); - - - -#endif /* DSPL_H */ - diff --git a/release/lib/.gitignore b/release/lib/.gitignore deleted file mode 100644 index e69de29..0000000 diff --git a/verif/.gitignore b/verif/.gitignore deleted file mode 100644 index 8f3d17a..0000000 --- a/verif/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -*.exe -*.so -*.dll -*.exp -*.ipdb -*.pdb -*.iobj -*.lib diff --git a/verif/bin/.gitignore b/verif/bin/.gitignore deleted file mode 100644 index 8f3d17a..0000000 --- a/verif/bin/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -*.exe -*.so -*.dll -*.exp -*.ipdb -*.pdb -*.iobj -*.lib diff --git a/verif/bin/dat/.gitignore b/verif/bin/dat/.gitignore deleted file mode 100644 index e8f3572..0000000 --- a/verif/bin/dat/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -*.dat -*.txt -*.exe -*.so -*.dll -*.exp -*.ipdb -*.pdb -*.iobj -*.lib diff --git a/verif/bin/octave/functions/dspl_readbin.m b/verif/bin/octave/functions/dspl_readbin.m deleted file mode 100644 index 4946e6a..0000000 --- a/verif/bin/octave/functions/dspl_readbin.m +++ /dev/null @@ -1,23 +0,0 @@ -function [dat, n, m] = dspl_readbin(fn) - -fid = fopen(fn); -if(~fid) - error('cannot to open file'); -end -type = fread(fid, 1, 'int32'); -n = fread(fid, 1, 'int32'); -m = fread(fid, 1, 'int32'); - -if(type==0) - dat = fread(fid, [n*m, 1], 'double'); - dat = reshape(dat, n, m); -end -if(type==1) - dat = fread(fid, [n*m*2, 1], 'double'); - dat = dat(1:2:end) + 1i * dat(2:2:end); - dat = reshape(dat, n, m); -end - -fclose(fid); - -end diff --git a/verif/bin/octave/functions/dspl_writebin.m b/verif/bin/octave/functions/dspl_writebin.m deleted file mode 100644 index f3ac827..0000000 --- a/verif/bin/octave/functions/dspl_writebin.m +++ /dev/null @@ -1,35 +0,0 @@ -function dspl_writebin(dat, fn) - -fid = fopen(fn, 'w'); -if(~fid) - error('cannot to open file'); -end -if(isreal (dat)) - type = 0; -else - type = 1; -end - -n = size(dat,1); -m = size(dat,2); - -fwrite (fid, type, 'int32'); -fwrite (fid, n, 'int32'); -fwrite (fid, m, 'int32'); - -if(type==0) - dat = reshape(dat, n*m, 1); - fwrite (fid, dat, 'double'); -end -if(type==1) - y = zeros(2*n*m, 1); - dat = reshape(dat, n*m, 1); - y(1:2:end) = real(dat); - y(2:2:end) = imag(dat); - - fwrite (fid, y, 'double'); -end - -fclose(fid); - -end diff --git a/verif/bin/octave/readbin_verif.m b/verif/bin/octave/readbin_verif.m deleted file mode 100644 index cbe8f78..0000000 --- a/verif/bin/octave/readbin_verif.m +++ /dev/null @@ -1,6 +0,0 @@ -clear all; close all; clc; -addpath('octave/functions'); - -x = dspl_readbin('dat/in.dat'); - -dspl_writebin(x, 'dat/out.dat'); diff --git a/verif/obj/.gitignore b/verif/obj/.gitignore deleted file mode 100644 index 8f3d17a..0000000 --- a/verif/obj/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -*.exe -*.so -*.dll -*.exp -*.ipdb -*.pdb -*.iobj -*.lib diff --git a/verif/src/readbin_verif.c b/verif/src/readbin_verif.c deleted file mode 100644 index 4c067ec..0000000 --- a/verif/src/readbin_verif.c +++ /dev/null @@ -1,58 +0,0 @@ -#include -#include -#include -#include "dspl.h" - -#define N 10 -int main() -{ - void* handle; // DSPL handle - handle = dspl_load(); // Load DSPL function - - - double *xr = NULL, *yr = NULL; - complex_t *xc = NULL, *yc = NULL; - double err; - int vr; - xr = (double*) malloc(N * sizeof(double)); - xc = (complex_t*) malloc(N * sizeof(complex_t)); - - random_t rnd; - random_init(&rnd, RAND_TYPE_MT19937); - - randn(xr, N, 0, 1.0, &rnd); - randn((double*)xc, 2*N, 0, 1.0,&rnd); - - - writebin(xr, N, DAT_DOUBLE, "dat/in.dat"); - system("octave octave/readbin_verif.m"); - readbin("dat/out.dat", (void**)&yr, NULL, NULL); - - vr = verif(xr, yr, N, 1E-12, &err); - if(vr == DSPL_VERIF_SUCCESS) - printf("readbin real verification OK: %12.4e\n", err); - else - printf("readbin real verification ERROR: %12.4e\n", err); - - - writebin(xc, N, DAT_COMPLEX, "dat/in.dat"); - system("octave octave/readbin_verif.m"); - readbin("dat/out.dat", (void**)&yc, NULL, NULL); - - - vr = verif_cmplx(xc, yc, N, 1E-12, &err); - if(vr == DSPL_VERIF_SUCCESS) - printf("readbin cmplx verification OK: %12.4e\n", err); - else - printf("readbin cmplx verification ERROR: %12.4e\n", err); - - dspl_free(handle); // free dspl handle - - if(xr) free(xr); - if(xc) free(xc); - if(yr) free(yr); - if(yc) free(yc); - return 0; -} - -