diff --git a/ansi-tests/cosh.lsp b/ansi-tests/cosh.lsp
new file mode 100644
index 0000000000000000000000000000000000000000..4a67c95fc71412acc5528d722175bb89f4522e13
--- /dev/null
+++ b/ansi-tests/cosh.lsp
@@ -0,0 +1,98 @@
+;-*- Mode:     Lisp -*-
+;;;; Author:   Paul Dietz
+;;;; Created:  Wed Feb 11 06:54:15 2004
+;;;; Contains: Tests of COSH
+
+(in-package :cl-test)
+
+(deftest cosh.1
+  (let ((result (cosh 0)))
+    (or (eqlt result 1)
+	(eqlt result 1.0)))
+  t)
+
+(deftest cosh.2
+  (loop for type in '(short-float single-float double-float long-float)
+	for zero = (coerce 0 type)
+	for one = (coerce 1 type)
+	unless (equal (multiple-value-list (cosh zero))
+		      (list one))
+	collect type)
+  nil)
+
+(deftest cosh.3
+  (loop for type in '(short-float single-float double-float long-float)
+	for zero = (coerce 0 `(complex ,type))
+	for one = (coerce 1 `(complex ,type))
+	unless (equal (multiple-value-list (cosh zero))
+		      (list one))
+	collect type)
+  nil)
+
+(deftest cosh.4
+  (loop for den = (1+ (random 10000))
+	for num = (random (* 10 den))
+	for x = (/ num den)
+	for rlist = (multiple-value-list (cosh x))
+	for y = (car rlist)
+	repeat 1000
+	unless (and (null (cdr rlist))
+		    (numberp y))
+	collect (list x rlist))
+  nil)
+
+(deftest cosh.5
+  (loop for type in '(short-float single-float double-float long-float)
+	nconc
+	(loop
+	 for x = (- (random (coerce 20 type)) 10)
+	 for rlist = (multiple-value-list (cosh x))
+	 for y = (car rlist)
+	 repeat 1000
+	 unless (and (null (cdr rlist))
+		     (typep y type))
+	 collect (list x rlist)))
+  nil)
+
+(deftest cosh.6
+  (loop for type in '(short-float single-float double-float long-float)
+	nconc
+	(loop
+	 for x1 = (- (random (coerce 20 type)) 10)
+	 for x2 = (- (random (coerce 20 type)) 10)
+	 for rlist = (multiple-value-list (cosh (complex x1 x2)))
+	 for y = (car rlist)
+	 repeat 1000
+	 unless (and (null (cdr rlist))
+		     (typep y `(complex ,type)))
+	 collect (list x rlist)))
+  nil)
+
+;;; FIXME
+;;; Add accuracy tests here
+
+;;; Error tests
+
+(deftest cosh.error.1
+  (signals-error (cosh) program-error)
+  t)
+
+(deftest cosh.error.2
+  (signals-error (cosh 1.0 1.0) program-error)
+  t)
+
+(deftest cosh.error.3
+  (loop for x in *mini-universe*
+	unless (or (numberp x)
+		   (eval `(signals-error (cosh ',x) type-error)))
+	collect x)
+  nil)
+
+
+
+
+
+  
+			    
+  
+
diff --git a/ansi-tests/load-numbers.lsp b/ansi-tests/load-numbers.lsp
index 5bd109ab395ac943fd92759c980bad85038910c0..d0aa2067e248b19fb1a5a2f69ff5ac292dd07564 100644
--- a/ansi-tests/load-numbers.lsp
+++ b/ansi-tests/load-numbers.lsp
@@ -31,6 +31,10 @@
 (load "acos.lsp")
 (load "atan.lsp")
 
+(load "sinh.lsp")
+(load "cosh.lsp")
+
+
 (load "times.lsp")
 (load "plus.lsp")
 (load "minus.lsp")
diff --git a/ansi-tests/sinh.lsp b/ansi-tests/sinh.lsp
new file mode 100644
index 0000000000000000000000000000000000000000..28d89dadbb82cb1ee73c79e70643c491b6d557b8
--- /dev/null
+++ b/ansi-tests/sinh.lsp
@@ -0,0 +1,95 @@
+;-*- Mode:     Lisp -*-
+;;;; Author:   Paul Dietz
+;;;; Created:  Wed Feb 11 06:29:51 2004
+;;;; Contains: Tests for SINH
+
+(in-package :cl-test)
+
+(deftest sinh.1
+  (let ((result (sinh 0)))
+    (or (eqlt result 0)
+	(eqlt result 0.0)))
+  t)
+
+(deftest sinh.2
+  (loop for type in '(short-float single-float double-float long-float)
+	for zero = (coerce 0 type)
+	unless (equal (multiple-value-list (sinh zero))
+		      (list zero))
+	collect type)
+  nil)
+
+(deftest sinh.3
+  (loop for type in '(short-float single-float double-float long-float)
+	for zero = (coerce 0 `(complex ,type))
+	unless (equal (multiple-value-list (sinh zero))
+		      (list zero))
+	collect type)
+  nil)
+
+(deftest sinh.4
+  (loop for den = (1+ (random 10000))
+	for num = (random (* 10 den))
+	for x = (/ num den)
+	for rlist = (multiple-value-list (sinh x))
+	for y = (car rlist)
+	repeat 1000
+	unless (and (null (cdr rlist))
+		    (numberp y))
+	collect (list x rlist))
+  nil)
+
+(deftest sinh.5
+  (loop for type in '(short-float single-float double-float long-float)
+	nconc
+	(loop
+	 for x = (- (random (coerce 20 type)) 10)
+	 for rlist = (multiple-value-list (sinh x))
+	 for y = (car rlist)
+	 repeat 1000
+	 unless (and (null (cdr rlist))
+		     (typep y type))
+	 collect (list x rlist)))
+  nil)
+
+(deftest sinh.6
+  (loop for type in '(short-float single-float double-float long-float)
+	nconc
+	(loop
+	 for x1 = (- (random (coerce 20 type)) 10)
+	 for x2 = (- (random (coerce 20 type)) 10)
+	 for rlist = (multiple-value-list (sinh (complex x1 x2)))
+	 for y = (car rlist)
+	 repeat 1000
+	 unless (and (null (cdr rlist))
+		     (typep y `(complex ,type)))
+	 collect (list x rlist)))
+  nil)
+
+;;; FIXME
+;;; Add accuracy tests here
+
+;;; Error tests
+
+(deftest sinh.error.1
+  (signals-error (sinh) program-error)
+  t)
+
+(deftest sinh.error.2
+  (signals-error (sinh 1.0 1.0) program-error)
+  t)
+
+(deftest sinh.error.3
+  (loop for x in *mini-universe*
+	unless (or (numberp x)
+		   (eval `(signals-error (sinh ',x) type-error)))
+	collect x)
+  nil)
+
+
+
+
+
+  
+			    
+