var searchIndex = {}; searchIndex["boolean_expression"] = {"doc":"# boolean\\_expression expression manipulation / BDD library","items":[[3,"BDD","boolean_expression","A `BDD` is a Binary Decision Diagram, an efficient way to represent a\nBoolean function in a canonical way. (It is actually a "Reduced Ordered\nBinary Decision Diagram", which gives it its canonicity assuming terminals\nare ordered consistently.)",null,null],[4,"Expr","","An `Expr` is a simple Boolean logic expression. It may contain terminals\n(i.e., free variables), constants, and the following fundamental operations:\nAND, OR, NOT.",null,null],[13,"Terminal","","A terminal (free variable). This expression node represents a value that\nis not known until evaluation time.",0,null],[13,"Const","","A boolean constant: true or false.",0,null],[13,"Not","","The logical complement of the contained expression argument.",0,null],[13,"And","","The logical AND of the two expression arguments.",0,null],[13,"Or","","The logical OR of the two expression arguments.",0,null],[11,"hash","","",0,null],[11,"cmp","","",0,null],[11,"partial_cmp","","",0,null],[11,"lt","","",0,null],[11,"le","","",0,null],[11,"gt","","",0,null],[11,"ge","","",0,null],[11,"eq","","",0,null],[11,"ne","","",0,null],[11,"fmt","","",0,null],[11,"clone","","",0,null],[11,"is_terminal","","Returns `true` if this `Expr` is a terminal.",0,null],[11,"is_const","","Returns `true` if this `Expr` is a constant.",0,null],[11,"is_not","","Returns `true` if this `Expr` is a NOT node.",0,null],[11,"is_and","","Returns `true` if this `Expr` is an AND node.",0,null],[11,"is_or","","Returns `true` if this `Expr` is an OR node.",0,null],[11,"not","","Builds a NOT node around an argument, consuming the argument\nexpression.",0,{"inputs":[{"name":"expr"}],"output":{"name":"expr"}}],[11,"and","","Builds an AND node around two arguments, consuming the argument\nexpressions.",0,{"inputs":[{"name":"expr"},{"name":"expr"}],"output":{"name":"expr"}}],[11,"or","","Builds an OR node around two arguments, consuming the argument\nexpressions.",0,{"inputs":[{"name":"expr"},{"name":"expr"}],"output":{"name":"expr"}}],[11,"evaluate","","Evaluates the expression with a particular set of terminal assignments.\nIf any terminals are not assigned, they default to `false`.",0,null],[11,"simplify","","Simplify an expression.",0,null],[11,"fmt","","",1,null],[11,"clone","","",1,null],[11,"new","","Produce a new, empty, BDD.",1,{"inputs":[],"output":{"name":"bdd"}}],[11,"terminal","","Produce a function within the BDD representing the terminal `t`. If\nthis terminal has been used in the BDD before, the same `BDDFunc` will be\nreturned.",1,null],[11,"constant","","Produce a function within the BDD representing the constant value `val`.",1,null],[11,"not","","Produce a function within the BDD representing the logical complement\nof the function `n`.",1,null],[11,"and","","Produce a function within the BDD representing the logical AND of the\nfunctions `a` and `b`.",1,null],[11,"or","","Produce a function within the BDD representing the logical OR of the\nfunctions `a` and `b`.",1,null],[11,"expr","","Produce a function within the BDD representing the given expression\n`e`, which may contain ANDs, ORs, NOTs, terminals, and constants.",1,null],[11,"evaluate","","Evaluate the function `f` in the BDD with the given terminal\nassignments. Any terminals not specified in `values` default to `false`.",1,null],[6,"BDDFunc","","A `BDDFunc` is a function index within a particular `BDD` index. It must\nonly be used with the `BDD` instance which produced it.",null,null],[17,"BDD_ZERO","","A special terminal `BDDFunc` which is constant `false` (zero).",null,null],[17,"BDD_ONE","","A special terminal `BDDFunc` which is constant `true` (one).",null,null]],"paths":[[4,"Expr"],[3,"BDD"]]}; initSearch(searchIndex);