From be7a80007ba89001defa59dcbeb596dc36eb68ec Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Mon, 7 May 2012 00:21:00 +0900 Subject: [PATCH] fixing two arg atan --- lib/init-7.scm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/init-7.scm b/lib/init-7.scm index a9d64fae..089781b9 100644 --- a/lib/init-7.scm +++ b/lib/init-7.scm @@ -1070,8 +1070,15 @@ (define magnitude abs) (define (angle z) (if (< z 0) 3.141592653589793 0)))) -(define (atan x . o) - (if (null? o) (atan1 x) (atan1 (/ x (exact->inexact (car o)))))) +(define (atan y . o) + (if (null? o) + (atan1 y) + (let ((x (exact->inexact (car o)))) + (if (negative? x) + (if (negative? y) + (- (atan1 (/ y x)) 3.141592653589793) + (- 3.141592653589793 (atan1 (/ y (- x))))) + (atan1 (/ y x)))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; string cursors