salsa 0.7.1
Loading...
Searching...
No Matches
NDimMapping.cc
1#include <bitset>
2#include <math.h>
3#include <string>
4#include "NDimMapping.hh"
5
6namespace Salsa {
7NDimMapping::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}
27
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
int mRBorder
right border
int mLBorder
left border
std::map< std::pair< int, std::string >, int > mBinMap
bin mapping
virtual ~NDimMapping()
void print() const
Printing.
int mNBin
number of bin's
NDimMapping(int nBin=8, int lBorder=-4, int rBorder=3)
Definition NDimMapping.cc:7