Each component is first expanded in a continued fraction of the
form

`x = 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.