Skip to content

Conversation

@lorenzorota
Copy link
Contributor

@lorenzorota lorenzorota commented Feb 21, 2025

This PR addresses #223 by extending the IR to support IEEE 754 floats.

All the previously declared operators for floating-point numbers have been implemented, with a newly added operator called: PfToFp, along with tests in ir/term/test.rs.

To do:

  • Check that operators and parsing of floats is correct.
  • Implement the compiler pass for lowering the IR floats to an arithmetic circuit.
  • Add support for lowering to R1CS.
  • Extend Z# to include "float" and "double" types.

Copy link
Contributor

@alex-ozdemir alex-ozdemir left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just one thought, so far.

* Introduced new optimization pass called Float
* Extended IR with Op::FpToPf
* Added new FP operations constants
* visit function fully handles Op::Const
* Op::Var is being worked on.

Todo:
* Implement all required hints and gadgets
* Extend FLoatRewriter to handle lookups and table updates
* Extend FloatRewriter to transform lookups into interactive proofs
* Complete Op::Var case in visit fn before rest
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants