| @@ -106,7 +106,7 @@ set(SLASRC | |||||
| slatbs.f slatdf.f slatps.f slatrd.f slatrs.f slatrz.f | slatbs.f slatdf.f slatps.f slatrd.f slatrs.f slatrz.f | ||||
| slauu2.f slauum.f sopgtr.f sopmtr.f sorg2l.f sorg2r.f | slauu2.f slauum.f sopgtr.f sopmtr.f sorg2l.f sorg2r.f | ||||
| sorgbr.f sorghr.f sorgl2.f sorglq.f sorgql.f sorgqr.f sorgr2.f | sorgbr.f sorghr.f sorgl2.f sorglq.f sorgql.f sorgqr.f sorgr2.f | ||||
| sorgrq.f sorgtr.f sorm2l.f sorm2r.f sorm22.f | |||||
| sorgrq.f sorgtr.f sorgtsqr.f sorm2l.f sorm2r.f sorm22.f | |||||
| sormbr.f sormhr.f sorml2.f sormlq.f sormql.f sormqr.f sormr2.f | sormbr.f sormhr.f sorml2.f sormlq.f sormql.f sormqr.f sormr2.f | ||||
| sormr3.f sormrq.f sormrz.f sormtr.f spbcon.f spbequ.f spbrfs.f | sormr3.f sormrq.f sormrz.f sormtr.f spbcon.f spbequ.f spbrfs.f | ||||
| spbstf.f spbsv.f spbsvx.f | spbstf.f spbsv.f spbsvx.f | ||||
| @@ -148,9 +148,11 @@ set(SLASRC | |||||
| sgetsls.f sgeqr.f slatsqr.f slamtsqr.f sgemqr.f | sgetsls.f sgeqr.f slatsqr.f slamtsqr.f sgemqr.f | ||||
| sgelq.f slaswlq.f slamswlq.f sgemlq.f | sgelq.f slaswlq.f slamswlq.f sgemlq.f | ||||
| stplqt.f stplqt2.f stpmlqt.f | stplqt.f stplqt2.f stpmlqt.f | ||||
| sorhr_col.f slaorhr_col_getrfnp.f slaorhr_col_getrfnp2.f | |||||
| ssytrd_2stage.f ssytrd_sy2sb.f ssytrd_sb2st.F ssb2st_kernels.f | ssytrd_2stage.f ssytrd_sy2sb.f ssytrd_sb2st.F ssb2st_kernels.f | ||||
| ssyevd_2stage.f ssyev_2stage.f ssyevx_2stage.f ssyevr_2stage.f | ssyevd_2stage.f ssyev_2stage.f ssyevx_2stage.f ssyevr_2stage.f | ||||
| ssbev_2stage.f ssbevx_2stage.f ssbevd_2stage.f ssygv_2stage.f) | |||||
| ssbev_2stage.f ssbevx_2stage.f ssbevd_2stage.f ssygv_2stage.f | |||||
| sgesvdq.f scombssq.f) | |||||
| set(DSLASRC spotrs.f sgetrs.f spotrf.f sgetrf.f) | set(DSLASRC spotrs.f sgetrs.f spotrf.f sgetrf.f) | ||||
| @@ -233,7 +235,7 @@ set(CLASRC | |||||
| ctptrs.f ctrcon.f ctrevc.f ctrevc3.f ctrexc.f ctrrfs.f ctrsen.f ctrsna.f | ctptrs.f ctrcon.f ctrevc.f ctrevc3.f ctrexc.f ctrrfs.f ctrsen.f ctrsna.f | ||||
| ctrsyl.f ctrti2.f ctrtri.f ctrtrs.f ctzrzf.f cung2l.f cung2r.f | ctrsyl.f ctrti2.f ctrtri.f ctrtrs.f ctzrzf.f cung2l.f cung2r.f | ||||
| cungbr.f cunghr.f cungl2.f cunglq.f cungql.f cungqr.f cungr2.f | cungbr.f cunghr.f cungl2.f cunglq.f cungql.f cungqr.f cungr2.f | ||||
| cungrq.f cungtr.f cunm2l.f cunm2r.f cunmbr.f cunmhr.f cunml2.f cunm22.f | |||||
| cungrq.f cungtr.f cungtsqr.f cunm2l.f cunm2r.f cunmbr.f cunmhr.f cunml2.f cunm22.f | |||||
| cunmlq.f cunmql.f cunmqr.f cunmr2.f cunmr3.f cunmrq.f cunmrz.f | cunmlq.f cunmql.f cunmqr.f cunmr2.f cunmr3.f cunmrq.f cunmrz.f | ||||
| cunmtr.f cupgtr.f cupmtr.f icmax1.f scsum1.f cstemr.f | cunmtr.f cupgtr.f cupmtr.f icmax1.f scsum1.f cstemr.f | ||||
| chfrk.f ctfttp.f clanhf.f cpftrf.f cpftri.f cpftrs.f ctfsm.f ctftri.f | chfrk.f ctfttp.f clanhf.f cpftrf.f cpftri.f cpftrs.f ctfsm.f ctftri.f | ||||
| @@ -247,9 +249,11 @@ set(CLASRC | |||||
| cgetsls.f cgeqr.f clatsqr.f clamtsqr.f cgemqr.f | cgetsls.f cgeqr.f clatsqr.f clamtsqr.f cgemqr.f | ||||
| cgelq.f claswlq.f clamswlq.f cgemlq.f | cgelq.f claswlq.f clamswlq.f cgemlq.f | ||||
| ctplqt.f ctplqt2.f ctpmlqt.f | ctplqt.f ctplqt2.f ctpmlqt.f | ||||
| cunhr_col.f claunhr_col_getrfnp.f claunhr_col_getrfnp2.f | |||||
| chetrd_2stage.f chetrd_he2hb.f chetrd_hb2st.F chb2st_kernels.f | chetrd_2stage.f chetrd_he2hb.f chetrd_hb2st.F chb2st_kernels.f | ||||
| cheevd_2stage.f cheev_2stage.f cheevx_2stage.f cheevr_2stage.f | cheevd_2stage.f cheev_2stage.f cheevx_2stage.f cheevr_2stage.f | ||||
| chbev_2stage.f chbevx_2stage.f chbevd_2stage.f chegv_2stage.f) | |||||
| chbev_2stage.f chbevx_2stage.f chbevd_2stage.f chegv_2stage.f | |||||
| cgesvdq.f) | |||||
| set(CXLASRC cgesvxx.f cgerfsx.f cla_gerfsx_extended.f cla_geamv.f | set(CXLASRC cgesvxx.f cgerfsx.f cla_gerfsx_extended.f cla_geamv.f | ||||
| cla_gercond_c.f cla_gercond_x.f cla_gerpvgrw.f | cla_gercond_c.f cla_gercond_x.f cla_gerpvgrw.f | ||||
| @@ -295,7 +299,7 @@ set(DLASRC | |||||
| dlatbs.f dlatdf.f dlatps.f dlatrd.f dlatrs.f dlatrz.f dlauu2.f | dlatbs.f dlatdf.f dlatps.f dlatrd.f dlatrs.f dlatrz.f dlauu2.f | ||||
| dlauum.f dopgtr.f dopmtr.f dorg2l.f dorg2r.f | dlauum.f dopgtr.f dopmtr.f dorg2l.f dorg2r.f | ||||
| dorgbr.f dorghr.f dorgl2.f dorglq.f dorgql.f dorgqr.f dorgr2.f | dorgbr.f dorghr.f dorgl2.f dorglq.f dorgql.f dorgqr.f dorgr2.f | ||||
| dorgrq.f dorgtr.f dorm2l.f dorm2r.f dorm22.f | |||||
| dorgrq.f dorgtr.f dorgtsqr.f dorm2l.f dorm2r.f dorm22.f | |||||
| dormbr.f dormhr.f dorml2.f dormlq.f dormql.f dormqr.f dormr2.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 | dormr3.f dormrq.f dormrz.f dormtr.f dpbcon.f dpbequ.f dpbrfs.f | ||||
| dpbstf.f dpbsv.f dpbsvx.f | dpbstf.f dpbsv.f dpbsvx.f | ||||
| @@ -339,9 +343,11 @@ set(DLASRC | |||||
| dgetsls.f dgeqr.f dlatsqr.f dlamtsqr.f dgemqr.f | dgetsls.f dgeqr.f dlatsqr.f dlamtsqr.f dgemqr.f | ||||
| dgelq.f dlaswlq.f dlamswlq.f dgemlq.f | dgelq.f dlaswlq.f dlamswlq.f dgemlq.f | ||||
| dtplqt.f dtplqt2.f dtpmlqt.f | dtplqt.f dtplqt2.f dtpmlqt.f | ||||
| dorhr_col.f dlaorhr_col_getrfnp.f dlaorhr_col_getrfnp2.f | |||||
| dsytrd_2stage.f dsytrd_sy2sb.f dsytrd_sb2st.F dsb2st_kernels.f | dsytrd_2stage.f dsytrd_sy2sb.f dsytrd_sb2st.F dsb2st_kernels.f | ||||
| dsyevd_2stage.f dsyev_2stage.f dsyevx_2stage.f dsyevr_2stage.f | dsyevd_2stage.f dsyev_2stage.f dsyevx_2stage.f dsyevr_2stage.f | ||||
| dsbev_2stage.f dsbevx_2stage.f dsbevd_2stage.f dsygv_2stage.f) | |||||
| dsbev_2stage.f dsbevx_2stage.f dsbevd_2stage.f dsygv_2stage.f | |||||
| dgesvdq.f dcombssq.f) | |||||
| set(DXLASRC dgesvxx.f dgerfsx.f dla_gerfsx_extended.f dla_geamv.f | set(DXLASRC dgesvxx.f dgerfsx.f dla_gerfsx_extended.f dla_geamv.f | ||||
| dla_gercond.f dla_gerpvgrw.f dsysvxx.f dsyrfsx.f | dla_gercond.f dla_gerpvgrw.f dsysvxx.f dsyrfsx.f | ||||
| @@ -424,7 +430,7 @@ set(ZLASRC | |||||
| ztptrs.f ztrcon.f ztrevc.f ztrevc3.f ztrexc.f ztrrfs.f ztrsen.f ztrsna.f | ztptrs.f ztrcon.f ztrevc.f ztrevc3.f ztrexc.f ztrrfs.f ztrsen.f ztrsna.f | ||||
| ztrsyl.f ztrti2.f ztrtri.f ztrtrs.f ztzrzf.f zung2l.f | ztrsyl.f ztrti2.f ztrtri.f ztrtrs.f ztzrzf.f zung2l.f | ||||
| zung2r.f zungbr.f zunghr.f zungl2.f zunglq.f zungql.f zungqr.f zungr2.f | zung2r.f zungbr.f zunghr.f zungl2.f zunglq.f zungql.f zungqr.f zungr2.f | ||||
| zungrq.f zungtr.f zunm2l.f zunm2r.f zunmbr.f zunmhr.f zunml2.f zunm22.f | |||||
| zungrq.f zungtr.f zungtsqr.f zunm2l.f zunm2r.f zunmbr.f zunmhr.f zunml2.f zunm22.f | |||||
| zunmlq.f zunmql.f zunmqr.f zunmr2.f zunmr3.f zunmrq.f zunmrz.f | zunmlq.f zunmql.f zunmqr.f zunmr2.f zunmr3.f zunmrq.f zunmrz.f | ||||
| zunmtr.f zupgtr.f | zunmtr.f zupgtr.f | ||||
| zupmtr.f izmax1.f dzsum1.f zstemr.f | zupmtr.f izmax1.f dzsum1.f zstemr.f | ||||
| @@ -440,9 +446,11 @@ set(ZLASRC | |||||
| zgelqt.f zgelqt3.f zgemlqt.f | zgelqt.f zgelqt3.f zgemlqt.f | ||||
| zgetsls.f zgeqr.f zlatsqr.f zlamtsqr.f zgemqr.f | zgetsls.f zgeqr.f zlatsqr.f zlamtsqr.f zgemqr.f | ||||
| zgelq.f zlaswlq.f zlamswlq.f zgemlq.f | zgelq.f zlaswlq.f zlamswlq.f zgemlq.f | ||||
| zunhr_col.f zlaunhr_col_getrfnp.f zlaunhr_col_getrfnp2.f | |||||
| zhetrd_2stage.f zhetrd_he2hb.f zhetrd_hb2st.F zhb2st_kernels.f | zhetrd_2stage.f zhetrd_he2hb.f zhetrd_hb2st.F zhb2st_kernels.f | ||||
| zheevd_2stage.f zheev_2stage.f zheevx_2stage.f zheevr_2stage.f | zheevd_2stage.f zheev_2stage.f zheevx_2stage.f zheevr_2stage.f | ||||
| zhbev_2stage.f zhbevx_2stage.f zhbevd_2stage.f zhegv_2stage.f) | |||||
| zhbev_2stage.f zhbevx_2stage.f zhbevd_2stage.f zhegv_2stage.f | |||||
| zgesvdq.f) | |||||
| set(ZXLASRC zgesvxx.f zgerfsx.f zla_gerfsx_extended.f zla_geamv.f | set(ZXLASRC zgesvxx.f zgerfsx.f zla_gerfsx_extended.f zla_geamv.f | ||||
| zla_gercond_c.f zla_gercond_x.f zla_gerpvgrw.f zsysvxx.f zsyrfsx.f | zla_gercond_c.f zla_gercond_x.f zla_gerpvgrw.f zsysvxx.f zsyrfsx.f | ||||
| @@ -504,7 +512,7 @@ if(USE_XBLAS) | |||||
| endif() | endif() | ||||
| target_link_libraries(lapack PRIVATE ${BLAS_LIBRARIES}) | target_link_libraries(lapack PRIVATE ${BLAS_LIBRARIES}) | ||||
| if (${CMAKE_BUILD_TYPE_UPPER} STREQUAL "COVERAGE") | |||||
| if(_is_coverage_build) | |||||
| target_link_libraries(lapack PRIVATE gcov) | target_link_libraries(lapack PRIVATE gcov) | ||||
| add_coverage(lapack) | add_coverage(lapack) | ||||
| endif() | endif() | ||||
| @@ -1,5 +1,3 @@ | |||||
| include ../make.inc | |||||
| ####################################################################### | ####################################################################### | ||||
| # This is the makefile to create a library for LAPACK. | # This is the makefile to create a library for LAPACK. | ||||
| # The files are organized as follows: | # The files are organized as follows: | ||||
| @@ -44,7 +42,7 @@ include ../make.inc | |||||
| # and is created at the next higher directory level. | # and is created at the next higher directory level. | ||||
| # | # | ||||
| # To remove the object files after the library is created, enter | # To remove the object files after the library is created, enter | ||||
| # make clean | |||||
| # make cleanobj | |||||
| # On some systems, you can force the source files to be recompiled by | # On some systems, you can force the source files to be recompiled by | ||||
| # entering (for example) | # entering (for example) | ||||
| # make single FRC=FRC | # make single FRC=FRC | ||||
| @@ -56,6 +54,13 @@ include ../make.inc | |||||
| # | # | ||||
| ####################################################################### | ####################################################################### | ||||
| TOPSRCDIR = .. | |||||
| include $(TOPSRCDIR)/make.inc | |||||
| .SUFFIXES: .F .o | |||||
| .F.o: | |||||
| $(FC) $(FFLAGS) -c -o $@ $< | |||||
| ALLAUX_O = ilaenv.o ilaenv2stage.o ieeeck.o lsamen.o xerbla.o xerbla_array.o \ | ALLAUX_O = ilaenv.o ilaenv2stage.o ieeeck.o lsamen.o xerbla.o xerbla_array.o \ | ||||
| iparmq.o iparam2stage.o \ | iparmq.o iparam2stage.o \ | ||||
| ilaprec.o ilatrans.o ilauplo.o iladiag.o chla_transtype.o \ | ilaprec.o ilatrans.o ilauplo.o iladiag.o chla_transtype.o \ | ||||
| @@ -128,7 +133,7 @@ SLASRC_O = \ | |||||
| slatbs.o slatdf.o slatps.o slatrd.o slatrs.o slatrz.o \ | slatbs.o slatdf.o slatps.o slatrd.o slatrs.o slatrz.o \ | ||||
| slauu2.o slauum.o sopgtr.o sopmtr.o sorg2l.o sorg2r.o \ | slauu2.o slauum.o sopgtr.o sopmtr.o sorg2l.o sorg2r.o \ | ||||
| sorgbr.o sorghr.o sorgl2.o sorglq.o sorgql.o sorgqr.o sorgr2.o \ | sorgbr.o sorghr.o sorgl2.o sorglq.o sorgql.o sorgqr.o sorgr2.o \ | ||||
| sorgrq.o sorgtr.o sorm2l.o sorm2r.o sorm22.o \ | |||||
| sorgrq.o sorgtr.o sorgtsqr.o sorm2l.o sorm2r.o sorm22.o \ | |||||
| sormbr.o sormhr.o sorml2.o sormlq.o sormql.o sormqr.o sormr2.o \ | sormbr.o sormhr.o sorml2.o sormlq.o sormql.o sormqr.o sormr2.o \ | ||||
| sormr3.o sormrq.o sormrz.o sormtr.o spbcon.o spbequ.o spbrfs.o \ | sormr3.o sormrq.o sormrz.o sormtr.o spbcon.o spbequ.o spbrfs.o \ | ||||
| spbstf.o spbsv.o spbsvx.o \ | spbstf.o spbsv.o spbsvx.o \ | ||||
| @@ -171,9 +176,11 @@ SLASRC_O = \ | |||||
| sgetsls.o sgeqr.o slatsqr.o slamtsqr.o sgemqr.o \ | sgetsls.o sgeqr.o slatsqr.o slamtsqr.o sgemqr.o \ | ||||
| sgelq.o slaswlq.o slamswlq.o sgemlq.o \ | sgelq.o slaswlq.o slamswlq.o sgemlq.o \ | ||||
| stplqt.o stplqt2.o stpmlqt.o \ | stplqt.o stplqt2.o stpmlqt.o \ | ||||
| sorhr_col.o slaorhr_col_getrfnp.o slaorhr_col_getrfnp2.o \ | |||||
| ssytrd_2stage.o ssytrd_sy2sb.o ssytrd_sb2st.o ssb2st_kernels.o \ | ssytrd_2stage.o ssytrd_sy2sb.o ssytrd_sb2st.o ssb2st_kernels.o \ | ||||
| ssyevd_2stage.o ssyev_2stage.o ssyevx_2stage.o ssyevr_2stage.o \ | ssyevd_2stage.o ssyev_2stage.o ssyevx_2stage.o ssyevr_2stage.o \ | ||||
| ssbev_2stage.o ssbevx_2stage.o ssbevd_2stage.o ssygv_2stage.o | |||||
| ssbev_2stage.o ssbevx_2stage.o ssbevd_2stage.o ssygv_2stage.o \ | |||||
| sgesvdq.o scombssq.o | |||||
| DSLASRC_O = spotrs.o sgetrs.o spotrf.o sgetrf.o | DSLASRC_O = spotrs.o sgetrs.o spotrf.o sgetrf.o | ||||
| @@ -258,7 +265,7 @@ CLASRC_O = \ | |||||
| ctptrs.o ctrcon.o ctrevc.o ctrevc3.o ctrexc.o ctrrfs.o ctrsen.o ctrsna.o \ | ctptrs.o ctrcon.o ctrevc.o ctrevc3.o ctrexc.o ctrrfs.o ctrsen.o ctrsna.o \ | ||||
| ctrsyl.o ctrti2.o ctrtri.o ctrtrs.o ctzrzf.o cung2l.o cung2r.o \ | ctrsyl.o ctrti2.o ctrtri.o ctrtrs.o ctzrzf.o cung2l.o cung2r.o \ | ||||
| cungbr.o cunghr.o cungl2.o cunglq.o cungql.o cungqr.o cungr2.o \ | cungbr.o cunghr.o cungl2.o cunglq.o cungql.o cungqr.o cungr2.o \ | ||||
| cungrq.o cungtr.o cunm2l.o cunm2r.o cunmbr.o cunmhr.o cunml2.o cunm22.o \ | |||||
| cungrq.o cungtr.o cungtsqr.o cunm2l.o cunm2r.o cunmbr.o cunmhr.o cunml2.o cunm22.o \ | |||||
| cunmlq.o cunmql.o cunmqr.o cunmr2.o cunmr3.o cunmrq.o cunmrz.o \ | cunmlq.o cunmql.o cunmqr.o cunmr2.o cunmr3.o cunmrq.o cunmrz.o \ | ||||
| cunmtr.o cupgtr.o cupmtr.o icmax1.o scsum1.o cstemr.o \ | cunmtr.o cupgtr.o cupmtr.o icmax1.o scsum1.o cstemr.o \ | ||||
| chfrk.o ctfttp.o clanhf.o cpftrf.o cpftri.o cpftrs.o ctfsm.o ctftri.o \ | chfrk.o ctfttp.o clanhf.o cpftrf.o cpftri.o cpftrs.o ctfsm.o ctftri.o \ | ||||
| @@ -272,9 +279,11 @@ CLASRC_O = \ | |||||
| cgetsls.o cgeqr.o clatsqr.o clamtsqr.o cgemqr.o \ | cgetsls.o cgeqr.o clatsqr.o clamtsqr.o cgemqr.o \ | ||||
| cgelq.o claswlq.o clamswlq.o cgemlq.o \ | cgelq.o claswlq.o clamswlq.o cgemlq.o \ | ||||
| ctplqt.o ctplqt2.o ctpmlqt.o \ | ctplqt.o ctplqt2.o ctpmlqt.o \ | ||||
| cunhr_col.o claunhr_col_getrfnp.o claunhr_col_getrfnp2.o \ | |||||
| chetrd_2stage.o chetrd_he2hb.o chetrd_hb2st.o chb2st_kernels.o \ | chetrd_2stage.o chetrd_he2hb.o chetrd_hb2st.o chb2st_kernels.o \ | ||||
| cheevd_2stage.o cheev_2stage.o cheevx_2stage.o cheevr_2stage.o \ | cheevd_2stage.o cheev_2stage.o cheevx_2stage.o cheevr_2stage.o \ | ||||
| chbev_2stage.o chbevx_2stage.o chbevd_2stage.o chegv_2stage.o | |||||
| chbev_2stage.o chbevx_2stage.o chbevd_2stage.o chegv_2stage.o \ | |||||
| cgesvdq.o | |||||
| ifdef USEXBLAS | ifdef USEXBLAS | ||||
| CXLASRC = cgesvxx.o cgerfsx.o cla_gerfsx_extended.o cla_geamv.o \ | CXLASRC = cgesvxx.o cgerfsx.o cla_gerfsx_extended.o cla_geamv.o \ | ||||
| @@ -324,7 +333,7 @@ DLASRC_O = \ | |||||
| dlatbs.o dlatdf.o dlatps.o dlatrd.o dlatrs.o dlatrz.o dlauu2.o \ | dlatbs.o dlatdf.o dlatps.o dlatrd.o dlatrs.o dlatrz.o dlauu2.o \ | ||||
| dlauum.o dopgtr.o dopmtr.o dorg2l.o dorg2r.o \ | dlauum.o dopgtr.o dopmtr.o dorg2l.o dorg2r.o \ | ||||
| dorgbr.o dorghr.o dorgl2.o dorglq.o dorgql.o dorgqr.o dorgr2.o \ | dorgbr.o dorghr.o dorgl2.o dorglq.o dorgql.o dorgqr.o dorgr2.o \ | ||||
| dorgrq.o dorgtr.o dorm2l.o dorm2r.o dorm22.o \ | |||||
| dorgrq.o dorgtr.o dorgtsqr.o dorm2l.o dorm2r.o dorm22.o \ | |||||
| dormbr.o dormhr.o dorml2.o dormlq.o dormql.o dormqr.o dormr2.o \ | dormbr.o dormhr.o dorml2.o dormlq.o dormql.o dormqr.o dormr2.o \ | ||||
| dormr3.o dormrq.o dormrz.o dormtr.o dpbcon.o dpbequ.o dpbrfs.o \ | dormr3.o dormrq.o dormrz.o dormtr.o dpbcon.o dpbequ.o dpbrfs.o \ | ||||
| dpbstf.o dpbsv.o dpbsvx.o \ | dpbstf.o dpbsv.o dpbsvx.o \ | ||||
| @@ -368,9 +377,11 @@ DLASRC_O = \ | |||||
| dgetsls.o dgeqr.o dlatsqr.o dlamtsqr.o dgemqr.o \ | dgetsls.o dgeqr.o dlatsqr.o dlamtsqr.o dgemqr.o \ | ||||
| dgelq.o dlaswlq.o dlamswlq.o dgemlq.o \ | dgelq.o dlaswlq.o dlamswlq.o dgemlq.o \ | ||||
| dtplqt.o dtplqt2.o dtpmlqt.o \ | dtplqt.o dtplqt2.o dtpmlqt.o \ | ||||
| dorhr_col.o dlaorhr_col_getrfnp.o dlaorhr_col_getrfnp2.o \ | |||||
| dsytrd_2stage.o dsytrd_sy2sb.o dsytrd_sb2st.o dsb2st_kernels.o \ | dsytrd_2stage.o dsytrd_sy2sb.o dsytrd_sb2st.o dsb2st_kernels.o \ | ||||
| dsyevd_2stage.o dsyev_2stage.o dsyevx_2stage.o dsyevr_2stage.o \ | dsyevd_2stage.o dsyev_2stage.o dsyevx_2stage.o dsyevr_2stage.o \ | ||||
| dsbev_2stage.o dsbevx_2stage.o dsbevd_2stage.o dsygv_2stage.o | |||||
| dsbev_2stage.o dsbevx_2stage.o dsbevd_2stage.o dsygv_2stage.o \ | |||||
| dgesvdq.o dcombssq.o | |||||
| ifdef USEXBLAS | ifdef USEXBLAS | ||||
| DXLASRC = dgesvxx.o dgerfsx.o dla_gerfsx_extended.o dla_geamv.o \ | DXLASRC = dgesvxx.o dgerfsx.o dla_gerfsx_extended.o dla_geamv.o \ | ||||
| @@ -456,7 +467,7 @@ ZLASRC_O = \ | |||||
| ztptrs.o ztrcon.o ztrevc.o ztrevc3.o ztrexc.o ztrrfs.o ztrsen.o ztrsna.o \ | ztptrs.o ztrcon.o ztrevc.o ztrevc3.o ztrexc.o ztrrfs.o ztrsen.o ztrsna.o \ | ||||
| ztrsyl.o ztrti2.o ztrtri.o ztrtrs.o ztzrzf.o zung2l.o \ | ztrsyl.o ztrti2.o ztrtri.o ztrtrs.o ztzrzf.o zung2l.o \ | ||||
| zung2r.o zungbr.o zunghr.o zungl2.o zunglq.o zungql.o zungqr.o zungr2.o \ | zung2r.o zungbr.o zunghr.o zungl2.o zunglq.o zungql.o zungqr.o zungr2.o \ | ||||
| zungrq.o zungtr.o zunm2l.o zunm2r.o zunmbr.o zunmhr.o zunml2.o zunm22.o \ | |||||
| zungrq.o zungtr.o zungtsqr.o zunm2l.o zunm2r.o zunmbr.o zunmhr.o zunml2.o zunm22.o \ | |||||
| zunmlq.o zunmql.o zunmqr.o zunmr2.o zunmr3.o zunmrq.o zunmrz.o \ | zunmlq.o zunmql.o zunmqr.o zunmr2.o zunmr3.o zunmrq.o zunmrz.o \ | ||||
| zunmtr.o zupgtr.o \ | zunmtr.o zupgtr.o \ | ||||
| zupmtr.o izmax1.o dzsum1.o zstemr.o \ | zupmtr.o izmax1.o dzsum1.o zstemr.o \ | ||||
| @@ -472,9 +483,11 @@ ZLASRC_O = \ | |||||
| zgelqt.o zgelqt3.o zgemlqt.o \ | zgelqt.o zgelqt3.o zgemlqt.o \ | ||||
| zgetsls.o zgeqr.o zlatsqr.o zlamtsqr.o zgemqr.o \ | zgetsls.o zgeqr.o zlatsqr.o zlamtsqr.o zgemqr.o \ | ||||
| zgelq.o zlaswlq.o zlamswlq.o zgemlq.o \ | zgelq.o zlaswlq.o zlamswlq.o zgemlq.o \ | ||||
| zunhr_col.o zlaunhr_col_getrfnp.o zlaunhr_col_getrfnp2.o \ | |||||
| zhetrd_2stage.o zhetrd_he2hb.o zhetrd_hb2st.o zhb2st_kernels.o \ | zhetrd_2stage.o zhetrd_he2hb.o zhetrd_hb2st.o zhb2st_kernels.o \ | ||||
| zheevd_2stage.o zheev_2stage.o zheevx_2stage.o zheevr_2stage.o \ | zheevd_2stage.o zheev_2stage.o zheevx_2stage.o zheevr_2stage.o \ | ||||
| zhbev_2stage.o zhbevx_2stage.o zhbevd_2stage.o zhegv_2stage.o | |||||
| zhbev_2stage.o zhbevx_2stage.o zhbevd_2stage.o zhegv_2stage.o \ | |||||
| zgesvdq.o | |||||
| ifdef USEXBLAS | ifdef USEXBLAS | ||||
| ZXLASRC = zgesvxx.o zgerfsx.o zla_gerfsx_extended.o zla_geamv.o \ | ZXLASRC = zgesvxx.o zgerfsx.o zla_gerfsx_extended.o zla_geamv.o \ | ||||
| @@ -550,33 +563,29 @@ ifdef BUILD_DEPRECATED | |||||
| DEPRECATED = $(DEPRECSRC) | DEPRECATED = $(DEPRECSRC) | ||||
| endif | endif | ||||
| all: ../$(LAPACKLIB) | |||||
| .PHONY: all | |||||
| all: $(LAPACKLIB) | |||||
| .PHONY: ../$(LAPACKLIB) | |||||
| ../$(LAPACKLIB): $(ALLOBJ) $(ALLXOBJ) $(DEPRECATED) | |||||
| $(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ) $(ALLXOBJ) $(DEPRECATED) | |||||
| $(LAPACKLIB): $(ALLOBJ) $(ALLXOBJ) $(DEPRECATED) | |||||
| $(AR) $(ARFLAGS) $@ $^ | |||||
| $(RANLIB) $@ | $(RANLIB) $@ | ||||
| .PHONY: single complex double complex16 | |||||
| single: $(SLASRC) $(DSLASRC) $(SXLASRC) $(SCLAUX) $(ALLAUX) | single: $(SLASRC) $(DSLASRC) $(SXLASRC) $(SCLAUX) $(ALLAUX) | ||||
| $(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(SLASRC) $(DSLASRC) \ | |||||
| $(SXLASRC) $(SCLAUX) $(ALLAUX) | |||||
| $(RANLIB) ../$(LAPACKLIB) | |||||
| $(AR) $(ARFLAGS) $(LAPACKLIB) $^ | |||||
| $(RANLIB) $(LAPACKLIB) | |||||
| complex: $(CLASRC) $(ZCLASRC) $(CXLASRC) $(SCLAUX) $(ALLAUX) | complex: $(CLASRC) $(ZCLASRC) $(CXLASRC) $(SCLAUX) $(ALLAUX) | ||||
| $(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(CLASRC) $(ZCLASRC) \ | |||||
| $(CXLASRC) $(SCLAUX) $(ALLAUX) | |||||
| $(RANLIB) ../$(LAPACKLIB) | |||||
| $(AR) $(ARFLAGS) $(LAPACKLIB) $^ | |||||
| $(RANLIB) $(LAPACKLIB) | |||||
| double: $(DLASRC) $(DSLASRC) $(DXLASRC) $(DZLAUX) $(ALLAUX) | double: $(DLASRC) $(DSLASRC) $(DXLASRC) $(DZLAUX) $(ALLAUX) | ||||
| $(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(DLASRC) $(DSLASRC) \ | |||||
| $(DXLASRC) $(DZLAUX) $(ALLAUX) | |||||
| $(RANLIB) ../$(LAPACKLIB) | |||||
| $(AR) $(ARFLAGS) $(LAPACKLIB) $^ | |||||
| $(RANLIB) $(LAPACKLIB) | |||||
| complex16: $(ZLASRC) $(ZCLASRC) $(ZXLASRC) $(DZLAUX) $(ALLAUX) | complex16: $(ZLASRC) $(ZCLASRC) $(ZXLASRC) $(DZLAUX) $(ALLAUX) | ||||
| $(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(ZLASRC) $(ZCLASRC) \ | |||||
| $(ZXLASRC) $(DZLAUX) $(ALLAUX) | |||||
| $(RANLIB) ../$(LAPACKLIB) | |||||
| $(AR) $(ARFLAGS) $(LAPACKLIB) $^ | |||||
| $(RANLIB) $(LAPACKLIB) | |||||
| $(ALLAUX): $(FRC) | $(ALLAUX): $(FRC) | ||||
| $(SCLAUX): $(FRC) | $(SCLAUX): $(FRC) | ||||
| @@ -597,18 +606,16 @@ endif | |||||
| FRC: | FRC: | ||||
| @FRC=$(FRC) | @FRC=$(FRC) | ||||
| clean: | |||||
| .PHONY: clean cleanobj cleanlib | |||||
| clean: cleanobj cleanlib | |||||
| cleanobj: | |||||
| rm -f *.o DEPRECATED/*.o | rm -f *.o DEPRECATED/*.o | ||||
| .f.o: | |||||
| $(FORTRAN) $(OPTS) -c -o $@ $< | |||||
| .F.o: | |||||
| $(FORTRAN) $(OPTS) -c $< -o $@ | |||||
| slaruv.o: slaruv.f ; $(FORTRAN) $(NOOPT) -c -o $@ $< | |||||
| dlaruv.o: dlaruv.f ; $(FORTRAN) $(NOOPT) -c -o $@ $< | |||||
| sla_wwaddw.o: sla_wwaddw.f ; $(FORTRAN) $(NOOPT) -c -o $@ $< | |||||
| dla_wwaddw.o: dla_wwaddw.f ; $(FORTRAN) $(NOOPT) -c -o $@ $< | |||||
| cla_wwaddw.o: cla_wwaddw.f ; $(FORTRAN) $(NOOPT) -c -o $@ $< | |||||
| zla_wwaddw.o: zla_wwaddw.f ; $(FORTRAN) $(NOOPT) -c -o $@ $< | |||||
| cleanlib: | |||||
| rm -f $(LAPACKLIB) | |||||
| slaruv.o: slaruv.f ; $(FC) $(FFLAGS_NOOPT) -c -o $@ $< | |||||
| dlaruv.o: dlaruv.f ; $(FC) $(FFLAGS_NOOPT) -c -o $@ $< | |||||
| sla_wwaddw.o: sla_wwaddw.f ; $(FC) $(FFLAGS_NOOPT) -c -o $@ $< | |||||
| dla_wwaddw.o: dla_wwaddw.f ; $(FC) $(FFLAGS_NOOPT) -c -o $@ $< | |||||
| cla_wwaddw.o: cla_wwaddw.f ; $(FC) $(FFLAGS_NOOPT) -c -o $@ $< | |||||
| zla_wwaddw.o: zla_wwaddw.f ; $(FC) $(FFLAGS_NOOPT) -c -o $@ $< | |||||
| @@ -75,7 +75,7 @@ | |||||
| *> Specifies the form of the system of equations: | *> Specifies the form of the system of equations: | ||||
| *> = 'N': A * X = B (No transpose) | *> = 'N': A * X = B (No transpose) | ||||
| *> = 'T': A**T * X = B (Transpose) | *> = 'T': A**T * X = B (Transpose) | ||||
| *> = 'C': A**H * X = B (Conjugate transpose = Transpose) | |||||
| *> = 'C': A**H * X = B (Conjugate transpose) | |||||
| *> \endverbatim | *> \endverbatim | ||||
| *> | *> | ||||
| *> \param[in] EQUED | *> \param[in] EQUED | ||||
| @@ -308,7 +308,7 @@ | |||||
| *> information as described below. There currently are up to three | *> information as described below. There currently are up to three | ||||
| *> pieces of information returned for each right-hand side. If | *> pieces of information returned for each right-hand side. If | ||||
| *> componentwise accuracy is not requested (PARAMS(3) = 0.0), then | *> componentwise accuracy is not requested (PARAMS(3) = 0.0), then | ||||
| *> ERR_BNDS_COMP is not accessed. If N_ERR_BNDS .LT. 3, then at most | |||||
| *> ERR_BNDS_COMP is not accessed. If N_ERR_BNDS < 3, then at most | |||||
| *> the first (:,N_ERR_BNDS) entries are returned. | *> the first (:,N_ERR_BNDS) entries are returned. | ||||
| *> | *> | ||||
| *> The first index in ERR_BNDS_COMP(i,:) corresponds to the ith | *> The first index in ERR_BNDS_COMP(i,:) corresponds to the ith | ||||
| @@ -344,14 +344,14 @@ | |||||
| *> \param[in] NPARAMS | *> \param[in] NPARAMS | ||||
| *> \verbatim | *> \verbatim | ||||
| *> NPARAMS is INTEGER | *> NPARAMS is INTEGER | ||||
| *> Specifies the number of parameters set in PARAMS. If .LE. 0, the | |||||
| *> Specifies the number of parameters set in PARAMS. If <= 0, the | |||||
| *> PARAMS array is never referenced and default values are used. | *> PARAMS array is never referenced and default values are used. | ||||
| *> \endverbatim | *> \endverbatim | ||||
| *> | *> | ||||
| *> \param[in,out] PARAMS | *> \param[in,out] PARAMS | ||||
| *> \verbatim | *> \verbatim | ||||
| *> PARAMS is REAL array, dimension NPARAMS | *> PARAMS is REAL array, dimension NPARAMS | ||||
| *> Specifies algorithm parameters. If an entry is .LT. 0.0, then | |||||
| *> Specifies algorithm parameters. If an entry is < 0.0, then | |||||
| *> that entry will be filled with default value used for that | *> that entry will be filled with default value used for that | ||||
| *> parameter. Only positions up to NPARAMS are accessed; defaults | *> parameter. Only positions up to NPARAMS are accessed; defaults | ||||
| *> are used for higher-numbered parameters. | *> are used for higher-numbered parameters. | ||||
| @@ -359,9 +359,9 @@ | |||||
| *> PARAMS(LA_LINRX_ITREF_I = 1) : Whether to perform iterative | *> PARAMS(LA_LINRX_ITREF_I = 1) : Whether to perform iterative | ||||
| *> refinement or not. | *> refinement or not. | ||||
| *> Default: 1.0 | *> Default: 1.0 | ||||
| *> = 0.0 : No refinement is performed, and no error bounds are | |||||
| *> = 0.0: No refinement is performed, and no error bounds are | |||||
| *> computed. | *> computed. | ||||
| *> = 1.0 : Use the double-precision refinement algorithm, | |||||
| *> = 1.0: Use the double-precision refinement algorithm, | |||||
| *> possibly with doubled-single computations if the | *> possibly with doubled-single computations if the | ||||
| *> compilation environment does not support DOUBLE | *> compilation environment does not support DOUBLE | ||||
| *> PRECISION. | *> PRECISION. | ||||
| @@ -431,7 +431,7 @@ | |||||
| *> information as described below. There currently are up to three | *> information as described below. There currently are up to three | ||||
| *> pieces of information returned for each right-hand side. If | *> pieces of information returned for each right-hand side. If | ||||
| *> componentwise accuracy is not requested (PARAMS(3) = 0.0), then | *> componentwise accuracy is not requested (PARAMS(3) = 0.0), then | ||||
| *> ERR_BNDS_COMP is not accessed. If N_ERR_BNDS .LT. 3, then at most | |||||
| *> ERR_BNDS_COMP is not accessed. If N_ERR_BNDS < 3, then at most | |||||
| *> the first (:,N_ERR_BNDS) entries are returned. | *> the first (:,N_ERR_BNDS) entries are returned. | ||||
| *> | *> | ||||
| *> The first index in ERR_BNDS_COMP(i,:) corresponds to the ith | *> The first index in ERR_BNDS_COMP(i,:) corresponds to the ith | ||||
| @@ -467,14 +467,14 @@ | |||||
| *> \param[in] NPARAMS | *> \param[in] NPARAMS | ||||
| *> \verbatim | *> \verbatim | ||||
| *> NPARAMS is INTEGER | *> NPARAMS is INTEGER | ||||
| *> Specifies the number of parameters set in PARAMS. If .LE. 0, the | |||||
| *> Specifies the number of parameters set in PARAMS. If <= 0, the | |||||
| *> PARAMS array is never referenced and default values are used. | *> PARAMS array is never referenced and default values are used. | ||||
| *> \endverbatim | *> \endverbatim | ||||
| *> | *> | ||||
| *> \param[in,out] PARAMS | *> \param[in,out] PARAMS | ||||
| *> \verbatim | *> \verbatim | ||||
| *> PARAMS is REAL array, dimension NPARAMS | *> PARAMS is REAL array, dimension NPARAMS | ||||
| *> Specifies algorithm parameters. If an entry is .LT. 0.0, then | |||||
| *> Specifies algorithm parameters. If an entry is < 0.0, then | |||||
| *> that entry will be filled with default value used for that | *> that entry will be filled with default value used for that | ||||
| *> parameter. Only positions up to NPARAMS are accessed; defaults | *> parameter. Only positions up to NPARAMS are accessed; defaults | ||||
| *> are used for higher-numbered parameters. | *> are used for higher-numbered parameters. | ||||
| @@ -482,9 +482,9 @@ | |||||
| *> PARAMS(LA_LINRX_ITREF_I = 1) : Whether to perform iterative | *> PARAMS(LA_LINRX_ITREF_I = 1) : Whether to perform iterative | ||||
| *> refinement or not. | *> refinement or not. | ||||
| *> Default: 1.0 | *> Default: 1.0 | ||||
| *> = 0.0 : No refinement is performed, and no error bounds are | |||||
| *> = 0.0: No refinement is performed, and no error bounds are | |||||
| *> computed. | *> computed. | ||||
| *> = 1.0 : Use the double-precision refinement algorithm, | |||||
| *> = 1.0: Use the double-precision refinement algorithm, | |||||
| *> possibly with doubled-single computations if the | *> possibly with doubled-single computations if the | ||||
| *> compilation environment does not support DOUBLE | *> compilation environment does not support DOUBLE | ||||
| *> PRECISION. | *> PRECISION. | ||||
| @@ -48,10 +48,10 @@ | |||||
| *> \verbatim | *> \verbatim | ||||
| *> JOB is CHARACTER*1 | *> JOB is CHARACTER*1 | ||||
| *> Specifies the type of backward transformation required: | *> Specifies the type of backward transformation required: | ||||
| *> = 'N', do nothing, return immediately; | |||||
| *> = 'P', do backward transformation for permutation only; | |||||
| *> = 'S', do backward transformation for scaling only; | |||||
| *> = 'B', do backward transformations for both permutation and | |||||
| *> = 'N': do nothing, return immediately; | |||||
| *> = 'P': do backward transformation for permutation only; | |||||
| *> = 'S': do backward transformation for scaling only; | |||||
| *> = 'B': do backward transformations for both permutation and | |||||
| *> scaling. | *> scaling. | ||||
| *> JOB must be the same as the argument JOB supplied to CGEBAL. | *> JOB must be the same as the argument JOB supplied to CGEBAL. | ||||
| *> \endverbatim | *> \endverbatim | ||||
| @@ -157,7 +157,7 @@ | |||||
| *> < 0: if INFO = -i, the i-th argument had an illegal value. | *> < 0: if INFO = -i, the i-th argument had an illegal value. | ||||
| *> > 0: if INFO = i, the QR algorithm failed to compute all the | *> > 0: if INFO = i, the QR algorithm failed to compute all the | ||||
| *> eigenvalues, and no eigenvectors have been computed; | *> eigenvalues, and no eigenvectors have been computed; | ||||
| *> elements and i+1:N of W contain eigenvalues which have | |||||
| *> elements i+1:N of W contain eigenvalues which have | |||||
| *> converged. | *> converged. | ||||
| *> \endverbatim | *> \endverbatim | ||||
| * | * | ||||
| @@ -80,13 +80,13 @@ | |||||
| *> desirable, then this option is advisable. The input matrix A | *> desirable, then this option is advisable. The input matrix A | ||||
| *> is preprocessed with QR factorization with FULL (row and | *> is preprocessed with QR factorization with FULL (row and | ||||
| *> column) pivoting. | *> column) pivoting. | ||||
| *> = 'G' Computation as with 'F' with an additional estimate of the | |||||
| *> = 'G': Computation as with 'F' with an additional estimate of the | |||||
| *> condition number of B, where A=B*D. If A has heavily weighted | *> condition number of B, where A=B*D. If A has heavily weighted | ||||
| *> rows, then using this condition number gives too pessimistic | *> rows, then using this condition number gives too pessimistic | ||||
| *> error bound. | *> error bound. | ||||
| *> = 'A': Small singular values are not well determined by the data | *> = 'A': Small singular values are not well determined by the data | ||||
| *> and are considered as noisy; the matrix is treated as | *> and are considered as noisy; the matrix is treated as | ||||
| *> numerically rank defficient. The error in the computed | |||||
| *> numerically rank deficient. The error in the computed | |||||
| *> singular values is bounded by f(m,n)*epsilon*||A||. | *> singular values is bounded by f(m,n)*epsilon*||A||. | ||||
| *> The computed SVD A = U * S * V^* restores A up to | *> The computed SVD A = U * S * V^* restores A up to | ||||
| *> f(m,n)*epsilon*||A||. | *> f(m,n)*epsilon*||A||. | ||||
| @@ -117,7 +117,7 @@ | |||||
| *> = 'V': N columns of V are returned in the array V; Jacobi rotations | *> = 'V': N columns of V are returned in the array V; Jacobi rotations | ||||
| *> are not explicitly accumulated. | *> are not explicitly accumulated. | ||||
| *> = 'J': N columns of V are returned in the array V, but they are | *> = 'J': N columns of V are returned in the array V, but they are | ||||
| *> computed as the product of Jacobi rotations, if JOBT .EQ. 'N'. | |||||
| *> computed as the product of Jacobi rotations, if JOBT = 'N'. | |||||
| *> = 'W': V may be used as workspace of length N*N. See the description | *> = 'W': V may be used as workspace of length N*N. See the description | ||||
| *> of V. | *> of V. | ||||
| *> = 'N': V is not computed. | *> = 'N': V is not computed. | ||||
| @@ -131,7 +131,7 @@ | |||||
| *> specified range. If A .NE. 0 is scaled so that the largest singular | *> specified range. If A .NE. 0 is scaled so that the largest singular | ||||
| *> value of c*A is around SQRT(BIG), BIG=SLAMCH('O'), then JOBR issues | *> value of c*A is around SQRT(BIG), BIG=SLAMCH('O'), then JOBR issues | ||||
| *> the licence to kill columns of A whose norm in c*A is less than | *> the licence to kill columns of A whose norm in c*A is less than | ||||
| *> SQRT(SFMIN) (for JOBR.EQ.'R'), or less than SMALL=SFMIN/EPSLN, | |||||
| *> SQRT(SFMIN) (for JOBR = 'R'), or less than SMALL=SFMIN/EPSLN, | |||||
| *> where SFMIN=SLAMCH('S'), EPSLN=SLAMCH('E'). | *> where SFMIN=SLAMCH('S'), EPSLN=SLAMCH('E'). | ||||
| *> = 'N': Do not kill small columns of c*A. This option assumes that | *> = 'N': Do not kill small columns of c*A. This option assumes that | ||||
| *> BLAS and QR factorizations and triangular solvers are | *> BLAS and QR factorizations and triangular solvers are | ||||
| @@ -229,7 +229,7 @@ | |||||
| *> If JOBU = 'F', then U contains on exit the M-by-M matrix of | *> If JOBU = 'F', then U contains on exit the M-by-M matrix of | ||||
| *> the left singular vectors, including an ONB | *> the left singular vectors, including an ONB | ||||
| *> of the orthogonal complement of the Range(A). | *> of the orthogonal complement of the Range(A). | ||||
| *> If JOBU = 'W' .AND. (JOBV.EQ.'V' .AND. JOBT.EQ.'T' .AND. M.EQ.N), | |||||
| *> If JOBU = 'W' .AND. (JOBV = 'V' .AND. JOBT = 'T' .AND. M = N), | |||||
| *> then U is used as workspace if the procedure | *> then U is used as workspace if the procedure | ||||
| *> replaces A with A^*. In that case, [V] is computed | *> replaces A with A^*. In that case, [V] is computed | ||||
| *> in U as left singular vectors of A^* and then | *> in U as left singular vectors of A^* and then | ||||
| @@ -251,7 +251,7 @@ | |||||
| *> V is COMPLEX array, dimension ( LDV, N ) | *> V is COMPLEX array, dimension ( LDV, N ) | ||||
| *> If JOBV = 'V', 'J' then V contains on exit the N-by-N matrix of | *> If JOBV = 'V', 'J' then V contains on exit the N-by-N matrix of | ||||
| *> the right singular vectors; | *> the right singular vectors; | ||||
| *> If JOBV = 'W', AND (JOBU.EQ.'U' AND JOBT.EQ.'T' AND M.EQ.N), | |||||
| *> If JOBV = 'W', AND (JOBU = 'U' AND JOBT = 'T' AND M = N), | |||||
| *> then V is used as workspace if the pprocedure | *> then V is used as workspace if the pprocedure | ||||
| *> replaces A with A^*. In that case, [U] is computed | *> replaces A with A^*. In that case, [U] is computed | ||||
| *> in V as right singular vectors of A^* and then | *> in V as right singular vectors of A^* and then | ||||
| @@ -282,7 +282,7 @@ | |||||
| *> Length of CWORK to confirm proper allocation of workspace. | *> Length of CWORK to confirm proper allocation of workspace. | ||||
| *> LWORK depends on the job: | *> LWORK depends on the job: | ||||
| *> | *> | ||||
| *> 1. If only SIGMA is needed ( JOBU.EQ.'N', JOBV.EQ.'N' ) and | |||||
| *> 1. If only SIGMA is needed ( JOBU = 'N', JOBV = 'N' ) and | |||||
| *> 1.1 .. no scaled condition estimate required (JOBA.NE.'E'.AND.JOBA.NE.'G'): | *> 1.1 .. no scaled condition estimate required (JOBA.NE.'E'.AND.JOBA.NE.'G'): | ||||
| *> LWORK >= 2*N+1. This is the minimal requirement. | *> LWORK >= 2*N+1. This is the minimal requirement. | ||||
| *> ->> For optimal performance (blocked code) the optimal value | *> ->> For optimal performance (blocked code) the optimal value | ||||
| @@ -298,9 +298,9 @@ | |||||
| *> In general, the optimal length LWORK is computed as | *> In general, the optimal length LWORK is computed as | ||||
| *> LWORK >= max(N+LWORK(CGEQP3),N+LWORK(CGEQRF), LWORK(CGESVJ), | *> LWORK >= max(N+LWORK(CGEQP3),N+LWORK(CGEQRF), LWORK(CGESVJ), | ||||
| *> N*N+LWORK(CPOCON)). | *> N*N+LWORK(CPOCON)). | ||||
| *> 2. If SIGMA and the right singular vectors are needed (JOBV.EQ.'V'), | |||||
| *> (JOBU.EQ.'N') | |||||
| *> 2.1 .. no scaled condition estimate requested (JOBE.EQ.'N'): | |||||
| *> 2. If SIGMA and the right singular vectors are needed (JOBV = 'V'), | |||||
| *> (JOBU = 'N') | |||||
| *> 2.1 .. no scaled condition estimate requested (JOBE = 'N'): | |||||
| *> -> the minimal requirement is LWORK >= 3*N. | *> -> the minimal requirement is LWORK >= 3*N. | ||||
| *> -> For optimal performance, | *> -> For optimal performance, | ||||
| *> LWORK >= max(N+(N+1)*NB, 2*N+N*NB)=2*N+N*NB, | *> LWORK >= max(N+(N+1)*NB, 2*N+N*NB)=2*N+N*NB, | ||||
| @@ -318,10 +318,10 @@ | |||||
| *> LWORK >= max(N+LWORK(CGEQP3), LWORK(CPOCON), N+LWORK(CGESVJ), | *> LWORK >= max(N+LWORK(CGEQP3), LWORK(CPOCON), N+LWORK(CGESVJ), | ||||
| *> N+LWORK(CGELQF), 2*N+LWORK(CGEQRF), N+LWORK(CUNMLQ)). | *> N+LWORK(CGELQF), 2*N+LWORK(CGEQRF), N+LWORK(CUNMLQ)). | ||||
| *> 3. If SIGMA and the left singular vectors are needed | *> 3. If SIGMA and the left singular vectors are needed | ||||
| *> 3.1 .. no scaled condition estimate requested (JOBE.EQ.'N'): | |||||
| *> 3.1 .. no scaled condition estimate requested (JOBE = 'N'): | |||||
| *> -> the minimal requirement is LWORK >= 3*N. | *> -> the minimal requirement is LWORK >= 3*N. | ||||
| *> -> For optimal performance: | *> -> For optimal performance: | ||||
| *> if JOBU.EQ.'U' :: LWORK >= max(3*N, N+(N+1)*NB, 2*N+N*NB)=2*N+N*NB, | |||||
| *> if JOBU = 'U' :: LWORK >= max(3*N, N+(N+1)*NB, 2*N+N*NB)=2*N+N*NB, | |||||
| *> where NB is the optimal block size for CGEQP3, CGEQRF, CUNMQR. | *> where NB is the optimal block size for CGEQP3, CGEQRF, CUNMQR. | ||||
| *> In general, the optimal length LWORK is computed as | *> In general, the optimal length LWORK is computed as | ||||
| *> LWORK >= max(N+LWORK(CGEQP3), 2*N+LWORK(CGEQRF), N+LWORK(CUNMQR)). | *> LWORK >= max(N+LWORK(CGEQP3), 2*N+LWORK(CGEQRF), N+LWORK(CUNMQR)). | ||||
| @@ -329,16 +329,16 @@ | |||||
| *> required (JOBA='E', or 'G'). | *> required (JOBA='E', or 'G'). | ||||
| *> -> the minimal requirement is LWORK >= 3*N. | *> -> the minimal requirement is LWORK >= 3*N. | ||||
| *> -> For optimal performance: | *> -> For optimal performance: | ||||
| *> if JOBU.EQ.'U' :: LWORK >= max(3*N, N+(N+1)*NB, 2*N+N*NB)=2*N+N*NB, | |||||
| *> if JOBU = 'U' :: LWORK >= max(3*N, N+(N+1)*NB, 2*N+N*NB)=2*N+N*NB, | |||||
| *> where NB is the optimal block size for CGEQP3, CGEQRF, CUNMQR. | *> where NB is the optimal block size for CGEQP3, CGEQRF, CUNMQR. | ||||
| *> In general, the optimal length LWORK is computed as | *> In general, the optimal length LWORK is computed as | ||||
| *> LWORK >= max(N+LWORK(CGEQP3),N+LWORK(CPOCON), | *> LWORK >= max(N+LWORK(CGEQP3),N+LWORK(CPOCON), | ||||
| *> 2*N+LWORK(CGEQRF), N+LWORK(CUNMQR)). | *> 2*N+LWORK(CGEQRF), N+LWORK(CUNMQR)). | ||||
| *> | *> | ||||
| *> 4. If the full SVD is needed: (JOBU.EQ.'U' or JOBU.EQ.'F') and | |||||
| *> 4.1. if JOBV.EQ.'V' | |||||
| *> 4. If the full SVD is needed: (JOBU = 'U' or JOBU = 'F') and | |||||
| *> 4.1. if JOBV = 'V' | |||||
| *> the minimal requirement is LWORK >= 5*N+2*N*N. | *> the minimal requirement is LWORK >= 5*N+2*N*N. | ||||
| *> 4.2. if JOBV.EQ.'J' the minimal requirement is | |||||
| *> 4.2. if JOBV = 'J' the minimal requirement is | |||||
| *> LWORK >= 4*N+N*N. | *> LWORK >= 4*N+N*N. | ||||
| *> In both cases, the allocated CWORK can accommodate blocked runs | *> In both cases, the allocated CWORK can accommodate blocked runs | ||||
| *> of CGEQP3, CGEQRF, CGELQF, CUNMQR, CUNMLQ. | *> of CGEQP3, CGEQRF, CGELQF, CUNMQR, CUNMLQ. | ||||
| @@ -357,7 +357,7 @@ | |||||
| *> of A. (See the description of SVA().) | *> of A. (See the description of SVA().) | ||||
| *> RWORK(2) = See the description of RWORK(1). | *> RWORK(2) = See the description of RWORK(1). | ||||
| *> RWORK(3) = SCONDA is an estimate for the condition number of | *> RWORK(3) = SCONDA is an estimate for the condition number of | ||||
| *> column equilibrated A. (If JOBA .EQ. 'E' or 'G') | |||||
| *> column equilibrated A. (If JOBA = 'E' or 'G') | |||||
| *> SCONDA is an estimate of SQRT(||(R^* * R)^(-1)||_1). | *> SCONDA is an estimate of SQRT(||(R^* * R)^(-1)||_1). | ||||
| *> It is computed using SPOCON. It holds | *> It is computed using SPOCON. It holds | ||||
| *> N^(-1/4) * SCONDA <= ||R^(-1)||_2 <= N^(1/4) * SCONDA | *> N^(-1/4) * SCONDA <= ||R^(-1)||_2 <= N^(1/4) * SCONDA | ||||
| @@ -376,7 +376,7 @@ | |||||
| *> triangular factor in the first QR factorization. | *> triangular factor in the first QR factorization. | ||||
| *> RWORK(5) = an estimate of the scaled condition number of the | *> RWORK(5) = an estimate of the scaled condition number of the | ||||
| *> triangular factor in the second QR factorization. | *> triangular factor in the second QR factorization. | ||||
| *> The following two parameters are computed if JOBT .EQ. 'T'. | |||||
| *> The following two parameters are computed if JOBT = 'T'. | |||||
| *> They are provided for a developer/implementer who is familiar | *> They are provided for a developer/implementer who is familiar | ||||
| *> with the details of the method. | *> with the details of the method. | ||||
| *> RWORK(6) = the entropy of A^* * A :: this is the Shannon entropy | *> RWORK(6) = the entropy of A^* * A :: this is the Shannon entropy | ||||
| @@ -457,23 +457,23 @@ | |||||
| *> of JOBA and JOBR. | *> of JOBA and JOBR. | ||||
| *> IWORK(2) = the number of the computed nonzero singular values | *> IWORK(2) = the number of the computed nonzero singular values | ||||
| *> IWORK(3) = if nonzero, a warning message: | *> IWORK(3) = if nonzero, a warning message: | ||||
| *> If IWORK(3).EQ.1 then some of the column norms of A | |||||
| *> If IWORK(3) = 1 then some of the column norms of A | |||||
| *> were denormalized floats. The requested high accuracy | *> were denormalized floats. The requested high accuracy | ||||
| *> is not warranted by the data. | *> is not warranted by the data. | ||||
| *> IWORK(4) = 1 or -1. If IWORK(4) .EQ. 1, then the procedure used A^* to | |||||
| *> IWORK(4) = 1 or -1. If IWORK(4) = 1, then the procedure used A^* to | |||||
| *> do the job as specified by the JOB parameters. | *> do the job as specified by the JOB parameters. | ||||
| *> If the call to CGEJSV is a workspace query (indicated by LWORK .EQ. -1 and | |||||
| *> LRWORK .EQ. -1), then on exit IWORK(1) contains the required length of | |||||
| *> If the call to CGEJSV is a workspace query (indicated by LWORK = -1 and | |||||
| *> LRWORK = -1), then on exit IWORK(1) contains the required length of | |||||
| *> IWORK for the job parameters used in the call. | *> IWORK for the job parameters used in the call. | ||||
| *> \endverbatim | *> \endverbatim | ||||
| *> | *> | ||||
| *> \param[out] INFO | *> \param[out] INFO | ||||
| *> \verbatim | *> \verbatim | ||||
| *> INFO is INTEGER | *> INFO is INTEGER | ||||
| *> < 0 : if INFO = -i, then the i-th argument had an illegal value. | |||||
| *> = 0 : successful exit; | |||||
| *> > 0 : CGEJSV did not converge in the maximal allowed number | |||||
| *> of sweeps. The computed values may be inaccurate. | |||||
| *> < 0: if INFO = -i, then the i-th argument had an illegal value. | |||||
| *> = 0: successful exit; | |||||
| *> > 0: CGEJSV did not converge in the maximal allowed number | |||||
| *> of sweeps. The computed values may be inaccurate. | |||||
| *> \endverbatim | *> \endverbatim | ||||
| * | * | ||||
| * Authors: | * Authors: | ||||
| @@ -1336,7 +1336,7 @@ | |||||
| IF ( L2ABER ) THEN | IF ( L2ABER ) THEN | ||||
| * Standard absolute error bound suffices. All sigma_i with | * Standard absolute error bound suffices. All sigma_i with | ||||
| * sigma_i < N*EPSLN*||A|| are flushed to zero. This is an | * sigma_i < N*EPSLN*||A|| are flushed to zero. This is an | ||||
| * agressive enforcement of lower numerical rank by introducing a | |||||
| * aggressive enforcement of lower numerical rank by introducing a | |||||
| * backward error of the order of N*EPSLN*||A||. | * backward error of the order of N*EPSLN*||A||. | ||||
| TEMP1 = SQRT(REAL(N))*EPSLN | TEMP1 = SQRT(REAL(N))*EPSLN | ||||
| DO 3001 p = 2, N | DO 3001 p = 2, N | ||||
| @@ -1348,9 +1348,9 @@ | |||||
| 3001 CONTINUE | 3001 CONTINUE | ||||
| 3002 CONTINUE | 3002 CONTINUE | ||||
| ELSE IF ( L2RANK ) THEN | ELSE IF ( L2RANK ) THEN | ||||
| * .. similarly as above, only slightly more gentle (less agressive). | |||||
| * .. similarly as above, only slightly more gentle (less aggressive). | |||||
| * Sudden drop on the diagonal of R1 is used as the criterion for | * Sudden drop on the diagonal of R1 is used as the criterion for | ||||
| * close-to-rank-defficient. | |||||
| * close-to-rank-deficient. | |||||
| TEMP1 = SQRT(SFMIN) | TEMP1 = SQRT(SFMIN) | ||||
| DO 3401 p = 2, N | DO 3401 p = 2, N | ||||
| IF ( ( ABS(A(p,p)) .LT. (EPSLN*ABS(A(p-1,p-1))) ) .OR. | IF ( ( ABS(A(p,p)) .LT. (EPSLN*ABS(A(p-1,p-1))) ) .OR. | ||||
| @@ -1718,7 +1718,7 @@ | |||||
| CALL CPOCON('L',NR,CWORK(2*N+1),NR,ONE,TEMP1, | CALL CPOCON('L',NR,CWORK(2*N+1),NR,ONE,TEMP1, | ||||
| $ CWORK(2*N+NR*NR+1),RWORK,IERR) | $ CWORK(2*N+NR*NR+1),RWORK,IERR) | ||||
| CONDR1 = ONE / SQRT(TEMP1) | CONDR1 = ONE / SQRT(TEMP1) | ||||
| * .. here need a second oppinion on the condition number | |||||
| * .. here need a second opinion on the condition number | |||||
| * .. then assume worst case scenario | * .. then assume worst case scenario | ||||
| * R1 is OK for inverse <=> CONDR1 .LT. REAL(N) | * R1 is OK for inverse <=> CONDR1 .LT. REAL(N) | ||||
| * more conservative <=> CONDR1 .LT. SQRT(REAL(N)) | * more conservative <=> CONDR1 .LT. SQRT(REAL(N)) | ||||
| @@ -1763,7 +1763,7 @@ | |||||
| ELSE | ELSE | ||||
| * | * | ||||
| * .. ill-conditioned case: second QRF with pivoting | * .. ill-conditioned case: second QRF with pivoting | ||||
| * Note that windowed pivoting would be equaly good | |||||
| * Note that windowed pivoting would be equally good | |||||
| * numerically, and more run-time efficient. So, in | * numerically, and more run-time efficient. So, in | ||||
| * an optimal implementation, the next call to CGEQP3 | * an optimal implementation, the next call to CGEQP3 | ||||
| * should be replaced with eg. CALL CGEQPX (ACM TOMS #782) | * should be replaced with eg. CALL CGEQPX (ACM TOMS #782) | ||||
| @@ -1821,7 +1821,7 @@ | |||||
| * | * | ||||
| IF ( CONDR2 .GE. COND_OK ) THEN | IF ( CONDR2 .GE. COND_OK ) THEN | ||||
| * .. save the Householder vectors used for Q3 | * .. save the Householder vectors used for Q3 | ||||
| * (this overwrittes the copy of R2, as it will not be | |||||
| * (this overwrites the copy of R2, as it will not be | |||||
| * needed in this branch, but it does not overwritte the | * needed in this branch, but it does not overwritte the | ||||
| * Huseholder vectors of Q2.). | * Huseholder vectors of Q2.). | ||||
| CALL CLACPY( 'U', NR, NR, V, LDV, CWORK(2*N+1), N ) | CALL CLACPY( 'U', NR, NR, V, LDV, CWORK(2*N+1), N ) | ||||
| @@ -2077,7 +2077,7 @@ | |||||
| * | * | ||||
| * This branch deploys a preconditioned Jacobi SVD with explicitly | * This branch deploys a preconditioned Jacobi SVD with explicitly | ||||
| * accumulated rotations. It is included as optional, mainly for | * accumulated rotations. It is included as optional, mainly for | ||||
| * experimental purposes. It does perfom well, and can also be used. | |||||
| * experimental purposes. It does perform well, and can also be used. | |||||
| * In this implementation, this branch will be automatically activated | * In this implementation, this branch will be automatically activated | ||||
| * if the condition number sigma_max(A) / sigma_min(A) is predicted | * if the condition number sigma_max(A) / sigma_min(A) is predicted | ||||
| * to be greater than the overflow threshold. This is because the | * to be greater than the overflow threshold. This is because the | ||||
| @@ -1,3 +1,4 @@ | |||||
| *> \brief \b CGELQ | |||||
| * | * | ||||
| * Definition: | * Definition: | ||||
| * =========== | * =========== | ||||
| @@ -17,7 +18,17 @@ | |||||
| * ============= | * ============= | ||||
| *> | *> | ||||
| *> \verbatim | *> \verbatim | ||||
| *> CGELQ computes a LQ factorization of an M-by-N matrix A. | |||||
| *> | |||||
| *> CGELQ computes an LQ factorization of a complex M-by-N matrix A: | |||||
| *> | |||||
| *> A = ( L 0 ) * Q | |||||
| *> | |||||
| *> where: | |||||
| *> | |||||
| *> Q is a N-by-N orthogonal matrix; | |||||
| *> L is an lower-triangular M-by-M matrix; | |||||
| *> 0 is a M-by-(N-M) zero matrix, if M < N. | |||||
| *> | |||||
| *> \endverbatim | *> \endverbatim | ||||
| * | * | ||||
| * Arguments: | * Arguments: | ||||
| @@ -138,7 +149,7 @@ | |||||
| *> \verbatim | *> \verbatim | ||||
| *> | *> | ||||
| *> These details are particular for this LAPACK implementation. Users should not | *> These details are particular for this LAPACK implementation. Users should not | ||||
| *> take them for granted. These details may change in the future, and are unlikely not | |||||
| *> take them for granted. These details may change in the future, and are not likely | |||||
| *> true for another LAPACK implementation. These details are relevant if one wants | *> true for another LAPACK implementation. These details are relevant if one wants | ||||
| *> to try to understand the code. They are not part of the interface. | *> to try to understand the code. They are not part of the interface. | ||||
| *> | *> | ||||
| @@ -159,10 +170,10 @@ | |||||
| SUBROUTINE CGELQ( M, N, A, LDA, T, TSIZE, WORK, LWORK, | SUBROUTINE CGELQ( M, N, A, LDA, T, TSIZE, WORK, LWORK, | ||||
| $ INFO ) | $ INFO ) | ||||
| * | * | ||||
| * -- LAPACK computational routine (version 3.7.0) -- | |||||
| * -- LAPACK computational routine (version 3.9.0) -- | |||||
| * -- LAPACK is a software package provided by Univ. of Tennessee, -- | * -- LAPACK is a software package provided by Univ. of Tennessee, -- | ||||
| * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd. -- | * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd. -- | ||||
| * December 2016 | |||||
| * November 2019 | |||||
| * | * | ||||
| * .. Scalar Arguments .. | * .. Scalar Arguments .. | ||||
| INTEGER INFO, LDA, M, N, TSIZE, LWORK | INTEGER INFO, LDA, M, N, TSIZE, LWORK | ||||
| @@ -33,8 +33,16 @@ | |||||
| *> | *> | ||||
| *> \verbatim | *> \verbatim | ||||
| *> | *> | ||||
| *> CGELQ2 computes an LQ factorization of a complex m by n matrix A: | |||||
| *> A = L * Q. | |||||
| *> CGELQ2 computes an LQ factorization of a complex m-by-n matrix A: | |||||
| *> | |||||
| *> A = ( L 0 ) * Q | |||||
| *> | |||||
| *> where: | |||||
| *> | |||||
| *> Q is a n-by-n orthogonal matrix; | |||||
| *> L is an lower-triangular m-by-m matrix; | |||||
| *> 0 is a m-by-(n-m) zero matrix, if m < n. | |||||
| *> | |||||
| *> \endverbatim | *> \endverbatim | ||||
| * | * | ||||
| * Arguments: | * Arguments: | ||||
| @@ -96,7 +104,7 @@ | |||||
| *> \author Univ. of Colorado Denver | *> \author Univ. of Colorado Denver | ||||
| *> \author NAG Ltd. | *> \author NAG Ltd. | ||||
| * | * | ||||
| *> \date December 2016 | |||||
| *> \date November 2019 | |||||
| * | * | ||||
| *> \ingroup complexGEcomputational | *> \ingroup complexGEcomputational | ||||
| * | * | ||||
| @@ -121,10 +129,10 @@ | |||||
| * ===================================================================== | * ===================================================================== | ||||
| SUBROUTINE CGELQ2( M, N, A, LDA, TAU, WORK, INFO ) | SUBROUTINE CGELQ2( M, N, A, LDA, TAU, WORK, INFO ) | ||||
| * | * | ||||
| * -- LAPACK computational routine (version 3.7.0) -- | |||||
| * -- LAPACK computational routine (version 3.9.0) -- | |||||
| * -- LAPACK is a software package provided by Univ. of Tennessee, -- | * -- LAPACK is a software package provided by Univ. of Tennessee, -- | ||||
| * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- | * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- | ||||
| * December 2016 | |||||
| * November 2019 | |||||
| * | * | ||||
| * .. Scalar Arguments .. | * .. Scalar Arguments .. | ||||
| INTEGER INFO, LDA, M, N | INTEGER INFO, LDA, M, N | ||||
| @@ -34,7 +34,15 @@ | |||||
| *> \verbatim | *> \verbatim | ||||
| *> | *> | ||||
| *> CGELQF computes an LQ factorization of a complex M-by-N matrix A: | *> CGELQF computes an LQ factorization of a complex M-by-N matrix A: | ||||
| *> A = L * Q. | |||||
| *> | |||||
| *> A = ( L 0 ) * Q | |||||
| *> | |||||
| *> where: | |||||
| *> | |||||
| *> Q is a N-by-N orthogonal matrix; | |||||
| *> L is an lower-triangular M-by-M matrix; | |||||
| *> 0 is a M-by-(N-M) zero matrix, if M < N. | |||||
| *> | |||||
| *> \endverbatim | *> \endverbatim | ||||
| * | * | ||||
| * Arguments: | * Arguments: | ||||
| @@ -110,7 +118,7 @@ | |||||
| *> \author Univ. of Colorado Denver | *> \author Univ. of Colorado Denver | ||||
| *> \author NAG Ltd. | *> \author NAG Ltd. | ||||
| * | * | ||||
| *> \date December 2016 | |||||
| *> \date November 2019 | |||||
| * | * | ||||
| *> \ingroup complexGEcomputational | *> \ingroup complexGEcomputational | ||||
| * | * | ||||
| @@ -135,10 +143,10 @@ | |||||
| * ===================================================================== | * ===================================================================== | ||||
| SUBROUTINE CGELQF( M, N, A, LDA, TAU, WORK, LWORK, INFO ) | SUBROUTINE CGELQF( M, N, A, LDA, TAU, WORK, LWORK, INFO ) | ||||
| * | * | ||||
| * -- LAPACK computational routine (version 3.7.0) -- | |||||
| * -- LAPACK computational routine (version 3.9.0) -- | |||||
| * -- LAPACK is a software package provided by Univ. of Tennessee, -- | * -- LAPACK is a software package provided by Univ. of Tennessee, -- | ||||
| * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- | * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- | ||||
| * December 2016 | |||||
| * November 2019 | |||||
| * | * | ||||
| * .. Scalar Arguments .. | * .. Scalar Arguments .. | ||||
| INTEGER INFO, LDA, LWORK, M, N | INTEGER INFO, LDA, LWORK, M, N | ||||
| @@ -1,3 +1,4 @@ | |||||
| *> \brief \b CGELQT | |||||
| * | * | ||||
| * Definition: | * Definition: | ||||
| * =========== | * =========== | ||||
| @@ -1,3 +1,5 @@ | |||||
| *> \brief \b CGELQT3 | |||||
| * | |||||
| * Definition: | * Definition: | ||||
| * =========== | * =========== | ||||
| * | * | ||||
| @@ -1,3 +1,4 @@ | |||||
| *> \brief \b CGEMLQ | |||||
| * | * | ||||
| * Definition: | * Definition: | ||||
| * =========== | * =========== | ||||
| @@ -143,7 +144,7 @@ | |||||
| *> \verbatim | *> \verbatim | ||||
| *> | *> | ||||
| *> These details are particular for this LAPACK implementation. Users should not | *> These details are particular for this LAPACK implementation. Users should not | ||||
| *> take them for granted. These details may change in the future, and are unlikely not | |||||
| *> take them for granted. These details may change in the future, and are not likely | |||||
| *> true for another LAPACK implementation. These details are relevant if one wants | *> true for another LAPACK implementation. These details are relevant if one wants | ||||
| *> to try to understand the code. They are not part of the interface. | *> to try to understand the code. They are not part of the interface. | ||||
| *> | *> | ||||
| @@ -1,3 +1,5 @@ | |||||
| *> \brief \b CGEMLQT | |||||
| * | |||||
| * Definition: | * Definition: | ||||
| * =========== | * =========== | ||||
| * | * | ||||
| @@ -1,3 +1,4 @@ | |||||
| *> \brief \b CGEMQR | |||||
| * | * | ||||
| * Definition: | * Definition: | ||||
| * =========== | * =========== | ||||
| @@ -144,7 +145,7 @@ | |||||
| *> \verbatim | *> \verbatim | ||||
| *> | *> | ||||
| *> These details are particular for this LAPACK implementation. Users should not | *> These details are particular for this LAPACK implementation. Users should not | ||||
| *> take them for granted. These details may change in the future, and are unlikely not | |||||
| *> take them for granted. These details may change in the future, and are not likely | |||||
| *> true for another LAPACK implementation. These details are relevant if one wants | *> true for another LAPACK implementation. These details are relevant if one wants | ||||
| *> to try to understand the code. They are not part of the interface. | *> to try to understand the code. They are not part of the interface. | ||||
| *> | *> | ||||
| @@ -1,3 +1,4 @@ | |||||
| *> \brief \b CGEQR | |||||
| * | * | ||||
| * Definition: | * Definition: | ||||
| * =========== | * =========== | ||||
| @@ -17,7 +18,18 @@ | |||||
| * ============= | * ============= | ||||
| *> | *> | ||||
| *> \verbatim | *> \verbatim | ||||
| *> CGEQR computes a QR factorization of an M-by-N matrix A. | |||||
| *> | |||||
| *> CGEQR computes a QR factorization of a complex M-by-N matrix A: | |||||
| *> | |||||
| *> A = Q * ( R ), | |||||
| *> ( 0 ) | |||||
| *> | |||||
| *> where: | |||||
| *> | |||||
| *> Q is a M-by-M orthogonal matrix; | |||||
| *> R is an upper-triangular N-by-N matrix; | |||||
| *> 0 is a (M-N)-by-N zero matrix, if M > N. | |||||
| *> | |||||
| *> \endverbatim | *> \endverbatim | ||||
| * | * | ||||
| * Arguments: | * Arguments: | ||||
| @@ -138,7 +150,7 @@ | |||||
| *> \verbatim | *> \verbatim | ||||
| *> | *> | ||||
| *> These details are particular for this LAPACK implementation. Users should not | *> These details are particular for this LAPACK implementation. Users should not | ||||
| *> take them for granted. These details may change in the future, and are unlikely not | |||||
| *> take them for granted. These details may change in the future, and are not likely | |||||
| *> true for another LAPACK implementation. These details are relevant if one wants | *> true for another LAPACK implementation. These details are relevant if one wants | ||||
| *> to try to understand the code. They are not part of the interface. | *> to try to understand the code. They are not part of the interface. | ||||
| *> | *> | ||||
| @@ -160,10 +172,10 @@ | |||||
| SUBROUTINE CGEQR( M, N, A, LDA, T, TSIZE, WORK, LWORK, | SUBROUTINE CGEQR( M, N, A, LDA, T, TSIZE, WORK, LWORK, | ||||
| $ INFO ) | $ INFO ) | ||||
| * | * | ||||
| * -- LAPACK computational routine (version 3.7.0) -- | |||||
| * -- LAPACK computational routine (version 3.9.0) -- | |||||
| * -- LAPACK is a software package provided by Univ. of Tennessee, -- | * -- LAPACK is a software package provided by Univ. of Tennessee, -- | ||||
| * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd. -- | * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd. -- | ||||
| * December 2016 | |||||
| * November 2019 | |||||
| * | * | ||||
| * .. Scalar Arguments .. | * .. Scalar Arguments .. | ||||
| INTEGER INFO, LDA, M, N, TSIZE, LWORK | INTEGER INFO, LDA, M, N, TSIZE, LWORK | ||||
| @@ -33,8 +33,17 @@ | |||||
| *> | *> | ||||
| *> \verbatim | *> \verbatim | ||||
| *> | *> | ||||
| *> CGEQR2 computes a QR factorization of a complex m by n matrix A: | |||||
| *> A = Q * R. | |||||
| *> CGEQR2 computes a QR factorization of a complex m-by-n matrix A: | |||||
| *> | |||||
| *> A = Q * ( R ), | |||||
| *> ( 0 ) | |||||
| *> | |||||
| *> where: | |||||
| *> | |||||
| *> Q is a m-by-m orthogonal matrix; | |||||
| *> R is an upper-triangular n-by-n matrix; | |||||
| *> 0 is a (m-n)-by-n zero matrix, if m > n. | |||||
| *> | |||||
| *> \endverbatim | *> \endverbatim | ||||
| * | * | ||||
| * Arguments: | * Arguments: | ||||
| @@ -96,7 +105,7 @@ | |||||
| *> \author Univ. of Colorado Denver | *> \author Univ. of Colorado Denver | ||||
| *> \author NAG Ltd. | *> \author NAG Ltd. | ||||
| * | * | ||||
| *> \date December 2016 | |||||
| *> \date November 2019 | |||||
| * | * | ||||
| *> \ingroup complexGEcomputational | *> \ingroup complexGEcomputational | ||||
| * | * | ||||
| @@ -121,10 +130,10 @@ | |||||
| * ===================================================================== | * ===================================================================== | ||||
| SUBROUTINE CGEQR2( M, N, A, LDA, TAU, WORK, INFO ) | SUBROUTINE CGEQR2( M, N, A, LDA, TAU, WORK, INFO ) | ||||
| * | * | ||||
| * -- LAPACK computational routine (version 3.7.0) -- | |||||
| * -- LAPACK computational routine (version 3.9.0) -- | |||||
| * -- LAPACK is a software package provided by Univ. of Tennessee, -- | * -- LAPACK is a software package provided by Univ. of Tennessee, -- | ||||
| * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- | * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- | ||||
| * December 2016 | |||||
| * November 2019 | |||||
| * | * | ||||
| * .. Scalar Arguments .. | * .. Scalar Arguments .. | ||||
| INTEGER INFO, LDA, M, N | INTEGER INFO, LDA, M, N | ||||
| @@ -33,8 +33,18 @@ | |||||
| *> | *> | ||||
| *> \verbatim | *> \verbatim | ||||
| *> | *> | ||||
| *> CGEQR2P computes a QR factorization of a complex m by n matrix A: | |||||
| *> A = Q * R. The diagonal entries of R are real and nonnegative. | |||||
| *> CGEQR2P computes a QR factorization of a complex m-by-n matrix A: | |||||
| *> | |||||
| *> A = Q * ( R ), | |||||
| *> ( 0 ) | |||||
| *> | |||||
| *> where: | |||||
| *> | |||||
| *> Q is a m-by-m orthogonal matrix; | |||||
| *> R is an upper-triangular n-by-n matrix with nonnegative diagonal | |||||
| *> entries; | |||||
| *> 0 is a (m-n)-by-n zero matrix, if m > n. | |||||
| *> | |||||
| *> \endverbatim | *> \endverbatim | ||||
| * | * | ||||
| * Arguments: | * Arguments: | ||||
| @@ -97,7 +107,7 @@ | |||||
| *> \author Univ. of Colorado Denver | *> \author Univ. of Colorado Denver | ||||
| *> \author NAG Ltd. | *> \author NAG Ltd. | ||||
| * | * | ||||
| *> \date December 2016 | |||||
| *> \date November 2019 | |||||
| * | * | ||||
| *> \ingroup complexGEcomputational | *> \ingroup complexGEcomputational | ||||
| * | * | ||||
| @@ -124,10 +134,10 @@ | |||||
| * ===================================================================== | * ===================================================================== | ||||
| SUBROUTINE CGEQR2P( M, N, A, LDA, TAU, WORK, INFO ) | SUBROUTINE CGEQR2P( M, N, A, LDA, TAU, WORK, INFO ) | ||||
| * | * | ||||
| * -- LAPACK computational routine (version 3.7.0) -- | |||||
| * -- LAPACK computational routine (version 3.9.0) -- | |||||
| * -- LAPACK is a software package provided by Univ. of Tennessee, -- | * -- LAPACK is a software package provided by Univ. of Tennessee, -- | ||||
| * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- | * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- | ||||
| * December 2016 | |||||
| * November 2019 | |||||
| * | * | ||||
| * .. Scalar Arguments .. | * .. Scalar Arguments .. | ||||
| INTEGER INFO, LDA, M, N | INTEGER INFO, LDA, M, N | ||||
| @@ -34,7 +34,16 @@ | |||||
| *> \verbatim | *> \verbatim | ||||
| *> | *> | ||||
| *> CGEQRF computes a QR factorization of a complex M-by-N matrix A: | *> CGEQRF computes a QR factorization of a complex M-by-N matrix A: | ||||
| *> A = Q * R. | |||||
| *> | |||||
| *> A = Q * ( R ), | |||||
| *> ( 0 ) | |||||
| *> | |||||
| *> where: | |||||
| *> | |||||
| *> Q is a M-by-M orthogonal matrix; | |||||
| *> R is an upper-triangular N-by-N matrix; | |||||
| *> 0 is a (M-N)-by-N zero matrix, if M > N. | |||||
| *> | |||||
| *> \endverbatim | *> \endverbatim | ||||
| * | * | ||||
| * Arguments: | * Arguments: | ||||
| @@ -111,7 +120,7 @@ | |||||
| *> \author Univ. of Colorado Denver | *> \author Univ. of Colorado Denver | ||||
| *> \author NAG Ltd. | *> \author NAG Ltd. | ||||
| * | * | ||||
| *> \date December 2016 | |||||
| *> \date November 2019 | |||||
| * | * | ||||
| *> \ingroup complexGEcomputational | *> \ingroup complexGEcomputational | ||||
| * | * | ||||
| @@ -136,10 +145,10 @@ | |||||
| * ===================================================================== | * ===================================================================== | ||||
| SUBROUTINE CGEQRF( M, N, A, LDA, TAU, WORK, LWORK, INFO ) | SUBROUTINE CGEQRF( M, N, A, LDA, TAU, WORK, LWORK, INFO ) | ||||
| * | * | ||||
| * -- LAPACK computational routine (version 3.7.0) -- | |||||
| * -- LAPACK computational routine (version 3.9.0) -- | |||||
| * -- LAPACK is a software package provided by Univ. of Tennessee, -- | * -- LAPACK is a software package provided by Univ. of Tennessee, -- | ||||
| * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- | * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- | ||||
| * December 2016 | |||||
| * November 2019 | |||||
| * | * | ||||
| * .. Scalar Arguments .. | * .. Scalar Arguments .. | ||||
| INTEGER INFO, LDA, LWORK, M, N | INTEGER INFO, LDA, LWORK, M, N | ||||
| @@ -33,8 +33,18 @@ | |||||
| *> | *> | ||||
| *> \verbatim | *> \verbatim | ||||
| *> | *> | ||||
| *> CGEQRFP computes a QR factorization of a complex M-by-N matrix A: | |||||
| *> A = Q * R. The diagonal entries of R are real and nonnegative. | |||||
| *> CGEQR2P computes a QR factorization of a complex M-by-N matrix A: | |||||
| *> | |||||
| *> A = Q * ( R ), | |||||
| *> ( 0 ) | |||||
| *> | |||||
| *> where: | |||||
| *> | |||||
| *> Q is a M-by-M orthogonal matrix; | |||||
| *> R is an upper-triangular N-by-N matrix with nonnegative diagonal | |||||
| *> entries; | |||||
| *> 0 is a (M-N)-by-N zero matrix, if M > N. | |||||
| *> | |||||
| *> \endverbatim | *> \endverbatim | ||||
| * | * | ||||
| * Arguments: | * Arguments: | ||||
| @@ -112,7 +122,7 @@ | |||||
| *> \author Univ. of Colorado Denver | *> \author Univ. of Colorado Denver | ||||
| *> \author NAG Ltd. | *> \author NAG Ltd. | ||||
| * | * | ||||
| *> \date December 2016 | |||||
| *> \date November 2019 | |||||
| * | * | ||||
| *> \ingroup complexGEcomputational | *> \ingroup complexGEcomputational | ||||
| * | * | ||||
| @@ -139,10 +149,10 @@ | |||||
| * ===================================================================== | * ===================================================================== | ||||
| SUBROUTINE CGEQRFP( M, N, A, LDA, TAU, WORK, LWORK, INFO ) | SUBROUTINE CGEQRFP( M, N, A, LDA, TAU, WORK, LWORK, INFO ) | ||||
| * | * | ||||
| * -- LAPACK computational routine (version 3.7.0) -- | |||||
| * -- LAPACK computational routine (version 3.9.0) -- | |||||
| * -- LAPACK is a software package provided by Univ. of Tennessee, -- | * -- LAPACK is a software package provided by Univ. of Tennessee, -- | ||||
| * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- | * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- | ||||
| * December 2016 | |||||
| * November 2019 | |||||
| * | * | ||||
| * .. Scalar Arguments .. | * .. Scalar Arguments .. | ||||
| INTEGER INFO, LDA, LWORK, M, N | INTEGER INFO, LDA, LWORK, M, N | ||||
| @@ -74,7 +74,7 @@ | |||||
| *> Specifies the form of the system of equations: | *> Specifies the form of the system of equations: | ||||
| *> = 'N': A * X = B (No transpose) | *> = 'N': A * X = B (No transpose) | ||||
| *> = 'T': A**T * X = B (Transpose) | *> = 'T': A**T * X = B (Transpose) | ||||
| *> = 'C': A**H * X = B (Conjugate transpose = Transpose) | |||||
| *> = 'C': A**H * X = B (Conjugate transpose) | |||||
| *> \endverbatim | *> \endverbatim | ||||
| *> | *> | ||||
| *> \param[in] EQUED | *> \param[in] EQUED | ||||
| @@ -283,7 +283,7 @@ | |||||
| *> information as described below. There currently are up to three | *> information as described below. There currently are up to three | ||||
| *> pieces of information returned for each right-hand side. If | *> pieces of information returned for each right-hand side. If | ||||
| *> componentwise accuracy is not requested (PARAMS(3) = 0.0), then | *> componentwise accuracy is not requested (PARAMS(3) = 0.0), then | ||||
| *> ERR_BNDS_COMP is not accessed. If N_ERR_BNDS .LT. 3, then at most | |||||
| *> ERR_BNDS_COMP is not accessed. If N_ERR_BNDS < 3, then at most | |||||
| *> the first (:,N_ERR_BNDS) entries are returned. | *> the first (:,N_ERR_BNDS) entries are returned. | ||||
| *> | *> | ||||
| *> The first index in ERR_BNDS_COMP(i,:) corresponds to the ith | *> The first index in ERR_BNDS_COMP(i,:) corresponds to the ith | ||||
| @@ -319,14 +319,14 @@ | |||||
| *> \param[in] NPARAMS | *> \param[in] NPARAMS | ||||
| *> \verbatim | *> \verbatim | ||||
| *> NPARAMS is INTEGER | *> NPARAMS is INTEGER | ||||
| *> Specifies the number of parameters set in PARAMS. If .LE. 0, the | |||||
| *> Specifies the number of parameters set in PARAMS. If <= 0, the | |||||
| *> PARAMS array is never referenced and default values are used. | *> PARAMS array is never referenced and default values are used. | ||||
| *> \endverbatim | *> \endverbatim | ||||
| *> | *> | ||||
| *> \param[in,out] PARAMS | *> \param[in,out] PARAMS | ||||
| *> \verbatim | *> \verbatim | ||||
| *> PARAMS is REAL array, dimension NPARAMS | *> PARAMS is REAL array, dimension NPARAMS | ||||
| *> Specifies algorithm parameters. If an entry is .LT. 0.0, then | |||||
| *> Specifies algorithm parameters. If an entry is < 0.0, then | |||||
| *> that entry will be filled with default value used for that | *> that entry will be filled with default value used for that | ||||
| *> parameter. Only positions up to NPARAMS are accessed; defaults | *> parameter. Only positions up to NPARAMS are accessed; defaults | ||||
| *> are used for higher-numbered parameters. | *> are used for higher-numbered parameters. | ||||
| @@ -334,9 +334,9 @@ | |||||
| *> PARAMS(LA_LINRX_ITREF_I = 1) : Whether to perform iterative | *> PARAMS(LA_LINRX_ITREF_I = 1) : Whether to perform iterative | ||||
| *> refinement or not. | *> refinement or not. | ||||
| *> Default: 1.0 | *> Default: 1.0 | ||||
| *> = 0.0 : No refinement is performed, and no error bounds are | |||||
| *> = 0.0: No refinement is performed, and no error bounds are | |||||
| *> computed. | *> computed. | ||||
| *> = 1.0 : Use the double-precision refinement algorithm, | |||||
| *> = 1.0: Use the double-precision refinement algorithm, | |||||
| *> possibly with doubled-single computations if the | *> possibly with doubled-single computations if the | ||||
| *> compilation environment does not support DOUBLE | *> compilation environment does not support DOUBLE | ||||
| *> PRECISION. | *> PRECISION. | ||||
| @@ -91,7 +91,7 @@ | |||||
| *> \verbatim | *> \verbatim | ||||
| *> SCALE is REAL | *> SCALE is REAL | ||||
| *> On exit, SCALE contains the scale factor. SCALE is chosen | *> On exit, SCALE contains the scale factor. SCALE is chosen | ||||
| *> 0 <= SCALE <= 1 to prevent owerflow in the solution. | |||||
| *> 0 <= SCALE <= 1 to prevent overflow in the solution. | |||||
| *> \endverbatim | *> \endverbatim | ||||
| * | * | ||||
| * Authors: | * Authors: | ||||