Incorrect behaviour in real ?LACN2 under Fortran 95 SIGN semantics. Improved some ?COPY testing. #402
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi,
My colleague Edvin Hopkins at NAG noticed that SLACN2 and DLACN2 suffers from the change in meaning of SIGN at Fortran 95, with respect to negative zero. With DLACN2 this was manifesting as incorrect results in the DGEEVX example program we distribute with our numerical library.
The intended semantics can be seen in the original paper e.g. at http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.117.4839&rep=rep1&type=pdf (page 384), so we suggest inlining the expression as an IF block in order to uniformly force the correct behaviour.
I have also taken the opportunity to improve the new INCX==INCY=0 testing in ?blat1 in order to run the new tests only once and to display the correct INC values on failure.