pub fn generate_trace_rows<F: PrimeField, LinearLayers: GenericPoseidon2LinearLayers<WIDTH>, const WIDTH: usize, const SBOX_DEGREE: u64, const SBOX_REGISTERS: usize, const HALF_FULL_ROUNDS: usize, const PARTIAL_ROUNDS: usize>(
inputs: Vec<[F; WIDTH]>,
constants: &RoundConstants<F, WIDTH, HALF_FULL_ROUNDS, PARTIAL_ROUNDS>,
extra_capacity_bits: usize,
) -> RowMajorMatrix<F>