determinant slightly buggy



hi all

I think determinant is slightly buggy.
Now we can treat Kronecker Product in group theory(so-called tensor product)
with MAXIMA.
for example ,Pauli matrix
(%i1) matrix_element_mult:"."$
(%i2) (s0:matrix([1,0],[0,1]),
s1:matrix([0,1],[1,0]),s2:matrix([0,-%i],[%i,0]),
s3:matrix([1,0],[0,-1]))$
/*tensor product can be defined by outermap("*",x,y)*/
(%i3) outermap("*",s1,s2). outermap("*",s3,s0);
            [   [ 0     0 ]    [  0    %i ] ]
            [   [         ]    [         ]  ]
            [   [ 0     0 ]    [ - %i  0  ] ]
(%o3)       [                              ]
            [   [ 0   - %i ]    [ 0    0 ]   ]
            [   [        ]      [        ]   ]
            [ [ %i     0   ]      [ 0  0 ]   ]
(%i4) outermap("*",s1.s3,s2.s0);
            [   [ 0     0 ]    [  0    %i ] ]
            [   [        ]    [        ] ]
            [   [ 0     0 ]    [ - %i  0  ] ]
(%o4)                 [                  ]
            [ [ 0   - %i ]      [ 0  0 ]   ]
            [ [          ]      [      ]   ]
            [ [ %i     0   ]      [ 0  0 ]   ]
%o3=%o4 good,generaly (x at y).(x1 at y1)=(x.x1)@(y.y1) ,@ is kronecker product.
So,determinant(x at y)=determinant(x)^n * determinant(y)^m,this case n=m=2
(%i7) a:matrix([x1,x2],[y1,y2])$
(%i8) outermap("*",a,a);
            [ [       2         ]  [        2  ] ]
            [ [  x1    x1 x2 ]  [ x1 x2      x2   ] ]
            [ [             ]  [           ] ]
            [ [ x1 y1  x1 y2 ]  [ x2 y1     x2 y2 ] ]
(%o8)             [                      ]
            [ [ x1 y1  x2 y1 ]  [ x1 y2     x2 y2 ] ]
            [ [          ]  [            ] ]
            [ [       2         ]  [        2  ] ]
            [ [     y1    y1 y2 ]  [ y1 y2      y2   ] ]
(%i9) determinant(%);
thish is not correct.
          [   3           2         2          3       ]
          [ x1  y2 - x1  x2 y1  x1 x2  y2 - x2  y1 ]
(%o9)           [                        ]
          [     2         3         3         2 ]
          [ x1 y1  y2 - x2 y1   x1 y2  - x2 y1 y2  ]
(%i10) factor(determinant(%));
                                     3
(%o10)                (x1 y2 - x2 y1)  (x1 y2 + x2 y1)
this shoud be (x1y2-x2y1)^4, I calculated manually this.
(%i20) %o8[1,1].%o8[2,2]-%o8[1,2].%o8[2,1]$
(%i21) :lisp (setf $%o20 (sublis '((MNCEXPT . MEXPT) (MNCTIMES . MTIMES))
$%o20))
(%i21) %o20;
(%i22) factor(determinant(%));
I get (x1y2-x2y1)^4.
this bug due to calculate determinant with scalar-scalar product,in stead of
matrix-matrix product.

gosei furuya