def _mmult(self, a, b):
<EOL>return [<EOL>a[<NUM_LIT:0>] * b[<NUM_LIT:0>] + a[<NUM_LIT:1>] * b[<NUM_LIT:3>],<EOL>a[<NUM_LIT:0>] * b[<NUM_LIT:1>] + a[<NUM_LIT:1>] * b[<NUM_LIT:4>],<EOL><NUM_LIT:0>,<EOL>a[<NUM_LIT:3>] * b[<NUM_LIT:0>] + a[<NUM_LIT:4>] * b[<NUM_LIT:3>],<EOL>a[<NUM_LIT:3>] * b[<NUM_LIT:1>] + a[<NUM_LIT:4>] * b[<NUM_LIT:4>],<EOL><NUM_LIT:0>,<EOL>a[<NUM_LIT:6>] * b[<NUM_LIT:0>] + a[<NUM_LIT:7>] * b[<NUM_LIT:3>] + b[<NUM_LIT:6>],<EOL>a[<NUM_LIT:6>] * b[<NUM_LIT:1>] + a[<NUM_LIT:7>] * b[<NUM_LIT:4>] + b[<NUM_LIT:7>],<EOL><NUM_LIT:1><EOL>]<EOL>
Returns the 3x3 matrix multiplication of A and B.
            Note that scale(), translate(), rotate() work with premultiplication,
            e.g. the matrix A followed by B = BA and not AB.