Livermore Loop 03,12,07 LACFUNs need AVIS_MIN and AVIS_MAX for AWLF
|
|
Bugzilla Link |
905 |
Created on |
Jan 18, 2012 21:26 |
Version |
svn |
OS |
Linux |
Architecture |
PC |
Extended Description
A number of the Livermore Loops and, presumably, lots of other codes,
fail to handle AWLF properly. Here is one reason why:
drop( [i], vec) - drop( [-i], vec)
This does not AWLF, because the drop() code is unable to ensure that:
G1: (i <= shape(vec)[0]) && ( (-i) <= shape(vec)[0])
I see two ways around this:
A. Introduce AVIS_MIN and AVIS_MAX into LACFUN headers, a la AVIS_DIM.
This will catch some of the failures, when the drop() code is
within a LACFUN, and vec is defined without an intervening
user-defined fun (which would lose AVIS_MIN).
B. Introduce guards into stdlib code to handle G1. This would work
in many circumstances, and would be CF'd out of existence in
case A.
I am going to beat up on IVEXI and make it do the job, unless
ISAA can be make to do it.