o
    ohK+                     @   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   p/var/www/html/construction_image-detection-poc/venv/lib/python3.10/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 rdS || || }}|jr)|jr)|S |jr.|ntj}|| }|js;|jrt}	|j|j}
}|
r}|r}|dk rU|dkrUd}d}
n(|dk rb|dkrbd}
d}n|dk rt|dk rt||k}
||k }n	||k }
||k  }|
rd|	d  |d d   |	|  }t|| }n|r|	| d|	d  |d d   }t	|| }t
||	}||	|}|dkrt|| t|df|dfS || S t|t|k}
t|t|k}tj}|
rP|dkrtd|d d D ]}|tj| t|d | t|d|  | 7 }qn2|dkrt||}n&td	|d t||d   t	||d   t|d |d tt||d  t	||d   |  }n|r|dkr}td|d d D ]}|tj| t|d | t|d|  | 7 }qan|dkrt||}ntd|d t||d   t	||d   t|d |d tt||d  t	||d   |  }n||krt
t	d| tj | |}nr|| krB|dk rtd|d t||d   t	||d   t|d |d t
t||d  t	||d   |  }n3td	|d t||d   t	||d   t|d |d t
t||d  t	||d   |  }|dkr[t|||| | 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] https://en.wikibooks.org/wiki/Calculus/Integration_techniques

    See Also
    ========

    sympy.integrals.integrals.Integral.doit
    sympy.integrals.integrals.Integral
    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_m_ffuufifxresir   r   r   r0      s   "


" 


,$


,$

,$,$
(r0   c                 C   s   | dkr,| dkrt | S td| t | t|| d   t| d | t| d |  S | dk r`| dkr=tdt| |S td| d t | t|| d   t| d | d t| d |  S |S )Nr   r   r%   r$   )r   r   r
   r/   r0   r   r   r   r   r   r/      s   
 $r/   c                 C   s   | dkr+| dkrt |S td| t | t|| d   t| d | t| d |  S | dk r_| dkr<tdt| |S td| d t | t|| d   t| d | d t| d |  S |S )Nr   r   r$   r%   )r
   r   r   r1   r0   r?   r   r   r   r1   (  s    $r1   N)r"   )
sympy.corer   r   r   r   r   r   r   sympy.functionsr	   r
   r   r   r   	integralsr   r   r    r+   r0   r/   r1   r   r   r   r   <module>   s   $ 

 _-