Changeset 9ab682 for src


Ignore:
Timestamp:
Jun 8, 2016, 8:21:02 PM (9 years ago)
Author:
Frederik Heber <heber@…>
Children:
0c9476
Parents:
e480fc
git-author:
Frederik Heber <heber@…> (05/27/16 18:33:31)
git-committer:
Frederik Heber <heber@…> (06/08/16 20:21:02)
Message:

FIX: Made getGridPointsPerAxis() not use pow() in every call.

Location:
src/Fragmentation/Summation/SetValues
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/Fragmentation/Summation/SetValues/SamplingGrid.cpp

    re480fc r9ab682  
    436436    size_t *total) const
    437437{
    438   const size_t gridpoints_axis = getGridPointsPerAxis();
    439438  const double round_offset =
    440439      (std::numeric_limits<size_t>::round_style == std::round_toward_zero) ?
     
    445444      // the grids have to be compatible (equal level), should always be on
    446445      // discrete grid point locations.
    447       const double delta = (double)gridpoints_axis/(end[index] - begin[index]);
     446      const double delta = getDeltaPerAxis(index);
    448447      // delta is conversion factor from box length to discrete length, i.e. number of points
    449       pre_offset[index] = delta*(smaller_wbegin[index] - larger_wbegin[index])+round_offset;
    450       length[index] = delta*(smaller_wend[index] - smaller_wbegin[index])+round_offset;
    451       post_offset[index] = delta*(larger_wend[index] - smaller_wend[index])+round_offset;
    452       total[index] = delta*(larger_wend[index] - larger_wbegin[index])+round_offset;
     448      pre_offset[index] = (smaller_wbegin[index] - larger_wbegin[index])/delta+round_offset;
     449      length[index] = (smaller_wend[index] - smaller_wbegin[index])/delta+round_offset;
     450      post_offset[index] = (larger_wend[index] - smaller_wend[index])/delta+round_offset;
     451      total[index] = (larger_wend[index] - larger_wbegin[index])/delta+round_offset;
    453452    } else {
    454453      pre_offset[index] = 0;
  • src/Fragmentation/Summation/SetValues/SamplingGridProperties_inline.hpp

    re480fc r9ab682  
    4242const size_t SamplingGridProperties::getGridPointsPerAxis() const
    4343{
    44   return pow(2, level);
     44  static size_t s_gridpoints = 1;
     45  static int s_level = 0;
     46  if (s_level != level) {
     47    s_gridpoints = 1 << level;
     48    s_level = level;
     49  }
     50  return s_gridpoints;
    4551}
    4652
Note: See TracChangeset for help on using the changeset viewer.