![]() |
aGrUM
0.16.0
|
namespace for constraint-based description of credal sets More...
Classes | |
class | LpCol |
Class representing a variable ( a column ) of a linear program, i.e. More... | |
class | LpExpr |
Class representing a linear expression. More... | |
class | LpInterface |
Class representing a linear program. More... | |
class | LpRow |
Class representing a row of the linear program, i.e. More... | |
Functions | |
void | swap (HashTable< LpCol, double > *&a, HashTable< LpCol, double > *&b) |
Swap the addresses of two pointers to hashTables. More... | |
std::ostream & | operator<< (std::ostream &out, const LpCol &col) |
std::ostream & | operator<< (std::ostream &out, const LpExpr &expr) |
std::ostream & | operator<< (std::ostream &out, const LpRow &row) |
template<typename T > | |
std::ostream & | operator<< (std::ostream &out, const LpInterface< T > &lpi) |
template<typename T2 > | |
LpExpr | operator+ (const LpExpr &lhs, const T2 &rhs) |
template<typename T2 > | |
LpExpr | operator- (const LpExpr &lhs, const T2 &rhs) |
Non-members operators + | |
template<typename T2 > | |
LpExpr | operator+ (LpExpr &&lhs, const T2 &rhs) |
Overload of operator + between anything ( a scalar, a variable or an expression ) and anything except a temporary expression. More... | |
template<typename T2 > | |
LpExpr | operator+ (LpExpr &lhs, const T2 &rhs) |
Overload of operator + between anything ( a scalar, a variable or an expression ) and anything except a temporary expression. More... | |
template<typename T1 , forbidden_type< T1, LpExpr > = 0> | |
LpExpr | operator+ (const T1 &lhs, LpExpr &&rhs) |
Overload of operator + between anything ( a scalar, a variable or an expression ) and a temporary expression. More... | |
template<typename T1 , forbidden_type< T1, LpExpr > = 0> | |
LpExpr | operator+ (const T1 &lhs, LpExpr &rhs) |
Overload of operator + between anything ( a scalar, a variable or an expression ) and anything except a temporary expression. More... | |
template<typename T2 , forbidden_type< T2, LpExpr > = 0> | |
LpExpr | operator+ (const LpCol &lhs, const T2 &rhs) |
operator+ between LpCol lhs and not LpExpr rhs More... | |
template<typename T1 , forbidden_type< T1, LpExpr > = 0, forbidden_type< T1, LpCol > = 0> | |
LpExpr | operator+ (const T1 &lhs, const LpCol &rhs) |
operator+ between neither LpExpr nor LpCol lhs and LpCol rhs More... | |
Non-members operators - | |
template<typename T2 > | |
LpExpr | operator- (LpExpr &&lhs, const T2 &rhs) |
Overload of operator - between anything ( a scalar, a variable or an expression ) and anything except a temporary expression. More... | |
template<typename T2 > | |
LpExpr | operator- (LpExpr &lhs, const T2 &rhs) |
Overload of operator - between anything ( a scalar, a variable or an expression ) and anything except a temporary expression. More... | |
template<typename T1 , forbidden_type< T1, LpExpr > = 0> | |
LpExpr | operator- (const T1 &lhs, LpExpr &&rhs) |
Overload of operator - between anything ( a scalar, a variable or an expression ) and a temporary expression. More... | |
template<typename T1 , forbidden_type< T1, LpExpr > = 0> | |
LpExpr | operator- (const T1 &lhs, LpExpr &rhs) |
Overload of operator - between anything ( a scalar, a variable or an expression ) and anything except a temporary expression. More... | |
template<typename T2 , forbidden_type< T2, LpExpr > = 0> | |
LpExpr | operator- (const LpCol &lhs, const T2 &rhs) |
operator- between LpCol lhs and not LpExpr rhs More... | |
template<typename T1 , forbidden_type< T1, LpExpr > = 0, forbidden_type< T1, LpCol > = 0> | |
LpExpr | operator- (const T1 &lhs, const LpCol &rhs) |
operator- between neither LpExpr nor LpCol lhs and LpCol rhs More... | |
Non-members operators * | |
template<typename SCALAR > | |
LpExpr | operator* (const SCALAR &lhs, const LpCol &rhs) |
Overload of operator * between a scalar and a variable. More... | |
template<typename SCALAR > | |
LpExpr | operator* (const LpCol &lhs, const SCALAR &rhs) |
Overload of operator * between a variable and a scalar. More... | |
Non-members operators <= | |
template<typename T2 > | |
LpExpr | operator<= (const LpExpr &lhs, T2 &&rhs) |
Overload of operator <= between anything and anything. More... | |
template<typename T2 > | |
LpExpr | operator<= (const LpCol &lhs, T2 &&rhs) |
Overload of operator <= between anything and anything. More... | |
template<typename T1 , forbidden_type< T1, LpExpr & > = 0, forbidden_type< T1, LpCol & > = 0> | |
LpExpr | operator<= (T1 &&lhs, const LpExpr &rhs) |
Overload of operator <= between anything and anything. More... | |
template<typename T1 , forbidden_type< T1, LpExpr & > = 0, forbidden_type< T1, LpCol & > = 0> | |
LpExpr | operator<= (T1 &&lhs, const LpCol &rhs) |
Overload of operator <= between anything and anything. More... | |
template<typename T2 > | |
LpExpr | operator<= (LpExpr &&lhs, T2 &&rhs) |
Overload of operator <= between anything and anything. More... | |
template<typename T2 > | |
LpExpr | operator<= (LpCol &&lhs, T2 &&rhs) |
Overload of operator <= between anything and anything. More... | |
template<typename T1 , forbidden_type< T1, LpExpr > = 0, forbidden_type< T1, LpCol > = 0> | |
LpExpr | operator<= (T1 &&lhs, LpExpr &&rhs) |
Overload of operator <= between anything and anything. More... | |
template<typename T1 , forbidden_type< T1, LpExpr > = 0, forbidden_type< T1, LpCol > = 0> | |
LpExpr | operator<= (T1 &&lhs, LpCol &&rhs) |
Overload of operator <= between anything and anything. More... | |
namespace for constraint-based description of credal sets
LpExpr gum::credal::lp::operator* | ( | const SCALAR & | lhs, |
const LpCol & | rhs | ||
) |
Overload of operator *
between a scalar and a variable.
lhs | the constant reference to the scalar on the left hand side of the operator. |
rhs | the constant reference to the variable on the right hand side of the operator. |
SCALAR | A scalar type ( integer or float ( any precision ) ) or a LpCol or a LpExpr . |
lhs
*
rhs
. Definition at line 1161 of file LpInterface_tpl.h.
References gum::credal::lp::LpExpr::multiply().
Referenced by gum::Set< gum::Potential< GUM_SCALAR > * >::empty(), gum::HashTableIteratorSafe< int, int >::operator*(), and gum::HashTableIterator< int, int >::operator*().
LpExpr gum::credal::lp::operator* | ( | const LpCol & | lhs, |
const SCALAR & | rhs | ||
) |
Overload of operator *
between a variable and a scalar.
lhs | the constant reference to the variable on the left hand side of the operator. |
rhs | the constant reference to the scalar on the right hand side of the operator. |
SCALAR | A scalar type ( integer or float ( any precision ) ) or a LpCol or a LpExpr . |
lhs
*
rhs
. Definition at line 1166 of file LpInterface_tpl.h.
References gum::credal::lp::LpExpr::multiply().
Overload of operator +
between anything ( a scalar, a variable or an expression ) and anything except a temporary expression.
Implements both the copy operator +
and move operator +
because operator +
is implemented on top of operators +=
. Because of template type deduction both lhs
and rhs
are "universal
references", i.e. either an lvalue or an rvalue reference. Therefor std::forward must be used to forward the type of lhs
and rhs
.
lhs | the rvalue reference to the temporary expression on the right hand side of the operator. |
rhs | the universal reference to either a scalar, a variable or a lvalue expression on the right hand side of the operator. |
lhs
+
rhs
. Definition at line 1043 of file LpInterface_tpl.h.
Referenced by gum::Set< gum::Potential< GUM_SCALAR > * >::operator+=(), gum::BijectionIteratorSafe< NodeId, GUM_SCALAR >::operator+=(), gum::BijectionIterator< int, int >::operator+=(), gum::HashTableIteratorSafe< int, int >::operator+=(), gum::HashTableConstIterator< Key, bool >::operator+=(), gum::HashTableIterator< int, int >::operator+=(), and gum::ListConstIterator< Val >::operator-=().
Overload of operator +
between anything ( a scalar, a variable or an expression ) and anything except a temporary expression.
Implements both the copy operator +
and move operator +
because operator +
is implemented on top of operators +=
. Because of template type deduction both lhs
and rhs
are "universal
references", i.e. either an lvalue or an rvalue reference. Therefor std::forward must be used to forward the type of lhs
and rhs
.
lhs | the rvalue reference to the temporary expression on the right hand side of the operator. |
rhs | the universal reference to either a scalar, a variable or a lvalue expression on the right hand side of the operator. |
lhs
+
rhs
. LpExpr gum::credal::lp::operator+ | ( | const T1 & | lhs, |
LpExpr && | rhs | ||
) |
Overload of operator +
between anything ( a scalar, a variable or an expression ) and a temporary expression.
This overload is used because only one side of the operator profit from move operation; the one with a temporary expression. If the expression if on the right hand side, we always add it first to profit from move operation. Otherwise another overload is used.
Implements both the copy operator +
and move operator +
because operator +
is implemented on top of operators +=
. Because of template type deduction lhs
is a "universal reference", i.e. either an lvalue or an rvalue reference. To force rvalue reference with template deduction one should use const : const T&& lhs : lhs is an rvalue reference and WILL be modified ( not intuitive const ). Therefor std::forward must be used to forward the type of lhs
. rhs
is an rvalue reference and std::move must be used to forward it's type.
lhs | the universal reference to either a scalar, a variable or an expression on the left hand side of the operator. |
rhs | the rvalue reference to the temporary expression on the right hand side of the operator. |
lhs
+
rhs
. Definition at line 1059 of file LpInterface_tpl.h.
LpExpr gum::credal::lp::operator+ | ( | const T1 & | lhs, |
LpExpr & | rhs | ||
) |
Overload of operator +
between anything ( a scalar, a variable or an expression ) and anything except a temporary expression.
Implements both the copy operator +
and move operator +
because operator +
is implemented on top of operators +=
. Because of template type deduction both lhs
and rhs
are "universal
references", i.e. either an lvalue or an rvalue reference. Therefor std::forward must be used to forward the type of lhs
and rhs
.
lhs | the rvalue reference to the temporary expression on the right hand side of the operator. |
rhs | the universal reference to either a scalar, a variable or a lvalue expression on the right hand side of the operator. |
lhs
+
rhs
. Definition at line 1068 of file LpInterface_tpl.h.
LpExpr gum::credal::lp::operator+ | ( | const LpCol & | lhs, |
const T2 & | rhs | ||
) |
operator+ between LpCol lhs and not LpExpr rhs
Definition at line 1076 of file LpInterface_tpl.h.
LpExpr gum::credal::lp::operator+ | ( | const T1 & | lhs, |
const LpCol & | rhs | ||
) |
operator+ between neither LpExpr nor LpCol lhs and LpCol rhs
Definition at line 1087 of file LpInterface_tpl.h.
Definition at line 1051 of file LpInterface_tpl.h.
Overload of operator -
between anything ( a scalar, a variable or an expression ) and anything except a temporary expression.
Implements both the copy operator -
and move operator -
because operator -
is implemented on top of operators -=
. Because of template type deduction both lhs
and rhs
are "universal
references", i.e. either an lvalue or an rvalue reference. Therefor std::forward must be used to forward the type of lhs
and rhs
.
lhs | the rvalue reference to the temporary expression on the right hand side of the operator. |
rhs | the universal reference to either a scalar, a variable or a lvalue expression on the right hand side of the operator. |
lhs
-rhs
.
Definition at line 1097 of file LpInterface_tpl.h.
Referenced by gum::Set< gum::Potential< GUM_SCALAR > * >::operator+().
Overload of operator -
between anything ( a scalar, a variable or an expression ) and anything except a temporary expression.
Implements both the copy operator -
and move operator -
because operator -
is implemented on top of operators -=
. Because of template type deduction both lhs
and rhs
are "universal
references", i.e. either an lvalue or an rvalue reference. Therefor std::forward must be used to forward the type of lhs
and rhs
.
lhs | the rvalue reference to the temporary expression on the right hand side of the operator. |
rhs | the universal reference to either a scalar, a variable or a lvalue expression on the right hand side of the operator. |
lhs
-rhs
.
LpExpr gum::credal::lp::operator- | ( | const T1 & | lhs, |
LpExpr && | rhs | ||
) |
Overload of operator -
between anything ( a scalar, a variable or an expression ) and a temporary expression.
This overload is used because only one side of the operator profit from move operation; the one with a temporary expression. If the expression if on the right hand side, we always add it first to profit from move operation. Otherwise another overload is used.
Implements both the copy operator -
and move operator -
because operator -
is implemented on top of operators -=
. Because of template type deduction lhs
is a "universal reference", i.e. either an lvalue or an rvalue reference. To force rvalue reference with template deduction one should use const : const T&& lhs : lhs is an rvalue reference and WILL be modified ( not intuitive const ). Therefor std::forward must be used to forward the type of lhs
. rhs
is an rvalue reference and std::move must be used to forward it's type.
lhs | the universal reference to either a scalar, a variable or an expression on the left hand side of the operator. |
rhs | the rvalue reference to the temporary expression on the right hand side of the operator. |
lhs
-
rhs
. Definition at line 1113 of file LpInterface_tpl.h.
LpExpr gum::credal::lp::operator- | ( | const T1 & | lhs, |
LpExpr & | rhs | ||
) |
Overload of operator -
between anything ( a scalar, a variable or an expression ) and anything except a temporary expression.
Implements both the copy operator -
and move operator -
because operator -
is implemented on top of operators -=
. Because of template type deduction both lhs
and rhs
are "universal
references", i.e. either an lvalue or an rvalue reference. Therefor std::forward must be used to forward the type of lhs
and rhs
.
lhs | the rvalue reference to the temporary expression on the right hand side of the operator. |
rhs | the universal reference to either a scalar, a variable or a lvalue expression on the right hand side of the operator. |
lhs
-rhs
.
Definition at line 1123 of file LpInterface_tpl.h.
LpExpr gum::credal::lp::operator- | ( | const LpCol & | lhs, |
const T2 & | rhs | ||
) |
operator- between LpCol lhs and not LpExpr rhs
lhs | the universal reference to either a scalar, a variable or an expression on the left hand side of the operator. |
rhs | the rvalue reference to the temporary expression on the right hand side of the operator. |
Definition at line 1132 of file LpInterface_tpl.h.
LpExpr gum::credal::lp::operator- | ( | const T1 & | lhs, |
const LpCol & | rhs | ||
) |
operator- between neither LpExpr nor LpCol lhs and LpCol rhs
lhs | the universal reference to either a scalar, a variable or an expression on the left hand side of the operator. |
rhs | the rvalue reference to the temporary expression on the right hand side of the operator. |
Definition at line 1143 of file LpInterface_tpl.h.
Definition at line 1105 of file LpInterface_tpl.h.
std::ostream& gum::credal::lp::operator<< | ( | std::ostream & | out, |
const LpCol & | col | ||
) |
out | The reference to the caller, i.e. left side of << . |
col | The constant reference to the variable whose representation we want. |
Definition at line 52 of file LpInterface_tpl.h.
References gum::credal::lp::LpCol::toString().
std::ostream& gum::credal::lp::operator<< | ( | std::ostream & | out, |
const LpExpr & | expr | ||
) |
Definition at line 336 of file LpInterface_tpl.h.
References gum::credal::lp::LpExpr::toString().
std::ostream& gum::credal::lp::operator<< | ( | std::ostream & | out, |
const LpRow & | row | ||
) |
out | the reference to the caller, i.e. left side of << . |
row | the constant reference to the row whose representation we want. |
Definition at line 713 of file LpInterface_tpl.h.
References gum::credal::lp::LpRow::toString().
std::ostream& gum::credal::lp::operator<< | ( | std::ostream & | out, |
const LpInterface< T > & | lpi | ||
) |
out | the reference to the caller, i.e. left side of << . |
lpi | the constant reference to the linear program whose representation we want. |
Definition at line 820 of file LpInterface_tpl.h.
Overload of operator <=
between anything and anything.
Implements both the copy operator <=
and move operator <=
. Because of template type deduction both lhs
and rhs
are "universal references", i.e. either an lvalue or an rvalue reference. Therefor std::forward must be used to forward the type of lhs
and rhs
.
lhs | the universal reference to either a ( temporary ) scalar, a ( temporary ) variable or a ( temporary ) expression on the left hand side of the operator. |
rhs | the universal reference to either a ( temporary ) scalar, a ( temporary ) variable or a ( temporary ) expression on the right hand side of the operator. |
T1 | A scalar type ( integer or float ( any precision ) ) or a LpCol or a LpExpr . |
T2 | A scalar type ( integer or float ( any precision ) ) or a LpCol or a LpExpr . |
lhs
<=
rhs
. Definition at line 1181 of file LpInterface_tpl.h.
References gum::credal::lp::LpExpr::lessThan().
Overload of operator <=
between anything and anything.
Implements both the copy operator <=
and move operator <=
. Because of template type deduction both lhs
and rhs
are "universal references", i.e. either an lvalue or an rvalue reference. Therefor std::forward must be used to forward the type of lhs
and rhs
.
lhs | the universal reference to either a ( temporary ) scalar, a ( temporary ) variable or a ( temporary ) expression on the left hand side of the operator. |
rhs | the universal reference to either a ( temporary ) scalar, a ( temporary ) variable or a ( temporary ) expression on the right hand side of the operator. |
T1 | A scalar type ( integer or float ( any precision ) ) or a LpCol or a LpExpr . |
T2 | A scalar type ( integer or float ( any precision ) ) or a LpCol or a LpExpr . |
lhs
<=
rhs
. Definition at line 1186 of file LpInterface_tpl.h.
References gum::credal::lp::LpExpr::lessThan().
LpExpr gum::credal::lp::operator<= | ( | T1 && | lhs, |
const LpExpr & | rhs | ||
) |
Overload of operator <=
between anything and anything.
Implements both the copy operator <=
and move operator <=
. Because of template type deduction both lhs
and rhs
are "universal references", i.e. either an lvalue or an rvalue reference. Therefor std::forward must be used to forward the type of lhs
and rhs
.
lhs | the universal reference to either a ( temporary ) scalar, a ( temporary ) variable or a ( temporary ) expression on the left hand side of the operator. |
rhs | the universal reference to either a ( temporary ) scalar, a ( temporary ) variable or a ( temporary ) expression on the right hand side of the operator. |
T1 | A scalar type ( integer or float ( any precision ) ) or a LpCol or a LpExpr . |
T2 | A scalar type ( integer or float ( any precision ) ) or a LpCol or a LpExpr . |
lhs
<=
rhs
. Definition at line 1193 of file LpInterface_tpl.h.
References gum::credal::lp::LpExpr::lessThan().
LpExpr gum::credal::lp::operator<= | ( | T1 && | lhs, |
const LpCol & | rhs | ||
) |
Overload of operator <=
between anything and anything.
Implements both the copy operator <=
and move operator <=
. Because of template type deduction both lhs
and rhs
are "universal references", i.e. either an lvalue or an rvalue reference. Therefor std::forward must be used to forward the type of lhs
and rhs
.
lhs | the universal reference to either a ( temporary ) scalar, a ( temporary ) variable or a ( temporary ) expression on the left hand side of the operator. |
rhs | the universal reference to either a ( temporary ) scalar, a ( temporary ) variable or a ( temporary ) expression on the right hand side of the operator. |
T1 | A scalar type ( integer or float ( any precision ) ) or a LpCol or a LpExpr . |
T2 | A scalar type ( integer or float ( any precision ) ) or a LpCol or a LpExpr . |
lhs
<=
rhs
. Definition at line 1200 of file LpInterface_tpl.h.
References gum::credal::lp::LpExpr::lessThan().
Overload of operator <=
between anything and anything.
Implements both the copy operator <=
and move operator <=
. Because of template type deduction both lhs
and rhs
are "universal references", i.e. either an lvalue or an rvalue reference. Therefor std::forward must be used to forward the type of lhs
and rhs
.
lhs | the universal reference to either a ( temporary ) scalar, a ( temporary ) variable or a ( temporary ) expression on the left hand side of the operator. |
rhs | the universal reference to either a ( temporary ) scalar, a ( temporary ) variable or a ( temporary ) expression on the right hand side of the operator. |
T1 | A scalar type ( integer or float ( any precision ) ) or a LpCol or a LpExpr . |
T2 | A scalar type ( integer or float ( any precision ) ) or a LpCol or a LpExpr . |
lhs
<=
rhs
. Definition at line 1206 of file LpInterface_tpl.h.
References gum::credal::lp::LpExpr::lessThan().
Overload of operator <=
between anything and anything.
Implements both the copy operator <=
and move operator <=
. Because of template type deduction both lhs
and rhs
are "universal references", i.e. either an lvalue or an rvalue reference. Therefor std::forward must be used to forward the type of lhs
and rhs
.
lhs | the universal reference to either a ( temporary ) scalar, a ( temporary ) variable or a ( temporary ) expression on the left hand side of the operator. |
rhs | the universal reference to either a ( temporary ) scalar, a ( temporary ) variable or a ( temporary ) expression on the right hand side of the operator. |
T1 | A scalar type ( integer or float ( any precision ) ) or a LpCol or a LpExpr . |
T2 | A scalar type ( integer or float ( any precision ) ) or a LpCol or a LpExpr . |
lhs
<=
rhs
. Definition at line 1211 of file LpInterface_tpl.h.
References gum::credal::lp::LpExpr::lessThan().
LpExpr gum::credal::lp::operator<= | ( | T1 && | lhs, |
LpExpr && | rhs | ||
) |
Overload of operator <=
between anything and anything.
Implements both the copy operator <=
and move operator <=
. Because of template type deduction both lhs
and rhs
are "universal references", i.e. either an lvalue or an rvalue reference. Therefor std::forward must be used to forward the type of lhs
and rhs
.
lhs | the universal reference to either a ( temporary ) scalar, a ( temporary ) variable or a ( temporary ) expression on the left hand side of the operator. |
rhs | the universal reference to either a ( temporary ) scalar, a ( temporary ) variable or a ( temporary ) expression on the right hand side of the operator. |
T1 | A scalar type ( integer or float ( any precision ) ) or a LpCol or a LpExpr . |
T2 | A scalar type ( integer or float ( any precision ) ) or a LpCol or a LpExpr . |
lhs
<=
rhs
. Definition at line 1218 of file LpInterface_tpl.h.
References gum::credal::lp::LpExpr::lessThan().
LpExpr gum::credal::lp::operator<= | ( | T1 && | lhs, |
LpCol && | rhs | ||
) |
Overload of operator <=
between anything and anything.
Implements both the copy operator <=
and move operator <=
. Because of template type deduction both lhs
and rhs
are "universal references", i.e. either an lvalue or an rvalue reference. Therefor std::forward must be used to forward the type of lhs
and rhs
.
lhs | the universal reference to either a ( temporary ) scalar, a ( temporary ) variable or a ( temporary ) expression on the left hand side of the operator. |
rhs | the universal reference to either a ( temporary ) scalar, a ( temporary ) variable or a ( temporary ) expression on the right hand side of the operator. |
T1 | A scalar type ( integer or float ( any precision ) ) or a LpCol or a LpExpr . |
T2 | A scalar type ( integer or float ( any precision ) ) or a LpCol or a LpExpr . |
lhs
<=
rhs
. Definition at line 1225 of file LpInterface_tpl.h.
References gum::credal::lp::LpExpr::lessThan().
|
inline |
Swap the addresses of two pointers to hashTables.
Used by move operations as the temporary will take care of the delete operations.
a | the address of the first pointer. |
b | the address of the second pointer. |
Definition at line 1035 of file LpInterface_tpl.h.
Referenced by gum::credal::lp::LpExpr::__addSide(), gum::credal::CNLoopyPropagation< GUM_SCALAR >::_makeInferenceByRandomOrder(), gum::credal::lp::LpExpr::LpExpr(), gum::credal::lp::LpRow::LpRow(), gum::credal::lp::LpExpr::operator+=(), gum::credal::lp::LpExpr::operator=(), gum::credal::lp::LpRow::operator=(), gum::SequenceImplementation< gum::prm::PRMClassElement< double > *, std::allocator< gum::prm::PRMClassElement< double > *>, std::is_scalar< gum::prm::PRMClassElement< double > *>::value >::operator=(), gum::HashTable< Val, Size, IndexAllocator >::resize(), and gum::List< const gum::Potential< GUM_SCALAR > * >::swap().