Lines Matching refs: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> outerProduct (const tcu::Vector<T, Cols>& a, const tcu::Vector<T, Rows>& b)
640 tcu::Matrix<T, Rows, Cols> retVal;
652 float determinant (const tcu::Matrix<float, Size, Size>& mat);
655 float determinant<2> (const tcu::Matrix<float, 2, 2>& mat)
661 float determinant<3> (const tcu::Matrix<float, 3, 3>& mat)
672 float determinant<4> (const tcu::Matrix<float, 4, 4>& mat)
707 tcu::Matrix<float, Size, Size> inverse (const tcu::Matrix<float, Size, Size>& mat);
710 tcu::Matrix<float, 2, 2> inverse<2> (const tcu::Matrix<float, 2, 2>& mat)
713 tcu::Matrix<float, 2, 2> retVal;
726 tcu::Matrix<float, 3, 3> inverse<3> (const tcu::Matrix<float, 3, 3>& mat)
752 const tcu::Matrix<float, 2, 2> invA = inverse(tcu::Matrix<float, 2, 2>(areaA));
753 const tcu::Matrix<float, 2, 1> matB = tcu::Matrix<float, 2, 1>(areaB);
754 const tcu::Matrix<float, 1, 2> matC = tcu::Matrix<float, 1, 2>(areaC);
755 const tcu::Matrix<float, 1, 1> matD = tcu::Matrix<float, 1, 1>(areaD);
758 const tcu::Matrix<float, 2, 2> zeroMat = Mat2(nullField);
760 const tcu::Matrix<float, 2, 2> blockA = invA + invA*matB*schurComplement*matC*invA;
761 const tcu::Matrix<float, 2, 1> blockB = (zeroMat-invA)*matB*schurComplement;
762 const tcu::Matrix<float, 1, 2> blockC = matC*invA*(-schurComplement);
776 tcu::Matrix<float, 4, 4> inverse<4> (const tcu::Matrix<float, 4, 4>& mat)
804 const tcu::Matrix<float, 2, 2> invA = inverse(Mat2(areaA));
805 const tcu::Matrix<float, 2, 2> matB = Mat2(areaB);
806 const tcu::Matrix<float, 2, 2> matC = Mat2(areaC);
807 const tcu::Matrix<float, 2, 2> matD = Mat2(areaD);
809 const tcu::Matrix<float, 2, 2> schurComplement = inverse(matD - matC*invA*matB);
810 const tcu::Matrix<float, 2, 2> zeroMat = Mat2(nullField);
812 const tcu::Matrix<float, 2, 2> blockA = invA + invA*matB*schurComplement*matC*invA;
813 const tcu::Matrix<float, 2, 2> blockB = (zeroMat-invA)*matB*schurComplement;
814 const tcu::Matrix<float, 2, 2> blockC = (zeroMat-schurComplement)*matC*invA;
815 const tcu::Matrix<float, 2, 2> blockD = schurComplement;
831 tcu::Matrix<T, Rows, Cols> negate (const tcu::Matrix<T, Rows, Cols>& mat)
833 tcu::Matrix<T, Rows, Cols> retVal;
845 tcu::Matrix<T, Rows, Cols> increment (const tcu::Matrix<T, Rows, Cols>& mat)
847 tcu::Matrix<T, Rows, Cols> retVal;
857 tcu::Matrix<T, Rows, Cols> decrement (const tcu::Matrix<T, Rows, Cols>& mat)
859 tcu::Matrix<T, Rows, Cols> retVal;
1179 // Matrix-scalar.
1190 // Matrix-vector.
1201 // Vector-matrix.
1212 // Matrix-matrix.
1269 // Unary Matrix.
1320 void writeMatrixConstructor (std::ostream& str, const tcu::Matrix<float, Rows, Cols>& m)
1419 DE_ASSERT(!isInDynMat0 || !isInDynMat1); // Only single dynamic matrix input is allowed.
1650 // \todo [2012-02-14 pyry] Compute better values for matrix tests.
1655 m_userAttribTransforms[attribNdx]( 0, 3) = 0.2f; // !< prevent matrix*vec from going into zero (assuming vec.w != 0)
1752 // \note GLES3 supports transpose in matrix upload.
1770 : TestCaseGroup(context, "matrix", "Matrix Tests")
1789 { "add", "Matrix addition tests", OP_ADD, true, true },
1790 { "sub", "Matrix subtraction tests", OP_SUB, true, true },
1791 { "mul", "Matrix multiplication tests", OP_MUL, true, true },
1792 { "div", "Matrix division tests", OP_DIV, true, true },
1793 { "matrixcompmult", "Matrix component-wise multiplication tests", OP_COMP_MUL, false, true },
1794 { "outerproduct", "Matrix outerProduct() tests", OP_OUTER_PRODUCT, false, true },
1795 { "transpose", "Matrix transpose() tests", OP_TRANSPOSE, false, true },
1796 { "determinant", "Matrix determinant() tests", OP_DETERMINANT, false, true },
1797 { "inverse", "Matrix inverse() tests", OP_INVERSE, false, true },
1798 { "unary_addition", "Matrix unary addition tests", OP_UNARY_PLUS, false, false },
1799 { "negation", "Matrix negation tests", OP_NEGATION, false, false },
1800 { "pre_increment", "Matrix prefix increment tests", OP_PRE_INCREMENT, false, false },
1801 { "pre_decrement", "Matrix prefix decrement tests", OP_PRE_DECREMENT, false, false },
1802 { "post_increment", "Matrix postfix increment tests", OP_POST_INCREMENT, false, false },
1803 { "post_decrement", "Matrix postfix decrement tests", OP_POST_DECREMENT, false, false },
1804 { "add_assign", "Matrix add into tests", OP_ADD_INTO, false, false },
1805 { "sub_assign", "Matrix subtract from tests", OP_SUBTRACT_FROM, false, false },
1806 { "mul_assign", "Matrix multiply into tests", OP_MULTIPLY_INTO, false, false },
1807 { "div_assign", "Matrix divide into tests", OP_DIVIDE_INTO, false, false },
1818 { "const", "Constant matrix input", INPUTTYPE_CONST },
1819 { "uniform", "Uniform matrix input", INPUTTYPE_UNIFORM },
1820 { "dynamic", "Dynamic matrix input", INPUTTYPE_DYNAMIC }
1824 { "dynamic", "Dynamic matrix input", INPUTTYPE_DYNAMIC }
1885 // Matrix-scalar \note For div cases we use uniform input.
1887 inGroup->addChild(new ShaderMatrixCase(m_context, (baseName + "float_vertex").c_str(), "Matrix-scalar case", matIn, scalarIn, op, true));
1888 inGroup->addChild(new ShaderMatrixCase(m_context, (baseName + "float_fragment").c_str(), "Matrix-scalar case", matIn, scalarIn, op, false));
1893 // Matrix-vector.
1897 inGroup->addChild(new ShaderMatrixCase(m_context, (baseName + getDataTypeName(colVecType) + "_vertex").c_str(), "Matrix-vector case", matIn, colVecIn, op, true));
1898 inGroup->addChild(new ShaderMatrixCase(m_context, (baseName + getDataTypeName(colVecType) + "_fragment").c_str(), "Matrix-vector case", matIn, colVecIn, op, false));
1900 // Vector-matrix.
1905 inGroup->addChild(new ShaderMatrixCase(m_context, (vecMatName + "_vertex").c_str(), "Vector-matrix case", rowVecIn, matIn, op, true));
1906 inGroup->addChild(new ShaderMatrixCase(m_context, (vecMatName + "_fragment").c_str(), "Vector-matrix case", rowVecIn, matIn, op, false));
1911 // Arithmetic matrix-matrix multiplication.
1915 inGroup->addChild(new ShaderMatrixCase(m_context, (baseName + getDataTypeName(otherMatIn.dataType) + "_vertex").c_str(), "Matrix-matrix case", matIn, otherMatIn, op, true));
1916 inGroup->addChild(new ShaderMatrixCase(m_context, (baseName + getDataTypeName(otherMatIn.dataType) + "_fragment").c_str(), "Matrix-matrix case", matIn, otherMatIn, op, false));
1923 inGroup->addChild(new ShaderMatrixCase(m_context, (baseName + matTypeName + "_vertex").c_str(), "Matrix-matrix case", matIn, otherMatIn, op, true));
1924 inGroup->addChild(new ShaderMatrixCase(m_context, (baseName + matTypeName + "_fragment").c_str(), "Matrix-matrix case", matIn, otherMatIn, op, false));
1940 inGroup->addChild(new ShaderMatrixCase(m_context, (baseName + "float_vertex").c_str(), "Matrix case", matIn, voidInput, op, true));
1941 inGroup->addChild(new ShaderMatrixCase(m_context, (baseName + "float_fragment").c_str(), "Matrix case", matIn, voidInput, op, false));
1948 inGroup->addChild(new ShaderMatrixCase(m_context, (baseName + "float_vertex").c_str(), "Matrix assignment case", matIn, otherMatIn, op, true));
1949 inGroup->addChild(new ShaderMatrixCase(m_context, (baseName + "float_fragment").c_str(), "Matrix assignment case", matIn, otherMatIn, op, false));