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 core{
00016 namespace function{
00018 namespace matrix{
00019
00022
00028 template <typename matType>
00029 matType matrixCompMult(
00030 matType const & x,
00031 matType const & y);
00032
00039 template <typename vecType, typename matType>
00040 matType outerProduct(
00041 vecType const & c,
00042 vecType const & r);
00043
00048 template <typename matType>
00049 typename matType::transpose_type transpose(
00050 matType const & x);
00051
00056 template <typename T>
00057 typename detail::tmat2x2<T>::value_type determinant(
00058 detail::tmat2x2<T> const & m);
00059
00064 template <typename T>
00065 typename detail::tmat3x3<T>::value_type determinant(
00066 detail::tmat3x3<T> const & m);
00067
00072 template <typename T>
00073 typename detail::tmat4x4<T>::value_type determinant(
00074 detail::tmat4x4<T> const & m);
00075
00080 template <typename T>
00081 detail::tmat2x2<T> inverse(
00082 detail::tmat2x2<T> const & m);
00083
00088 template <typename T>
00089 detail::tmat3x3<T> inverse(
00090 detail::tmat3x3<T> const & m);
00091
00096 template <typename T>
00097 detail::tmat4x4<T> inverse(
00098 detail::tmat4x4<T> const & m);
00099
00101
00102 }
00103 }
00104 }
00105
00106 using namespace core::function::matrix;
00107 }
00108
00109 #include "func_matrix.inl"
00110
00111 #endif//glm_core_func_matrix