PiecewiseCubic: CEDAR DEFINITIONS = BEGIN Handle: TYPE = LIST OF PieceRec; -- non-overlapping pieces in increasing order PieceRec: TYPE = RECORD [domainStart, domainEnd: REAL, initValue, initSlope, finalSlope, finalValue: REAL]; Zero: PROCEDURE RETURNS [Handle]; Piece: PROCEDURE [domainStart, domainEnd: REAL, initValue, initSlope, finalSlope, finalValue: REAL] RETURNS [Handle]; PieceProc: TYPE = PROCEDURE [p, q: PieceRec]; EnumerateCommonPieces: PROCEDURE [f: Handle, g: Handle, P: PieceProc] ; Combine: PROCEDURE [a: REAL, f: Handle, b: REAL, g: Handle] RETURNS [Handle]; Eval: PROCEDURE [f: Handle, t: REAL] RETURNS [REAL]; EvalDeriv: PROCEDURE [f: Handle, t: REAL] RETURNS [REAL]; EvalDerivDeriv: PROCEDURE [f: Handle, t: REAL] RETURNS [REAL]; EvalAll: PROCEDURE [f: Handle, t: REAL] RETURNS [value,deriv,derivDeriv,derivDerivDeriv,domainStart,domainEnd: REAL]; END. ¨PiecewiseCubic.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Michael Plass Doug Wyatt, September 5, 1985 1:14:45 pm PDT calculates a*f + b*g Κš˜codešœ™Kšœ Οmœ1™K˜Kš ‘œŸ œŸœŸœ@Ÿœ˜uK˜KšŸœ˜—…—xΊ