aboutsummaryrefslogtreecommitdiff
path: root/src/algebra/sf.spad.pamphlet
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2010-06-02 00:28:03 +0000
committerdos-reis <gdr@axiomatics.org>2010-06-02 00:28:03 +0000
commit3878a5961fe87ed39d567d85e01d4ade9e41354f (patch)
tree09ef5da234502911658eab9c64f19d8305ae37ff /src/algebra/sf.spad.pamphlet
parent50cfb5533a31afb7d85c0574ab6359efbc4f164e (diff)
downloadopen-axiom-3878a5961fe87ed39d567d85e01d4ade9e41354f.tar.gz
Use builtin functions for DF.
Diffstat (limited to 'src/algebra/sf.spad.pamphlet')
-rw-r--r--src/algebra/sf.spad.pamphlet33
1 files changed, 22 insertions, 11 deletions
diff --git a/src/algebra/sf.spad.pamphlet b/src/algebra/sf.spad.pamphlet
index 5e5e8f14..c1a29b22 100644
--- a/src/algebra/sf.spad.pamphlet
+++ b/src/algebra/sf.spad.pamphlet
@@ -279,6 +279,17 @@ DoubleFloat(): Join(FloatingPointSystem, DifferentialRing, OpenMath,
== add
MER ==> Record(MANTISSA:Integer,EXPONENT:Integer)
+ import %fmul: (%,%) -> % from Foreign Builtin
+ import %fadd: (%,%) -> % from Foreign Builtin
+ import %fsub: (%,%) -> % from Foreign Builtin
+ import %fdiv: (%,%) -> % from Foreign Builtin
+ import %fmin: (%,%) -> % from Foreign Builtin
+ import %fmax: (%,%) -> % from Foreign Builtin
+ import %feq: (%,%) -> Boolean from Foreign Builtin
+ import %flt: (%,%) -> Boolean from Foreign Builtin
+ import %fle: (%,%) -> Boolean from Foreign Builtin
+ import %fgt: (%,%) -> Boolean from Foreign Builtin
+ import %fge: (%,%) -> Boolean from Foreign Builtin
manexp: % -> MER
@@ -341,18 +352,18 @@ DoubleFloat(): Join(FloatingPointSystem, DifferentialRing, OpenMath,
pi() == PI$Lisp
coerce(x:%):OutputForm == outputForm x
convert(x:%):InputForm == convert(x pretend DoubleFloat)$InputForm
- x < y == (x<y)$Lisp
- x > y == (x > y)$Lisp -- help inliner
- x <= y == (x <= y)$Lisp -- ditto
- x >= y == (x >= y)$Lisp -- ditto
+ x < y == %flt(x,y)
+ x > y == %fgt(x,y)
+ x <= y == %fle(x,y)
+ x >= y == %fge(x,y)
- x == (-x)$Lisp
- x + y == (x+y)$Lisp
- x:% - y:% == (x-y)$Lisp
- x:% * y:% == (x*y)$Lisp
+ x + y == %fadd(x,y)
+ x:% - y:% == %fsub(x,y)
+ x:% * y:% == %fmul(x,y)
i:Integer * x:% == (i*x)$Lisp
- max(x,y) == MAX(x,y)$Lisp
- min(x,y) == MIN(x,y)$Lisp
- x = y == (x=y)$Lisp
+ max(x,y) == %fmax(x,y)
+ min(x,y) == %fmin(x,y)
+ x = y == %feq(x,y)
x:% / i:Integer == (x/i)$Lisp
sqrt x == checkComplex SQRT(x)$Lisp
log10 x == checkComplex log(x)$Lisp
@@ -386,7 +397,7 @@ DoubleFloat(): Join(FloatingPointSystem, DifferentialRing, OpenMath,
acsch x == ACSCH(x)$Lisp
acoth x == checkComplex ACOTH(x)$Lisp
asech x == checkComplex ASECH(x)$Lisp
- x:% / y:% == (x/y)$Lisp
+ x:% / y:% == %fdiv(x,y)
negative? x == MINUSP(x)$Lisp
zero? x == ZEROP(x)$Lisp
one? x == x = 1