2 #ifndef OPENGM_OPERATION_OR_HXX
3 #define OPENGM_OPERATION_OR_HXX
15 {
return static_cast<T
>(
false); }
20 { out =
static_cast<T
>(
false); }
25 {
return static_cast<T
>(
true); }
30 { out =
static_cast<T
>(
true); }
33 template<
class T1,
class T2>
34 static void op(
const T1& in, T2& out)
38 template<
class T1,
class T2,
class T3>
39 static void op(
const T1& in1,
const T2& in2, T3& out)
41 static void op(
const bool& in1,
const bool& in2,
bool& out)
50 static bool bop(
const T& in1,
const T& in2)
51 {
return (in1 | in2); }
52 static bool bop(
const bool& in1,
const bool& in2)
53 {
return (in1 || in2); }
57 static bool ibop(
const T& in1,
const T& in2)
58 {
return !(in1 | in2); }
59 static bool ibop(
const bool& in1,
const bool& in2)
60 {
return !(in1 || in2); }
65 #endif // #ifndef OPENGM_OPERATION_OR_HXX
static bool hasbop()
bool operation flag
static void op(const bool &in1, const bool &in2, bool &out)
static bool bop(const T &in1, const T &in2)
boolean operation
static T ineutral()
inverse neutral element (with return)
static bool ibop(const bool &in1, const bool &in2)
static T neutral()
neutral element (with return)
static bool bop(const bool &in1, const bool &in2)
static void op(const T1 &in, T2 &out)
operation (in-place)
static void op(const T1 &in1, const T2 &in2, T3 &out)
operation (not in-place)
static bool ibop(const T &in1, const T &in2)
inverse boolean operation
static void ineutral(T &out)
inverse neutral element (call by reference)
Disjunction as a binary operation.
static void neutral(T &out)
neutral element (call by reference)