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
* Require unit-norm vector X for otherwise the following computations
might underflow
* Avoid over- and underflows in the computation of the Euclidean norm of
X
* Fix the Euclidean norm computation after the second Gram-Schmidt
iteration
* Consider round-off errors when checking for zero vectors
* Update identifiers
Note that the caller ZUNBDB5 always passed unit-norm vectors X.
Thank you @angsch for discovering typos in the function names (`CLASSQ`
was called instead of `ZLASSQ`).
* Require unit-norm vector X for otherwise the following computations
might underflow
* Avoid over- and underflows in the computation of the Euclidean norm of
X
* Fix the Euclidean norm computation after the second Gram-Schmidt
iteration
* Consider round-off errors when checking for zero vectors
* Update identifiers
Note that the caller CUNBDB5 always passed unit-norm vectors X.
* Require unit-norm vector X for otherwise the following computations
might underflow
* Avoid over- and underflows in the computation of the Euclidean norm of
X
* Fix the Euclidean norm computation after the second Gram-Schmidt
iteration
* Consider round-off errors when checking for zero vectors
* Update identifiers
Note that the caller DORBDB5 always passed unit-norm vectors X.
* Require unit-norm vector X for otherwise the following computations
might underflow
* Avoid over- and underflows in the computation of the Euclidean norm of
X
* Fix the Euclidean norm computation after the second Gram-Schmidt
iteration
* Consider round-off errors when checking for zero vectors
* Update identifiers
This patch was authored by Brian D. Sutton and posted to the discussion
of LAPACK pull request #406.
* fix indexing for vector increments different from one
* always set vectors that are numerically zero to zero
Previously SORBDB6 would only set vectors to zero if a second iteration
of Gram-Schmidt was necessary. This would cause problems on the caller
site if the test for a zero vector differed from the SORBDB6 test for
zero.
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
Rearrange the application of the Householder reflector
to save one instruction per dot product if FMA is
available.
The update from the right, H * (I - tau * v * v**T),
for example, changes from
H - (tau * (H * v)) * v**T
to
H - (H * (v * tau)) * v**T.
The instruction savings are due to the special structure
of v, whose first component is implicitly one (and used
for storing tau).
* 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