dec2base() is 53-bit limited by double. It is not uint64-ready
Reported by Samuel GOUGEON (@sgougeon)
BUG DESCRIPTION:
----------------
uint64 integers have a better relative accuracy than decimal numbers whose mantissa is encoded on only 53 bits.
For all integer processing functions, uint64 (or int64 for signed values) should be the basic, a-posteriori downgraded by any required conversion into double.
This is the case for dec2base() that presently accepts only doubles.
It was fine when all encoded integers had a less accurate mantissa. It is no longer the case with uint64.
--> dec2base(uint64(2^54+1), 2) // inappropriate error message:
dec2base: Wrong type for input argument #1: A matrix of integer value expected.
--> dec2base(double(uint64(2^54+1)), 2)
dec2base: Wrong value for input argument #1: Must be between 0 and 2^52.
ERROR LOG:
----------
See above
HOW TO REPRODUCE THE BUG:
-------------------------
dec2base(uint64(2^54+1), 2)
dec2base(double(uint64(2^54+1)), 2)
OTHER INFORMATION:
------------------
This impedes all functions using dec2base: dec2bin, dec2oct, dec2hex, etc