- allow to construct graph from an existing networkx MultiDiGraph
- add a function to remove nodes unreachable from the outputs of the graph
- return the evaluated output when calling the OPGraph
* feat(mlir): conversion from HDKIR to MLIR
* feat(mlir): support ir.Sub and ir.Mul
- better type conversion from HDK to MLIR
- Context management inside the converter class
- better handling of input type in conversion functions
* refactor(mlir): use input and output from OPGraph
Co-authored-by: Arthur Meyre <arthur.meyre@zama.ai>
* feat(mlir): eint-int subtractions
* feat(mlir): adhere to spec for supported ops
* feat(OPGraph): getters for ordered inputs/outputs
+ formatting
* tests(mlir): test converion via compiler roundtrip
* fix(mlir): flip operands on int_eint sym ops
* feat(mlir): check that the outputs are unsigned
* feat(mlir): set bit_width of all nodes to the max
This is currently required as the compiler is already assuming this.
Could be removed from HDK when the compiler can do it on its own
* feat: value_is_integer + CRs
disable some linting errors
* tests: update compile tests + coverage
* refactor: reorganize mlir package + better doc
* doc: conformance with pydocstyle
Co-authored-by: Arthur Meyre <arthur.meyre@zama.ai>
- update ConstantInput to manage floats
- update OPGraph update_values_with_bounds to manage floats
- update test code to manage cases where output could be a float
- add test cases with float inputs
- this allows to have tighter data types by sticking to the smallest types
able to represent the ranges passed as argument
- update test_dataset_eval to check the output Value's data_type is updated