MatrixMultiply - Maple Help

# Online Help

###### All Products    Maple    MapleSim

RegularChains[MatrixTools]

 MatrixMultiply
 compute the product of two matrices modulo a regular chain

 Calling Sequence MatrixMultiply(A, B, rc, R)

Parameters

 A - Matrix with coefficients in the field of fractions of R B - Matrix with coefficients in the field of fractions of R rc - regular chain of R R - polynomial ring

Description

 • The command MatrixMultiply(A, B, rc, R) returns the product of A and B mod the saturated ideal of rc.
 • The result is viewed as a matrix with coefficients in the total ring of fractions of R/I where I is the saturated ideal of rc.
 • The implementation is based on the method proposed in the paper "On {W}inograd's Algorithm for Inner Products" by A. Waksman.
 • It is assumed that rc is strongly normalized.
 • This command is part of the RegularChains[MatrixTools] package, so it can be used in the form MatrixMultiply(..) only after executing the command with(RegularChains[MatrixTools]).  However, it can always be accessed through the long form of the command by using

Examples

 > $\mathrm{with}\left(\mathrm{RegularChains}\right):$$\mathrm{with}\left(\mathrm{ChainTools}\right):$$\mathrm{with}\left(\mathrm{MatrixTools}\right):$
 > $R≔\mathrm{PolynomialRing}\left(\left[y,z\right]\right)$
 ${R}{≔}{\mathrm{polynomial_ring}}$ (1)
 > $\mathrm{rc}≔\mathrm{Empty}\left(R\right)$
 ${\mathrm{rc}}{≔}{\mathrm{regular_chain}}$ (2)
 > $\mathrm{rc}≔\mathrm{Chain}\left(\left[{z}^{4}+1,{y}^{2}-{z}^{2}\right],\mathrm{rc},R\right):$
 > $\mathrm{Equations}\left(\mathrm{rc},R\right)$
 $\left[{{y}}^{{2}}{-}{{z}}^{{2}}{,}{{z}}^{{4}}{+}{1}\right]$ (3)
 > $m≔\mathrm{Matrix}\left(\left[\left[1,y+z\right],\left[0,y-z\right]\right]\right)$
 ${m}{≔}\left[\begin{array}{cc}{1}& {y}{+}{z}\\ {0}& {y}{-}{z}\end{array}\right]$ (4)
 > $\mathrm{mim}≔\mathrm{MatrixInverse}\left(m,\mathrm{rc},R\right)$
 ${\mathrm{mim}}{≔}\left[\left[\left[\left[\begin{array}{cc}{1}& {0}\\ {0}& \frac{{{z}}^{{3}}}{{2}}\end{array}\right]{,}{\mathrm{regular_chain}}\right]\right]{,}\left[\left[{"noInv"}{,}\left[\begin{array}{cc}{1}& {y}{+}{z}\\ {0}& {y}{-}{z}\end{array}\right]{,}{\mathrm{regular_chain}}\right]\right]\right]$ (5)
 > $\mathrm{m1}≔\mathrm{mim}\left[1\right]\left[1\right]\left[1\right]$
 ${\mathrm{m1}}{≔}\left[\begin{array}{cc}{1}& {0}\\ {0}& \frac{{{z}}^{{3}}}{{2}}\end{array}\right]$ (6)
 > $\mathrm{rc1}≔\mathrm{mim}\left[1\right]\left[1\right]\left[2\right]$
 ${\mathrm{rc1}}{≔}{\mathrm{regular_chain}}$ (7)
 > $\mathrm{MatrixMultiply}\left(\mathrm{m1},m,\mathrm{rc1},R\right)$
 $\left[\begin{array}{cc}{1}& {0}\\ {0}& {1}\end{array}\right]$ (8)

References

 A. Waksman "On Winograd's Algorithm for Inner Products." IEEE Transactions On Computers, C-19, (1970): 360-361.

 See Also