o
    8Va                     @   sR   d dl mZmZmZ d dlmZ d dlmZmZ ddddZ	G dd	 d	eZ
d
S )    )AddArgumentIndexErrorFunction)S)cossinTevaluatec                C   s   t t| |dtj |dS )Nr   )r   r   r   ZOne)xr	    r   ;/usr/lib/python3/dist-packages/sympy/codegen/scipy_nodes.py_cosm1   s   r   c                   @   s6   e Zd ZdZdZdddZdd Zdd Zd	d
 ZdS )cosm1z Minus one plus cosine of x, i.e. cos(x) - 1. For use when x is close to zero.

    Helper class for use with e.g. scipy.special.cosm1
    See: https://docs.scipy.org/doc/scipy/reference/generated/scipy.special.cosm1.html
       c                 C   s   |dkr
t | j  S t| |)z@
        Returns the first derivative of this function.
        r   )r   argsr   )selfZargindexr   r   r   fdiff   s   
zcosm1.fdiffc                 K   s   t |S N)r   )r   r
   kwargsr   r   r   _eval_rewrite_as_cos   s   zcosm1._eval_rewrite_as_cosc                 O   s   |  tj|i |S r   )Zrewriter   Zevalf)r   r   r   r   r   r   _eval_evalf   s   zcosm1._eval_evalfc                 K   s0   t |jdi |}|t |ddkr|S t|S )NFr   r   )r   Zsimplifyr   )r   r
   r   	candidater   r   r   _eval_simplify!   s   zcosm1._eval_simplifyN)r   )	__name__
__module____qualname____doc__nargsr   r   r   r   r   r   r   r   r   
   s    
	r   N)Zsympy.core.functionr   r   r   Zsympy.core.singletonr   Z(sympy.functions.elementary.trigonometricr   r   r   r   r   r   r   r   <module>   s
    