Comments (10)
@ACSimon33 In my environment, I have reproduced these failures even not for coverage build.
Looks like root-cause is uninitialized variable RESULT( 4 )
inside test routine, for example in TESTING/LIN/dchkqp3rk.f
. Initially, it contains trash, since it can be uninitialized due to false of condition
IF( DTEMP.LT.ZERO ) THEN
RESULT( 4 ) = BIGNUM
END IF
in normal case.
That's why final check for thresh
IF( RESULT( 4 ).GE.THRESH ) THEN
is always true, which lead to every test failure.
Somewhere above we should set
RESULT( 4 ) = ZERO
from lapack.
@dklyuchinskiy Nice catch! Should I create a MR or do you want to do that?
from lapack.
@dklyuchinskiy Nice catch! Should I create a MR or do you want to do that?
@ACSimon33 I will be glad, if you create MR and check fix with coverage build. I did not work with it before.
Also, I am confused with some other places inside test.
- According to the documentation, condition 4 is
Returns 1.0D+100 if abs(R(K+1,K+1)) > abs(R(K,K)), K=1:KFACT-1
The elements on the diagonal of R should be non-increasing.
But after that we check the condition
DTEMP = (( ABS( A( (J-1)*M+J ) ) -
$ ABS( A( (J)*M+J+1 ) ) ) /
$ ABS( A(1) ) )
Indexes point to sub-diagonal elements of A (or R). Is it equal to the documentation?
- In the formula above we should use
LDA
insteadM
, I guess.
Please correct me, if I am wrong.
from lapack.
@dklyuchinskiy I think the indices are actually pointing to the diagonal since Fortran is 1-indexed. So, for example if M=10
and J=1
it will be (A(1) - A(12))/A(1)
, which is the first diagonal element minus the second one scaled by the first. So, the test itself is correct.
I agree that we should use LDA
even if it doesn't make a difference for the test (LDA=max(1,M)
) because the test is only executed if the matrix rank is greater than 2.
from lapack.
This bug is currently in the process of fixing. This is a test number 4 which currently does not affect the correctness of the routine code/results. The test should check (with some care) if ABS values of the diagonal elements are non-increasing.
@ACSimon33 could you please provide:
- the information about your system environment;
- If the failing tests report that you provided in your original bug report if not complete (i.e. truncated), please prove the full output.
Thank you.
from lapack.
Hi @scr2016,
please have a look at the PR which is linked in this issue. The problem was just an un initialized RESULT vector as far as I can tell. At least it fixed the issue on my side and all tests are passing now.
I can reproduce the old errors tomorrow if you think that it’s still necessary.
from lapack.
from lapack.
@dklyuchinskiy I think the indices are actually pointing to the diagonal since Fortran is 1-indexed. So, for example if
M=10
andJ=1
it will be(A(1) - A(12))/A(1)
, which is the first diagonal element minus the second one scaled by the first. So, the test itself is correct.
@ACSimon33 Yeap, thank you for explanation! You are right! My fault :)
from lapack.
@ACSimon33. The complete test error output and the environment information would help to check the issue thoroughly. Thank you in advance.
@scr2016 Here are the complete test results:
LAPACK_test_results.txt
I compiled with GCC 13.2 on CentOS Linux 7 (Core). The issues only appear in the coverage build for me:
mkdir build && cd build
cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_Fortran_COMPILER=gfortran -DCMAKE_BUILD_TYPE=coverage ..
make -j8
ctest -j8
from lapack.
@scr2016 I tried with some more GCC version (4.8.5, 5.5.0, 6.5.0, 7.5.0, 8.4.0, 9.3.0, 10.3.0, 12.2.0, 13.2.0). The issue only exists for GCC >= 7.5.0.
from lapack.
Related Issues (20)
- Overwriting `CMAKE_INSTALL_RPATH` in CMakeLists.txt HOT 1
- vectorization of lapack routines. HOT 7
- Allow installing binaries to subdirectory while keeping CMake package scripts in the same place HOT 1
- xORMQR and xLARFB discrepancy with documentation HOT 17
- ?hbmv and ?hpmv and the documentation notes seem to be inconsistent
- lapack_sgeev routine not going to all routines shown in the call graph while debugging. HOT 17
- poor accuracy with dsterf
- in-place (scaled) matrix transposition: imatcopy HOT 6
- xGETC2 order of loops in finding max element of submatrix HOT 3
- Uninitialized variables in BLAS test HOT 4
- Less accuracy due to FMAs HOT 8
- cblas_dgbmv: Result of row-major is not consistent to column-major HOT 6
- Should we allow C++? HOT 5
- Build failure with -Werror=lto-type-mismatch HOT 12
- Xerbla_array, Xerbla and lsame in BLAS or LAPACK? HOT 1
- LAPACK master does not compile with CMake 3.9
- Highly scale-dependent efficiency of ZHEEVR and DSYEVR HOT 3
- BDSQR workspace does not take into account fallback into LASQ1 HOT 1
- *syevr eigenvalues depend on whether eigenvectors are computed or not HOT 11
- xSTEMR: are zero eigenvalues sufficiently accurate?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lapack.