1499 const int MAT4_SIZE = 16;
1500 const int VEC4_SIZE = 4;
1502 const float inMat41[MAT4_SIZE] = {
1503 0.234023f, 2.472349f, 1.984244f, 2.23348f,
1504 0.634124f, 0.234975f, 6.384572f, 0.82368f,
1505 0.738028f, 1.845237f, 1.934721f, 1.62343f,
1506 0.339023f, 3.472452f, 1.324714f, 4.23852f,
1509 const float inMat42[MAT4_SIZE] = {
1510 1.640232f, 4.472349f, 0.983244f, 1.23343f,
1511 2.834124f, 8.234975f, 0.082572f, 3.82464f,
1512 3.238028f, 2.845237f, 0.331721f, 4.62544f,
1513 4.539023f, 9.472452f, 3.520714f, 2.23252f,
1516 const float scalar = 1.323298f;
1517 const float x = 0.432234f;
1518 const float y = 1.333229f;
1519 const float z = 2.535292f;
1520 const float w = 4.632234f;
1522 const float inVec4[VEC4_SIZE] = {2.323478f, 0.238482f, 4.223783f, 7.238238f};
1523 const float inVec42[VEC4_SIZE] = {0.322374f, 8.258883f, 3.293683f, 2.838337f};
1525 float outMat4Opt[MAT4_SIZE] = {0};
1526 float outMat4C[MAT4_SIZE] = {0};
1527 float outVec4Opt[VEC4_SIZE] = {0};
1528 float outVec4C[VEC4_SIZE] = {0};
1531 MathUtilC::addMatrix(inMat41, scalar, outMat4C);
1533#ifdef INCLUDE_NEON32
1534 MathUtilNeon::addMatrix(inMat41, scalar, outMat4Opt);
1537#ifdef INCLUDE_NEON64
1538 MathUtilNeon64::addMatrix(inMat41, scalar, outMat4Opt);
1545 __checkMathUtilResult(
"inline static void addMatrix(const float* m, float scalar, float* dst);", outMat4C, outMat4Opt, MAT4_SIZE);
1547 memset(outMat4C, 0,
sizeof(outMat4C));
1548 memset(outMat4Opt, 0,
sizeof(outMat4Opt));
1551 MathUtilC::addMatrix(inMat41, inMat42, outMat4C);
1553#ifdef INCLUDE_NEON32
1554 MathUtilNeon::addMatrix(inMat41, inMat42, outMat4Opt);
1557#ifdef INCLUDE_NEON64
1558 MathUtilNeon64::addMatrix(inMat41, inMat42, outMat4Opt);
1565 __checkMathUtilResult(
"inline static void addMatrix(const float* m1, const float* m2, float* dst);", outMat4C, outMat4Opt, MAT4_SIZE);
1567 memset(outMat4C, 0,
sizeof(outMat4C));
1568 memset(outMat4Opt, 0,
sizeof(outMat4Opt));
1571 MathUtilC::subtractMatrix(inMat41, inMat42, outMat4C);
1573#ifdef INCLUDE_NEON32
1574 MathUtilNeon::subtractMatrix(inMat41, inMat42, outMat4Opt);
1577#ifdef INCLUDE_NEON64
1578 MathUtilNeon64::subtractMatrix(inMat41, inMat42, outMat4Opt);
1585 __checkMathUtilResult(
"inline static void subtractMatrix(const float* m1, const float* m2, float* dst);", outMat4C, outMat4Opt, MAT4_SIZE);
1587 memset(outMat4C, 0,
sizeof(outMat4C));
1588 memset(outMat4Opt, 0,
sizeof(outMat4Opt));
1591 MathUtilC::multiplyMatrix(inMat41, scalar, outMat4C);
1593#ifdef INCLUDE_NEON32
1594 MathUtilNeon::multiplyMatrix(inMat41, scalar, outMat4Opt);
1597#ifdef INCLUDE_NEON64
1598 MathUtilNeon64::multiplyMatrix(inMat41, scalar, outMat4Opt);
1605 __checkMathUtilResult(
"inline static void multiplyMatrix(const float* m, float scalar, float* dst);", outMat4C, outMat4Opt, MAT4_SIZE);
1607 memset(outMat4C, 0,
sizeof(outMat4C));
1608 memset(outMat4Opt, 0,
sizeof(outMat4Opt));
1611 MathUtilC::multiplyMatrix(inMat41, inMat42, outMat4C);
1613#ifdef INCLUDE_NEON32
1614 MathUtilNeon::multiplyMatrix(inMat41, inMat42, outMat4Opt);
1617#ifdef INCLUDE_NEON64
1618 MathUtilNeon64::multiplyMatrix(inMat41, inMat42, outMat4Opt);
1625 __checkMathUtilResult(
"inline static void multiplyMatrix(const float* m1, const float* m2, float* dst);", outMat4C, outMat4Opt, MAT4_SIZE);
1627 memset(outMat4C, 0,
sizeof(outMat4C));
1628 memset(outMat4Opt, 0,
sizeof(outMat4Opt));
1631 MathUtilC::negateMatrix(inMat41, outMat4C);
1633#ifdef INCLUDE_NEON32
1634 MathUtilNeon::negateMatrix(inMat41, outMat4Opt);
1637#ifdef INCLUDE_NEON64
1638 MathUtilNeon64::negateMatrix(inMat41, outMat4Opt);
1645 __checkMathUtilResult(
"inline static void negateMatrix(const float* m, float* dst);", outMat4C, outMat4Opt, MAT4_SIZE);
1647 memset(outMat4C, 0,
sizeof(outMat4C));
1648 memset(outMat4Opt, 0,
sizeof(outMat4Opt));
1651 MathUtilC::transposeMatrix(inMat41, outMat4C);
1653#ifdef INCLUDE_NEON32
1654 MathUtilNeon::transposeMatrix(inMat41, outMat4Opt);
1657#ifdef INCLUDE_NEON64
1658 MathUtilNeon64::transposeMatrix(inMat41, outMat4Opt);
1665 __checkMathUtilResult(
"inline static void transposeMatrix(const float* m, float* dst);", outMat4C, outMat4Opt, MAT4_SIZE);
1667 memset(outMat4C, 0,
sizeof(outMat4C));
1668 memset(outMat4Opt, 0,
sizeof(outMat4Opt));
1671 MathUtilC::transformVec4(inMat41, x, y, z, w, outVec4C);
1673#ifdef INCLUDE_NEON32
1674 MathUtilNeon::transformVec4(inMat41, x, y, z, w, outVec4Opt);
1677#ifdef INCLUDE_NEON64
1678 MathUtilNeon64::transformVec4(inMat41, x, y, z, w, outVec4Opt);
1685 __checkMathUtilResult(
"inline static void transformVec4(const float* m, float x, float y, float z, float w, float* dst);", outVec4C, outVec4Opt, VEC4_SIZE);
1687 memset(outVec4C, 0,
sizeof(outVec4C));
1688 memset(outVec4Opt, 0,
sizeof(outVec4Opt));
1691 MathUtilC::transformVec4(inMat41, inVec4, outVec4C);
1693#ifdef INCLUDE_NEON32
1694 MathUtilNeon::transformVec4(inMat41, inVec4, outVec4Opt);
1697#ifdef INCLUDE_NEON64
1698 MathUtilNeon64::transformVec4(inMat41, inVec4, outVec4Opt);
1705 __checkMathUtilResult(
"inline static void transformVec4(const float* m, const float* v, float* dst);", outVec4C, outVec4Opt, VEC4_SIZE);
1707 memset(outVec4C, 0,
sizeof(outVec4C));
1708 memset(outVec4Opt, 0,
sizeof(outVec4Opt));
1711 MathUtilC::crossVec3(inVec4, inVec42, outVec4C);
1713#ifdef INCLUDE_NEON32
1714 MathUtilNeon::crossVec3(inVec4, inVec42, outVec4Opt);
1717#ifdef INCLUDE_NEON64
1718 MathUtilNeon64::crossVec3(inVec4, inVec42, outVec4Opt);
1725 __checkMathUtilResult(
"inline static void crossVec3(const float* v1, const float* v2, float* dst);", outVec4C, outVec4Opt, VEC4_SIZE);
1727 memset(outVec4C, 0,
sizeof(outVec4C));
1728 memset(outVec4Opt, 0,
sizeof(outVec4Opt));
static void __checkMathUtilResult(const char *description, const float *a1, const float *a2, int size)
virtual void onEnter() override