<<>> <> <> <> DIRECTORY IO; G3dFunction: CEDAR DEFINITIONS ~ BEGIN <> STREAM: TYPE ~ IO.STREAM; FunctionProc: TYPE ~ PROC [t: REAL] RETURNS [REAL]; LineProc: TYPE ~ PROC [x0, y0, x1, y1: REAL]; <> MinimizeFunction: PROC [ function: FunctionProc, t0: REAL ¬ 0.0, -- minimum abscissa t1: REAL ¬ 360.0, -- maximum abscissa logSlope: REAL ¬ -1.758121, -- ~ RealFns.Log[10.0, 3.1416/180.0] alpha: REAL ¬ 0.35, slopeFac: REAL ¬ 0.5, certainFac: REAL ¬ 1.0, logEps: REAL ¬ -4.0, lineProc: LineProc ¬ NIL, report: STREAM ¬ NIL] RETURNS [REAL]; <> <> <> <> <> <> <<>> MinimizeMonotonic: PROC [ function: FunctionProc, t0: REAL ¬ 0.0, -- minimum abscissa t1: REAL ¬ 360.0, -- maximum abscissa eps: REAL] -- return if dt < eps RETURNS [REAL]; <> <> <> <> Gauss: FunctionProc; <> << [Artwork node; type 'Artwork on' to command tool] >> Spike: FunctionProc; <> << [Artwork node; type 'Artwork on' to command tool] >> <<>> Wyvill: FunctionProc; < 0):>> << [Artwork node; type 'Artwork on' to command tool] >> Poisson: PROC [x, a: REAL] RETURNS [REAL]; <> << [Artwork node; type 'Artwork on' to command tool] >> Perlin: PROC [x, a: REAL] RETURNS [REAL]; < 0.5 produces convexity:>> << [Artwork node; type 'Artwork on' to command tool] >> END.