#include <vector>
#include <map>
#include <algorithm>
#include "BooleRing.h"
#include "CDDInterface.h"
#include "CTermIter.h"
#include "CBidirectTermIter.h"
#include "pbori_func.h"
#include "pbori_tags.h"
#include "BooleSet.h"
#include "BooleConstant.h"
Go to the source code of this file.
Classes | |
class | BoolePolynomial |
This class wraps the underlying decicion diagram type and defines the necessary operations. More... | |
Defines | |
#define | PBORI_RHS_MULT(type) |
Multiplication with other left-hand side type. | |
#define | PBORI_LHS_MULT(type) |
Multiplication with other left-hand side type. | |
Functions | |
BoolePolynomial | operator+ (const BoolePolynomial &lhs, const BoolePolynomial &rhs) |
Addition operation. | |
BoolePolynomial | operator+ (const BoolePolynomial &lhs, BooleConstant rhs) |
Addition operation. | |
BoolePolynomial | operator+ (BooleConstant lhs, const BoolePolynomial &rhs) |
Addition operation. | |
template<class RHSType > | |
BoolePolynomial | operator- (const BoolePolynomial &lhs, const RHSType &rhs) |
Subtraction operation. | |
BoolePolynomial | operator- (const BooleConstant &lhs, const BoolePolynomial &rhs) |
Subtraction operation with constant right-hand-side. | |
BoolePolynomial | operator* (const BoolePolynomial &lhs, const BoolePolynomial &rhs) |
BoolePolynomial | operator* (const BoolePolynomial &lhs, const BooleMonomial &rhs) |
BoolePolynomial | operator* (const BoolePolynomial &lhs, const BooleExponent &rhs) |
BoolePolynomial | operator* (const BoolePolynomial &lhs, const BooleConstant &rhs) |
BoolePolynomial | operator* (const BooleMonomial &lhs, const BoolePolynomial &rhs) |
BoolePolynomial | operator* (const BooleExponent &lhs, const BoolePolynomial &rhs) |
BoolePolynomial | operator* (const BooleConstant &lhs, const BoolePolynomial &rhs) |
template<class RHSType > | |
BoolePolynomial | operator/ (const BoolePolynomial &lhs, const RHSType &rhs) |
Division by monomial (skipping remainder). | |
template<class RHSType > | |
BoolePolynomial | operator% (const BoolePolynomial &lhs, const RHSType &rhs) |
Modulus monomial (division remainder). | |
BoolePolynomial::bool_type | operator== (BoolePolynomial::bool_type lhs, const BoolePolynomial &rhs) |
Equality check (with constant lhs). | |
BoolePolynomial::bool_type | operator!= (BoolePolynomial::bool_type lhs, const BoolePolynomial &rhs) |
Nonquality check (with constant lhs). | |
BoolePolynomial::ostream_type & | operator<< (BoolePolynomial::ostream_type &, const BoolePolynomial &) |
Stream output operator. |
This file carries the definition of class BoolePolynomial
, which can be used to access the boolean polynomials with respect to the polynomial ring, which was active on initialization time.
#define PBORI_LHS_MULT | ( | type | ) |
inline BoolePolynomial \ operator*(const type& lhs, const BoolePolynomial& rhs) { return rhs * lhs; }
Multiplication with other left-hand side type.
#define PBORI_RHS_MULT | ( | type | ) |
inline BoolePolynomial \ operator*(const BoolePolynomial& lhs, const type& rhs) { \ return BoolePolynomial(lhs) *= rhs; }
Multiplication with other left-hand side type.
BoolePolynomial::bool_type operator!= | ( | BoolePolynomial::bool_type | lhs, | |
const BoolePolynomial & | rhs | |||
) | [inline] |
Nonquality check (with constant lhs).
BoolePolynomial operator% | ( | const BoolePolynomial & | lhs, | |
const RHSType & | rhs | |||
) | [inline] |
Modulus monomial (division remainder).
BoolePolynomial operator* | ( | const BooleConstant & | lhs, | |
const BoolePolynomial & | rhs | |||
) | [inline] |
BoolePolynomial operator* | ( | const BooleExponent & | lhs, | |
const BoolePolynomial & | rhs | |||
) | [inline] |
BoolePolynomial operator* | ( | const BooleMonomial & | lhs, | |
const BoolePolynomial & | rhs | |||
) | [inline] |
BoolePolynomial operator* | ( | const BoolePolynomial & | lhs, | |
const BooleConstant & | rhs | |||
) | [inline] |
BoolePolynomial operator* | ( | const BoolePolynomial & | lhs, | |
const BooleExponent & | rhs | |||
) | [inline] |
BoolePolynomial operator* | ( | const BoolePolynomial & | lhs, | |
const BooleMonomial & | rhs | |||
) | [inline] |
BoolePolynomial operator* | ( | const BoolePolynomial & | lhs, | |
const BoolePolynomial & | rhs | |||
) | [inline] |
BoolePolynomial operator+ | ( | BooleConstant | lhs, | |
const BoolePolynomial & | rhs | |||
) | [inline] |
Addition operation.
BoolePolynomial operator+ | ( | const BoolePolynomial & | lhs, | |
BooleConstant | rhs | |||
) | [inline] |
Addition operation.
BoolePolynomial operator+ | ( | const BoolePolynomial & | lhs, | |
const BoolePolynomial & | rhs | |||
) | [inline] |
Addition operation.
BoolePolynomial operator- | ( | const BooleConstant & | lhs, | |
const BoolePolynomial & | rhs | |||
) | [inline] |
Subtraction operation with constant right-hand-side.
BoolePolynomial operator- | ( | const BoolePolynomial & | lhs, | |
const RHSType & | rhs | |||
) | [inline] |
Subtraction operation.
BoolePolynomial operator/ | ( | const BoolePolynomial & | lhs, | |
const RHSType & | rhs | |||
) | [inline] |
Division by monomial (skipping remainder).
BoolePolynomial::ostream_type& operator<< | ( | BoolePolynomial::ostream_type & | , | |
const BoolePolynomial & | ||||
) |
Stream output operator.
References BoolePolynomial::print().
BoolePolynomial::bool_type operator== | ( | BoolePolynomial::bool_type | lhs, | |
const BoolePolynomial & | rhs | |||
) | [inline] |
Equality check (with constant lhs).