Changes in src/analysis_correlation.hpp [bd61b41:790807]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/analysis_correlation.hpp
rbd61b41 r790807 51 51 CorrelationToPointMap *PeriodicCorrelationToPoint(MoleculeListClass * const &molecules, const element * const type, const Vector *point, const int ranges[NDIM] ); 52 52 CorrelationToSurfaceMap *PeriodicCorrelationToSurface(MoleculeListClass * const &molecules, const element * const type, const Tesselation * const Surface, const LinkedCell *LC, const int ranges[NDIM] ); 53 intGetBin ( const double value, const double BinWidth, const double BinStart );53 double GetBin ( const double value, const double BinWidth, const double BinStart ); 54 54 void OutputCorrelation( ofstream * const file, const BinPairMap * const map ); 55 void OutputPairCorrelation( ofstream * const file, const BinPairMap * const map );56 void OutputCorrelationToPoint( ofstream * const file, const BinPairMap * const map );57 void OutputCorrelationToSurface( ofstream * const file, const BinPairMap * const map );55 void OutputPairCorrelation( ofstream * const file, const PairCorrelationMap * const map ); 56 void OutputCorrelationToPoint( ofstream * const file, const CorrelationToPointMap * const map ); 57 void OutputCorrelationToSurface( ofstream * const file, const CorrelationToSurfaceMap * const map ); 58 58 59 59 … … 90 90 /** Puts given correlation data into bins of given size (histogramming). 91 91 * Note that BinStart and BinEnd are desired to fill the complete range, even where Bins are zero. If this is 92 * not desired, give equal BinStart and BinEnd and the map will contain only Bins where the count is one or greater. 92 * not desired, give equal BinStart and BinEnd and the map will contain only Bins where the count is one or greater. If a 93 * certain start value is desired, give BinStart and a BinEnd that is smaller than BinStart, then only BinEnd will be 94 * calculated automatically, i.e. BinStart = 0. and BinEnd = -1. . 93 95 * Also note that the range is given inclusive, i.e. [ BinStart, BinEnd ]. 94 96 * \param *map map of doubles to count … … 101 103 { 102 104 BinPairMap *outmap = new BinPairMap; 103 int bin = 0;105 double bin = 0.; 104 106 double start = 0.; 105 107 double end = 0.; … … 114 116 if (BinStart == BinEnd) { // if same, find range ourselves 115 117 GetMinMax( map, start, end); 116 } else { // if not, initialise range to zero 118 } else if (BinEnd < BinStart) { // if BinEnd smaller, just look for new max 119 GetMinMax( map, start, end); 120 start = BinStart; 121 } else { // else take both values 117 122 start = BinStart; 118 123 end = BinEnd; 119 for ( int runner = 0; runner <= ceil((end-start)/BinWidth); runner++)120 outmap->insert( pair<double, int> ( (double)runner*BinWidth+start, 0) );124 for (double runner = start; runner <= end; runner += BinWidth) 125 outmap->insert( pair<double, int> (runner, 0) ); 121 126 } 122 127 123 128 for (typename T::iterator runner = map->begin(); runner != map->end(); ++runner) { 124 129 bin = GetBin (runner->first, BinWidth, start); 125 BinPairMapInserter = outmap->insert ( pair<double, int> ( (double)bin*BinWidth+start, 1) );130 BinPairMapInserter = outmap->insert ( pair<double, int> (bin, 1) ); 126 131 if (!BinPairMapInserter.second) { // bin already present, increase 127 132 BinPairMapInserter.first->second += 1;
Note:
See TracChangeset
for help on using the changeset viewer.