[Scilab-Dev] Big literal integers for int64() and uint64()

Samuel Gougeon sgougeon at free.fr
Sat Oct 27 17:34:51 CEST 2018


Hello Antoine,

Thanks for your answer.
I have opened a bug report #15837 
<http://bugzilla.scilab.org/show_bug.cgi?id=15837> about this topic.

About the overload:

Le 27/10/2018 à 14:00, Antoine ELIAS a écrit :
> Hello Samuel,
>
> Currently, parser ... lexer, in fact, try to read "number" and convert 
> it to floating point number, at this moment, we have no idea what the 
> final goal of this number.
> After that, the parser try to understand what to do with this number 
> (already a double).
> So I think the first case is not possible with the current management 
> of numbers.
>
> For string argument, I think it cannot be done easily in an overload 
> macro for the same reason.

In the report, i have posted a proposal for a working 11-rows-long 
%c_uint64() overload (without the error messages ;)
With it, we get for instance

--> %c_uint64("9000000000000001000") + [ 1 -1001 ; 4 7]
  ans  =
   9000000000000001001  8999999999999999999
   9000000000000001004  9000000000000001007

whereas
--> uint64(9000000000000001000) + [ 1 -1001 ; 4 7]
  ans  =
   9000000000000001025  9000000000000000023
   9000000000000001028  9000000000000001031

It can process any relevant input array of any number of dimensions.

Best regards
Samuel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/dev/attachments/20181027/a11ed14e/attachment.htm>


More information about the dev mailing list