
    \h                     J    S SK Jr  S SKJr  S SKJr  SSKJr   " S S\5      rg)	    )S)_sympify)Poly   )
MatrixExprc                   H   ^  \ rS rSrSrU 4S jr\S 5       rS rS r	Sr
U =r$ )CompanionMatrix   a  A symbolic companion matrix of a polynomial.

Examples
========

>>> from sympy import Poly, Symbol, symbols
>>> from sympy.matrices.expressions import CompanionMatrix
>>> x = Symbol('x')
>>> c0, c1, c2, c3, c4 = symbols('c0:5')
>>> p = Poly(c0 + c1*x + c2*x**2 + c3*x**3 + c4*x**4 + x**5, x)
>>> CompanionMatrix(p)
CompanionMatrix(Poly(x**5 + c4*x**4 + c3*x**3 + c2*x**2 + c1*x + c0,
x, domain='ZZ[c0,c1,c2,c3,c4]'))
c                   > [        U5      n[        U[        5      (       d  [        SR	                  U5      5      eUR
                  (       d  [        SR	                  U5      5      eUR                  (       d  [        SR	                  U5      5      eUR                  5       S:  d  [        SR	                  U5      5      e[        TU ]%  X5      $ )Nz{} must be a Poly instance.z{} must be a monic polynomial.z#{} must be a univariate polynomial.r   z${} must have degree not less than 1.)
r   
isinstancer   
ValueErrorformatis_monicis_univariatedegreesuper__new__)clspoly	__class__s     \/var/www/auris/envauris/lib/python3.13/site-packages/sympy/matrices/expressions/companion.pyr   CompanionMatrix.__new__   s    ~$%%:AA$GHH}}=DDTJKK!!5<<TBD D{{}!6==dCE E ws))    c                 F    U R                   S   nUR                  5       nX"4$ )Nr   )argsr   )selfr   sizes      r   shapeCompanionMatrix.shape'   s"    yy|{{}zr   c                     X R                   S-
  :X  a$  U R                  S   R                  5       SU-
     * $ XS-   :X  a  [        R                  $ [        R
                  $ )Nr   r   )colsr   
all_coeffsr   OneZero)r   ijs      r   _entryCompanionMatrix._entry.   sN    		AIIaL++-b1f555a%Z55Lvvr   c                 J    SSK Jn  UR                  U R                  S   5      $ )Nr   )ImmutableDenseMatrix)sympy.matrices.immutabler+   	companionr   )r   r+   s     r   as_explicitCompanionMatrix.as_explicit6   s    A#--diil;;r    )__name__
__module____qualname____firstlineno____doc__r   propertyr   r(   r.   __static_attributes____classcell__)r   s   @r   r	   r	      s0    *   < <r   r	   N)	sympy.core.singletonr   sympy.core.sympifyr   sympy.polys.polytoolsr   matexprr   r	   r0   r   r   <module>r=      s    " ' & 0<j 0<r   