From 674b0a51e8f1c478133141a5757fdc809ba80e28 Mon Sep 17 00:00:00 2001 From: wborgeaud Date: Fri, 6 Aug 2021 17:42:05 +0200 Subject: [PATCH 1/2] faster_transpose --- src/util/mod.rs | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/util/mod.rs b/src/util/mod.rs index 4846cd15..d788990d 100644 --- a/src/util/mod.rs +++ b/src/util/mod.rs @@ -1,3 +1,5 @@ +use rayon::prelude::*; + use crate::field::field_types::Field; use crate::polynomial::polynomial::PolynomialValues; @@ -35,17 +37,13 @@ pub(crate) fn transpose_poly_values(polys: Vec>) - transpose(&poly_values) } -pub(crate) fn transpose(matrix: &[Vec]) -> Vec> { - if matrix.is_empty() { - return Vec::new(); - } - - let old_rows = matrix.len(); - let old_cols = matrix[0].len(); - let mut transposed = vec![Vec::with_capacity(old_rows); old_cols]; - for new_r in 0..old_cols { - for old_row in matrix.iter() { - transposed[new_r].push(old_row[new_r].clone()); +pub(crate) fn transpose(matrix: &[Vec]) -> Vec> { + let l = matrix.len(); + let w = matrix[0].len(); + let mut transposed = vec![vec![F::ZERO; l]; w]; + for i in 0..w { + for j in 0..l { + transposed[i][j] = matrix[j][i]; } } transposed From c328fb67332039fc3be6ca50a341ed34a4a69e05 Mon Sep 17 00:00:00 2001 From: wborgeaud Date: Fri, 6 Aug 2021 17:57:05 +0200 Subject: [PATCH 2/2] unused import --- src/util/mod.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/util/mod.rs b/src/util/mod.rs index d788990d..7ee995f5 100644 --- a/src/util/mod.rs +++ b/src/util/mod.rs @@ -1,5 +1,3 @@ -use rayon::prelude::*; - use crate::field::field_types::Field; use crate::polynomial::polynomial::PolynomialValues;