Age | Commit message (Collapse) | Author | Files | Lines |
|
TESTINGS are all good now!
|
|
Note: TEST 15 and 19 (xBDT01 - | A - U diag(S) VT | / ( |A| max(M,N) ulp ) are not passing the threshold
TEST 15 and 19 are commented until we find the fix
|
|
Disabling temporarily some [SD]BDSVDX tests - those generate some numerical errors
See email from Osni on Nov 10th 2015
|
|
|
|
Updated Makefile
Updated file format (Oxygen)
Small Fix: sdrvbd / cdrvbd has a lot of double / double complex in comments
From Osni:
Files for LAPACK/SRC (all new, additions to Makefile are needed):
- dbdsvdx.f, sbdsvdx.f: full or partial (subset) SVD of a bidiagonal matrix through an associated eigenvalue problem
- dgesvdx.f, sgesvdx.f, zgesvdx.f, cgesvdx.f: full or partial (subset) SVD of a general matrix by invoking bdsvdx
Files for LAPACK/TESTING/EIG :
- dchkbd.f, schkbd.f: added tests 20-34 for bdsvdx
- dbdt04.f, sbdt04.f (new): needed for tests 25 and 30 in chkbd
- dlahd2.f, slahd2.f: added information about tests 20-34 in chkbd
- derrbd.f, serrbd.f: added tests for the values of INFO returned by bdsvdx
- ddrvbd.f, sdrvbd.f, zdrvbd.f, cdrvbd.f: added tests 23-35 (real case) and 15-27 (complex case) for gesvdx.
- dbdt05.f, sbdt05.f, zbdt05.f, cbdt05.f (new): needed for tests 30,33 (real case) and 22,25 (complex case) for gesvdx
- derred.f, serred.f, zerred.f, cerred.f: added tests for the values of INFO returned by gesvdx
Current Issues:
- 16 real tests do not pass the threshold ( ssvd.out) - but seems to go through in debug
- serrbd.f has some DOUBLE PRECISION calculation inside - Is that ok or shall we change it to REAL?
Line 113-119
* Set the variables to innocuous values.
*
DO 20 J = 1, NMAX
DO 10 I = 1, NMAX
A( I, J ) = 1.D0 / DBLE( I+J )
10 CONTINUE
20 CONTINUE
TODO:
- corresponding LAPACKE routines
- Test Doxygen format
|
|
to reflect the chnage in the algorithm for TEST4 for rook pivotig routines, since we now use singular values instead of eigenvalues in TEST4 to compute the norm for 2-by-2 marices in TEST 4. Also corrected the bug in for Hermitian case in TEST4, where during the constraction of Hermitian 2-by-2 matrices the operation of complex conjugation was missing. Changes made to: cchkhe_rook.f cchksy_rook.f dchksy_rook.f schksy_rook.f zchkhe_rook.f zchksy_rook.f
|
|
Added a BUILD_DEPRECATED option for make and cmake, which build
deprecated routines into the LAPACK library (OFF by default).
This completes r1563.
TODO: document the BUILD_DEPRECATED option (i.e. update documentation).
|
|
TODO: LAPACKE wrappers.
|
|
4 for UPLO='U' case that test bounds of block diagonal matrices. TEST 4 wasfailing for UPLO='U', since 2-by-2 was passed incorrectly to the -EVX routine. Also, during the fix the TEST 4 for both UPLO='U' and 'L' was modified. Instead of computing the ratio of eigenvalues for 2-by-2 matrices, using the -EVX routines, now we compute the ratio of singular values using *GESVD routines. Affected test routines: TESTING/LIN/schksy_rook.f TESTING/LIN/dchksy_rook.f TESTING/LIN/cchksy_rook.f TESTING/LIN/zchksy_rook.f TESTING/LIN/cchkhe_rook.f TESTING/LIN/zchkhe_rook.f
|
|
|
|
WARNING: xGEQPF is still used in xGGSVP routines.
|
|
NOTE: The tests are renumbered in xDRVLS and xCHKTZ.
TODO: remove deprecated xGEQPF, when it is replaced by xGEQP3 in xGGSVP.
|
|
|
|
(Oracle)
|
|
|
|
This is a routine to test DGELS which solves solves full rank overdetermined ( linear least squares ) or underdetermined (minimum norm) linear systems.
The check is, as follows,
(1) If the system is consistent, (smallresidual,) we check that
|| A^T ( b – A * x ) || / (||A||*||b||*max(M,N,NRHS)*eps)
is small (say less than 30).
(2) If the system is not consistent, (large residual,) we check that
|| A^T ( b – A * x ) || / (||A||*|| b - A*x ||*max(M,N,NRHS)*eps)
is small (say less than 30).
DQRT17 was checking in the not consistent case (large residual) that
|| A^T ( b – A * x ) || / (||A||*||x||*max(M,N,NRHS)*eps)
is small. It is a mistake and we need to change the ||x|| by a ||r||.
This fix is consistent with what the documentation says and makes more sense.
|
|
The matrix D needs to be of size N.
|
|
(1) The routine was writing ZEROs out of bound in some specific cases. This is
corrected. Thanks to Yi Meng (CU Denver) for finding the bug.
(2) Quick exit when KL=KU=0 in this case, the user wants a diagonal matrix,
there is probably no reason to call this routine if one simply wants a diagonal
matrix, but that said we still ought to return a correct answer. A quick exit
makes the trick. The routine was not working otherwise.
|
|
|
|
|
|
|
|
this has nothing to do here, probably a bad copy-paste from Z to D
|
|
|
|
|
|
in ?SYSVXX
INFO = -10 needs to be changed to INFO = -11
The code in this section of the files is about to check and make sure all S
elements are positive. And S is argument 11 not 10.
in ?ERRVXX
Add info testing for input parameter 10 and 11
|
|
Some arguments return the wrong Info number
For example LDX is not the 14th argument, but 15th.
Correct corresponding testing routines
|
|
Add xGGES3 and xGGEV3: computation of the Schur form, the Schur vectors, and
the generalized eigenvalues using the blocked Hessenberg reduction.
|
|
|
|
related to 1522
Correct call to [SD]chkhs to add new arguments.
|
|
Also in TESTING/EIG, I fixed two bugs in s/d chkhs; the diff of schkhs is:
790c790
< CALL SLACPY( ' ', N, N, U, LDU, UZ, LDU )
---
> CALL SLACPY( ' ', N, N, U, LDU, UZ, LDA )
831c831
< $ ABS( WI1( J )-WI3( J ) ) )
---
> $ ABS( WR1( J )-WR3( J ) ) )
In further testing, I was able to produce a test case where Test 8 fails comparing
the eigenvalues from xHSEQR(‘E’,’N’) with the eigenvalues from xHSEQR(‘S’,’V’).
The eigenvalues were the same, but in a different order. It appears that xHSEQR
does some rearrangement of the Schur matrix and so we should not expect the
eigenvalues to be in the same order, although I am trying to confirm this
with the authors. In the meantime, I have modified xCHKEE and xCHKHS to
compute the eigenvalues from xHSEQR(‘S’,’N’) in a separate array W2 (or
WR2 and WI2) so that test 8 can compare the eigenvalues from xHSEQR(‘S’,’N’)
with the eigenvalues from xHSEQR(‘S’,’V’).
|
|
In TESTING/LIN/schkrq.f and schklq.f (only those, not the other precisions), the loop to look for test failures runs from 1 to NTESTS, it should be 1 to NT.
|
|
In TESTING/LIN, the test routines xchkqr kept track of the number of tests performed in the variable NT, which could be 2, 6, or 7. Recently another test was added at the end and the loop that checks for failing tests was changed to run from 1 to NT to 1 to NTESTS, including tests that were never performed. As a result, with THRESH = 0., the number of tests failing exceeds the number of tests performed (for example, with n = 1 as the only N value and THRESH = 0.0 you get “604 out of 514 tests failed to pass the threshold”.) The right way to fix this would be to renumber the tests so that the new test is test #3 and the loop can run from 1 to NT again, but I just changed the count of tests performed from NT to NTESTS. For consistency between schkqr and schkrq and other test routines in the QR family, it would have been better for the new tests to go in a separate test module.
|
|
number of tests in xdrvge and xdrvgb
|
|
|
|
The patch fixes the warnings (Policy CMP0026) by replacing the deprecated LOCATION target
property with the generator expression $<TARGET_FILE>
See http://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=13&t=4556&p=10939#p10939
|
|
From Elena:
there is a minor bug in /LIN/dchkql.f:
Array IWORK (a parameter of this routine) is not used at all.
It would be better to remove IWORK from the list of parameters,
remove its declaration and description in the code of /LIN/dchkql.f:
Note: only dchkql had that IWORK parameter, [c,s,z]chkql don't have it.
|
|
|
|
|
|
routines, when XBLAS is linked
|
|
|
|
There is FPE in the 457th line of CDRVRFP:
cdrvrfp.f
(dbx) where
=>[1] cdrvrfp(nout = 6, nn = 9, nval = ARRAY, nns = 3, nsval = ARRAY, nnt = 9, ntval = ARRAY, thresh = 30.0, a = ARRAY, asav = ARRAY, afac = ARRAY, ainv = ARRAY, b = ARRAY, bsav = ARRAY, xact = ARRAY, x = ARRAY, arf = ARRAY, arfinv = ARRAY, c_work_clatms = ARRAY, c_work_cpot02 = ARRAY, c_work_cpot03 = ARRAY, s_work_clatms = ARRAY, s_work_clanhe = ARRAY, s_work_cpot01 = ARRAY, s_work_cpot02 = ARRAY, s_work_cpot03 = ARRAY), line 457 in "cdrvrfp.f"
MAIN(), line 244 in "cchkrfp.f"
When N=0, attempt to calculate a condition number → FPE, because we try to delete by zero (ANORM = 0.0, AINVNM = 0.0) in the 457th line:
Line 457:
RCONDC = ( ONE / ANORM ) / AINVNM
|
|
|
|
Bug report sent by Elena Ivanova <elena.x.ivanova@oracle.com> on Sept 10th
|
|
|
|
LIN/CMakeLists.txt
|
|
LIN/cchkhe_rook.f LIN/cdrvhe_rook.f LIN/cerrhe.f LIN/cerrvx.f LIN/zchkaa.f LIN/zchkhe_rook.f LIN/zdrvhe_rook.f LIN/zerrhe.f LIN/zerrvx.f ctest.in ztest.in
|
|
pivoting code: aladhd.f
|
|
pivoting code: aladhd.f, alahd.f
|
|
|
|
|