2 #ifndef OPENGM_OPERATION_AND_HXX
3 #define OPENGM_OPERATION_AND_HXX
15 {
return static_cast<T
>(
true); }
20 { out =
static_cast<T
>(
true); }
23 template<
class T1,
class T2>
24 static void op(
const T1& in, T2& out)
28 template<
class T1,
class T2,
class T3>
29 static void op(
const T1& in1,
const T2& in2, T3& out)
31 static void op(
const bool& in1,
const bool& in2,
bool& out)
40 static bool bop(
const T& in1,
const T& in2)
41 {
return (in1 & in2); }
42 static bool bop(
const bool& in1,
const bool& in2)
43 {
return (in1 && in2); }
47 static bool ibop(
const T& in1,
const T& in2)
48 {
return !(in1 & in2); }
49 static bool ibop(
const bool& in1,
const bool& in2)
50 {
return !(in1 && in2); }
55 #endif // #ifndef OPENGM_OPERATION_AND_HXX
static void op(const T1 &in, T2 &out)
operation (in-place)
static bool ibop(const bool &in1, const bool &in2)
static bool bop(const bool &in1, const bool &in2)
static bool hasbop()
bool operation flag
static bool ibop(const T &in1, const T &in2)
inverse boolean operation
static T neutral()
neutral element (with return)
static void op(const T1 &in1, const T2 &in2, T3 &out)
operation (not in-place)
static void op(const bool &in1, const bool &in2, bool &out)
static bool bop(const T &in1, const T &in2)
boolean operation
Conjunction as a binary operation.
static void neutral(T &out)
neutral element (call by reference)