From 6546b714ad4d4e72cf8f3587d44a4cab2983b813 Mon Sep 17 00:00:00 2001 From: Christopher Berner Date: Sat, 16 Jan 2021 20:10:21 -0800 Subject: [PATCH] Skip elimination in V section of A during first phase This is safe due to Errata 11, and speeds up performance by a couple percent --- src/pi_solver.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/pi_solver.rs b/src/pi_solver.rs index 274b240..52c0703 100644 --- a/src/pi_solver.rs +++ b/src/pi_solver.rs @@ -704,7 +704,11 @@ impl IntermediateSymbolDecoder { let row = row as usize; assert_eq!(&temp_value, &Octet::one()); // Addition is equivalent to subtraction. + #[cfg(debug_assertions)] self.fma_rows(temp, row, Octet::one(), 0); + // Only apply to U section of matrix due to Errata 11 + #[cfg(not(debug_assertions))] + self.fma_rows(temp, row, Octet::one(), self.A.width() - (self.u + (r - 1))); row_ops.push(RowOp::AddAssign { src: temp, dest: row,