2
;;;; Author: Paul Dietz
3
;;;; Created: Wed Feb 11 19:16:35 2004
4
;;;; Contains: Tests of TANH
9
(let ((result (tanh 0)))
15
(loop for type in '(short-float single-float double-float long-float)
16
for zero = (coerce 0 type)
17
unless (equal (multiple-value-list (tanh zero))
23
(loop for type in '(short-float single-float double-float long-float)
24
for zero = (coerce 0 `(complex ,type))
25
unless (equal (multiple-value-list (tanh zero))
31
(loop for den = (1+ (random 10000))
32
for num = (random (* 10 den))
34
for rlist = (multiple-value-list (tanh x))
37
unless (and (null (cdr rlist))
39
collect (list x rlist))
43
(loop for type in '(short-float single-float double-float long-float)
46
for x = (- (random (coerce 20 type)) 10)
47
for rlist = (multiple-value-list (tanh x))
50
unless (and (null (cdr rlist))
52
collect (list x rlist)))
56
(loop for type in '(short-float single-float double-float long-float)
59
for x1 = (- (random (coerce 20 type)) 10)
60
for x2 = (- (random (coerce 20 type)) 10)
61
for rlist = (multiple-value-list (tanh (complex x1 x2)))
64
unless (and (null (cdr rlist))
65
(typep y `(complex ,type)))
66
collect (list x1 x2 rlist)))
70
;;; Add accuracy tests here
75
(signals-error (tanh) program-error)
79
(signals-error (tanh 1.0 1.0) program-error)
83
(loop for x in *mini-universe*
84
unless (or (numberp x)
85
(eval `(signals-error (tanh ',x) type-error)))