Home || Architecture || Video Search || Visual Search || Scripts || Applications || Important Messages || OGL || Src

MatFunc.h

Go to the documentation of this file.
00001 #ifndef Impala_Core_Matrix_MatFunc_h
00002 #define Impala_Core_Matrix_MatFunc_h
00003 
00004 //#include "Data/Basis/CxStd.h"
00005 //#include "Data/Basis/CxStream.h"
00006 //#include "Core/Array/Element/NativeTypes.h"
00007 //#include "Data/Container/CxArrayFunc.h"
00008 
00009 namespace Impala
00010 {
00011 namespace Core
00012 {
00013 namespace Matrix
00014 {
00015 
00016 
00017 /******************* matrix inquiry *******************/
00018 
00019 template<class ArrayT>
00020 inline int
00021 MatNrRow(ArrayT* array)
00022 {
00023     return array->mCH;
00024 }
00025 
00026 template<class ArrayT>
00027 inline int
00028 MatNrCol(ArrayT* array)
00029 {
00030     return array->mCW;
00031 }
00032 
00033 template<class ArrayT>
00034 inline int
00035 MatNrElem(ArrayT* array)
00036 {
00037     return array->mCW * array->mCH;
00038 }
00039 
00040 template<class ArrayT>
00041 inline int
00042 MatInc(ArrayT* array, int r, int c)
00043 {
00044     return r * array->W() * ArrayT::ElemSize() + c * ArrayT::ElemSize();
00045 }
00046 
00047 // Dirty : only valid for scalar and bw == 0 and bh == 0!
00048 template<class ArrayT>
00049 inline typename ArrayT::StorType*
00050 MatE(ArrayT* array, int r=0, int c=0)
00051 {
00052     //return array->mData + MatInc(array, r, c);
00053     return array->mData + r*array->mCW + c;
00054 }
00055 
00056 /******************* matrix manipulation *******************/
00057 
00058 /* please remember: this function does *not* initialize memory.
00059    use SetVal(matrix, 0.0) afterwards to initialize to 0. */
00060 template<class ArrayT>
00061 ArrayT*
00062 MatCreate(int nRow, int nCol, typename ArrayT::StorType* data = 0,
00063           bool isWrapper = false)
00064 {
00065     return new ArrayT(nCol, nRow, 0, 0, data, isWrapper);
00066 }
00067 
00068 } // namespace Matrix
00069 } // namespace Core
00070 } // namespace Impala
00071 
00072 #endif

Generated on Fri Mar 19 09:31:15 2010 for ImpalaSrc by  doxygen 1.5.1