SSoelvsten/adiar

Add `bdd_traverse`

SSoelvsten opened this issue · 0 comments

The end-user may want to traverse the decision diagram. Yet, we currently disallow it (primarily to disallow one doing anything I/O-inefficient). Yet, a single remark with "please maximize the number of monotonically ascending/descending accesses you do" should do it - from that point, it is the user's responsibility.

  • Add bdd_traverse that essentially allows the user to jump around in the BDD as they want to. This essentially is a generalisation of the traverse algorithm that is ok with changing the direction (this makes #445 more relevant).
  • Add zdd_traverse to do the same for ZDDs.

Additional context
Requested on email by Anna Blume Jakobsen, based on what she needed in her prior BSc/MSc projects and student programmer tasks.