(* Copyright (C) 1992, Digital Equipment Corporation *) (* All rights reserved. *) (* See the file COPYRIGHT for a full description. *) (* *) (* Last edited on 2000-12-03 23:12:51 by stolfi *) (* Last modified on Tue Oct 31 14:00:00 BRZ 1995 by stolfi *) (* modified on Mon Jun 21 15:44:49 PDT 1993 by mcjones *) (* modified on Fri May 7 14:47:22 PDT 1993 by muller *) INTERFACE FPU_Patched; IMPORT Ctypes; TYPE fp_bool_t = Ctypes.int; (* Boolean predicate result *) <* EXTERNAL scalbn *> PROCEDURE scalb(x: LONGREAL; n: INTEGER): LONGREAL; <* EXTERNAL *> PROCEDURE ilogb(x: LONGREAL): INTEGER; <* EXTERNAL *> PROCEDURE logb(x: LONGREAL): LONGREAL; <* EXTERNAL *> PROCEDURE nextafter(x, y: LONGREAL): LONGREAL; <* EXTERNAL *> PROCEDURE copysign(x, y: LONGREAL): LONGREAL; <* EXTERNAL *> PROCEDURE finite(x: LONGREAL): fp_bool_t; <* EXTERNAL *> PROCEDURE isnan(x: LONGREAL): fp_bool_t; <* EXTERNAL *> PROCEDURE signbit(x: LONGREAL): INTEGER; <* EXTERNAL *> PROCEDURE sqrt(x: LONGREAL): LONGREAL; TYPE fp_class_t = Ctypes.int; (* IEEE FP number class; actually one of "[FP_SNAN .. FP_PNORM]" *) CONST (* fpclass_t *) FP_NAN = 0; (* Quiet or signaling NaN *) FP_INFINITE = 1; (* -Infinity OR +Infinity *) FP_ZERO = 2; (* -0.0 OR +0.0 *) FP_SUBNORMAL = 3; (* denormalized non-zero *) FP_NORMAL = 4; (* normalized non-zero *) <* EXTERNAL "__fp_classify" *> PROCEDURE fp_classify(x: LONGREAL): fp_class_t; TYPE fp_rnd_t = Ctypes.int; (* IEEE FP rounding mode; actually one of "FP_RN", "FP_RZ", "FP_RP", "FP_RM". NOTE: the values given are chosen to match those used by the RD (Round Direction) field of the FSR (Floating Point State Register). *) CONST (* TYPE fp_rnd_t *) FP_RN = 0; (* round to nearest representable number, tie -> even *) FP_RM = 1; (* round toward minus infinity *) FP_RP = 2; (* round toward plus infinity *) FP_RZ = 3; (* round toward zero (truncate) *) <* EXTERNAL *> PROCEDURE fesetround (t: fp_rnd_t): fp_rnd_t; (* set rounding mode, return previous *) <* EXTERNAL *> PROCEDURE fegetround(): fp_rnd_t; (* return current rounding mode *) END FPU_Patched.