exact rationalization of big floats



Is there a function that does exact big float to rational
conversions?  It would work like the Common Lisp function
'rationalize' for big floats:

    (rationalize 0.1)
    3602879701896397/36028797018963968

The Maxima function 'rat' doesn't do exact conversion:

(%i1) rat(0.1);
RAT replaced 0.1 by 1//10 = 0.1
(%o1) 1/10
(%i2) rat(0.1), ratepsilon : 1.0e-50;
RAT replaced 0.1 by 1//10 = 0.1
(%o2) 1/10


Barton