DIRECTORY Complex USING [VEC], Seq USING [ComplexSequence, ComplexSequenceRec, NatSequence, NatSequenceRec, RealSequence, RealSequenceRec]; LSFit: CEDAR DEFINITIONS = BEGIN ComplexSequence: TYPE = Seq.ComplexSequence; ComplexSequenceRec: TYPE = Seq.ComplexSequenceRec; RealSequence: TYPE = Seq.RealSequence; RealSequenceRec: TYPE = Seq.RealSequenceRec; NatSequence: TYPE = Seq.NatSequence; NatSequenceRec: TYPE = Seq.NatSequenceRec; Patch: TYPE = RECORD[c0,c1,c2,c3: REAL _ 0]; PatchSequence: TYPE = REF PatchSequenceRec; PatchSequenceRec: TYPE = RECORD[element: SEQUENCE length:NAT OF Patch]; Handle: TYPE = REF StateRec; StateRec: TYPE = RECORD [n: NAT, -- number of points z: ComplexSequence, weight: RealSequence, t: RealSequence, -- the current best guess of parameter values knots: RealSequence, closedCurve: BOOLEAN _ FALSE, xPatches,yPatches: PatchSequence ]; Create: PROC [sa: ComplexSequence] RETURNS [Handle]; InitialKnots: PROC [h: Handle, nknots: NAT _ 2]; XYat: PROC [h: Handle, t: REAL] RETURNS [Complex.VEC]; ClosestKnot: PROC [h: Handle, z: Complex.VEC] RETURNS [NAT]; InitialParametricCubic: PROC [sa: ComplexSequence] RETURNS [Handle]; ImproveParametricCubic: PROC [h: Handle, first: NAT _ 0, last: NAT _ LAST[NAT]]; FitParametricCubic: PROC [h: Handle, first, last: NAT, epsilon: REAL]; ReParameterize: PROC [p: Patch, t0,t1: REAL, nt0,nt1: REAL] RETURNS[np: Patch]; InitialParametricSpline: PROC [sa: ComplexSequence, nknots: NAT, closed: BOOLEAN _ FALSE] RETURNS [Handle]; Sort: PROC [v: RealSequence]; InitialTValues: PROC [h: Handle]; AdjustTValues: PROC [h: Handle]; FitXAndY: PROC [h: Handle]; ImproveParametricSpline: PROC [h: Handle]; END. ΔLSFit.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Michael Plass 10-Mar-82 15:18:23 Doug Wyatt, September 5, 1985 1:08:55 pm PDT does the whole thing for a single piece Κ¨˜codešœ ™ Kšœ Οmœ1™K˜Kšœ žœžœ˜K˜ K˜——K˜KšΟnœžœžœ ˜4K˜Kš‘ œžœžœ˜0K˜Kš ‘œžœžœžœ žœ˜6K˜Kš ‘ œžœžœžœžœ˜