Each component is first expanded in a continued fraction of the
formx = floor(x) + 1/(p1 + 1/(p2 + ...)))
where p1, p2, ...are positive integers, terminating either
at cycles terms or when a pj > max.denominator. The
continued fraction is then re-arranged to retrieve the numerator
and denominator as integers.
The numerators and denominators are then combined into a
character vector that becomes the "fracs" attribute and used in
printed representations.
Arithmetic operations on "fractions" objects have full floating
point accuracy, but the character representation printed out may
not.