Le 19/09/2018 à 12:02, Stéphane Mottelet a écrit :
Le 19/09/2018 à 11:46, Samuel Gougeon a écrit :
.../...
At first sight, Octave's result does not look more consistent than
Scilab's one.
But following its own ceiling/flooring rules, yet it is consistent.
What is puzzling is that Scilab implements a *mix* of rules comming
from different software. I am wondering about the true reason:
Scilab:
--> int8(-128)/int8(0)
ans =
-128
This is in Scilab 6. In Scilab 6, int8(-%inf) has been set to the int8
floor, and int8(%inf) to the int8 ceil. It is more consistent than the
5.5 behavior (and is now documented in the 6.0 branch).
Also, 6.0 uses ieee() in a consistent way for encoded integers. That was
not the case with Scilab 5.5. This change would deserve being documented.
So here, the sign is correct, the value as well.
--> int8(-128)/int8(-1)
ans =
-128
Matlab:
>> int8(-128)/int8(0)
ans =
int8
-128
>> int8(-128)/int8(-1)
ans =
int8
127
All these results are consistent in their own referential.
I don't catch where you see a mix of rules.
It is anyway necessary to set a fixed value for int8(%inf) and
int8(-%inf). These inputs are not "infinitely wrappable" :)
To set them to the bounding values is not absurd. This is what Scilab
6.0 does now. To me, it is an improvement.
Samuel
_______________________________________________
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users