
    sgS                       d dl mZmZmZ d dlmZ d dlmZmZ d dl	m
Z
mZmZmZ d dlmZmZmZ d dlmZ d dlmZmZmZ d dlmZmZmZ d d	lmZmZmZ d d
l m!Z!m"Z"m#Z# d dl$m%Z% d dl&m'Z' d dl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3 d dl4m5Z5 d Z6ed        Z7ed        Z8ed        Z9 G d de      Z:d Z; G d de:      Z< G d de:      Z= G d de:      Z> G d de:      Z? G d de:      Z@ G d  d!e@      ZA G d" d#e@      ZB G d$ d%e      ZC G d& d'eC      ZD G d( d)eC      ZE G d* d+eC      ZF G d, d-eC      ZG G d. d/eC      ZH G d0 d1eC      ZIy2)3    )Ssympifycacheit)Add)Function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           	          | j                  | j                  t              D ci c]  }||j                  t               c}      S c c}w N)xreplaceatomsHyperbolicFunctionrewriter   )exprhs     X/var/www/html/venv/lib/python3.12/site-packages/sympy/functions/elementary/hyperbolic.py_rewrite_hyperbolics_as_expr4      sE    ==./1 QYYs^+ 1 2 2 1s   Ac                  n   i t         t        t         dt        d      z   z        t          t        t          dt        d      z   z        t        j                  t
        dz  t        dd      t
        t        dd      z  t        d      dz  t
        dz  t        d       dz  t
        t        dd      z  dt        d      z  t
        dz  dt        d      z  t
        t        dd      z  t        d      dz  t
        dz  t        d       dz  t
        t        dd      z  t        d      dz
  t        d      z  t
        t        dd	      z  t        d      dz
   t        d      z  t
        t        d
d	      z  t        dt        d      z         dz  t
        dz  t        dt        d      z          dz  t
        t        d
d      z  t        dt        d      z
        dz  t
        t        dd      z  t        dt        d      z
         dz  t
        t        dd      z  dt        d      z   dt        d      z  z  t
        d	z  dt        d      z    dt        d      z  z  t
        t        dd	      z  t        d      dz   dz  t
        dz  t        d      dz    dz  t
        t        dd      z  iS )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   t         t         dz  t         t        d      t        d      z   z  t         dz  t         dt        d      z   z  t         dz  t         dz  t        dt        d      z
        z  t         dz  t         dz  t         dz  t         t        ddt        d      z  z         z  t         dz  t         t        d      z  t         dz  t         t        d      dz
  z  d	t        z  dz  t         dz  t        d
      z  t         d
z  t         dz  t        dt        d      z         z  d	t        z  dz  t         t        ddt        d      z  z
        z  dt        z  dz  t         t        d      t        d      z
  z  dt        z  dz  t        d      t          t	        dt        d      z   dz        z  iS )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   i t         t        t         z  dz   t        dt        d      z         z   t          t        t         z  dz  t        dt        d      z         z   t        d      t        d      z
  t        dz  t        d      t        d      z
  dt        z  dz  t        ddt        d      z  z
        t        dz  t        ddt        d      z  z
         dt        z  dz  dt        dt        d      z         z  t        d	z  d
t        dt        d      z         z  dt        z  d	z  dt        d      z  t        dz  d
t        d      z  dt        z  dz  t        d      dz
  t        dz  dt        d      z
  dt        z  dz  t        d      t        dz  t        d       dt        z  dz  t        ddt        d      z  z         dt        z  dz  t        ddt        d      z  z          dt        z  dz  t	        d      t        dz  t	        d       dt        z  dz  t        ddt        d      z   z        dt        z  d	z  t        ddt        d      z   z         dt        z  d	z  dt        d      z   dt        z  dz  dt        d      z
  dt        z  dz  t        d      t        d      z   dt        z  dz  t        d       t        d      z
  dt        z  dz  t         t        j
                  z  t         t         z  dz  t         t        j                  z  t        t         z  dz  i	S )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                       e Zd ZdZdZy)r/   ze
    Base class for hyperbolic functions.

    See Also
    ========

    sinh, cosh, tanh, coth
    TN)__name__
__module____qualname____doc__
unbranchedrB   rC   r3   r/   r/   j   s     JrC   r/   c                 N   t         t        z  }t        j                  |       D ]M  }||k(  rt        j
                  } nH|j                  s'|j                         \  }}||k(  s@|j                  sM n | t        j                  fS |t        j                  z  }||z
  }| ||z  z
  |fS )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_ipird   w   s    " Q$C]]3 	8AXX>>#DAqCxAMM	 AFF{
aff*B	
RBC<rC   c                       e Zd ZdZddZddZed        Zee	d               Z
d ZddZddZdd	ZddZd Zd Zd Zd Zd Zd Zd ZddZd Zd Zd Zd Zd Zd Zy
)sinha  
    ``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    |dk(  rt        | j                  d         S t        | |      )z@
        Returns the first derivative of this function.
        r6   r   )coshargsr   selfargindexs     r3   fdiffz
sinh.fdiff   s+     q=		!%%$T844rC   c                     t         S z7
        Returns the inverse of this function.
        asinhrj   s     r3   inversezsinh.inverse   	     rC   c                    |j                   r|t        j                  u rt        j                  S |t        j                  u rt        j                  S |t        j                  u rt        j                  S |j
                  rt        j                  S |j                  r
 | |        S y |t        j                  u rt        j                  S t        |      }|t        t        |      z  S |j                         r
 | |        S |j                  rOt        |      \  }}|r?|t        z  t        z  }t!        |      t#        |      z  t#        |      t!        |      z  z   S |j
                  rt        j                  S |j$                  t&        k(  r|j(                  d   S |j$                  t*        k(  r,|j(                  d   }t-        |dz
        t-        |dz         z  S |j$                  t.        k(  r#|j(                  d   }|t-        d|dz  z
        z  S |j$                  t0        k(  r/|j(                  d   }dt-        |dz
        t-        |dz         z  z  S y Nr   r6   r7   )	is_Numberr   NaNrM   rN   is_zeror\   is_negativeComplexInfinityr)   r   r'   could_extract_minus_signis_Addrd   r   rf   rh   funcrq   ri   acoshr   atanhacoth)clsr]   i_coeffxms        r3   evalz	sinh.eval   s   ==aee|uu

"zz!***)))vvSD	z! ! a'''uu4S9G"3w<''//1I:%zz#C(1"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                     | dk  s| dz  dk(  rt         j                  S t        |      }t        |      dkD  r|d   }||dz  z  | | dz
  z  z  S || z  t	        |       z  S )zG
        Returns the next term in the Taylor series expansion.
        r   r7   rH   r6   r   r\   r   lenr   nr   previous_termsra   s       r3   taylor_termzsinh.taylor_term   sl     q5AEQJ66M
A>"Q&"2&1a4x1a!e9--1v	!,,rC   c                 Z    | j                  | j                  d   j                               S Nr   r}   ri   	conjugaterk   s    r3   _eval_conjugatezsinh._eval_conjugate   "    yy1//122rC   c                    | j                   d   j                  r<|r(d|d<    | j                  |fi |t        j                  fS | t        j                  fS |r2 | j                   d   j                  |fi |j                         \  }}n | j                   d   j                         \  }}t        |      t        |      z  t        |      t        |      z  fS )z@
        Returns this function as a complex coordinate.
        r   Fcomplex
ri   is_extended_realexpandr   r\   as_real_imagrf   r#   rh   r'   rk   deephintsr   r   s        r3   r   zsinh.as_real_imag  s     99Q<((#(i #D2E2AFF;;aff~%(TYYq\((77DDFFBYYq\..0FBRR $r(3r7"233rC   c                 H     | j                   dd|i|\  }}||t        z  z   S Nr   rB   r   r   rk   r   r   re_partim_parts        r3   _eval_expand_complexzsinh._eval_expand_complex  0    ,4,,@$@%@""rC   c                    |r! | j                   d   j                  |fi |}n| j                   d   }d }|j                  r|j                         \  }}nO|j	                  d      \  }}|t
        j                  ur(|j                  r|t
        j                  ur
|}|dz
  |z  }|?t        |      t              z  t        |      t        |      z  z   j                  d      S t        |      S Nr   Trationalr6   )trig)
ri   r   r|   rZ   as_coeff_Mulr   rX   
is_Integerrf   rh   rk   r   r   r]   r   ycoefftermss           r3   _eval_expand_trigzsinh._eval_expand_trig      %$))A,%%d4e4C))A,C::##%DAq++T+:LE5AEE!e&6&65;MQYM=GDGOd1gd1go5==4=HHCyrC   Nc                 8    t        |      t        |       z
  dz  S Nr7   r   rk   r]   limitvarkwargss       r3   _eval_rewrite_as_tractablezsinh._eval_rewrite_as_tractable&      C3t9$))rC   c                 8    t        |      t        |       z
  dz  S r   r   rk   r]   r   s      r3   _eval_rewrite_as_expzsinh._eval_rewrite_as_exp)  r   rC   c                 6    t          t        t         |z        z  S r,   r   r'   r   s      r3   _eval_rewrite_as_sinzsinh._eval_rewrite_as_sin,      rCCL  rC   c                 6    t          t        t         |z        z  S r,   r   r%   r   s      r3   _eval_rewrite_as_csczsinh._eval_rewrite_as_csc/  r   rC   c                 J    t          t        |t        t         z  dz  z         z  S r   r   rh   r   r   s      r3   _eval_rewrite_as_coshzsinh._eval_rewrite_as_cosh2  s     r$sRT!V|$$$rC   c                 V    t        t        j                  |z        }d|z  d|dz  z
  z  S Nr7   r6   tanhr   rA   rk   r]   r   	tanh_halfs       r3   _eval_rewrite_as_tanhzsinh._eval_rewrite_as_tanh5  s,    $	{A	1,--rC   c                 V    t        t        j                  |z        }d|z  |dz  dz
  z  S r   cothr   rA   rk   r]   r   	coth_halfs       r3   _eval_rewrite_as_cothzsinh._eval_rewrite_as_coth9  s,    $	{IqL1,--rC   c                     dt        |      z  S Nr6   cschr   s      r3   _eval_rewrite_as_cschzsinh._eval_rewrite_as_csch=      49}rC   c                 *   | j                   d   j                  |||      }|j                  |d      }|t        j                  u r"|j                  |d|j                  rdnd      }|j                  r|S |j                  r| j                  |      S | S Nr   logxcdir-+)dir)
ri   as_leading_termsubsr   rw   limitry   rx   	is_finiter}   rk   r   r   r   r]   arg0s         r3   _eval_as_leading_termzsinh._eval_as_leading_term@  s    iil**14d*Cxx1~155=99Qd.>.>sC9HD<<J^^99T?"KrC   c                     | j                   d   }|j                  ry|j                         \  }}|t        z  j                  S Nr   Tri   is_realr   r   rx   rk   r]   r   r   s       r3   _eval_is_realzsinh._eval_is_realM  s;    iil;; !!#B2rC   c                 8    | j                   d   j                  ryy r   ri   r   r   s    r3   _eval_is_extended_realzsinh._eval_is_extended_realW      99Q<(( )rC   c                 h    | j                   d   j                  r| j                   d   j                  S y r   ri   r   is_positiver   s    r3   _eval_is_positivezsinh._eval_is_positive[  ,    99Q<((99Q<+++ )rC   c                 h    | j                   d   j                  r| j                   d   j                  S y r   ri   r   ry   r   s    r3   _eval_is_negativezsinh._eval_is_negative_  r   rC   c                 8    | j                   d   }|j                  S r   ri   r   rk   r]   s     r3   _eval_is_finitezsinh._eval_is_finitec      iil}}rC   c                 j    t        | j                  d         \  }}|j                  r|j                  S y r   )rd   ri   rx   
is_integerrk   restipi_mults      r3   _eval_is_zerozsinh._eval_is_zerog  s0    %diil3h<<&&& rC   r6   Tr,   r   )rQ   rR   rS   rT   rm   rr   classmethodr   staticmethodr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  rB   rC   r3   rf   rf      s    &5 .5 .5` -  -34 #"**!!%..,,'rC   rf   c                       e Zd ZdZddZed        Zeed               Z	d Z
ddZddZddZdd
Zd Zd Zd Zd Zd Zd Zd ZddZd Zd Zd Zd Zd Zy	)rh   a"  
    ``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    |dk(  rt        | j                  d         S t        | |      Nr6   r   rf   ri   r   rj   s     r3   rm   z
cosh.fdiff  s)    q=		!%%$T844rC   c                 x   ddl m} |j                  r|t        j                  u rt        j                  S |t        j
                  u rt        j
                  S |t        j                  u rt        j
                  S |j                  rt        j                  S |j                  r	 | |       S y |t        j                  u rt        j                  S t        |      }| ||      S |j                         r	 | |       S |j                  rOt        |      \  }}|r?|t        z  t         z  }t#        |      t#        |      z  t%        |      t%        |      z  z   S |j                  rt        j                  S |j&                  t(        k(  rt+        d|j,                  d   dz  z         S |j&                  t.        k(  r|j,                  d   S |j&                  t0        k(  r!dt+        d|j,                  d   dz  z
        z  S |j&                  t2        k(  r/|j,                  d   }|t+        |dz
        t+        |dz         z  z  S y )Nr   )r#   r6   r7   )(sympy.functions.elementary.trigonometricr#   rv   r   rw   rM   rN   rx   rX   ry   rz   r)   r{   r|   rd   r   r   rh   rf   r}   rq   r   ri   r~   r   r   )r   r]   r#   r   r   r   s         r3   r   z	cosh.eval  s   @==aee|uu

"zz!***zz!uuC4y  ! a'''uu4S9G"7|#//1t9$zz#C(1"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                     | dk  s| dz  dk(  rt         j                  S t        |      }t        |      dkD  r|d   }||dz  z  | | dz
  z  z  S || z  t	        |       z  S )Nr   r7   r6   rH   r   r   s       r3   r   zcosh.taylor_term  sl     q5AEQJ66M
A>"Q&"2&1a4x1a!e9--1vil**rC   c                 Z    | j                  | j                  d   j                               S r   r   r   s    r3   r   zcosh._eval_conjugate  r   rC   c                    | j                   d   j                  r<|r(d|d<    | j                  |fi |t        j                  fS | t        j                  fS |r2 | j                   d   j                  |fi |j                         \  }}n | j                   d   j                         \  }}t        |      t        |      z  t        |      t        |      z  fS )Nr   Fr   )
ri   r   r   r   r\   r   rh   r#   rf   r'   r   s        r3   r   zcosh.as_real_imag  s    99Q<((#(i #D2E2AFF;;aff~%(TYYq\((77DDFFBYYq\..0FBRR $r(3r7"233rC   c                 H     | j                   dd|i|\  }}||t        z  z   S r   r   r   s        r3   r   zcosh._eval_expand_complex  r   rC   c                    |r! | j                   d   j                  |fi |}n| j                   d   }d }|j                  r|j                         \  }}nO|j	                  d      \  }}|t
        j                  ur(|j                  r|t
        j                  ur
|}|dz
  |z  }|?t        |      t              z  t        |      t        |      z  z   j                  d      S t        |      S r   )
ri   r   r|   rZ   r   r   rX   r   rh   rf   r   s           r3   r   zcosh._eval_expand_trig  r   rC   Nc                 8    t        |      t        |       z   dz  S r   r   r   s       r3   r   zcosh._eval_rewrite_as_tractable  r   rC   c                 8    t        |      t        |       z   dz  S r   r   r   s      r3   r   zcosh._eval_rewrite_as_exp  r   rC   c                 *    t        t        |z  d      S NFevaluater#   r   r   s      r3   _eval_rewrite_as_coszcosh._eval_rewrite_as_cos      1s7U++rC   c                 0    dt        t        |z  d      z  S Nr6   Fr  r&   r   r   s      r3   _eval_rewrite_as_seczcosh._eval_rewrite_as_sec      3q3w///rC   c                 N    t          t        |t        t         z  dz  z   d      z  S Nr7   Fr  r   rf   r   r   s      r3   _eval_rewrite_as_sinhzcosh._eval_rewrite_as_sinh  s"    r$sRT!V|e444rC   c                 V    t        t        j                  |z        dz  }d|z   d|z
  z  S r   r   r   s       r3   r   zcosh._eval_rewrite_as_tanh  s,    $a'	II..rC   c                 V    t        t        j                  |z        dz  }|dz   |dz
  z  S r   r   r   s       r3   r   zcosh._eval_rewrite_as_coth  s,    $a'	A	A..rC   c                     dt        |      z  S r   sechr   s      r3   _eval_rewrite_as_sechzcosh._eval_rewrite_as_sech  r   rC   c                 F   | j                   d   j                  |||      }|j                  |d      }|t        j                  u r"|j                  |d|j                  rdnd      }|j                  rt        j                  S |j                  r| j                  |      S | S r   )ri   r   r   r   rw   r   ry   rx   rX   r   r}   r   s         r3   r   zcosh._eval_as_leading_term  s    iil**14d*Cxx1~155=99Qd.>.>sC9HD<<55L^^99T?"KrC   c                     | j                   d   }|j                  s|j                  ry|j                         \  }}|t        z  j
                  S r   )ri   r   is_imaginaryr   r   rx   r   s       r3   r   zcosh._eval_is_real  sE    iil ;;#**
 !!#B2rC   c                    | j                   d   }|j                         \  }}|dt        z  z  }|j                  }|ry|j                  }|du r|S t	        |t        |t	        |t        dz  k  |dt        z  dz  kD  g      g      g      S Nr   r7   TFr8   ri   r   r   rx   r	   r
   rk   zr   r   ymodyzeroxzeros          r3   r   zcosh._eval_is_positive  s     IIaL~~1AbDz		E>LdRTk4!B$q&=9: 	  	rC   c                    | j                   d   }|j                         \  }}|dt        z  z  }|j                  }|ry|j                  }|du r|S t	        |t        |t	        |t        dz  k  |dt        z  dz  k\  g      g      g      S r1  r2  r3  s          r3   _eval_is_nonnegativezcosh._eval_is_nonnegative?  s    IIaL~~1AbDz		E>LdbdlDAbDFN;< 	  	rC   c                 8    | j                   d   }|j                  S r   r   r   s     r3   r   zcosh._eval_is_finiteY  r   rC   c                     t        | j                  d         \  }}|r*|j                  r|t        j                  z
  j
                  S y y r   )rd   ri   rx   r   rA   r  r  s      r3   r  zcosh._eval_is_zero]  s=    %diil3hqvv%111 %8rC   r  r  r,   r   )rQ   rR   rS   rT   rm   r  r   r	  r   r   r   r   r   r   r   r   r  r!  r&  r   r   r,  r   r   r   r9  r   r  rB   rC   r3   rh   rh   m  s    &5 -5 -5^ 
+  
+34#"**,05//@42rC   rh   c                       e Zd ZdZddZddZed        Zee	d               Z
d ZddZd Zdd
Zd Zd Zd Zd Zd Zd ZddZd Zd Zd Zd Zd Zd Zy	)r   a'  
    ``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                 |    |dk(  r,t         j                  t        | j                  d         dz  z
  S t	        | |      Nr6   r   r7   )r   rX   r   ri   r   rj   s     r3   rm   z
tanh.fdiffw  s7    q=554		!-q000$T844rC   c                     t         S ro   r   rj   s     r3   rr   ztanh.inverse}  rs   rC   c                    |j                   r|t        j                  u rt        j                  S |t        j                  u rt        j                  S |t        j
                  u rt        j                  S |j                  rt        j                  S |j                  r
 | |        S y |t        j                  u rt        j                  S t        |      }|6|j                         rt         t        |       z  S t        t        |      z  S |j                         r
 | |        S |j                  rQt!        |      \  }}|rAt#        |t$        z  t        z        }|t        j                  u rt'        |      S t#        |      S |j                  rt        j                  S |j(                  t*        k(  r#|j,                  d   }|t/        d|dz  z         z  S |j(                  t0        k(  r/|j,                  d   }t/        |dz
        t/        |dz         z  |z  S |j(                  t2        k(  r|j,                  d   S |j(                  t4        k(  rd|j,                  d   z  S y ru   )rv   r   rw   rM   rX   rN   NegativeOnerx   r\   ry   rz   r)   r{   r   r(   r|   rd   r   r   r   r}   rq   ri   r   r~   r   r   )r   r]   r   r   r   tanhms         r3   r   z	tanh.eval  s   ==aee|uu

"uu***}}$vvSD	z! ! a'''uu4S9G"3352WH--3w<''//1I:%zz#C(1 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                     | dk  s| dz  dk(  rt         j                  S t        |      }d| dz   z  }t        | dz         }t	        | dz         }||dz
  z  |z  |z  || z  z  S Nr   r7   r6   )r   r\   r   r   r   )r   r   r   r_   BFs         r3   r   ztanh.taylor_term  so     q5AEQJ66M
AAE
A!a% A!a% Aa!e9q=?QT))rC   c                 Z    | j                  | j                  d   j                               S r   r   r   s    r3   r   ztanh._eval_conjugate  r   rC   c                    | j                   d   j                  r<|r(d|d<    | j                  |fi |t        j                  fS | t        j                  fS |r2 | j                   d   j                  |fi |j                         \  }}n | j                   d   j                         \  }}t        |      dz  t        |      dz  z   }t        |      t        |      z  |z  t        |      t        |      z  |z  fS )Nr   Fr   r7   r   )rk   r   r   r   r   denoms         r3   r   ztanh.as_real_imag  s    99Q<((#(i #D2E2AFF;;aff~%(TYYq\((77DDFFBYYq\..0FBR!c"gqj(Rb!%'RR)>??rC   c                    | j                   d   }|j                  rt        |j                         }|j                   D cg c]  }t        |d      j	                          }}ddg}t        |dz         D ]  }||dz  xx   t        ||      z  cc<    |d   |d   z  S |j                  r|j                         \  }}	|j                  r|dkD  rt        |	      }
t        d|dz   d      D cg c]  }t        t        |      |      |
|z  z   }}t        d|dz   d      D cg c]  }t        t        |      |      |
|z  z   }}t        | t        | z  S t        |      S c c}w c c}w c c}w )Nr   Fr  r6   r7   )ri   r|   r   r   r   ranger*   rY   r   r   r   r   )rk   r   r]   r   r   TXra   ir   r   Tkds                r3   r   ztanh._eval_expand_trig  sb   iil::CHHA# q5);;= #B #AA1q5\ 2!a%N1b112Q4!9ZZ++-LE5EAIK7<Q	17MN!Rea(A-NN7<Q	17MN!Rea(A-NNAwsAw&Cy# ONs   "E","E'""E,Nc                 F    t        |       t        |      }}||z
  ||z   z  S r,   r   rk   r]   r   r   neg_exppos_exps         r3   r   ztanh._eval_rewrite_as_tractable  *    t9c#h'!Gg$566rC   c                 F    t        |       t        |      }}||z
  ||z   z  S r,   r   rk   r]   r   rT  rU  s        r3   r   ztanh._eval_rewrite_as_exp  rV  rC   c                 :    t          t        t         |z  d      z  S r  )r   r(   r   s      r3   _eval_rewrite_as_tanztanh._eval_rewrite_as_tan      rCC%000rC   c                 :    t          t        t         |z  d      z  S r  )r   r$   r   s      r3   _eval_rewrite_as_cotztanh._eval_rewrite_as_cot  r[  rC   c                 d    t         t        |      z  t        t        t         z  dz  |z
  d      z  S r$  r%  r   s      r3   r&  ztanh._eval_rewrite_as_sinh  s(    c{41Qu===rC   c                 d    t         t        t        t         z  dz  |z
  d      z  t        |      z  S r$  r   r   s      r3   r   ztanh._eval_rewrite_as_cosh  s)    bd1fslU33DI==rC   c                     dt        |      z  S r   r   r   s      r3   r   ztanh._eval_rewrite_as_coth      c{rC   c                     ddl m} | j                  d   j                  |      }||j                  v r |d|      j                  |      r|S | j                  |      S Nr   )Orderr6   sympy.series.orderre  ri   r   free_symbolscontainsr}   rk   r   r   r   re  r]   s         r3   r   ztanh._eval_as_leading_term  sQ    ,iil**1-   U1a[%9%9#%>J99S>!rC   c                     | j                   d   }|j                  ry|j                         \  }}|dk(  r|t        z  t        dz  k(  ry |t        dz  z  j                  S )Nr   Tr7   r   r   s       r3   r   ztanh._eval_is_real  s[    iil;;!!#B 7rBw"Q$ bd$$$rC   c                 8    | j                   d   j                  ryy r   r   r   s    r3   r   ztanh._eval_is_extended_real  r   rC   c                 h    | j                   d   j                  r| j                   d   j                  S y r   r   r   s    r3   r   ztanh._eval_is_positive  r   rC   c                 h    | j                   d   j                  r| j                   d   j                  S y r   r   r   s    r3   r   ztanh._eval_is_negative"  r   rC   c                     | j                   d   }|j                         \  }}t        |      dz  t        |      dz  z   }|dk(  ry|j                  ry|j
                  ryy )Nr   r7   FT)ri   r   r#   rf   	is_numberr   )rk   r]   r   r   rJ  s        r3   r   ztanh._eval_is_finite&  s`    iil!!#BB
T"Xq[(A:__  rC   c                 <    | j                   d   }|j                  ryy r   ri   rx   r   s     r3   r  ztanh._eval_is_zero2  s    iil;; rC   r  r  r,   r   )rQ   rR   rS   rT   rm   rr   r  r   r	  r   r   r   r   r   r   r   rZ  r]  r&  r   r   r   r   r   r   r   r   r  rB   rC   r3   r   r   c  s    &5 2% 2%h *  *3@&7711>>"%,,
rC   r   c                       e Zd ZdZddZddZed        Zee	d               Z
d ZddZdd	Zd
 Zd Zd Zd Zd Zd ZddZd Zy)r   a+  
    ``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                 `    |dk(  rdt        | j                  d         dz  z  S t        | |      )Nr6   r9   r   r7   r  rj   s     r3   rm   z
coth.fdiffL  s3    q=d499Q<(!+++$T844rC   c                     t         S ro   )r   rj   s     r3   rr   zcoth.inverseR  rs   rC   c                    |j                   r|t        j                  u rt        j                  S |t        j                  u rt        j                  S |t        j
                  u rt        j                  S |j                  rt        j                  S |j                  r
 | |        S y |t        j                  u rt        j                  S t        |      }|6|j                         rt        t        |       z  S t         t        |      z  S |j                         r
 | |        S |j                  rQt        |      \  }}|rAt!        |t"        z  t        z        }|t        j                  u rt!        |      S t%        |      S |j                  rt        j                  S |j&                  t(        k(  r#|j*                  d   }t-        d|dz  z         |z  S |j&                  t.        k(  r/|j*                  d   }|t-        |dz
        t-        |dz         z  z  S |j&                  t0        k(  rd|j*                  d   z  S |j&                  t2        k(  r|j*                  d   S y ru   )rv   r   rw   rM   rX   rN   rB  rx   rz   ry   r)   r{   r   r$   r|   rd   r   r   r   r}   rq   ri   r   r~   r   r   )r   r]   r   r   r   cothms         r3   r   z	coth.evalX  s   ==aee|uu

"uu***}}$(((SD	z! ! a'''uu4S9G"335sG8},,rCL((//1I:%zz#C(1 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                     | dk(  rdt        |      z  S | dk  s| dz  dk(  rt        j                  S t        |      }t        | dz         }t	        | dz         }d| dz   z  |z  |z  || z  z  S ru   r   r   r\   r   r   r   r   r   rF  rG  s        r3   r   zcoth.taylor_term  sx     6wqz>!Ua!eqj66M
A!a% A!a% Aq1u:>!#ad**rC   c                 Z    | j                  | j                  d   j                               S r   r   r   s    r3   r   zcoth._eval_conjugate  r   rC   c                    ddl m}m} | j                  d   j                  r<|r(d|d<    | j
                  |fi |t        j                  fS | t        j                  fS |r2 | j                  d   j
                  |fi |j                         \  }}n | j                  d   j                         \  }}t        |      dz   ||      dz  z   }t        |      t        |      z  |z   ||        ||      z  |z  fS )Nr   )r#   r'   Fr   r7   )r  r#   r'   ri   r   r   r   r\   r   rf   rh   )rk   r   r   r#   r'   r   r   rJ  s           r3   r   zcoth.as_real_imag  s    G99Q<((#(i #D2E2AFF;;aff~%(TYYq\((77DDFFBYYq\..0FBR!c"gqj(Rb!%'#b'#b')9%)?@@rC   Nc                 F    t        |       t        |      }}||z   ||z
  z  S r,   r   rS  s         r3   r   zcoth._eval_rewrite_as_tractable  rV  rC   c                 F    t        |       t        |      }}||z   ||z
  z  S r,   r   rX  s        r3   r   zcoth._eval_rewrite_as_exp  rV  rC   c                 f    t          t        t        t         z  dz  |z
  d      z  t        |      z  S r$  r%  r   s      r3   r&  zcoth._eval_rewrite_as_sinh  s+    r$r!tAv|e44T#Y>>rC   c                 f    t          t        |      z  t        t        t         z  dz  |z
  d      z  S r$  r   r   s      r3   r   zcoth._eval_rewrite_as_cosh  s*    r$s)|DAa#>>>rC   c                     dt        |      z  S r   r   r   s      r3   r   zcoth._eval_rewrite_as_tanh  rb  rC   c                 h    | j                   d   j                  r| j                   d   j                  S y r   r   r   s    r3   r   zcoth._eval_is_positive  r   rC   c                 h    | j                   d   j                  r| j                   d   j                  S y r   r   r   s    r3   r   zcoth._eval_is_negative  r   rC   c                     ddl m} | j                  d   j                  |      }||j                  v r |d|      j                  |      rd|z  S | j                  |      S rd  rf  rj  s         r3   r   zcoth._eval_as_leading_term  sU    ,iil**1-   U1a[%9%9#%>S5L99S>!rC   c                    | j                   d   }|j                  r|j                   D cg c]  }t        |d      j                          }}g g g}t	        |j                         }t        |dd      D ]&  }|||z
  dz     j                  t        ||             ( t        |d    t        |d    z  S |j                  r|j                  d      \  }}|j                  ri|dkD  rdt        |d      }	g g g}t        |dd      D ],  }|||z
  dz     j                  t        ||      |	|z  z         . t        |d    t        |d    z  S t        |      S c c}w )	Nr   Fr  r9   r7   r6   Tr   )ri   r|   r   r   r   rL  appendr*   r   rY   r   r   r   )
rk   r   r]   r   CXra   r   rN  r   cs
             r3   r   zcoth._eval_expand_trig  sY   iil::GJxxP!$q5);;=PBPRACHHA1b"% =1q5A+%%nQ&;<=!:c1Q4j((ZZ'''6HE1EAIU+Hub"- GAuqyAo&--hua.@A.EFGAaDz#qt*,,Cy Qs   "Er  r  r,   r   )rQ   rR   rS   rT   rm   rr   r  r   r	  r   r   r   r   r   r   r&  r   r   r   r   r   r   rB   rC   r3   r   r   8  sz    &5 2# 2#h +  +3A77??,,"rC   r   c                       e Zd ZU dZdZdZeed<   dZeed<   e	d        Z
d Zd Zd Zd	 Zdd
Zd Zd ZddZd ZddZd ZddZd Zd Zy)ReciprocalHyperbolicFunctionz=Base class for reciprocal functions of hyperbolic functions. N_is_even_is_oddc                    |j                         r+| j                  r	 | |       S | j                  r
 | |        S | j                  j	                  |      }t        |d      r"|j                         | k(  r|j                  d   S |d|z  S |S )Nrr   r   r6   )r{   r  r  _reciprocal_ofr   hasattrrr   ri   )r   r]   ts      r3   r   z!ReciprocalHyperbolicFunction.eval  s    '')||C4y {{SD	z!##C(3	"s{{}';88A;mqs**rC   c                 b    | j                  | j                  d         } t        ||      |i |S r   )r  ri   getattr)rk   method_nameri   r   os        r3   _call_reciprocalz-ReciprocalHyperbolicFunction._call_reciprocal  s3    		!-&wq+&777rC   c                 @     | j                   |g|i |}|d|z  S |S r   )r  )rk   r  ri   r   r  s        r3   _calculate_reciprocalz2ReciprocalHyperbolicFunction._calculate_reciprocal  s3     "D!!+???mqs**rC   c                 `    | j                  ||      }||| j                  |      k7  rd|z  S y y r   )r  r  )rk   r  r]   r  s       r3   _rewrite_reciprocalz0ReciprocalHyperbolicFunction._rewrite_reciprocal  s=     !!+s3=Q$"5"5c"::Q3J ;=rC   c                 &    | j                  d|      S )Nr   r  r   s      r3   r   z1ReciprocalHyperbolicFunction._eval_rewrite_as_exp  s    ''(>DDrC   c                 &    | j                  d|      S )Nr   r  r   s       r3   r   z7ReciprocalHyperbolicFunction._eval_rewrite_as_tractable  s    ''(DcJJrC   c                 &    | j                  d|      S )Nr   r  r   s      r3   r   z2ReciprocalHyperbolicFunction._eval_rewrite_as_tanh      ''(?EErC   c                 &    | j                  d|      S )Nr   r  r   s      r3   r   z2ReciprocalHyperbolicFunction._eval_rewrite_as_coth  r  rC   c                 f     d| j                  | j                  d         z  j                  |fi |S r  )r  ri   r   )rk   r   r   s      r3   r   z)ReciprocalHyperbolicFunction.as_real_imag  s2    CD''		!55CCDRERRrC   c                 Z    | j                  | j                  d   j                               S r   r   r   s    r3   r   z,ReciprocalHyperbolicFunction._eval_conjugate  r   rC   c                 H     | j                   dddi|\  }}|t        |z  z   S )Nr   TrB   r   r   s        r3   r   z1ReciprocalHyperbolicFunction._eval_expand_complex  s0    ,4,,@$@%@7""rC   c                 &     | j                   di |S )N)r   )r  )rk   r   s     r3   r   z.ReciprocalHyperbolicFunction._eval_expand_trig!  s    )t))GGGrC   c                 b    d| j                  | j                  d         z  j                  |      S r  )r  ri   r   )rk   r   r   r   s       r3   r   z2ReciprocalHyperbolicFunction._eval_as_leading_term$  s+    $%%diil33JJ1MMrC   c                 R    | j                  | j                  d         j                  S r   )r  ri   r   r   s    r3   r   z3ReciprocalHyperbolicFunction._eval_is_extended_real'  s!    ""499Q<0AAArC   c                 X    d| j                  | j                  d         z  j                  S r  )r  ri   r   r   s    r3   r   z,ReciprocalHyperbolicFunction._eval_is_finite*  s&    $%%diil33>>>rC   r,   r  r   )rQ   rR   rS   rT   r  r  r   __annotations__r  r  r   r  r  r  r   r   r   r   r   r   r   r   r   r   r   rB   rC   r3   r  r    s    G NHiGY
+ 
+8
+EKFFS3#HNB?rC   r  c                   ^    e Zd ZdZeZdZddZee	d               Z
d Zd Zd Zd Zd	 Zd
 Zy)r   a8  
    ``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                     |dk(  r2t        | j                  d          t        | j                  d         z  S t        | |      )z?
        Returns the first derivative of this function
        r6   r   )r   ri   r   r   rj   s     r3   rm   z
csch.fdiffE  s@     q=1&&diil);;;$T844rC   c                     | dk(  rdt        |      z  S | dk  s| dz  dk(  rt        j                  S t        |      }t        | dz         }t	        | dz         }ddd| z  z
  z  |z  |z  || z  z  S )zF
        Returns the next term in the Taylor series expansion
        r   r6   r7   ry  rz  s        r3   r   zcsch.taylor_termN  s}     6WQZ<Ua!eqj66M
A!a% A!a% AAqD>A%a'!Q$..rC   c                 8    t         t        t         |z  d      z  S r  r   r   s      r3   r   zcsch._eval_rewrite_as_sin`      3q3w///rC   c                 8    t         t        t         |z  d      z  S r  r   r   s      r3   r   zcsch._eval_rewrite_as_cscc  r  rC   c                 L    t         t        |t         t        z  dz  z   d      z  S r$  r   r   s      r3   r   zcsch._eval_rewrite_as_coshf  s!    4a"fqj(5999rC   c                     dt        |      z  S r   rf   r   s      r3   r&  zcsch._eval_rewrite_as_sinhi  r   rC   c                 h    | j                   d   j                  r| j                   d   j                  S y r   r   r   s    r3   r   zcsch._eval_is_positivel  r   rC   c                 h    | j                   d   j                  r| j                   d   j                  S y r   r   r   s    r3   r   zcsch._eval_is_negativep  r   rC   Nr  )rQ   rR   rS   rT   rf   r  r  rm   r	  r   r   r   r   r   r&  r   r   rB   rC   r3   r   r   .  sR    & NG5 /  / 00:,,rC   r   c                   X    e Zd ZdZeZdZddZee	d               Z
d Zd Zd Zd Zd	 Zy
)r+  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                     |dk(  r2t        | j                  d          t        | j                  d         z  S t        | |      r  )r   ri   r+  r   rj   s     r3   rm   z
sech.fdiff  s>    q=$))A,''TYYq\(:::$T844rC   c                     | dk  s| dz  dk(  rt         j                  S t        |      }t        |       t	        |       z  || z  z  S rE  )r   r\   r   r   r   r   r   r   s      r3   r   zsech.taylor_term  sC     q5AEQJ66M
A8il*QV33rC   c                 0    dt        t        |z  d      z  S r  r  r   s      r3   r  zsech._eval_rewrite_as_cos  r"  rC   c                 *    t        t        |z  d      S r  r   r   s      r3   r!  zsech._eval_rewrite_as_sec  r  rC   c                 L    t         t        |t         t        z  dz  z   d      z  S r$  r%  r   s      r3   r&  zsech._eval_rewrite_as_sinh  s     4a"fai%888rC   c                     dt        |      z  S r   rh   r   s      r3   r   zsech._eval_rewrite_as_cosh  r   rC   c                 8    | j                   d   j                  ryy r   r   r   s    r3   r   zsech._eval_is_positive  r   rC   Nr  )rQ   rR   rS   rT   rh   r  r  rm   r	  r   r   r  r!  r&  r   r   rB   rC   r3   r+  r+  u  sM    & NH5 4  40,9rC   r+  c                       e Zd ZdZy)InverseHyperbolicFunctionz,Base class for inverse hyperbolic functions.N)rQ   rR   rS   rT   rB   rC   r3   r  r    s    6rC   r  c                       e Zd ZdZddZed        Zeed               Z	ddZ
ddZd ZeZd	 Zd
 Zd Zd ZddZd Zd Zd Zy)rq   aM  
    ``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    |dk(  r!dt        | j                  d   dz  dz         z  S t        | |      r>  )r   ri   r   rj   s     r3   rm   zasinh.fdiff  s7    q=T$))A,/A-...$T844rC   c                 &   |j                   r|t        j                  u rt        j                  S |t        j                  u rt        j                  S |t        j                  u rt        j                  S |j
                  rt        j                  S |t        j                  u rt        t        d      dz         S |t        j                  u rt        t        d      dz
        S |j                  r | |        S |t        j                  u rt        j                  S |j
                  rt        j                  S t        |      }|t        t        |      z  S |j!                         r
 | |        S t#        |t$              r|j&                  d   j(                  rz|j&                  d   }|j*                  r|S t-        |      \  }}|L|It/        |t0        dz  z   t0        z        }|t        t0        z  |z  z
  }|j2                  }|du r|S |du r| S y y y y y )Nr7   r6   r   TF)rv   r   rw   rM   rN   rx   r\   rX   r   r   rB  ry   rz   r)   r   r!   r{   
isinstancerf   ri   rp  r   r   r   r   is_even)	r   r]   r   r4  rrN  fr   evens	            r3   r   z
asinh.eval  s   ==aee|uu

"zz!***)))vv47Q;''%47Q;''SD	z!a'''((({{vv4S9G"4=((//1I:%c4 SXXa[%:%:Ayy"1%DAq}1r!t8R-("QJyy4<HU]2I # "/} &; rC   c                 V   | dk  s| dz  dk(  rt         j                  S t        |      }t        |      dk\  r%| dkD  r |d   }| | dz
  dz  z  | | dz
  z  z  |dz  z  S | dz
  dz  }t	        t         j
                  |      }t        |      }t         j                  |z  |z  |z  || z  z  | z  S Nr   r7   rH   r6   )r   r\   r   r   r   rA   r   rB  r   r   r   ra   rP  RrG  s          r3   r   zasinh.taylor_term   s     q5AEQJ66M
A>"a'AE"2&rQUQJ1q5	2QT99UqL#AFFA.aL}}a'!+a/!Q$6::rC   Nc                    | j                   d   }|j                  |d      j                         }|j                  r|j	                  |      S |t
        j                  u r0| j                  |j	                  |            }|j                  r|S | S |t         t        t
        j                  fv r'| j                  t              j                  |||      S d|dz  z   j                  r|j                  ||r|nd      }t!        |      j"                  r5t%        |      j                  r| j                  |       t        t&        z  z
  S t!        |      j                  r5t%        |      j"                  rG| j                  |       t        t&        z  z   S | j                  t              j                  |||      S | j                  |      S Nr   r   r6   r7   )ri   r   cancelrx   r   r   rw   r}   r   r   rz   r0   r   r   ry   r   r   r   r   r   rk   r   r   r   r]   x0r1   ndirs           r3   r   zasinh._eval_as_leading_term  si   iilXXa^""$::&&q));99S0034D~~ 1"a**++<<$::14d:SSAI""771dd2D$x##b6%% IIbM>AbD00D%%b6%% IIbM>AbD00||C(>>qtRV>WWyy}rC   c                    | j                   d   }|j                  |d      }|t        t         fv r(| j                  t              j                  ||||      S t        j
                  | |||      }|t        j                  u r|S d|dz  z   j                  r|j                  ||r|nd      }t        |      j                  r(t        |      j                  r| t        t        z  z
  S |S t        |      j                  r(t        |      j                  r| t        t        z  z   S |S | j                  t              j                  ||||      S |S Nr   r   r   r   r6   r7   )ri   r   r   r0   r   _eval_nseriesr   r   rz   ry   r   r   r   r   r   	rk   r   r   r   r   r]   r   resr  s	            r3   r  zasinh._eval_nseries-  s.   iilxx1~ Ar7?<<$221ad2NN$$T1=1$$$J aK$$771dd2D$x##d8''4!B$;& 
 D%%d8''4!B$;& 
 ||C(66q!$T6RR
rC   c                 <    t        |t        |dz  dz         z         S r   r   r   rk   r   r   s      r3   _eval_rewrite_as_logzasinh._eval_rewrite_as_logF  s    1tAqD1H~%&&rC   c                 <    t        |t        d|dz  z         z        S Nr6   r7   )r   r   r  s      r3   _eval_rewrite_as_atanhzasinh._eval_rewrite_as_atanhK  s    QtA1H~%&&rC   c                     t         |z  }t         t        d|z
        t        |dz
        z  t        |      z  t        dz  z
  z  S r  )r   r   r~   r   )rk   r   r   ixs       r3   _eval_rewrite_as_acoshzasinh._eval_rewrite_as_acoshN  s=    qS$q2v,tBF|+eBi7"Q$>??rC   c                 :    t          t        t         |z  d      z  S r  )r   r!   r  s      r3   _eval_rewrite_as_asinzasinh._eval_rewrite_as_asinR  s    rDQ///rC   c                 Z    t         t        t         |z  d      z  t         t        z  dz  z
  S )NFr  r7   )r   r   r   r  s      r3   _eval_rewrite_as_acoszasinh._eval_rewrite_as_acosU  s%    4A..2a77rC   c                     t         S ro   r  rj   s     r3   rr   zasinh.inverseX  	     rC   c                 4    | j                   d   j                  S r   rr  r   s    r3   r  zasinh._eval_is_zero^  s    yy|###rC   c                 4    | j                   d   j                  S r   r   r   s    r3   r   zasinh._eval_is_extended_reala      yy|,,,rC   c                 4    | j                   d   j                  S r   r   r   s    r3   r   zasinh._eval_is_finited      yy|%%%rC   r  r   r   )rQ   rR   rS   rT   rm   r  r   r	  r   r   r   r  r  r   r  r  r  r  rr   r  r   r   rB   rC   r3   rq   rq     s}    *5 + +Z ;  ;:2' "6'@08$-&rC   rq   c                       e Zd ZdZddZed        Zeed               Z	ddZ
ddZd ZeZd	 Zd
 Zd Zd ZddZd Zd Zd Zy)r~   aM  
    ``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                     |dk(  r/| j                   d   }dt        |dz
        t        |dz         z  z  S t        | |      r  ri   r   r   )rk   rl   r]   s      r3   rm   zacosh.fdiff~  sC    q=))A,Cd37mDqM122$T844rC   c                 j   |j                   r|t        j                  u rt        j                  S |t        j                  u rt        j                  S |t        j                  u rt        j                  S |j
                  rt        t        z  dz  S |t        j                  u rt        j                  S |t        j                  u rt        t        z  S |j                  r+t               }||v r|j                  r||   t        z  S ||   S |t        j                  u rt        j                  S |t        t        j                  z  k(  r!t        j                  t        t        z  dz  z   S |t         t        j                  z  k(  r!t        j                  t        t        z  dz  z
  S |j
                  rt        t        z  t        j                  z  S t!        |t"              r|j$                  d   j                  r|j$                  d   }|j&                  rt)        |      S t+        |      \  }}||t-        |t        z        }|t        t        z  |z  z
  }|j.                  }|du r|j0                  r|S |j2                  r| S y |du r.|t        t        z  z  }|j4                  r| S |j6                  r|S y y y y y y )Nr7   r   TF)rv   r   rw   rM   rN   rx   r   r   rX   r\   rB  rp  rD   r   rz   rA   r  rh   ri   r   r   r   r   r  is_nonnegativery   is_nonpositiver   )	r   r]   	cst_tabler4  r  rN  r  r   r  s	            r3   r   z
acosh.eval  s)   ==aee|uu

"zz!***zz!!taxvv%!t==$Ii''$S>!++ ~%!###$$$!AJJ,::"Q&&1"QZZ-::"Q&&;;a4;c4 SXXa[%:%:Ayy1v"1%DAq}!B$K"QJyy4<''  !r	 'U]2IA'' !r	  '	 # "/} &; rC   c                 f   | dk(  rt         t        z  dz  S | dk  s| dz  dk(  rt        j                  S t	        |      }t        |      dk\  r$| dkD  r|d   }|| dz
  dz  z  | | dz
  z  z  |dz  z  S | dz
  dz  }t        t        j                  |      }t        |      }| |z  t         z  || z  z  | z  S r  )	r   r   r   r\   r   r   r   rA   r   r  s          r3   r   zacosh.taylor_term  s     6R46MUa!eqj66M
A>"a'AE"2&AEA:~q!a%y1AqD88UqL#AFFA.aLrAvzAqD(1,,rC   Nc                 H   | j                   d   }|j                  |d      j                         }|t        j                   t        j
                  t        j                  t        j                  fv r'| j                  t              j                  |||      S |t        j                  u r0| j                  |j                  |            }|j                  r|S | S |dz
  j                  r|j                  ||r|nd      }t!        |      j                  rC|dz   j                  r"| j                  |      dt"        z  t$        z  z
  S | j                  |       S t!        |      j&                  s'| j                  t              j                  |||      S | j                  |      S r  )ri   r   r  r   rX   r\   rz   r0   r   r   rw   r}   r   r   ry   r   r   r   r   r   r  s           r3   r   zacosh._eval_as_leading_term  sG   iilXXa^""$155&!&&!%%):):;;<<$::14d:SS;99S0034D~~ F771dd2D$x##F''99R=1Q3r611		"~%X))||C(>>qtRV>WWyy}rC   c                 n   | j                   d   }|j                  |d      }|t        j                  t        j                  fv r(| j                  t              j                  ||||      S t        j                  | |||      }|t        j                  u r|S |dz
  j                  r|j                  ||r|nd      }t        |      j                  r%|dz   j                  r|dt        z  t        z  z
  S | S t        |      j                  s(| j                  t              j                  ||||      S |S r  ri   r   r   rX   rB  r0   r   r  r   rz   ry   r   r   r   r   r   r  s	            r3   r  zacosh._eval_nseries  s   iilxx1~ AEE1==))<<$221ad2NN$$T1=1$$$J 1H!!771dd2D$x##1H))1R<'tX))||C(66q!$T6RR
rC   c                 T    t        |t        |dz         t        |dz
        z  z         S r   r  r  s      r3   r  zacosh._eval_rewrite_as_log  s'    1tAE{T!a%[0011rC   c                 T    t        |dz
        t        d|z
        z  t        |      z  S r   )r   r   r  s      r3   r  zacosh._eval_rewrite_as_acos  s&    AE{4A;&a00rC   c                 h    t        |dz
        t        d|z
        z  t        dz  t        |      z
  z  S r  )r   r   r!   r  s      r3   r  zacosh._eval_rewrite_as_asin  s.    AE{4A;&"Q$a.99rC   c                     t        |dz
        t        d|z
        z  t        dz  t        t        t        |z  d      z  z   z  S Nr6   r7   Fr  )r   r   r   rq   r  s      r3   _eval_rewrite_as_asinhzacosh._eval_rewrite_as_asinh	  s;    AE{4A;&"Q$51u3M1M*MNNrC   c                     t        |dz
        }t        d|z
        }t        |dz  dz
        }t        dz  |z  |z  d|t        d|dz  z        z  z
  z  |t        |dz         z  |z  t        ||z        z  z   S r  )r   r   r   )rk   r   r   sxm1s1mxsx2m1s         r3   r  zacosh._eval_rewrite_as_atanh  s    AE{AE{QTAX1T	$AQq!tV$4 45T!a%[ &uQw78 	9rC   c                     t         S ro   r  rj   s     r3   rr   zacosh.inverse  r  rC   c                 >    | j                   d   dz
  j                  ryy )Nr   r6   Trr  r   s    r3   r  zacosh._eval_is_zero  s     IIaL1%% &rC   c                 ~    t        | j                  d   j                  | j                  d   dz
  j                  g      S Nr   r6   )r
   ri   r   is_extended_nonnegativer   s    r3   r   zacosh._eval_is_extended_real  s3    $))A,77$))A,:J9c9cdeerC   c                 4    | j                   d   j                  S r   r   r   s    r3   r   zacosh._eval_is_finite   r  rC   r  r   r  )rQ   rR   rS   rT   rm   r  r   r	  r   r   r   r  r  r   r  r  r  r  rr   r  r   r   rB   rC   r3   r~   r~   h  s~    *5 4! 4!l -  - 2.2 "61:O9f&rC   r~   c                       e Zd ZdZddZed        Zeed               Z	ddZ
ddZd ZeZd	 Zd
 Zd Zd Zd ZddZy)r   a)  
    ``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    |dk(  rdd| j                   d   dz  z
  z  S t        | |      r>  ri   r   rj   s     r3   rm   zatanh.fdiff8  2    q=a$))A,/)**$T844rC   c                 X   |j                   r|t        j                  u rt        j                  S |j                  rt        j                  S |t        j
                  u rt        j                  S |t        j                  u rt        j                  S |t        j                  u rt         t        |      z  S |t        j                  u rt        t        |       z  S |j                  rz | |        S |t        j                  u r%ddlm} t         |t         dz  t        dz        z  S t!        |      }|t        t        |      z  S |j#                         r
 | |        S |j                  rt        j                  S t%        |t&              r|j(                  d   j*                  r|j(                  d   }|j,                  r|S t/        |      \  }}|X|Ut1        d|z  t        z        }|j2                  }|t        |z  t        z  dz  z
  }	|du r|	S |du r|	t        t        z  dz  z
  S y y y y y )Nr   AccumBoundsr7   TF)rv   r   rw   rx   r\   rX   rM   rB  rN   r   r"   ry   rz   !sympy.calculus.accumulationboundsr  r   r)   r{   r  r   ri   rp  r   r   r   r  )
r   r]   r  r   r4  r  rN  r  r  r   s
             r3   r   z
atanh.eval>  s   ==aee|uuvvzz!%)))

"rDI~%***4:~%SD	z!a'''IbSUBqD1114S9G"4=((//1I:%;;66Mc4 SXXa[%:%:Ayy"1%DAq}!A#b&Myy!BqL4<HU]qtAv:% # "/} &; rC   c                 b    | dk  s| dz  dk(  rt         j                  S t        |      }|| z  | z  S Nr   r7   )r   r\   r   r  s      r3   r   zatanh.taylor_termm  s4     q5AEQJ66M
Aa4!8OrC   Nc                    | j                   d   }|j                  |d      j                         }|j                  r|j	                  |      S |t
        j                  u r0| j                  |j	                  |            }|j                  r|S | S |t
        j                   t
        j                  t
        j                  fv r'| j                  t              j                  |||      S d|dz  z
  j                  r|j                  ||r|nd      }t!        |      j                  r+|j                  r| j                  |      t"        t$        z  z
  S t!        |      j&                  r+|j&                  rF| j                  |      t"        t$        z  z   S | j                  t              j                  |||      S | j                  |      S r  )ri   r   r  rx   r   r   rw   r}   r   rX   rz   r0   r   r   ry   r   r   r   r   r   r  s           r3   r   zatanh._eval_as_leading_termv  sa   iilXXa^""$::&&q));99S0034D~~ 155&!%%!2!233<<$::14d:SSAI""771dd2D$x##>>99R=1R4//D%%>>99R=1R4//||C(>>qtRV>WWyy}rC   c                    | j                   d   }|j                  |d      }|t        j                  t        j                  fv r(| j                  t              j                  ||||      S t        j                  | |||      }|t        j                  u r|S d|dz  z
  j                  r|j                  ||r|nd      }t        |      j                  r|j                  r|t        t        z  z
  S |S t        |      j                  r|j                  r|t        t        z  z   S |S | j                  t              j                  ||||      S |S r  r  r  s	            r3   r  zatanh._eval_nseries  s*   iilxx1~ AEE1==))<<$221ad2NN$$T1=1$$$J aK$$771dd2D$x####2:% 
 D%%##2:% 
 ||C(66q!$T6RR
rC   c                 B    t        d|z         t        d|z
        z
  dz  S r  r   r  s      r3   r  zatanh._eval_rewrite_as_log  s"    AE
SQZ'1,,rC   c                     t        d|dz  dz
  z        }t        |z  dt        |dz         z  z  t        |       t        d|dz  z
        z  t        |      z  |z  t        |      z  z
  S r  )r   r   rq   )rk   r   r   r  s       r3   r  zatanh._eval_rewrite_as_asinh  sm    AqD1H1aadUm$aRa!Q$h'Q/1%(:; 	<rC   c                 8    | j                   d   j                  ryy r   rr  r   s    r3   r  zatanh._eval_is_zero  s    99Q<  rC   c                     t        | j                  d   j                  d| j                  d   z
  j                  | j                  d   dz   j                  g      S r  r
   ri   r   r  r   s    r3   r   zatanh._eval_is_extended_real  sN    $))A,77!diil:J9Z9Z]a]f]fgh]ilm]m\}\}~rC   c                     t        t        | j                  d   dz
  j                  | j                  d   dz   j                  g            S r  r   r	   ri   rx   r   s    r3   r   zatanh._eval_is_finite  =    DIIaL1$4#=#=		!q@P?Y?Y"Z[\\rC   c                 4    | j                   d   j                  S r   )ri   r/  r   s    r3   _eval_is_imaginaryzatanh._eval_is_imaginary  s    yy|(((rC   c                     t         S ro   r  rj   s     r3   rr   zatanh.inverse  r  rC   r  r   r  )rQ   rR   rS   rT   rm   r  r   r	  r   r   r   r  r  r   r  r  r   r   r  rr   rB   rC   r3   r   r   $  st    &5 ,& ,&\   82- "6<
@])rC   r   c                   |    e Zd ZdZddZed        Zeed               Z	ddZ
ddZd ZeZd	 Zd
 ZddZd Zd Zy)r   a-  
    ``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    |dk(  rdd| j                   d   dz  z
  z  S t        | |      r>  r  rj   s     r3   rm   zacoth.fdiff  r  rC   c                    |j                   r|t        j                  u rt        j                  S |t        j                  u rt        j                  S |t        j
                  u rt        j                  S |j                  rt        t        z  dz  S |t        j                  u rt        j                  S |t        j                  u rt        j
                  S |j                  rf | |        S |t        j                  u rt        j                  S t        |      }|t         t        |      z  S |j                         r
 | |        S |j                  rt        t        z  t        j                   z  S y r   )rv   r   rw   rM   r\   rN   rx   r   r   rX   rB  ry   rz   r)   r    r{   rA   )r   r]   r   s      r3   r   z
acoth.eval  s   ==aee|uu

"vv***vv!taxzz!%)))SD	z!a'''vv4S9G"rDM))//1I:%;;a4; rC   c                     | dk(  rt          t        z  dz  S | dk  s| dz  dk(  rt        j                  S t	        |      }|| z  | z  S r  )r   r   r   r\   r   r  s      r3   r   zacoth.taylor_term  sJ     62b57NUa!eqj66M
Aa4!8OrC   Nc                    | j                   d   }|j                  |d      j                         }|t        j                  u rd|z  j                  |      S |t        j                  u r0| j                  |j                  |            }|j                  r|S | S |t        j                   t        j                  t        j                  fv r'| j                  t              j                  |||      S |j                  rd|dz  z
  j                  r|j!                  ||r|nd      }t#        |      j$                  r+|j                  r| j                  |      t&        t(        z  z   S t#        |      j                  r+|j$                  rF| j                  |      t&        t(        z  z
  S | j                  t              j                  |||      S | j                  |      S )Nr   r6   r   r7   )ri   r   r  r   rz   r   rw   r}   r   rX   r\   r0   r   r   r   r   r   r   ry   r   r   r  s           r3   r   zacoth._eval_as_leading_term  sp   iilXXa^""$"""cE**1--;99S0034D~~ 155&!%%((<<$::14d:SS::1r1u911771dd2D$x##>>99R=1R4//D%%>>99R=1R4//||C(>>qtRV>WWyy}rC   c                    | j                   d   }|j                  |d      }|t        j                  t        j                  fv r(| j                  t              j                  ||||      S t        j                  | |||      }|t        j                  u r|S |j                  rd|dz  z
  j                  r|j                  ||r|nd      }t        |      j                  r|j                  r|t        t         z  z   S |S t        |      j                  r|j                  r|t        t         z  z
  S |S | j                  t              j                  ||||      S |S r  )ri   r   r   rX   rB  r0   r   r  r   rz   r   r   r   r   ry   r   r   r  s	            r3   r  zacoth._eval_nseries*  s0   iilxx1~ AEE1==))<<$221ad2NN$$T1=1$$$J <<Qq[55771dd2D$x####2:% 
 D%%##2:% 
 ||C(66q!$T6RR
rC   c                 N    t        dd|z  z         t        dd|z  z
        z
  dz  S r  r  r  s      r3   r  zacoth._eval_rewrite_as_logC  s*    A!Gs1qs7|+q00rC   c                     t        d|z        S r   r@  r  s      r3   r  zacoth._eval_rewrite_as_atanhH  s    QqSzrC   c           	         t         t        z  dz  t        |dz
  |z        t        ||dz
  z        z  t        dd|z  z         t        ||dz   z        z  z
  z  |t        d|dz  z        z  t        t        d|dz  dz
  z              z  z   S r   )r   r   r   rq   r  s      r3   r  zacoth._eval_rewrite_as_asinhK  s    1Qa!eQYQAY7$q1Q3w-QPQTUPUY:WWX$qAv,uT!QTAX,%7889 	:rC   c                     t         S ro   ra  rj   s     r3   rr   zacoth.inverseO  r  rC   c                     t        | j                  d   j                  t        | j                  d   dz
  j                  | j                  d   dz   j
                  g      g      S r  )r
   ri   r   r	   r  is_extended_nonpositiver   s    r3   r   zacoth._eval_is_extended_realU  sw    $))A,77DIIaLSTDTCmCmptpypyz{p|  @A  qA  pZ  pZ  C[  :\  ]  ^  	^rC   c                     t        t        | j                  d   dz
  j                  | j                  d   dz   j                  g            S r  r  r   s    r3   r   zacoth._eval_is_finiteX  r  rC   r  r   r  )rQ   rR   rS   rT   rm   r  r   r	  r   r   r   r  r  r   r  r  rr   r   r   rB   rC   r3   r   r     sn    &5  >   821 "6:^]rC   r   c                       e Zd ZdZddZed        Zeed               Z	ddZ
ddZddZd	 ZeZd
 Zd Zd Zd Zd Zd Zy)asecha  
    ``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    |dk(  r&| j                   d   }d|t        d|dz  z
        z  z  S t        | |      Nr6   r   r9   r7   r  rk   rl   r4  s      r3   rm   zasech.fdiff  s?    q=		!Aqa!Q$h'(($T844rC   c                    |j                   r|t        j                  u rt        j                  S |t        j                  u rt        t
        z  dz  S |t        j                  u rt        t
        z  dz  S |j                  rt        j                  S |t        j                  u rt        j                  S |t        j                  u rt        t
        z  S |j                  r+t               }||v r|j                  r||   t
        z  S ||   S |t        j                  u r%ddlm} t
         |t         dz  t        dz        z  S |j                  rt        j                  S y )Nr7   r   r  )rv   r   rw   rM   r   r   rN   rx   rX   r\   rB  rp  rO   r   rz   r  r  )r   r]   r  r  s       r3   r   z
asech.eval  s   ==aee|uu

"!tax***!taxzz!vv%!t==$Ii''$S>!++ ~%!###E["Q1---;;:: rC   c                 |   | dk(  rt        d|z        S | dk  s| dz  dk(  rt        j                  S t        |      }t	        |      dkD  r*| dkD  r%|d   }|| dz
  | dz
  z  z  |dz  z  d| dz  dz  z  z  S | dz  }t        t        j                  |      | z  }t        |      | z  dz  | z  dz  }d|z  |z  || z  z  dz  S )Nr   r7   r6   rH   r:   r9   )r   r   r\   r   r   r   rA   r   r  s          r3   r   zasech.taylor_term  s     6q1u:Ua!eqj66M
A>"Q&1q5"2&QUQqSM*QT111qy=AAF#AFFA.2aL1$)A-2AvzAqD(1,,rC   Nc                 x   | j                   d   }|j                  |d      j                         }|t        j                   t        j
                  t        j                  t        j                  fv r'| j                  t              j                  |||      S |t        j                  u r0| j                  |j                  |            }|j                  r|S | S |j                  sd|z
  j                  r|j                  ||r|nd      }t!        |      j"                  rO|j"                  s|dz   j                  r| j                  |       S | j                  |      dt$        z  t&        z  z
  S t!        |      j                  s'| j                  t              j                  |||      S | j                  |      S r  )ri   r   r  r   rX   r\   rz   r0   r   r   rw   r}   r   r   ry   r   r   r   r   r   r  s           r3   r   zasech._eval_as_leading_term  sS   iilXXa^""$155&!&&!%%):):;;<<$::14d:SS;99S0034D~~ >>a"f11771dd2D$x##>>b1f%9%9 IIbM>)yy}qs2v--X))||C(>>qtRV>WWyy}rC   c                    ddl m} | j                  d   }|j                  |d      }|t        j
                  u r]t        dd      }t        t        j
                  |dz  z
        j                  t              j                  |dd|z        }	t        j
                  | j                  d   z
  }
|
j                  |      }|
|z
  |z  }|j                  |d      s|dk(  r |d      S  |t        |            S t        t        j
                  |z         j                  |||      }|j                         t        |      z  j!                         }|	j                         j                  ||      j!                         j#                          |||z  |      z   S |t        j$                  u rkt        dd      }t        t        j$                  |dz  z         j                  t              j                  |dd|z        }	t        j
                  | j                  d   z   }
|
j                  |      }|
|z
  |z  }|j                  |d      s,|dk(  r |d      S t&        t(        z   |t        |            z   S t        t        j
                  |z         j                  |||      }|j                         t        |      z  j!                         }|	j                         j                  ||      j!                         j#                          |||z  |      z   S t+        j                  | |||      }|t        j,                  u r|S |j.                  sd|z
  j.                  r|j1                  ||r|nd      }t3        |      j4                  r1|j4                  s|dz   j.                  r| S |dt&        z  t(        z  z
  S t3        |      j.                  s(| j                  t              j                  ||||	      S |S 
Nr   )Or  T)positiver7   r6   r  r   )rg  r8  ri   r   r   rX   r   r/  r0   r   nseriesr   is_meromorphicr   r  removeOr   powsimprB  r   r   r   rz   ry   r   r   r   rk   r   r   r   r   r8  r]   r   r  serarg1r  gres1r  r  s                   r3   r  z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ad0CD<<>$q')113C;;=%%a-446>>@1QT1: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ad0CD<<>$q')113C;;=%%a-446>>@1QT1:MM$$T1=1$$$J D55771dd2D$x####q'='=4KQqSV|#X))||C(66q!$T6RR
rC   c                     t         S ro   r*  rj   s     r3   rr   zasech.inverse   r  rC   c                 f    t        d|z  t        d|z  dz
        t        d|z  dz         z  z         S r   r  r   s      r3   r  zasech._eval_rewrite_as_log  s3    1S54#	?T!C%!)_<<==rC   c                     t        d|z        S r   )r~   r   s      r3   r  zasech._eval_rewrite_as_acosh      QsU|rC   c                     t        d|z  dz
        t        dd|z  z
        z  t        t        t        |z  d      z  t        t        j
                  z  z   z  S r  )r   r   rq   r   r   rA   r   s      r3   r  zasech._eval_rewrite_as_asinh  sN    AcEAItA#I.%#2N0N24QVV)1< = 	=rC   c           	      h   t         t        z  dt        |      t        d|z        z  z
  t         dz  t        |       z  t        |      z  z
  t         dz  t        |dz        z  t        |dz         z  z
  z  t        d|dz   z        t        |dz         z  t        t        d|dz  z
              z  z   S r  )r   r   r   r   r  s      r3   r  z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                     t        d|z  dz
        t        dd|z  z
        z  t        dz  t        t        t        |z  d      z  z
  z  S r  )r   r   r   acschr  s      r3   _eval_rewrite_as_acschzasech._eval_rewrite_as_acsch  sC    AaC!G}T!ac']*BqD1U1Q35O3O,OPPrC   c                     t        | j                  d   j                  | j                  d   j                  d| j                  d   z
  j                  g      S r  r  r   s    r3   r   zasech._eval_is_extended_real  sI    $))A,7719T9TWX[_[d[def[gWgVwVwxyyrC   c                 F    t        | j                  d   j                        S r   r   ri   rx   r   s    r3   r   zasech._eval_is_finite      1--..rC   r  r   r  )rQ   rR   rS   rT   rm   r  r   r	  r   r   r   r  rr   r  r   r  r  r  rK  r   r   rB   rC   r3   r/  r/  \  s{    #J5  < -  - 2+Z> "6=EQz/rC   r/  c                       e Zd ZdZddZed        Zeed               Z	ddZ
ddZddZd	 ZeZd
 Zd Zd Zd Zd Zd Zy)rJ  a  
    ``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                 |    |dk(  r,| j                   d   }d|dz  t        dd|dz  z  z         z  z  S t        | |      r1  r  r2  s      r3   rm   zacsch.fdiffF  sH    q=		!Aq!tDQq!tV,,--$T844rC   c                    |j                   r|t        j                  u rt        j                  S |t        j                  u rt        j                  S |t        j
                  u rt        j                  S |j                  rt        j                  S |t        j                  u rt        dt        d      z         S |t        j                  u rt        dt        d      z          S |j                  rt               }||v r||   t        z  S |t        j                  u rt        j                  S |j                  rt        j                  S |j                  rt        j                  S |j!                         r
 | |        S y r  )rv   r   rw   rM   r\   rN   rx   rz   rX   r   r   rB  rp  rJ   r   is_infiniter{   )r   r]   r  s      r3   r   z
acsch.evalM  s   ==aee|uu

"vv***vv(((1tAw;''%Qa[)))==$Ii ~a''!###66M??66M;;$$$'')I: *rC   c                    | dk(  rt        d|z        S | dk  s| dz  dk(  rt        j                  S t        |      }t	        |      dkD  r+| dkD  r&|d   }| | dz
  | dz
  z  z  |dz  z  d| dz  dz  z  z  S | dz  }t        t        j                  |      | z  }t        |      | z  dz  | z  dz  }t        j                  |dz   z  |z  |z  || z  z  dz  S )Nr   r7   r6   rH   r:   )	r   r   r\   r   r   r   rA   r   rB  r  s          r3   r   z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4q!t;a??rC   Nc                    | j                   d   }|j                  |d      j                         }|t         t        t        j
                  fv r'| j                  t              j                  |||      S |t        j                  u r0| j                  |j                  |            }|j                  r|S | S |t        j                  u rd|z  j                  |      S |j                  rd|dz  z   j                  r|j!                  ||r|nd      }t#        |      j                  r5t%        |      j                  r| j                  |       t        t&        z  z
  S t#        |      j(                  r5t%        |      j(                  rG| j                  |       t        t&        z  z   S | j                  t              j                  |||      S | j                  |      S r  )ri   r   r  r   r   r\   r0   r   r   rw   r}   r   r   rz   r/  r   r   r   r   r   ry   r  s           r3   r   zacsch._eval_as_leading_term  su   iilXXa^""$1"a <<$::14d: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(>>qtRV>WWyy}rC   c                 .   ddl m} | j                  d   }|j                  |d      }|t        u r^t        dd      }t        t        |dz  z         j                  t              j                  |dd|z        }	t         | j                  d   z   }
|
j                  |      }|
|z
  |z  }|j                  |d      s0|dk(  r |d      S t         t        z  dz   |t        |            z   S t        t        j                  |z         j!                  |||      }|j#                         t        |      z  j%                         }|	j#                         j                  ||      j%                         j'                          |||z  |      z   }|S |t        j(                  t        z  k(  r[t        dd      }t        t         |dz  z         j                  t              j                  |dd|z        }	t        | j                  d   z   }
|
j                  |      }|
|z
  |z  }|j                  |d      s/|dk(  r |d      S t        t        z  dz   |t        |            z   S t        t        j                  |z         j!                  |||      }|j#                         t        |      z  j%                         }|	j#                         j                  ||      j%                         j'                          |||z  |      z   S t+        j                   | |||      }|t        j,                  u r|S |j.                  rd|dz  z   j0                  r| j                  d   j3                  ||r|nd      }t5        |      j0                  r(t7        |      j0                  r| t        t        z  z
  S |S t5        |      j8                  r(t7        |      j8                  r| t        t        z  z   S |S | j                  t              j!                  ||||	      S |S r7  )rg  r8  ri   r   r   r   rJ  r0   r   r:  r   r;  r   r   r   rX   r  r<  r   r=  rB  r   rz   r/  r   r   r   r   ry   r>  s                   r3   r  zacsch._eval_nseries  sq   (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ad0CD<<>$q')113C++-$$Q,335==?!AqD!*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ad0CD<<>$q')113C;;=%%a-446>>@1QT1:MM$$T1=1$$$J !dAg+!:!:99Q<##Att;D$x##d8''4!B$;& 
 D%%d8''4!B$;& 
 ||C(66q!$T6RR
rC   c                     t         S ro   r   rj   s     r3   rr   zacsch.inverse  r  rC   c                 H    t        d|z  t        d|dz  z  dz         z         S r  r  r   s      r3   r  zacsch._eval_rewrite_as_log  s'    1S54#q&1--..rC   c                     t        d|z        S r   rp   r   s      r3   r  zacsch._eval_rewrite_as_asinh  rF  rC   c                     t         t        dt         |z  z
        t        t         |z  dz
        z  t        t         |z  d      z  t        t        j
                  z  z
  z  S r  )r   r   r~   r   r   rA   r   s      r3   r  zacsch._eval_rewrite_as_acosh  sT    $q1S5y/$quqy/1 %aee <=?A!&&yI J 	JrC   c                     |dz  }|dz   }t        |       |z  t        t        j                  z  t        |dz         |z  t	        t        |            z  z
  z  S r   )r   r   r   rA   r   )rk   r]   r   arg2arg2p1s        r3   r  zacsch._eval_rewrite_as_atanh  s^    AvTE{3166	 $faiZ 0 7d6l8K K!L M 	MrC   c                 4    | j                   d   j                  S r   )ri   rS  r   s    r3   r  zacsch._eval_is_zero  s    yy|'''rC   c                 4    | j                   d   j                  S r   r   r   s    r3   r   zacsch._eval_is_extended_real  r  rC   c                 F    t        | j                  d   j                        S r   rN  r   s    r3   r   zacsch._eval_is_finite  rO  rC   r  r   r  )rQ   rR   rS   rT   rm   r  r   r	  r   r   r   r  rr   r  r   r  r  r  r  r   r   rB   rC   r3   rJ  rJ     s}    #J5  B @  @ :.`/ "6JM(-/rC   rJ  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/   rd   rf   rh   r   r   r  r   r+  r  rq   r~   r   r   r/  rJ  rB   rC   r3   <module>rn     s   * *  < 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   