* feat: let the dev give a useful name for ArbitraryFunction
might be useful to debug or understand what happens
closes#144
* feat: let the dev give a useful name for ArbitraryFunction
might be useful to debug or understand what happens
closes#144
* feat: let the dev give a useful name for ArbitraryFunction
might be useful to debug or understand what happens
closes#144
* feat: let the dev give a useful name for ArbitraryFunction
might be useful to debug or understand what happens
closes#144
* feat: let the dev give a useful name for ArbitraryFunction
might be useful to debug or understand what happens
closes#144
* feat: let the dev give a useful name for ArbitraryFunction
might be useful to debug or understand what happens
closes#144
* feat: let the dev give a useful name for ArbitraryFunction
might be useful to debug or understand what happens
closes#144
Co-authored-by: Benoit Chevallier-Mames <benoitchevalliermames@zama.ai>
* 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>
- start tracing numpy.rint and manage dtypes
- update BaseTracer to accept iterables as inputs, because NPTracer does
not get list givent the way numpy sends arguments to the functions
- add function to convert a type from the project to a numpy dtype
- add function to manage numpy ufunc output dtypes
- add a check for integers to have positive bit_width
- add a check for floats to only accept 32 and 64 bits
- this input index will be useful for MLIR/lower level conversions
- it represents the input index of an Input node when considering the
traced function signature
- update code preparing function parameters to keep signature order
- sometimes arguments are re-ordered in the id written by pytest to sdtout
which makes identifying the failing case hard, this solves the issue for
one test function
tests: add the possibility to test more binary operations
avoid copy-paste for binary ops, with just an option if the operation is commutative or not
refs #41, #42
- add BaseTracer which will hold most of the boilerplate code
- add hnumpy with a bare NPTracer and tracing function
- update IR to be compatible with tracing helpers
- update test helper to properly check that graphs are equivalent
- add test tracing a simple addition
- rename common/data_types/helpers.py to .../dtypes_helpers.py to avoid
having too many files with the same name
- ignore missing type stubs in the default mypy command
- add a comfort Makefile target to get errors about missing mypy stubs