Skip to main content

FullRoundLayer

Trait FullRoundLayer 

Source
pub trait FullRoundLayer<R, const WIDTH: usize, const D: u64>: Sync + Clone{
    // Required methods
    fn permute_state_initial(&self, state: &mut [R; WIDTH]);
    fn permute_state_terminal(&self, state: &mut [R; WIDTH]);
}
Expand description

The full (external) round layer of the Poseidon1 permutation.

Implementors apply the RF/2 initial or terminal full rounds to the state. Field-specific implementations (e.g., NEON, AVX2) can override the generic behavior for better performance.

Required Methods§

Source

fn permute_state_initial(&self, state: &mut [R; WIDTH])

Apply the RF/2 initial full rounds.

Source

fn permute_state_terminal(&self, state: &mut [R; WIDTH])

Apply the RF/2 terminal full rounds.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<F, A, Mds, const WIDTH: usize, const D: u64> FullRoundLayer<A, WIDTH, D> for Poseidon1ExternalLayerGeneric<F, Mds, WIDTH>