[Scilab-users] [Scilab-Dev] algebra conventions with integer types to be discussed
    Samuel Gougeon 
    sgougeon at free.fr
       
    Wed Sep 19 12:25:35 CEST 2018
    
    
  
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
    
    
More information about the users
mailing list