{"ScriptPreparationCode":"class Matrix {\r\n a = 1;\r\n b = 0;\r\n c = 0\r\n d = 1;\r\n tx = 0\r\n ty = 0;\r\n}\r\n\r\nvar matrixObject = new Matrix();\r\nvar matrixObject2 = new Matrix();\r\nvar matrixObjectOut = new Matrix();\r\n\r\nvar matrixArray = new Float32Array([1, 0, 0, 1, 0, 0]);\r\nvar matrixArray2 = new Float32Array([1, 0, 0, 1, 0, 0]);\r\nvar matrixArrayOut = new Float32Array([1, 0, 0, 1, 0, 0]);\r\n\r\nfunction multiplyMatrixObject(m1, m2, out) {\r\n out.a = (m1.a * m2.a) \u002B (m1.b * m2.c);\r\n out.b = (m1.a * m2.b) \u002B (m1.b * m2.d);\r\n out.c = (m1.c * m2.a) \u002B (m1.d * m2.c);\r\n out.d = (m1.c * m2.b) \u002B (m1.d * m2.d);\r\n out.tx = (m1.tx * m2.a) \u002B (m1.ty * m2.c) \u002B m2.tx;\r\n out.ty = (m1.tx * m2.b) \u002B (m1.ty * m2.d) \u002B m2.ty;\r\n}\r\n\r\nfunction multiplyMatrixArray(m1, m2, out) {\r\n out[0] = (m1[0] * m2[0]) \u002B (m1[1] * m2[2]);\r\n out[1] = (m1[0] * m2[1]) \u002B (m1[1] * m2[3]);\r\n out[2] = (m1[2] * m2[0]) \u002B (m1[3] * m2[2]);\r\n out[3] = (m1[2] * m2[1]) \u002B (m1[3] * m2[3]);\r\n out[4] = (m1[4] * m2[0]) \u002B (m1[5] * m2[2]) \u002B m2[4];\r\n out[5] = (m1[4] * m2[1]) \u002B (m1[5] * m2[3]) \u002B m2[5];\r\n}","TestCases":[{"Name":"Matrix Object","Code":"multiplyMatrixObject(matrixObject,matrixObject2, matrixObjectOut);","IsDeferred":false},{"Name":"Matrix Array","Code":"multiplyMatrixArray(matrixArray,matrixArray2, matrixArrayOut);","IsDeferred":false}]}