
    gS                       d dl mZmZmZ d dlmZ d dlmZmZ d dl	m
Z
mZmZmZ d dlmZmZmZ d dlmZ d dlmZmZmZ d dlmZmZmZ d d	lmZmZmZ d d
l m!Z!m"Z"m#Z# d dl$m%Z% d dl&m'Z' d dl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3 d dl4m5Z5 d Z6ed             Z7ed             Z8ed             Z9 G d de          Z:d Z; G d de:          Z< G d de:          Z= G d de:          Z> G d de:          Z? G d de:          Z@ G d  d!e@          ZA G d" d#e@          ZB G d$ d%e          ZC G d& d'eC          ZD G d( d)eC          ZE G d* d+eC          ZF G d, d-eC          ZG G d. d/eC          ZH G d0 d1eC          ZId2S )3    )Ssympifycacheit)Add)FunctionArgumentIndexError)fuzzy_or	fuzzy_and	fuzzy_not	FuzzyBool)IpiRational)Dummy)binomial	factorialRisingFactorial)	bernoullieulernC)Absimre)explogmatch_real_imag)floor)sqrt)acosacotasinatancoscotcscsecsintan_imaginary_unit_as_coefficient)symmetric_polyc                 p    |                      d |                     t                    D                       S )Nc                 D    i | ]}||                     t                    S  )rewriter   ).0hs     a/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/functions/elementary/hyperbolic.py
<dictcomp>z/_rewrite_hyperbolics_as_exp.<locals>.<dictcomp>   s4     1 1 1 QYYs^^ 1 1 1    )xreplaceatomsHyperbolicFunction)exprs    r1   _rewrite_hyperbolics_as_expr8      sA    == 1 1.//1 1 1 2 2 2r3   c                     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   r-   r3   r1   _acosh_tablerF      s   	3q!d1gg+	
CAQK !! 	
1 	QHQNN*	
 	Q	2a4 
a
Bx1~~% 	
$q''	2a4 	477
Bx1~~% 	Q	2a4 
a
Bx1~~% 
a1d4jj "Xa__"4 q''A+tDzz!2hq"oo#5 	Qa[!RT 
a$q''k		1b!Q/ 	Qa[!RA.  
a$q''k		1b!Q/!" 
T!WWqay!2b5#$ d1gg+$q''	"BxB'7'7$7	a1aA
q''A+q"Xa^^+)  r3   c                   6   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 )Nr;   r?   rB   r:   r@   
   rA   r>   r<   )r   r   r   r   r   r-   r3   r1   _acsch_tablerL   3   s    sQwtAwwa !B38q477{ObS2XaC$q477{###bS1WaC"qd1qay=!!!B37d1ggIsQwtAwwqyM2b52:aC$q''MB37aC$q477{###RUQYd1qay=!!!2b519tAwwa !2b52:aDD1"S!DGG)Q'''
 
r3   c                     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 )Nr;   r:   r?   rB   rD   r@   rH   	   rA   rJ   rC   r<   r>   r=   )r   r   r   r   r   InfinityNegativeInfinityr-   r3   r1   _asech_tablerQ   F   s\   
"Q$(|c!d1gg+...
BAST!WW---
 !WWtAwwb
 !WWtAwwB	

 QtAwwYb
 !aQi-   !B$)
 Qa[!!!26
 a$q''k"""AbD1H
 QKa
 aL!B$(
 !WWq[26
 a[1R4!8
 GGR!V
 !WWHadQh
 QtAwwY2
  !aQi-   !B$)!
" aDD"q&#
$ qTTE1R4!8AQK!!1R4!8!Qa[/"""AbD1Ha[1R4!8$q''\AbD1H!WWtAww21ggXQ!B$)ajL2#a%!)a  "Q$(5
 
 	
r3   c                       e Zd ZdZdZdS )r6   ze
    Base class for hyperbolic functions.

    See Also
    ========

    sinh, cosh, tanh, coth
    TN)__name__
__module____qualname____doc__
unbranchedr-   r3   r1   r6   r6   j   s          JJJr3   r6   c                 (   t           t          z  }t          j        |           D ]C}||k    rt          j        } n<|j        r&|                                \  }}||k    r	|j        r nD| 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ZerorE   )argipiaKpm1m2s          r1   _peeloff_ipirf   w   s    " Q$C]3 	 	88AEX 	>>##DAqCxxAMxAF{
af*B	
RBC<r3   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dS )!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
    r:   c                 b    |dk    rt          | j        d                   S t          | |          )z@
        Returns the first derivative of this function.
        r:   r   )coshargsr   selfargindexs     r1   fdiffz
sinh.fdiff   s1     q==	!%%%$T8444r3   c                     t           S z7
        Returns the inverse of this function.
        asinhrl   s     r1   inversezsinh.inverse   	     r3   c                 x   |j         rw|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 d S |t          j        u rt          j        S t          |          }|t          t          |          z  S |                                r | |            S |j        ret          |          \  }}|rQ|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    r2|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    r5|j        d         }dt-          |dz
            t-          |dz             z  z  S d S Nr   r:   r;   )	is_Numberr   NaNrO   rP   is_zeror^   is_negativeComplexInfinityr)   r   r'   could_extract_minus_signis_Addrf   r   rh   rj   funcrs   rk   acoshr   atanhacoth)clsr_   i_coeffxms        r1   evalz	sinh.eval   s   = -	5ae||u
""z!***)) "v "SD		z!" " a'''u4S99G"3w<<''//11 &CII:%z =#C((1 ="QA77477?T!WWT!WW_<<{ vx5  x{"x5  HQKAE{{T!a%[[00x5  HQKa!Q$h''x5  HQK$q1u++QU344 ! r3   c                     | dk     s	| dz  dk    rt           j        S t          |          }t          |          dk    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   r;   rJ   r:   r   r^   r   lenr   nr   previous_termsrc   s       r1   taylor_termzsinh.taylor_term   sx     q55AEQJJ6M

A>""Q&&"2&1a4x1a!e9--1v	!,,r3   c                 f    |                      | j        d                                                   S Nr   r   rk   	conjugaterm   s    r1   _eval_conjugatezsinh._eval_conjugate   &    yy1//11222r3   Tc                    | j         d         j        r/|rd|d<    | j        |fi |t          j        fS | t          j        fS |r/ | j         d         j        |fi |                                \  }}n"| j         d                                         \  }}t          |          t          |          z  t          |          t          |          z  fS )z@
        Returns this function as a complex coordinate.
        r   Fcomplex
rk   is_extended_realexpandr   r^   as_real_imagrh   r#   rj   r'   rm   deephintsr   r   s        r1   r   zsinh.as_real_imag  s     9Q<( 	& &#(i #D22E22AF;;af~% 	1(TYq\(7777DDFFFBYq\..00FBRR $r((3r77"233r3   c                 @     | j         dd|i|\  }}||t          z  z   S Nr   r-   r   r   rm   r   r   re_partim_parts        r1   _eval_expand_complexzsinh._eval_expand_complex  3    ,4,@@$@%@@""r3   c                    |r | j         d         j        |fi |}n| j         d         }d }|j        r|                                \  }}nF|                    d          \  }}|t
          j        ur|j        r|t
          j        ur
|}|dz
  |z  }|St          |          t          |          z  t          |          t          |          z  z                       d          S t          |          S Nr   Trationalr:   )trig)
rk   r   r~   r\   as_coeff_Mulr   rZ   
is_Integerrh   rj   rm   r   r   r_   r   ycoefftermss           r1   _eval_expand_trigzsinh._eval_expand_trig       	%$)A,%d44e44CC)A,C: 	"##%%DAqq++T+::LE5AE!!e&6!5;M;MQYM=GGDGGOd1ggd1ggo5==4=HHHCyyr3   Nc                 H    t          |          t          |           z
  dz  S Nr;   r   rm   r_   limitvarkwargss       r1   _eval_rewrite_as_tractablezsinh._eval_rewrite_as_tractable&       C3t99$))r3   c                 H    t          |          t          |           z
  dz  S r   r   rm   r_   r   s      r1   _eval_rewrite_as_expzsinh._eval_rewrite_as_exp)  r   r3   c                 B    t            t          t           |z            z  S Nr   r'   r   s      r1   _eval_rewrite_as_sinzsinh._eval_rewrite_as_sin,      rCCLL  r3   c                 B    t            t          t           |z            z  S r   r   r%   r   s      r1   _eval_rewrite_as_csczsinh._eval_rewrite_as_csc/  r   r3   c                 X    t            t          |t          t           z  dz  z             z  S r   r   rj   r   r   s      r1   _eval_rewrite_as_coshzsinh._eval_rewrite_as_cosh2  s#    r$sRT!V|$$$$r3   c                 V    t          t          j        |z            }d|z  d|dz  z
  z  S Nr;   r:   tanhr   rE   rm   r_   r   	tanh_halfs       r1   _eval_rewrite_as_tanhzsinh._eval_rewrite_as_tanh5  s-    $$	{A	1,--r3   c                 V    t          t          j        |z            }d|z  |dz  dz
  z  S r   cothr   rE   rm   r_   r   	coth_halfs       r1   _eval_rewrite_as_cothzsinh._eval_rewrite_as_coth9  s-    $$	{IqL1,--r3   c                 &    dt          |          z  S Nr:   cschr   s      r1   _eval_rewrite_as_cschzsinh._eval_rewrite_as_csch=      499}r3   r   c                     | j         d                             |||          }|                    |d          }|t          j        u r!|                    |d|j        rdnd          }|j        r|S |j        r| 	                    |          S | S Nr   logxcdir-+)dir)
rk   as_leading_termsubsr   ry   limitr{   rz   	is_finiter   rm   r   r   r   r_   arg0s         r1   _eval_as_leading_termzsinh._eval_as_leading_term@  s    il**14d*CCxx1~~15==99Qd.>'GssC9HHD< 	J^ 	99T??"Kr3   c                 z    | j         d         }|j        rdS |                                \  }}|t          z  j        S Nr   Trk   is_realr   r   rz   rm   r_   r   r   s       r1   _eval_is_realzsinh._eval_is_realM  s?    il; 	4 !!##B2r3   c                 .    | j         d         j        rdS d S r   rk   r   r   s    r1   _eval_is_extended_realzsinh._eval_is_extended_realW  "    9Q<( 	4	 	r3   c                 N    | j         d         j        r| j         d         j        S d S r   rk   r   is_positiver   s    r1   _eval_is_positivezsinh._eval_is_positive[  ,    9Q<( 	,9Q<++	, 	,r3   c                 N    | j         d         j        r| j         d         j        S d S r   rk   r   r{   r   s    r1   _eval_is_negativezsinh._eval_is_negative_  r   r3   c                 *    | j         d         }|j        S r   rk   r   rm   r_   s     r1   _eval_is_finitezsinh._eval_is_finitec      il}r3   c                 \    t          | j        d                   \  }}|j        r|j        S d S r   )rf   rk   rz   
is_integerrm   restipi_mults      r1   _eval_is_zerozsinh._eval_is_zerog  s6    %dil33h< 	'&&	' 	'r3   r:   Tr   r   )rS   rT   rU   rV   ro   rt   classmethodr   staticmethodr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r-   r3   r1   rh   rh      s        &5 5 5 5    .5 .5 [.5` - - W \-3 3 34 4 4 4 # # # #   "* * * ** * *! ! !! ! !% % %. . .. . .         , , ,, , ,  ' ' ' ' 'r3   rh   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dS )rj   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
    r:   c                 b    |dk    rt          | j        d                   S t          | |          Nr:   r   rh   rk   r   rl   s     r1   ro   z
cosh.fdiff  s/    q==	!%%%$T8444r3   c                 @   ddl m} |j        rv|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 d S |t          j
        u rt          j        S t          |          }| ||          S |                                r | |           S |j        ret          |          \  }}|rQ|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    r5|j        d         }|t+          |dz
            t+          |dz             z  z  S d S )Nr   )r#   r:   r;   )(sympy.functions.elementary.trigonometricr#   rx   r   ry   rO   rP   rz   rZ   r{   r|   r)   r}   r~   rf   r   r   rj   rh   r   rs   r   rk   r   r   r   )r   r_   r#   r   r   r   s         r1   r   z	cosh.eval  s   @@@@@@= +	5ae||u
""z!***z! !u !sC4yy ! ! a'''u4S99G"s7||#//11 %3t99$z =#C((1 ="QA77477?T!WWT!WW_<<{ ux5  AQ.///x5  x{"x5  a#(1+q.01111x5  HQK$q1u++QU344 ! r3   c                     | dk     s	| dz  dk    rt           j        S t          |          }t          |          dk    r|d         }||dz  z  | | dz
  z  z  S || z  t	          |           z  S )Nr   r;   r:   rJ   r   r   s       r1   r   zcosh.taylor_term  sx     q55AEQJJ6M

A>""Q&&"2&1a4x1a!e9--1vill**r3   c                 f    |                      | j        d                                                   S r   r   r   s    r1   r   zcosh._eval_conjugate  r   r3   Tc                    | j         d         j        r/|rd|d<    | j        |fi |t          j        fS | t          j        fS |r/ | j         d         j        |fi |                                \  }}n"| j         d                                         \  }}t          |          t          |          z  t          |          t          |          z  fS )Nr   Fr   )
rk   r   r   r   r^   r   rj   r#   rh   r'   r   s        r1   r   zcosh.as_real_imag  s    9Q<( 	& &#(i #D22E22AF;;af~% 	1(TYq\(7777DDFFFBYq\..00FBRR $r((3r77"233r3   c                 @     | j         dd|i|\  }}||t          z  z   S r   r   r   s        r1   r   zcosh._eval_expand_complex  r   r3   c                    |r | j         d         j        |fi |}n| j         d         }d }|j        r|                                \  }}nF|                    d          \  }}|t
          j        ur|j        r|t
          j        ur
|}|dz
  |z  }|St          |          t          |          z  t          |          t          |          z  z                       d          S t          |          S r   )
rk   r   r~   r\   r   r   rZ   r   rj   rh   r   s           r1   r   zcosh._eval_expand_trig  r   r3   Nc                 H    t          |          t          |           z   dz  S r   r   r   s       r1   r   zcosh._eval_rewrite_as_tractable  r   r3   c                 H    t          |          t          |           z   dz  S r   r   r   s      r1   r   zcosh._eval_rewrite_as_exp  r   r3   c                 4    t          t          |z  d          S NFevaluater#   r   r   s      r1   _eval_rewrite_as_coszcosh._eval_rewrite_as_cos      1s7U++++r3   c                 :    dt          t          |z  d          z  S Nr:   Fr  r&   r   r   s      r1   _eval_rewrite_as_seczcosh._eval_rewrite_as_sec      3q3w/////r3   c                 \    t            t          |t          t           z  dz  z   d          z  S Nr;   Fr  r   rh   r   r   s      r1   _eval_rewrite_as_sinhzcosh._eval_rewrite_as_sinh  s(    r$sRT!V|e44444r3   c                 V    t          t          j        |z            dz  }d|z   d|z
  z  S r   r   r   s       r1   r   zcosh._eval_rewrite_as_tanh  s-    $$a'	II..r3   c                 V    t          t          j        |z            dz  }|dz   |dz
  z  S r   r   r   s       r1   r   zcosh._eval_rewrite_as_coth  s-    $$a'	A	A..r3   c                 &    dt          |          z  S r   sechr   s      r1   _eval_rewrite_as_sechzcosh._eval_rewrite_as_sech  r   r3   r   c                 4   | j         d                             |||          }|                    |d          }|t          j        u r!|                    |d|j        rdnd          }|j        rt          j        S |j	        r| 
                    |          S | S r   )rk   r   r   r   ry   r   r{   rz   rZ   r   r   r   s         r1   r   zcosh._eval_as_leading_term  s    il**14d*CCxx1~~15==99Qd.>'GssC9HHD< 	5L^ 	99T??"Kr3   c                     | j         d         }|j        s|j        rdS |                                \  }}|t          z  j        S r   )rk   r   is_imaginaryr   r   rz   r   s       r1   r   zcosh._eval_is_real  sK    il ; 	#* 	4
 !!##B2r3   c                 (   | j         d         }|                                \  }}|dt          z  z  }|j        }|rdS |j        }|du r|S t	          |t          |t	          |t          dz  k     |dt          z  dz  k    g          g          g          S Nr   r;   TFr<   rk   r   r   rz   r	   r
   rm   zr   r   ymodyzeroxzeros          r1   r   zcosh._eval_is_positive  s     IaL~~1AbDz 	4	E>>LdRTk4!B$q&=9::  	   	r3   c                 (   | j         d         }|                                \  }}|dt          z  z  }|j        }|rdS |j        }|du r|S t	          |t          |t	          |t          dz  k    |dt          z  dz  k    g          g          g          S r4  r5  r6  s          r1   _eval_is_nonnegativezcosh._eval_is_nonnegative?  s    IaL~~1AbDz 	4	E>>LdbdlDAbDFN;<<  	   	r3   c                 *    | j         d         }|j        S r   r   r   s     r1   r  zcosh._eval_is_finiteY  r  r3   c                 ~    t          | j        d                   \  }}|r|j        r|t          j        z
  j        S d S d S r   )rf   rk   rz   r   rE   r  r  s      r1   r  zcosh._eval_is_zero]  sN    %dil33h 	2 	2qv%11	2 	2 	2 	2r3   r	  r
  r   r   )rS   rT   rU   rV   ro   r  r   r  r   r   r   r   r   r   r   r   r  r$  r)  r   r   r/  r   r   r   r<  r  r  r-   r3   r1   rj   rj   m  s        &5 5 5 5 -5 -5 [-5^ 
+ 
+ W \
+3 3 34 4 4 4# # # #   "* * * ** * *, , ,0 0 05 5 5/ / // / /         @  4  2 2 2 2 2r3   rj   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dS )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
    r:   c                     |dk    r*t           j        t          | j        d                   dz  z
  S t	          | |          Nr:   r   r;   )r   rZ   r   rk   r   rl   s     r1   ro   z
tanh.fdiffw  s;    q==54	!--q000$T8444r3   c                     t           S rq   r   rl   s     r1   rt   ztanh.inverse}  ru   r3   c                    |j         rw|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 d S |t          j
        u rt          j        S t          |          }|D|                                rt           t          |           z  S t          t          |          z  S |                                r | |            S |j        r_t!          |          \  }}|rKt#          |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    r5|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 d S rw   )rx   r   ry   rO   rZ   rP   NegativeOnerz   r^   r{   r|   r)   r}   r   r(   r~   rf   r   r   r   r   rs   rk   r   r   r   r   )r   r_   r   r   r   tanhms         r1   r   z	tanh.eval  s   = 1	%ae||u
""u***}$ "v "SD		z!" " a'''u4S99G"3355 .2WH--3w<<''//11 &CII:%z '#C((1 ' 2aLLE 111#Aww#Aww{ vx5  HQKa!Q$h''x5  HQKAE{{T!a%[[0144x5  x{"x5  !}$ ! r3   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   r;   r:   )r   r^   r   r   r   )r   r   r   ra   BFs         r1   r   ztanh.taylor_term  sy     q55AEQJJ6M

AAE
A!a%  A!a%  Aa!e9q=?QT))r3   c                 f    |                      | j        d                                                   S r   r   r   s    r1   r   ztanh._eval_conjugate  r   r3   Tc                    | j         d         j        r/|rd|d<    | j        |fi |t          j        fS | t          j        fS |r/ | j         d         j        |fi |                                \  }}n"| j         d                                         \  }}t          |          dz  t          |          dz  z   }t          |          t          |          z  |z  t          |          t          |          z  |z  fS )Nr   Fr   r;   r   )rm   r   r   r   r   denoms         r1   r   ztanh.as_real_imag  s    9Q<( 	& &#(i #D22E22AF;;af~% 	1(TYq\(7777DDFFFBYq\..00FBR!c"ggqj(Rb!%'RR)>??r3   c                 J  	
 | j         d         }|j        rpt          |j                   }d |j         D             }ddg}t          |dz             D ]#}||dz  xx         t	          ||          z  cc<   $|d         |d         z  S |j        r|                                \  
}
j        rj
dk    rdt          |          		
fdt          d
dz   d          D             }	
fdt          d
dz   d          D             }t          | t          | z  S t          |          S )Nr   c                 T    g | ]%}t          |d                                           &S Fr  )r   r   r/   r   s     r1   
<listcomp>z*tanh._eval_expand_trig.<locals>.<listcomp>  sA     # # # q5)));;== # # #r3   r:   r;   c                 V    g | ]%}t          t                    |          |z  z  &S r-   r   ranger/   kTr   s     r1   rR  z*tanh._eval_expand_trig.<locals>.<listcomp>  2    NNN!Rea((A-NNNr3   c                 V    g | ]%}t          t                    |          |z  z  &S r-   rT  rV  s     r1   rR  z*tanh._eval_expand_trig.<locals>.<listcomp>  rY  r3   )
rk   r~   r   rU  r*   r[   r   r   r   r   )rm   r   r_   r   TXrc   ir   drX  r   s            @@r1   r   ztanh._eval_expand_trig  sS   il: 	'CHA# ## # #BAA1q5\\ 2 2!a%N1b111Q4!9Z 	'++--LE5 'EAIIKKNNNNNuQ	17M7MNNNNNNNNuQ	17M7MNNNAwsAw&Cyyr3   Nc                 V    t          |           t          |          }}||z
  ||z   z  S r   r   rm   r_   r   r   neg_exppos_exps         r1   r   ztanh._eval_rewrite_as_tractable  .    t99c#hh'!Gg$566r3   c                 V    t          |           t          |          }}||z
  ||z   z  S r   r   rm   r_   r   r`  ra  s        r1   r   ztanh._eval_rewrite_as_exp  rb  r3   c                 F    t            t          t           |z  d          z  S r  )r   r(   r   s      r1   _eval_rewrite_as_tanztanh._eval_rewrite_as_tan       rCC%00000r3   c                 F    t            t          t           |z  d          z  S r  )r   r$   r   s      r1   _eval_rewrite_as_cotztanh._eval_rewrite_as_cot  rg  r3   c                 z    t           t          |          z  t          t          t           z  dz  |z
  d          z  S r'  r(  r   s      r1   r)  ztanh._eval_rewrite_as_sinh  s0    c{41Qu=====r3   c                 z    t           t          t          t           z  dz  |z
  d          z  t          |          z  S r'  r   r   s      r1   r   ztanh._eval_rewrite_as_cosh  s1    bd1fslU3333DII==r3   c                 &    dt          |          z  S r   r   r   s      r1   r   ztanh._eval_rewrite_as_coth      c{r3   r   c                     ddl m} | j        d                             |          }||j        v r! |d|                              |          r|S |                     |          S Nr   )Orderr:   sympy.series.orderrq  rk   r   free_symbolscontainsr   rm   r   r   r   rq  r_   s         r1   r   ztanh._eval_as_leading_term  sm    ,,,,,,il**1--   UU1a[[%9%9#%>%> J99S>>!r3   c                     | j         d         }|j        rdS |                                \  }}|dk    r|t          z  t          dz  k    rd S |t          dz  z  j        S )Nr   Tr;   r   r   s       r1   r   ztanh._eval_is_real  sd    il; 	4!!##B 77rBw"Q$4 bd$$r3   c                 .    | j         d         j        rdS d S r   r   r   s    r1   r   ztanh._eval_is_extended_real  r   r3   c                 N    | j         d         j        r| j         d         j        S d S r   r   r   s    r1   r   ztanh._eval_is_positive  r   r3   c                 N    | j         d         j        r| j         d         j        S d S r   r   r   s    r1   r   ztanh._eval_is_negative"  r   r3   c                     | j         d         }|                                \  }}t          |          dz  t          |          dz  z   }|dk    rdS |j        rdS |j        rdS d S )Nr   r;   FT)rk   r   r#   rh   	is_numberr   )rm   r_   r   r   rM  s        r1   r  ztanh._eval_is_finite&  sw    il!!##BB
T"XXq[(A::5_ 	4 	4	 	r3   c                 2    | j         d         }|j        rdS d S r   rk   rz   r   s     r1   r  ztanh._eval_is_zero2  s&    il; 	4	 	r3   r	  r
  r   r   )rS   rT   rU   rV   ro   rt   r  r   r  r   r   r   r   r   r   r   rf  ri  r)  r   r   r   r   r   r   r   r  r  r-   r3   r1   r   r   c  s        &5 5 5 5    2% 2% [2%h * * W \*3 3 3@ @ @ @  &7 7 7 77 7 71 1 11 1 1> > >> > >  " " " "% % %  , , ,, , ,
 
 
    r3   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d
S )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
    r:   c                 n    |dk    r dt          | j        d                   dz  z  S t          | |          )Nr:   r=   r   r;   r  rl   s     r1   ro   z
coth.fdiffL  s9    q==d49Q<((!+++$T8444r3   c                     t           S rq   )r   rl   s     r1   rt   zcoth.inverseR  ru   r3   c                    |j         rw|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 d S |t          j        u rt          j        S t          |          }|D|                                rt          t          |           z  S t           t          |          z  S |                                r | |            S |j        r_t          |          \  }}|rKt!          |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    r5|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 d S rw   )rx   r   ry   rO   rZ   rP   rE  rz   r|   r{   r)   r}   r   r$   r~   rf   r   r   r   r   rs   rk   r   r   r   r   )r   r_   r   r   r   cothms         r1   r   z	coth.evalX  s#   = 1	#ae||u
""u***}$ "(( "SD		z!" " a'''u4S99G"3355 -sG8}},,rCLL((//11 &CII:%z '#C((1 ' 2aLLE 111#Aww#Aww{ )((x5  HQKA1H~~a''x5  HQK$q1u++QU344x5  !}$x5  x{" ! r3   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 rw   r   r   r^   r   r   r   r   r   rI  rJ  s        r1   r   zcoth.taylor_term  s     66wqzz>!UUa!eqjj6M

A!a%  A!a%  Aq1u:>!#ad**r3   c                 f    |                      | j        d                                                   S r   r   r   s    r1   r   zcoth._eval_conjugate  r   r3   Tc                    ddl m}m} | j        d         j        r/|rd|d<    | j        |fi |t          j        fS | t          j        fS |r/ | j        d         j        |fi |                                \  }}n"| j        d                                         \  }}t          |          dz   ||          dz  z   }t          |          t          |          z  |z   ||            ||          z  |z  fS )Nr   )r#   r'   Fr   r;   )r  r#   r'   rk   r   r   r   r^   r   rh   rj   )rm   r   r   r#   r'   r   r   rM  s           r1   r   zcoth.as_real_imag  s   GGGGGGGG9Q<( 	& &#(i #D22E22AF;;af~% 	1(TYq\(7777DDFFFBYq\..00FBR!cc"ggqj(Rb!%'##b''##b'')9%)?@@r3   Nc                 V    t          |           t          |          }}||z   ||z
  z  S r   r   r_  s         r1   r   zcoth._eval_rewrite_as_tractable  rb  r3   c                 V    t          |           t          |          }}||z   ||z
  z  S r   r   rd  s        r1   r   zcoth._eval_rewrite_as_exp  rb  r3   c                 |    t            t          t          t           z  dz  |z
  d          z  t          |          z  S r'  r(  r   s      r1   r)  zcoth._eval_rewrite_as_sinh  s3    r$r!tAv|e4444T#YY>>r3   c                 |    t            t          |          z  t          t          t           z  dz  |z
  d          z  S r'  r   r   s      r1   r   zcoth._eval_rewrite_as_cosh  s2    r$s))|DAa#>>>>>r3   c                 &    dt          |          z  S r   r   r   s      r1   r   zcoth._eval_rewrite_as_tanh  rn  r3   c                 N    | j         d         j        r| j         d         j        S d S r   r   r   s    r1   r   zcoth._eval_is_positive  r   r3   c                 N    | j         d         j        r| j         d         j        S d S r   r   r   s    r1   r   zcoth._eval_is_negative  r   r3   r   c                     ddl m} | j        d                             |          }||j        v r$ |d|                              |          rd|z  S |                     |          S rp  rr  rv  s         r1   r   zcoth._eval_as_leading_term  sq    ,,,,,,il**1--   UU1a[[%9%9#%>%> S5L99S>>!r3   c                    | j         d         }|j        rd |j         D             }g g g}t          |j                   }t          |dd          D ]1}|||z
  dz                               t          ||                     2t          |d          t          |d          z  S |j        r|                    d          \  }}|j	        r|dk    r}t          |d	          }	g g g}t          |dd          D ]7}|||z
  dz                               t          ||          |	|z  z             8t          |d          t          |d          z  S t          |          S )
Nr   c                 T    g | ]%}t          |d                                           &S rP  )r   r   rQ  s     r1   rR  z*coth._eval_expand_trig.<locals>.<listcomp>  s1    PPP!$q5)));;==PPPr3   r=   r;   r:   Tr   Fr  )rk   r~   r   rU  appendr*   r   r[   r   r   r   r   )
rm   r   r_   CXrc   r   r\  r   r   cs
             r1   r   zcoth._eval_expand_trig  sr   il: 	-PPsxPPPBRACHA1b"%% = =1q5A+%%nQ&;&;<<<<!:c1Q4j((Z 	-'''66HE1 -EAIIU+++Hub"-- G GAuqyAo&--hua.@.@A.EFFFFAaDz#qt*,,Cyyr3   r	  r
  r   r   )rS   rT   rU   rV   ro   rt   r  r   r  r   r   r   r   r   r   r)  r   r   r   r   r   r   r-   r3   r1   r   r   8  s?        &5 5 5 5    2# 2# [2#h + + W \+3 3 3A A A A7 7 7 77 7 7? ? ?? ? ?  , , ,, , ," " " "    r3   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dS )ReciprocalHyperbolicFunctionz=Base class for reciprocal functions of hyperbolic functions. N_is_even_is_oddc                 (   |                                 r'| j        r | |           S | j        r | |            S | j                            |          }t          |d          r%|                                | k    r|j        d         S |d|z  n|S )Nrt   r   r:   )r}   r  r  _reciprocal_ofr   hasattrrt   rk   )r   r_   ts      r1   r   z!ReciprocalHyperbolicFunction.eval  s    '')) 	"| !sC4yy { "SD		z!##C((3	"" 	s{{}}';';8A;mqss*r3   c                 n    |                      | j        d                   } t          ||          |i |S r   )r  rk   getattr)rm   method_namerk   r   os        r1   _call_reciprocalz-ReciprocalHyperbolicFunction._call_reciprocal  s:    	!--&wq+&&7777r3   c                 6     | j         |g|R i |}|d|z  n|S r   )r  )rm   r  rk   r   r  s        r1   _calculate_reciprocalz2ReciprocalHyperbolicFunction._calculate_reciprocal  s8     "D!+??????mqss*r3   c                 v    |                      ||          }|||                     |          k    rd|z  S d S d S r   )r  r  )rm   r  r_   r  s       r1   _rewrite_reciprocalz0ReciprocalHyperbolicFunction._rewrite_reciprocal  sL     !!+s33=Q$"5"5c":":::Q3J =::r3   c                 .    |                      d|          S )Nr   r  r   s      r1   r   z1ReciprocalHyperbolicFunction._eval_rewrite_as_exp  s    ''(>DDDr3   c                 .    |                      d|          S )Nr   r  r   s       r1   r   z7ReciprocalHyperbolicFunction._eval_rewrite_as_tractable  s    ''(DcJJJr3   c                 .    |                      d|          S )Nr   r  r   s      r1   r   z2ReciprocalHyperbolicFunction._eval_rewrite_as_tanh      ''(?EEEr3   c                 .    |                      d|          S )Nr   r  r   s      r1   r   z2ReciprocalHyperbolicFunction._eval_rewrite_as_coth  r  r3   Tc                 `     d|                      | j        d                   z  j        |fi |S r  )r  rk   r   )rm   r   r   s      r1   r   z)ReciprocalHyperbolicFunction.as_real_imag  s6    CD''	!555CDRRERRRr3   c                 f    |                      | j        d                                                   S r   r   r   s    r1   r   z,ReciprocalHyperbolicFunction._eval_conjugate  r   r3   c                 @     | j         dddi|\  }}|t          |z  z   S )Nr   Tr-   r   r   s        r1   r   z1ReciprocalHyperbolicFunction._eval_expand_complex  s3    ,4,@@$@%@@7""r3   c                      | j         di |S )Nr   )r   )r  )rm   r   s     r1   r   z.ReciprocalHyperbolicFunction._eval_expand_trig!  s    )t)GGGGGr3   r   c                 n    d|                      | j        d                   z                      |          S r  )r  rk   r   )rm   r   r   r   s       r1   r   z2ReciprocalHyperbolicFunction._eval_as_leading_term$  s/    $%%dil333JJ1MMMr3   c                 L    |                      | j        d                   j        S r   )r  rk   r   r   s    r1   r   z3ReciprocalHyperbolicFunction._eval_is_extended_real'  s    ""49Q<00AAr3   c                 R    d|                      | j        d                   z  j        S r  )r  rk   r   r   s    r1   r  z,ReciprocalHyperbolicFunction._eval_is_finite*  s$    $%%dil333>>r3   r   r
  r   )rS   rT   rU   rV   r  r  r   __annotations__r  r  r   r  r  r  r   r   r   r   r   r   r   r   r   r   r  r-   r3   r1   r  r    s]        GG NHiGY
+ 
+ [
+8 8 8
+ + +  E E EK K K KF F FF F FS S S S3 3 3# # # #H H HN N N NB B B? ? ? ? ?r3   r  c                   l    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dS )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
    Tr:   c                     |dk    r6t          | j        d                    t          | j        d                   z  S t          | |          )z?
        Returns the first derivative of this function
        r:   r   )r   rk   r   r   rl   s     r1   ro   z
csch.fdiffE  sG     q==1&&&dil););;;$T8444r3   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   r:   r;   r  r  s        r1   r   zcsch.taylor_termN  s     66WQZZ<UUa!eqjj6M

A!a%  A!a%  AAqD>A%a'!Q$..r3   c                 D    t           t          t           |z  d          z  S r  r   r   s      r1   r   zcsch._eval_rewrite_as_sin`      3q3w/////r3   c                 D    t           t          t           |z  d          z  S r  r   r   s      r1   r   zcsch._eval_rewrite_as_cscc  r  r3   c                 Z    t           t          |t           t          z  dz  z   d          z  S r'  r   r   s      r1   r   zcsch._eval_rewrite_as_coshf  s'    4a"fqj(599999r3   c                 &    dt          |          z  S r   rh   r   s      r1   r)  zcsch._eval_rewrite_as_sinhi  r   r3   c                 N    | j         d         j        r| j         d         j        S d S r   r   r   s    r1   r   zcsch._eval_is_positivel  r   r3   c                 N    | j         d         j        r| j         d         j        S d S r   r   r   s    r1   r   zcsch._eval_is_negativep  r   r3   Nr	  )rS   rT   rU   rV   rh   r  r  ro   r  r   r   r   r   r   r)  r   r   r-   r3   r1   r   r   .  s         & NG5 5 5 5 / / W \/ 0 0 00 0 0: : :  , , ,, , , , ,r3   r   c                   f    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S )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
    Tr:   c                     |dk    r6t          | j        d                    t          | j        d                   z  S t          | |          r  )r   rk   r.  r   rl   s     r1   ro   z
sech.fdiff  sE    q==$)A,'''TYq\(:(:::$T8444r3   c                     | dk     s	| dz  dk    rt           j        S t          |          }t          |           t	          |           z  || z  z  S rH  )r   r^   r   r   r   r   r   r   s      r1   r   zsech.taylor_term  sK     q55AEQJJ6M

A88ill*QV33r3   c                 :    dt          t          |z  d          z  S r"  r  r   s      r1   r  zsech._eval_rewrite_as_cos  r%  r3   c                 4    t          t          |z  d          S r  r#  r   s      r1   r$  zsech._eval_rewrite_as_sec  r   r3   c                 Z    t           t          |t           t          z  dz  z   d          z  S r'  r(  r   s      r1   r)  zsech._eval_rewrite_as_sinh  s&    4a"fai%88888r3   c                 &    dt          |          z  S r   rj   r   s      r1   r   zsech._eval_rewrite_as_cosh  r   r3   c                 .    | j         d         j        rdS d S r   r   r   s    r1   r   zsech._eval_is_positive  r   r3   Nr	  )rS   rT   rU   rV   rj   r  r  ro   r  r   r   r  r$  r)  r   r   r-   r3   r1   r.  r.  u  s         & NH5 5 5 5 4 4 W \40 0 0, , ,9 9 9      r3   r.  c                       e Zd ZdZdS )InverseHyperbolicFunctionz,Base class for inverse hyperbolic functions.N)rS   rT   rU   rV   r-   r3   r1   r  r    s        66Dr3   r  c                       e Zd ZdZddZed             Zeed                         Z	ddZ
dd	Zd
 ZeZd Zd Zd Zd ZddZd Zd Zd ZdS )rs   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
    r:   c                 t    |dk    r#dt          | j        d         dz  dz             z  S t          | |          rA  )r   rk   r   rl   s     r1   ro   zasinh.fdiff  s=    q==T$)A,/A-....$T8444r3   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 nv|t          j        u rt          j        S |j        rt          j        S t          |          }|t          t          |          z  S |                                r | |            S t#          |t$                    r|j        d         j        ry|j        d         }|j        r|S t-          |          \  }}|Q|Qt/          |t0          dz  z   t0          z            }|t          t0          z  |z  z
  }|j        }|du r|S |du r| S d S d S d S d S d S )Nr;   r:   r   TF)rx   r   ry   rO   rP   rz   r^   rZ   r   r   rE  r{   r|   r)   r   r!   r}   
isinstancerh   rk   r|  r   r   r   r   is_even)	r   r_   r   r7  rr\  fr   evens	            r1   r   z
asinh.eval  s   = 	&ae||u
""z!***)) "v477Q;'''%%477Q;''' "SD		z!" a'''(({ v4S99G"4==((//11 &CII:%c4   	SXa[%: 	Ay "1%%DAq}1r!t8R-(("QJy4<<HU]]2I	 	 	 	
 } #]r3   c                 l   | dk     s	| dz  dk    rt           j        S t          |          }t          |          dk    r)| dk    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   r;   rJ   r:   )r   r^   r   r   r   rE   r   rE  r   r   r   rc   rW  RrJ  s          r1   r   zasinh.taylor_term   s     q55AEQJJ6M

A>""a''AEE"2&rQUQJ1q5	2QT99UqL#AFA..aLL}a'!+a/!Q$6::r3   Nr   c                    | j         d         }|                    |d                                          }|j        r|                    |          S |t
          j        u r3|                     |                    |                    }|j        r|S | S |t           t          t
          j
        fv r0|                     t                                        |||          S d|dz  z   j        r|                    ||r|nd          }t!          |          j        r;t%          |          j        r&|                     |           t          t&          z  z
  S nt!          |          j        r;t%          |          j        r&|                     |           t          t&          z  z   S n0|                     t                                        |||          S |                     |          S Nr   r   r:   r;   )rk   r   cancelrz   r   r   ry   r   r   r   r|   r.   r   r   r{   r   r   r   r   r   rm   r   r   r   r_   x0r7   ndirs           r1   r   zasinh._eval_as_leading_term  s   ilXXa^^""$$: 	*&&q)));;99S003344D~  1"a*+++<<$$::14d:SSSAI" 		X771d1dd22D$xx# Xb66% 1 IIbMM>AbD001D% Xb66% 1 IIbMM>AbD001 ||C((>>qtRV>WWWyy}}r3   c                    | j         d         }|                    |d          }|t          t           fv r1|                     t                                        ||||          S t          j        | |||          }|t          j        u r|S d|dz  z   j	        r|
                    ||r|nd          }t          |          j        r(t          |          j	        r| t          t          z  z
  S nmt          |          j	        r(t          |          j        r| t          t          z  z   S n1|                     t                                        ||||          S |S Nr   r   r   r   r:   r;   )rk   r   r   r.   r   _eval_nseriesr   r   r|   r{   r   r   r   r   r   	rm   r   r   r   r   r_   r   resr  s	            r1   r  zasinh._eval_nseries-  sV   ilxx1~~ Ar7??<<$$221ad2NNN$T1===1$$$J aK$ 		S771d1dd22D$xx# Sd88' '4!B$;&'D% Sd88' '4!B$;&' ||C((66q!$T6RRR
r3   c                 L    t          |t          |dz  dz             z             S r   r   r   rm   r   r   s      r1   _eval_rewrite_as_logzasinh._eval_rewrite_as_logF  s#    1tAqD1H~~%&&&r3   c                 L    t          |t          d|dz  z             z            S Nr:   r;   )r   r   r  s      r1   _eval_rewrite_as_atanhzasinh._eval_rewrite_as_atanhK  s#    QtA1H~~%&&&r3   c                     t           |z  }t           t          d|z
            t          |dz
            z  t          |          z  t          dz  z
  z  S r  )r   r   r   r   )rm   r   r   ixs       r1   _eval_rewrite_as_acoshzasinh._eval_rewrite_as_acoshN  sC    qS$q2v,,tBF||+eBii7"Q$>??r3   c                 F    t            t          t           |z  d          z  S r  )r   r!   r  s      r1   _eval_rewrite_as_asinzasinh._eval_rewrite_as_asinR  s     rDQ/////r3   c                 j    t           t          t           |z  d          z  t           t          z  dz  z
  S )NFr  r;   )r   r   r   r  s      r1   _eval_rewrite_as_acoszasinh._eval_rewrite_as_acosU  s+    4A....2a77r3   c                     t           S rq   r  rl   s     r1   rt   zasinh.inverseX  	     r3   c                 &    | j         d         j        S r   r~  r   s    r1   r  zasinh._eval_is_zero^  s    y|##r3   c                 &    | j         d         j        S r   r   r   s    r1   r   zasinh._eval_is_extended_reala      y|,,r3   c                 &    | j         d         j        S r   r   r   s    r1   r  zasinh._eval_is_finited      y|%%r3   r	  r   r   )rS   rT   rU   rV   ro   r  r   r  r   r   r   r  r  r   r  r  r  r  rt   r  r   r  r-   r3   r1   rs   rs     s2        *5 5 5 5 + + [+Z ; ; W \;   :   2' ' ' "6' ' '@ @ @0 0 08 8 8   $ $ $- - -& & & & &r3   rs   c                       e Zd ZdZddZed             Zeed                         Z	ddZ
dd	Zd
 ZeZd Zd Zd Zd ZddZd Zd Zd ZdS )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
    r:   c                     |dk    r5| j         d         }dt          |dz
            t          |dz             z  z  S t          | |          r  rk   r   r   )rm   rn   r_   s      r1   ro   zacosh.fdiff~  sJ    q==)A,Cd37mmDqMM122$T8444r3   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          t          z  S |j        r1t                      }||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|j        r|S |j        r| S d S |du r-|t          t          z  z  }|j        r| S |j        r|S d S d S d S d S d S d S )Nr;   r   TF)rx   r   ry   rO   rP   rz   r   r   rZ   r^   rE  r|  rF   r   r|   rE   r  rj   rk   r   r   r   r   r  is_nonnegativer{   is_nonpositiver   )	r   r_   	cst_tabler7  r  r\  r  r   r  s	            r1   r   z
acosh.eval  sg   = 	ae||u
""z!***z! !taxv%%!t= 	&$Ii' ,$S>!++ ~%!###$$!AJ,:"Q&&1"QZ-:"Q&&; 	a4;c4   	!SXa[%: 	!Ay 1vv"1%%DAq}!B$KK"QJy4<<' "  " !r	" "U]]2IA' ! !r	 ! '	! 	! 	! 	!
 } #]! !r3   c                    | 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k    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   rE   r   r  s          r1   r   zacosh.taylor_term  s     66R46MUUa!eqjj6M

A>""a''AEE"2&AEA:~q!a%y1AqD88UqL#AFA..aLLrAvzAqD(1,,r3   Nr   c                 b   | j         d         }|                    |d                                          }|t          j         t          j        t          j        t          j        fv r0|                     t                    	                    |||          S |t          j
        u r3|                     |                    |                    }|j        r|S | S |dz
  j        r|                    ||r|nd          }t!          |          j        rH|dz   j        r(|                     |          dt"          z  t$          z  z
  S |                     |           S t!          |          j        s0|                     t                    	                    |||          S |                     |          S r  )rk   r   r  r   rZ   r^   r|   r.   r   r   ry   r   r   r   r{   r   r   r   r   r   r  s           r1   r   zacosh._eval_as_leading_term  sv   ilXXa^^""$$15&!&!%):;;;<<$$::14d:SSS;;99S003344D~  F 	X771d1dd22D$xx# XF' 299R==1Q3r611		"~%XX) X||C((>>qtRV>WWWyy}}r3   c                 p   | j         d         }|                    |d          }|t          j        t          j        fv r1|                     t                                        ||||          S t          j        | |||          }|t          j	        u r|S |dz
  j
        r|                    ||r|nd          }t          |          j
        r"|dz   j
        r|dt          z  t          z  z
  S | S t          |          j        s1|                     t                                        ||||          S |S r  rk   r   r   rZ   rE  r.   r   r  r   r|   r{   r   r   r   r   r   r  s	            r1   r  zacosh._eval_nseries  s1   ilxx1~~ AE1=)))<<$$221ad2NNN$T1===1$$$J 1H! 	S771d1dd22D$xx# S1H) (1R<'tXX) S||C((66q!$T6RRR
r3   c                 l    t          |t          |dz             t          |dz
            z  z             S r   r  r  s      r1   r  zacosh._eval_rewrite_as_log  s.    1tAE{{T!a%[[00111r3   c                 l    t          |dz
            t          d|z
            z  t          |          z  S r   )r   r   r  s      r1   r  zacosh._eval_rewrite_as_acos  s,    AE{{4A;;&a00r3   c                     t          |dz
            t          d|z
            z  t          dz  t          |          z
  z  S r  )r   r   r!   r  s      r1   r  zacosh._eval_rewrite_as_asin  s4    AE{{4A;;&"Q$a.99r3   c                     t          |dz
            t          d|z
            z  t          dz  t          t          t          |z  d          z  z   z  S Nr:   r;   Fr  )r   r   r   rs   r  s      r1   _eval_rewrite_as_asinhzacosh._eval_rewrite_as_asinh	  sE    AE{{4A;;&"Q$51u3M3M3M1M*MNNr3   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   )rm   r   r   sxm1s1mxsx2m1s         r1   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 	9r3   c                     t           S rq   r  rl   s     r1   rt   zacosh.inverse  r  r3   c                 4    | j         d         dz
  j        rdS d S )Nr   r:   Tr~  r   s    r1   r  zacosh._eval_is_zero  s'    IaL1% 	4	 	r3   c                 j    t          | j        d         j        | j        d         dz
  j        g          S Nr   r:   )r
   rk   r   is_extended_nonnegativer   s    r1   r   zacosh._eval_is_extended_real  s,    $)A,7$)A,:J9cdeeer3   c                 &    | j         d         j        S r   r   r   s    r1   r  zacosh._eval_is_finite   r  r3   r	  r   r  )rS   rT   rU   rV   ro   r  r   r  r   r   r   r  r  r   r  r  r  r  rt   r  r   r  r-   r3   r1   r   r   h  s5        *5 5 5 5 4! 4! [4!l - - W \-    2   .2 2 2 "61 1 1: : :O O O9 9 9     f f f& & & & &r3   r   c                       e Zd ZdZddZed             Zeed                         Z	ddZ
dd	Zd
 ZeZd Zd Zd Zd Zd ZddZdS )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
    r:   c                 Z    |dk    rdd| j         d         dz  z
  z  S t          | |          rA  rk   r   rl   s     r1   ro   zatanh.fdiff8  5    q==a$)A,/)**$T8444r3   c                 (   |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        r | |            S n|t          j        u r+ddlm} t           |t           dz  t          dz            z  S t!          |          }|t          t          |          z  S |                                r | |            S |j        rt          j        S t%          |t&                    r|j        d         j        r|j        d         }|j        r|S t/          |          \  }}|^|^t1          d|z  t          z            }|j        }|t          |z  t          z  dz  z
  }	|du r|	S |du r|	t          t          z  dz  z
  S d S d S d S d S d S )Nr   AccumBoundsr;   TF)rx   r   ry   rz   r^   rZ   rO   rE  rP   r   r"   r{   r|   !sympy.calculus.accumulationboundsr  r   r)   r}   r  r   rk   r|  r   r   r   r  )
r   r_   r  r   r7  r  r\  r  r  r   s
             r1   r   z
atanh.eval>  s*   = 	&ae||u "vz!%%))
""rDII~%***4::~% "SD		z!" a'''IIIIIIbSUBqD11114S99G"4==((//11 &CII:%; 	6Mc4   	&SXa[%: 	&Ay "1%%DAq}!A#b&MMy!BqL4<<HU]]qtAv:%	& 	& 	& 	&
 } #]r3   c                 f    | dk     s	| dz  dk    rt           j        S t          |          }|| z  | z  S Nr   r;   )r   r^   r   r  s      r1   r   zatanh.taylor_termm  s8     q55AEQJJ6M

Aa4!8Or3   Nr   c                    | j         d         }|                    |d                                          }|j        r|                    |          S |t
          j        u r3|                     |                    |                    }|j        r|S | S |t
          j	         t
          j	        t
          j
        fv r0|                     t                                        |||          S d|dz  z
  j        r|                    ||r|nd          }t!          |          j        r-|j        r%|                     |          t"          t$          z  z
  S nqt!          |          j        r-|j        r%|                     |          t"          t$          z  z   S n0|                     t                                        |||          S |                     |          S r  )rk   r   r  rz   r   r   ry   r   r   rZ   r|   r.   r   r   r{   r   r   r   r   r   r  s           r1   r   zatanh._eval_as_leading_termv  s   ilXXa^^""$$: 	*&&q)));;99S003344D~  15&!%!2333<<$$::14d:SSSAI" 		X771d1dd22D$xx# X> 099R==1R4//0D% X> 099R==1R4//0 ||C((>>qtRV>WWWyy}}r3   c                    | j         d         }|                    |d          }|t          j        t          j        fv r1|                     t                                        ||||          S t          j        | |||          }|t          j	        u r|S d|dz  z
  j
        r|                    ||r|nd          }t          |          j
        r|j
        r|t          t          z  z
  S n_t          |          j        r|j        r|t          t          z  z   S n1|                     t                                        ||||          S |S r  r  r  s	            r1   r  zatanh._eval_nseries  sK   ilxx1~~ AE1=)))<<$$221ad2NNN$T1===1$$$J aK$ 		S771d1dd22D$xx# S# &2:%&D% S# &2:%& ||C((66q!$T6RRR
r3   c                 R    t          d|z             t          d|z
            z
  dz  S r  r   r  s      r1   r  zatanh._eval_rewrite_as_log  s&    AE

SQZZ'1,,r3   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   rs   )rm   r   r   r  s       r1   r  zatanh._eval_rewrite_as_asinh  sz    AqD1H1aadUm$aRa!Q$h'Q/1%((:; 	<r3   c                 .    | j         d         j        rdS d S r   r~  r   s    r1   r  zatanh._eval_is_zero  s"    9Q< 	4	 	r3   c                     t          | j        d         j        d| j        d         z
  j        | j        d         dz   j        g          S r  r
   rk   r   r  r   s    r1   r   zatanh._eval_is_extended_real  sA    $)A,7!dil:J9Z]a]fgh]ilm]m\}~r3   c                     t          t          | j        d         dz
  j        | j        d         dz   j        g                    S r  r   r	   rk   rz   r   s    r1   r  zatanh._eval_is_finite  9    DIaL1$4#=	!q@P?Y"Z[[\\\r3   c                 &    | j         d         j        S r   )rk   r2  r   s    r1   _eval_is_imaginaryzatanh._eval_is_imaginary  s    y|((r3   c                     t           S rq   r  rl   s     r1   rt   zatanh.inverse  r  r3   r	  r   r  )rS   rT   rU   rV   ro   r  r   r  r   r   r   r  r  r   r  r  r   r  r,  rt   r-   r3   r1   r   r   $  s        &5 5 5 5 ,& ,& [,&\   W \   8   2- - - "6< < <
  @ @ @] ] ]) ) )     r3   r   c                       e Zd ZdZddZed             Zeed                         Z	ddZ
dd	Zd
 ZeZd Zd ZddZd Zd ZdS )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
    r:   c                 Z    |dk    rdd| j         d         dz  z
  z  S t          | |          rA  r  rl   s     r1   ro   zacoth.fdiff  r  r3   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        r | |            S nd|t          j        u rt          j        S t          |          }|t           t          |          z  S |                                r | |            S |j        rt          t          z  t          j        z  S d S r   )rx   r   ry   rO   r^   rP   rz   r   r   rZ   rE  r{   r|   r)   r    r}   rE   )r   r_   r   s      r1   r   z
acoth.eval  s/   = 	&ae||u
""v***v "!taxz!%%)) "SD		z!" a'''v4S99G"rDMM))//11 &CII:%; 	a4;	 	r3   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      r1   r   zacoth.taylor_term  sP     662b57NUUa!eqjj6M

Aa4!8Or3   Nr   c                    | j         d         }|                    |d                                          }|t          j        u rd|z                      |          S |t          j        u r3|                     |                    |                    }|j        r|S | S |t          j	         t          j	        t          j
        fv r0|                     t                                        |||          S |j        rd|dz  z
  j        r|                    ||r|nd          }t#          |          j        r-|j        r%|                     |          t&          t(          z  z   S nqt#          |          j        r-|j        r%|                     |          t&          t(          z  z
  S n0|                     t                                        |||          S |                     |          S )Nr   r:   r   r;   )rk   r   r  r   r|   r   ry   r   r   rZ   r^   r.   r   r   r   r   r   r   r{   r   r   r  s           r1   r   zacoth._eval_as_leading_term  s   ilXXa^^""$$"""cE**1---;;99S003344D~  15&!%(((<<$$::14d:SSS: 		X1r1u91 		X771d1dd22D$xx# X> 099R==1R4//0D% X> 099R==1R4//0 ||C((>>qtRV>WWWyy}}r3   c                    | j         d         }|                    |d          }|t          j        t          j        fv r1|                     t                                        ||||          S t          j        | |||          }|t          j	        u r|S |j
        rd|dz  z
  j        r|                    ||r|nd          }t          |          j        r|j        r|t          t           z  z   S n_t          |          j        r|j        r|t          t           z  z
  S n1|                     t                                        ||||          S |S r  )rk   r   r   rZ   rE  r.   r   r  r   r|   r   r   r   r   r{   r   r   r  s	            r1   r  zacoth._eval_nseries*  sU   ilxx1~~ AE1=)))<<$$221ad2NNN$T1===1$$$J < 		SQq[5 		S771d1dd22D$xx# S# &2:%&D% S# &2:%& ||C((66q!$T6RRR
r3   c                 ^    t          dd|z  z             t          dd|z  z
            z
  dz  S r  r#  r  s      r1   r  zacoth._eval_rewrite_as_logC  s.    A!Gs1qs7||+q00r3   c                 &    t          d|z            S r   rC  r  s      r1   r  zacoth._eval_rewrite_as_atanhH  s    QqSzzr3   c           	      T   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   rs   r  s      r1   r  zacoth._eval_rewrite_as_asinhK  s    1Qa!eQYQAY7$q1Q3w--QPQTUPUY:WWX$qAv,,uT!QTAX,%7%78889 	:r3   c                     t           S rq   rm  rl   s     r1   rt   zacoth.inverseO  r  r3   c                     t          | j        d         j        t          | j        d         dz
  j        | j        d         dz   j        g          g          S r  )r
   rk   r   r	   r  is_extended_nonpositiver   s    r1   r   zacoth._eval_is_extended_realU  so    $)A,7DIaLSTDTCmptpyz{p|  @A  qA  pZ  C[  :\  :\  ]  ^  ^  	^r3   c                     t          t          | j        d         dz
  j        | j        d         dz   j        g                    S r  r)  r   s    r1   r  zacoth._eval_is_finiteX  r*  r3   r	  r   r  )rS   rT   rU   rV   ro   r  r   r  r   r   r   r  r  r   r  r  rt   r   r  r-   r3   r1   r   r     s	        &5 5 5 5   [>   W \   8   21 1 1 "6  : : :   ^ ^ ^] ] ] ] ]r3   r   c                       e Zd ZdZddZed             Zeed                         Z	ddZ
dd	Zdd
Zd ZeZd Zd Zd Zd Zd Zd ZdS )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/

    r:   c                 ~    |dk    r(| j         d         }d|t          d|dz  z
            z  z  S t          | |          Nr:   r   r=   r;   r  rm   rn   r7  s      r1   ro   zasech.fdiff  sD    q==	!Aqa!Q$h'(($T8444r3   c                 d   |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        r1t                      }||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 d S )Nr;   r   r  )rx   r   ry   rO   r   r   rP   rz   rZ   r^   rE  r|  rQ   r   r|   r  r  )r   r_   r  r  s       r1   r   z
asech.eval  s,   = 	ae||u
""!tax***!tax z!v%%!t= 	&$Ii' ,$S>!++ ~%!###EEEEEE[["Q1----; 	:	 	r3   c                    | dk    rt          d|z            S | dk     s	| dz  dk    rt          j        S t          |          }t	          |          dk    r.| dk    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   r;   r:   rJ   r>   r=   )r   r   r^   r   r   r   rE   r   r  s          r1   r   zasech.taylor_term  s     66q1u::UUa!eqjj6M

A>""Q&&1q55"2&QUQqSM*QT111qy=AAF#AFA..2aLL1$)A-2AvzAqD(1,,r3   Nr   c                 ~   | j         d         }|                    |d                                          }|t          j         t          j        t          j        t          j        fv r0|                     t                    	                    |||          S |t          j
        u r3|                     |                    |                    }|j        r|S | S |j        s
d|z
  j        r|                    ||r|nd          }t!          |          j        rO|j        s
|dz   j        r|                     |           S |                     |          dt$          z  t&          z  z
  S t!          |          j        s0|                     t                    	                    |||          S |                     |          S r  )rk   r   r  r   rZ   r^   r|   r.   r   r   ry   r   r   r   r{   r   r   r   r   r   r  s           r1   r   zasech._eval_as_leading_term  s   ilXXa^^""$$15&!&!%):;;;<<$$::14d:SSS;;99S003344D~  > 	Xa"f1 	X771d1dd22D$xx# X> *b1f%9 * IIbMM>)yy}}qs2v--XX) X||C((>>qtRV>WWWyy}}r3   c                    ddl m} | j        d         }|                    |d          }|t          j        u rt          dd          }t          t          j        |dz  z
                                t                    
                    |dd|z            }	t          j        | j        d         z
  }
|
                    |          }|
|z
  |z  }|                    |d          s)|dk    r |d          n |t          |                    S t          t          j        |z                                 |||          }|                                t          |          z                                  }|	                                                    ||                                                                           |||z  |          z   S |t          j        u rt          dd          }t          t          j        |dz  z                                 t                    
                    |dd|z            }	t          j        | j        d         z   }
|
                    |          }|
|z
  |z  }|                    |d          s9|dk    r |d          n't&          t(          z   |t          |                    z   S t          t          j        |z                                 |||          }|                                t          |          z                                  }|	                                                    ||                                                                           |||z  |          z   S t+          j        | |||          }|t          j        u r|S |j        s
d|z
  j        r|                    ||r|nd          }t3          |          j        r)|j        s
|dz   j        r| S |dt&          z  t(          z  z
  S t3          |          j        s1|                     t                                        ||||	          S |S 
Nr   )Or  T)positiver;   r:   r  r   )rs  rE  rk   r   r   rZ   r   r<  r.   r   nseriesr   is_meromorphicr   r  removeOr   powsimprE  r   r   r   r|   r{   r   r   r   rm   r   r   r   r   rE  r_   r   r  serarg1r  gres1r  r  s                   r1   r  zasech._eval_nseries  s   ((((((ilxx1~~ 15==cD)))A1%%--c22::1a1EEC549Q<'D$$Q''AAA##Aq)) 6 Avvqqttt11T!WW::5	??00ad0CCD<<>>$q'')1133C;;==%%a--4466>>@@11QT1::MM1=  cD)))A1,--55c::BB1a1MMC549Q<'D$$Q''AAA##Aq)) = Avvqqttt1R4!!DGG**+<<	??00ad0CCD<<>>$q'')1133C;;==%%a--4466>>@@11QT1::MM$T1===1$$$J  	SD5 	S771d1dd22D$xx# S#  q'=  4KQqSV|#XX) S||C((66q!$T6RRR
r3   c                     t           S rq   r-  rl   s     r1   rt   zasech.inverse   r  r3   c                 ~    t          d|z  t          d|z  dz
            t          d|z  dz             z  z             S r   r  r   s      r1   r  zasech._eval_rewrite_as_log  s:    1S54#	??T!C%!)__<<===r3   c                 &    t          d|z            S r   )r   r   s      r1   r  zasech._eval_rewrite_as_acosh      QsU||r3   c                     t          d|z  dz
            t          dd|z  z
            z  t          t          t          |z  d          z  t          t          j        z  z   z  S r"  )r   r   rs   r   r   rE   r   s      r1   r  zasech._eval_rewrite_as_asinh  sV    AcEAItA#I.%#2N2N2N0N24QV)1< = 	=r3   c           	         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      r1   r  zasech._eval_rewrite_as_atanh  s    "a$q''$qs))++ac$r((l477.BBQqSaQRd^TXZ[]^Z^Y^T_T_E__`q!a%y//$q1u++-eDQTNN.C.CCD 	Er3   c                     t          d|z  dz
            t          dd|z  z
            z  t          dz  t          t          t          |z  d          z  z
  z  S r
  )r   r   r   acschr  s      r1   _eval_rewrite_as_acschzasech._eval_rewrite_as_acsch  sM    AaC!G}}T!ac']]*BqD1U1Q35O5O5O3O,OPPr3   c                     t          | j        d         j        | j        d         j        d| j        d         z
  j        g          S r  r'  r   s    r1   r   zasech._eval_is_extended_real  s<    $)A,719TWX[_[def[gWgVwxyyyr3   c                 @    t          | j        d         j                  S r   r   rk   rz   r   s    r1   r  zasech._eval_is_finite      1-...r3   r	  r   r  )rS   rT   rU   rV   ro   r  r   r  r   r   r   r  rt   r  r   r  r  r  rX  r   r  r-   r3   r1   r<  r<  \  s*       # #J5 5 5 5   [< - - W \-    2+ + + +Z   > > > "6  = = =E E EQ Q Qz z z/ / / / /r3   r<  c                       e Zd ZdZddZed             Zeed                         Z	ddZ
dd	Zdd
Zd ZeZd Zd Zd Zd Zd Zd ZdS )rW  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/

    r:   c                     |dk    r.| j         d         }d|dz  t          dd|dz  z  z             z  z  S t          | |          r>  r  r?  s      r1   ro   zacsch.fdiffF  sN    q==	!Aq!tDQq!tV,,,--$T8444r3   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 |                                r | |            S d S r  )rx   r   ry   rO   r^   rP   rz   r|   rZ   r   r   rE  r|  rL   r   is_infiniter}   )r   r_   r  s      r1   r   z
acsch.evalM  s;   = 	*ae||u
""v***v *((1tAww;'''%%Qa[))))= 	($Ii ~a''!###6M? 	6M; 	%$$'')) 	CII:	 	r3   c                    | dk    rt          d|z            S | dk     s	| dz  dk    rt          j        S t          |          }t	          |          dk    r/| dk    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   r;   r:   rJ   r>   )	r   r   r^   r   r   r   rE   r   rE  r  s          r1   r   zacsch.taylor_termo  s    66q1u::UUa!eqjj6M

A>""Q&&1q55"2&ra!eac]+ad2AA	MBBF#AFA..!3aLL1$)A-2}q!t,q014q!t;a??r3   Nr   c                    | j         d         }|                    |d                                          }|t           t          t          j        fv r0|                     t                                        |||          S |t          j	        u r3| 
                    |                    |                    }|j        r|S | S |t          j        u rd|z                      |          S |j        rd|dz  z   j        r|                    ||r|nd          }t#          |          j        r;t%          |          j        r&| 
                    |           t          t&          z  z
  S nt#          |          j        r;t%          |          j        r&| 
                    |           t          t&          z  z   S n0|                     t                                        |||          S | 
                    |          S r  )rk   r   r  r   r   r^   r.   r   r   ry   r   r   r   r|   r2  r   r   r   r   r   r{   r  s           r1   r   zacsch._eval_as_leading_term  s   ilXXa^^""$$1"a  <<$$::14d:SSS;;99S003344D~ """cE**1---? 		XBE	6 		X771d1dd22D$xx# Xb66% 1 IIbMM>AbD001D% Xb66% 1 IIbMM>AbD001 ||C((>>qtRV>WWWyy}}r3   c                 H	   ddl m} | j        d         }|                    |d          }|t          u rt          dd          }t          t          |dz  z                                 t                    	                    |dd|z            }	t           | j        d         z   }
|

                    |          }|
|z
  |z  }|                    |d          s=|dk    r |d          n+t           t          z  dz   |t          |                    z   S t          t          j        |z                                 |||          }|                                t          |          z                                  }|	                                                    ||                                                                           |||z  |          z   }|S |t          j        t          z  k    rt          dd          }t          t           |dz  z                                 t                    	                    |dd|z            }	t          | j        d         z   }
|

                    |          }|
|z
  |z  }|                    |d          s<|dk    r |d          n*t          t          z  dz   |t          |                    z   S t          t          j        |z                                 |||          }|                                t          |          z                                  }|	                                                    ||                                                                           |||z  |          z   S t+          j        | |||          }|t          j        u r|S |j        rd|dz  z   j        r| j        d                             ||r|nd          }t5          |          j        r(t7          |          j        r| t          t          z  z
  S nmt5          |          j        r(t7          |          j        r| t          t          z  z   S n1|                     t                                        ||||	          S |S rD  )rs  rE  rk   r   r   r   rW  r.   r   rG  r   rH  r   r   r   rZ   r  rI  r   rJ  rE  r   r|   r2  r   r   r   r   r{   rK  s                   r1   r  zacsch._eval_nseries  s   ((((((ilxx1~~ 199cD)))AAqD//))#..66q!QqSAAC2	!$D$$Q''AAA##Aq)) @ AvvqqtttA2b57QQtAwwZZ+??	??00ad0CCD<<>>$q'')1133C++--$$Q,,3355==??!!AqD!**LCJ1=?""cD)))AQT	""**3//771acBBCty|#D$$Q''AAA##Aq)) ? Avvqqttt1R46AAd1ggJJ+>>	??00ad0CCD<<>>$q'')1133C;;==%%a--4466>>@@11QT1::MM$T1===1$$$J  		S!dAg+!: 		S9Q<##At':tt;;D$xx# Sd88' '4!B$;&'D% Sd88' '4!B$;&' ||C((66q!$T6RRR
r3   c                     t           S rq   r   rl   s     r1   rt   zacsch.inverse  r  r3   c                 X    t          d|z  t          d|dz  z  dz             z             S r  r  r   s      r1   r  zacsch._eval_rewrite_as_log  s-    1S54#q&1---...r3   c                 &    t          d|z            S r   rr   r   s      r1   r  zacsch._eval_rewrite_as_asinh  rS  r3   c                     t           t          dt           |z  z
            t          t           |z  dz
            z  t          t           |z  d          z  t          t          j        z  z
  z  S r"  )r   r   r   r   r   rE   r   s      r1   r  zacsch._eval_rewrite_as_acosh  s\    $q1S5y//$quqy//1 %aee < < <=?A!&yI J 	Jr3   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   rE   r   )rm   r_   r   arg2arg2p1s        r1   r  zacsch._eval_rewrite_as_atanh  sf    AvTE{{316	 $faiZ 0 0 7d6ll8K8K K!L M 	Mr3   c                 &    | j         d         j        S r   )rk   r`  r   s    r1   r  zacsch._eval_is_zero  s    y|''r3   c                 &    | j         d         j        S r   r   r   s    r1   r   zacsch._eval_is_extended_real  r  r3   c                 @    t          | j        d         j                  S r   r[  r   s    r1   r  zacsch._eval_is_finite  r\  r3   r	  r   r  )rS   rT   rU   rV   ro   r  r   r  r   r   r   r  rt   r  r   r  r  r  r  r   r  r-   r3   r1   rW  rW     s+       # #J5 5 5 5   [B @ @ W \@    :. . . .`   / / / "6  J J JM M M( ( (- - -/ / / / /r3   rW  N)J
sympy.corer   r   r   sympy.core.addr   sympy.core.functionr   r   sympy.core.logicr	   r
   r   r   sympy.core.numbersr   r   r   sympy.core.symbolr   (sympy.functions.combinatorial.factorialsr   r   r   %sympy.functions.combinatorial.numbersr   r   r   $sympy.functions.elementary.complexesr   r   r   &sympy.functions.elementary.exponentialr   r   r   #sympy.functions.elementary.integersr   (sympy.functions.elementary.miscellaneousr   r  r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   sympy.polys.specialpolysr*   r8   rF   rL   rQ   r6   rf   rh   rj   r   r   r  r   r.  r  rs   r   r   r   r<  rW  r-   r3   r1   <module>r{     se   * * * * * * * * * *       < < < < < < < < F F F F F F F F F F F F . . . . . . . . . . # # # # # #G G G G G G G G G G F F F F F F F F F F < < < < < < < < < < L L L L L L L L L L 5 5 5 5 5 5 9 9 9 9 9 9$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 4 3 3 3 3 32 2 2
 	  	2 	
 
 	
$ 	
 
 	
F
 
 
 
 
 
 
 
  DQ' Q' Q' Q' Q' Q' Q' Q'hs2 s2 s2 s2 s2 s2 s2 s2lR R R R R R R Rji i i i i i i iXG? G? G? G? G?#5 G? G? G?TD, D, D, D, D,' D, D, D,N4 4 4 4 4' 4 4 4v	 	 	 	 	 	 	 	o& o& o& o& o&% o& o& o&dy& y& y& y& y&% y& y& y&xb b b b b% b b bJP] P] P] P] P]% P] P] P]fA/ A/ A/ A/ A/% A/ A/ A/HM/ M/ M/ M/ M/% M/ M/ M/ M/ M/r3   