Implemented equivalents for the CL hyperbolic trigometric functions.
authorTravis Cross <tc@traviscross.com>
Tue, 1 Apr 2008 08:13:07 +0000 (08:13 +0000)
committerTravis Cross <tc@traviscross.com>
Tue, 1 Apr 2008 08:13:07 +0000 (08:13 +0000)
src/lib/ps-macro-lib.lisp

index 2cc3c35..f1f73f0 100644 (file)
     (asin (n) `(*math.asin ,n))
     (acos (n) `(*math.acos ,n))
     (atan (y &optional x) (if x `(*math.atan2 ,y ,x) `(*math.atan ,y)))
+    (sinh (n) `((lambda (x) (return (/ (- (exp x) (exp (- x))) 2))) ,n))
+    (cosh (n) `((lambda (x) (return (/ (+ (exp x) (exp (- x))) 2))) ,n))
+    (tanh (n) `((lambda (x) (return (/ (- (exp x) (exp (- x))) (+ (exp x) (exp (- x)))))) ,n))
+    (asinh (n) `((lambda (x) (return (log (+ x (sqrt (1+ (* x x))))))) ,n))
+    (acosh (n) `((lambda (x) (return (* 2 (log (+ (sqrt (/ (1+ x) 2)) (sqrt (/ (1- x) 2))))))) ,n))
+    (atanh (n) `((lambda (x) (return (/ (- (log (+ 1 x)) (log (- 1 x))) 2))) ,n))
     (abs (n) `(*math.abs ,n))
     (evenp (n) `(not (oddp ,n)))
     (oddp (n) `(% ,n 2))