a
    RG5dJ+                     @   s   d dl mZmZmZmZmZmZmZ d dlm	Z	m
Z
mZmZmZ ddlmZ dd Zedd Zed	ZdddZdd Zdd ZdS )    )cacheitDummyNeIntegerRationalSWild)binomialsincos	PiecewiseAbs   )	integratec                 C   s
   t | tS )N)
isinstancer   )n r   X/var/www/html/django/DPS/env/lib/python3.9/site-packages/sympy/integrals/trigonometry.py_integer_instance   s    r   c                    sP   t d gd} fdddD \}}t|  | t|  |  }||||fS )Na)excludec                    s   g | ]}t | gtgd qS ))r   
properties)r   r   ).0sxr   r   
<listcomp>   s   z_pat_sincos.<locals>.<listcomp>nm)r   r
   r   )r   r   r   mpatr   r   r   _pat_sincos   s    

 r    u	piecewisec                 C   s  t |\}}}}| d} | |}|du r0dS || ||  }}|jrR|jrR|S |jr\|ntj}|| }|jsx|jrt}	|j|j }
}|
r |r |dk r|dkrd}d}
nP|dk r|dkrd}
d}n6|dk r|dk r||k}
||k }n||k }
||k  }|
r6d|	d  |d d   |	|  }t|| }n2|rh|	| d|	d  |d d   }t	|| }t
||	}||	|}|dkrt|| t|df|dfS || S t|t|k}
t|t|k}tj}|
r|dkr,td|d d D ]4}|tj| t|d | t|d|  | 7 }qn||dkrBt||}nftd	|d t||d   t	||d   t|d |d tt||d  t	||d   |  }n|r|dkrtd|d d D ]4}|tj| t|d | t|d|  | 7 }qn||dkrt||}nftd|d t||d   t	||d   t|d |d tt||d  t	||d   |  }n||krt
t	d| tj | |}n|| kr|dk r,td|d t||d   t	||d   t|d |d t
t||d  t	||d   |  }nftd	|d t||d   t	||d   t|d |d t
t||d  t	||d   |  }|dkrt|||| | t|df|dfS |||| | S )
a  
    Integrate f = Mul(trig) over x.

    Examples
    ========

    >>> from sympy import sin, cos, tan, sec
    >>> from sympy.integrals.trigonometry import trigintegrate
    >>> from sympy.abc import x

    >>> trigintegrate(sin(x)*cos(x), x)
    sin(x)**2/2

    >>> trigintegrate(sin(x)**2, x)
    x/2 - sin(x)*cos(x)/2

    >>> trigintegrate(tan(x)*sec(x), x)
    1/cos(x)

    >>> trigintegrate(sin(x)*tan(x), x)
    -log(sin(x) - 1)/2 + log(sin(x) + 1)/2 - sin(x)

    References
    ==========

    .. [1] http://en.wikibooks.org/wiki/Calculus/Integration_techniques

    See Also
    ========

    sympy.integrals.integrals.Integral.doit
    sympy.integrals.integrals.Integral
    ZsincosNr   TFr      r"   )r    rewritematchis_zeror   Zerois_odd_ur   r
   r   subsr   r   r   rangeNegativeOner	   _sin_pow_integrater   trigintegrate_cos_pow_integrateHalf)fr   condsr   r   r   r   Mzzr!   n_Zm_ffuufifxresir   r   r   r/      s    "


" 



,$

,$

,$,$
(r/   c                 C   s   | dkrX| dkrt | S td| t | t|| d   t| d | t| d |  S | dk r| dkrztdt| |S td| d t | t|| d   t| d | d t| d |  S |S d S )Nr   r   r$   r#   )r   r   r
   r.   r/   r   r   r   r   r   r.      s    
 $r.   c                 C   s   | dkrV| dkrt |S td| t | t|| d   t| d | t| d |  S | dk r| dkrxtdt| |S td| d t | t|| d   t| d | d t| d |  S |S d S )Nr   r   r#   r$   )r
   r   r   r0   r/   r=   r   r   r   r0   (  s     $r0   N)r"   )
sympy.corer   r   r   r   r   r   r   sympy.functionsr	   r
   r   r   r   	integralsr   r   r    r*   r/   r.   r0   r   r   r   r   <module>   s   $

 _-