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

VecFunc.h

Go to the documentation of this file.
00001 #ifndef Impala_Core_Matrix_VecFunc_h
00002 #define Impala_Core_Matrix_VecFunc_h
00003 
00004 //#include "Data/Basis/CxStd.h"
00005 //#include "Data/Basis/CxStream.h"
00006 //#include "Data/Element/CxNativeTypes.h"
00007 //#include "Data/Container/CxArrayFunc.h"
00008 
00009 namespace Impala
00010 {
00011 namespace Core
00012 {
00013 namespace Matrix
00014 {
00015 
00016 
00017 /******************* vector inquiry *******************/
00018 
00019 template<class ArrayT>
00020 inline int
00021 VecNrElem(ArrayT* array)
00022 {
00023     return array->mCW * array->mCH;
00024 }
00025 
00026 template<class ArrayT>
00027 inline int
00028 VecInc(ArrayT* array, int i)
00029 {
00030     return i * ArrayT::ElemSize();
00031 }
00032 
00033 // Dirty : only valid for scalar and bw == 0 and bh == 0!
00034 template<class ArrayT>
00035 inline typename ArrayT::StorType*
00036 VecE(ArrayT* array, int i=0)
00037 {
00038     //return array->mData + VecInc(array, i);
00039     return array->mData + i;
00040 }
00041 
00042 /******************* vector manipulation *******************/
00043 
00044 template<class ArrayT>
00045 ArrayT*
00046 VecCreate(int nElem, typename ArrayT::StorType* data = 0,
00047           bool isWrapper = false)
00048 {
00049     return new ArrayT(nElem, 1, 0, 0, data, isWrapper);
00050 }
00051 
00052 } // namespace Matrix
00053 } // namespace Core
00054 } // namespace Impala
00055 
00056 #endif

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