PiecewiseFitExtras.mesa
Copyright © 1988 by Xerox Corporation. All rights reserved.
Bier, February 6, 1989 6:40:12 pm PST
Created to include routines written by John Eisenman, December 31, 1987 7:57:59 pm PST
Contents: More routines for fitting cubics to samples in the place.
DIRECTORY
PiecewiseFit, Seq, Complex, Rope, LSPieceExtras, Cubic2;
PiecewiseFitExtras: CEDAR DEFINITIONS = BEGIN
JointTanRec: TYPE = RECORD[index: NAT, tanIn, tanOut: Complex.VEC ← [0,0]];
JointTanSeqRec: TYPE = RECORD[element: SEQUENCE length:NAT OF JointTanRec];
JointTanSequence: TYPE = REF JointTanSeqRec;
Data: TYPE = REF DataRec;
DataRec: TYPE = PiecewiseFit.DataRec;
Metrics: TYPE = LSPieceExtras.Metrics;
Cubic2Proc: TYPE = PiecewiseFit.Cubic2Proc;
TangentProc: TYPE = PiecewiseFit.TangentProc;
GrowSpline2: PROC [data: Data, realLength: NAT, metrics: Metrics, outputCubic2: Cubic2Proc, tangent: TangentProc, debug: BOOLFALSE, hilight: Cubic2Proc ← NIL];
Like PiecewiseFit.GrowSpline but with arguments "realLength", "tangent" and "debug".
DynSpline2: PUBLIC PROC [data: Data, realLength: NAT, metrics: Metrics, penalty: REAL, trim: BOOLTRUE, outputCubic2: Cubic2Proc, tangent: TangentProc, debug: BOOLFALSE, hilight: Cubic2Proc ← NIL];
Like PiecewiseFit.DynSpline but with arguments "realLength", "tangent" and "debug".
AdaptiveFit2: PROC [data: Data, from, thru: NAT, initFree, finalFree: BOOLTRUE, metrics: Metrics, outputCubic2: Cubic2Proc, tangent: TangentProc, debug: BOOLFALSE, hilight: Cubic2Proc];
Like PiecewiseFit.AdaptiveFit but with arguments "debug" and "hilight".
IterFit: PROC [data: Data, from, thru: NAT, initFree, finalFree: BOOLTRUE, metrics: Metrics, outputCubic2: Cubic2Proc, tangent: TangentProc, debug: BOOLFALSE, hilight: Cubic2Proc ← NIL, earlyBreak: BOOLTRUE, useMaxDev: BOOLTRUE, joints: JointTanSequence ← NIL];
ChunkGrow: PUBLIC PROC [data: Data, realLength: NAT, metrics: Metrics, outputCubic2: Cubic2Proc, tangent: TangentProc, debug: BOOLFALSE, hilight: Cubic2Proc ← NIL];
Combine elements of Adaptive, Grow and Dyn.
FitPieceInterp2: PROC [z: Seq.ComplexSequence, t: Seq.RealSequence ← NIL, from, thru: NAT, metrics: Metrics, initFree, finalFree: BOOLFALSE, initTangent, finalTangent: Complex.VEC ← [0,0], useOldTValues: BOOLFALSE] RETURNS [b: Cubic2.Bezier, err: REAL, iterations: NAT, maxDev: REAL, indexOfMaxDev: NAT];
Modified by Eisenman to be more careful with initial and final tangents.
END.