Some SLATRS3 tests were failing with OpenBLAS where the RHS has
a BIGNUM (=Infinity in this test) component. OpenBLAS SSCAL, when
multiplying with 0, will turn this component into 0, unlike
reference BLAS which turns it into NaN. While NaN looks more correct
it still did not explain why DLATRS3 tests were succeeding where
DSCAL has the same difference between reference and OpenBLAS.
Diffing the test code unmasked a few bugs, which makes the test succeed
and also unmasked a bug in the CLATRS3 test.
The ZLATRS3 and DLATRS3 tests look correct to me.
squares algorithm that solves overdetermined or underdetermined systems for
GE matrices using QR or LQ factorization with compact WY representation
of Q inside the routine.
*GELST is similar to *GELS, but unlike *GELS does not compute triangular blocks
twice, i.e. runs faster.
modified: SRC/Makefile
new file: SRC/cgelst.f
new file: SRC/dgelst.f
new file: SRC/sgelst.f
new file: SRC/zgelst.f
modified: TESTING/LIN/alahd.f
modified: TESTING/LIN/cdrvls.f
modified: TESTING/LIN/cerrls.f
modified: TESTING/LIN/ddrvls.f
modified: TESTING/LIN/derrls.f
modified: TESTING/LIN/sdrvls.f
modified: TESTING/LIN/serrls.f
modified: TESTING/LIN/zdrvls.f
An extensions of LATRS solving T*x = s*x to many right-hand sides,
allowing the usage of BLAS-3.
The new algorithm tends to use less aggressive scaling,
in particular for larger matrices.
The tests of ztrsyl via zget35 are on tiny matrices that fall into the
unblocked section of ztrsyl3. Add a new test file that checks ztrsyl(3)
for larger matrices and their compatibility: Every problem that is
solvable by ztrsyl must be solvable by ztrsyl3.
The test driver allocates a scalar for INFO,
but the test writes to 3 entries. Revise
INFO allocation & propagation:
* Allocate sufficient space for the two INFOs
* Instead of discarding INFO computed in [ds]get40, return
INFO to test driver
* Fix documentation of input/output arguments
[ds]get31: Fix typo in docs
At least some tests, though there are still code paths
that are not covered
* input sizes defined in nep.in are small
* RWORK in [CZ]TREVC3 is de factor defined as N-vector
from the input file and limits the blocked computation
* For REAL tests, replace 1.D0 with 1.0
* For CMPLX tests, replace CMPLX(1.D0, 1.D0) with CMPLX(1.0, 1.0)
* [sz]het01_aa.f: replace dimension cast DBLE(N) with REAL(N)
* [cz]syt01_aa.f: replace dimension cast DBLE(N) with REAL(N)
and init CONE and CZERO as complex numbers
* TPMLQT, GEMLQT: Revert check of ldv and correct docs
* Add input parameter checks for LASWLQ
* LAMSWLQ: Fix mixed up column count of rhs (n) and original matrix (m)
* add input parameter tests
* revert check of n when it denotes the column of the matrix to be updated
and correct the docs
* relax constraint on mb and update docs - special cases outside of the docs
are handled by a call to GEQRT
When building with -fdefault-integer=8, the type changes, but
only some compiler like gfortran implements `omp_set_num_threads`
with integer*8 input. When swapping the openmp library with
LLVM openmp, this doesn't work yet. Until LLVM openmp is fixed
explicitly setting the type fixes the build issue.