DIRECTORY Rope, ViewerClasses; DifferenceAveragers: CEDAR DEFINITIONS = { ROPE: TYPE = Rope.ROPE; Viewer: TYPE = ViewerClasses.Viewer; Seconds: TYPE = INT; Averager: TYPE = REF AveragerPrivate; AveragerPrivate: TYPE; Create: PROC [ viewerInfo: ViewerClasses.ViewerRec _ [], samplePeriod, halfLife: Seconds, logMin, logMax: INT, Sample: PROC [clientData: REF ANY] RETURNS [add, subtract: REAL], clientData: REF ANY _ NIL ] RETURNS [Averager]; AsViewer: PROC [Averager] RETURNS [Viewer]; GetLayout: PROC [a: Averager, ancestor: Viewer] RETURNS [samplePeriodButton, halfLifeButton, bars: XRange --in client coords of ancestor (screen if NIL)--]; XRange: TYPE = RECORD [left, width: INTEGER]; }. HDifferenceAveragers.Mesa Spreitzer, June 17, 1986 2:38:28 pm PDT ΚP– "cedar" style˜code™K™'—K˜KšΟk œ˜K˜šΟnœœ œ˜*K˜Kšœœœ˜Kšœœ˜$K˜Kšœ œœ˜K˜Kšœ œœ˜%Kšœœ˜K˜šžœ˜ šœ˜K˜)K˜ Kšœœ˜Kš žœœœœœœ˜AKšœ œœ˜K˜—Kšœ ˜—K˜Kšžœœ œ ˜+K˜šž œœ!œ3Οc0œ˜œKšœœœœ˜-—K˜K˜——…—ΎV