zkhash/gmimc/
gmimc_instance_goldilocks.rs

1use super::gmimc_params::GmimcParams;
2use crate::fields::goldilocks::FpGoldiLocks;
3
4use lazy_static::lazy_static;
5use std::sync::Arc;
6
7type Scalar = FpGoldiLocks;
8
9lazy_static! {
10    // Number of rounds:
11    // max(2 + 2 * (t + t^2), ceil(2 * log_d(p)) + 2 * t)
12    pub static ref GMIMC_GOLDILOCKS_8_PARAMS: Arc<GmimcParams<Scalar>> =
13        Arc::new(GmimcParams::new(8, 7, 146));
14    pub static ref GMIMC_GOLDILOCKS_12_PARAMS: Arc<GmimcParams<Scalar>> =
15        Arc::new(GmimcParams::new(12, 7, 314));
16    pub static ref GMIMC_GOLDILOCKS_16_PARAMS: Arc<GmimcParams<Scalar>> =
17        Arc::new(GmimcParams::new(16, 7, 546));
18    pub static ref GMIMC_GOLDILOCKS_20_PARAMS: Arc<GmimcParams<Scalar>> =
19        Arc::new(GmimcParams::new(20, 7, 842));
20}