  We describe algorithms for finding the regression of t, a sequence of values,
to the closest sequence s by mean squared error, so that s is always increasing
(isotonicity) and so the values of two consecutive points do not increase by
too much (Lipschitz). The isotonicity constraint can be replaced with a
unimodular constraint, where there is exactly one local maximum in s. These
algorithm are generalized from sequences of values to trees of values. For each
scenario we describe near-linear time algorithms.
