diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2014-09-01 21:49:00 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2014-09-01 21:49:00 -0700 |
commit | 0207bdeab644efddce25225c7344aabfb6d73f1f (patch) | |
tree | 7de26f21398caa905761ef7be5a3aa2a8f8c0a78 /arith.c | |
parent | 2218cb8cef4962308bc5b4825e1f07fced9ebbc1 (diff) | |
download | txr-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.c | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -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)); } |