bool operator != (const PxMat44& a, const PxMat44& b) { PX_ASSERT((((size_t)&a) & 0xf) == 0); // verify 16 byte alignment PX_ASSERT((((size_t)&b) & 0xf) == 0); // verify 16 byte alignment int allEq = true; typedef Simd4fLoadFactory loadFactory; const Simd4f ca1 = loadFactory(&a.column0.x); const Simd4f cb1 = loadFactory(&b.column0.x); allEq &= allEqual(ca1, cb1); const Simd4f ca2 = loadFactory(&a.column1.x); const Simd4f cb2 = loadFactory(&b.column1.x); allEq &= allEqual(ca2, cb2); const Simd4f ca3 = loadFactory(&a.column2.x); const Simd4f cb3 = loadFactory(&b.column2.x); allEq &= allEqual(ca3, cb3); const Simd4f ca4 = loadFactory(&a.column3.x); const Simd4f cb4 = loadFactory(&b.column3.x); allEq &= allEqual(ca4, cb4); return allEq == 0; }
static int transposeMatrix_test() { double correctAnswer[] = { 0.7947243, 0.7410866, 0.326298433, 0.003083023, 0.6722109, 0.3647373, 0.916388121, 0.594728339 }; double result[testMatrix1Rows * testMatrix1Columns]; transposeMatrix(testMatrix1, testMatrix1Rows, testMatrix1Columns, result); return (allEqual(result, correctAnswer, testMatrix1Columns * testMatrix1Rows)); }
///Returns whether the Rect has an area/volume/... bool empty() const { return !allEqual(size, 0); }