Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef MTH_H
00012 #define MTH_H
00013
00014 #include "mthTensor.h"
00015
00021 namespace mth {
00022
00024 template <class T>
00025 Vector<T,3> cross(Vector<T,3> const& a, Vector<T,3> const& b);
00026
00028 template <class T>
00029 Matrix<T,3,3> cross(Vector<T,3> const& a);
00030
00032 template <class T, unsigned N>
00033 Vector<T,N> project(Vector<T,N> const& a, Vector<T,N> const& b);
00034
00036 template <class T, unsigned N>
00037 Vector<T,N> reject(Vector<T,N> const& a, Vector<T,N> const& b);
00038
00040 template <class T, unsigned M, unsigned N>
00041 Matrix<T,M,N> transpose(Matrix<T,M,N> const& a);
00042
00044 template <class T>
00045 T determinant(Matrix<T,2,2> const& a);
00046
00048 template <class T>
00049 T determinant(Matrix<T,3,3> const& a);
00050
00052 template <class T>
00053 Matrix<T,2,2> inverse(Matrix<T,2,2> const& a);
00054
00056 template <class T>
00057 Matrix<T,3,3> inverse(Matrix<T,3,3> const& a);
00058
00060 template <class T>
00061 T trace(Tensor<T> const& a);
00062
00064 template <class T>
00065 T norm(Tensor<T> const& a);
00066
00068 template <class T>
00069 T determinant(Tensor<T> const& a);
00070
00072 template <class T>
00073 void transpose(Tensor<T> const& a, Tensor<T>& r);
00074
00076 template <class T>
00077 void inverse(Tensor<T> const& a, Tensor<T>& r);
00078
00080 template <class T>
00081 Tensor<T> eye(unsigned d);
00082
00083 }
00084
00085 #endif