pub fn matrix_into_rowmaj<F: Field>(a: &[Vec<(F, usize)>]) -> Vec<MatrixElement<F>> {
    let mut a_row_flat = Vec::new();

    for (_row, elements) in a.iter().enumerate().rev() {
        for &(val, col) in elements.iter().rev() {
            a_row_flat.push(MatrixElement::Element((val, col)));
        }
        a_row_flat.push(MatrixElement::EOL);
    }
    a_row_flat
}
// Return a matrix stream, row major.
Return a matrix stream, row major.
Return a matrix stream row major .
pub fn matrix_into_rowmaj<F: Field>(a: &[Vec<(F, usize)>]) -> Vec<MatrixElement<F>> {
    let mut a_row_flat = Vec::new();
    for (_row, elements) in a.iter().enumerate().rev() {
        for &(val, col) in elements.iter().rev() {
            a_row_flat.push(MatrixElement::Element((val, col)));
        }
        a_row_flat.push(MatrixElement::EOL);
    }
    a_row_flat
}
pub fn matrix_into_rowmaj < F : Field > ( a : & [ Vec < ( F , usize ) > ] ) -> Vec < MatrixElement < F > > { let mut a_row_flat = Vec :: new ( ) ; for ( _row , elements ) in a . iter ( ) . enumerate ( ) . rev ( ) { for & ( val , col ) in elements . iter ( ) . rev ( ) { a_row_flat . push ( MatrixElement :: Element ( ( val , col ) ) ) ; } a_row_flat . push ( MatrixElement :: EOL ) ; } a_row_flat }
Return a matrix stream, row major.
Return a matrix stream row major .
a
&[Vec<(F, usize)>]