zkhash/gmimc/
gmimc_instance_vesta.rs

1use super::gmimc_params::GmimcParams;
2use crate::fields::vesta::FpVesta;
3
4use lazy_static::lazy_static;
5use std::sync::Arc;
6
7type Scalar = FpVesta;
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_VESTA_3_PARAMS: Arc<GmimcParams<Scalar>> =
13        Arc::new(GmimcParams::new(3, 5, 226));
14    pub static ref GMIMC_VESTA_4_PARAMS: Arc<GmimcParams<Scalar>> =
15        Arc::new(GmimcParams::new(4, 5, 228));
16    pub static ref GMIMC_VESTA_5_PARAMS: Arc<GmimcParams<Scalar>> =
17        Arc::new(GmimcParams::new(5, 5, 230));
18    pub static ref GMIMC_VESTA_8_PARAMS: Arc<GmimcParams<Scalar>> =
19        Arc::new(GmimcParams::new(8, 5, 236));
20    pub static ref GMIMC_VESTA_9_PARAMS: Arc<GmimcParams<Scalar>> =
21        Arc::new(GmimcParams::new(9, 5, 238));
22    pub static ref GMIMC_VESTA_12_PARAMS: Arc<GmimcParams<Scalar>> =
23        Arc::new(GmimcParams::new(12, 5, 314));
24    pub static ref GMIMC_VESTA_16_PARAMS: Arc<GmimcParams<Scalar>> =
25        Arc::new(GmimcParams::new(16, 5, 546));
26    pub static ref GMIMC_VESTA_20_PARAMS: Arc<GmimcParams<Scalar>> =
27        Arc::new(GmimcParams::new(20, 5, 842));
28    pub static ref GMIMC_VESTA_24_PARAMS: Arc<GmimcParams<Scalar>> =
29        Arc::new(GmimcParams::new(24, 5, 1202));
30}