Ë
    üÇ:j*  ã                   ó*  — 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mZ ddlmZ ddlmZmZmZ  eej&                  «      d	„ «       Z eej*                  «      d
„ «       Z eej.                  «      dd„«       Zd„ Zd„ Z eej6                  «      d„ «       Z eej:                  «      d„ «       Z eej>                  «      d„ «       Z  eejB                  d¬«      dd„«       Z" eejF                  «      dd„«       Z$ eejJ                  «      d„ «       Z&y)z5
Implementation of operations involving polynomials.
é    N)Ú
polynomial)Ú	polyutils)Úliteral_unroll)ÚtypesÚerrors)Úoverload)Útype_can_asarrayÚas_dtypeÚ
from_dtypec                 ó˜   ‡— t        | d| «      }t        |t        j                  «      rt        j
                  Šnt        |«      Šˆfd„}|S )NÚdtypec                 ó¶  •— t        | j                  «      dk7  rt        d«      ‚t        j                  | «      d   }t        |«      dk(  rt        j
                  d‰¬«      S t        | «      |d   z
  dz
  }| t        |d   «      t        |d   «      dz    } t        | «      }|dkD  rkt        j                  t        j                  |dz
  f‰«      d«      j                  }| dd   | d   z  |dd d …f<   t        j                  j                  |«      }nt        j
                  d‰¬«      }|dkD  r,t        j                  |t        j
                  |‰¬«      f«      S |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Úcast_ts         €ú}/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/numba/np/polynomial/polynomial_functions.pyÚ
roots_implzroots_impl.<locals>.roots_impl   s3  ø€ ô ˆq�w‰w‹<˜1ÒÜÐ8Ó9Ð9ä—:‘:˜a“= Ñ#ˆäˆx‹=˜AÒÜ—8‘8˜A VÔ,Ð,ä�‹V�h˜r‘lÑ" QÑ&ˆð Œc�(˜1‘+Óœs 8¨B¡<Ó0°1Ñ4Ð5ˆä�‹FˆØˆqŠ5ô —‘œŸ™  Q¡ ¨&Ó1°1Ó5×7Ñ7ˆAØ˜˜�u�f˜q ™t‘mˆAˆa’ˆd‰GÜ—I‘I×%Ñ% aÓ(‰Eä—H‘H˜Q fÔ-ˆEð �Š6Ü—9‘9˜e¤R§X¡X¨b¸Ô%?Ð@ÓAÐAàˆLó    )ÚgetattrÚ
isinstancer   ÚIntegerr   Úfloat64r
   )r    Útyr(   r&   s      @r'   r(   r(      sA   ø€ ô
 
��G˜QÓ	€BÜ�"”e—m‘mÔ$Ü—‘‰ä˜"“ˆô ðD Ðr)   c                 ó  — t        | «      sd}t        j                  |«      ‚t        | t        j
                  «      rd}t        j                  || z  «      ‚t        j                  | «      dkD  rd}t        j                  |«      ‚d„ }|S )Nz%The argument "seq" must be array-likez&Unsupported type %r for argument "seq"r   úCoefficient array is not 1-dc                 ó‚   — t        | «      dk(  r| S t        t        | «      dz
  dd«      D ]  }| |   dk7  sŒ n | d dz    S )Nr   r   r   )r   Úrange)ÚseqÚis     r'   Úimplzpolyutils_trimseq.<locals>.implN   sR   € Üˆs‹8�qŠ=ØˆJäœ3˜s›8 a™<¨¨RÓ0ò �Ø�q‘6˜Q“;Ùðð �v˜˜A™�;Ðr)   )	r	   r   ÚTypingErrorr+   r   Ú	BaseTupler   ÚndimÚNumbaValueError)r3   Úmsgr5   s      r'   Úpolyutils_trimseqr;   @   sz   € ä˜CÔ Ø5ˆÜ× Ñ  Ó%Ð%ä�#”u—‘Ô'Ø6ˆÜ× Ñ  ¨¡Ó-Ð-ä	‡w�wˆsƒ|�aÒØ,ˆÜ×$Ñ$ SÓ)Ð)òð €Kr)   Tc           
      ó\  ‡‡‡— t        | «      sd}t        j                  |«      ‚t        |t        t
        j                  f«      sd}t        j                  |«      ‚t        j                  Št        | t
        j                  «      Št        | t
        j                  «      Š‰rjt        j                  t        j                  | D �cg c]  }t        j                  |«      dkD  ‘Œ c}«      «      rt        j                  d«      ‚t        | Ž Šn’‰r9t!        t#        | «      «      }t        j$                  |t        j                  «      ŠnWt        j                  | «      dk  r*t        j$                  ‰t!        | j&                  «      «      Šnt        j                  d«      ‚dˆˆˆfd„	}|S c c}w )Nz'The argument "alist" must be array-likez#The argument "trim" must be booleanr   r0   r   c                 óÔ  •— ‰	rYg }t        | «      D ]H  }|j                  t        j                  t        j                  |«      «      j                  ‰«      «       ŒJ n ‰rE| D �cg c]9  }t        j                  t        j                  |«      «      j                  ‰«      ‘Œ; }}nYt        j                  | «      }|D �cg c]9  }t        j                  t        j                  |«      «      j                  ‰«      ‘Œ; }}t        |D �cg c]  }|j                  ‘Œ c}«      dk(  rt        d«      ‚|r"|D �cg c]  }t        j                  |«      ‘Œ }}|}|S c c}w c c}w c c}w c c}w )Nr   zCoefficient array is empty)r   Úappendr   Ú
atleast_1dÚasarrayÚastypeÚminÚsizer   ÚpuÚtrimseq)
ÚalistÚtrimÚarraysÚitemÚaÚ	alist_arrÚretÚ
list_inputÚ	res_dtypeÚtuple_inputs
          €€€r'   r5   z!polyutils_as_series.<locals>.imply   s7  ø€ ÙØˆFÜ& uÓ-ò Q�Ø—‘œbŸm™m¬B¯J©J°tÓ,<Ó=×DÑDÀYÓOÕPñQñ à$ö&Øô —m‘m¤B§J¡J¨q£MÓ2×9Ñ9¸)ÕDð &ˆFñ &ô Ÿ
™
 5Ó)ˆIà(ö*Øô —m‘m¤B§J¡J¨q£MÓ2×9Ñ9¸)ÕDð *ˆFð *ô  Ö'˜1�—“Ò'Ó(¨AÒ-ÜÐ9Ó:Ð:áØ-3Ö4¨”b—j‘j •mÐ4ˆFÐ4àˆØˆ
ùò&ùò
*ùò (ùò 5s   Á#>EÂ=>EÄE Ä4E%©T)r	   r   r6   r+   Úboolr   ÚBooleanr   r-   r7   ÚListÚanyÚarrayr8   r9   Ú_poly_result_dtyper
   Ú_get_list_typeÚresult_typer   )	rF   rG   r:   rJ   Údtr5   rM   rN   rO   s	         @@@r'   Úpolyutils_as_seriesrZ   Z   s5  ú€ ä˜EÔ"Ø7ˆÜ× Ñ  Ó%Ð%ä�dœT¤5§=¡=Ð1Ô2Ø3ˆÜ× Ñ  Ó%Ð%ä—
‘
€Iä˜U¤E§O¡OÓ4€KÜ˜E¤5§:¡:Ó.€JÙÜ�6‰6”"—(‘(°EÖ:¨qœBŸG™G A›J¨›NÒ:Ó;Ô<Ü×(Ñ(Ð)GÓHÐHä&¨Ð.‰	á	Ü”n UÓ+Ó,ˆÜ—N‘N 2¤r§z¡zÓ2‰	ô �7‰7�5‹>˜QÒÜŸ™ y´(¸5¿;¹;Ó2GÓH‰Iô ×(Ñ(Ð)GÓHÐH÷ð0 €KùòQ ;s   ÃF)c                 ó~   — | j                   }t        |t        j                  «      st	        |«      rt        |«      S |S ©N)r   r+   r   ÚNumberr	   rW   )ÚlrY   s     r'   rW   rW   ”   s3   € ð 
�‰€BÜ�rœ5Ÿ<™<Ô(Ô.>¸rÔ.BÜ˜bÓ!Ð!àˆ	r)   c                  óz  — t         j                  }| D ]é  }t        |t        j                  «      r|j                  }n„t        |t        j
                  «      rt        |«      g}n]t        |t        j                  «      r|g}n?t        |t        j                  «      r|j                  g}nd}t        j                  |«      ‚	 |D �cg c]  }t        |«      ‘Œ }}|j                  |«       t        j                  |Ž }Œë t!        |«      S c c}w # t        j                  $ r d}t        j                  |«      ‚w xY w)NzInput dtype must be scalarzInput dtype must be scalar.)r   r-   r+   r   r7   rS   rW   r]   ÚArrayr   r   r6   r
   r>   rX   ÚNumbaNotImplementedErrorr   )ÚargsrN   rI   Ús1r:   Útr^   s          r'   rV   rV   ž   s  € ô —
‘
€IØò *ˆÜ�dœEŸO™OÔ,Ø—‘‰BÜ˜œeŸj™jÔ)Ü  Ó&Ð'‰BÜ˜œeŸl™lÔ+Ø�‰BÜ˜œeŸk™kÔ*Ø—*‘*�‰Bà.ˆCÜ×$Ñ$ SÓ)Ð)ð	*Ø&(Ö) ”˜!•Ð)ˆAÐ)Ø�H‰H�YÔÜŸ™¨Ð+‰Ið!*ô* �iÓ Ð ùò *øô ×.Ñ.ò 	*Ø/ˆCÜ×$Ñ$ SÓ)Ð)ð	*ús   ÃDÃD
Ã%DÄ
DÄ+D:c                 ó”   — t        | «      sd}t        j                  |«      ‚t        |«      sd}t        j                  |«      ‚d„ }|S )Nú$The argument "c1" must be array-likeú$The argument "c2" must be array-likec                 ó^  — t        j                  | |f«      \  }}t        |«      t        |«      z
  }|dkD  r,t        j                  |«      }t        j
                  ||f«      }|dk  r-t        j                  | «      }t        j
                  ||f«      }||z   }t        j                  |«      S ©Nr   ©rD   Ú	as_seriesr   r   r   ÚconcatenaterE   ©Úc1Úc2Úarr1Úarr2ÚdiffÚzrÚvals          r'   r5   znumpy_polyadd.<locals>.implÄ   ó�   € Ü—\‘\ 2 r (Ó+‰
ˆˆdÜ�4‹yœ3˜t›9Ñ$ˆØ�!Š8Ü—‘˜$“ˆBÜ—>‘> 4¨ *Ó-ˆDØ�!Š8Ü—‘˜4˜%“ˆBÜ—>‘> 4¨ *Ó-ˆDØ�T‰kˆÜ�z‰z˜#‹Ðr)   ©r	   r   r6   ©rn   ro   r:   r5   s       r'   Únumpy_polyaddrx   º   óJ   € ä˜BÔØ4ˆÜ× Ñ  Ó%Ð%ä˜BÔØ4ˆÜ× Ñ  Ó%Ð%ò
ð €Kr)   c                 ó”   — t        | «      sd}t        j                  |«      ‚t        |«      sd}t        j                  |«      ‚d„ }|S )Nrf   rg   c                 ó^  — t        j                  | |f«      \  }}t        |«      t        |«      z
  }|dkD  r,t        j                  |«      }t        j
                  ||f«      }|dk  r-t        j                  | «      }t        j
                  ||f«      }||z
  }t        j                  |«      S ri   rj   rm   s          r'   r5   znumpy_polysub.<locals>.implÝ   ru   r)   rv   rw   s       r'   Únumpy_polysubr|   Ó   ry   r)   c                 ó”   — t        | «      sd}t        j                  |«      ‚t        |«      sd}t        j                  |«      ‚d„ }|S )Nrf   rg   c                 óŒ   — t        j                  | |f«      \  }}t        j                  ||«      }t        j                  |«      S r\   )rD   rk   r   ÚconvolverE   )rn   ro   rp   rq   rt   s        r'   r5   znumpy_polymul.<locals>.implö   s6   € Ü—\‘\ 2 r (Ó+‰
ˆˆdÜ�k‰k˜$ Ó%ˆÜ�z‰z˜#‹Ðr)   rv   rw   s       r'   Únumpy_polymulr€   ì   sJ   € ä˜BÔØ4ˆÜ× Ñ  Ó%Ð%ä˜BÔØ4ˆÜ× Ñ  Ó%Ð%òð
 €Kr)   )Úprefer_literalc                 ó
  ‡‡‡‡— t        | «      sd}t        j                  |«      ‚t        |«      sd}t        j                  |«      ‚t        |t        t
        j                  f«      sd}t        j                  |«      ‚t        || «      Št        | t
        j                  «       ŠdŠt        | t
        j                  «      rdt        j                  | «      z  Št        |t        «      r|Šn|j                  Šdˆˆˆˆfd„	}|S )Nz#The argument "x" must be array-likeú#The argument "c" must be array-likez%The argument "tensor" must be boolean©r   c                 óT  •— t        j                  |«      j                  ‰	«      }t        j                  | «      j                  ‰	«      }‰r ‰
r|j                  |j                  ‰z   «      }t        |«      }||dz
     |dz  z   }t        |dz
  dd«      D ]  }||dz
     ||z  z   }Œ |S )Nr   r   r   )r   r@   rA   Úreshaper   r   r2   )ÚxÚcÚtensorÚarrÚinputsr^   Úyr4   Ú	new_shaperN   Ú
tensor_argÚ
x_nd_arrays           €€€€r'   r5   zpoly_polyval.<locals>.impl  s§   ø€ Ü�j‰j˜‹m×"Ñ" 9Ó-ˆÜ—‘˜A“×%Ñ% iÓ0ˆÙ™*Ø—+‘+˜cŸi™i¨)Ñ3Ó4ˆCä�‹HˆØ��A‘‰J˜ !™Ñ#ˆä�q˜1‘u˜a Ó$ò 	(ˆAØ�A˜‘E‘
˜Q ™ZÑ'‰Að	(ð ˆr)   rP   )r	   r   r6   r+   rQ   r   ÚBooleanLiteralÚRequireLiteralValuerV   r]   r`   r   r8   Úliteral_value)	r‡   rˆ   r‰   r:   r5   r�   rN   rŽ   r�   s	        @@@@r'   Úpoly_polyvalr“   þ   sÛ   û€ ä˜AÔØ3ˆÜ× Ñ  Ó%Ð%ä˜AÔØ3ˆÜ× Ñ  Ó%Ð%ä�fœt¤U×%9Ñ%9Ð:Ô;Ø5ˆÜ×(Ñ(¨Ó-Ð-ä" 1 aÓ(€Iô
   ¤5§<¡<Ó0Ð0€JØ€IÜ�!”U—[‘[Ô!àœ2Ÿ7™7 1›:Ñ%ˆ	ä�&œ$ÔØ‰
à×)Ñ)ˆ
÷ð ð €Kr)   c                 óD  ‡‡— t        | «      sd}t        j                  |«      ‚t        |t        t
        j                  f«      sd}t        j                  |«      ‚t        t        | «      «      Št        j                  ‰t        j                  «      sd‰› d�}t        j                  |«      ‚t        j                  | «      dk(  xsP t        | t
        j                  t
        j                  f«      xr$ t        | j                  t
        j                   «      Šdˆˆfd„	}|S )Nrƒ   z#The argument "m" must be an integerz"Input dtype must be scalar. Found z insteadr   c                 ó�  •— t        j                  | «      j                  ‰«      } | j                  }t	        |«      D ]o  }t        | «      }t        j                  |dz   f| j                  dd  z   |¬«      }| d   dz  |d<   | d   |d<   t	        d|«      D ]  }| |   |dz   z  ||dz   <   Œ |} Œq ‰rt        j                  | «      S | S )Nr   r   r   )
r   r@   rA   r   r2   r   Úemptyr   rD   rE   )	rˆ   ÚmÚcdtr4   r#   ÚtmpÚjÚis1DrN   s	          €€r'   r5   zpoly_polyint.<locals>.implB  sÎ   ø€ Ü�J‰J�q‹M× Ñ  Ó+ˆØ�g‰gˆÜ�q“ò 	ˆAÜ�A“ˆAä—(‘(˜A ™E˜8 a§g¡g¨a¨b kÑ1¸Ô=ˆCØ�q‘T˜A‘XˆC�‰FØ�q‘TˆC�‰FÜ˜1˜a“[ò ,�Ø˜q™T Q¨¡U™^��A˜‘E’
ð,à‰Að	ñ Ü—:‘:˜a“=Ð àˆHr)   r„   )r	   r   r6   r+   r   r   r,   r
   rV   r   Ú
issubdtypeÚnumberr8   rS   r7   r   r]   )rˆ   r—   r:   r5   r›   rN   s       @@r'   Úpoly_polyintrž   -  sà   ù€ ô ˜AÔØ3ˆÜ× Ñ  Ó%Ð%ä�aœ#œuŸ}™}Ð-Ô.Ø3ˆÜ× Ñ  Ó%Ð%äÔ+¨AÓ.Ó/€Iä�=‰=˜¤B§I¡IÔ.Ø2°9°+¸XÐFˆÜ× Ñ  Ó%Ð%ä�W‰W�Q‹Z˜1‰_ò 4Ü˜œEŸJ™J¬¯©Ð8Ó9ò 3Ü˜AŸG™G¤U§\¡\Ó2ð 	öð" €Kr)   c                 ó”   — t        | «      sd}t        j                  |«      ‚t        |«      sd}t        j                  |«      ‚d„ }|S )Nrf   rg   c                 óž  — t        j                  | |f«      \  }}|d   dk(  r
t        «       ‚t        |«      }t        |«      }||k  r
|d d dz  |fS |dk(  r||d   z  |d d dz  fS ||z
  }|d   }|d d |z  }|}|dz
  }	|dk\  r$|||	xxx |||	   z  z  ccc |dz  }|	dz  }	|dk\  rŒ$||	dz   d  |z  t        j                  |d |	dz    «      fS )Nr   r   r   )rD   rk   ÚZeroDivisionErrorr   rE   )
rn   ro   rp   rq   Úl1Úl2ÚdlenÚsclr4   rš   s
             r'   r5   znumpy_polydiv.<locals>.impl`  s  € Ü—\‘\ 2 r (Ó+‰
ˆˆdØ�‰8�qŠ=Ü#Ó%Ð%ä�‹YˆÜ�‹YˆØ�Š7Ø˜˜�8˜a‘< Ð%Ð%Ø�1ŠWØ˜$˜r™(‘? D¨¨! H¨q¡LÐ0Ð0à˜‘7ˆDØ�r‘(ˆCØ˜˜�9˜s‘?ˆDØˆAØ�Q‘ˆAØ�q’&Ø�Q�q“	˜T D¨¡G™^Ñ+“	Ø�Q‘�Ø�Q‘�ð �q“&ð ˜˜A™˜�< #Ñ%¤r§z¡z°$°v¸¸A¹°,Ó'?Ð?Ð?r)   rv   rw   s       r'   Únumpy_polydivr¦   V  sK   € ä˜BÔØ4ˆÜ× Ñ  Ó%Ð%ä˜BÔØ4ˆÜ× Ñ  Ó%Ð%ò@ð. €Kr)   rP   r„   )'Ú__doc__Únumpyr   Únumpy.polynomialr   Úpolyr   rD   Únumbar   Ú
numba.corer   r   Únumba.core.extendingr   Únumba.np.numpy_supportr	   r
   r   r%   r(   rE   r;   rk   rZ   rW   rV   Úpolyaddrx   Úpolysubr|   Úpolymulr€   Úpolyvalr“   Úpolyintrž   Úpolydivr¦   © r)   r'   ú<module>r¶      s9  ðñó
 Ý /Ý ,å  ß $Ý )ß IÑ Iñ 
ˆ"�(‰(Óñ,ó ð,ñ^ 
ˆ"�*‰*Óñó ðñ2 
ˆ"�,‰,Óò6ó ð6òrò!ñ8 
ˆ$�,‰,Óñó ðñ0 
ˆ$�,‰,Óñó ðñ0 
ˆ$�,‰,Óñó ðñ" 
ˆ$�,‰, tÔ,ò+ó -ð+ñ\ 
ˆ$�,‰,Óò%ó ð%ñP 
ˆ$�,‰,Óñ ó ñ r)   