1pub mod file;
2mod interner;
3mod noir_proof_scheme;
4pub mod prefix_covector;
5mod prover;
6mod r1cs;
7pub mod sparse_matrix;
9pub mod utils;
10mod verifier;
11mod whir_r1cs;
12pub mod witness;
13
14use crate::{
15 interner::{InternedFieldElement, Interner},
16 sparse_matrix::{HydratedSparseMatrix, SparseMatrix},
17};
18pub use {
19 acir::FieldElement as NoirElement,
20 ark_bn254::Fr as FieldElement,
21 noir_proof_scheme::{NoirProof, NoirProofScheme},
22 noirc_abi::{
23 input_parser::{Format, InputValue},
24 InputMap,
25 },
26 prefix_covector::{OffsetCovector, PrefixCovector, SparseCovector},
27 prover::Prover,
28 r1cs::R1CS,
29 verifier::Verifier,
30 whir_r1cs::{
31 WhirConfig, WhirDomainSeparator, WhirProof, WhirProverState, WhirR1CSProof, WhirR1CSScheme,
32 WhirZkConfig,
33 },
34 witness::PublicInputs,
35};
36
37pub type TranscriptSponge = spongefish::instantiations::SHA256;
39
40pub fn register_ntt() {
45 use std::sync::{Arc, Once};
46 static INIT: Once = Once::new();
47 INIT.call_once(|| {
48 let ntt: Arc<dyn whir::algebra::ntt::ReedSolomon<FieldElement>> =
49 Arc::new(whir::algebra::ntt::ArkNtt::<FieldElement>::default());
50 whir::algebra::ntt::NTT.insert(ntt);
51
52 });
56}