IVEXP overly conservative in setting AVIS_MIN for _aplmod_()
|
|
Bugzilla Link |
1113 |
Created on |
Jan 27, 2014 21:22 |
Version |
svn |
OS |
Linux |
Architecture |
PC |
Extended Description
This fault has been around since the invention of F_aplmod_().
The problem is that IVEXP fails to set AVIS_MIN when the modulus
is known to be positive.
This caused an AWLF unit test failure for relax*sac, due to
the presence of things such as rotate( -1, mat).
The following test case shows the problem, when compiled with -doawlf -nowlf.
The _ge_() should be CF'd away, because the aplmod() result is guaranteed
to be non-negative.
int[*] id(int[*] y)
{
return(y);
}
int main()
{
x = id( 5);
x = _max_SxS_( x, 1);
z = _aplmod_SxS_( -1, x);
z = _ge_SxS_( z, 0);
z = _sub_SxS_( toi( z), 1);
return(z);
}
Fix coming as soon as I test it...