Skip to content

dzufferey/mtidd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MTIDD

A C++ library for multi-terminal (reduced ordered) interval decision diagrams.

Compiling

You need to install bazel and have a modern C++ compiler.

With Bazelisk you can build an run with:

bazelisk build //...
bazelisk test //...

clangd

To generate a compile_commands.json for clangd:

bazelisk run @hedron_compile_commands//:refresh_all

Status

Started to work on it. Nothing concrete yet.

Design Choices

  • The code is parametric on the type of variables and terminal elements.
  • The terminal elements must form a lattice.
  • The variable ordering is implicitly given by an internalizer which maps each variable to a unique index. The order on the indices becomes the variable order.

ToDo

  • reordering void reorder(std::map<int, int> const & var_idx_bijection) { ... }
    • swap operation for two variables adjacent in the ordering
    • partial lookup for two steps in the variable order (needed in the swap)
    • reordering is like bubble sort with the new order and using swap
  • implement proper reference counting to manage the memory
  • map operation to transform the type of variables and terminal

About

A C++ library for multi-terminal (reduced ordered) interval decision diagrams

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors