Function: algtableinit
Section: algebras
C-Name: algtableinit
Prototype: GDG
Help: algtableinit(mt,{p=0}): initializes the associative algebra
 over Q (resp. Fp) defined by the multiplication table mt.
Doc: initializes 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
