13#ifndef ETISS_ERRORDEFINITION_H_
14#define ETISS_ERRORDEFINITION_H_
20#if defined(__GXX_EXPERIMENTAL_CXX0X) || __cplusplus >= 201103L
21#define ETISS_USE_CPP11 1
23#define ETISS_USE_CPP11 0
48 Error(
bool persistent,
int id = -1,
const std::string &name =
"");
64 template <
typename iterateableT>
65 BitFlip(
const iterateableT &positions,
int id = -1,
const std::string &name =
"") :
Error(
false, id, name)
69 for (
typename iterateableT::const_iterator iter = positions.begin(); iter != positions.end(); ++iter)
81 var = (T)(var ^
flip);
94 template <
typename iterateableT>
95 StuckHigh(
const iterateableT &positions,
int id = -1,
const std::string &name =
"") :
Error(
true, id, name)
99 for (
typename iterateableT::const_iterator iter = positions.begin(); iter != positions.end(); ++iter)
102 high |= 1 << (*iter);
108 template <
typename T>
111 var = (T)(var |
high);
124 template <
typename iterateableT>
125 StuckLow(
const iterateableT &positions,
int id = -1,
const std::string &name =
"") :
Error(
true, id, name)
129 for (
typename iterateableT::const_iterator iter = positions.begin(); iter != positions.end(); ++iter)
139 template <
typename T>
142 var = (T)(var &
low);
general configuration and logging
static __inline__ uint32_t
static __inline__ uint64_t
static __inline__ uint8_t
static __inline__ uint16_t
virtual const std::vector< unsigned > affectedBits()
std::vector< unsigned > flipped_positions
BitFlip(const iterateableT &positions, int id=-1, const std::string &name="")
virtual void apply(uint64_t &var)
base error class for simple handling of errors
virtual void apply(uint64_t &var)=0
virtual const std::vector< unsigned > affectedBits()=0
std::vector< unsigned > high_positions
virtual void apply(uint64_t &var)
virtual const std::vector< unsigned > affectedBits()
StuckHigh(const iterateableT &positions, int id=-1, const std::string &name="")
virtual void apply(uint64_t &var)
std::vector< unsigned > low_positions
virtual const std::vector< unsigned > affectedBits()
StuckLow(const iterateableT &positions, int id=-1, const std::string &name="")