LogicCircuits.jl
LogicCircuits.jl copied to clipboard
Docs + Examples
-
Properties:
- [x] Structured Decomposable (+vtree)
- [x] Decomposable
- [x] Deterministic
- [x] is_smooth
-
Transformations
- [x] forget
- [x] Smooth a circuit
- [x] Condition a circuit
- [x] Split and Clone
-
Queries
- [x] Evaluate
- [x] Model Counting
- [ ] Equivalence Checking
- [ ] Probabilistic Eq checking
-
Compilation
- [ ] Describe what compilation is and why its needed
- [ ] Add examples in the docs/notebooks.
-
Data Stuctures details related
- [ ] Describe the type system breifly
- [ ] Desribe how foldup and the travesing works
- [ ] Describe BitCircuits
- [ ] SDD vs other types of circuit
-
Misc
- [ ] Describe the zoo artifacts, etc
- [ ] GPU Examples
- [ ] GPU related behavoiur (for example, juice chooses cpu/gpu based on where data is)
- [ ] Related Libraries
- [ ] https://github.com/pedrozudo/SententialDecisionDiagrams.jl
- [ ] http://reasoning.cs.ucla.edu/sdd/
- [ ] https://github.com/ML-KULeuven/LearnSDD
- [ ] Libra
- [ ] Add function signiture doc to all common used functions
-
Benchmarks
In the docs, add links to other related libaries:
- http://reasoning.cs.ucla.edu/sdd/
- https://github.com/ML-KULeuven/LearnSDD
- https://github.com/ML-KULeuven/LearnSDD
- libra, writted in ocaml, could not find the link, probably misspled the name.
Not sure if relevant to this issue exactly, but one thing that might be helpful for end-users (it would be helpful to me at least) would be to explicitly state the return types of functions (as well as arguments). I often find myself having to look at the code to know exactly what do I have to pass as arguments/receive as returns. Ideally documentation should be more than enough for end-users. Plus the compiler probably could use some type hinting to speed things up. Not sure how you guys feel about this? I'm willing to do this boring refactoring and explicitly write argument and return types.
I'm certainly in favor, especially in the documentation strings.
Yeah this is very nice to have.
On the documentation side, I initially thought there would be an option in documenter.jl to generate the signitures automatically, but last time I checked seems to be no option for it. I guess easiest option for now is too add them manually in the comments.
I think we have return types set for most functions, it's just they are not being added to the docs by documenter.
We can slowly start adding them, for example any time we modify something we add this type of info to the doc string. I will check to see whats a consistent way to add them nicely in the doc string. I think you can just copy paste the function signitures and add it in the comments as code.