+ """
+ Return my characteristic polynomial (if I'm a regular
+ element).
+
+ Eventually this should be implemented in terms of the parent
+ algebra's characteristic polynomial that works for ALL
+ elements.
+ """
+ if self.is_regular():
+ return self.minimal_polynomial()
+ else:
+ raise NotImplementedError('irregular element')
+
+
+ def det(self):
+ """
+ Return my determinant, the product of my eigenvalues.
+
+ EXAMPLES::
+
+ sage: J = eja_ln(2)
+ sage: e0,e1 = J.gens()
+ sage: x = e0 + e1
+ sage: x.det()
+ 0
+ sage: J = eja_ln(3)
+ sage: e0,e1,e2 = J.gens()
+ sage: x = e0 + e1 + e2
+ sage: x.det()
+ -1
+
+ """
+ cs = self.characteristic_polynomial().coefficients(sparse=False)
+ r = len(cs) - 1
+ if r >= 0:
+ return cs[0] * (-1)**r
+ else:
+ raise ValueError('charpoly had no coefficients')