aboutsummaryrefslogtreecommitdiff
path: root/src/interp
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2012-04-29 21:37:23 +0000
committerdos-reis <gdr@axiomatics.org>2012-04-29 21:37:23 +0000
commit0ef117f547d2bb254c69c21078d3ad0b42a65b1e (patch)
treecc70cc26b9efcd0776dd4690205deb9e926bc335 /src/interp
parent9dbd3ec86d35a386d291fd59612ef7bb9a5b9ecf (diff)
downloadopen-axiom-0ef117f547d2bb254c69c21078d3ad0b42a65b1e.tar.gz
* boot/ast.boot (bfNumber?): Rename from bfSmintable. Check for
floating point literals too. Adjust callers. (bfLessp): Check for integer or floating pointer numbers. * interp/vmlisp.lisp (complex?): New. (complex): Likewise. (realPart): Likewise. (imagPart): Likewise. (conjugate): Likewise. (sqrt): Likewise.
Diffstat (limited to 'src/interp')
-rw-r--r--src/interp/boot-pkg.lisp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/interp/boot-pkg.lisp b/src/interp/boot-pkg.lisp
index 0bfffad7..8f3e4d91 100644
--- a/src/interp/boot-pkg.lisp
+++ b/src/interp/boot-pkg.lisp
@@ -54,6 +54,27 @@
(defun |gensym?| (s)
(and (symbolp s) (null (symbol-package s))))
+(defmacro |complex?| (x)
+ `(complexp ,x))
+
+(defmacro |complex| (x (&optional (y 0.0)))
+ `(complex ,x ,y))
+
+(defmacro |realPart| (z)
+ `(realpart ,z))
+
+(defmacro |imagPart| (z)
+ `(imagpart ,z))
+
+(defmacro |conjugate| (z)
+ `(conjugate ,z))
+
+(defmacro |integerAndFractionalParts| (x)
+ `(multiple-value-list (floor ,x)))
+
+(defmacro |sqrt| (x)
+ `(sqrt ,x))
+
;; Below are some missing functions. There here for lack of better
;; place (sys-funs.lisp?)
;;