PiecewiseCubic.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Michael Plass
Doug Wyatt, September 5, 1985 1:14:45 pm PDT
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];
calculates a*f + b*g
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.