From 1d05176bc6df7552d9041a8438124ace49790a59 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Fri, 22 Jan 2016 21:59:26 -0500 Subject: [PATCH] Added most of the functions from r7rs --- scheme/inexact.sld | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/scheme/inexact.sld b/scheme/inexact.sld index 3007d1e4..86d02736 100644 --- a/scheme/inexact.sld +++ b/scheme/inexact.sld @@ -1,9 +1,49 @@ (define-library (scheme inexact) (export + acos + asin + atan + cos + exp + ;finite? + ;infinite? + log + ;nan? sin + sqrt + tan ) (begin + (define-c acos + "(void *data, int argc, closure _, object k, object z)" + " return_inexact_double_op(data, k, acos, z);") + (define-c asin + "(void *data, int argc, closure _, object k, object z)" + " return_inexact_double_op(data, k, asin, z);") + (define-c atan + "(void *data, int argc, closure _, object k, object z)" + " return_inexact_double_op(data, k, atan, z);") + (define-c cos + "(void *data, int argc, closure _, object k, object z)" + " return_inexact_double_op(data, k, cos, z);") + (define-c exp + "(void *data, int argc, closure _, object k, object z)" + " return_inexact_double_op(data, k, exp, z);") + (define (log z1 . z2) + (if (null? z2) + (c-log z1) + (let ((z2* (car z2))) + (/ (c-log z1) (c-log z2*))))) + (define-c c-log + "(void *data, int argc, closure _, object k, object z)" + " return_inexact_double_op(data, k, log, z);") (define-c sin "(void *data, int argc, closure _, object k, object z)" " return_inexact_double_op(data, k, sin, z);") + (define-c sqrt + "(void *data, int argc, closure _, object k, object z)" + " return_inexact_double_op(data, k, sqrt, z);") + (define-c tan + "(void *data, int argc, closure _, object k, object z)" + " return_inexact_double_op(data, k, tan, z);") ))