Function: algtableinit
Section: algebras
C-Name: algtableinit
Prototype: GDG
Help: algtableinit(mt, {p=0}): initialize the associative algebra
 over Q (resp. Fp) defined by the multiplication table mt.
Doc: initialize the associative algebra over $K = \Q$ (p omitted) or $\F_p$
 defined by the multiplication table \var{mt}.
 As a $K$-vector space, the algebra is generated by a basis
 $(e_1 = 1, e_2, \dots, e_n)$; the table is given as a \typ{VEC} of $n$ matrices in
 $M_n(K)$, giving the left multiplication by the basis elements $e_i$, in the
 given basis.
 Assumes that $e_1=1$, that $K e_1\oplus \dots\oplus K e_n]$ describes an
 associative algebra over $K$, and in the case $K=\Q$ that the multiplication
 table is integral. If the algebra is already known to be central
 and simple, then the case $K = \F_p$ is useless, and one should use
 \tet{alginit} directly.

 The point of this function is to input a finite dimensional $K$-algebra, so
 as to later compute its radical, then to split the quotient algebra as a
 product of simple algebras over $K$.

 The pari object representing such an algebra $A$ is a \typ{VEC} with the
 following data:

  \item The characteristic of $A$, accessed with \kbd{algchar}.

  \item The multiplication table of $A$, accessed with \kbd{algmultable}.

  \item The traces of the elements of the basis.

 A simple example: the $2\times 2$ upper triangular matrices over $\Q$,
 generated by $I_2$, $a = \kbd{[0,1;0,0]}$ and $b = \kbd{[0,0;0,1]}$,
 such that $a^2 = 0$, $ab = a$, $ba = 0$, $b^2 = b$:
 \bprog
 ? mt = [matid(3),[0,0,0;1,0,1;0,0,0],[0,0,0;0,0,0;1,0,1]];
 ? A = algtableinit(mt);
 ? algradical(A) \\ = (a)
 %6 =
 [0]

 [1]

 [0]
 ? algcenter(A) \\ = (I_2)
 %7 =
 [1]

 [0]

 [0]
 @eprog
