HARPO  5.1.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
BData.cxx
Go to the documentation of this file.
1 //
10 
12 #include "BData.h"
13 #include <iostream>
14 #include <bitset>
15 
16 namespace Pmm2
17 {
18 
20  {
21  //std::cout << "Del " << this << std::endl;
22  }
23 
24  BData::BData() : ldata()
25  {
26  // std::cout << "Def " << this << std::endl;
27  }
28 
29  BData::BData(const size_t nbits,const u_int32_t *data) : ldata()
30  {
31  for(size_t i=0;i<nbits/32;i++) {
32  ldata += std::bitset<32>(data[i]).to_string();
33  }
34  //std::cout << "New " << this << std::endl;
35  }
36 
37  void BData::Clear()
38  {
39  ldata.clear();
40  }
41 
42  void BData::Set(const size_t nbits, const u_int32_t *data)
43  {
44  ldata.clear();
45  for(size_t i=0;i<nbits/32;i++) {
46  ldata += std::bitset<32>(data[i]).to_string();
47  }
48  }
49 
50  //----- Print Bit Line
51  void BData::Print() const
52  {
53  std::cout << this << " : " << ldata << std::endl;
54  }
55  // Bit
56  u_int32_t BData::operator()(size_t i) const
57  {
58  char val = ldata[i];
59  return (u_int32_t) (val - '0');
60  }
62  u_int32_t BData::operator()(size_t i,size_t j) const
63  {
65  return ((u_int32_t) std::bitset<32>(ldata.substr(i,j-i+1)).to_ulong());
66  }
67 
69  u_int32_t BData::asGray(size_t i,size_t j) const
70  {
71  u_int32_t num = (*this)(i,j);
72  u_int32_t mask;
73  for (mask = num >> 1; mask != 0; mask = mask >> 1)
74  {
75  num = num ^ mask;
76  }
77  return num;
78  }
79 
80 } //namespace Pmm2
81 
82 
83 // //Slice of bit in as LSB word
84 // u_int32_t BData::Slice(u_int32_t bitnumber,u_int32_t nbits)
85 // {
86 // u_int32_t res = 0;
87 // u_int32_t mask = 0x1;
88 // for (u_int32_t i=0;i<nbits;i++)
89 // {
90 // res <<=1;
91 // if (TestBitNumber(bitnumber+i))
92 // {
93 // res |= mask;
94 // printf("1");
95 // } else {
96 // printf("0");
97 // }
98 // }
99 // printf("\n");
100 // return res;
101 // }
102 
void Clear()
Definition: BData.cxx:37
u_int32_t asGray(size_t i, size_t j) const
Slice as integer in Gray code.
Definition: BData.cxx:69
u_int32_t operator()(size_t i) const
Definition: BData.cxx:56
virtual ~BData()
Definition: BData.cxx:19
std::string ldata
Definition: BData.h:38
void Set(const size_t nbits, const u_int32_t *data)
Definition: BData.cxx:42
void Print() const
Definition: BData.cxx:51