matrix_util.h

Go to the documentation of this file.
00001 #ifndef MATRIX_UTIL_H
00002 #define MATRIX_UTIL_H
00003 
00004 // utility functions to fill with random data
00005 
00006 template<class V>
00007 void fillRandomVec(TRandom & r, V  & v, unsigned int len, unsigned int start = 0, double offset = 1) {
00008   for(unsigned int i = start; i < len+start; ++i)
00009       v[i] = r.Rndm() + offset;
00010 }
00011 
00012 template<class M>
00013 void fillRandomMat(TRandom & r, M  & m, unsigned int first, unsigned int second, unsigned int start = 0, double offset = 1) {
00014   for(unsigned int i = start; i < first+start; ++i)
00015     for(unsigned int j = start; j < second+start; ++j)
00016       m(i,j) = r.Rndm() + offset;
00017 }
00018 
00019 template<class M>
00020 void fillRandomSym(TRandom & r, M  & m, unsigned int first, unsigned int start = 0, double offset = 1) {
00021   for(unsigned int i = start; i < first+start; ++i) { 
00022     for(unsigned int j = i; j < first+start; ++j) { 
00023       if ( i != j ) { 
00024         m(i,j) = r.Rndm() + offset;
00025         m(j,i) = m(i,j);
00026       }      
00027       else // add extra offset to make no singular when inverting
00028         m(i,i) = r.Rndm() + 3*offset;
00029     }
00030   }
00031 }
00032 
00033 #endif

Generated on Tue Jul 5 14:43:11 2011 for ROOT_528-00b_version by  doxygen 1.5.1