10.1.5.4 Reparameterization

Reparameterization changes the t value for each point
p on the bitmap curve, thus changing the place on the spline
which corresponds to p. Given these new t values, Limn
will then fit a new spline (see the previous section) to the bitmap, one
which presumably matches it more closely.

Reparameterization is almost always a win. Only if the initial fit
(see section 10.1.5.1 Initializing t) was truly terrible will reparameterization be a
waste of time, and be omitted in favor of immediate subdivision (see the
next section).

Limn sets the default threshold for not reparameterizing to be 30
"square pixels" (this number is compared to the least-squares error;
see the previous section). This is usually only exceeded in cases such
as that of an outline of `o', where one spline cannot possibly fit
the entire more-or-less oval outline. You can change the threshold with
the option `-reparameterize-threshold'.

If the error is less than `reparameterize-threshold', Limn
reparameterizes and refits the curve until the difference in the error
from the last iteration is less than some percentage (10 by default; you
can change this with the option `-reparameterize-improve').

After Limn has given up reparameterization (either because the initial
fit was worse than `reparameterize-threshold', or because the error
did not change by more than `reparameterize-improve'), the final
error is compared to another threshold, 2.0 by default. (You can
specify this with the option `-error-threshold'.) If the error is
larger, Limn subdivides the bitmap curve (see the next section) and fits
each piece separately. Otherwise, Limn saves the fitted spline and goes
on to the next piece of the pixel outline.