
    sg                     x    d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ d	d
lmZ  ed      fdZd Zy)z:

Routines for computing eigenvectors with DomainMatrix.

    )Dummy   )FiniteExtension)dup_factor_list)roots)Poly)CRootOf   )DomainMatrixlambdac                    | j                         }| j                  \  }}| j                  }t        ||      \  }}g }g }	|D ]  \  }
}t	        |
      dk(  r|}|
d    |
d   z  }t        |      D cg c],  }t        |      D cg c]  }||k(  r|n|j                   c}. }}}t        |||f|      }| |z
  j                  d      }|j                  ||||f       t        j                  |
||      }t        |      } ||      }| j                  j                         D cg c]3  }|D cg c]%  }t        j                  |g||      j                  ' c}5 }}}|D cg c]  }|D cg c]
  } ||       c} }}}t        |||f|      }t        |      D cg c],  }t        |      D cg c]  }||k(  r|n|j                   c}. }}}t        |||f|      }||z
  j                  d      }|	j                  ||||f        ||	fS c c}w c c}}w c c}w c c}}w c c}w c c}}w c c}w c c}}w )Nr   r
   r   T)divide_last)domain)charpolyshaper   r   lenrangezeror   	nullspaceappendr   	from_listr   repto_ddm)Alr   rowscolsr   _factorsrational_eigenvectsalgebraic_eigenvectsbaseexpfieldeigenvalijEE_itemsEEbasisminpolyrowitemAA_itemsAAs                           M/var/www/html/venv/lib/python3.12/site-packages/sympy/polys/matrices/eigen.pydom_eigenvectsr1      s_   zz|HJD$XXF 62JAw F	ct9>EQx$q')H t& >C4[IQ!V3I&H & hte<BV&&4&8E&&xe'DEnnT1V<G#G,EQxH 55<<>+ KNN$&9==N+H + BJJ#5t5JHJhte<B t& >C4[IQ!V3I&H & hte<B"W''D'9E ''e(DE9F<  4441 J& O+ 6J J&s`   2HHH(	H)1*H$H)(	H41H/ H4%H?7H:H?H$H)/H4:H?c                 z   g }| D ]z  \  }}}}|j                   j                         }|j                  |      }|D 	
cg c]'  }	 ||	D 
cg c]  }
|j                  |
       c}
      ) }}	}
|j                  |||f       | |D ]  \  }}}}|j                   j                         }|j                  d   }|D 	
cg c]!  }	|	D 
cg c]  }
|j                  |
       c}
# }}	}
|j                         }|j                         }t        ||fi |}t        |      |k7  r#t        |      D cg c]  }t        |||       }}|D ]K  }|D 	
cg c](  }	 ||	D 
cg c]  }
|
j                  ||       c}
      * }}	}
|j                  |||f       M  |S c c}
w c c}
}	w c c}
w c c}
}	w c c}w c c}
w c c}
}	w )Nr   )r   r   to_sympyr   gensdegreeas_exprr   r   r   r	   subs)r    r!   Matrixkwargsresultr$   
eigenvaluemultiplicity
eigenvectsvectxnew_eigenvectsr+   r   r5   	eigenvalsidxs                    r0   dom_eigenvects_to_sympyrC   :   s    F7J B3z<^^**,
^^J/
 #$ t4!ENN1%45$ $ 	z<@AB 5I F0wj^^**,
LLODNOD$7Qu~~a(7O
O!//#'1//	y>V#=B6]Kc!S1KIK# 	FJ '( t<!q*-<=(N ( MM:|^DE		FF$ M- 5$ 8O L =(sM   FF 	F;	F'F"F',F-F7
F20	F7
F"F'2F7
N)__doc__sympy.core.symbolr   agca.extensionsr   factortoolsr   	polyrootsr   	polytoolsr   rootoftoolsr	   domainmatrixr   r1   rC        r0   <module>rN      s5   
 $ - )   ! & h &5R rM   