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

Reply via email to