[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