[GAP Forum] Constructing bilinear maps for matrix multiplication

Sandeep Murthy sandeepr.murthy at gmail.com
Thu Nov 17 09:57:57 GMT 2011


Hello,

1. I'm trying to construct bilinear maps f_m(K) for m x m matrix
multiplication over a field K, for small values of m, like 2, 3, 4.

I'm particularly interested in f_Q(3), and f_Q(4), where Q
is the field of rationals.  If T := Mat_Q(3) denotes the 3 x 3 matrix
Q-algebra, with standard basis, it should be possible to 
do this explicitly on GAP by constructing the direct sum 
S := Mat_Q(3) \otimes Mat_Q(3), a Q-algebra of dimension 18
with standard basis, and then computing f_Q(3) as the
map f: S --> T by using AlgebraHomomorphismByImages( source, target, gens, imgs ).
However, I'm getting a "exceeded the permitted memory" error.

2. Also, I don't understand the behaviour of the 

IsAlgebraWithOne( algebra )

function.  For example, I have defined

gap> A := FullMatrixAlgebra( Rationals, 3 );
( Rationals^[ 3, 3 ] )

This is an algebra with One( A ) = [ [1,0,0], [0,1,0], [0,0,1]].  However,
when I construct the direct S = sum A \otimes A by

gap> S := DirectSumOfAlgebras( A, A );
<algebra over Rationals, with 6 generators>

This has the unit

gap> One( S );
[ [ 1, 0, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 1, 0 ], 
 [ 0, 0, 0, 0, 0, 1 ] ]

however, IsAlgebraWithOne( S ) is returning false:

gap> IsAlgebraWithOne( S );
false

Sincerely, Sandeep.











More information about the Forum mailing list