U
    ¿|e`  ã                   @   sR   d Z ddlZddlmZ ddlmZ ddlmZ ddl	m
Z eejƒdd„ ƒZdS )	z5
Implementation of operations involving polynomials.
é    N)Újit)Útypes)Úoverload)Únumpy_supportc                    s:   t | d| ƒ}t|tjƒr tj‰ n
t |¡‰ ‡ fdd„}|S )NÚdtypec                    s  t | jƒdkrtdƒ‚t | ¡d }t |ƒdkr>tjdˆ d�S t | ƒ|d  d }| t|d ƒt|d ƒd … } t | ƒ}|dkrÎt t |d fˆ ¡d¡j	}| dd …  | d  |dd d …f< tj
 |¡}ntjdˆ d�}|dkrüt |tj|ˆ d�f¡S |S d S )Né   zInput must be a 1d array.r   )r   éÿÿÿÿé   )ÚlenÚshapeÚ
ValueErrorÚnpÚnonzeroÚzerosÚintÚdiagÚonesÚTÚlinalgÚeigvalsÚhstack)ÚpÚnon_zeroÚtzÚnÚAÚroots©Zcast_t© úP/var/www/website-v5/atlas_env/lib/python3.8/site-packages/numba/np/polynomial.pyÚ
roots_impl   s      "zroots_impl.<locals>.roots_impl)ÚgetattrÚ
isinstancer   ÚIntegerr   Úfloat64Ú
np_supportÚas_dtype)r   Útyr    r   r   r   r       s    
"r    )Ú__doc__Únumpyr   Únumbar   Ú
numba.corer   Únumba.core.extendingr   Únumba.npr   r%   r   r    r   r   r   r   Ú<module>   s   