From cdb1911f9ff92daacc6909517b3a922a86ae2bf8 Mon Sep 17 00:00:00 2001 From: Yuichi Nishiwaki Date: Tue, 10 Dec 2013 05:40:44 -0800 Subject: [PATCH] define (scheme inexact) library --- piclib/built-in.scm | 3 +++ src/number.c | 32 +++++++++++++++++++------------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/piclib/built-in.scm b/piclib/built-in.scm index 4a87c37a..9fd7140b 100644 --- a/piclib/built-in.scm +++ b/piclib/built-in.scm @@ -337,6 +337,9 @@ (values (truncate-quotient n m) (truncate-remainder n m))) +; (import (only (scheme inexact) sqrt)) +(import (scheme inexact)) + (define (exact-integer-sqrt k) (let ((n (exact (sqrt k)))) (values n (- k (square n))))) diff --git a/src/number.c b/src/number.c index f9a0fd05..62e8baee 100644 --- a/src/number.c +++ b/src/number.c @@ -513,8 +513,6 @@ pic_init_number(pic_state *pic) pic_defun(pic, "exact?", pic_number_exact_p); pic_defun(pic, "inexact?", pic_number_inexact_p); pic_defun(pic, "exact-integer?", pic_number_exact_p); - pic_defun(pic, "infinite?", pic_number_infinite_p); - pic_defun(pic, "nan?", pic_number_nan_p); pic_gc_arena_restore(pic, ai); pic_defun(pic, "=", pic_number_eq); @@ -543,22 +541,30 @@ pic_init_number(pic_state *pic) pic_defun(pic, "round", pic_number_round); pic_gc_arena_restore(pic, ai); - pic_defun(pic, "exp", pic_number_exp); - pic_defun(pic, "log", pic_number_log); - pic_defun(pic, "sin", pic_number_sin); - pic_defun(pic, "cos", pic_number_cos); - pic_defun(pic, "tan", pic_number_tan); - pic_defun(pic, "acos", pic_number_acos); - pic_defun(pic, "asin", pic_number_asin); - pic_defun(pic, "atan", pic_number_atan); - pic_gc_arena_restore(pic, ai); - pic_defun(pic, "square", pic_number_square); - pic_defun(pic, "sqrt", pic_number_sqrt); pic_defun(pic, "expt", pic_number_expt); pic_gc_arena_restore(pic, ai); pic_defun(pic, "inexact", pic_number_inexact); pic_defun(pic, "exact", pic_number_exact); pic_gc_arena_restore(pic, ai); + + DEFLIBRARY(pic, "(scheme inexact)") + { + pic_defun(pic, "finite?", pic_number_finite_p); + pic_defun(pic, "infinite?", pic_number_infinite_p); + pic_defun(pic, "nan?", pic_number_nan_p); + + pic_defun(pic, "exp", pic_number_exp); + pic_defun(pic, "log", pic_number_log); + pic_defun(pic, "sin", pic_number_sin); + pic_defun(pic, "cos", pic_number_cos); + pic_defun(pic, "tan", pic_number_tan); + pic_defun(pic, "acos", pic_number_acos); + pic_defun(pic, "asin", pic_number_asin); + pic_defun(pic, "atan", pic_number_atan); + + pic_defun(pic, "sqrt", pic_number_sqrt); + } + ENDLIBRARY(pic); }