Splits off one major source of diff lines from PR #283. Inherently, there are many R1CS shapes to consider when tailoring public parameter creation to non-uniform step-circuits. However, the commitment key generation should only be done once for all circuits (once a suitable size has been determined by looking at all R1CS shapes). This splits the relevant Nova functions into r1cs_shape_and_key, r1cs_shape and commitment_key to enable the flexibility deamnded by the above model.
In detail:
Renamed the r1cs_shape method across various files to r1cs_shape_and_key, indicating its functionality is to return both R1CSShape and CommitmentKey.
Altered function calls from r1cs_shape to r1cs_shape_and_key in files such as direct.rs, nifs.rs, lib.rs and circuit.rs,
Split the creation of R1CSShape and CommitmentKey into separate functions in the NovaShape object in r1cs.rs
Removed the R1CS struct in mod.rs as it only contained a phantom data, with related operations performed elsewhere.
Implemented changes to enhance code readability, including the addition of a new commitment_key_size function, and overall code reformatting for clarity.
This is a fragment of #283
TL;DR:
Splits off one major source of diff lines from PR #283. Inherently, there are many R1CS shapes to consider when tailoring public parameter creation to non-uniform step-circuits. However, the commitment key generation should only be done once for all circuits (once a suitable size has been determined by looking at all R1CS shapes). This splits the relevant Nova functions into
r1cs_shape_and_key
,r1cs_shape
andcommitment_key
to enable the flexibility deamnded by the above model.In detail:
r1cs_shape
method across various files tor1cs_shape_and_key
, indicating its functionality is to return bothR1CSShape
andCommitmentKey
.r1cs_shape
tor1cs_shape_and_key
in files such asdirect.rs
,nifs.rs
,lib.rs
andcircuit.rs
,R1CSShape
andCommitmentKey
into separate functions in theNovaShape
object inr1cs.rs
R1CS
struct inmod.rs
as it only contained a phantom data, with related operations performed elsewhere.commitment_key_size
function, and overall code reformatting for clarity.