summaryrefslogtreecommitdiffstats
path: root/arith.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-09-01 21:49:00 -0700
committerKaz Kylheku <kaz@kylheku.com>2014-09-01 21:49:00 -0700
commit0207bdeab644efddce25225c7344aabfb6d73f1f (patch)
tree7de26f21398caa905761ef7be5a3aa2a8f8c0a78 /arith.c
parent2218cb8cef4962308bc5b4825e1f07fced9ebbc1 (diff)
downloadtxr-0207bdeab644efddce25225c7344aabfb6d73f1f.tar.gz
txr-0207bdeab644efddce25225c7344aabfb6d73f1f.tar.bz2
txr-0207bdeab644efddce25225c7344aabfb6d73f1f.zip
* arith.c (arith_init): Register some variables: *flo-dig*,
*flo-min*, *flo-max*, *flo-epsilon*, *pi* and *e*. * genvim.txr: Include arith.c in scan for symbols. * lib.c (init): arith_init() must now be called after eval_init(). * txr.1: Documented new variables.. * txr.vim: Updated.
Diffstat (limited to 'arith.c')
-rw-r--r--arith.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/arith.c b/arith.c
index 63381967..d107afbb 100644
--- a/arith.c
+++ b/arith.c
@@ -34,11 +34,13 @@
#include <math.h>
#include <signal.h>
#include <ctype.h>
+#include <float.h>
#include "config.h"
#include "lib.h"
#include "signal.h"
#include "unwind.h"
#include "gc.h"
+#include "eval.h"
#include "arith.h"
#define TAG_PAIR(A, B) ((A) << TAG_SHIFT | (B))
@@ -2078,4 +2080,17 @@ void arith_init(void)
mp_init(&INT_PTR_MAX_MP);
mp_set_intptr(&INT_PTR_MAX_MP, INT_PTR_MAX);
log2_init();
+
+ reg_var(intern(lit("*flo-dig*"), user_package), num_fast(DBL_DIG));
+ reg_var(intern(lit("*flo-max*"), user_package), flo(DBL_MAX));
+ reg_var(intern(lit("*flo-min*"), user_package), flo(DBL_MIN));
+ reg_var(intern(lit("*flo-epsilon*"), user_package), flo(DBL_EPSILON));
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+ reg_var(intern(lit("*pi*"), user_package), flo(M_PI));
+#ifndef M_E
+#define M_E 2.71828182845904523536
+#endif
+ reg_var(intern(lit("*e*"), user_package), flo(M_E));
}