aboutsummaryrefslogtreecommitdiff
path: root/src/algebra
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-02-06 03:36:41 +0000
committerdos-reis <gdr@axiomatics.org>2011-02-06 03:36:41 +0000
commit9c5ffc67bc7783bf0a93335ef6703a10a602ff37 (patch)
tree95cab276671a8a4d802bc24e6c97241985055753 /src/algebra
parente007c1c9b02538f76a17eb630f5b6db8ef131c6d (diff)
downloadopen-axiom-9c5ffc67bc7783bf0a93335ef6703a10a602ff37.tar.gz
* interp/g-opt.boot ($VMsideEffectFreeOperators): Include %fmanexp.
(sideEffectFree?): New. (varIsAssigned): Tidy. (canInlineVarDefinition): Likewise. * interp/boot-pkg.lisp (gensym?): New. * interp/c-util.boot ($NonExpandableOperators): New. (expandableDefinition?): Use it. * algebra/sf.spad.pamphlet (DoubleFloat): Use %fmanexp.
Diffstat (limited to 'src/algebra')
-rw-r--r--src/algebra/sf.spad.pamphlet5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/algebra/sf.spad.pamphlet b/src/algebra/sf.spad.pamphlet
index d4291701..55a4bd72 100644
--- a/src/algebra/sf.spad.pamphlet
+++ b/src/algebra/sf.spad.pamphlet
@@ -278,12 +278,13 @@ DoubleFloat(): Join(FloatingPointSystem, DifferentialRing, OpenMath,
++ (that is, \spad{|(r-f)/f| < b**(-n)}).
== add
- MER ==> Record(MANTISSA:Integer,EXPONENT:Integer)
+ macro MER == Record(MANTISSA:Integer,EXPONENT:Integer)
import %hash: % -> SingleInteger from Foreign Builtin
import %fminval: () -> % from Foreign Builtin
import %fmaxval: () -> % from Foreign Builtin
import %fbase: () -> PositiveInteger from Foreign Builtin
import %fprec: () -> PositiveInteger from Foreign Builtin
+ import %fmanexp: % -> Record(man: %,exp: Integer) from Foreign Builtin
import %i2f: Integer -> % from Foreign Builtin
import %fabs: % -> % from Foreign Builtin
import %fneg: % -> % from Foreign Builtin
@@ -491,7 +492,7 @@ DoubleFloat(): Join(FloatingPointSystem, DifferentialRing, OpenMath,
x := abs x
if x > max()$% then
return [s*mantissa(max())+1,exponent max()]
- me: Record(man:%,exp:Integer) := MANEXP(x)$Lisp
+ me: Record(man: %,exp: Integer) := %fmanexp x
two53 := base()**precision()
[s*wholePart(two53 * me.man ),me.exp-precision()]