Le 29/08/2016 09:46, Jan Åge Langeland a écrit :
On 29.08.2016 02:09, Tim Wescott wrote:
A kludge would be to make it into two integers.

Each case may not be so complex to work around, but in total it seems like Scilab 6 is not yet well prepared for int64 and uint64.

For instance %x and %o need to be handled too, functions like dec2bin() and dec2hex() should work - etc.

Generally a lot of caution is needed when using these 64 bit integers. Example:
--> int64(2^62+256+1) //loss of prescision
  ans  =
   4611686018427387904
Yes, but this loss is expected, since 2^62+256+1 is performed with decimal encoding.
It is a case similar to the classical 1+ %eps/2
It is not a bug.
For dec2*(): int64 encoding is already supported, and a clear error message is yielded for input integers > 2^52

--> dec2bin(int64(2^52))
 ans  =
 10000000000000000000000000000000000000000000000000000

--> dec2bin(int64(2^53))
at line 12 of function dec2bin ( SCI\modules\elementary_functions\macros\dec2bin.sci line 43 )
dec2base: Wrong value for input argument #1: Must be between 0 and 2^52.

So, there is still a limitation, but it is clearly stated. At least, integers from 2^33 to 2^52 are newly supported :)

Samuel

_______________________________________________
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users

Reply via email to