summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-03-04 23:54:02 -0800
committerKaz Kylheku <kaz@kylheku.com>2014-03-04 23:54:02 -0800
commit22ed7f473a5c1e1db722286f98b2457a74cc1ca7 (patch)
tree203257c74c2b30f1aaa11afc51f28d1d55f80755
parent039e2ebdfa5670de7a35084fd480fe204afbdc8b (diff)
downloadtxr-22ed7f473a5c1e1db722286f98b2457a74cc1ca7.tar.gz
txr-22ed7f473a5c1e1db722286f98b2457a74cc1ca7.tar.bz2
txr-22ed7f473a5c1e1db722286f98b2457a74cc1ca7.zip
* arith.c (logten): New function.
* eval.c (eval_init): logten registered as intrinsic. * lib.h (logten): Declared. * txr.1: Documented.
-rw-r--r--ChangeLog10
-rw-r--r--arith.c5
-rw-r--r--eval.c1
-rw-r--r--lib.h1
-rw-r--r--txr.16
5 files changed, 22 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 588d2f6f..1ad8d631 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2014-03-04 Kaz Kylheku <kaz@kylheku.com>
+
+ * arith.c (logten): New function.
+
+ * eval.c (eval_init): logten registered as intrinsic.
+
+ * lib.h (logten): Declared.
+
+ * txr.1: Documented.
+
2014-03-03 Kaz Kylheku <kaz@kylheku.com>
* parser.l: Allowing ^ to be a quote character, and adjusting definition
diff --git a/arith.c b/arith.c
index f227f217..1eb9c5fb 100644
--- a/arith.c
+++ b/arith.c
@@ -1439,6 +1439,11 @@ val loga(val num)
return flo(log(c_flo(to_float(lit("log"), num))));
}
+val logten(val num)
+{
+ return flo(log10(c_flo(to_float(lit("log"), num))));
+}
+
val expo(val num)
{
return flo(exp(c_flo(to_float(lit("exp"), num))));
diff --git a/eval.c b/eval.c
index 7936da92..51339182 100644
--- a/eval.c
+++ b/eval.c
@@ -3241,6 +3241,7 @@ void eval_init(void)
reg_fun(intern(lit("atan"), user_package), func_n1(atang));
reg_fun(intern(lit("atan2"), user_package), func_n2(atang2));
reg_fun(intern(lit("log"), user_package), func_n1(loga));
+ reg_fun(intern(lit("log10"), user_package), func_n1(logten));
reg_fun(intern(lit("exp"), user_package), func_n1(expo));
reg_fun(intern(lit("sqrt"), user_package), func_n1(sqroot));
reg_fun(intern(lit("cum-norm-dist"), user_package), func_n1(cum_norm_dist));
diff --git a/lib.h b/lib.h
index cb9a9762..e62eec93 100644
--- a/lib.h
+++ b/lib.h
@@ -497,6 +497,7 @@ val acosi(val);
val atang(val);
val atang2(val, val);
val loga(val);
+val logten(val num);
val expo(val);
val logand(val, val);
val logior(val, val);
diff --git a/txr.1 b/txr.1
index 22f99f62..deff8d86 100644
--- a/txr.1
+++ b/txr.1
@@ -9778,13 +9778,14 @@ functions. The <num> argument to asin and acos must be in the
range -1.0 to 1.0. The atan2 function converts the rectilinear coordinates
<x> and <y> to an angle in polar coordinates in the range [0, 2pi).
-.SS Functions log, exp
+.SS Functions exp, log, log10
.TP
Syntax:
(exp <number>)
(log <number>)
+ (log10 <number>)
.TP
Description:
@@ -9795,6 +9796,9 @@ the specified exponent.
The log function calculates the base e logarithm of its argument, which must
be a positive value.
+The log10 function calculates the base 10 logarithm of its argument, which must
+be a positive value.
+
Integer arguments are converted to floats.
.SS Functions expt, sqrt, isqrt