Changeset 2105 for GTP/trunk/Lib/Vis/Preprocessing/src/Halton.cpp
- Timestamp:
- 02/08/07 15:46:23 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/Preprocessing/src/Halton.cpp
r2076 r2105 1 1 #include "Halton.h" 2 2 #include "PerfTimer.h" 3 4 #define PREGENERATE_HALTON 0 3 5 4 6 namespace GtpVisibilityPreprocessor { … … 25 27 Halton<5> dummmyHalton5(true); 26 28 Halton<6> dummmyHalton6(true); 29 30 31 int HaltonSequence::sPregeneratedDim = 0; 32 int HaltonSequence::sPregeneratedNumber = 0; 33 float *HaltonSequence::sPregeneratedValues = NULL; 27 34 35 #if PREGENERATE_HALTON 36 // pregenerate first 100k numbers for 6 dimensions 37 static HaltonSequence staticHalton(6, 200000); 38 #endif 39 40 // special construtor for pregenerating static halton sequences 41 HaltonSequence::HaltonSequence(const int dim, 42 const int number) { 43 44 sPregeneratedDim = 0; 45 sPregeneratedNumber = 0; 46 sPregeneratedValues = new float[number*dim]; 47 48 float *p = sPregeneratedValues; 49 int i; 50 for (i=0; i < number; i++, p+=dim) { 51 GetNext(dim, p); 52 } 53 54 sPregeneratedDim = dim; 55 sPregeneratedNumber = number; 56 } 57 28 58 void 29 59 HaltonSequence::GetNext(const int dimensions, float *p) 30 60 { 31 haltonTimer.Entry(); 32 for (int i=0; i < dimensions; i++) 33 p[i] = (float)GetNumber(i+1); 61 // haltonTimer.Entry(); 62 #if PREGENERATE_HALTON 63 if (index <= sPregeneratedNumber && dimensions <= sPregeneratedDim) { 64 float *pp = sPregeneratedValues + (sPregeneratedDim*(index-1)); 65 for (int i=0; i < dimensions; i++) 66 p[i] = pp[i]; 67 } else 68 #endif 69 { 70 for (int i=0; i < dimensions; i++) 71 p[i] = (float)GetNumber(i+1); 72 } 34 73 GenerateNext(); 35 haltonTimer.Exit();74 // haltonTimer.Exit(); 36 75 } 37 76
Note: See TracChangeset
for help on using the changeset viewer.