00001 #ifndef MATRIX_UTIL_H
00002 #define MATRIX_UTIL_H
00003
00004
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
00028 m(i,i) = r.Rndm() + 3*offset;
00029 }
00030 }
00031 }
00032
00033 #endif