pub use crate::alpha::Alpha;
pub use crate::arc_matrix::ArcMatrix;
pub use crate::matrix::SquareMatrix;
pub use crate::round_numbers::RoundNumbers;
pub use crate::{matrix_ops::MatrixOperations, matrix_ops::SquareMatrixOperations};
#[derive(Clone, Debug)]
pub struct PoseidonParameters<
const STATE_SIZE: usize,
const NUM_MDS_ELEMENTS: usize,
const NUM_ROUND_ROWS: usize,
const NUM_ROUND_COLS: usize,
const NUM_ROUND_ELEMENTS: usize,
> {
pub M: usize,
pub alpha: Alpha,
pub rounds: RoundNumbers,
pub m_e: SquareMatrix<STATE_SIZE, NUM_MDS_ELEMENTS>,
pub m_i: SquareMatrix<STATE_SIZE, NUM_MDS_ELEMENTS>,
pub arc: ArcMatrix<NUM_ROUND_ROWS, NUM_ROUND_COLS, NUM_ROUND_ELEMENTS>,
}