Hi Harald,
Thanks a lot! Good catch ....
We did move to Fortran 90+ intrinsic EPSILON() for LAPACK/SRC (as your probably
know), but indeed we totally
missed to propagate the change to BLAS/TESTING. BLAS/TESTING is indeed
computing EPSILON ala Fortran 77
way ... the computation is inlined .... and does not call xLAMCH .... So (1) we
missed it and (2) an optimized
compiler will likely trash this. See lines 280 to 290 of
LAPACK/BLAS/TESTING/dblat2.f for example.
We will be working on fixing this and let you know when fix. Thanks for
reporting. Much appreciated.
Cheers,
Julien.
[[[ example of guilty lines: lines 280 to 290 of LAPACK/BLAS/TESTING/dblat2.f
]]]
*
* Compute EPS (the machine precision).
*
EPS = ONE
90 CONTINUE
IF( DDIFF( ONE + EPS, ONE ).EQ.ZERO )
$ GO TO 100
EPS = HALF*EPS
GO TO 90
100 CONTINUE
EPS = EPS + EPS
WRITE( NOUT, FMT = 9998 )EPS
On Jan 18, 2012, at 3:40 PM, Harald Anlauf wrote:
Hi,
some tests of the BLAS fail on Intel and AMD processors when
compiling with high optimization level (e.g. gfortran -Ofast).
The reason is that the determination of machine precision in
these tests only works without optimization.
I recommend to always use the Fortran 90+ intrinsic EPSILON()
where appropriate.
See the attached for details.
Regards,
Harald
<patch-blas-3.4.0>_______________________________________________
Lapack mailing list
Lapack@Domain.Removed
http://lists.eecs.utk.edu/mailman/listinfo/lapack
|