Boolean functions. More...
#include <boolfunction.h>

Public Member Functions | |
| boolfunction (var _v, bool _negated=false) | |
| Creates a boolfunction consisting of only one basic variable. | |
| boolfunction (var _v1, var _v2, boolOperator _op, bool _negated=false) | |
| Creates a boolfunction (v1 op v2). | |
| boolfunction (boolfunction *_left, var _v2, boolOperator _op, bool _negated=false) | |
| Creates a boolfunction (left op v2). | |
| boolfunction (var _v1, boolfunction *_right, boolOperator _op, bool _negated=false) | |
| Creates a boolfunction (v1 op right). | |
| boolfunction (boolfunction *_left, boolfunction *_right, boolOperator _op, bool _negated=false) | |
| Creates a boolfunction (left op right). | |
| boolfunction * | copy () |
| Creates a copy of the boolfunction and returns a pointer to that copy. | |
| row | get_rLinear () const |
| Returns the linearization row. | |
| boolfunction * | get_left () const |
| Returns a pointer to the left operand. | |
| boolfunction * | get_right () const |
| Returns a pointer to the right operand. | |
| var | get_v () const |
Returns the variable v The basic variable v is only set if op is BASIC. | |
| boolOperator | get_op () const |
| Returns the operator of the boolfunction. | |
| bool | is_negated () const |
| Returns true if the boolfunction is negated. | |
| void | negate () |
| Negates the boolfunction. | |
| void | add (boolOperator _op, var _v, bool negated=false) |
Adds v to the right-hand side of the boolfunction using operator op. | |
| void | add (var _v, boolOperator _op, bool negated=false) |
Adds v to the left-hand side of the boolfunction using operator op. | |
| void | add (boolfunction *_left, boolOperator _op, bool negated=false) |
Adds the boolfunction left to the left-hand side of the boolfunction using operator op. | |
| void | add (boolOperator _op, boolfunction *_right, bool negated=false) |
Adds the boolfunction right to the right-hand side of the boolfunction using operator op. | |
| var & | linearize (ILP_Problem &IP) |
| Linearizes the boolfunction and creates the linearization variable which is stored in rLinear. | |
| void | simplify () |
| Simplifies the boolfunction. | |
| bool | evaluate (solution &S) |
Evaluates the boolfunction based on Solution S. | |
| std::string | get_originalTerm () |
Returns the original term stored by simplify. | |
| std::string | toString () |
| Converts the boolfunction to a string. | |
| bool | isHomogeneous (boolOperator _op=BASIC) |
| std::vector< var > | get_vars () |
| Returns a vector of all contained variables in the boolfunction. | |
Friends | |
| class | bool_inst |
The class boolfunction represents a Boolean function which is basically composed of a left and right operand and the associated operator. The two operands are also boolfunctions and therefore a boolfunction may also consist of only one basic variable.
Boolfunctions may only be used with pointers because of their tree structure.
Definition at line 17 of file boolfunction.h.
| bool SCIL::boolfunction::isHomogeneous | ( | boolOperator | _op = BASIC |
) |
Returns true if every operator in the boolfunction is of the same type and is one of AND, OR, NAND or NOR
| void SCIL::boolfunction::simplify | ( | ) |
Reformulates the boolfunction to a term without any negations, exclusive disjunctions and equivalences. The original term is stored as a string in the private attribute originalTerm.
Referenced by SCIL::ILP_Problem::add_boolfunction().
1.6.3