Skip to content

Commit

Permalink
move TODOs to issues
Browse files Browse the repository at this point in the history
  • Loading branch information
daemontus committed Feb 7, 2020
1 parent e5b6692 commit edcd9a2
Show file tree
Hide file tree
Showing 4 changed files with 0 additions and 13 deletions.
9 changes: 0 additions & 9 deletions src/_impl_bdd/_impl_util.rs
Original file line number Diff line number Diff line change
Expand Up @@ -101,13 +101,6 @@ impl Bdd {
return Some(BddValuation::new(valuation));
}

// TODO: Make the formula nicer by first deriving all fully determined variables.
// That is, if I know all valid paths have `x` set to true, I can start the formula
// with `x & ...` and later skip `x` completely (this can be also done for each sub-Bdd
// in each expansion step).
// Another nice optimisation would be to try to find implication/equivalence pairs.
// That is, if `a <=> b` on all paths, I can put this as a condition at the beginning and then
// skip `b` completely.
/// Convert this `Bdd` to a `BooleanExpression` (using the variable names from the given
/// `BddVariableSet`).
///
Expand Down Expand Up @@ -250,8 +243,6 @@ mod tests {
use crate::*;
use std::convert::TryFrom;

//TODO: Add tests on DFS postorder of created BDDs

#[test]
fn bdd_impl() {
let bdd = mk_small_test_bdd();
Expand Down
1 change: 0 additions & 1 deletion src/_impl_bdd_valuation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ use super::{Bdd, BddValuation, BddValuationIterator, BddVariable};
use std::fmt::{Display, Error, Formatter};

impl BddValuation {
// TODO: This a very low-level API. We should be able to create valuations in some safer manner.
/// Create a new valuation from a vector of variables.
pub fn new(values: Vec<bool>) -> BddValuation {
return BddValuation(values);
Expand Down
1 change: 0 additions & 1 deletion src/boolean_expression/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ pub enum BooleanExpression {
Const(bool),
Variable(String),
Not(Box<BooleanExpression>),
// TODO: Change this to binary op (also, add BooleanOp to stdlib) - maybe even this whole module?...
And(Box<BooleanExpression>, Box<BooleanExpression>),
Or(Box<BooleanExpression>, Box<BooleanExpression>),
Xor(Box<BooleanExpression>, Box<BooleanExpression>),
Expand Down
2 changes: 0 additions & 2 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -84,15 +84,13 @@ pub struct Bdd(Vec<BddNode>);
#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
pub struct BddVariable(u16);

// TODO: Rename this to BitVector and move it to std-lib? The same for the iterator.
/// Exactly describes one assignment of boolean values to variables of a `Bdd`.
///
/// It can be used as a witness of `Bdd` non-emptiness, since one can evaluate every `Bdd`
/// in some corresponding valuation and get a `true/false` result.
#[derive(Clone, Debug, Eq, Hash, PartialEq)]
pub struct BddValuation(Vec<bool>);

// TODO: Valuation iterator should also work when there are no variables (one iteration of a zero-sized valuation)!
/// Exhaustively iterates over all valuations with a certain number of variables.
///
/// Be aware of the exponential time complexity of such operation!
Expand Down

0 comments on commit edcd9a2

Please sign in to comment.