2
;;;; Author: Paul Dietz
3
;;;; Created: Mon Feb 9 20:55:40 2004
4
;;;; Contains: Tests of TAN
9
(loop for i from -1000 to 1000
10
for rlist = (multiple-value-list (tan i))
12
always (and (null (cdr rlist))
13
(or (rationalp y) (typep y 'single-float))))
17
(loop for x = (- (random 2000.0s0) 1000.0s0)
18
for y = (safe-tan x 0.0s0)
20
always (typep y 'short-float))
24
(loop for x = (- (random 2000.0f0) 1000.0f0)
25
for y = (safe-tan x 0.0)
27
always (typep y 'single-float))
31
(loop for x = (- (random 2000.0d0) 1000.0d0)
32
for y = (safe-tan x 0.0d0)
34
always (typep y 'double-float))
38
(loop for x = (- (random 2000.0l0) 1000.0l0)
39
for y = (safe-tan 0.0l0)
41
always (typep y 'long-float))
46
(or (eqlt r 0) (eqlt r 0.0)))
66
(loop for i from 1 to 100
67
unless (approx= (tan i) (tan (coerce i 'single-float)))
72
(approx= (tan (coerce (/ pi 4) 'single-float)) 1.0)
76
(approx= (tan (coerce (/ pi -4) 'single-float)) -1.0)
80
(approx= (tan (coerce (/ pi 4) 'short-float)) 1s0)
84
(approx= (tan (coerce (/ pi -4) 'short-float)) -1s0)
88
(approx= (tan (coerce (/ pi 4) 'double-float)) 1d0)
92
(approx= (tan (coerce (/ pi -4) 'double-float)) -1d0)
96
(approx= (tan (coerce (/ pi 4) 'long-float)) 1l0)
100
(approx= (tan (coerce (/ pi -4) 'long-float)) -1l0)
104
(loop for r = (- (random 2000) 1000)
105
for i = (- (random 20) 10)
106
for y = (safe-tan (complex r i))
112
(loop for r = (- (random 2000.0s0) 1000.0s0)
113
for i = (- (random 20.0s0) 10.0s0)
114
for y = (safe-tan (complex r i))
120
(loop for r = (- (random 2000.0f0) 1000.0f0)
121
for i = (- (random 20.0f0) 10.0f0)
122
for y = (safe-tan (complex r i))
128
(loop for r = (- (random 2000.0d0) 1000.0d0)
129
for i = (- (random 20.0d0) 10.0d0)
130
for y = (safe-tan (complex r i))
136
(loop for r = (- (random 2000.0l0) 1000.0l0)
137
for i = (- (random 20.0l0) 10.0l0)
138
for y = (safe-tan (complex r i))
144
;;; More accuracy tests here
149
(signals-error (tan) program-error)
153
(signals-error (tan 0.0 0.0) program-error)
157
(loop for x in *mini-universe*
158
unless (or (numberp x)
159
(eval `(signals-error (tan ',x) type-error)))