aboutsummaryrefslogtreecommitdiff
path: root/src/interp/sys-constants.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2008-09-07 05:41:35 +0000
committerdos-reis <gdr@axiomatics.org>2008-09-07 05:41:35 +0000
commit18b7b4b5d3511211092796bd8d593d5c9debec02 (patch)
treea90da73966bbb0311bf51c62e9ab8356465be694 /src/interp/sys-constants.boot
parent52642d936f26a18f7d3818fcabe3fad2bff157ea (diff)
downloadopen-axiom-18b7b4b5d3511211092796bd8d593d5c9debec02.tar.gz
Ensure SingleFloat is 32-bit, DoubleFloat 64-bit.
* interp/types.boot: Tidy. * interp/sys-constants.boot: Define limits for builtin numeric types. * interp/sys-os.boot: Import sys-constants. * interp/foam_l.lisp: Import sys-constants. Align builtin numeric types with OpenAxiom runtime's. * interp/fortcall.boot: Tidy. * interp/i-output.boot: Likewise. * interp/Makefile.pamphlet (foam_l.$(FASLEXT)): Now require sys-constants.$(FASLEXT). * algebra/si.spad.pamphlet: Use $ShortMinimum and $ShortMaximum for SingleInteger limits. * algebra/sf.spad.pamphlet: Use $DoubleFloatMaximum, $DoubleFloatMinimum for DoubleFloat limits. * algebra/strap: Update cached Lisp translation.
Diffstat (limited to 'src/interp/sys-constants.boot')
-rw-r--r--src/interp/sys-constants.boot49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/interp/sys-constants.boot b/src/interp/sys-constants.boot
index 12b11104..4bf36c9e 100644
--- a/src/interp/sys-constants.boot
+++ b/src/interp/sys-constants.boot
@@ -40,6 +40,55 @@
import types
namespace BOOT
+--%
+--% Numeric limits
+--%
+
+++ Minimum for %Short values.
+$ShortMinimum ==
+ MOST_-NEGATIVE_-FIXNUM
+
+++ Maximum for %Short values.
+$ShortMaximum ==
+ MOST_-POSITIVE_-FIXNUM
+
+++ Minimum for %SingleFloat values.
+$SingleFloatMinimum ==
+)if %hasFeature KEYWORD::GCL
+ MOST_-NEGATIVE_-SHORT_-FLOAT
+)else
+ MOST_-NEGATIVE_-SINGLE_-FLOAT
+)endif
+
+++ Maximum for %SingleFloat values.
+$SingleFloatMaximum ==
+)if %hasFeature KEYWORD::GCL
+ MOST_-POSITIVE_-SHORT_-FLOAT
+)else
+ MOST_-POSITIVE_-SINGLE_-FLOAT
+)endif
+
+++ Machine precision for %SingleFloat
+$SingleFloatEpsilon ==
+)if %hasFeature KEYWORD::GCL
+ SHORT_-FLOAT_-EPSILON
+)else
+ SINGLE_-FLOAT_-EPSILON
+)endif
+
+++ Maximum for %DoubleFloat values
+$DoubleFloatMinimum ==
+ MOST_-NEGATIVE_-DOUBLE_-FLOAT
+
+++ Maximum for %DoubleFloat values
+$DoubleFloatMaximum ==
+ MOST_-POSITIVE_-DOUBLE_-FLOAT
+
+++ Machine precision for %DoubleFloat
+$DoubleFloatEpsilon ==
+ DOUBLE_-FLOAT_-EPSILON
+
+--%
++ Clock time unit per second.
$timerTicksPerSecond ==