XLFHYPER ;HINES/CFB,DW - HYPERBOLIC MATH FUNCTIONS ;8/2/93 15:26 [ 04/02/2003 8:29 AM ]
;;8.0;KERNEL;**1002,1003,1004,1005,1007**;APR 1, 2003
;;8.0;KERNEL;;Jul 10, 1995
;;V 1.0;HYPERBOLIC MATH FUNCTIONS
Q Q +$J(Y,0,$S((PR-$L(Y\1))'<0:PR-$L(Y\1),1:0))
PR(PR,PL) ;
Q $S('$L(PR):PL,PR>PL:PL,1:PR)
SINH(X,PR) ;
N A S A=X,PR=$$PR($G(PR),12)
S Y=$$EXP^XLFMTH(X,12)-$$EXP^XLFMTH(-A,12)/2 G Q
COSH(X,PR) ;
N A S A=X,PR=$$PR($G(PR),12)
S Y=$$EXP^XLFMTH(X,12)+$$EXP^XLFMTH(-A,12)/2 G Q
TANH(X,PR) ;
N A S A=X,PR=$$PR($G(PR),12)
S Y=($$EXP^XLFMTH(X,12)-$$EXP^XLFMTH(-A,12))/($$EXP^XLFMTH(X,12)+$$EXP^XLFMTH(-A,12)) G Q
CSCH(X,PR) ;
N A S A=X,PR=$$PR($G(PR),12)
S Y=1/($$EXP^XLFMTH(X,12)-$$EXP^XLFMTH(-A,12)/2) G Q
SECH(X,PR) ;
N A S A=X,PR=$$PR($G(PR),12)
S Y=1/($$EXP^XLFMTH(X,12)+$$EXP^XLFMTH(-A,12)/2) G Q
COTH(X,PR) ;
N A S A=X,PR=$$PR($G(PR),12)
S Y=1/(($$EXP^XLFMTH(X,12)-$$EXP^XLFMTH(-A,12))/($$EXP^XLFMTH(X,12)+$$EXP^XLFMTH(-A,12))) G Q
ASINH(X,PR) ;
N A S A=X,PR=$$PR($G(PR),12)
S Y=$$LN^XLFMTH(A+($$PWR^XLFMTH((X*X+1),.5))) G Q
ACOSH(X,PR) ;
N A S A=X,PR=$$PR($G(PR),12)
S Y=$$LN^XLFMTH(A+($$PWR^XLFMTH((X*X-1),.5))) G Q
ATANH(X,PR) ;
N A S A=X,PR=$$PR($G(PR),12)
S Y=((.5*($$LN^XLFMTH(1+X)))-(.5*($$LN^XLFMTH(1-X)))) G Q
ACOTH(X,PR) ;
N A S A=X,PR=$$PR($G(PR),12)
S Y=((.5*($$LN^XLFMTH(1+X)))-(.5*($$LN^XLFMTH(X-1)))) G Q
ASECH(X,PR) ;
N A S A=X,PR=$$PR($G(PR),12)
S Y=$$LN^XLFMTH(1/A+$$PWR^XLFMTH((1/(X*X)-1),.5)) G Q
ACSCH(X,PR) ;
N A S A=X,PR=$$PR($G(PR),12)
S Y=$$LN^XLFMTH(1/A+$$PWR^XLFMTH((1/(X*X)+1),.5)) G Q
XLFHYPER ;HINES/CFB,DW - HYPERBOLIC MATH FUNCTIONS ;8/2/93 15:26 [ 04/02/2003 8:29 AM ]
+1 ;;8.0;KERNEL;**1002,1003,1004,1005,1007**;APR 1, 2003
+2 ;;8.0;KERNEL;;Jul 10, 1995
+3 ;;V 1.0;HYPERBOLIC MATH FUNCTIONS
Q QUIT +$JUSTIFY(Y,0,$SELECT((PR-$LENGTH(Y\1))'<0:PR-$LENGTH(Y\1),1:0))
PR(PR,PL) ;
+1 QUIT $SELECT('$LENGTH(PR):PL,PR>PL:PL,1:PR)
SINH(X,PR) ;
+1 NEW A
SET A=X
SET PR=$$PR($GET(PR),12)
+2 SET Y=$$EXP^XLFMTH(X,12)-$$EXP^XLFMTH(-A,12)/2
GOTO Q
COSH(X,PR) ;
+1 NEW A
SET A=X
SET PR=$$PR($GET(PR),12)
+2 SET Y=$$EXP^XLFMTH(X,12)+$$EXP^XLFMTH(-A,12)/2
GOTO Q
TANH(X,PR) ;
+1 NEW A
SET A=X
SET PR=$$PR($GET(PR),12)
+2 SET Y=($$EXP^XLFMTH(X,12)-$$EXP^XLFMTH(-A,12))/($$EXP^XLFMTH(X,12)+$$EXP^XLFMTH(-A,12))
GOTO Q
CSCH(X,PR) ;
+1 NEW A
SET A=X
SET PR=$$PR($GET(PR),12)
+2 SET Y=1/($$EXP^XLFMTH(X,12)-$$EXP^XLFMTH(-A,12)/2)
GOTO Q
SECH(X,PR) ;
+1 NEW A
SET A=X
SET PR=$$PR($GET(PR),12)
+2 SET Y=1/($$EXP^XLFMTH(X,12)+$$EXP^XLFMTH(-A,12)/2)
GOTO Q
COTH(X,PR) ;
+1 NEW A
SET A=X
SET PR=$$PR($GET(PR),12)
+2 SET Y=1/(($$EXP^XLFMTH(X,12)-$$EXP^XLFMTH(-A,12))/($$EXP^XLFMTH(X,12)+$$EXP^XLFMTH(-A,12)))
GOTO Q
ASINH(X,PR) ;
+1 NEW A
SET A=X
SET PR=$$PR($GET(PR),12)
+2 SET Y=$$LN^XLFMTH(A+($$PWR^XLFMTH((X*X+1),.5)))
GOTO Q
ACOSH(X,PR) ;
+1 NEW A
SET A=X
SET PR=$$PR($GET(PR),12)
+2 SET Y=$$LN^XLFMTH(A+($$PWR^XLFMTH((X*X-1),.5)))
GOTO Q
ATANH(X,PR) ;
+1 NEW A
SET A=X
SET PR=$$PR($GET(PR),12)
+2 SET Y=((.5*($$LN^XLFMTH(1+X)))-(.5*($$LN^XLFMTH(1-X))))
GOTO Q
ACOTH(X,PR) ;
+1 NEW A
SET A=X
SET PR=$$PR($GET(PR),12)
+2 SET Y=((.5*($$LN^XLFMTH(1+X)))-(.5*($$LN^XLFMTH(X-1))))
GOTO Q
ASECH(X,PR) ;
+1 NEW A
SET A=X
SET PR=$$PR($GET(PR),12)
+2 SET Y=$$LN^XLFMTH(1/A+$$PWR^XLFMTH((1/(X*X)-1),.5))
GOTO Q
ACSCH(X,PR) ;
+1 NEW A
SET A=X
SET PR=$$PR($GET(PR),12)
+2 SET Y=$$LN^XLFMTH(1/A+$$PWR^XLFMTH((1/(X*X)+1),.5))
GOTO Q