SSoelvsten / adiar

An I/O-efficient implementation of (Binary) Decision Diagrams
https://ssoelvsten.github.io/adiar/
MIT License
24 stars 13 forks source link

Reduce: Use Adiar's I/O Wrappers #428

Open SSoelvsten opened 1 year ago

SSoelvsten commented 1 year ago

In the reduce algorithm, all mappings due to the first reduction rule are placed in a tpie::file_stream<mapping>. With #397 we have cleaned up Adiar's wrappers on files and streams and should use these instead (especially to support #199 later).

SSoelvsten commented 1 year ago

I am thinking to mark this as a good first issue, but I have a hard time figuring out, whether this could impact performance negatively. If that would be the case, then I would like to do as follows:

  1. Rename the (levelized_)file_stream\<mapping> class to (levelized_)file_reader\<mapping>.
  2. Add a file_stream class that both provides read and write access. We can probably rephrase the file_writer and file_reader as wrappers on this class.
  3. Use the adiar::file_stream\<mapping> class in __reduce_level.