L indZddlmcmZddlmZmZdZdZ ddZ dZ dZ d Z d Zd d d Zd d dZy)a0Partial replacements for numpy polynomial routines, with Array API compatibility. This module contains both "old-style", np.poly1d, routines from the main numpy namespace, and "new-style", np.polynomial.polynomial, routines. To distinguish the two sets, the "new-style" routine names start with `npp_` N) xp_promotexp_default_dtypec|j|}|j|jdr3t||j |z|j |dzz}n|}|j |}||S)Ncomplex floating)asarrayisdtypedtypeabsrealimagargsort)arrxpsorteridxss ]/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/signal/_polyutils.py _sort_cmplxr sh **S/C zz#))/0SBGGCL(2773<?: ::f D t9c|jddkr|jg|jSt|dd}|r||S|jd}|j |dz |dz d|j}|j |dd |dz |dddf<t |jd r|jj|Sddl }|j|jj|j|S) z(numpy.roots, best-effor replacement rr rootsN)kr eigvals) shaperr getattreyefliphasattrlinalgrnumpy)coefr root_funcnanps r polyrootsr*s zz!}qzz"DJJz//GT*I 1 A q1ua!er4AQR!!DG+AaeHryy)$yy  ##zz"))++BJJqM:;;rcd}|j}d|vr|D]}|dk7rn|dz}|jd}d|vr|dddD]}|dk7rn|dz }|||S)NrFgrBr)upperr)filttrimfirstilasts r _trim_zerosr43s E ::>,Q2>L!!B D1M:   B BA ,,|A 'CB !RXXsTEl3& AB zz!''-. rysL)(> <4.   :  %) ".2 "r