summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2012-03-22 10:48:00 -0700
committerKaz Kylheku <kaz@kylheku.com>2012-03-22 10:48:00 -0700
commit1ccc6d458fbda380233019a1d80d5aff576d9d03 (patch)
tree97e9057e446ac2e19f265ebe829634b46e81f79c /eval.c
parent946c88ae095260a816aae8e1d5eacb32e4424718 (diff)
downloadtxr-1ccc6d458fbda380233019a1d80d5aff576d9d03.tar.gz
txr-1ccc6d458fbda380233019a1d80d5aff576d9d03.tar.bz2
txr-1ccc6d458fbda380233019a1d80d5aff576d9d03.zip
Fix sqrt confusion. There must be a separate isqrt
for the integer square root. * arith.c (sqroot_fixnum): Renamed back to isqrt_fixnum. (sqroot): Rewritten to handle only floating-point square root. (isqrt): New function, based on previous sqroot, handles only integers. * eval.c (eval_init): New intrinsic, isqrt. * lib.h (isqrt): New declaration. * txr.1: Doc stubs. * txr.vim: Highlighting for isqrt.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/eval.c b/eval.c
index af3b6a22..db568c0d 100644
--- a/eval.c
+++ b/eval.c
@@ -2185,7 +2185,7 @@ void eval_init(void)
reg_fun(intern(lit("/"), user_package), func_n2(divi));
reg_fun(intern(lit("expt"), user_package), func_n0v(exptv));
reg_fun(intern(lit("exptmod"), user_package), func_n3(exptmod));
- reg_fun(intern(lit("sqrt"), user_package), func_n1(sqroot));
+ reg_fun(intern(lit("isqrt"), user_package), func_n1(isqrt));
reg_fun(intern(lit("gcd"), user_package), func_n2(gcd));
reg_fun(intern(lit("floor"), user_package), func_n1(floorf));
reg_fun(intern(lit("ceil"), user_package), func_n1(ceili));
@@ -2193,6 +2193,7 @@ void eval_init(void)
reg_fun(intern(lit("cos"), user_package), func_n1(cosi));
reg_fun(intern(lit("atan"), user_package), func_n1(atang));
reg_fun(intern(lit("log"), user_package), func_n1(loga));
+ reg_fun(intern(lit("sqrt"), user_package), func_n1(sqroot));
reg_fun(intern(lit("fixnump"), user_package), func_n1(fixnump));
reg_fun(intern(lit("bignump"), user_package), func_n1(bignump));
reg_fun(intern(lit("floatp"), user_package), func_n1(floatp));