<<>> <> <> <> DRealFns: CEDAR DEFINITIONS = BEGIN <> Exp: PROC [x: DREAL] RETURNS [DREAL]; <> <<>> Ln: PROC [x: DREAL] RETURNS [DREAL]; <> <<>> Log: PROC [base, arg: DREAL] RETURNS [DREAL]; <> <<>> Power: PROC [base, exponent: DREAL] RETURNS [DREAL]; <> <<>> Root: PROC [index, arg: DREAL] RETURNS [DREAL]; <> <<>> SqRt: PROC [x: DREAL] RETURNS [DREAL]; <> <<>> <> Sin: PROC [radians: DREAL] RETURNS [DREAL]; SinDeg: PROC [degrees: DREAL] RETURNS [DREAL]; Cos: PROC [radians: DREAL] RETURNS [DREAL]; CosDeg: PROC [degrees: DREAL] RETURNS [DREAL]; Tan: PROC [radians: DREAL] RETURNS [DREAL]; TanDeg: PROC [degrees: DREAL] RETURNS [DREAL]; <<>> ArcTan: PROC [y, x: DREAL] RETURNS [radians: DREAL]; ArcTanDeg: PROC [y, x: DREAL] RETURNS [degrees: DREAL]; <> SinH: PROC [x: DREAL] RETURNS [DREAL]; <> CosH: PROC [x: DREAL] RETURNS [DREAL]; <> TanH: PROC [x: DREAL] RETURNS [DREAL]; <> CotH: PROC [x: DREAL] RETURNS [DREAL]; <> InvSinH: PROC [x: DREAL] RETURNS [DREAL]; InvCosH: PROC [x: DREAL] RETURNS [DREAL]; <<...defined for x >= 1.0, returns non-negative result>> <<>> InvTanH: PROC [x: DREAL] RETURNS [DREAL]; <<...defined for x IN (-1.0..1.0)>> <<>> InvCotH: PROC [x: DREAL] RETURNS [DREAL]; <<...defined for x NOT IN [-1.0..1.0]>> <<>> <> LnGamma: PROC [x: DREAL] RETURNS [DREAL]; <<.. defined for x>0>> Gamma: PROC [x: DREAL] RETURNS [DREAL]; <<.. defined for x>0; computed by Exp[LnGamma[x]]>> << Gamma[x+1] = x! for integer x.>> <<>> <> J0: PROC [x: DREAL] RETURNS [DREAL]; <> <<>> J1: PROC [x: DREAL] RETURNS [DREAL]; <> <<>> Jn: PROC [n: INT, x: DREAL] RETURNS [DREAL]; <> <<>> Y0: PROC [x: DREAL] RETURNS [DREAL]; <> <<>> Y1: PROC [x: DREAL] RETURNS [DREAL]; <> <<>> Yn: PROC [n: INT, x: DREAL] RETURNS [DREAL]; <> <<>> <> Rational: TYPE ~ RECORD [numerator: INT, denominator: INT]; RationalFromDReal: PROC [x: DREAL, limit: INT ¬ INT.LAST] RETURNS [Rational]; <<... computes the best rational approximation to a real using continued fractions.>> <<|numerator| <= limit, 0 < denominator <= limit.>> <<>> <> AlmostZero: PROC [x: DREAL, distance: INTEGER] RETURNS [BOOL]; <> <> <<>> AlmostEqual: PROC [y, x: DREAL, distance: INTEGER] RETURNS [BOOL]; <> <> <> <> <> <> <<>> <<>> END. <> <> <<>>