Update LAPACK to 3.9.0
This commit is contained in:
parent
e5e893835a
commit
90f316e888
|
@ -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)
|
||||||
|
$(AR) $(ARFLAGS) $@ $^
|
||||||
../$(LAPACKLIB): $(ALLOBJ) $(ALLXOBJ) $(DEPRECATED)
|
|
||||||
$(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ) $(ALLXOBJ) $(DEPRECATED)
|
|
||||||
$(RANLIB) $@
|
$(RANLIB) $@
|
||||||
|
|
||||||
|
.PHONY: single complex double complex16
|
||||||
single: $(SLASRC) $(DSLASRC) $(SXLASRC) $(SCLAUX) $(ALLAUX)
|
single: $(SLASRC) $(DSLASRC) $(SXLASRC) $(SCLAUX) $(ALLAUX)
|
||||||
$(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(SLASRC) $(DSLASRC) \
|
$(AR) $(ARFLAGS) $(LAPACKLIB) $^
|
||||||
$(SXLASRC) $(SCLAUX) $(ALLAUX)
|
$(RANLIB) $(LAPACKLIB)
|
||||||
$(RANLIB) ../$(LAPACKLIB)
|
|
||||||
|
|
||||||
complex: $(CLASRC) $(ZCLASRC) $(CXLASRC) $(SCLAUX) $(ALLAUX)
|
complex: $(CLASRC) $(ZCLASRC) $(CXLASRC) $(SCLAUX) $(ALLAUX)
|
||||||
$(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(CLASRC) $(ZCLASRC) \
|
$(AR) $(ARFLAGS) $(LAPACKLIB) $^
|
||||||
$(CXLASRC) $(SCLAUX) $(ALLAUX)
|
$(RANLIB) $(LAPACKLIB)
|
||||||
$(RANLIB) ../$(LAPACKLIB)
|
|
||||||
|
|
||||||
double: $(DLASRC) $(DSLASRC) $(DXLASRC) $(DZLAUX) $(ALLAUX)
|
double: $(DLASRC) $(DSLASRC) $(DXLASRC) $(DZLAUX) $(ALLAUX)
|
||||||
$(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(DLASRC) $(DSLASRC) \
|
$(AR) $(ARFLAGS) $(LAPACKLIB) $^
|
||||||
$(DXLASRC) $(DZLAUX) $(ALLAUX)
|
$(RANLIB) $(LAPACKLIB)
|
||||||
$(RANLIB) ../$(LAPACKLIB)
|
|
||||||
|
|
||||||
complex16: $(ZLASRC) $(ZCLASRC) $(ZXLASRC) $(DZLAUX) $(ALLAUX)
|
complex16: $(ZLASRC) $(ZCLASRC) $(ZXLASRC) $(DZLAUX) $(ALLAUX)
|
||||||
$(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(ZLASRC) $(ZCLASRC) \
|
$(AR) $(ARFLAGS) $(LAPACKLIB) $^
|
||||||
$(ZXLASRC) $(DZLAUX) $(ALLAUX)
|
$(RANLIB) $(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
|
||||||
|
cleanlib:
|
||||||
|
rm -f $(LAPACKLIB)
|
||||||
|
|
||||||
.f.o:
|
slaruv.o: slaruv.f ; $(FC) $(FFLAGS_NOOPT) -c -o $@ $<
|
||||||
$(FORTRAN) $(OPTS) -c -o $@ $<
|
dlaruv.o: dlaruv.f ; $(FC) $(FFLAGS_NOOPT) -c -o $@ $<
|
||||||
|
sla_wwaddw.o: sla_wwaddw.f ; $(FC) $(FFLAGS_NOOPT) -c -o $@ $<
|
||||||
.F.o:
|
dla_wwaddw.o: dla_wwaddw.f ; $(FC) $(FFLAGS_NOOPT) -c -o $@ $<
|
||||||
$(FORTRAN) $(OPTS) -c $< -o $@
|
cla_wwaddw.o: cla_wwaddw.f ; $(FC) $(FFLAGS_NOOPT) -c -o $@ $<
|
||||||
|
zla_wwaddw.o: zla_wwaddw.f ; $(FC) $(FFLAGS_NOOPT) -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 $@ $<
|
|
||||||
|
|
|
@ -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;
|
*> = 'N': do nothing, return immediately;
|
||||||
*> = 'P', do backward transformation for permutation only;
|
*> = 'P': do backward transformation for permutation only;
|
||||||
*> = 'S', do backward transformation for scaling only;
|
*> = 'S': do backward transformation for scaling only;
|
||||||
*> = 'B', do backward transformations for both permutation and
|
*> = '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'),
|
*> 2. If SIGMA and the right singular vectors are needed (JOBV = 'V'),
|
||||||
*> (JOBU.EQ.'N')
|
*> (JOBU = 'N')
|
||||||
*> 2.1 .. no scaled condition estimate requested (JOBE.EQ.'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. If the full SVD is needed: (JOBU = 'U' or JOBU = 'F') and
|
||||||
*> 4.1. if JOBV.EQ.'V'
|
*> 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,22 +457,22 @@
|
||||||
*> 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
|
*> If the call to CGEJSV is a workspace query (indicated by LWORK = -1 and
|
||||||
*> LRWORK .EQ. -1), then on exit IWORK(1) contains the required length of
|
*> 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: if INFO = -i, then the i-th argument had an illegal value.
|
||||||
*> = 0 : successful exit;
|
*> = 0: successful exit;
|
||||||
*> > 0 : CGEJSV did not converge in the maximal allowed number
|
*> > 0: CGEJSV did not converge in the maximal allowed number
|
||||||
*> of sweeps. The computed values may be inaccurate.
|
*> of sweeps. The computed values may be inaccurate.
|
||||||
*> \endverbatim
|
*> \endverbatim
|
||||||
*
|
*
|
||||||
|
@ -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:
|
*> CGELQ2 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:
|
||||||
|
@ -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:
|
*> CGEQR2 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:
|
||||||
|
@ -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:
|
*> 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.
|
*>
|
||||||
|
*> 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:
|
*> 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.
|
*>
|
||||||
|
*> 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:
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue