
    MZdD                       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 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.m/Z/m0Z0m1Z1m2Z2 d dl3m4Z4 d Z5ed        Z6ed        Z7ed        Z8 G d de      Z9d Z: G d de9      Z; G d de9      Z< G d de9      Z= G d de9      Z> G d de9      Z? G d  d!e?      Z@ G d" d#e?      ZA G d$ d%e      ZB G d& d'eB      ZC G d( d)eB      ZD G d* d+eB      ZE G d, d-eB      ZF G d. d/eB      ZG G d0 d1eB      ZHy2)3    )Ssympifycacheit)Add)FunctionArgumentIndexError)fuzzy_or	fuzzy_and	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     G/usr/lib/python3/dist-packages/sympy/functions/elementary/hyperbolic.py_rewrite_hyperbolics_as_expr3      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        r2   _acosh_tablerC      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^+) rB   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 )Nr6   r:   r=   r5   r;   
   r<   r9   r7   )r   r   r   r   r   rA   rB   r2   _acsch_tablerI   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''
 
rB   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 )Nr6   r5   r:   r=   r?   r;   rE   	   r<   rG   r>   r7   r9   r8   )r   r   r   r   r   InfinityNegativeInfinityrA   rB   r2   _asech_tablerN   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
 	
rB   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__
unbranchedrA   rB   r2   r.   r.   j   s     JrB   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Zeror@   )argipiaKpm1m2s          r2   _peeloff_ipirc   w   s    " Q$C]]3 	8AXX>>#DAqCxAMM	 AFF{
aff*B	
RBC<rB   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.
        r5   r   )coshargsr   selfargindexs     r2   fdiffz
sinh.fdiff   s+     q=		!%%$T844rB   c                     t         S z7
        Returns the inverse of this function.
        asinhri   s     r2   inversezsinh.inverse   	     rB   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   r5   r6   )	is_Numberr   NaNrL   rM   is_zeror[   is_negativeComplexInfinityr(   r   r&   could_extract_minus_signis_Addrc   r   re   rg   funcrp   rh   acoshr   atanhacoth)clsr\   i_coeffxms        r2   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 !rB   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   r6   rG   r5   r   r[   r   lenr   nr   previous_termsr`   s       r2   taylor_termzsinh.taylor_term   sl     q5AEQJ66M
A>"Q&"2&1a4x1a!e9--1v	!,,rB   c                 Z    | j                  | j                  d   j                               S Nr   r|   rh   	conjugaterj   s    r2   _eval_conjugatezsinh._eval_conjugate   "    yy1//122rB   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
rh   is_extended_realexpandr   r[   as_real_imagre   r"   rg   r&   rj   deephintsr   r   s        r2   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3rB   c                 H     | j                   dd|i|\  }}||t        z  z   S Nr   rA   r   r   rj   r   r   re_partim_parts        r2   _eval_expand_complexzsinh._eval_expand_complex  0    ,4,,@$@%@""rB   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rationalr5   )trig)
rh   r   r{   rY   as_coeff_Mulr   rW   
is_Integerre   rg   rj   r   r   r\   r   ycoefftermss           r2   _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rB   Nc                 8    t        |      t        |       z
  dz  S Nr6   r   rj   r\   limitvarkwargss       r2   _eval_rewrite_as_tractablezsinh._eval_rewrite_as_tractable&      C3t9$))rB   c                 8    t        |      t        |       z
  dz  S r   r   rj   r\   r   s      r2   _eval_rewrite_as_expzsinh._eval_rewrite_as_exp)  r   rB   c                 6    t          t        t         |z        z  S r+   r   r&   r   s      r2   _eval_rewrite_as_sinzsinh._eval_rewrite_as_sin,      rCCL  rB   c                 6    t          t        t         |z        z  S r+   r   r$   r   s      r2   _eval_rewrite_as_csczsinh._eval_rewrite_as_csc/  r   rB   c                 J    t          t        |t        t         z  dz  z         z  S r   r   rg   r   r   s      r2   _eval_rewrite_as_coshzsinh._eval_rewrite_as_cosh2       r$sRT!V|$$$rB   c                 V    t        t        j                  |z        }d|z  d|dz  z
  z  S Nr6   r5   tanhr   r@   rj   r\   r   	tanh_halfs       r2   _eval_rewrite_as_tanhzsinh._eval_rewrite_as_tanh5  s,    $	{A	1,--rB   c                 V    t        t        j                  |z        }d|z  |dz  dz
  z  S r   cothr   r@   rj   r\   r   	coth_halfs       r2   _eval_rewrite_as_cothzsinh._eval_rewrite_as_coth9  s,    $	{IqL1,--rB   c                     dt        |      z  S Nr5   cschr   s      r2   _eval_rewrite_as_cschzsinh._eval_rewrite_as_csch=      49}rB   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)
rh   as_leading_termsubsr   rv   limitrx   rw   	is_finiter|   rj   r   r   r   r\   arg0s         r2   _eval_as_leading_termzsinh._eval_as_leading_term@  s    iil**14d*Cxx1~155=99Qd.>.>sC9HD<<J^^99T?"KrB   c                     | j                   d   }|j                  ry|j                         \  }}|t        z  j                  S Nr   Trh   is_realr   r   rw   rj   r\   r   r   s       r2   _eval_is_realzsinh._eval_is_realM  s;    iil;; !!#B2rB   c                 8    | j                   d   j                  ryy r   rh   r   r   s    r2   _eval_is_extended_realzsinh._eval_is_extended_realW      99Q<(( )rB   c                 h    | j                   d   j                  r| j                   d   j                  S y r   rh   r   is_positiver   s    r2   _eval_is_positivezsinh._eval_is_positive[  ,    99Q<((99Q<+++ )rB   c                 h    | j                   d   j                  r| j                   d   j                  S y r   rh   r   rx   r   s    r2   _eval_is_negativezsinh._eval_is_negative_  r   rB   c                 8    | j                   d   }|j                  S r   rh   r   rj   r\   s     r2   _eval_is_finitezsinh._eval_is_finitec      iil}}rB   c                 j    t        | j                  d         \  }}|j                  r|j                  S y r   )rc   rh   rw   
is_integerrj   restipi_mults      r2   _eval_is_zerozsinh._eval_is_zerog  s0    %diil3h<<&&& rB   r5   Tr+   r   )rP   rQ   rR   rS   rl   rq   classmethodr   staticmethodr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  rA   rB   r2   re   re      s    &5 .5 .5` -  -34 #"**!!%..,,'rB   re   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	)rg   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        | |      Nr5   r   re   rh   r   ri   s     r2   rl   z
cosh.fdiff  s)    q=		!%%$T844rB   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"   r5   r6   )(sympy.functions.elementary.trigonometricr"   ru   r   rv   rL   rM   rw   rW   rx   ry   r(   rz   r{   rc   r   r   rg   re   r|   rp   r   rh   r}   r~   r   )r   r\   r"   r   r   r   s         r2   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 !rB   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   r6   r5   rG   r   r   s       r2   r   zcosh.taylor_term  sl     q5AEQJ66M
A>"Q&"2&1a4x1a!e9--1vil**rB   c                 Z    | j                  | j                  d   j                               S r   r   r   s    r2   r   zcosh._eval_conjugate  r   rB   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   )
rh   r   r   r   r[   r   rg   r"   re   r&   r   s        r2   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3rB   c                 H     | j                   dd|i|\  }}||t        z  z   S r   r   r   s        r2   r   zcosh._eval_expand_complex  r   rB   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   )
rh   r   r{   rY   r   r   rW   r   rg   re   r   s           r2   r   zcosh._eval_expand_trig  r   rB   Nc                 8    t        |      t        |       z   dz  S r   r   r   s       r2   r   zcosh._eval_rewrite_as_tractable  r   rB   c                 8    t        |      t        |       z   dz  S r   r   r   s      r2   r   zcosh._eval_rewrite_as_exp  r   rB   c                 &    t        t        |z        S r+   r"   r   r   s      r2   _eval_rewrite_as_coszcosh._eval_rewrite_as_cos      1s7|rB   c                 ,    dt        t        |z        z  S r   r%   r   r   s      r2   _eval_rewrite_as_seczcosh._eval_rewrite_as_sec      3q3w<rB   c                 J    t          t        |t        t         z  dz  z         z  S r   r   re   r   r   s      r2   _eval_rewrite_as_sinhzcosh._eval_rewrite_as_sinh  r   rB   c                 V    t        t        j                  |z        dz  }d|z   d|z
  z  S r   r   r   s       r2   r   zcosh._eval_rewrite_as_tanh  s,    $a'	II..rB   c                 V    t        t        j                  |z        dz  }|dz   |dz
  z  S r   r   r   s       r2   r   zcosh._eval_rewrite_as_coth  s,    $a'	A	A..rB   c                     dt        |      z  S r   sechr   s      r2   _eval_rewrite_as_sechzcosh._eval_rewrite_as_sech  r   rB   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   )rh   r   r   r   rv   r   rx   rw   rW   r   r|   r   s         r2   r   zcosh._eval_as_leading_term  s    iil**14d*Cxx1~155=99Qd.>.>sC9HD<<55L^^99T?"KrB   c                     | j                   d   }|j                  s|j                  ry|j                         \  }}|t        z  j
                  S r   )rh   r   is_imaginaryr   r   rw   r   s       r2   r   zcosh._eval_is_real  sE    iil ;;#**
 !!#B2rB   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   r6   TFr7   rh   r   r   rw   r	   r
   rj   zr   r   ymodyzeroxzeros          r2   r   zcosh._eval_is_positive  s     IIaL~~1AbDz		E>LdRTk4!B$q&=9: 	  	rB   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 r,  r-  r.  s          r2   _eval_is_nonnegativezcosh._eval_is_nonnegative?  s    IIaL~~1AbDz		E>LdbdlDAbDFN;< 	  	rB   c                 8    | j                   d   }|j                  S r   r   r   s     r2   r   zcosh._eval_is_finiteY  r   rB   c                     t        | j                  d         \  }}|r*|j                  r|t        j                  z
  j
                  S y y r   )rc   rh   rw   r   r@   r  r  s      r2   r  zcosh._eval_is_zero]  s=    %diil3hqvv%111 %8rB   r  r  r+   r   )rP   rQ   rR   rS   rl   r  r   r	  r   r   r   r   r   r   r   r   r  r  r!  r   r   r'  r   r   r   r4  r   r  rA   rB   r2   rg   rg   m  s    &5 -5 -5^ 
+  
+34#"** %//@42rB   rg   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	        | |      Nr5   r   r6   )r   rW   r   rh   r   ri   s     r2   rl   z
tanh.fdiffw  s7    q=554		!-q000$T844rB   c                     t         S rn   r~   ri   s     r2   rq   ztanh.inverse}  rr   rB   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 rt   )ru   r   rv   rL   rW   rM   NegativeOnerw   r[   rx   ry   r(   rz   r   r'   r{   rc   r   r   r   r|   rp   rh   r   r}   r~   r   )r   r\   r   r   r   tanhms         r2   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 !}$ !rB   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   r6   r5   )r   r[   r   r   r   )r   r   r   r^   BFs         r2   r   ztanh.taylor_term  so     q5AEQJ66M
AAE
A!a% A!a% Aa!e9q=?QT))rB   c                 Z    | j                  | j                  d   j                               S r   r   r   s    r2   r   ztanh._eval_conjugate  r   rB   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   r6   r   )rj   r   r   r   r   denoms         r2   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)>??rB   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   Fevaluater5   r6   )rh   r{   r   r   r   ranger)   rX   r   r   r   r   )rj   r   r\   r   r   TXr`   ir   r   Tkds                r2   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   rj   r\   r   r   neg_exppos_exps         r2   r   ztanh._eval_rewrite_as_tractable  *    t9c#h'!Gg$566rB   c                 F    t        |       t        |      }}||z
  ||z   z  S r+   r   rj   r\   r   rQ  rR  s        r2   r   ztanh._eval_rewrite_as_exp  rS  rB   c                 6    t          t        t         |z        z  S r+   )r   r'   r   s      r2   _eval_rewrite_as_tanztanh._eval_rewrite_as_tan  r   rB   c                 6    t          t        t         |z        z  S r+   )r   r#   r   s      r2   _eval_rewrite_as_cotztanh._eval_rewrite_as_cot  r   rB   c                 `    t         t        |      z  t        t        t         z  dz  |z
        z  S r   r   r   s      r2   r!  ztanh._eval_rewrite_as_sinh  s&    c{41Q---rB   c                 `    t         t        t        t         z  dz  |z
        z  t        |      z  S r   r   r   s      r2   r   ztanh._eval_rewrite_as_cosh  s'    bd1fsl##DI--rB   c                     dt        |      z  S r   r   r   s      r2   r   ztanh._eval_rewrite_as_coth      c{rB   c                     ddl m} | j                  d   j                  |      }||j                  v r |d|      j                  |      r|S | j                  |      S Nr   )Orderr5   sympy.series.orderra  rh   r   free_symbolscontainsr|   rj   r   r   r   ra  r\   s         r2   r   ztanh._eval_as_leading_term  sQ    ,iil**1-   U1a[%9%9#%>J99S>!rB   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   Tr6   r   r   s       r2   r   ztanh._eval_is_real  s[    iil;;!!#B 7rBw"Q$ bd$$$rB   c                 8    | j                   d   j                  ryy r   r   r   s    r2   r   ztanh._eval_is_extended_real  r   rB   c                 h    | j                   d   j                  r| j                   d   j                  S y r   r   r   s    r2   r   ztanh._eval_is_positive  r   rB   c                 h    | j                   d   j                  r| j                   d   j                  S y r   r   r   s    r2   r   ztanh._eval_is_negative"  r   rB   c                     | j                   d   }|j                         \  }}t        |      dz  t        |      dz  z   }|dk(  ry|j                  ry|j
                  ryy )Nr   r6   FT)rh   r   r"   re   	is_numberr   )rj   r\   r   r   rE  s        r2   r   ztanh._eval_is_finite&  s`    iil!!#BB
T"Xq[(A:__  rB   c                 <    | j                   d   }|j                  ryy r   rh   rw   r   s     r2   r  ztanh._eval_is_zero2  s    iil;; rB   r  r  r+   r   )rP   rQ   rR   rS   rl   rq   r  r   r	  r   r   r   r   r   r   r   rW  rY  r!  r   r   r   r   r   r   r   r   r  rA   rB   r2   r   r   c  s    &5 2% 2%h *  *3@&77!!.."%,,
rB   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        | |      )Nr5   r8   r   r6   r  ri   s     r2   rl   z
coth.fdiffL  s3    q=d499Q<(!+++$T844rB   c                     t         S rn   )r   ri   s     r2   rq   zcoth.inverseR  rr   rB   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 rt   )ru   r   rv   rL   rW   rM   r=  rw   ry   rx   r(   rz   r   r#   r{   rc   r   r   r   r|   rp   rh   r   r}   r~   r   )r   r\   r   r   r   cothms         r2   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{" !rB   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 rt   r   r   r[   r   r   r   r   r   rA  rB  s        r2   r   zcoth.taylor_term  sx     6wqz>!Ua!eqj66M
A!a% A!a% Aq1u:>!#ad**rB   c                 Z    | j                  | j                  d   j                               S r   r   r   s    r2   r   zcoth._eval_conjugate  r   rB   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   r6   )r  r"   r&   rh   r   r   r   r[   r   re   rg   )rj   r   r   r"   r&   r   r   rE  s           r2   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%)?@@rB   Nc                 F    t        |       t        |      }}||z   ||z
  z  S r+   r   rP  s         r2   r   zcoth._eval_rewrite_as_tractable  rS  rB   c                 F    t        |       t        |      }}||z   ||z
  z  S r+   r   rU  s        r2   r   zcoth._eval_rewrite_as_exp  rS  rB   c                 b    t          t        t        t         z  dz  |z
        z  t        |      z  S r   r   r   s      r2   r!  zcoth._eval_rewrite_as_sinh  s)    r$r!tAv|$$T#Y..rB   c                 b    t          t        |      z  t        t        t         z  dz  |z
        z  S r   r   r   s      r2   r   zcoth._eval_rewrite_as_cosh  s(    r$s)|DAa#...rB   c                     dt        |      z  S r   r   r   s      r2   r   zcoth._eval_rewrite_as_tanh  r^  rB   c                 h    | j                   d   j                  r| j                   d   j                  S y r   r   r   s    r2   r   zcoth._eval_is_positive  r   rB   c                 h    | j                   d   j                  r| j                   d   j                  S y r   r   r   s    r2   r   zcoth._eval_is_negative  r   rB   c                     ddl m} | j                  d   j                  |      }||j                  v r |d|      j                  |      rd|z  S | j                  |      S r`  rb  rf  s         r2   r   zcoth._eval_as_leading_term  sU    ,iil**1-   U1a[%9%9#%>S5L99S>!rB   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   FrG  r8   r6   r5   Tr   )rh   r{   r   r   r   rI  appendr)   r   rX   r   r   r   )
rj   r   r\   r   CXr`   r   rK  r   cs
             r2   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   )rP   rQ   rR   rS   rl   rq   r  r   r	  r   r   r   r   r   r   r!  r   r   r   r   r   r   rA   rB   r2   r   r   8  sz    &5 2# 2#h +  +3A77//,,"rB   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 )Nrq   r   r5   )rz   r  r  _reciprocal_ofr   hasattrrq   rh   )r   r\   ts      r2   r   z!ReciprocalHyperbolicFunction.eval  s    '')||C4y {{SD	z!##C(3	"s{{}';88A;mqs**rB   c                 b    | j                  | j                  d         } t        ||      |i |S r   )r  rh   getattr)rj   method_namerh   r   os        r2   _call_reciprocalz-ReciprocalHyperbolicFunction._call_reciprocal  s3    		!-&wq+&777rB   c                 @     | j                   |g|i |}|d|z  S |S r   )r  )rj   r  rh   r   r  s        r2   _calculate_reciprocalz2ReciprocalHyperbolicFunction._calculate_reciprocal  s3     "D!!+???mqs**rB   c                 `    | j                  ||      }||| j                  |      k7  rd|z  S y y r   )r  r  )rj   r  r\   r  s       r2   _rewrite_reciprocalz0ReciprocalHyperbolicFunction._rewrite_reciprocal  s=     !!+s3=Q$"5"5c"::Q3J ;=rB   c                 &    | j                  d|      S )Nr   r  r   s      r2   r   z1ReciprocalHyperbolicFunction._eval_rewrite_as_exp  s    ''(>DDrB   c                 &    | j                  d|      S )Nr   r  r   s       r2   r   z7ReciprocalHyperbolicFunction._eval_rewrite_as_tractable  s    ''(DcJJrB   c                 &    | j                  d|      S )Nr   r  r   s      r2   r   z2ReciprocalHyperbolicFunction._eval_rewrite_as_tanh      ''(?EErB   c                 &    | j                  d|      S )Nr   r  r   s      r2   r   z2ReciprocalHyperbolicFunction._eval_rewrite_as_coth  r  rB   c                 f     d| j                  | j                  d         z  j                  |fi |S r  )r  rh   r   )rj   r   r   s      r2   r   z)ReciprocalHyperbolicFunction.as_real_imag  s2    CD''		!55CCDRERRrB   c                 Z    | j                  | j                  d   j                               S r   r   r   s    r2   r   z,ReciprocalHyperbolicFunction._eval_conjugate  r   rB   c                 H     | j                   dddi|\  }}|t        |z  z   S )Nr   TrA   r   r   s        r2   r   z1ReciprocalHyperbolicFunction._eval_expand_complex  s0    ,4,,@$@%@7""rB   c                 &     | j                   di |S )N)r   )r  )rj   r   s     r2   r   z.ReciprocalHyperbolicFunction._eval_expand_trig!  s    )t))GGGrB   c                 b    d| j                  | j                  d         z  j                  |      S r  )r  rh   r   )rj   r   r   r   s       r2   r   z2ReciprocalHyperbolicFunction._eval_as_leading_term$  s+    $%%diil33JJ1MMrB   c                 R    | j                  | j                  d         j                  S r   )r  rh   r   r   s    r2   r   z3ReciprocalHyperbolicFunction._eval_is_extended_real'  s!    ""499Q<0AAArB   c                 X    d| j                  | j                  d         z  j                  S r  )r  rh   r   r   s    r2   r   z,ReciprocalHyperbolicFunction._eval_is_finite*  s&    $%%diil33>>>rB   r+   r  r   )rP   rQ   rR   rS   r  r  r   __annotations__r  r  r   r  r  r  r   r   r   r   r   r   r   r   r   r   r   rA   rB   r2   r  r    s    G NHiGY
+ 
+8
+EKFFS3#HNB?rB   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
        r5   r   )r   rh   r   r   ri   s     r2   rl   z
csch.fdiffE  s@     q=1&&diil);;;$T844rB   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   r5   r6   ru  rv  s        r2   r   zcsch.taylor_termN  s}     6WQZ<Ua!eqj66M
A!a% A!a% AAqD>A%a'!Q$..rB   c                 4    t         t        t         |z        z  S r+   r   r   s      r2   r   zcsch._eval_rewrite_as_sin`      3q3w<rB   c                 4    t         t        t         |z        z  S r+   r   r   s      r2   r   zcsch._eval_rewrite_as_cscc  r  rB   c                 H    t         t        |t         t        z  dz  z         z  S r   r   r   s      r2   r   zcsch._eval_rewrite_as_coshf  s    4a"fqj()))rB   c                     dt        |      z  S r   re   r   s      r2   r!  zcsch._eval_rewrite_as_sinhi  r   rB   c                 h    | j                   d   j                  r| j                   d   j                  S y r   r   r   s    r2   r   zcsch._eval_is_positivel  r   rB   c                 h    | j                   d   j                  r| j                   d   j                  S y r   r   r   s    r2   r   zcsch._eval_is_negativep  r   rB   Nr  )rP   rQ   rR   rS   re   r  r  rl   r	  r   r   r   r   r   r!  r   r   rA   rB   r2   r   r   .  sR    & NG5 /  /   *,,rB   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   rh   r&  r   ri   s     r2   rl   z
sech.fdiff  s>    q=$))A,''TYYq\(:::$T844rB   c                     | dk  s| dz  dk(  rt         j                  S t        |      }t        |       t	        |       z  || z  z  S r@  )r   r[   r   r   r   r   r   r   s      r2   r   zsech.taylor_term  sC     q5AEQJ66M
A8il*QV33rB   c                 ,    dt        t        |z        z  S r   r  r   s      r2   r  zsech._eval_rewrite_as_cos  r  rB   c                 &    t        t        |z        S r+   r  r   s      r2   r  zsech._eval_rewrite_as_sec  r  rB   c                 H    t         t        |t         t        z  dz  z         z  S r   r   r   s      r2   r!  zsech._eval_rewrite_as_sinh  s    4a"fai(((rB   c                     dt        |      z  S r   rg   r   s      r2   r   zsech._eval_rewrite_as_cosh  r   rB   c                 8    | j                   d   j                  ryy r   r   r   s    r2   r   zsech._eval_is_positive  r   rB   Nr  )rP   rQ   rR   rS   rg   r  r  rl   r	  r   r   r  r  r!  r   r   rA   rB   r2   r&  r&  u  sM    & NH5 4  4 )rB   r&  c                       e Zd ZdZy)InverseHyperbolicFunctionz,Base class for inverse hyperbolic functions.N)rP   rQ   rR   rS   rA   rB   r2   r  r    s    6rB   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y)rp   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        | |      r9  )r   rh   r   ri   s     r2   rl   zasinh.fdiff  s7    q=T$))A,/A-...$T844rB   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 )Nr6   r5   r   TF)ru   r   rv   rL   rM   rw   r[   rW   r   r   r=  rx   ry   r(   r   r    rz   
isinstancere   rh   rl  r   r   r   r   is_even)	r   r\   r   r/  rrK  fr   evens	            r2   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 # "/} &; rB   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   r6   rG   r5   )r   r[   r   r   r   r@   r   r=  r   r   r   r`   rM  RrB  s          r2   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::rB   Nc                    | j                   d   }|j                  |d      j                         }|j                  r|j	                  |      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   r5   r6   )rh   r   cancelrw   r   r   r   ry   r/   r   r   rx   r   r   r   r   r|   r   rj   r   r   r   r\   x0ndirs          r2   r   zasinh._eval_as_leading_term  s2   iilXXa^""$::&&q))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}rB   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   r5   r6   )rh   r   r   r/   r   _eval_nseriesr   r   ry   rx   r   r   r   r   r   	rj   r   r   r   r   r\   r   resr  s	            r2   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
rB   c                 <    t        |t        |dz  dz         z         S r   r   r   rj   r   r   s      r2   _eval_rewrite_as_logzasinh._eval_rewrite_as_log>  s    1tAqD1H~%&&rB   c                 <    t        |t        d|dz  z         z        S Nr5   r6   )r~   r   r  s      r2   _eval_rewrite_as_atanhzasinh._eval_rewrite_as_atanhC  s    QtA1H~%&&rB   c                     t         |z  }t         t        d|z
        t        |dz
        z  t        |      z  t        dz  z
  z  S r  )r   r   r}   r   )rj   r   r   ixs       r2   _eval_rewrite_as_acoshzasinh._eval_rewrite_as_acoshF  s=    qS$q2v,tBF|+eBi7"Q$>??rB   c                 6    t          t        t         |z        z  S r+   )r   r    r  s      r2   _eval_rewrite_as_asinzasinh._eval_rewrite_as_asinJ  s    rDQKrB   c                 V    t         t        t         |z        z  t         t        z  dz  z
  S r   )r   r   r   r  s      r2   _eval_rewrite_as_acoszasinh._eval_rewrite_as_acosM  s!    4A;2a''rB   c                     t         S rn   r  ri   s     r2   rq   zasinh.inverseP  	     rB   c                 4    | j                   d   j                  S r   rn  r   s    r2   r  zasinh._eval_is_zeroV  s    yy|###rB   r  r   r   )rP   rQ   rR   rS   rl   r  r   r	  r   r   r   r  r  r   r  r  r  r  rq   r  rA   rB   r2   rp   rp     ss    *5 + +Z ;  ;*2' "6'@ ($rB   rp   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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  rh   r   r   )rj   rk   r\   s      r2   rl   zacosh.fdiffp  sC    q=))A,Cd37mDqM122$T844rB   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 )Nr6   r   TF)ru   r   rv   rL   rM   rw   r   r   rW   r[   r=  rl  rC   r   ry   r@   r  rg   rh   r   r   r   r   r  is_nonnegativerx   is_nonpositiver   )	r   r\   	cst_tabler/  r  rK  r  r   r  s	            r2   r   z
acosh.evalw  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	  '	 # "/} &; rB   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   r@   r   r  s          r2   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,,rB   Nc                    | j                   d   }|j                  |d      j                         }|t        j                   t        j
                  t        j                  t        j                  fv r'| j                  t              j                  |||      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  )rh   r   r  r   rW   r[   ry   r/   r   r   rx   r   r   r|   r   r   r   r  s          r2   r   zacosh._eval_as_leading_term  s   iilXXa^""$155&!&&!%%):):;;<<$::14d:SSF771dd2D$x##F''99R=1Q3r611		"~%X))||C(>>qtRV>WWyy}rB   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  rh   r   r   rW   r=  r/   r   r  r   ry   rx   r   r   r   r   r   r  s	            r2   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
rB   c                 T    t        |t        |dz         t        |dz
        z  z         S r   r  r  s      r2   r  zacosh._eval_rewrite_as_log  s'    1tAE{T!a%[0011rB   c                 T    t        |dz
        t        d|z
        z  t        |      z  S r   )r   r   r  s      r2   r  zacosh._eval_rewrite_as_acos  s&    AE{4A;&a00rB   c                 h    t        |dz
        t        d|z
        z  t        dz  t        |      z
  z  S r  )r   r   r    r  s      r2   r  zacosh._eval_rewrite_as_asin  s.    AE{4A;&"Q$a.99rB   c                     t        |dz
        t        d|z
        z  t        dz  t        t        t        |z        z  z   z  S r  )r   r   r   rp   r  s      r2   _eval_rewrite_as_asinhzacosh._eval_rewrite_as_asinh  s7    AE{4A;&"Q$51:*=>>rB   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~   )rj   r   r   sxm1s1mxsx2m1s         r2   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 	9rB   c                     t         S rn   r  ri   s     r2   rq   zacosh.inverse  r  rB   c                 >    | j                   d   dz
  j                  ryy )Nr   r5   Trn  r   s    r2   r  zacosh._eval_is_zero  s     IIaL1%% &rB   r  r   r  )rP   rQ   rR   rS   rl   r  r   r	  r   r   r   r  r  r   r  r  r  r  rq   r  rA   rB   r2   r}   r}   Z  sr    *5 4! 4!l -  - ".2 "61:?9rB   r}   c                   v    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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        | |      r9  rh   r   ri   s     r2   rl   zatanh.fdiff  2    q=a$))A,/)**$T844rB   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   AccumBoundsr6   TF)ru   r   rv   rw   r[   rW   rL   r=  rM   r   r!   rx   ry   !sympy.calculus.accumulationboundsr  r   r(   rz   r  r   rh   rl  r   r   r   r  )
r   r\   r  r   r/  r  rK  r  r  r   s
             r2   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:% # "/} &; rB   c                 b    | dk  s| dz  dk(  rt         j                  S t        |      }|| z  | z  S Nr   r6   )r   r[   r   r  s      r2   r   zatanh.taylor_termQ  s4     q5AEQJ66M
Aa4!8OrB   Nc                    | j                   d   }|j                  |d      j                         }|j                  r|j	                  |      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  )rh   r   r  rw   r   r   rW   ry   r/   r   r   rx   r   r   r|   r   r   r   r  s          r2   r   zatanh._eval_as_leading_termZ  s*   iilXXa^""$::&&q))155&!%%!2!233<<$::14d:SSAI""771dd2D$x##>>99R=1R4//D%%>>99R=1R4//||C(>>qtRV>WWyy}rB   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	            r2   r  zatanh._eval_nserieso  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
rB   c                 B    t        d|z         t        d|z
        z
  dz  S r  r   r  s      r2   r  zatanh._eval_rewrite_as_log  s"    AE
SQZ'1,,rB   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   rp   )rj   r   r   r  s       r2   r  zatanh._eval_rewrite_as_asinh  sm    AqD1H1aadUm$aRa!Q$h'Q/1%(:; 	<rB   c                 8    | j                   d   j                  ryy r   rn  r   s    r2   r  zatanh._eval_is_zero  s    99Q<  rB   c                 4    | j                   d   j                  S r   )rh   r*  r   s    r2   _eval_is_imaginaryzatanh._eval_is_imaginary  s    yy|(((rB   c                     t         S rn   r~  ri   s     r2   rq   zatanh.inverse  r  rB   r  r   r  )rP   rQ   rR   rS   rl   r  r   r	  r   r   r   r  r  r   r  r  r  rq   rA   rB   r2   r~   r~     sh    &5 ,& ,&\   *2- "6<
)rB   r~   c                   p    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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        | |      r9  r  ri   s     r2   rl   zacoth.fdiff  r  rB   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   )ru   r   rv   rL   r[   rM   rw   r   r   rW   r=  rx   ry   r(   r   rz   r@   )r   r\   r   s      r2   r   z
acoth.eval  s   ==aee|uu

"vv***vv!taxzz!%)))SD	z!a'''vv4S9G"rDM))//1I:%;;a4; rB   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      r2   r   zacoth.taylor_term  sJ     62b57NUa!eqj66M
Aa4!8OrB   Nc                 6   | j                   d   }|j                  |d      j                         }|t        j                  u rd|z  j                  |      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   r5   r   r6   )rh   r   r  r   ry   r   rW   r[   r/   r   r   r   r   r   r   rx   r|   r   r   r  s          r2   r   zacoth._eval_as_leading_term  s9   iilXXa^""$"""cE**1--155&!%%((<<$::14d:SS::1r1u911771dd2D$x##>>99R=1R4//D%%>>99R=1R4//||C(>>qtRV>WWyy}rB   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  )rh   r   r   rW   r=  r/   r   r  r   ry   r   r   r   r   rx   r   r   r  s	            r2   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
rB   c                 N    t        dd|z  z         t        dd|z  z
        z
  dz  S r  r	  r  s      r2   r  zacoth._eval_rewrite_as_log  s*    A!Gs1qs7|+q00rB   c                     t        d|z        S r   r;  r  s      r2   r  zacoth._eval_rewrite_as_atanh  s    QqSzrB   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   rp   r  s      r2   r  zacoth._eval_rewrite_as_asinh  s    1Qa!eQYQAY7$q1Q3w-QPQTUPUY:WWX$qAv,uT!QTAX,%7889 	:rB   c                     t         S rn   r]  ri   s     r2   rq   zacoth.inverse  r  rB   r  r   r  )rP   rQ   rR   rS   rl   r  r   r	  r   r   r   r  r  r   r  r  rq   rA   rB   r2   r   r     sb    &5  >   *21 "6:rB   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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        | |      Nr5   r   r8   r6   r  rj   rk   r/  s      r2   rl   zasech.fdiffL  s?    q=		!Aqa!Q$h'(($T844rB   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 )Nr6   r   r  )ru   r   rv   rL   r   r   rM   rw   rW   r[   r=  rl  rN   r   ry   r  r  )r   r\   r  r  s       r2   r   z
asech.evalS  s   ==aee|uu

"!tax***!taxzz!vv%!t==$Ii''$S>!++ ~%!###E["Q1---;;:: rB   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   r6   r5   rG   r9   r8   )r   r   r[   r   r   r   r@   r   r  s          r2   r   zasech.taylor_termr  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,,rB   Nc                    | j                   d   }|j                  |d      j                         }|t        j                   t        j
                  t        j                  t        j                  fv r'| j                  t              j                  |||      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  )rh   r   r  r   rW   r[   ry   r/   r   r   rx   r   r   r   r|   r   r   r  s          r2   r   zasech._eval_as_leading_term  s   iilXXa^""$155&!&&!%%):):;;<<$::14d:SS>>a"f11771dd2D$x##>>b1f%9%9 IIbM>)yy}qs2v--X))||C(>>qtRV>WWyy}rB   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)positiver6   r5   r  r   )rc  r#  rh   r   r   rW   r   r  r/   r   nseriesr   is_meromorphicr   r  removeOr   powsimpr=  r   r   r   ry   rx   r   r   r   rj   r   r   r   r   r#  r\   r   r  serarg1r  gres1r  r  s                   r2   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
rB   c                     t         S rn   r%  ri   s     r2   rq   zasech.inverse  r  rB   c                 f    t        d|z  t        d|z  dz
        t        d|z  dz         z  z         S r   r  r   s      r2   r  zasech._eval_rewrite_as_log  s3    1S54#	?T!C%!)_<<==rB   c                     t        d|z        S r   )r}   r   s      r2   r  zasech._eval_rewrite_as_acosh      QsU|rB   c                     t        d|z  dz
        t        dd|z  z
        z  t        t        t        |z        z  t        t        j
                  z  z   z  S r   )r   r   rp   r   r   r@   r   s      r2   r  zasech._eval_rewrite_as_asinh  sJ    AcEAItA#I.%#,24QVV)1< = 	=rB   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      r2   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rB   c                     t        d|z  dz
        t        dd|z  z
        z  t        dz  t        t        t        |z        z  z
  z  S r  )r   r   r   acschr  s      r2   _eval_rewrite_as_acschzasech._eval_rewrite_as_acsch  s?    AaC!G}T!ac']*BqD1U1Q3Z<,?@@rB   r  r   r  )rP   rQ   rR   rS   rl   r  r   r	  r   r   r   r  rq   r  r   r  r  r  r6  rA   rB   r2   r  r  &  sp    #J5  < -  - "+Z> "6=EArB   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y)r5  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        | |      r  r  r  s      r2   rl   zacsch.fdiff  sH    q=		!Aq!tDQq!tV,,--$T844rB   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  )ru   r   rv   rL   r[   rM   rw   ry   rW   r   r   r=  rl  rI   r   is_infiniterz   )r   r\   r  s      r2   r   z
acsch.eval	  s   ==aee|uu

"vv***vv(((1tAw;''%Qa[)))==$Ii ~a''!###66M??66M;;$$$'')I: *rB   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   r6   r5   rG   r9   )	r   r   r[   r   r   r   r@   r   r=  r  s          r2   r   zacsch.taylor_term+  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??rB   Nc                 6   | j                   d   }|j                  |d      j                         }|t         t        t        j
                  fv r'| j                  t              j                  |||      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  )rh   r   r  r   r   r[   r/   r   r   ry   r   r*  r   r   r   r   r|   r   rx   r  s          r2   r   zacsch._eval_as_leading_term=  s@   iilXXa^""$1"a <<$::14d:SS"""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}rB   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 r"  )rc  r#  rh   r   r   r   r5  r/   r   r%  r   r&  r   r   r   rW   r  r'  r   r(  r=  r   ry   r*  r   r   r   r   rx   r)  s                   r2   r  zacsch._eval_nseriesR  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
rB   c                     t         S rn   r   ri   s     r2   rq   zacsch.inverse  r  rB   c                 H    t        d|z  t        d|dz  z  dz         z         S r  r  r   s      r2   r  zacsch._eval_rewrite_as_log  s'    1S54#q&1--..rB   c                     t        d|z        S r   ro   r   s      r2   r  zacsch._eval_rewrite_as_asinh  r1  rB   c                     t         t        dt         |z  z
        t        t         |z  dz
        z  t        t         |z        z  t        t        j
                  z  z
  z  S r   )r   r   r}   r   r   r@   r   s      r2   r  zacsch._eval_rewrite_as_acosh  sN    $q1S5y/$quqy/1 %ae-/1!&&y9 : 	:rB   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   r@   r~   )rj   r\   r   arg2arg2p1s        r2   r  zacsch._eval_rewrite_as_atanh  s^    AvTE{3166	 $faiZ 0 7d6l8K K!L M 	MrB   c                 4    | j                   d   j                  S r   )rh   r:  r   s    r2   r  zacsch._eval_is_zero  s    yy|'''rB   r  r   r  )rP   rQ   rR   rS   rl   r  r   r	  r   r   r   r  rq   r  r   r  r  r  r  rA   rB   r2   r5  r5    sr    #J5  B @  @ *.`/ "6:M(rB   r5  N)I
sympy.corer   r   r   sympy.core.addr   sympy.core.functionr   r   sympy.core.logicr	   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)   r3   rC   rI   rN   r.   rc   re   rg   r   r   r  r   r&  r  rp   r}   r~   r   r  r5  rA   rB   r2   <module>rS     s   * *  < ; ; . . #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	 	a$% a$Hk% k\U% UpC% CLsA% sAl(% (rB   