- XLFHYPER ;HINES/CFB,DW - HYPERBOLIC MATH FUNCTIONS ;8/2/93 15:26
- ;;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
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HXLFHYPER 1509 printed Mar 13, 2025@21:07:36 Page 2
- XLFHYPER ;HINES/CFB,DW - HYPERBOLIC MATH FUNCTIONS ;8/2/93 15:26
- +1 ;;8.0;KERNEL;;Jul 10, 1995
- +2 ;;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