![]() |
aGrUM
0.20.2
a C++ library for (probabilistic) graphical models
|
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 | |
std::ostream & | operator<< (std::ostream &out, const LpRow &row) |
void | swap (HashTable< LpCol, double > *&a, HashTable< LpCol, double > *&b) |
Swap the addresses of two pointers to hashTables. More... | |
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 492 of file LpInterface_tpl.h.
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 497 of file LpInterface_tpl.h.
Definition at line 382 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 374 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
. 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 390 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 399 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 407 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 418 of file LpInterface_tpl.h.
Definition at line 436 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 428 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
.
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 444 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 454 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 463 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 474 of file LpInterface_tpl.h.
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 158 of file LpInterface_tpl.h.
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 641 of file LpInterface.cpp.
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 512 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 517 of file LpInterface_tpl.h.
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 524 of file LpInterface_tpl.h.
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 531 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 537 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 542 of file LpInterface_tpl.h.
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 549 of file LpInterface_tpl.h.
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 556 of file LpInterface_tpl.h.
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. |