From 4a6ddf1c2684892178ca0acc7b412d207672be7c Mon Sep 17 00:00:00 2001 From: AnthonyMikh Date: Mon, 26 Oct 2020 19:03:43 +0300 Subject: [PATCH] Avoid bounds checking in loop Slicing `src` checks bounds only once instead of on every iteration of loop. --- src/gf2.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gf2.rs b/src/gf2.rs index 7d14d61..92369a0 100644 --- a/src/gf2.rs +++ b/src/gf2.rs @@ -1,6 +1,7 @@ pub fn add_assign_binary(dest: &mut [u64], src: &[u64]) { - for i in 0..dest.len() { + let len = dest.len(); + for (dest, &src) in dest.iter_mut().zip(&src[..len]) { // Addition over GF(2) is defined as XOR - dest[i] ^= src[i]; + *dest ^= src; } }