compiler: Fix complex arguments and implement float16 lowering
Fixes some issues that prevented complex float arguments from being passed correctly. Also implements lowering for half-precision floats with the _Float16 type.
Some remaining tasks:
- MPI with complex floating types
- Look into MPI with float16, if possible
- Type conversion is done by modifying the global
ctypes_vector_mappet; need some more tests for operator building/rebuilding/pickling with float16, or potentially a different (hopefully less brittle) solution - More test coverage of existing behavior applied to float16 types
Check out this pull request on ![]()
See visual diffs & provide feedback on Jupyter Notebooks.
Powered by ReviewNB
but still needs tests
seconded, this is crucial
Yeah my plan was to write some more extensive tests for complex (since the existing ones didn't catch all of the break cases I've found) and add in a few for half. I want to get all of these changes out of the way first, and then there's a few more things to work out such as math functions being assigned to float16 arrays. Maybe this should be a draft actually?
Merged into #2375