private static void dMULTIPLYOP2_333(DMatrix3 A, DMatrix3C B, DMatrix3C C) { // A.v[0] = dDOT(B.v, 0, C.v, 0); // A.v[1] = dDOT(B.v, 0, C.v, 4); // A.v[2] = dDOT(B.v, 0, C.v, 8); // A.v[4] = dDOT(B.v, 4, C.v, 0); // A.v[5] = dDOT(B.v, 4, C.v, 4); // A.v[6] = dDOT(B.v, 4, C.v, 8); // A.v[8] = dDOT(B.v, 8, C.v, 0); // A.v[9] = dDOT(B.v, 8, C.v, 4); // A.v[10] = dDOT(B.v, 8, C.v, 8); // A.v[0] = B.v[0]*C.v[0] + B.v[1]*C.v[1] + B.v[2]*C.v[2]; // A.v[1] = B.v[0]*C.v[4] + B.v[1]*C.v[5] + B.v[2]*C.v[6]; // A.v[2] = B.v[0]*C.v[8] + B.v[1]*C.v[9] + B.v[2]*C.v[10]; // A.v[4] = B.v[4]*C.v[0] + B.v[5]*C.v[1] + B.v[6]*C.v[2]; // A.v[5] = B.v[4]*C.v[4] + B.v[5]*C.v[5] + B.v[6]*C.v[6]; // A.v[6] = B.v[4]*C.v[8] + B.v[5]*C.v[9] + B.v[6]*C.v[10]; // A.v[8] = B.v[8]*C.v[0] + B.v[9]*C.v[1] + B.v[10]*C.v[2]; // A.v[9] = B.v[8]*C.v[4] + B.v[9]*C.v[5] + B.v[10]*C.v[6]; // A.v[10] = B.v[8]*C.v[8] + B.v[9]*C.v[9] + B.v[10]*C.v[10]; A.set00( B.dotRowRow( 0, C, 0) ); A.set01( B.dotRowRow( 0, C, 1) ); A.set02( B.dotRowRow( 0, C, 2) ); A.set10( B.dotRowRow( 1, C, 0) ); A.set11( B.dotRowRow( 1, C, 1) ); A.set12( B.dotRowRow( 1, C, 2) ); A.set20( B.dotRowRow( 2, C, 0) ); A.set21( B.dotRowRow( 2, C, 1) ); A.set22( B.dotRowRow( 2, C, 2) ); }
private static void dMULTIPLYOP2_333(DMatrix3 A, DMatrix3C B, DMatrix3C C) { // A.v[0] = dDOT(B.v, 0, C.v, 0); // A.v[1] = dDOT(B.v, 0, C.v, 4); // A.v[2] = dDOT(B.v, 0, C.v, 8); // A.v[4] = dDOT(B.v, 4, C.v, 0); // A.v[5] = dDOT(B.v, 4, C.v, 4); // A.v[6] = dDOT(B.v, 4, C.v, 8); // A.v[8] = dDOT(B.v, 8, C.v, 0); // A.v[9] = dDOT(B.v, 8, C.v, 4); // A.v[10] = dDOT(B.v, 8, C.v, 8); // A.v[0] = B.v[0]*C.v[0] + B.v[1]*C.v[1] + B.v[2]*C.v[2]; // A.v[1] = B.v[0]*C.v[4] + B.v[1]*C.v[5] + B.v[2]*C.v[6]; // A.v[2] = B.v[0]*C.v[8] + B.v[1]*C.v[9] + B.v[2]*C.v[10]; // A.v[4] = B.v[4]*C.v[0] + B.v[5]*C.v[1] + B.v[6]*C.v[2]; // A.v[5] = B.v[4]*C.v[4] + B.v[5]*C.v[5] + B.v[6]*C.v[6]; // A.v[6] = B.v[4]*C.v[8] + B.v[5]*C.v[9] + B.v[6]*C.v[10]; // A.v[8] = B.v[8]*C.v[0] + B.v[9]*C.v[1] + B.v[10]*C.v[2]; // A.v[9] = B.v[8]*C.v[4] + B.v[9]*C.v[5] + B.v[10]*C.v[6]; // A.v[10] = B.v[8]*C.v[8] + B.v[9]*C.v[9] + B.v[10]*C.v[10]; A.set00( B.dotRowRow( 0, C, 0) ); A.set01( B.dotRowRow( 0, C, 1) ); A.set02( B.dotRowRow( 0, C, 2) ); A.set10( B.dotRowRow( 1, C, 0) ); A.set11( B.dotRowRow( 1, C, 1) ); A.set12( B.dotRowRow( 1, C, 2) ); A.set20( B.dotRowRow( 2, C, 0) ); A.set21( B.dotRowRow( 2, C, 1) ); A.set22( B.dotRowRow( 2, C, 2) ); }