33#include < cstddef>
44
55namespace riscv {
6- static const size_t RV32_REGISTER_NUM_LIMBS = 4 ;
7- static const size_t RV32_CELL_BITS = 8 ;
8- static const size_t RV_J_TYPE_IMM_BITS = 21 ;
6+ inline constexpr size_t RV32_REGISTER_NUM_LIMBS = 4 ;
7+ inline constexpr size_t RV32_CELL_BITS = 8 ;
8+ inline constexpr size_t RV_J_TYPE_IMM_BITS = 21 ;
99
10- static const size_t RV32_IMM_AS = 0 ;
10+ inline constexpr size_t RV32_IMM_AS = 0 ;
1111} // namespace riscv
1212
1313namespace program {
14- static const size_t PC_BITS = 30 ;
15- static const size_t DEFAULT_PC_STEP = 4 ;
14+ inline constexpr size_t PC_BITS = 30 ;
15+ inline constexpr size_t DEFAULT_PC_STEP = 4 ;
1616} // namespace program
1717
1818namespace native {
19- static const size_t AS_IMMEDIATE = 0 ;
20- static const size_t AS_NATIVE = 4 ;
21- static const size_t EXT_DEG = 4 ;
22- static const size_t BETA = 11 ;
19+ inline constexpr size_t AS_IMMEDIATE = 0 ;
20+ inline constexpr size_t AS_NATIVE = 4 ;
21+ inline constexpr size_t EXT_DEG = 4 ;
22+ inline constexpr size_t BETA = 11 ;
2323} // namespace native
2424
2525namespace poseidon2 {
26- static const size_t CHUNK = 8 ;
26+ inline constexpr size_t CHUNK = 8 ;
2727} // namespace poseidon2
2828
2929namespace p3_keccak_air {
30- static const size_t NUM_ROUNDS = 24 ;
31- static const size_t BITS_PER_LIMB = 16 ;
32- static const size_t U64_LIMBS = 64 / BITS_PER_LIMB;
33- static const size_t RATE_BITS = 1088 ;
34- static const size_t RATE_LIMBS = RATE_BITS / BITS_PER_LIMB;
30+ inline constexpr size_t NUM_ROUNDS = 24 ;
31+ inline constexpr size_t BITS_PER_LIMB = 16 ;
32+ inline constexpr size_t U64_LIMBS = 64 / BITS_PER_LIMB;
33+ inline constexpr size_t RATE_BITS = 1088 ;
34+ inline constexpr size_t RATE_LIMBS = RATE_BITS / BITS_PER_LIMB;
3535} // namespace p3_keccak_air
3636
3737namespace keccak256 {
3838// / Total number of sponge bytes: number of rate bytes + number of capacity bytes.
39- static const size_t KECCAK_WIDTH_BYTES = 200 ;
39+ inline constexpr size_t KECCAK_WIDTH_BYTES = 200 ;
4040// / Total number of 16-bit limbs in the sponge.
41- static const size_t KECCAK_WIDTH_U16S = KECCAK_WIDTH_BYTES / 2 ;
41+ inline constexpr size_t KECCAK_WIDTH_U16S = KECCAK_WIDTH_BYTES / 2 ;
4242// / Number of rate bytes.
43- static const size_t KECCAK_RATE_BYTES = 136 ;
43+ inline constexpr size_t KECCAK_RATE_BYTES = 136 ;
4444// / Number of 16-bit rate limbs.
45- static const size_t KECCAK_RATE_U16S = KECCAK_RATE_BYTES / 2 ;
45+ inline constexpr size_t KECCAK_RATE_U16S = KECCAK_RATE_BYTES / 2 ;
4646// / Number of absorb rounds, equal to rate in u64s.
47- static const size_t NUM_ABSORB_ROUNDS = KECCAK_RATE_BYTES / 8 ;
47+ inline constexpr size_t NUM_ABSORB_ROUNDS = KECCAK_RATE_BYTES / 8 ;
4848// / Number of capacity bytes.
49- static const size_t KECCAK_CAPACITY_BYTES = 64 ;
49+ inline constexpr size_t KECCAK_CAPACITY_BYTES = 64 ;
5050// / Number of 16-bit capacity limbs.
51- static const size_t KECCAK_CAPACITY_U16S = KECCAK_CAPACITY_BYTES / 2 ;
51+ inline constexpr size_t KECCAK_CAPACITY_U16S = KECCAK_CAPACITY_BYTES / 2 ;
5252// / Number of output digest bytes used during the squeezing phase.
53- static const size_t KECCAK_DIGEST_BYTES = 32 ;
53+ inline constexpr size_t KECCAK_DIGEST_BYTES = 32 ;
5454// / Number of 64-bit digest limbs.
55- static const size_t KECCAK_DIGEST_U64S = KECCAK_DIGEST_BYTES / 8 ;
55+ inline constexpr size_t KECCAK_DIGEST_U64S = KECCAK_DIGEST_BYTES / 8 ;
5656
5757// ==== Constants for register/memory adapter ====
5858// / Register reads to get dst, src, len
59- static const size_t KECCAK_REGISTER_READS = 3 ;
59+ inline constexpr size_t KECCAK_REGISTER_READS = 3 ;
6060// / Number of cells to read/write in a single memory access
61- static const size_t KECCAK_WORD_SIZE = 4 ;
61+ inline constexpr size_t KECCAK_WORD_SIZE = 4 ;
6262// / Memory reads for absorb per row
63- static const size_t KECCAK_ABSORB_READS = KECCAK_RATE_BYTES / KECCAK_WORD_SIZE;
63+ inline constexpr size_t KECCAK_ABSORB_READS = KECCAK_RATE_BYTES / KECCAK_WORD_SIZE;
6464// / Memory writes for digest per row
65- static const size_t KECCAK_DIGEST_WRITES = KECCAK_DIGEST_BYTES / KECCAK_WORD_SIZE;
65+ inline constexpr size_t KECCAK_DIGEST_WRITES = KECCAK_DIGEST_BYTES / KECCAK_WORD_SIZE;
6666// / keccakf parameters
67- static const size_t KECCAK_ROUND = 24 ;
68- static const size_t KECCAK_STATE_SIZE = 25 ;
69- static const size_t KECCAK_Q_SIZE = 192 ;
67+ inline constexpr size_t KECCAK_ROUND = 24 ;
68+ inline constexpr size_t KECCAK_STATE_SIZE = 25 ;
69+ inline constexpr size_t KECCAK_Q_SIZE = 192 ;
7070// / From memory config
71- static const size_t KECCAK_POINTER_MAX_BITS = 29 ;
71+ inline constexpr size_t KECCAK_POINTER_MAX_BITS = 29 ;
7272} // namespace keccak256
7373
7474namespace mod_builder {
75- static const size_t MAX_LIMBS = 97 ;
75+ inline constexpr size_t MAX_LIMBS = 97 ;
7676} // namespace mod_builder
7777
7878namespace sha256 {
79- static const size_t SHA256_BLOCK_BITS = 512 ;
80- static const size_t SHA256_BLOCK_U8S = 64 ;
81- static const size_t SHA256_BLOCK_WORDS = 16 ;
82- static const size_t SHA256_WORD_U8S = 4 ;
83- static const size_t SHA256_WORD_BITS = 32 ;
84- static const size_t SHA256_WORD_U16S = 2 ;
85- static const size_t SHA256_HASH_WORDS = 8 ;
86- static const size_t SHA256_NUM_READ_ROWS = 4 ;
87- static const size_t SHA256_ROWS_PER_BLOCK = 17 ;
88- static const size_t SHA256_ROUNDS_PER_ROW = 4 ;
89- static const size_t SHA256_ROW_VAR_CNT = 5 ;
90- static const size_t SHA256_REGISTER_READS = 3 ;
91- static const size_t SHA256_READ_SIZE = 16 ;
92- static const size_t SHA256_WRITE_SIZE = 32 ;
93- } // namespace sha256
79+ inline constexpr size_t SHA256_BLOCK_BITS = 512 ;
80+ inline constexpr size_t SHA256_BLOCK_U8S = 64 ;
81+ inline constexpr size_t SHA256_BLOCK_WORDS = 16 ;
82+ inline constexpr size_t SHA256_WORD_U8S = 4 ;
83+ inline constexpr size_t SHA256_WORD_BITS = 32 ;
84+ inline constexpr size_t SHA256_WORD_U16S = 2 ;
85+ inline constexpr size_t SHA256_HASH_WORDS = 8 ;
86+ inline constexpr size_t SHA256_NUM_READ_ROWS = 4 ;
87+ inline constexpr size_t SHA256_ROWS_PER_BLOCK = 17 ;
88+ inline constexpr size_t SHA256_ROUNDS_PER_ROW = 4 ;
89+ inline constexpr size_t SHA256_ROW_VAR_CNT = 5 ;
90+ inline constexpr size_t SHA256_REGISTER_READS = 3 ;
91+ inline constexpr size_t SHA256_READ_SIZE = 16 ;
92+ inline constexpr size_t SHA256_WRITE_SIZE = 32 ;
93+ } // namespace sha256
0 commit comments