
    \h                       S SK JrJrJr  S SKJr  S SKJrJr  S SK	J
r
JrJrJr  S SKJrJrJr  S SKJr  S SKJrJrJr  S SKJrJrJr  S S	KJrJrJr  S S
K J!r!J"r"J#r#  S SK$J%r%  S SK&J'r'  S SK(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3  S SK4J5r5  S r6\S 5       r7\S 5       r8\S 5       r9 " S S\5      r:S r; " S S\:5      r< " S S\:5      r= " S S\:5      r> " S S\:5      r? " S S\:5      r@ " S  S!\@5      rA " S" S#\@5      rB " S$ S%\5      rC " S& S'\C5      rD " S( S)\C5      rE " S* S+\C5      rF " S, S-\C5      rG " S. S/\C5      rH " S0 S1\C5      rIg2)3    )Ssympifycacheit)Add)DefinedFunctionArgumentIndexError)fuzzy_or	fuzzy_and	fuzzy_not	FuzzyBool)IpiRational)Dummy)binomial	factorialRisingFactorial)	bernoullieulernC)Absimre)explogmatch_real_imag)floor)sqrt)acosacotasinatancoscotcscsecsintan_imaginary_unit_as_coefficient)symmetric_polyc           	          U R                  U R                  [        5       Vs0 s H  nXR                  [        5      _M     sn5      $ s  snf N)xreplaceatomsHyperbolicFunctionrewriter   )exprhs     ]/var/www/auris/envauris/lib/python3.13/site-packages/sympy/functions/elementary/hyperbolic.py_rewrite_hyperbolics_as_expr4      sH    ==./1/A YYs^+/1 2 2 1s   A	c                  n   0 [         [        [         S[        S5      -   -  5      _[         * [        [         * S[        S5      -   -  5      _[        R                  [
        S-  _[        SS5      [
        [        SS5      -  _[        S5      S-  [
        S-  _[        S5      * S-  [
        [        SS5      -  _S[        S5      -  [
        S-  _S[        S5      -  [
        [        SS5      -  _[        S5      S-  [
        S-  _[        S5      * S-  [
        [        SS5      -  _[        S5      S-
  [        S5      -  [
        [        SS	5      -  _[        S5      S-
  * [        S5      -  [
        [        S
S	5      -  _[        S[        S5      -   5      S-  [
        S-  _[        S[        S5      -   5      * S-  [
        [        S
S5      -  _[        S[        S5      -
  5      S-  [
        [        SS5      -  _[        S[        S5      -
  5      * S-  [
        [        SS5      -  _S[        S5      -   S[        S5      -  -  [
        S	-  _S[        S5      -   * S[        S5      -  -  [
        [        SS	5      -  [        S5      S-   S-  [
        S-  [        S5      S-   * S-  [
        [        SS5      -  0E$ )N                              )r   r   r   r   Halfr   r        r3   _acosh_tablerD      s   	3q!d1g+	
CAQK ! 	
1 	QHQN*	
 	Q	2a4 
a
Bx1~% 	
$q'	2a4 	47
Bx1~% 	Q	2a4 
a
Bx1~% 
a1d4j "Xa_"4 q'A+tDz!2hq"o#5 	Qa[!RT 
a$q'k	1b!Q/ 	Qa[!RA.  
a$q'k	1b!Q/!" 
T!Wqay!2b5#$ d1g+$q'	"BxB'7$7	a1aA
q'A+q"Xa^+) rC   c                   l   [         [        * S-  [         [        S5      [        S5      -   -  [        * S-  [         S[        S5      -   -  [        * S-  [         S-  [        S[        S5      -
  5      -  [        * S-  [         S-  [        * S-  [         [        SS[        S5      -  -   5      -  [        * S-  [         [        S5      -  [        * S-  [         [        S5      S-
  -  S	[        -  S-  [         S-  [        S
5      -  [        * S
-  [         S-  [        S[        S5      -   5      -  S	[        -  S-  [         [        SS[        S5      -  -
  5      -  S[        -  S-  [         [        S5      [        S5      -
  -  S[        -  S-  [        S5      [         * [	        S[        S5      -   S-  5      -  0$ )Nr7   r;   r>   r6   r<   
   r=   r:   r8   )r   r   r   r   r   rB   rC   r3   _acsch_tablerJ   3   sg    sQwtAwa !B38q47{ObS2XaC$q47{##bS1WaC"qd1qay=!!B37d1gIsQwtAwqyM2b52:aC$q'MB37aC$q47{##RUQYd1qay=!!2b519tAwa !2b52:aD1"S!DG)Q''
 
rC   c                  h   0 [         [        [         -  S-  * [        S[        S5      -   5      -   _[         * [        [         -  S-  [        S[        S5      -   5      -   _[        S5      [        S5      -
  [        S-  _[        S5      [        S5      -
  S[        -  S-  _[        SS[        S5      -  -
  5      [        S-  _[        SS[        S5      -  -
  5      * S[        -  S-  _S[        S[        S5      -   5      -  [        S	-  _S
[        S[        S5      -   5      -  S[        -  S	-  _S[        S5      -  [        S-  _S
[        S5      -  S[        -  S-  _[        S5      S-
  [        S-  _S[        S5      -
  S[        -  S-  _[        S5      [        S-  _[        S5      * S[        -  S-  _[        SS[        S5      -  -   5      S[        -  S-  _[        SS[        S5      -  -   5      * S[        -  S-  _[	        S5      [        S-  _[	        S5      * S[        -  S-  [        SS[        S5      -   -  5      S[        -  S	-  [        SS[        S5      -   -  5      * S[        -  S	-  S[        S5      -   S[        -  S-  S[        S5      -
  S[        -  S-  [        S5      [        S5      -   S[        -  S-  [        S5      * [        S5      -
  S[        -  S-  [         [        R
                  -  [        * [         -  S-  [         [        R                  -  [        [         -  S-  0	E$ )Nr7   r6   r;   r>   r@   r<   rF   	   r=   rH   r?   r8   r:   r9   )r   r   r   r   r   InfinityNegativeInfinityrB   rC   r3   _asech_tablerO   F   s   
"Q$(|c!d1g+..
BAST!W--
 !WtAwb
 !WtAwB	

 QtAwYb
 !aQi-  !B$)
 Qa[!!26
 a$q'k""AbD1H
 QKa
 aL!B$(
 !Wq[26
 a[1R4!8
 GR!V
 !WHadQh
 QtAwY2
  !aQi-  !B$)!
" aD"q&#
$ qTE1R4!8AQK!1R4!8!Qa[/""AbD1Ha[1R4!8$q'\AbD1H!WtAw21gXQ!B$)ajjL2#a%!)a   "Q$(5
 	
rC   c                       \ rS rSrSrSrSrg)r/   j   zQ
Base class for hyperbolic functions.

See Also
========

sinh, cosh, tanh, coth
TrB   N)__name__
__module____qualname____firstlineno____doc__
unbranched__static_attributes__rB   rC   r3   r/   r/   j   s     JrC   r/   c                 f   [         [        -  n[        R                  " U 5       HY  nX!:X  a  [        R
                  n  OUUR                  (       d  M-  UR                  5       u  p4XA:X  d  MF  UR                  (       d  MY    O   U [        R                  4$ U[        R                  -  nX5-
  nXU-  -
  U4$ )a  
Split ARG into two parts, a "rest" and a multiple of $I\pi$.
This assumes ARG to be an ``Add``.
The multiple of $I\pi$ returned in the second position is always a ``Rational``.

Examples
========

>>> from sympy.functions.elementary.hyperbolic import _peeloff_ipi as peel
>>> from sympy import pi, I
>>> from sympy.abc import x, y
>>> peel(x + I*pi/2)
(x, 1/2)
>>> peel(x + I*2*pi/3 + I*pi*y)
(x + I*pi*y + I*pi/6, 1/2)
)r   r   r   	make_argsr   Oneis_Mulas_two_termsis_RationalZerorA   )argipiaKpm1m2s          r3   _peeloff_ipirg   w   s    " Q$C]]38AXXX>>#DAxAMMM   AFF{
aff*B	
BC<rC   c                       \ rS rSrSrSS jrSS jr\S 5       r\	\
S 5       5       rS rSS jrSS	 jrSS
 jrSS jrS rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)sinh   z
``sinh(x)`` is the hyperbolic sine of ``x``.

The hyperbolic sine function is $\frac{e^x - e^{-x}}{2}$.

Examples
========

>>> from sympy import sinh
>>> from sympy.abc import x
>>> sinh(x)
sinh(x)

See Also
========

cosh, tanh, asinh
c                 T    US:X  a  [        U R                  S   5      $ [        X5      e)z0
Returns the first derivative of this function.
r6   r   )coshargsr   selfargindexs     r3   fdiff
sinh.fdiff   s)     q=		!%%$T44rC   c                     [         $ z'
Returns the inverse of this function.
asinhrn   s     r3   inversesinh.inverse   	     rC   c                    UR                   (       a  U[        R                  L a  [        R                  $ U[        R                  L a  [        R                  $ U[        R                  L a  [        R                  $ UR
                  (       a  [        R                  $ UR                  (       a
  U " U* 5      * $ g U[        R                  L a  [        R                  $ [        U5      nUb  [        [        U5      -  $ UR                  5       (       a
  U " U* 5      * $ UR                  (       aS  [        U5      u  p4U(       a?  U[        -  [        -  n[!        U5      [#        U5      -  [#        U5      [!        U5      -  -   $ UR
                  (       a  [        R                  $ UR$                  [&        :X  a  UR(                  S   $ UR$                  [*        :X  a,  UR(                  S   n[-        US-
  5      [-        US-   5      -  $ UR$                  [.        :X  a#  UR(                  S   nU[-        SUS-  -
  5      -  $ UR$                  [0        :X  a/  UR(                  S   nS[-        US-
  5      [-        US-   5      -  -  $ g Nr   r6   r7   )	is_Numberr   NaNrM   rN   is_zeror_   is_negativeComplexInfinityr)   r   r'   could_extract_minus_signis_Addrg   r   ri   rl   funcrv   rm   acoshr   atanhacoth)clsr`   i_coeffxms        r3   eval	sinh.eval   s   ==aee|uu

"zz!***)))vvSD	z! ! a'''uu4S9G"3w<''//11I:%zz#C("QA747?T!WT!W_<<{{vvxx5 xx{"xx5 HHQKAE{T!a%[00xx5 HHQKa!Q$h''xx5 HHQK$q1u+QU344 !rC   c                     U S:  d	  U S-  S:X  a  [         R                  $ [        U5      n[        U5      S:  a  US   nX1S-  -  X S-
  -  -  $ X-  [	        U 5      -  $ )z7
Returns the next term in the Taylor series expansion.
r   r7   rH   r6   r   r_   r   lenr   nr   previous_termsrd   s       r3   taylor_termsinh.taylor_term   sf     q5AEQJ66M
A>"Q&"2&a4x1!e9--v	!,,rC   c                 Z    U R                  U R                  S   R                  5       5      $ Nr   r   rm   	conjugatero   s    r3   _eval_conjugatesinh._eval_conjugate   "    yy1//122rC   c                    U R                   S   R                  (       aA  U(       a(  SUS'   U R                  " U40 UD6[        R                  4$ U [        R                  4$ U(       a1  U R                   S   R                  " U40 UD6R                  5       u  p4OU R                   S   R                  5       u  p4[        U5      [        U5      -  [        U5      [        U5      -  4$ )z0
Returns this function as a complex coordinate.
r   Fcomplex
rm   is_extended_realexpandr   r_   as_real_imagri   r#   rl   r'   ro   deephintsr   r   s        r3   r   sinh.as_real_imag  s     99Q<((#(i D2E2AFF;;aff~%YYq\((77DDFFBYYq\..0FBRR $r(3r7"233rC   c                 D    U R                   " SSU0UD6u  p4X4[        -  -   $ Nr   rB   r   r   ro   r   r   re_partim_parts        r3   _eval_expand_complexsinh._eval_expand_complex  *    ,,@$@%@""rC   c                    U(       a!  U R                   S   R                  " U40 UD6nOU R                   S   nS nUR                  (       a  UR                  5       u  pEORUR	                  SS9u  pgU[
        R                  La.  UR                  (       a  U[
        R                  La
  UnUS-
  U-  nUb<  [        U5      [        W5      -  [        U5      [        U5      -  -   R                  SS9$ [        U5      $ Nr   Trationalr6   )trig)
rm   r   r   r]   as_coeff_Mulr   r[   
is_Integerri   rl   ro   r   r   r`   r   ycoefftermss           r3   _eval_expand_trigsinh._eval_expand_trig      ))A,%%d4e4C))A,C::##%DAq++T+:LEAEE!e&6&65;MQYM=GDGOd1gd1go5==4=HHCyrC   Nc                 8    [        U5      [        U* 5      -
  S-  $ Nr7   r   ro   r`   limitvarkwargss       r3   _eval_rewrite_as_tractablesinh._eval_rewrite_as_tractable&      C3t9$))rC   c                 8    [        U5      [        U* 5      -
  S-  $ r   r   ro   r`   r   s      r3   _eval_rewrite_as_expsinh._eval_rewrite_as_exp)  r   rC   c                 6    [         * [        [         U-  5      -  $ r,   r   r'   r   s      r3   _eval_rewrite_as_sinsinh._eval_rewrite_as_sin,      rCCL  rC   c                 6    [         * [        [         U-  5      -  $ r,   r   r%   r   s      r3   _eval_rewrite_as_cscsinh._eval_rewrite_as_csc/  r   rC   c                 J    [         * [        U[        [         -  S-  -   5      -  $ r   r   rl   r   r   s      r3   _eval_rewrite_as_coshsinh._eval_rewrite_as_cosh2  s     r$sRT!V|$$$rC   c                 V    [        [        R                  U-  5      nSU-  SUS-  -
  -  $ Nr7   r6   tanhr   rA   ro   r`   r   	tanh_halfs       r3   _eval_rewrite_as_tanhsinh._eval_rewrite_as_tanh5  s,    $	{A	1,--rC   c                 V    [        [        R                  U-  5      nSU-  US-  S-
  -  $ r   cothr   rA   ro   r`   r   	coth_halfs       r3   _eval_rewrite_as_cothsinh._eval_rewrite_as_coth9  s,    $	{IqL1,--rC   c                     S[        U5      -  $ Nr6   cschr   s      r3   _eval_rewrite_as_cschsinh._eval_rewrite_as_csch=      49}rC   c                 <   U R                   S   R                  XUS9nUR                  US5      nU[        R                  L a$  UR                  USUR                  (       a  SOSS9nUR                  (       a  U$ UR                  (       a  U R                  U5      $ U $ Nr   logxcdir-+)dir)
rm   as_leading_termsubsr   r}   limitr   r~   	is_finiter   ro   r   r   r   r`   arg0s         r3   _eval_as_leading_termsinh._eval_as_leading_term@  s}    iil**1d*Cxx1~155=99Qd.>.>sC9HD<<J^^99T?"KrC   c                     U R                   S   nUR                  (       a  gUR                  5       u  p#U[        -  R                  $ Nr   Trm   is_realr   r   r~   ro   r`   r   r   s       r3   _eval_is_realsinh._eval_is_realM  s9    iil;; !!#2rC   c                 B    U R                   S   R                  (       a  gg r   rm   r   r   s    r3   _eval_is_extended_realsinh._eval_is_extended_realW      99Q<(( )rC   c                 r    U R                   S   R                  (       a  U R                   S   R                  $ g r   rm   r   is_positiver   s    r3   _eval_is_positivesinh._eval_is_positive[  ,    99Q<((99Q<+++ )rC   c                 r    U R                   S   R                  (       a  U R                   S   R                  $ g r   rm   r   r   r   s    r3   _eval_is_negativesinh._eval_is_negative_  r  rC   c                 8    U R                   S   nUR                  $ r   rm   r   ro   r`   s     r3   _eval_is_finitesinh._eval_is_finitec      iil}}rC   c                 r    [        U R                  S   5      u  pUR                  (       a  UR                  $ g r   )rg   rm   r~   
is_integerro   restipi_mults      r3   _eval_is_zerosinh._eval_is_zerog  s.    %diil3<<&&& rC   rB   r6   Tr,   ) rR   rS   rT   rU   rV   rq   rw   classmethodr   staticmethodr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  rX   rB   rC   r3   ri   ri      s    &5 .5 .5` -  -34 #"**!!%..,,'rC   ri   c                       \ rS rSrSrSS jr\S 5       r\\	S 5       5       r
S rSS jrSS jrSS	 jrSS jrS rS rS rS rS rS rS rS rS rS rS rS rS rSrg
)rl   im  z
``cosh(x)`` is the hyperbolic cosine of ``x``.

The hyperbolic cosine function is $\frac{e^x + e^{-x}}{2}$.

Examples
========

>>> from sympy import cosh
>>> from sympy.abc import x
>>> cosh(x)
cosh(x)

See Also
========

sinh, tanh, acosh
c                 T    US:X  a  [        U R                  S   5      $ [        X5      eNr6   r   ri   rm   r   rn   s     r3   rq   
cosh.fdiff  s'    q=		!%%$T44rC   c                    SSK Jn  UR                  (       a  U[        R                  L a  [        R                  $ U[        R
                  L a  [        R
                  $ U[        R                  L a  [        R
                  $ UR                  (       a  [        R                  $ UR                  (       a	  U " U* 5      $ g U[        R                  L a  [        R                  $ [        U5      nUb  U" U5      $ UR                  5       (       a	  U " U* 5      $ UR                  (       aS  [        U5      u  pEU(       a?  U[        -  [         -  n[#        U5      [#        U5      -  [%        U5      [%        U5      -  -   $ UR                  (       a  [        R                  $ UR&                  [(        :X  a  [+        SUR,                  S   S-  -   5      $ UR&                  [.        :X  a  UR,                  S   $ UR&                  [0        :X  a!  S[+        SUR,                  S   S-  -
  5      -  $ UR&                  [2        :X  a/  UR,                  S   nU[+        US-
  5      [+        US-   5      -  -  $ g )Nr   )r#   r6   r7   )(sympy.functions.elementary.trigonometricr#   r|   r   r}   rM   rN   r~   r[   r   r   r)   r   r   rg   r   r   rl   ri   r   rv   r   rm   r   r   r   )r   r`   r#   r   r   r   s         r3   r   	cosh.eval  s   @==aee|uu

"zz!***zz!uuC4y  ! a'''uu4S9G"7|#//11t9$zz#C("QA747?T!WT!W_<<{{uuxx5 AQ.//xx5 xx{"xx5 a#((1+q.0111xx5 HHQK$q1u+QU344 !rC   c                     U S:  d	  U S-  S:X  a  [         R                  $ [        U5      n[        U5      S:  a  US   nX1S-  -  X S-
  -  -  $ X-  [	        U 5      -  $ )Nr   r7   r6   rH   r   r   s       r3   r   cosh.taylor_term  sf     q5AEQJ66M
A>"Q&"2&a4x1!e9--vil**rC   c                 Z    U R                  U R                  S   R                  5       5      $ r   r   r   s    r3   r   cosh._eval_conjugate  r   rC   c                    U R                   S   R                  (       aA  U(       a(  SUS'   U R                  " U40 UD6[        R                  4$ U [        R                  4$ U(       a1  U R                   S   R                  " U40 UD6R                  5       u  p4OU R                   S   R                  5       u  p4[        U5      [        U5      -  [        U5      [        U5      -  4$ )Nr   Fr   )
rm   r   r   r   r_   r   rl   r#   ri   r'   r   s        r3   r   cosh.as_real_imag  s    99Q<((#(i D2E2AFF;;aff~%YYq\((77DDFFBYYq\..0FBRR $r(3r7"233rC   c                 D    U R                   " SSU0UD6u  p4X4[        -  -   $ r   r   r   s        r3   r   cosh._eval_expand_complex  r   rC   c                    U(       a!  U R                   S   R                  " U40 UD6nOU R                   S   nS nUR                  (       a  UR                  5       u  pEORUR	                  SS9u  pgU[
        R                  La.  UR                  (       a  U[
        R                  La
  UnUS-
  U-  nUb<  [        U5      [        W5      -  [        U5      [        U5      -  -   R                  SS9$ [        U5      $ r   )
rm   r   r   r]   r   r   r[   r   rl   ri   r   s           r3   r   cosh._eval_expand_trig  r   rC   Nc                 8    [        U5      [        U* 5      -   S-  $ r   r   r   s       r3   r   cosh._eval_rewrite_as_tractable  r   rC   c                 8    [        U5      [        U* 5      -   S-  $ r   r   r   s      r3   r   cosh._eval_rewrite_as_exp  r   rC   c                 $    [        [        U-  SS9$ NFevaluater#   r   r   s      r3   _eval_rewrite_as_coscosh._eval_rewrite_as_cos      1s7U++rC   c                 *    S[        [        U-  SS9-  $ Nr6   Fr=  r&   r   r   s      r3   _eval_rewrite_as_seccosh._eval_rewrite_as_sec      3q3w///rC   c                 H    [         * [        U[        [         -  S-  -   SS9-  $ Nr7   Fr=  r   ri   r   r   s      r3   _eval_rewrite_as_sinhcosh._eval_rewrite_as_sinh  s"    r$sRT!V|e444rC   c                 V    [        [        R                  U-  5      S-  nSU-   SU-
  -  $ r   r   r   s       r3   r   cosh._eval_rewrite_as_tanh  s,    $a'	II..rC   c                 V    [        [        R                  U-  5      S-  nUS-   US-
  -  $ r   r   r   s       r3   r   cosh._eval_rewrite_as_coth  s,    $a'	A	A..rC   c                     S[        U5      -  $ r   sechr   s      r3   _eval_rewrite_as_sechcosh._eval_rewrite_as_sech  r   rC   c                 X   U R                   S   R                  XUS9nUR                  US5      nU[        R                  L a$  UR                  USUR                  (       a  SOSS9nUR                  (       a  [        R                  $ UR                  (       a  U R                  U5      $ U $ r   )rm   r   r   r   r}   r   r   r~   r[   r   r   r   s         r3   r   cosh._eval_as_leading_term  s    iil**1d*Cxx1~155=99Qd.>.>sC9HD<<55L^^99T?"KrC   c                     U R                   S   nUR                  (       d  UR                  (       a  gUR                  5       u  p#U[        -  R
                  $ r   )rm   r  is_imaginaryr   r   r~   r  s       r3   r  cosh._eval_is_real  sC    iil ;;#**
 !!#2rC   c                    U R                   S   nUR                  5       u  p#US[        -  -  nUR                  nU(       a  gUR                  nUSL a  U$ [	        U[        U[	        U[        S-  :  US[        -  S-  :  /5      /5      /5      $ Nr   r7   TFr8   rm   r   r   r~   r	   r
   ro   zr   r   ymodyzeroxzeros          r3   r  cosh._eval_is_positive  s     IIaL~~AbDz		E>LdRTk4!B$q&=9: 	  	rC   c                    U R                   S   nUR                  5       u  p#US[        -  -  nUR                  nU(       a  gUR                  nUSL a  U$ [	        U[        U[	        U[        S-  :*  US[        -  S-  :  /5      /5      /5      $ r]  r^  r_  s          r3   _eval_is_nonnegativecosh._eval_is_nonnegative?  s    IIaL~~AbDz		E>LdbdlDAbDFN;< 	  	rC   c                 8    U R                   S   nUR                  $ r   r  r  s     r3   r  cosh._eval_is_finiteY  r  rC   c                     [        U R                  S   5      u  pU(       a/  UR                  (       a  U[        R                  -
  R
                  $ g g r   )rg   rm   r~   r   rA   r  r  s      r3   r  cosh._eval_is_zero]  s;    %diil3qvv%111 %8rC   rB   r!  r"  r,   )rR   rS   rT   rU   rV   rq   r#  r   r$  r   r   r   r   r   r   r   r   r@  rF  rL  r   r   rU  r   r  r  rf  r  r  rX   rB   rC   r3   rl   rl   m  s    &5 -5 -5^ 
+  
+34#"**,05//@42rC   rl   c                       \ rS rSrSrSS jrSS jr\S 5       r\	\
S 5       5       rS rSS jrS	 rSS jrS rS rS rS rS rS rS rS rS rS rS rS rS rSrg
)r   ic  z
``tanh(x)`` is the hyperbolic tangent of ``x``.

The hyperbolic tangent function is $\frac{\sinh(x)}{\cosh(x)}$.

Examples
========

>>> from sympy import tanh
>>> from sympy.abc import x
>>> tanh(x)
tanh(x)

See Also
========

sinh, cosh, atanh
c                 |    US:X  a,  [         R                  [        U R                  S   5      S-  -
  $ [	        X5      eNr6   r   r7   )r   r[   r   rm   r   rn   s     r3   rq   
tanh.fdiffw  s5    q=554		!-q000$T44rC   c                     [         $ rt   r   rn   s     r3   rw   tanh.inverse}  ry   rC   c                    UR                   (       a  U[        R                  L a  [        R                  $ U[        R                  L a  [        R                  $ U[        R
                  L a  [        R                  $ UR                  (       a  [        R                  $ UR                  (       a
  U " U* 5      * $ g U[        R                  L a  [        R                  $ [        U5      nUb;  UR                  5       (       a  [        * [        U* 5      -  $ [        [        U5      -  $ UR                  5       (       a
  U " U* 5      * $ UR                  (       aV  [!        U5      u  p4U(       aB  [#        U[$        -  [        -  5      nU[        R                  L a  ['        U5      $ [#        U5      $ UR                  (       a  [        R                  $ UR(                  [*        :X  a#  UR,                  S   nU[/        SUS-  -   5      -  $ UR(                  [0        :X  a/  UR,                  S   n[/        US-
  5      [/        US-   5      -  U-  $ UR(                  [2        :X  a  UR,                  S   $ UR(                  [4        :X  a  SUR,                  S   -  $ g r{   )r|   r   r}   rM   r[   rN   NegativeOner~   r_   r   r   r)   r   r   r(   r   rg   r   r   r   r   rv   rm   r   r   r   r   )r   r`   r   r   r   tanhms         r3   r   	tanh.eval  s   ==aee|uu

"uu***}}$vvSD	z! ! a'''uu4S9G"33552WH--3w<''//11I:%zz#C( 2aLE 1 11#Aw#Aw{{vvxx5 HHQKa!Q$h''xx5 HHQKAE{T!a%[0144xx5 xx{"xx5 !}$ !rC   c                     U S:  d	  U S-  S:X  a  [         R                  $ [        U5      nSU S-   -  n[        U S-   5      n[	        U S-   5      nX3S-
  -  U-  U-  X-  -  $ Nr   r7   r6   )r   r_   r   r   r   )r   r   r   rb   BFs         r3   r   tanh.taylor_term  sk     q5AEQJ66M
AAE
A!a% A!a% A!e9q=?QT))rC   c                 Z    U R                  U R                  S   R                  5       5      $ r   r   r   s    r3   r   tanh._eval_conjugate  r   rC   c                    U R                   S   R                  (       aA  U(       a(  SUS'   U R                  " U40 UD6[        R                  4$ U [        R                  4$ U(       a1  U R                   S   R                  " U40 UD6R                  5       u  p4OU R                   S   R                  5       u  p4[        U5      S-  [        U5      S-  -   n[        U5      [        U5      -  U-  [        U5      [        U5      -  U-  4$ )Nr   Fr   r7   r   )ro   r   r   r   r   denoms         r3   r   tanh.as_real_imag  s    99Q<((#(i D2E2AFF;;aff~%YYq\((77DDFFBYYq\..0FBR!c"gqj(Rb!%'RR)>??rC   c                    U R                   S   nUR                  (       a  [        UR                   5      nUR                    Vs/ s H  n[        USS9R	                  5       PM     nnSS/n[        US-   5       H  nXgS-  ==   [        Xu5      -  ss'   M     US   US   -  $ UR                  (       a  UR                  5       u  pUR                  (       a  US:  a  [        U	5      n
[        SUS-   S5       Vs/ s H  n[        [        U5      U5      X-  -  PM     nn[        SUS-   S5       Vs/ s H  n[        [        U5      U5      X-  -  PM     nn[        U6 [        U6 -  $ [        U5      $ s  snf s  snf s  snf )Nr   Fr=  r6   r7   )rm   r   r   r   r   ranger*   r\   r   r   r   r   )ro   r   r`   r   r   TXrd   ir   r   Tkds                r3   r   tanh._eval_expand_trig  s\   iil::CHHA#!A q5);;=!  #AA1q5\a%N111 "Q4!9ZZ++-LEEAIK7<Q	17MN7M!Rea(-7MN7<Q	17MN7M!Rea(-7MNAwsAw&Cy# ONs   "E5;$E:3$E?Nc                 @    [        U* 5      [        U5      pTXT-
  XT-   -  $ r,   r   ro   r`   r   r   neg_exppos_exps         r3   r   tanh._eval_rewrite_as_tractable  $    t9c#h!G$566rC   c                 @    [        U* 5      [        U5      pCXC-
  XC-   -  $ r,   r   ro   r`   r   r  r  s        r3   r   tanh._eval_rewrite_as_exp  r  rC   c                 4    [         * [        [         U-  SS9-  $ r<  )r   r(   r   s      r3   _eval_rewrite_as_tantanh._eval_rewrite_as_tan      rCC%000rC   c                 4    [         * [        [         U-  SS9-  $ r<  )r   r$   r   s      r3   _eval_rewrite_as_cottanh._eval_rewrite_as_cot  r  rC   c                 ^    [         [        U5      -  [        [        [         -  S-  U-
  SS9-  $ rJ  rK  r   s      r3   rL  tanh._eval_rewrite_as_sinh  s(    c{41Qu===rC   c                 ^    [         [        [        [         -  S-  U-
  SS9-  [        U5      -  $ rJ  r   r   s      r3   r   tanh._eval_rewrite_as_cosh  s)    bd1fslU33DI==rC   c                     S[        U5      -  $ r   r   r   s      r3   r   tanh._eval_rewrite_as_coth      c{rC   c                     SSK Jn  U R                  S   R                  U5      nXR                  ;   a  U" SU5      R                  U5      (       a  U$ U R                  U5      $ Nr   )Orderr6   sympy.series.orderr  rm   r   free_symbolscontainsr   ro   r   r   r   r  r`   s         r3   r   tanh._eval_as_leading_term  sR    ,iil**1-   U1a[%9%9#%>%>J99S>!rC   c                     U R                   S   nUR                  (       a  gUR                  5       u  p#US:X  a  U[        -  [        S-  :X  a  g U[        S-  -  R                  $ )Nr   Tr7   r   r  s       r3   r  tanh._eval_is_real  sY    iil;;!!# 7rBw"Q$ bd$$$rC   c                 B    U R                   S   R                  (       a  gg r   r  r   s    r3   r  tanh._eval_is_extended_real  r	  rC   c                 r    U R                   S   R                  (       a  U R                   S   R                  $ g r   r  r   s    r3   r  tanh._eval_is_positive  r  rC   c                 r    U R                   S   R                  (       a  U R                   S   R                  $ g r   r  r   s    r3   r  tanh._eval_is_negative"  r  rC   c                     U R                   S   nUR                  5       u  p#[        U5      S-  [        U5      S-  -   nUS:X  a  gUR                  (       a  gUR
                  (       a  gg )Nr   r7   FT)rm   r   r#   ri   	is_numberr   )ro   r`   r   r   r  s        r3   r  tanh._eval_is_finite&  s^    iil!!#B
T"Xq[(A:__  rC   c                 F    U R                   S   nUR                  (       a  gg r   rm   r~   r  s     r3   r  tanh._eval_is_zero2  s    iil;; rC   rB   r!  r"  r,   )rR   rS   rT   rU   rV   rq   rw   r#  r   r$  r   r   r   r   r   r   r   r  r  rL  r   r   r   r  r  r  r  r  r  rX   rB   rC   r3   r   r   c  s    &5 2% 2%h *  *3@&7711>>"%,,
rC   r   c                       \ rS rSrSrSS jrSS jr\S 5       r\	\
S 5       5       rS rSS jrSS
 jrS rS rS rS rS rS rS rS rSrg	)r   i8  z
``coth(x)`` is the hyperbolic cotangent of ``x``.

The hyperbolic cotangent function is $\frac{\cosh(x)}{\sinh(x)}$.

Examples
========

>>> from sympy import coth
>>> from sympy.abc import x
>>> coth(x)
coth(x)

See Also
========

sinh, cosh, acoth
c                 `    US:X  a  S[        U R                  S   5      S-  -  $ [        X5      e)Nr6   r9   r   r7   r(  rn   s     r3   rq   
coth.fdiffL  s1    q=d499Q<(!+++$T44rC   c                     [         $ rt   )r   rn   s     r3   rw   coth.inverseR  ry   rC   c                    UR                   (       a  U[        R                  L a  [        R                  $ U[        R                  L a  [        R                  $ U[        R
                  L a  [        R                  $ UR                  (       a  [        R                  $ UR                  (       a
  U " U* 5      * $ g U[        R                  L a  [        R                  $ [        U5      nUb;  UR                  5       (       a  [        [        U* 5      -  $ [        * [        U5      -  $ UR                  5       (       a
  U " U* 5      * $ UR                  (       aV  [        U5      u  p4U(       aB  [!        U["        -  [        -  5      nU[        R                  L a  [!        U5      $ [%        U5      $ UR                  (       a  [        R                  $ UR&                  [(        :X  a#  UR*                  S   n[-        SUS-  -   5      U-  $ UR&                  [.        :X  a/  UR*                  S   nU[-        US-
  5      [-        US-   5      -  -  $ UR&                  [0        :X  a  SUR*                  S   -  $ UR&                  [2        :X  a  UR*                  S   $ g r{   )r|   r   r}   rM   r[   rN   rt  r~   r   r   r)   r   r   r$   r   rg   r   r   r   r   rv   rm   r   r   r   r   )r   r`   r   r   r   cothms         r3   r   	coth.evalX  s   ==aee|uu

"uu***}}$(((SD	z! ! a'''uu4S9G"3355sG8},,rCL((//11I:%zz#C( 2aLE 1 11#Aw#Aw{{(((xx5 HHQKA1H~a''xx5 HHQK$q1u+QU344xx5 !}$xx5 xx{" !rC   c                     U S:X  a  S[        U5      -  $ U S:  d	  U S-  S:X  a  [        R                  $ [        U5      n[        U S-   5      n[	        U S-   5      nSU S-   -  U-  U-  X-  -  $ r{   r   r   r_   r   r   r   r   r   ry  rz  s        r3   r   coth.taylor_term  sv     6wqz>!Ua!eqj66M
A!a% A!a% Aq1u:>!#ad**rC   c                 Z    U R                  U R                  S   R                  5       5      $ r   r   r   s    r3   r   coth._eval_conjugate  r   rC   c                    SSK JnJn  U R                  S   R                  (       aA  U(       a(  SUS'   U R
                  " U40 UD6[        R                  4$ U [        R                  4$ U(       a1  U R                  S   R
                  " U40 UD6R                  5       u  pVOU R                  S   R                  5       u  pV[        U5      S-  U" U5      S-  -   n[        U5      [        U5      -  U-  U" U5      * U" U5      -  U-  4$ )Nr   )r#   r'   Fr   r7   )r+  r#   r'   rm   r   r   r   r_   r   ri   rl   )ro   r   r   r#   r'   r   r   r  s           r3   r   coth.as_real_imag  s    G99Q<((#(i D2E2AFF;;aff~%YYq\((77DDFFBYYq\..0FBR!c"gqj(Rb!%'#b'#b')9%)?@@rC   Nc                 @    [        U* 5      [        U5      pTXT-   XT-
  -  $ r,   r   r  s         r3   r   coth._eval_rewrite_as_tractable  r  rC   c                 @    [        U* 5      [        U5      pCXC-   XC-
  -  $ r,   r   r  s        r3   r   coth._eval_rewrite_as_exp  r  rC   c                 `    [         * [        [        [         -  S-  U-
  SS9-  [        U5      -  $ rJ  rK  r   s      r3   rL  coth._eval_rewrite_as_sinh  s+    r$r!tAv|e44T#Y>>rC   c                 `    [         * [        U5      -  [        [        [         -  S-  U-
  SS9-  $ rJ  r   r   s      r3   r   coth._eval_rewrite_as_cosh  s*    r$s)|DAa#>>>rC   c                     S[        U5      -  $ r   r   r   s      r3   r   coth._eval_rewrite_as_tanh  r  rC   c                 r    U R                   S   R                  (       a  U R                   S   R                  $ g r   r  r   s    r3   r  coth._eval_is_positive  r  rC   c                 r    U R                   S   R                  (       a  U R                   S   R                  $ g r   r  r   s    r3   r  coth._eval_is_negative  r  rC   c                     SSK Jn  U R                  S   R                  U5      nXR                  ;   a"  U" SU5      R                  U5      (       a  SU-  $ U R                  U5      $ r  r  r  s         r3   r   coth._eval_as_leading_term  sV    ,iil**1-   U1a[%9%9#%>%>S5L99S>!rC   c                    U R                   S   nUR                  (       a  UR                    Vs/ s H  n[        USS9R                  5       PM     nn/ / /n[	        UR                   5      n[        USS5       H%  nXVU-
  S-     R                  [        Xt5      5        M'     [        US   6 [        US   6 -  $ UR                  (       a  UR                  SS9u  pUR                  (       af  US:  a`  [        USS9n	/ / /n[        USS5       H*  nXXU-
  S-     R                  [        X5      X-  -  5        M,     [        US   6 [        US   6 -  $ [        U5      $ s  snf )	Nr   Fr=  r9   r7   r6   Tr   )rm   r   r   r   r   r  appendr*   r   r\   r   r   r   )
ro   r   r`   r   CXrd   r   r  r   cs
             r3   r   coth._eval_expand_trig  sB   iil::GJxxPx!$q5);;=xBPRACHHA1b"%q5A+%%nQ&;< &!:c1Q4j((ZZ'''6HEEAIU+Hub"-AqyAo&--hu.@.EF .AaDz#qt*,,Cy Qs   "ErB   r!  r"  r,   )rR   rS   rT   rU   rV   rq   rw   r#  r   r$  r   r   r   r   r   r   rL  r   r   r  r  r   r   rX   rB   rC   r3   r   r   8  sz    &5 2# 2#h +  +3A77??,,"rC   r   c                       \ rS rSr% SrSrSr\\S'   Sr	\\S'   \
S 5       rS rS rS	 rS
 rSS jrS rS rSS jrS rSS jrS rS rS rS rSrg)ReciprocalHyperbolicFunctioni  z=Base class for reciprocal functions of hyperbolic functions. N_is_even_is_oddc                 H   UR                  5       (       a5  U R                  (       a	  U " U* 5      $ U R                  (       a
  U " U* 5      * $ U R                  R	                  U5      n[        US5      (       a#  UR                  5       U :X  a  UR                  S   $ Ub  SU-  $ U$ )Nrw   r   r6   )r   r  r  _reciprocal_ofr   hasattrrw   rm   )r   r`   ts      r3   r   !ReciprocalHyperbolicFunction.eval  s    ''))||C4y {{SD	z!##C(3	""s{{}';88A;mqs**rC   c                 `    U R                  U R                  S   5      n[        XA5      " U0 UD6$ r   )r  rm   getattr)ro   method_namerm   r   os        r3   _call_reciprocal-ReciprocalHyperbolicFunction._call_reciprocal  s/    		!-q&777rC   c                 B    U R                   " U/UQ70 UD6nUb  SU-  $ U$ r   )r  )ro   r  rm   r   r  s        r3   _calculate_reciprocal2ReciprocalHyperbolicFunction._calculate_reciprocal  s1     !!+???mqs**rC   c                 `    U R                  X5      nUb  X0R                  U5      :w  a  SU-  $ g g r   )r  r  )ro   r  r`   r  s       r3   _rewrite_reciprocal0ReciprocalHyperbolicFunction._rewrite_reciprocal  s9     !!+3=Q"5"5c"::Q3J ;=rC   c                 &    U R                  SU5      $ )Nr   r  r   s      r3   r   1ReciprocalHyperbolicFunction._eval_rewrite_as_exp  s    ''(>DDrC   c                 &    U R                  SU5      $ )Nr   r  r   s       r3   r   7ReciprocalHyperbolicFunction._eval_rewrite_as_tractable  s    ''(DcJJrC   c                 &    U R                  SU5      $ )Nr   r  r   s      r3   r   2ReciprocalHyperbolicFunction._eval_rewrite_as_tanh      ''(?EErC   c                 &    U R                  SU5      $ )Nr   r  r   s      r3   r   2ReciprocalHyperbolicFunction._eval_rewrite_as_coth  r  rC   c                 f    SU R                  U R                  S   5      -  R                  " U40 UD6$ r'  )r  rm   r   )ro   r   r   s      r3   r   )ReciprocalHyperbolicFunction.as_real_imag  s0    D''		!55CCDRERRrC   c                 Z    U R                  U R                  S   R                  5       5      $ r   r   r   s    r3   r   ,ReciprocalHyperbolicFunction._eval_conjugate  r   rC   c                 F    U R                   " SSS0UD6u  p4U[        U-  -   $ )Nr   TrB   r   r   s        r3   r   1ReciprocalHyperbolicFunction._eval_expand_complex  s,    ,,@$@%@7""rC   c                 &    U R                   " S0 UD6$ )N)r   )r  )ro   r   s     r3   r   .ReciprocalHyperbolicFunction._eval_expand_trig!  s    ))GGGrC   c                 `    SU R                  U R                  S   5      -  R                  XUS9$ )Nr6   r   r   )r  rm   r   )ro   r   r   r   s       r3   r   2ReciprocalHyperbolicFunction._eval_as_leading_term$  s1    $%%diil33JJ1^bJccrC   c                 R    U R                  U R                  S   5      R                  $ r   )r  rm   r   r   s    r3   r  3ReciprocalHyperbolicFunction._eval_is_extended_real'  s!    ""499Q<0AAArC   c                 X    SU R                  U R                  S   5      -  R                  $ r'  )r  rm   r   r   s    r3   r  ,ReciprocalHyperbolicFunction._eval_is_finite*  s&    $%%diil33>>>rC   rB   r,   r"  )rR   rS   rT   rU   rV   r  r  r   __annotations__r  r#  r   r  r  r  r   r   r   r   r   r   r   r   r   r  r  rX   rB   rC   r3   r  r    s    G NHiGY
+ 
+8
+EKFFS3#HdB?rC   r  c                   h    \ rS rSrSr\rSrSS jr\	\
S 5       5       rS rS rS rS	 rS
 rS rSrg)r   i.  a  
``csch(x)`` is the hyperbolic cosecant of ``x``.

The hyperbolic cosecant function is $\frac{2}{e^x - e^{-x}}$

Examples
========

>>> from sympy import csch
>>> from sympy.abc import x
>>> csch(x)
csch(x)

See Also
========

sinh, cosh, tanh, sech, asinh, acosh
Tc                     US:X  a2  [        U R                  S   5      * [        U R                  S   5      -  $ [        X5      e)z/
Returns the first derivative of this function
r6   r   )r   rm   r   r   rn   s     r3   rq   
csch.fdiffE  s>     q=1&&diil);;;$T44rC   c                     U S:X  a  S[        U5      -  $ U S:  d	  U S-  S:X  a  [        R                  $ [        U5      n[        U S-   5      n[	        U S-   5      nSSSU -  -
  -  U-  U-  X-  -  $ )z6
Returns the next term in the Taylor series expansion
r   r6   r7   r  r  s        r3   r   csch.taylor_termN  s{     6WQZ<Ua!eqj66M
A!a% A!a% AAqD>A%a'!$..rC   c                 2    [         [        [         U-  SS9-  $ r<  r   r   s      r3   r   csch._eval_rewrite_as_sin`      3q3w///rC   c                 2    [         [        [         U-  SS9-  $ r<  r   r   s      r3   r   csch._eval_rewrite_as_cscc  r  rC   c                 F    [         [        U[         [        -  S-  -   SS9-  $ rJ  r   r   s      r3   r   csch._eval_rewrite_as_coshf  s!    4a"fqj(5999rC   c                     S[        U5      -  $ r   ri   r   s      r3   rL  csch._eval_rewrite_as_sinhi  r   rC   c                 r    U R                   S   R                  (       a  U R                   S   R                  $ g r   r  r   s    r3   r  csch._eval_is_positivel  r  rC   c                 r    U R                   S   R                  (       a  U R                   S   R                  $ g r   r  r   s    r3   r  csch._eval_is_negativep  r  rC   rB   Nr!  )rR   rS   rT   rU   rV   ri   r  r  rq   r$  r   r   r   r   r   rL  r  r  rX   rB   rC   r3   r   r   .  sR    & NG5 /  / 00:,,rC   r   c                   b    \ rS rSrSr\rSrSS jr\	\
S 5       5       rS rS rS rS	 rS
 rSrg)rT  iu  a
  
``sech(x)`` is the hyperbolic secant of ``x``.

The hyperbolic secant function is $\frac{2}{e^x + e^{-x}}$

Examples
========

>>> from sympy import sech
>>> from sympy.abc import x
>>> sech(x)
sech(x)

See Also
========

sinh, cosh, tanh, coth, csch, asinh, acosh
Tc                     US:X  a2  [        U R                  S   5      * [        U R                  S   5      -  $ [        X5      er'  )r   rm   rT  r   rn   s     r3   rq   
sech.fdiff  s<    q=$))A,''TYYq\(:::$T44rC   c                     U S:  d	  U S-  S:X  a  [         R                  $ [        U5      n[        U 5      [	        U 5      -  X-  -  $ rx  )r   r_   r   r   r   r   r   r   s      r3   r   sech.taylor_term  sA     q5AEQJ66M
A8il*QV33rC   c                 *    S[        [        U-  SS9-  $ rD  r?  r   s      r3   r@  sech._eval_rewrite_as_cos  rH  rC   c                 $    [        [        U-  SS9$ r<  rE  r   s      r3   rF  sech._eval_rewrite_as_sec  rB  rC   c                 F    [         [        U[         [        -  S-  -   SS9-  $ rJ  rK  r   s      r3   rL  sech._eval_rewrite_as_sinh  s     4a"fai%888rC   c                     S[        U5      -  $ r   rl   r   s      r3   r   sech._eval_rewrite_as_cosh  r   rC   c                 B    U R                   S   R                  (       a  gg r   r  r   s    r3   r  sech._eval_is_positive  r	  rC   rB   Nr!  )rR   rS   rT   rU   rV   rl   r  r  rq   r$  r   r   r@  rF  rL  r   r  rX   rB   rC   r3   rT  rT  u  sM    & NH5 4  40,9rC   rT  c                       \ rS rSrSrSrg)InverseHyperbolicFunctioni  z,Base class for inverse hyperbolic functions.rB   N)rR   rS   rT   rU   rV   rX   rB   rC   r3   r1  r1    s    6rC   r1  c                      ^  \ rS rSrSrSS jr\S 5       r\\	S 5       5       r
S rSU 4S jjrS r\rS	 rS
 rS rS rSS jrS rS rS rSrU =r$ )rv   i  a  
``asinh(x)`` is the inverse hyperbolic sine of ``x``.

The inverse hyperbolic sine function.

Examples
========

>>> from sympy import asinh
>>> from sympy.abc import x
>>> asinh(x).diff(x)
1/sqrt(x**2 + 1)
>>> asinh(1)
log(1 + sqrt(2))

See Also
========

acosh, atanh, sinh
c                 f    US:X  a!  S[        U R                  S   S-  S-   5      -  $ [        X5      ern  )r   rm   r   rn   s     r3   rq   asinh.fdiff  s5    q=T$))A,/A-...$T44rC   c                    UR                   (       a  U[        R                  L a  [        R                  $ U[        R                  L a  [        R                  $ U[        R                  L a  [        R                  $ UR
                  (       a  [        R                  $ U[        R                  L a  [        [        S5      S-   5      $ U[        R                  L a  [        [        S5      S-
  5      $ UR                  (       a
  U " U* 5      * $ OU[        R                  L a  [        R                  $ UR
                  (       a  [        R                  $ [        U5      nUb  [        [        U5      -  $ UR!                  5       (       a
  U " U* 5      * $ [#        U[$        5      (       a  UR&                  S   R(                  (       a  UR&                  S   nUR*                  (       a  U$ [-        U5      u  pEUbO  UbK  [/        U[0        S-  -   [0        -  5      nU[        [0        -  U-  -
  nUR2                  nUSL a  U$ USL a  U* $ g g g g g )Nr7   r6   r   TF)r|   r   r}   rM   rN   r~   r_   r[   r   r   rt  r   r   r)   r   r!   r   
isinstanceri   rm   r  r  r   r   r   is_even)	r   r`   r   r`  rr  fr   evens	            r3   r   
asinh.eval  s   ==aee|uu

"zz!***)))vv47Q;''%47Q;''SD	z! ! a'''((({{vv4S9G"4=((//11I:%c4  SXXa[%:%:Ayy"1%DA}1r!t8R-("QJyy4<HU]2I # "/} &; rC   c                 Z   U S:  d	  U S-  S:X  a  [         R                  $ [        U5      n[        U5      S:  a%  U S:  a  US   nU* U S-
  S-  -  X S-
  -  -  US-  -  $ U S-
  S-  n[	        [         R
                  U5      n[        U5      n[         R                  U-  U-  U-  X-  -  U -  $ Nr   r7   rH   r6   )r   r_   r   r   r   rA   r   rt  r   r   r   rd   r  Rrz  s          r3   r   asinh.taylor_term   s     q5AEQJ66M
A>"a'AE"2&rQUQJq5	2QT99UqL#AFFA.aL}}a'!+a/!$6::rC   c                    U R                   S   nUR                  US5      R                  5       nUR                  (       a  UR	                  U5      $ U[
        R                  L a5  U R                  UR	                  U5      5      nUR                  (       a  U$ U $ U[        * [        [
        R                  4;   a#  U R                  [        5      R                  XUS9$ SUS-  -   R                  (       a  UR                  X(       a  UOS5      n[!        U5      R"                  (       a;  [%        U5      R                  (       a   U R                  U5      * [        [&        -  -
  $ Ox[!        U5      R                  (       a;  [%        U5      R"                  (       a   U R                  U5      * [        [&        -  -   $ O#U R                  [        5      R                  XUS9$ U R                  U5      $ Nr   r   r6   r7   )rm   r   cancelr~   r   r   r}   r   r   r   r   r0   r   r   r   r   r   r  r   r   ro   r   r   r   r`   x0r1   ndirs           r3   r   asinh._eval_as_leading_term  sq   iilXXa^""$::&&q));99S0034D~~ 1"a**++<<$::1d:SSAI""771dd2D$x##b6%% IIbM>AbD00 &D%%b6%% IIbM>AbD00 & ||C(>>qRV>WWyy}rC   c                   > U R                   S   nUR                  US5      nU[        [        * 4;   a#  U R                  [        5      R                  XX4S9$ [        T	U ]  XUS9nU[        R                  L a  U$ SUS-  -   R                  (       a  UR                  X(       a  UOS5      n[        U5      R                  (       a.  [        U5      R                  (       a  U* [        [        -  -
  $  U$ [        U5      R                  (       a.  [        U5      R                  (       a  U* [        [        -  -   $  U$ U R                  [        5      R                  XX4S9$ U$ Nr   r   r   r   r6   r7   )rm   r   r   r0   r   _eval_nseriessuperr   r   r   r   r   r  r   r   
ro   r   r   r   r   r`   r   resrF  	__class__s
            r3   rK  asinh._eval_nseries-  s/   iilxx1~ Ar7?<<$221d2NNg#A#61$$$J aK$$771dd2D$x##d8''4!B$;& ( 
 D%%d8''4!B$;& ( 
 ||C(66q$6RR
rC   c                 <    [        U[        US-  S-   5      -   5      $ r   r   r   ro   r   r   s      r3   _eval_rewrite_as_logasinh._eval_rewrite_as_logF  s    1tAqD1H~%&&rC   c                 <    [        U[        SUS-  -   5      -  5      $ Nr6   r7   )r   r   rS  s      r3   _eval_rewrite_as_atanhasinh._eval_rewrite_as_atanhK  s    QtA1H~%&&rC   c                     [         U-  n[         [        SU-
  5      [        US-
  5      -  [        U5      -  [        S-  -
  -  $ rW  )r   r   r   r   )ro   r   r   ixs       r3   _eval_rewrite_as_acoshasinh._eval_rewrite_as_acoshN  s=    qS$q2v,tBF|+eBi7"Q$>??rC   c                 4    [         * [        [         U-  SS9-  $ r<  )r   r!   rS  s      r3   _eval_rewrite_as_asinasinh._eval_rewrite_as_asinR  s    rDQ///rC   c                 T    [         [        [         U-  SS9-  [         [        -  S-  -
  $ )NFr=  r7   )r   r   r   rS  s      r3   _eval_rewrite_as_acosasinh._eval_rewrite_as_acosU  s%    4A..2a77rC   c                     [         $ rt   r  rn   s     r3   rw   asinh.inverseX  	     rC   c                 4    U R                   S   R                  $ r   r  r   s    r3   r  asinh._eval_is_zero^  s    yy|###rC   c                 4    U R                   S   R                  $ r   r  r   s    r3   r  asinh._eval_is_extended_reala      yy|,,,rC   c                 4    U R                   S   R                  $ r   r  r   s    r3   r  asinh._eval_is_finited      yy|%%%rC   rB   r!  r   )rR   rS   rT   rU   rV   rq   r#  r   r$  r   r   r   rK  rT  r   rX  r\  r_  rb  rw   r  r  r  rX   __classcell__rO  s   @r3   rv   rv     s    *5 + +Z ;  ;:2' "6'@08$-& &rC   rv   c                      ^  \ rS rSrSrSS jr\S 5       r\\	S 5       5       r
S rSU 4S jjrS r\rS	 rS
 rS rS rSS jrS rS rS rSrU =r$ )r   ih  a  
``acosh(x)`` is the inverse hyperbolic cosine of ``x``.

The inverse hyperbolic cosine function.

Examples
========

>>> from sympy import acosh
>>> from sympy.abc import x
>>> acosh(x).diff(x)
1/(sqrt(x - 1)*sqrt(x + 1))
>>> acosh(1)
0

See Also
========

asinh, atanh, cosh
c                     US:X  a/  U R                   S   nS[        US-
  5      [        US-   5      -  -  $ [        X5      er'  rm   r   r   )ro   rp   r`   s      r3   rq   acosh.fdiff~  sA    q=))A,Cd37mDqM122$T44rC   c                    UR                   (       a  U[        R                  L a  [        R                  $ U[        R                  L a  [        R                  $ U[        R                  L a  [        R                  $ UR
                  (       a  [        [        -  S-  $ U[        R                  L a  [        R                  $ U[        R                  L a  [        [        -  $ UR                  (       a/  [        5       nX;   a   UR                  (       a  X!   [        -  $ X!   $ U[        R                  L a  [        R                  $ U[        [        R                  -  :X  a!  [        R                  [        [        -  S-  -   $ U[        * [        R                  -  :X  a!  [        R                  [        [        -  S-  -
  $ UR
                  (       a  [        [        -  [        R                  -  $ [!        U["        5      (       a  UR$                  S   R                  (       a  UR$                  S   nUR&                  (       a  [)        U5      $ [+        U5      u  pEUb  Ub  [-        U[        -  5      nU[        [        -  U-  -
  nUR.                  nUSL a(  UR0                  (       a  U$ UR2                  (       a  U* $ g USL a8  U[        [        -  -  nUR4                  (       a  U* $ UR6                  (       a  U$ g g g g g g )Nr7   r   TF)r|   r   r}   rM   rN   r~   r   r   r[   r_   rt  r  rD   r   r   rA   r6  rl   rm   r  r   r   r   r7  is_nonnegativer   is_nonpositiver  )	r   r`   	cst_tabler`  r8  r  r9  r   r:  s	            r3   r   
acosh.eval  s$   ==aee|uu

"zz!***zz!!taxvv%!t==$I''$>!++ ~%!###$$$!AJJ,::"Q&&1"QZZ-::"Q&&;;a4;c4  SXXa[%:%:Ayy1v"1%DA}!B$K"QJyy4<''  !r	 'U]2IA'' !r	  '	 # "/} &; rC   c                 j   U S:X  a  [         [        -  S-  $ U S:  d	  U S-  S:X  a  [        R                  $ [	        U5      n[        U5      S:  a#  U S:  a  US   nX0S-
  S-  -  X S-
  -  -  US-  -  $ U S-
  S-  n[        [        R                  U5      n[        U5      nU* U-  [         -  X-  -  U -  $ r=  )	r   r   r   r_   r   r   r   rA   r   r>  s          r3   r   acosh.taylor_term  s     6R46MUa!eqj66M
A>"a'AE"2&EA:~qa%y1AqD88UqL#AFFA.aLrAvzAD(1,,rC   c                 x   U R                   S   nUR                  US5      R                  5       nU[        R                  * [        R
                  [        R                  [        R                  4;   a#  U R                  [        5      R                  XUS9$ U[        R                  L a5  U R                  UR                  U5      5      nUR                  (       a  U$ U $ US-
  R                  (       a  UR                  X(       a  UOS5      n[!        U5      R                  (       aH  US-   R                  (       a"  U R                  U5      S["        -  [$        -  -
  $ U R                  U5      * $ [!        U5      R&                  (       d#  U R                  [        5      R                  XUS9$ U R                  U5      $ rB  )rm   r   rC  r   r[   r_   r   r0   r   r   r}   r   r   r   r   r   r   r   r   r  rD  s           r3   r   acosh._eval_as_leading_term  sC   iilXXa^""$155&!&&!%%):):;;<<$::1d:SS;99S0034D~~ F771dd2D$x##F''99R=1Q3r611		"~%X))||C(>>qRV>WWyy}rC   c                 |  > U R                   S   nUR                  US5      nU[        R                  [        R                  4;   a#  U R                  [        5      R                  XX4S9$ [        T	U ]  XUS9nU[        R                  L a  U$ US-
  R                  (       a  UR                  X(       a  UOS5      n[        U5      R                  (       a*  US-   R                  (       a  US[        -  [        -  -
  $ U* $ [        U5      R                  (       d#  U R                  [        5      R                  XX4S9$ U$ rI  rm   r   r   r[   rt  r0   r   rK  rL  r   r   r   r   r   r   r  rM  s
            r3   rK  acosh._eval_nseries  s   iilxx1~ AEE1==))<<$221d2NNg#A#61$$$J 1H!!771dd2D$x##1H))1R<'tX))||C(66q$6RR
rC   c                 T    [        U[        US-   5      [        US-
  5      -  -   5      $ r   rR  rS  s      r3   rT  acosh._eval_rewrite_as_log  s'    1tAE{T!a%[0011rC   c                 T    [        US-
  5      [        SU-
  5      -  [        U5      -  $ r   )r   r   rS  s      r3   rb  acosh._eval_rewrite_as_acos  s&    AE{4A;&a00rC   c                 h    [        US-
  5      [        SU-
  5      -  [        S-  [        U5      -
  -  $ rW  )r   r   r!   rS  s      r3   r_  acosh._eval_rewrite_as_asin  s.    AE{4A;&"Q$a.99rC   c                     [        US-
  5      [        SU-
  5      -  [        S-  [        [        [        U-  SS9-  -   -  $ Nr6   r7   Fr=  )r   r   r   rv   rS  s      r3   _eval_rewrite_as_asinhacosh._eval_rewrite_as_asinh	  s;    AE{4A;&"Q$51u3M1M*MNNrC   c                     [        US-
  5      n[        SU-
  5      n[        US-  S-
  5      n[        S-  U-  U-  SU[        SUS-  -  5      -  -
  -  U[        US-   5      -  U-  [        XQ-  5      -  -   $ rW  )r   r   r   )ro   r   r   sxm1s1mxsx2m1s         r3   rX  acosh._eval_rewrite_as_atanh  s    AE{AE{QTAX1T	$AQq!tV$4 45T!a%[ &uw78 	9rC   c                     [         $ rt   r,  rn   s     r3   rw   acosh.inverse  rf  rC   c                 H    U R                   S   S-
  R                  (       a  gg )Nr   r6   Tr  r   s    r3   r  acosh._eval_is_zero  s     IIaL1%% &rC   c                 ~    [        U R                  S   R                  U R                  S   S-
  R                  /5      $ Nr   r6   )r
   rm   r   is_extended_nonnegativer   s    r3   r  acosh._eval_is_extended_real  s3    $))A,77$))A,:J9c9cdeerC   c                 4    U R                   S   R                  $ r   r  r   s    r3   r  acosh._eval_is_finite   rn  rC   rB   r!  ro  )rR   rS   rT   rU   rV   rq   r#  r   r$  r   r   r   rK  rT  r   rb  r_  r  rX  rw   r  r  r  rX   rp  rq  s   @r3   r   r   h  s    *5 4! 4!l -  - 2.2 "61:O9f& &rC   r   c                      ^  \ rS rSrSrSS jr\S 5       r\\	S 5       5       r
S rSU 4S jjrS r\rS	 rS
 rS rS rS rSS jrSrU =r$ )r   i$  z
``atanh(x)`` is the inverse hyperbolic tangent of ``x``.

The inverse hyperbolic tangent function.

Examples
========

>>> from sympy import atanh
>>> from sympy.abc import x
>>> atanh(x).diff(x)
1/(1 - x**2)

See Also
========

asinh, acosh, tanh
c                 T    US:X  a  SSU R                   S   S-  -
  -  $ [        X5      ern  rm   r   rn   s     r3   rq   atanh.fdiff8  0    q=a$))A,/)**$T44rC   c                    UR                   (       a  U[        R                  L a  [        R                  $ UR                  (       a  [        R                  $ U[        R
                  L a  [        R                  $ U[        R                  L a  [        R                  $ U[        R                  L a  [        * [        U5      -  $ U[        R                  L a  [        [        U* 5      -  $ UR                  (       a
  U " U* 5      * $ OwU[        R                  L a%  SSKJn  [        U" [        * S-  [        S-  5      -  $ [!        U5      nUb  [        [        U5      -  $ UR#                  5       (       a
  U " U* 5      * $ UR                  (       a  [        R                  $ [%        U[&        5      (       a  UR(                  S   R*                  (       a  UR(                  S   nUR,                  (       a  U$ [/        U5      u  pVUb[  UbW  [1        SU-  [        -  5      nUR2                  nU[        U-  [        -  S-  -
  n	USL a  U	$ USL a  U	[        [        -  S-  -
  $ g g g g g )Nr   AccumBoundsr7   TF)r|   r   r}   r~   r_   r[   rM   rt  rN   r   r"   r   r   !sympy.calculus.accumulationboundsr  r   r)   r   r6  r   rm   r  r  r   r   r7  )
r   r`   r  r   r`  r8  r  r9  r:  r   s
             r3   r   
atanh.eval>  s   ==aee|uuvvzz!%)))

"rDI~%***4:~%SD	z! ! a'''IbSUBqD1114S9G"4=((//11I:%;;66Mc4  SXXa[%:%:Ayy"1%DA}!A#b&Myy!BqL4<HU]qtAv:% # "/} &; rC   c                 d    U S:  d	  U S-  S:X  a  [         R                  $ [        U5      nX-  U -  $ Nr   r7   )r   r_   r   r#  s      r3   r   atanh.taylor_termm  s2     q5AEQJ66M
A4!8OrC   c                    U R                   S   nUR                  US5      R                  5       nUR                  (       a  UR	                  U5      $ U[
        R                  L a5  U R                  UR	                  U5      5      nUR                  (       a  U$ U $ U[
        R                  * [
        R                  [
        R                  4;   a#  U R                  [        5      R                  XUS9$ SUS-  -
  R                  (       a  UR                  X(       a  UOS5      n[!        U5      R                  (       a1  UR                  (       a  U R                  U5      ["        [$        -  -
  $ On[!        U5      R&                  (       a1  UR&                  (       a  U R                  U5      ["        [$        -  -   $ O#U R                  [        5      R                  XUS9$ U R                  U5      $ rB  )rm   r   rC  r~   r   r   r}   r   r   r[   r   r0   r   r   r   r   r   r   r   r  rD  s           r3   r   atanh._eval_as_leading_termv  si   iilXXa^""$::&&q));99S0034D~~ 155&!%%!2!233<<$::1d:SSAI""771dd2D$x##>>99R=1R4// "D%%>>99R=1R4// " ||C(>>qRV>WWyy}rC   c                   > U R                   S   nUR                  US5      nU[        R                  [        R                  4;   a#  U R                  [        5      R                  XX4S9$ [        T	U ]  XUS9nU[        R                  L a  U$ SUS-  -
  R                  (       a  UR                  X(       a  UOS5      n[        U5      R                  (       a$  UR                  (       a  U[        [        -  -
  $  U$ [        U5      R                  (       a$  UR                  (       a  U[        [        -  -   $  U$ U R                  [        5      R                  XX4S9$ U$ rI  r  rM  s
            r3   rK  atanh._eval_nseries  s+   iilxx1~ AEE1==))<<$221d2NNg#A#61$$$J aK$$771dd2D$x####2:% $ 
 D%%##2:% $ 
 ||C(66q$6RR
rC   c                 B    [        SU-   5      [        SU-
  5      -
  S-  $ rW  r   rS  s      r3   rT  atanh._eval_rewrite_as_log  s"    AE
SQZ'1,,rC   c                     [        SUS-  S-
  -  5      n[        U-  S[        US-  * 5      -  -  [        U* 5      [        SUS-  -
  5      -  [        U5      -  U-  [        U5      -  -
  $ rW  )r   r   rv   )ro   r   r   r9  s       r3   r  atanh._eval_rewrite_as_asinh  sm    AqD1H1aadUm$aRa!Q$h'Q/1%(:; 	<rC   c                 B    U R                   S   R                  (       a  gg r   r  r   s    r3   r  atanh._eval_is_zero  s    99Q<  rC   c                     [        U R                  S   R                  SU R                  S   -
  R                  U R                  S   S-   R                  /5      $ r  r
   rm   r   rw  r   s    r3   r  atanh._eval_is_extended_real  sN    $))A,77!diil:J9Z9Z]a]f]fgh]ilm]m\}\}~rC   c                     [        [        U R                  S   S-
  R                  U R                  S   S-   R                  /5      5      $ r  r   r	   rm   r~   r   s    r3   r  atanh._eval_is_finite  =    DIIaL1$4#=#=		!q@P?Y?Y"Z[\\rC   c                 4    U R                   S   R                  $ r   )rm   rZ  r   s    r3   _eval_is_imaginaryatanh._eval_is_imaginary  s    yy|(((rC   c                     [         $ rt   r  rn   s     r3   rw   atanh.inverse  rf  rC   rB   r!  ro  )rR   rS   rT   rU   rV   rq   r#  r   r$  r   r   r   rK  rT  r   r  r  r  r  r  rw   rX   rp  rq  s   @r3   r   r   $  sz    &5 ,& ,&\   82- "6<
@]) rC   r   c                      ^  \ rS rSrSrSS jr\S 5       r\\	S 5       5       r
S rSU 4S jjrS r\rS	 rS
 rSS jrS rS rSrU =r$ )r   i  z
``acoth(x)`` is the inverse hyperbolic cotangent of ``x``.

The inverse hyperbolic cotangent function.

Examples
========

>>> from sympy import acoth
>>> from sympy.abc import x
>>> acoth(x).diff(x)
1/(1 - x**2)

See Also
========

asinh, acosh, coth
c                 T    US:X  a  SSU R                   S   S-  -
  -  $ [        X5      ern  r  rn   s     r3   rq   acoth.fdiff  r  rC   c                 "   UR                   (       a  U[        R                  L a  [        R                  $ U[        R                  L a  [        R                  $ U[        R
                  L a  [        R                  $ UR                  (       a  [        [        -  S-  $ U[        R                  L a  [        R                  $ U[        R                  L a  [        R
                  $ UR                  (       a
  U " U* 5      * $ OcU[        R                  L a  [        R                  $ [        U5      nUb  [        * [        U5      -  $ UR                  5       (       a
  U " U* 5      * $ UR                  (       a  [        [        -  [        R                   -  $ g r   )r|   r   r}   rM   r_   rN   r~   r   r   r[   rt  r   r   r)   r    r   rA   )r   r`   r   s      r3   r   
acoth.eval  s   ==aee|uu

"vv***vv!taxzz!%)))SD	z! ! a'''vv4S9G"rDM))//11I:%;;a4; rC   c                     U S:X  a  [         * [        -  S-  $ U S:  d	  U S-  S:X  a  [        R                  $ [	        U5      nX-  U -  $ r  )r   r   r   r_   r   r#  s      r3   r   acoth.taylor_term  sH     62b57NUa!eqj66M
A4!8OrC   c                    U R                   S   nUR                  US5      R                  5       nU[        R                  L a  SU-  R                  U5      $ U[        R                  L a5  U R                  UR                  U5      5      nUR                  (       a  U$ U $ U[        R                  * [        R                  [        R                  4;   a#  U R                  [        5      R                  XUS9$ UR                  (       a  SUS-  -
  R                  (       a  UR!                  X(       a  UOS5      n[#        U5      R$                  (       a1  UR                  (       a  U R                  U5      [&        [(        -  -   $ On[#        U5      R                  (       a1  UR$                  (       a  U R                  U5      [&        [(        -  -
  $ O#U R                  [        5      R                  XUS9$ U R                  U5      $ )Nr   r6   r   r7   )rm   r   rC  r   r   r   r}   r   r   r[   r_   r0   r   r   r  r  r   r   r   r   r   rD  s           r3   r   acoth._eval_as_leading_term  sx   iilXXa^""$"""cE**1--;99S0034D~~ 155&!%%((<<$::1d:SS::1r1u911771dd2D$x##>>99R=1R4// "D%%>>99R=1R4// " ||C(>>qRV>WWyy}rC   c                   > U R                   S   nUR                  US5      nU[        R                  [        R                  4;   a#  U R                  [        5      R                  XX4S9$ [        T	U ]  XUS9nU[        R                  L a  U$ UR                  (       a  SUS-  -
  R                  (       a  UR                  X(       a  UOS5      n[        U5      R                  (       a$  UR                  (       a  U[        [         -  -   $  U$ [        U5      R                  (       a$  UR                  (       a  U[        [         -  -
  $  U$ U R                  [        5      R                  XX4S9$ U$ rI  )rm   r   r   r[   rt  r0   r   rK  rL  r   r  r  r   r   r   r   r   rM  s
            r3   rK  acoth._eval_nseries*  s1   iilxx1~ AEE1==))<<$221d2NNg#A#61$$$J <<Qq[55771dd2D$x####2:% $ 
 D%%##2:% $ 
 ||C(66q$6RR
rC   c                 N    [        SSU-  -   5      [        SSU-  -
  5      -
  S-  $ rW  r  rS  s      r3   rT  acoth._eval_rewrite_as_logC  s*    A!Gs1qs7|+q00rC   c                     [        SU-  5      $ r   rq  rS  s      r3   rX  acoth._eval_rewrite_as_atanhH  s    QqSzrC   c           	         [         [        -  S-  [        US-
  U-  5      [        XS-
  -  5      -  [        SSU-  -   5      [        XS-   -  5      -  -
  -  U[        SUS-  -  5      -  [        [        SUS-  S-
  -  5      5      -  -   $ r   )r   r   r   rv   rS  s      r3   r  acoth._eval_rewrite_as_asinhK  s    1Qa!eQYQAY7$q1Q3w-QTUPUY:WWX$qAv,uT!QTAX,%7889 	:rC   c                     [         $ rt   r  rn   s     r3   rw   acoth.inverseO  rf  rC   c                     [        U R                  S   R                  [        U R                  S   S-
  R                  U R                  S   S-   R
                  /5      /5      $ r  )r
   rm   r   r	   r  is_extended_nonpositiver   s    r3   r  acoth._eval_is_extended_realU  sw    $))A,77DIIaLSTDTCmCmptpypyz{p|  @A  qA  pZ  pZ  C[  :\  ]  ^  	^rC   c                     [        [        U R                  S   S-
  R                  U R                  S   S-   R                  /5      5      $ r  r  r   s    r3   r  acoth._eval_is_finiteX  r  rC   rB   r!  ro  )rR   rS   rT   rU   rV   rq   r#  r   r$  r   r   r   rK  rT  r   rX  r  rw   r  r  rX   rp  rq  s   @r3   r   r     su    &5  >   821 "6:^] ]rC   r   c                      ^  \ rS rSrSrSS jr\S 5       r\\	S 5       5       r
S rSU 4S jjrSS jrS	 r\rS
 rS rS rS rS rS rSrU =r$ )asechi\  aG  
``asech(x)`` is the inverse hyperbolic secant of ``x``.

The inverse hyperbolic secant function.

Examples
========

>>> from sympy import asech, sqrt, S
>>> from sympy.abc import x
>>> asech(x).diff(x)
-1/(x*sqrt(1 - x**2))
>>> asech(1).diff(x)
0
>>> asech(1)
0
>>> asech(S(2))
I*pi/3
>>> asech(-sqrt(2))
3*I*pi/4
>>> asech((sqrt(6) - sqrt(2)))
I*pi/12

See Also
========

asinh, atanh, cosh, acoth

References
==========

.. [1] https://en.wikipedia.org/wiki/Hyperbolic_function
.. [2] https://dlmf.nist.gov/4.37
.. [3] https://functions.wolfram.com/ElementaryFunctions/ArcSech/

c                 p    US:X  a&  U R                   S   nSU[        SUS-  -
  5      -  -  $ [        X5      eNr6   r   r9   r7   rt  ro   rp   r`  s      r3   rq   asech.fdiff  s=    q=		!Aqa!Q$h'(($T44rC   c                    UR                   (       a  U[        R                  L a  [        R                  $ U[        R                  L a  [        [
        -  S-  $ U[        R                  L a  [        [
        -  S-  $ UR                  (       a  [        R                  $ U[        R                  L a  [        R                  $ U[        R                  L a  [        [
        -  $ UR                  (       a/  [        5       nX;   a   UR                  (       a  X!   [
        -  $ X!   $ U[        R                  L a%  SSKJn  [
        U" [        * S-  [        S-  5      -  $ UR                  (       a  [        R                  $ g )Nr7   r   r  )r|   r   r}   rM   r   r   rN   r~   r[   r_   rt  r  rO   r   r   r  r  )r   r`   ry  r  s       r3   r   
asech.eval  s    ==aee|uu

"!tax***!taxzz!vv%!t==$I''$>!++ ~%!###E["Q1---;;:: rC   c                    U S:X  a  [        SU-  5      $ U S:  d	  U S-  S:X  a  [        R                  $ [        U5      n[	        U5      S:  a*  U S:  a$  US   nX0S-
  U S-
  -  -  US-  -  SU S-  S-  -  -  $ U S-  n[        [        R                  U5      U -  n[        U5      U -  S-  U -  S-  nSU-  U-  X-  -  S-  $ )Nr   r7   r6   rH   r:   r9   )r   r   r_   r   r   r   rA   r   r>  s          r3   r   asech.taylor_term  s     6q1u:Ua!eqj66M
A>"Q&1q5"2&UQqSM*QT111qy=AAF#AFFA.2aL1$)A-2AvzAD(1,,rC   c                    U R                   S   nUR                  US5      R                  5       nU[        R                  * [        R
                  [        R                  [        R                  4;   a#  U R                  [        5      R                  XUS9$ U[        R                  L a5  U R                  UR                  U5      5      nUR                  (       a  U$ U $ UR                  (       d  SU-
  R                  (       a  UR                  X(       a  UOS5      n[!        U5      R"                  (       aY  UR"                  (       d  US-   R                  (       a  U R                  U5      * $ U R                  U5      S[$        -  [&        -  -
  $ [!        U5      R                  (       d#  U R                  [        5      R                  XUS9$ U R                  U5      $ rB  )rm   r   rC  r   r[   r_   r   r0   r   r   r}   r   r   r   r   r   r   r  r   r   rD  s           r3   r   asech._eval_as_leading_term  sO   iilXXa^""$155&!&&!%%):):;;<<$::1d:SS;99S0034D~~ >>a"f11771dd2D$x##>>b1f%9%9 IIbM>)yy}qs2v--X))||C(>>qRV>WWyy}rC   c                   > SSK Jn  U R                  S   nUR                  US5      nU[        R
                  L GaY  [        SSS9n[        [        R
                  US-  -
  5      R                  [        5      R                  USSU-  5      n	[        R
                  U R                  S   -
  n
U
R                  U5      nX-
  U-  nUR                  US5      (       d  US:X  a  U" S5      $ U" [        U5      5      $ [        [        R
                  U-   5      R                  XUS9nUR                  5       [        U5      -  R!                  5       nU	R                  5       R                  X5      R!                  5       R#                  5       U" X-  U5      -   $ U[        R$                  L Gag  [        SSS9n[        [        R$                  US-  -   5      R                  [        5      R                  USSU-  5      n	[        R
                  U R                  S   -   n
U
R                  U5      nX-
  U-  nUR                  US5      (       d-  US:X  a  U" S5      $ [&        [(        -  U" [        U5      5      -   $ [        [        R
                  U-   5      R                  XUS9nUR                  5       [        U5      -  R!                  5       nU	R                  5       R                  X5      R!                  5       R#                  5       U" X-  U5      -   $ [*        TU ]9  XUS9nU[        R,                  L a  U$ UR.                  (       d  SU-
  R.                  (       a  UR1                  X(       a  UOS5      n[3        U5      R4                  (       a;  UR4                  (       d  US-   R.                  (       a  U* $ US[&        -  [(        -  -
  $ [3        U5      R.                  (       d#  U R                  [        5      R                  XX4S	9$ U$ 
Nr   )Or  T)positiver7   r6   rJ  r   )r  r  rm   r   r   r[   r   r  r0   r   nseriesr   is_meromorphicr   rK  removeOr   powsimprt  r   r   rL  r   r   r   r   r  ro   r   r   r   r   r  r`   r   r  serarg1r9  gres1rN  rF  rO  s                   r3   rK  asech._eval_nseries  s-   (iilxx1~ 155=cD)A1%--c2::1a1EC55499Q<'D$$Q'AAA##Aq)) Avqt51T!W:5	?00d0CD<<>$q')113C;;=%%a-446>>@1QT1:MM1== cD)A1,-55c:BB1a1MC55499Q<'D$$Q'AAA##Aq)) Avqt<1R4!DG*+<<	?00d0CD<<>$q')113C;;=%%a-446>>@1QT1:MMg#A#61$$$J D55771dd2D$x####q'='=4KQqSV|#X))||C(66q$6RR
rC   c                     [         $ rt   rS  rn   s     r3   rw   asech.inverse   rf  rC   c                 f    [        SU-  [        SU-  S-
  5      [        SU-  S-   5      -  -   5      $ r   rR  r   s      r3   rT  asech._eval_rewrite_as_log  s3    1S54#	?T!C%!)_<<==rC   c                     [        SU-  5      $ r   )r   r   s      r3   r\  asech._eval_rewrite_as_acosh      QsU|rC   c                     [        SU-  S-
  5      [        SSU-  -
  5      -  [        [        [        U-  SS9-  [        [        R
                  -  -   -  $ rD  )r   r   rv   r   r   rA   r   s      r3   r  asech._eval_rewrite_as_asinh  sN    AcEAItA#I.%#2N0N24QVV)1< = 	=rC   c           	      h   [         [        -  S[        U5      [        SU-  5      -  -
  [         S-  [        U* 5      -  [        U5      -  -
  [         S-  [        US-  5      -  [        US-  * 5      -  -
  -  [        SUS-   -  5      [        US-   5      -  [        [        SUS-  -
  5      5      -  -   $ rW  )r   r   r   r   rS  s      r3   rX  asech._eval_rewrite_as_atanh  s    "a$q'$qs)++ac$r(l47.BBQqSaQRd^TXZ[]^Z^Y^T_E__`q!a%y/$q1u+-eDQTN.CCD 	ErC   c                     [        SU-  S-
  5      [        SSU-  -
  5      -  [        S-  [        [        [        U-  SS9-  -
  -  $ r  )r   r   r   acschrS  s      r3   _eval_rewrite_as_acschasech._eval_rewrite_as_acsch  sC    AaC!G}T!ac']*BqD1U1Q35O3O,OPPrC   c                     [        U R                  S   R                  U R                  S   R                  SU R                  S   -
  R                  /5      $ r  r  r   s    r3   r  asech._eval_is_extended_real  sI    $))A,7719T9TWX[_[d[def[gWgVwVwxyyrC   c                 F    [        U R                  S   R                  5      $ r   r   rm   r~   r   s    r3   r  asech._eval_is_finite      1--..rC   rB   r!  ro  )rR   rS   rT   rU   rV   rq   r#  r   r$  r   r   r   rK  rw   rT  r   r\  r  rX  r  r  r  rX   rp  rq  s   @r3   r  r  \  s    #J5  < -  - 2+Z> "6=EQz/ /rC   r  c                      ^  \ rS rSrSrSS jr\S 5       r\\	S 5       5       r
S rSU 4S jjrSS jrS	 r\rS
 rS rS rS rS rS rSrU =r$ )r  i   aI  
``acsch(x)`` is the inverse hyperbolic cosecant of ``x``.

The inverse hyperbolic cosecant function.

Examples
========

>>> from sympy import acsch, sqrt, I
>>> from sympy.abc import x
>>> acsch(x).diff(x)
-1/(x**2*sqrt(1 + x**(-2)))
>>> acsch(1).diff(x)
0
>>> acsch(1)
log(1 + sqrt(2))
>>> acsch(I)
-I*pi/2
>>> acsch(-2*I)
I*pi/6
>>> acsch(I*(sqrt(6) - sqrt(2)))
-5*I*pi/12

See Also
========

asinh

References
==========

.. [1] https://en.wikipedia.org/wiki/Hyperbolic_function
.. [2] https://dlmf.nist.gov/4.37
.. [3] https://functions.wolfram.com/ElementaryFunctions/ArcCsch/

c                 |    US:X  a,  U R                   S   nSUS-  [        SSUS-  -  -   5      -  -  $ [        X5      er  rt  r  s      r3   rq   acsch.fdiffF  sF    q=		!Aq!tDQq!tV,,--$T44rC   c                 B   UR                   (       a  U[        R                  L a  [        R                  $ U[        R                  L a  [        R                  $ U[        R
                  L a  [        R                  $ UR                  (       a  [        R                  $ U[        R                  L a  [        S[        S5      -   5      $ U[        R                  L a  [        S[        S5      -   5      * $ UR                  (       a  [        5       nX;   a  X!   [        -  $ U[        R                  L a  [        R                  $ UR                  (       a  [        R                  $ UR                  (       a  [        R                  $ UR!                  5       (       a
  U " U* 5      * $ g rW  )r|   r   r}   rM   r_   rN   r~   r   r[   r   r   rt  r  rJ   r   is_infiniter   )r   r`   ry  s      r3   r   
acsch.evalM  s   ==aee|uu

"vv***vv(((1tAw;''%Qa[)))==$I ~a''!###66M??66M;;$$$''))I: *rC   c                    U S:X  a  [        SU-  5      $ U S:  d	  U S-  S:X  a  [        R                  $ [        U5      n[	        U5      S:  a,  U S:  a&  US   nU* U S-
  U S-
  -  -  US-  -  SU S-  S-  -  -  $ U S-  n[        [        R                  U5      U -  n[        U5      U -  S-  U -  S-  n[        R                  US-   -  U-  U-  X-  -  S-  $ )Nr   r7   r6   rH   r:   )	r   r   r_   r   r   r   rA   r   rt  r>  s          r3   r   acsch.taylor_termo  s     6q1u:Ua!eqj66M
A>"Q&1q5"2&ra!eac]+ad2AA	MBBF#AFFA.!3aL1$)A-2}}q!t,q014qt;a??rC   c                    U R                   S   nUR                  US5      R                  5       nU[        * [        [        R
                  4;   a#  U R                  [        5      R                  XUS9$ U[        R                  L a5  U R                  UR                  U5      5      nUR                  (       a  U$ U $ U[        R                  L a  SU-  R                  U5      $ UR                  (       a  SUS-  -   R                  (       a  UR!                  X(       a  UOS5      n[#        U5      R                  (       a;  [%        U5      R                  (       a   U R                  U5      * [        [&        -  -
  $ Ox[#        U5      R(                  (       a;  [%        U5      R(                  (       a   U R                  U5      * [        [&        -  -   $ O#U R                  [        5      R                  XUS9$ U R                  U5      $ rB  )rm   r   rC  r   r   r_   r0   r   r   r}   r   r   r   r   rZ  r  r   r   r   r   r   rD  s           r3   r   acsch._eval_as_leading_term  s}   iilXXa^""$1"a <<$::1d:SS;99S0034D~~"""cE**1--??BE	66771dd2D$x##b6%% IIbM>AbD00 &D%%b6%% IIbM>AbD00 & ||C(>>qRV>WWyy}rC   c                 N  > SSK Jn  U R                  S   nUR                  US5      nU[        L GaZ  [        SSS9n[        [        US-  -   5      R                  [        5      R                  USSU-  5      n	[        * U R                  S   -   n
U
R                  U5      nX-
  U-  nUR                  US5      (       d1  US:X  a  U" S5      $ [        * [        -  S-  U" [        U5      5      -   $ [        [        R                  U-   5      R!                  XUS9nUR#                  5       [        U5      -  R%                  5       nU	R#                  5       R                  X5      R%                  5       R'                  5       U" X-  U5      -   nU$ U[        R(                  [        -  :X  GaW  [        SSS9n[        [        * US-  -   5      R                  [        5      R                  USSU-  5      n	[        U R                  S   -   n
U
R                  U5      nX-
  U-  nUR                  US5      (       d0  US:X  a  U" S5      $ [        [        -  S-  U" [        U5      5      -   $ [        [        R                  U-   5      R!                  XUS9nUR#                  5       [        U5      -  R%                  5       nU	R#                  5       R                  X5      R%                  5       R'                  5       U" X-  U5      -   $ [*        TU ]A  XUS9nU[        R,                  L a  U$ UR.                  (       a  SUS-  -   R0                  (       a  U R                  S   R3                  X(       a  UOS5      n[5        U5      R0                  (       a.  [7        U5      R0                  (       a  U* [        [        -  -
  $  U$ [5        U5      R8                  (       a.  [7        U5      R8                  (       a  U* [        [        -  -   $  U$ U R                  [        5      R!                  XX4S	9$ U$ r  )r  r  rm   r   r   r   r  r0   r   r  r   r  r   r   r   r[   rK  r  r   r  rt  rL  r   rZ  r  r   r   r   r   r  s                   r3   rK  acsch._eval_nseries  sl   (iilxx1~ 19cD)AAqD/))#.66q!QqSAC2		!$D$$Q'AAA##Aq)) Avqt?A2b57QtAwZ+??	?00d0CD<<>$q')113C++-$$Q,335==?!AD!*LCJ1==?"cD)AQT	"**3/771acBCtyy|#D$$Q'AAA##Aq)) Avqt>1R46Ad1gJ+>>	?00d0CD<<>$q')113C;;=%%a-446>>@1QT1:MMg#A#61$$$J !dAg+!:!:99Q<##Att;D$x##d8''4!B$;& ( 
 D%%d8''4!B$;& ( 
 ||C(66q$6RR
rC   c                     [         $ rt   r   rn   s     r3   rw   acsch.inverse  rf  rC   c                 H    [        SU-  [        SUS-  -  S-   5      -   5      $ rW  rR  r   s      r3   rT  acsch._eval_rewrite_as_log  s'    1S54#q&1--..rC   c                     [        SU-  5      $ r   ru   r   s      r3   r  acsch._eval_rewrite_as_asinh  r  rC   c                     [         [        S[         U-  -
  5      [        [         U-  S-
  5      -  [        [         U-  SS9-  [        [        R
                  -  -
  -  $ rD  )r   r   r   r   r   rA   r   s      r3   r\  acsch._eval_rewrite_as_acosh  sT    $q1S5y/$quqy/1 %aee <=?A!&&yI J 	JrC   c                     US-  nUS-   n[        U* 5      U-  [        [        R                  -  [        US-  * 5      U-  [	        [        U5      5      -  -
  -  $ r   )r   r   r   rA   r   )ro   r`   r   arg2arg2p1s        r3   rX  acsch._eval_rewrite_as_atanh  s^    AvTE{3166	 $faiZ 0 7d6l8K K!L M 	MrC   c                 4    U R                   S   R                  $ r   )rm   r
  r   s    r3   r  acsch._eval_is_zero  s    yy|'''rC   c                 4    U R                   S   R                  $ r   r  r   s    r3   r  acsch._eval_is_extended_real  rk  rC   c                 F    [        U R                  S   R                  5      $ r   r  r   s    r3   r  acsch._eval_is_finite  r  rC   rB   r!  ro  )rR   rS   rT   rU   rV   rq   r#  r   r$  r   r   r   rK  rw   rT  r   r  r\  rX  r  r  r  rX   rp  rq  s   @r3   r  r     s    #J5  B @  @ :.`/ "6JM(-/ /rC   r  N)J
sympy.corer   r   r   sympy.core.addr   sympy.core.functionr   r   sympy.core.logicr	   r
   r   r   sympy.core.numbersr   r   r   sympy.core.symbolr   (sympy.functions.combinatorial.factorialsr   r   r   %sympy.functions.combinatorial.numbersr   r   r   $sympy.functions.elementary.complexesr   r   r   &sympy.functions.elementary.exponentialr   r   r   #sympy.functions.elementary.integersr   (sympy.functions.elementary.miscellaneousr   r+  r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   sympy.polys.specialpolysr*   r4   rD   rJ   rO   r/   rg   ri   rl   r   r   r  r   rT  r1  rv   r   r   r   r  r  rB   rC   r3   <module>r1     s   * *  C F F . . #G G F F < < L L 5 9$ $ $ $ 42
 	 	2 	
 	
$ 	
 	
F
 
DQ' Q'hs2 s2lR Rji iXG?#5 G?TD,' D,N4' 4v	 	o&% o&dy&% y&xb% bJP]% P]fA/% A/HM/% M/rC   