Changeset a5d4c3 for src/Fragmentation/Summation/SetValues/SamplingGrid.cpp
- Timestamp:
- Jun 8, 2016, 8:29:24 PM (9 years ago)
- Children:
- f84241
- Parents:
- 0c9476
- git-author:
- Frederik Heber <heber@…> (05/27/16 18:34:23)
- git-committer:
- Frederik Heber <heber@…> (06/08/16 20:29:24)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Fragmentation/Summation/SetValues/SamplingGrid.cpp
r0c9476 ra5d4c3 424 424 boost::bind(addElements, _1, _2, boost::cref(prefactor)), 425 425 sourcewindow); 426 } 427 428 void SamplingGrid::getDiscreteWindowIndices( 429 size_t _wbegin[NDIM], 430 size_t _wlength[NDIM], 431 size_t _wend[NDIM]) const 432 { 433 const double round_offset = 434 (std::numeric_limits<size_t>::round_style == std::round_toward_zero) ? 435 0.5 : 0.; // need offset to get to round_toward_nearest behavior 436 for(size_t index=0;index<NDIM;++index) { 437 if (fabs(end[index] - begin[index]) > std::numeric_limits<double>::epsilon()*1e4) { 438 // we refrain from using floor/ceil as the window's starts and ends, 439 // the grids have to be compatible (equal level), should always be on 440 // discrete grid point locations. 441 const double delta = getDeltaPerAxis(index); 442 // delta is conversion factor from box length to discrete length, i.e. number of points 443 _wbegin[index] = (begin_window[index] - begin[index])/delta+round_offset; 444 _wlength[index] = (end_window[index] - begin_window[index])/delta+round_offset; 445 _wend[index] = (end_window[index] - begin[index])/delta+round_offset; 446 } else { 447 _wbegin[index] = 0; 448 _wlength[index] = 0; 449 _wend[index] = 0; 450 } 451 // total is used as safe-guard against loss due to discrete conversion 452 ASSERT( (_wend[index] - _wbegin[index]) == _wlength[index], 453 "SamplingGrid::getDiscreteWindowCopyIndices() - end - begin is not equal to length for " 454 +toString(index)+"th component."); 455 } 426 456 } 427 457
Note:
See TracChangeset
for help on using the changeset viewer.
