summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2011-12-13 17:36:08 -0800
committerKaz Kylheku <kaz@kylheku.com>2011-12-13 17:36:08 -0800
commitef47dfe4fcb7c1be369ae83221386b9da6474a1e (patch)
treea2ac264811c80ad085eea5ea725b3bb6be8ba751 /eval.c
parent5d0f219ab35f9e214a063e968286ba01f4b54dbf (diff)
downloadtxr-ef47dfe4fcb7c1be369ae83221386b9da6474a1e.tar.gz
txr-ef47dfe4fcb7c1be369ae83221386b9da6474a1e.tar.bz2
txr-ef47dfe4fcb7c1be369ae83221386b9da6474a1e.zip
* arith.c (highest_bit): Linkage changed to static.
(abso, isqrt): New functions. (isqrt_fixnum): New static function. * eval.c (eval_init): Registered abs, sqrt and numberp instrinsics. * lib.c (numberp): New function. * lib.h (numberp, abso, isqrt): Declared. * mpi-patches/series: New patch added. * mpi-patches/faster-square-root: New patch added. * txr.1: Documentation stubs for new functions.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index 9c6cdf87..30a1beed 100644
--- a/eval.c
+++ b/eval.c
@@ -1156,11 +1156,14 @@ void eval_init(void)
reg_fun(intern(lit("+"), user_package), func_n0v(plusv));
reg_fun(intern(lit("-"), user_package), func_n1v(minusv));
reg_fun(intern(lit("*"), user_package), func_n0v(mulv));
+ reg_fun(intern(lit("abs"), user_package), func_n1(abso));
reg_fun(intern(lit("trunc"), user_package), func_n2(trunc));
reg_fun(intern(lit("mod"), user_package), func_n2(mod));
reg_fun(intern(lit("expt"), user_package), func_n0v(exptv));
+ reg_fun(intern(lit("sqrt"), user_package), func_n1(isqrt));
reg_fun(intern(lit("fixnump"), user_package), func_n1(fixnump));
reg_fun(intern(lit("bignump"), user_package), func_n1(bignump));
+ reg_fun(intern(lit("numberp"), user_package), func_n1(numberp));
reg_fun(intern(lit("zerop"), user_package), func_n1(zerop));
reg_fun(intern(lit(">"), user_package), func_n1v(gtv));