Home | History | Annotate | Download | only in functional

Lines Matching full:matrix

21  * \brief Shader matrix arithmetic tests.
32 * + matrix source
624 tcu::Matrix<T, Rows, Cols> matrixCompMult (const tcu::Matrix<T, Rows, Cols>& a, const tcu::Matrix<T, Rows, Cols>& b)
626 tcu::Matrix<T, Rows, Cols> retVal;
638 tcu::Matrix<T, Cols, Rows> transpose (const tcu::Matrix<T, Rows, Cols>& mat)
640 tcu::Matrix<T, Cols, Rows> retVal;
652 tcu::Matrix<T, Cols, Rows> outerProduct (const tcu::Vector<T, Cols>& a, const tcu::Vector<T, Rows>& b)
654 tcu::Matrix<T, Rows, Cols> retVal;
666 float determinant (const tcu::Matrix<float, Size, Size>& mat);
669 float determinant<2> (const tcu::Matrix<float, 2, 2>& mat)
675 float determinant<3> (const tcu::Matrix<float, 3, 3>& mat)
686 float determinant<4> (const tcu::Matrix<float, 4, 4>& mat)
721 tcu::Matrix<float, Size, Size> inverse (const tcu::Matrix<float, Size, Size>& mat);
724 tcu::Matrix<float, 2, 2> inverse<2> (const tcu::Matrix<float, 2, 2>& mat)
727 tcu::Matrix<float, 2, 2> retVal;
740 tcu::Matrix<float, 3, 3> inverse<3> (const tcu::Matrix<float, 3, 3>& mat)
766 const tcu::Matrix<float, 2, 2> invA = inverse(tcu::Matrix<float, 2, 2>(areaA));
767 const tcu::Matrix<float, 2, 1> matB = tcu::Matrix<float, 2, 1>(areaB);
768 const tcu::Matrix<float, 1, 2> matC = tcu::Matrix<float, 1, 2>(areaC);
769 const tcu::Matrix<float, 1, 1> matD = tcu::Matrix<float, 1, 1>(areaD);
772 const tcu::Matrix<float, 2, 2> zeroMat = Mat2(nullField);
774 const tcu::Matrix<float, 2, 2> blockA = invA + invA*matB*schurComplement*matC*invA;
775 const tcu::Matrix<float, 2, 1> blockB = (zeroMat-invA)*matB*schurComplement;
776 const tcu::Matrix<float, 1, 2> blockC = matC*invA*(-schurComplement);
790 tcu::Matrix<float, 4, 4> inverse<4> (const tcu::Matrix<float, 4, 4>& mat)
818 const tcu::Matrix<float, 2, 2> invA = inverse(Mat2(areaA));
819 const tcu::Matrix<float, 2, 2> matB = Mat2(areaB);
820 const tcu::Matrix<float, 2, 2> matC = Mat2(areaC);
821 const tcu::Matrix<float, 2, 2> matD = Mat2(areaD);
823 const tcu::Matrix<float, 2, 2> schurComplement = inverse(matD - matC*invA*matB);
824 const tcu::Matrix<float, 2, 2> zeroMat = Mat2(nullField);
826 const tcu::Matrix<float, 2, 2> blockA = invA + invA*matB*schurComplement*matC*invA;
827 const tcu::Matrix<float, 2, 2> blockB = (zeroMat-invA)*matB*schurComplement;
828 const tcu::Matrix<float, 2, 2> blockC = (zeroMat-schurComplement)*matC*invA;
829 const tcu::Matrix<float, 2, 2> blockD = schurComplement;
845 tcu::Matrix<T, Rows, Cols> negate (const tcu::Matrix<T, Rows, Cols>& mat)
847 tcu::Matrix<T, Rows, Cols> retVal;
859 tcu::Matrix<T, Rows, Cols> increment (const tcu::Matrix<T, Rows, Cols>& mat)
861 tcu::Matrix<T, Rows, Cols> retVal;
871 tcu::Matrix<T, Rows, Cols> decrement (const tcu::Matrix<T, Rows, Cols>& mat)
873 tcu::Matrix<T, Rows, Cols> retVal;
1193 // Matrix-scalar.
1204 // Matrix-vector.
1215 // Vector-matrix.
1226 // Matrix-matrix.
1283 // Unary Matrix.
1334 void writeMatrixConstructor (std::ostream& str, const tcu::Matrix<float, Rows, Cols>& m)
1433 DE_ASSERT(!isInDynMat0 || !isInDynMat1); // Only single dynamic matrix input is allowed.
1664 // \todo [2012-02-14 pyry] Compute better values for matrix tests.
1669 m_userAttribTransforms[attribNdx]( 0, 3) = 0.2f; // !< prevent matrix*vec from going into zero (assuming vec.w != 0)
1766 // \note GLES3 supports transpose in matrix upload.
1784 : TestCaseGroup(context, "matrix", "Matrix Tests")
1803 { "add", "Matrix addition tests", OP_ADD, true, true },
1804 { "sub", "Matrix subtraction tests", OP_SUB, true, true },
1805 { "mul", "Matrix multiplication tests", OP_MUL, true, true },
1806 { "div", "Matrix division tests", OP_DIV, true, true },
1807 { "matrixcompmult", "Matrix component-wise multiplication tests", OP_COMP_MUL, false, true },
1808 { "outerproduct", "Matrix outerProduct() tests", OP_OUTER_PRODUCT, false, true },
1809 { "transpose", "Matrix transpose() tests", OP_TRANSPOSE, false, true },
1810 { "determinant", "Matrix determinant() tests", OP_DETERMINANT, false, true },
1811 { "inverse", "Matrix inverse() tests", OP_INVERSE, false, true },
1812 { "unary_addition", "Matrix unary addition tests", OP_UNARY_PLUS, false, false },
1813 { "negation", "Matrix negation tests", OP_NEGATION, false, false },
1814 { "pre_increment", "Matrix prefix increment tests", OP_PRE_INCREMENT, false, false },
1815 { "pre_decrement", "Matrix prefix decrement tests", OP_PRE_DECREMENT, false, false },
1816 { "post_increment", "Matrix postfix increment tests", OP_POST_INCREMENT, false, false },
1817 { "post_decrement", "Matrix postfix decrement tests", OP_POST_DECREMENT, false, false },
1818 { "add_assign", "Matrix add into tests", OP_ADD_INTO, false, false },
1819 { "sub_assign", "Matrix subtract from tests", OP_SUBTRACT_FROM, false, false },
1820 { "mul_assign", "Matrix multiply into tests", OP_MULTIPLY_INTO, false, false },
1821 { "div_assign", "Matrix divide into tests", OP_DIVIDE_INTO, false, false },
1832 { "const", "Constant matrix input", INPUTTYPE_CONST },
1833 { "uniform", "Uniform matrix input", INPUTTYPE_UNIFORM },
1834 { "dynamic", "Dynamic matrix input", INPUTTYPE_DYNAMIC }
1838 { "dynamic", "Dynamic matrix input", INPUTTYPE_DYNAMIC }
1899 // Matrix-scalar \note For div cases we use uniform input.
1901 inGroup->addChild(new ShaderMatrixCase(m_context, (baseName + "float_vertex").c_str(), "Matrix-scalar case", matIn, scalarIn, op, true));
1902 inGroup->addChild(new ShaderMatrixCase(m_context, (baseName + "float_fragment").c_str(), "Matrix-scalar case", matIn, scalarIn, op, false));
1907 // Matrix-vector.
1911 inGroup->addChild(new ShaderMatrixCase(m_context, (baseName + getDataTypeName(colVecType) + "_vertex").c_str(), "Matrix-vector case", matIn, colVecIn, op, true));
1912 inGroup->addChild(new ShaderMatrixCase(m_context, (baseName + getDataTypeName(colVecType) + "_fragment").c_str(), "Matrix-vector case", matIn, colVecIn, op, false));
1914 // Vector-matrix.
1919 inGroup->addChild(new ShaderMatrixCase(m_context, (vecMatName + "_vertex").c_str(), "Vector-matrix case", rowVecIn, matIn, op, true));
1920 inGroup->addChild(new ShaderMatrixCase(m_context, (vecMatName + "_fragment").c_str(), "Vector-matrix case", rowVecIn, matIn, op, false));
1925 // Arithmetic matrix-matrix multiplication.
1929 inGroup->addChild(new ShaderMatrixCase(m_context, (baseName + getDataTypeName(otherMatIn.dataType) + "_vertex").c_str(), "Matrix-matrix case", matIn, otherMatIn, op, true));
1930 inGroup->addChild(new ShaderMatrixCase(m_context, (baseName + getDataTypeName(otherMatIn.dataType) + "_fragment").c_str(), "Matrix-matrix case", matIn, otherMatIn, op, false));
1937 inGroup->addChild(new ShaderMatrixCase(m_context, (baseName + matTypeName + "_vertex").c_str(), "Matrix-matrix case", matIn, otherMatIn, op, true));
1938 inGroup->addChild(new ShaderMatrixCase(m_context, (baseName + matTypeName + "_fragment").c_str(), "Matrix-matrix case", matIn, otherMatIn, op, false));
1954 inGroup->addChild(new ShaderMatrixCase(m_context, (baseName + "float_vertex").c_str(), "Matrix case", matIn, voidInput, op, true));
1955 inGroup->addChild(new ShaderMatrixCase(m_context, (baseName + "float_fragment").c_str(), "Matrix case", matIn, voidInput, op, false));
1962 inGroup->addChild(new ShaderMatrixCase(m_context, (baseName + "float_vertex").c_str(), "Matrix assignment case", matIn, otherMatIn, op, true));
1963 inGroup->addChild(new ShaderMatrixCase(m_context, (baseName + "float_fragment").c_str(), "Matrix assignment case", matIn, otherMatIn, op, false));