Apply an equivalence transformation, multiplying each partial denominator
with the corresponding element of the supplied list and transforming
subsequent partial numerators and denominators as necessary. If the list
is too short, the rest of the CF will be unscaled.

Evaluate the convergents of a continued fraction using Lentz's method,
mapping the terms in the final product to a new group before performing
the final multiplications. A useful group, for example, would be logarithms
under addition. In lentzWith f op inv, the arguments are:

f, a group homomorphism (eg, log) from {a,(*),recip} to the group
in which you want to perform the multiplications.

The lentz function, for example, is given by the identity homomorphism:
lentz = lentzWith id (*) recip.

The original motivation for this function is to allow computation of
the natural log of very large numbers that would overflow with the naive
implementation in lentz. In this case, the arguments would be log, (+),
and negate, respectively.

In cases where terms of the product can be negative (i.e., the sequence of
convergents contains negative values), the following definitions could
be used instead:

Evaluate the convergents of a continued fraction using Lentz's method,
(see lentz) with the additional rule that if a denominator ever goes
to zero, it will be replaced by a (very small) number of your choosing,
typically 1e-30 or so (this modification was proposed by Thompson and
Barnett).

Additionally splits the resulting list of convergents into sublists,
starting a new list every time the 'modification' is invoked.