[git] CMU Common Lisp branch rtoy-lisp-trig updated. snapshot-2013-12-a-7-g36403a8
Raymond Toy
rtoy at common-lisp.net
Sun Dec 15 07:05:45 UTC 2013
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 at 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
--
CMU Common Lisp
More information about the cmucl-cvs
mailing list