00001
00002
00004
00005
00006
00007
00009
00010 #ifndef glm_core_func_matrix
00011 #define glm_core_func_matrix
00012
00013 namespace glm
00014 {
00015 namespace test{
00016 void main_core_func_matrix();
00017 }
00018
00019 namespace core{
00020 namespace function{
00022 namespace matrix{
00023
00027 template <typename matType>
00028 matType matrixCompMult(
00029 matType const & x,
00030 matType const & y);
00031
00036 template <typename vecType, typename matType>
00037 matType outerProduct(
00038 vecType const & c,
00039 vecType const & r);
00040
00043 template <typename matType>
00044 typename matType::transpose_type transpose(
00045 matType const & x);
00046
00049 template <typename T>
00050 typename detail::tmat2x2<T>::value_type determinant(
00051 detail::tmat2x2<T> const & m);
00052
00055 template <typename T>
00056 typename detail::tmat3x3<T>::value_type determinant(
00057 detail::tmat3x3<T> const & m);
00058
00061 template <typename T>
00062 typename detail::tmat4x4<T>::value_type determinant(
00063 detail::tmat4x4<T> const & m);
00064
00067 template <typename T>
00068 detail::tmat2x2<T> inverse(
00069 detail::tmat2x2<T> const & m);
00070
00073 template <typename T>
00074 detail::tmat3x3<T> inverse(
00075 detail::tmat3x3<T> const & m);
00076
00079 template <typename T>
00080 detail::tmat4x4<T> inverse(
00081 detail::tmat4x4<T> const & m);
00082
00083 }
00084 }
00085 }
00086
00087 using namespace core::function::matrix;
00088 }
00089
00090 #include "func_matrix.inl"
00091
00092 #endif//glm_core_func_matrix