sage: x.apply_univariate_polynomial(p)
0
+ The characteristic polynomials of the zero and unit elements
+ should be what we think they are in a subalgebra, too::
+
+ sage: J = RealCartesianProductEJA(3)
+ sage: p1 = J.one().characteristic_polynomial()
+ sage: q1 = J.zero().characteristic_polynomial()
+ sage: e0,e1,e2 = J.gens()
+ sage: A = (e0 + 2*e1 + 3*e2).subalgebra_generated_by() # dim 3
+ sage: p2 = A.one().characteristic_polynomial()
+ sage: q2 = A.zero().characteristic_polynomial()
+ sage: p1 == p2
+ True
+ sage: q1 == q2
+ True
+
"""
p = self.parent().characteristic_polynomial()
return p(*self.to_vector())
sage: x.is_invertible() == (x.det() != 0)
True
+ Ensure that the determinant is multiplicative on an associative
+ subalgebra as in Faraut and Koranyi's Proposition II.2.2::
+
+ sage: set_random_seed()
+ sage: J = random_eja().random_element().subalgebra_generated_by()
+ sage: x = J.random_element()
+ sage: y = J.random_element()
+ sage: (x*y).det() == x.det()*y.det()
+ True
+
"""
P = self.parent()
r = P.rank()
"""
B = self.parent().natural_basis()
- W = B[0].matrix_space()
+ W = self.parent().natural_basis_space()
return W.linear_combination(zip(B,self.to_vector()))