summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2017-02-24 20:15:17 -0800
committerKaz Kylheku <kaz@kylheku.com>2017-02-24 20:15:17 -0800
commitcf555eb22101b02bca5c0818ca4864a5b823acbc (patch)
tree6d7976666eaec919ffa7fbc51ee89190726eda8b /eval.c
parent77491d210b391d82cbf1a9b623092fb3caadba90 (diff)
downloadtxr-cf555eb22101b02bca5c0818ca4864a5b823acbc.tar.gz
txr-cf555eb22101b02bca5c0818ca4864a5b823acbc.tar.bz2
txr-cf555eb22101b02bca5c0818ca4864a5b823acbc.zip
floor and ceil do division, with optional second arg.
Also, with one argument, these functions handle ranges. * arith.c (floordiv, ceildiv): New functions. (floorf, ceili): Handle ranges. * eval.c (eval_init): Register floor and ceil to new functions. * lib.h (floordiv, ceildiv): Declared. * txr.1: Documentation updated.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/eval.c b/eval.c
index 418d79ff..41dd8e24 100644
--- a/eval.c
+++ b/eval.c
@@ -5702,8 +5702,8 @@ void eval_init(void)
reg_fun(intern(lit("isqrt"), user_package), func_n1(isqrt));
reg_fun(intern(lit("gcd"), user_package), func_n0v(gcdv));
reg_fun(intern(lit("lcm"), user_package), func_n0v(lcmv));
- reg_fun(intern(lit("floor"), user_package), func_n1(floorf));
- reg_fun(intern(lit("ceil"), user_package), func_n1(ceili));
+ reg_fun(intern(lit("floor"), user_package), func_n2o(floordiv, 1));
+ reg_fun(intern(lit("ceil"), user_package), func_n2o(ceildiv, 1));
reg_fun(intern(lit("sin"), user_package), func_n1(sine));
reg_fun(intern(lit("cos"), user_package), func_n1(cosi));
reg_fun(intern(lit("tan"), user_package), func_n1(tang));