This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMU Common Lisp".
The branch, rtoy-lisp-trig has been updated via 36403a831c9a979d5a16d1249000b85d4c8c6bfc (commit) from 7069ef9dfa3770d7b3e00aac297ae7dcb22b8c20 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit 36403a831c9a979d5a16d1249000b85d4c8c6bfc Author: Raymond Toy toy.raymond@gmail.com Date: Sat Dec 14 23:05:34 2013 -0800
Correct bug in tan.
* code/irrat.lisp * Fix typo in kernel-tan. * tests/trig.lisp * Add test case.
diff --git a/src/code/irrat.lisp b/src/code/irrat.lisp index 6a025a1..4dc7773 100644 --- a/src/code/irrat.lisp +++ b/src/code/irrat.lisp @@ -489,11 +489,11 @@ r)))))))) (when (= iy 1) (return-from kernel-tan w)) - ;; + ;; Compute 1/w=1/(x+r) carefully (let ((a 0d0) (tt 0d0)) (setf z (kernel:make-double-float (kernel:double-float-high-bits w) 0)) - (setf v (- r (- r x))) ; z + v = r + x + (setf v (- r (- z x))) ; z + v = r + x (setf a (/ -1 w)) (setf tt (kernel:make-double-float (kernel:double-float-high-bits a) 0)) (setf s (+ 1 (* tt z))) diff --git a/src/tests/trig.lisp b/src/tests/trig.lisp index 9555b11..57a5355 100644 --- a/src/tests/trig.lisp +++ b/src/tests/trig.lisp @@ -127,6 +127,12 @@ (tan (float 11/16 1d0)) 8.21141801589894121911423965374711700875371645309d-1)
+(rt:deftest tan.6 + ;; This was found by maxima's testsuite. A bug in kernel-tan when + ;; returning cot(x). + (tan 1.107148717794091d0) + 2.0000000000000028604455051971538975562294147582d0) + (rt:deftest tan.red.0 ;; Test for argument reduction with n even (tan (* 7/4 pi))
-----------------------------------------------------------------------
Summary of changes: src/code/irrat.lisp | 4 ++-- src/tests/trig.lisp | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-)
hooks/post-receive