salsa  0.3.0
NDimMapping.cc
1 #include "NDimMapping.hh"
2 #include <bitset>
3 #include <math.h>
4 #include <string>
5 
6 namespace Salsa {
7 NDimMapping::NDimMapping(int nBin, int lBorder, int rBorder)
8  : Object(), mNBin(nBin), mLBorder(lBorder), mRBorder(rBorder)
9 {
11 
12  SPD_INFO("disregard - {} {}", mLBorder, mRBorder); // Clang actually marks these two as unused...
13 
14  const int p = ceil(log2(mNBin));
15  int size = pow(2, p);
16  for (auto i = 1; i <= size; i++) {
17  std::bitset<64> b(i - 1);
18  std::string bits = b.to_string<char, std::char_traits<char>, std::allocator<char>>();
19  bits.erase(0, 64 - p);
20  mBinMap.insert(std::make_pair(std::make_pair(i, bits), i));
21  }
22 }
24 {
26 }
27 
28 void NDimMapping::print() const
29 {
30 
31  SPD_INFO("nBin [{}] pow [{}]", mNBin, ceil(log2(mNBin)));
32  for (auto it = mBinMap.begin(); it != mBinMap.end(); ++it) SPD_INFO("[{}] [{}]", it->first.first, it->first.second);
33 }
34 } // namespace Salsa
NDimMapping(int nBin=8, int lBorder=-4, int rBorder=3)
Definition: NDimMapping.cc:7
void print() const
Printing.
Definition: NDimMapping.cc:28
int mNBin
number of bin&#39;s
Definition: NDimMapping.hh:22
std::map< std::pair< int, std::string >, int > mBinMap
bin mapping
Definition: NDimMapping.hh:25
Definition: Actor.cc:2
Base Salsa Object class
Definition: Object.hh:15
virtual ~NDimMapping()
Definition: NDimMapping.cc:23
int mRBorder
right border
Definition: NDimMapping.hh:24
int mLBorder
left border
Definition: NDimMapping.hh:23