Internal Memo XEROX To From McIsaac Arnon PARC/CSL Subject Date Matrix multiplication July 17, 1987 Testing commutativity of matrix multiplication Consider the product of two general 2 x 2 matrices: X which is X Now consider the product in the opposite order: X which is X A direct check tells us that the first product is not equal to the second. Let's determine the conditions under which they are equal by subtracting one from the other, setting equal to zero, and solving: X Let's try solving the two equations in the first row for a and b in terms of the other indeterminates: X and X , which give us the conditions under which the product is commutative. Ê"Ó•StyleDefºBeginStyle (Cedar) AttachStyle (firstHeadersAfterPage) {0} .cvx .def (root) "format for root nodes" { FontPrefix docStandard 36 pt topMargin 36 pt headerMargin .5 in footerMargin .5 in bottomMargin 1.75 in leftMargin 1.5 in rightMargin 5.25 in lineLength 24 pt topIndent 24 pt topLeading 0 leftIndent 10 pt rightIndent } StyleRule (positionInternalMemoLogo) "Xerox logo: screen" { docStandard 1 pt leading 1 pt topLeading 1 pt bottomLeading } ScreenRule (positionInternalMemoLogo) "for Xerox logo" { docStandard 1 pt leading 1 pt topLeading -28 pt bottomLeading -1.5 in leftIndent } PrintRule (internalMemoLogo) "Xerox logo: screen" { "Logo" family 18 bp size 20 pt topLeading 20 pt bottomLeading } ScreenRule (internalMemoLogo) "for Xerox logo" { "Logo" family 18 pt size 12 pt leading -28 pt topLeading 36 pt bottomLeading -1.5 in leftIndent } PrintRule (memoHead) "for the To, From, Subject nodes at front of memos" { docStandard AlternateFontFamily 240 pt tabStops } StyleRule EndStyle˜Iblock•Mark insideHeaderšÑbox ˜ Ipositioninternalmemologo˜Iinternalmemologošœ˜memoheadšÏsœž˜NšœÏtœ˜ Nšœ ˜ N˜N˜N˜N˜N˜—šžœž˜ Nšœ#˜#N˜N˜—head˜.šÏl3˜3J˜J˜J• CharProps‡Artwork MeddleExprPostfix[66.97407 pt leading 53.48704 pt topLeading 53.48704 pt topIndent 37.48703 pt bottomLeading MeddleExpr‚qCaminoRealExpressionRepresentationVersion1.1 (CMPD $product {$multiplier (MTRX $matrix [2 2] {$r1c1 (ATOM $variable "a")} {$r1c2 (ATOM $variable "b")} {$r2c1 (ATOM $variable "c")} {$r2c2 (ATOM $variable "d")})} {$multiplicand (MTRX $matrix [2 2] {$r1c1 (ATOM $variable "e")} {$r1c2 (ATOM $variable "f")} {$r2c1 (ATOM $variable "g")} {$r2c2 (ATOM $variable "h")})}) MeddlePtSize40–[66.97407 pt leading 53.48704 pt topLeading 53.48704 pt topIndent 37.48703 pt bottomLeading ˜—–[66.97407 pt leading 53.48704 pt topLeading 53.48704 pt topIndent 37.48703 pt bottomLeading š ˜J–¹Artwork MeddleExprPostfixX67.30442 pt leading 45.6522 pt topLeading 45.6522 pt topIndent 45.6522 pt bottomLeading MeddleExpr‡&CaminoRealExpressionRepresentationVersion1.1 (MTRX $matrix [2 2] {$r1c1 (CMPD $sum {$addend (CMPD $product {$multiplier (ATOM $variable "b")} {$multiplicand (ATOM $variable "g")})} {$augend (CMPD $product {$multiplier (ATOM $variable "a")} {$multiplicand (ATOM $variable "e")})})} {$r1c2 (CMPD $sum {$addend (CMPD $product {$multiplier (ATOM $variable "b")} {$multiplicand (ATOM $variable "h")})} {$augend (CMPD $product {$multiplier (ATOM $variable "a")} {$multiplicand (ATOM $variable "f")})})} {$r2c1 (CMPD $sum {$addend (CMPD $product {$multiplier (ATOM $variable "d")} {$multiplicand (ATOM $variable "g")})} {$augend (CMPD $product {$multiplier (ATOM $variable "c")} {$multiplicand (ATOM $variable "e")})})} {$r2c2 (CMPD $sum {$addend (CMPD $product {$multiplier (ATOM $variable "d")} {$multiplicand (ATOM $variable "h")})} {$augend (CMPD $product {$multiplier (ATOM $variable "c")} {$multiplicand (ATOM $variable "f")})})}) MeddlePtSize40–X67.30442 pt leading 45.6522 pt topLeading 45.6522 pt topIndent 45.6522 pt bottomLeading ˜J–[66.97407 pt leading 53.48704 pt topLeading 53.48704 pt topIndent 37.48703 pt bottomLeading ˜—–[66.97407 pt leading 53.48704 pt topLeading 53.48704 pt topIndent 37.48703 pt bottomLeading š /˜/J–‡Artwork MeddleExprPostfix[66.97407 pt leading 53.48704 pt topLeading 53.48704 pt topIndent 37.48703 pt bottomLeading MeddleExpr‚qCaminoRealExpressionRepresentationVersion1.1 (CMPD $product {$multiplier (MTRX $matrix [2 2] {$r1c1 (ATOM $variable "e")} {$r1c2 (ATOM $variable "f")} {$r2c1 (ATOM $variable "g")} {$r2c2 (ATOM $variable "h")})} {$multiplicand (MTRX $matrix [2 2] {$r1c1 (ATOM $variable "a")} {$r1c2 (ATOM $variable "b")} {$r2c1 (ATOM $variable "c")} {$r2c2 (ATOM $variable "d")})}) MeddlePtSize40–[66.97407 pt leading 53.48704 pt topLeading 53.48704 pt topIndent 37.48703 pt bottomLeading ˜—–[66.97407 pt leading 53.48704 pt topLeading 53.48704 pt topIndent 37.48703 pt bottomLeading š ˜J–¼Artwork MeddleExprPostfix[67.03844 pt leading 45.51922 pt topLeading 45.51922 pt topIndent 45.51923 pt bottomLeading MeddleExpr‡&CaminoRealExpressionRepresentationVersion1.1 (MTRX $matrix [2 2] {$r1c1 (CMPD $sum {$addend (CMPD $product {$multiplier (ATOM $variable "f")} {$multiplicand (ATOM $variable "c")})} {$augend (CMPD $product {$multiplier (ATOM $variable "e")} {$multiplicand (ATOM $variable "a")})})} {$r1c2 (CMPD $sum {$addend (CMPD $product {$multiplier (ATOM $variable "f")} {$multiplicand (ATOM $variable "d")})} {$augend (CMPD $product {$multiplier (ATOM $variable "e")} {$multiplicand (ATOM $variable "b")})})} {$r2c1 (CMPD $sum {$addend (CMPD $product {$multiplier (ATOM $variable "h")} {$multiplicand (ATOM $variable "c")})} {$augend (CMPD $product {$multiplier (ATOM $variable "g")} {$multiplicand (ATOM $variable "a")})})} {$r2c2 (CMPD $sum {$addend (CMPD $product {$multiplier (ATOM $variable "h")} {$multiplicand (ATOM $variable "d")})} {$augend (CMPD $product {$multiplier (ATOM $variable "g")} {$multiplicand (ATOM $variable "b")})})}) MeddlePtSize40–[67.03844 pt leading 45.51922 pt topLeading 45.51922 pt topIndent 45.51923 pt bottomLeading ˜—J–[67.03844 pt leading 45.51922 pt topLeading 45.51922 pt topIndent 45.51923 pt bottomLeading ˜–[67.03844 pt leading 45.51922 pt topLeading 45.51922 pt topIndent 45.51923 pt bottomLeading š Ì˜ÌJ–[67.03844 pt leading 45.51922 pt topLeading 45.51922 pt topIndent 45.51923 pt bottomLeading ˜J–¬ Artwork MeddleExprPostfix[67.30442 pt leading 57.82998 pt topLeading 57.82998 pt topIndent 33.47443 pt bottomLeading MeddleExprŒCaminoRealExpressionRepresentationVersion1.1 (CMPD $eqFormula {$lhs (MTRX $matrix [2 2] {$r1c1 (CMPD $difference {$subtrahend (CMPD $product {$multiplier (ATOM $variable "f")} {$multiplicand (ATOM $variable "c")})} {$minuend (CMPD $product {$multiplier (ATOM $variable "g")} {$multiplicand (ATOM $variable "b")})})} {$r1c2 (CMPD $difference {$subtrahend (CMPD $sum {$addend (CMPD $difference {$subtrahend (CMPD $product {$multiplier (ATOM $variable "f")} {$multiplicand (ATOM $variable "d")})} {$minuend (CMPD $product {$multiplier (ATOM $variable "h")} {$multiplicand (ATOM $variable "b")})})} {$augend (CMPD $product {$multiplier (ATOM $variable "e")} {$multiplicand (ATOM $variable "b")})})} {$minuend (CMPD $product {$multiplier (ATOM $variable "f")} {$multiplicand (ATOM $variable "a")})})} {$r2c1 (CMPD $sum {$addend (CMPD $difference {$subtrahend (CMPD $sum {$addend (CMPD $negation {$a (CMPD $product {$multiplier (ATOM $variable "g")} {$multiplicand (ATOM $variable "d")})})} {$augend (CMPD $product {$multiplier (ATOM $variable "h")} {$multiplicand (ATOM $variable "c")})})} {$minuend (CMPD $product {$multiplier (ATOM $variable "e")} {$multiplicand (ATOM $variable "c")})})} {$augend (CMPD $product {$multiplier (ATOM $variable "g")} {$multiplicand (ATOM $variable "a")})})} {$r2c2 (CMPD $sum {$addend (CMPD $negation {$a (CMPD $product {$multiplier (ATOM $variable "f")} {$multiplicand (ATOM $variable "c")})})} {$augend (CMPD $product {$multiplier (ATOM $variable "g")} {$multiplicand (ATOM $variable "b")})})})} {$rhs (ATOM $integer "0")}) MeddlePtSize40–[67.30442 pt leading 57.82998 pt topLeading 57.82998 pt topIndent 33.47443 pt bottomLeading ˜—–[67.30442 pt leading 57.82998 pt topLeading 57.82998 pt topIndent 33.47443 pt bottomLeading š g˜gJ–·Artwork MeddleExprPostfix[31.93665 pt leading 34.86504 pt topLeading 34.86504 pt topIndent 21.07161 pt bottomLeading MeddleExpr„CaminoRealExpressionRepresentationVersion1.1 (CMPD $approachesFormula {$lhs (ATOM $variable "a")} {$rhs (CMPD $sum {$addend (CMPD $fraction {$numerator (CMPD $product {$multiplier (ATOM $variable "c")} {$multiplicand (ATOM $variable "e")})} {$denominator (ATOM $variable "g")})} {$augend (CMPD $difference {$subtrahend (ATOM $variable "d")} {$minuend (CMPD $fraction {$numerator (CMPD $product {$multiplier (ATOM $variable "c")} {$multiplicand (ATOM $variable "h")})} {$denominator (ATOM $variable "g")})})})}) MeddlePtSizeArtwork MeddleExprPostfix[35.50433 pt leading 38.36236 pt topLeading 38.36236 pt topIndent 21.14198 pt bottomLeading MeddleExpr‚CaminoRealExpressionRepresentationVersion1.1 (CMPD $approachesFormula {$lhs (ATOM $variable "b")} {$rhs (CMPD $fraction {$numerator (CMPD $product {$multiplier (ATOM $variable "c")} {$multiplicand (ATOM $variable "f")})} {$denominator (ATOM $variable "g")})}) MeddlePtSize–[35.50433 pt leading 38.36236 pt topLeading 38.36236 pt topIndent 21.14198 pt bottomLeading ˜ —–[35.50433 pt leading 38.36236 pt topLeading 38.36236 pt topIndent 21.14198 pt bottomLeading š D˜DJ–[67.03844 pt leading 45.51922 pt topLeading 45.51922 pt topIndent 45.51923 pt bottomLeading ˜———…—¨%