assume_associative=False,
category=None,
rank=None,
- natural_basis=None,
- inner_product=None):
+ natural_basis=None):
n = len(mult_table)
mult_table = [b.base_extend(field) for b in mult_table]
for b in mult_table:
names=names,
category=cat,
rank=rank,
- natural_basis=natural_basis,
- inner_product=inner_product)
+ natural_basis=natural_basis)
def __init__(self,
assume_associative=False,
category=None,
rank=None,
- natural_basis=None,
- inner_product=None):
+ natural_basis=None):
"""
EXAMPLES:
"""
self._rank = rank
self._natural_basis = natural_basis
- self._inner_product = inner_product
fda = super(FiniteDimensionalEuclideanJordanAlgebra, self)
fda.__init__(field,
mult_table,
"""
The inner product associated with this Euclidean Jordan algebra.
- Will default to the trace inner product if nothing else.
+ Defaults to the trace inner product, but can be overridden by
+ subclasses if they are sure that the necessary properties are
+ satisfied.
EXAMPLES:
"""
if (not x in self) or (not y in self):
raise TypeError("arguments must live in this algebra")
- if self._inner_product is None:
- return x.trace_inner_product(y)
- else:
- return self._inner_product(x,y)
+ return x.trace_inner_product(y)
def natural_basis(self):
return FiniteDimensionalEuclideanJordanAlgebra(field,
Qs,
- rank=dimension,
- inner_product=_usual_ip)
+ rank=dimension)