Skip to main content

Crate p3_mersenne_31

Crate p3_mersenne_31 

Source
Expand description

The prime field F_p where p = 2^31 - 1.

Structs§

GenericPoseidon2LinearLayersMersenne31
An implementation of the matrix multiplications in the internal and external layers of Poseidon2.
MdsMatrixMersenne31
Mersenne31
The prime field F_p where p = 2^31 - 1.
Mersenne31ComplexRadix2Dit
Mersenne31Dft
The DFT for Mersenne31
PackedQM31
Packed representation of QM31: two packed Complex<Mersenne31> coefficients, each holding PackedM31::WIDTH lanes.
Poseidon2ExternalLayerMersenne31
The external layers of the Poseidon2 permutation.
Poseidon2InternalLayerMersenne31
The internal layers of the Poseidon2 permutation.

Constants§

MERSENNE31_POSEIDON1_HALF_FULL_ROUNDS
Number of full rounds per half for Mersenne31 Poseidon1 (RF / 2).
MERSENNE31_POSEIDON1_PARTIAL_ROUNDS_16
Number of partial rounds for Mersenne31 Poseidon1 (width 16).
MERSENNE31_POSEIDON1_PARTIAL_ROUNDS_32
Number of partial rounds for Mersenne31 Poseidon1 (width 32).
MERSENNE31_POSEIDON1_RC_16
Round constants for width-16 Poseidon1 on Mersenne31.
MERSENNE31_POSEIDON1_RC_32
Round constants for width-32 Poseidon1 on Mersenne31.
MERSENNE31_POSEIDON1_S_BOX_DEGREE
S-box degree for Mersenne31 Poseidon1.
MERSENNE31_POSEIDON2_HALF_FULL_ROUNDS
Number of full rounds per half for Mersenne31 Poseidon2 (RF / 2).
MERSENNE31_POSEIDON2_PARTIAL_ROUNDS_16
Number of partial rounds for Mersenne31 Poseidon2 (width 16).
MERSENNE31_POSEIDON2_PARTIAL_ROUNDS_24
Number of partial rounds for Mersenne31 Poseidon2 (width 24).
MERSENNE31_POSEIDON2_PARTIAL_ROUNDS_32
Number of partial rounds for Mersenne31 Poseidon2 (width 32).
MERSENNE31_POSEIDON2_RC_16_EXTERNAL_FINAL
Round constants for width-16 Poseidon2 on Mersenne31.
MERSENNE31_POSEIDON2_RC_16_EXTERNAL_INITIAL
Round constants for width-16 Poseidon2 on Mersenne31.
MERSENNE31_POSEIDON2_RC_16_INTERNAL
Round constants for width-16 Poseidon2 on Mersenne31.
MERSENNE31_POSEIDON2_RC_24_EXTERNAL_FINAL
Round constants for width-24 Poseidon2 on Mersenne31.
MERSENNE31_POSEIDON2_RC_24_EXTERNAL_INITIAL
Round constants for width-24 Poseidon2 on Mersenne31.
MERSENNE31_POSEIDON2_RC_24_INTERNAL
Round constants for width-24 Poseidon2 on Mersenne31.
MERSENNE31_POSEIDON2_RC_32_EXTERNAL_FINAL
Round constants for width-32 Poseidon2 on Mersenne31.
MERSENNE31_POSEIDON2_RC_32_EXTERNAL_INITIAL
Round constants for width-32 Poseidon2 on Mersenne31.
MERSENNE31_POSEIDON2_RC_32_INTERNAL
Round constants for width-32 Poseidon2 on Mersenne31.
MERSENNE31_S_BOX_DEGREE
S-box degree for Mersenne31 Poseidon2.

Functions§

default_mersenne31_poseidon1_16
Create the default width-16 Poseidon1 permutation for Mersenne31.
default_mersenne31_poseidon1_32
Create the default width-32 Poseidon1 permutation for Mersenne31.
default_mersenne31_poseidon2_16
Create a default width-16 Poseidon2 permutation for Mersenne31.
default_mersenne31_poseidon2_24
Create a default width-24 Poseidon2 permutation for Mersenne31.
default_mersenne31_poseidon2_32
Create a default width-32 Poseidon2 permutation for Mersenne31.

Type Aliases§

Poseidon1Mersenne31
Poseidon1 permutation for Mersenne31 (generic fallback).
Poseidon1Mersenne31Generic
Generic (non-SIMD) Poseidon1 permutation for Mersenne31.
Poseidon2Mersenne31
An implementation of the Poseidon2 hash function specialised to run on the current architecture.
QM31
The degree-4 extension of Mersenne31: Mersenne31[i][u] with i² = -1 and u² = 2 + i.