GEQRS and GELQS were likely computational routines once,
(they have an input argument check, which auxiliary/test
routines typically do not have) but have been superseded by
GELS a long time ago. The only remaining occurrences
are in the tests CHKQR and CHKLQ, where they are auxiliary
routines to widen the test coverage.
* Replace GEQRS and GELQS by calls to GELS in tests
* Remove the functions from the error exit tests
* Move GEQRS and GELQS to the deprecated routines
Closes#709
C and Z precisions CODE and TESTING:
CGETSQRHRT, CUNGTSQR_ROW, CLARFB_GETT,
ZGETSQRHRT, ZUNGTSQR_ROW, ZLARFB_GETT.
new file: SRC/cgetsqrhrt.f
new file: SRC/clarfb_gett.f
new file: SRC/cungtsqr_row.f
new file: SRC/zgetsqrhrt.f
new file: SRC/zlarfb_gett.f
new file: SRC/zungtsqr_row.f
modified: SRC/CMakeLists.txt
modified: SRC/Makefile
new file: TESTING/LIN/cunhr_col02.f
new file: TESTING/LIN/zunhr_col02.f
modified: TESTING/LIN/cchkunhr_col.f
modified: TESTING/LIN/cunhr_col01.f
modified: TESTING/LIN/zchkunhr_col.f
modified: TESTING/LIN/zunhr_col01.f
modified: TESTING/LIN/CMakeLists.txt
modified: TESTING/LIN/Makefile
DOUBLE PRECISION and REAL:
new SRC/dorgtsqr.f
new SRC/dorhr_col.f
mod TESTING/LIN/dchkaa.f
new TESTING/LIN/dchkorhr_col.f
new TESTING/LIN/derrorhr_col.f
new TESTING/LIN/dorhr_col01.f
new SRC/sorgtsqr.f
new SRC/sorhr_col.f
mod TESTING/LIN/schkaa.f
new TESTING/LIN/schkorhr_col.f
new TESTING/LIN/serrorhr_col.f
new TESTING/LIN/sorhr_col01.f
The $(strip) syntax is GNU Make specific, and what it's doing (adding
a "../../" prefix to LAPACKLIB but not VARLIB since that gets added
later) is not obvious.
Allows us to use the built-in suffix rules where appropriate.
FORTRAN -> FC (POSIX)
OPTS -> FFLAGS (POSIX)
DRVOPTS -> FFLAGS_DRV
NOOPT -> FFLAGS_NOOPT
LOADER -> FC (use the compiler driver for linking)
LOADOPTS -> LDFLAGS (POSIX)
ARCH -> AR (POSIX)
ARCHFLAGS -> ARFLAGS (POSIX)
reconstruction routines in SINGLE precision.
(i.e. for COMPLEX FORTRAN floating point type).
modified: SRC/CMakeLists.txt
modified: SRC/Makefile
new file: SRC/claorhr.f
new file: SRC/claorhr_getrfnp.f
new file: SRC/claorhr_getrfnp2.f
new file: SRC/corhr.f
modified: TESTING/LIN/CMakeLists.txt
modified: TESTING/LIN/Makefile
modified: TESTING/LIN/cchkaa.f
new file: TESTING/LIN/cchkorhr.f
new file: TESTING/LIN/cerrorhr.f
new file: TESTING/LIN/corhr01.f
modified: TESTING/ctest.in
reconstruction routines in DOUBLE PRECISION.
(i.e. for COMPLEX*16 FORTRAN floating point type).
modified: SRC/CMakeLists.txt
modified: SRC/Makefile
new file: SRC/zlaorhr.f
new file: SRC/zlaorhr_getrfnp.f
new file: SRC/zlaorhr_getrfnp2.f
new file: SRC/zorhr.f
modified: TESTING/LIN/CMakeLists.txt
modified: TESTING/LIN/Makefile
modified: TESTING/LIN/zchkaa.f
new file: TESTING/LIN/zchkorhr.f
new file: TESTING/LIN/zerrorhr.f
new file: TESTING/LIN/zorhr01.f
modified: TESTING/ztest.in
modified: SRC/Makefile
new file: SRC/slaorhr.f
new file: SRC/slaorhr_getrfnp.f
new file: SRC/slaorhr_getrfnp2.f
new file: SRC/sorhr.f
modified: TESTING/LIN/CMakeLists.txt
modified: TESTING/LIN/Makefile
modified: TESTING/LIN/schkaa.f
new file: TESTING/LIN/schkorhr.f
new file: TESTING/LIN/serrorhr.f
new file: TESTING/LIN/sorhr01.f
modified: TESTING/stest.in
This commit provides both CODE and TESTING for Householder
reconstruction routines in single precision.
(i.e. for REAL FORTRAN floating point type).
modified: LIN/Makefile
modified: LIN/alahd.f
modified: LIN/dchkaa.f
new file: LIN/dchkorhr.f
new file: LIN/derrorhr.f
new file: LIN/dorhr01.f
modified: dtest.in
This commit provides DOUBLE PRECISON testing code for Householder reconstruction
routines in DOUBLE PRECISION that were commited in the previous commit.
Now, both CODE and TESTING in DOUBLE for Householder reconstruction routines
are commited.
cleanobj: Remove object files
cleanlib: Remove libraries
cleanexe: Remove test and example executables
cleantest: Remove test output and core dumps
clean: All of the above
Consists of rearranging linebreaks, moving the following files to
conditionally-compiled sections, and adding the equivalent files for
USEXBLAS.
?errvx
?drvsy
?drvhe
?errsy
?errhe
?errpo
Close#82
Added routines for new factorization code for symmetric indefinite
( or Hermitian indefinite ) matrices with bounded Bunch-Kaufman
( rook ) pivoting algorithm.
New more efficient storage format for factors U ( or L ),
block-diagonal matrix D, and pivoting information stored in IPIV:
factor L is stored explicitly in lower triangle of A;
diagonal of D is stored on the diagonal of A;
subdiagonal elements of D are stored in array E;
IPIV format is the same as in *_ROOK routines, but differs
from SY Bunch-Kaufman routines (e.g. *SYTRF).
The factorization output of these new rook _RK routines is not
compatible
with the existing _ROOK routines and vice versa. This new factorization
format is designed in such a way, that there is a possibility in the
future
to write new Bunch-Kaufman routines that conform to this new
factorization format.
Then the future Bunch-Kaufman routines could share solver
*TRS_3,inversion *TRI_3
and condition estimator *CON_3.
To convert between the factorization formats in both ways the following
routines
are developed:
CONVERSION ROUTINES BETWEEN FACTORIZATION FORMATS
DOUBLE PRECISION (symmetric indefinite matrices):
new file: SRC/dsyconvf.f
new file: SRC/dsyconvf_rook.f
REAL (symmetric indefinite matrices):
new file: SRC/csyconvf.f
new file: SRC/csyconvf_rook.f
COMPLEX*16 (symmetric indefinite and Hermitian indefinite matrices):
new file: SRC/zsyconvf.f
new file: SRC/zsyconvf_rook.f
COMPLEX (symmetric indefinite and Hermitian indefinite matrices):
new file: SRC/ssyconvf.f
new file: SRC/ssyconvf_rook.f
*SYCONVF routine converts between old Bunch-Kaufman storage format (
denote (L1,D1,IPIV1) )
that is used by *SYTRF and new rook storage format ( denote (L2,D2,
IPIV2))
that is used by *SYTRF_RK
*SYCONVF_ROOK routine between old rook storage format ( denote
(L1,D1,IPIV2) )
that is used by *SYTRF_ROOK and new rook storage format ( denote
(L2,D2, IPIV2))
that is used by *SYTRF_RK
ROUTINES AND DRIVERS
DOUBLE PRECISION (symmetric indefinite matrices):
new file: SRC/dsytf2_rk.f BLAS2 unblocked factorization
new file: SRC/dlasyf_rk.f BLAS3 auxiliary blocked partial
factorization
new file: SRC/dsytrf_rk.f BLAS3 blocked factorization
new file: SRC/dsytrs_3.f BLAS3 solver
new file: SRC/dsycon_3.f BLAS3 condition number estimator
new file: SRC/dsytri_3.f BLAS3 inversion, sets the size of work array
and calls *sytri_3x
new file: SRC/dsytri_3x.f BLAS3 auxiliary inversion, actually
computes blocked inversion
new file: SRC/dsysv_rk.f BLAS3 solver driver
REAL (symmetric indefinite matrices):
new file: SRC/ssytf2_rk.f BLAS2 unblocked factorization
new file: SRC/slasyf_rk.f BLAS3 auxiliary blocked partial
factorization
new file: SRC/ssytrf_rk.f BLAS3 blocked factorization
new file: SRC/ssytrs_3.f BLAS3 solver
new file: SRC/ssycon_3.f BLAS3 condition number estimator
new file: SRC/ssytri_3.f BLAS3 inversion, sets the size of work array
and calls *sytri_3x
new file: SRC/ssytri_3x.f BLAS3 auxiliary inversion, actually
computes blocked inversion
new file: SRC/ssysv_rk.f BLAS3 solver driver
COMPLEX*16 (symmetric indefinite matrices):
new file: SRC/zsytf2_rk.f BLAS2 unblocked factorization
new file: SRC/zlasyf_rk.f BLAS3 auxiliary blocked partial
factorization
new file: SRC/zsytrf_rk.f BLAS3 blocked factorization
new file: SRC/zsytrs_3.f BLAS3 solver
new file: SRC/zsycon_3.f BLAS3 condition number estimator
new file: SRC/zsytri_3.f BLAS3 inversion, sets the size of work array
and calls *sytri_3x
new file: SRC/zsytri_3x.f BLAS3 auxiliary inversion, actually
computes blocked inversion
new file: SRC/zsysv_rk.f BLAS3 solver driver
COMPLEX*16 (Hermitian indefinite matrices):
new file: SRC/zhetf2_rk.f BLAS2 unblocked factorization
new file: SRC/zlahef_rk.f BLAS3 auxiliary blocked partial
factorization
new file: SRC/zhetrf_rk.f BLAS3 blocked factorization
new file: SRC/zhetrs_3.f BLAS3 solver
new file: SRC/zhecon_3.f BLAS3 condition number estimator
new file: SRC/zhetri_3.f BLAS3 inversion, sets the size of work array
and calls *sytri_3x
new file: SRC/zhetri_3x.f BLAS3 auxiliary inversion, actually
computes blocked inversion
new file: SRC/zhesv_rk.f BLAS3 solver driver
COMPLEX (symmetric indefinite matrices):
new file: SRC/csytf2_rk.f BLAS2 unblocked factorization
new file: SRC/clasyf_rk.f BLAS3 auxiliary blocked partial
factorization
new file: SRC/csytrf_rk.f BLAS3 blocked factorization
new file: SRC/csytrs_3.f BLAS3 solver
new file: SRC/csycon_3.f BLAS3 condition number estimator
new file: SRC/csytri_3.f BLAS3 inversion, sets the size of work array
and calls *sytri_3x
new file: SRC/csytri_3x.f BLAS3 auxiliary inversion, actually
computes blocked inversion
new file: SRC/csysv_rk.f BLAS3 solver driver
COMPLEX (Hermitian indefinite matrices):
new file: SRC/chetf2_rk.f BLAS2 unblocked factorization
new file: SRC/clahef_rk.f BLAS3 auxiliary blocked partial
factorization
new file: SRC/chetrf_rk.f BLAS3 blocked factorization
new file: SRC/chetrs_3.f BLAS3 solver
new file: SRC/checon_3.f BLAS3 condition number estimator
new file: SRC/chetri_3.f BLAS3 inversion, sets the size of work array
and calls *sytri_3x
new file: SRC/chetri_3x.f BLAS3 auxiliary inversion, actually
computes blocked inversion
new file: SRC/chesv_rk.f BLAS3 solver driver
MISC
modified: SRC/CMakeLists.txt
modified: SRC/Makefile
TEST CODE
modified: TESTING/LIN/CMakeLists.txt
modified: TESTING/LIN/Makefile
modified: TESTING/LIN/aladhd.f
modified: TESTING/LIN/alaerh.f
modified: TESTING/LIN/alahd.f
DOUBLE PRECISION (symmetric indefinite matrices):
modified: TESTING/LIN/dchkaa.f
modified: TESTING/LIN/derrsy.f
modified: TESTING/LIN/derrsyx.f
modified: TESTING/LIN/derrvx.f
modified: TESTING/LIN/derrvxx.f
modified: TESTING/dtest.in
new file: TESTING/LIN/dchksy_rk.f
new file: TESTING/LIN/ddrvsy_rk.f
new file: TESTING/LIN/dsyt01_3.f
REAL (symmetric indefinite matrices):
modified: TESTING/LIN/schkaa.f
modified: TESTING/LIN/serrsy.f
modified: TESTING/LIN/serrsyx.f
modified: TESTING/LIN/serrvx.f
modified: TESTING/LIN/serrvxx.f
modified: TESTING/stest.in
new file: TESTING/LIN/schksy_rk.f
new file: TESTING/LIN/sdrvsy_rk.f
new file: TESTING/LIN/ssyt01_3.f
COMPLEX*16 (symmetric indefinite and Hermitian indefinite matrices):
modified: TESTING/LIN/zchkaa.f
modified: TESTING/LIN/zerrsy.f
modified: TESTING/LIN/zerrsyx.f
modified: TESTING/LIN/zerrhe.f
modified: TESTING/LIN/zerrhex.f
modified: TESTING/LIN/zerrvx.f
modified: TESTING/LIN/zerrvxx.f
modified: TESTING/ztest.in
new file: TESTING/LIN/zchksy_rk.f
new file: TESTING/LIN/zdrvsy_rk.f
new file: TESTING/LIN/zsyt01_3.f
new file: TESTING/LIN/zchkhe_rk.f
new file: TESTING/LIN/zdrvhe_rk.f
new file: TESTING/LIN/zhet01_3.f
COMPLEX (symmetric indefinite and Hermitian indefinite matrices):
modified: TESTING/LIN/cchkaa.f
modified: TESTING/LIN/cerrsy.f
modified: TESTING/LIN/cerrsyx.f
modified: TESTING/LIN/cerrhe.f
modified: TESTING/LIN/cerrhex.f
modified: TESTING/LIN/cerrvx.f
modified: TESTING/LIN/cerrvxx.f
modified: TESTING/ctest.in
new file: TESTING/LIN/cchksy_rk.f
new file: TESTING/LIN/cdrvsy_rk.f
new file: TESTING/LIN/csyt01_3.f
new file: TESTING/LIN/cchkhe_rk.f
new file: TESTING/LIN/cdrvhe_rk.f
new file: TESTING/LIN/chet01_3.f
This is mostly a long term maintenance improvement.
Many coding styles require elimination of trailing whitespace, and
many editors and source code management configurations automatically
gobble up whitespace. When these tools gobble up whitespace, it
complicates reviewing the meaningful code changes.
By removing whitespace on one patch, it makes future
code reviews much easier.
=SCRIPT====================================================================
if which tempfile &>/dev/null; then
TEMPMAKER=tempfile
elif which mktemp &>/dev/null; then
TEMPMAKER=mktemp
else
echo "Cannot find tempfile program." 2>&1
exit 1
fi
MYTEMP=$($TEMPMAKER)
trap 'rm -f $MYTEMP' SIGINT SIGTERM
stripit() {
echo "stripping $1"
sed 's/[ \t]*$//' "$1" > $MYTEMP
cp $MYTEMP "$1"
}
if [ $# -gt 0 ]; then
while [ "$1" != "" ]; do
stripit $1
shift
done
else
while read -t 2; do
stripit $REPLY
done
fi
rm $MYTEMP
=================================================
From Sébastien Villemot:
I attach to this message 5 patches that are currently applied to the
Debian package for LAPACK, and that I think could be usefully merged in
the LAPACK SVN tree.
The patches include fixes for old outstanding bugs in the CBLAS test
programs, fixes for the build system, and fixes for various typos.
Each patch file contains a more detailed description of its purpose.