From ab65ea122c0ae2d9e0d620fd95b6d845953e7168 Mon Sep 17 00:00:00 2001 From: Carlos Esquerdo Bernat Date: Fri, 21 Jun 2024 16:19:36 +0200 Subject: [PATCH 1/2] Perf: arrays.sum Remove the check inside the loop, initializing value with 0 --- vlib/arrays/arrays.v | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/vlib/arrays/arrays.v b/vlib/arrays/arrays.v index 15f0064755a4e1..7d9435a0613ff1 100644 --- a/vlib/arrays/arrays.v +++ b/vlib/arrays/arrays.v @@ -220,16 +220,10 @@ pub fn sum[T](array []T) !T { if array.len == 0 { return error('Cannot sum up array of nothing.') } else { - mut head := array[0] - + mut head := 0 for i, e in array { - if i == 0 { - continue - } else { - head += e - } + head += e } - return head } } @@ -243,7 +237,7 @@ pub fn reduce[T](array []T, reduce_op fn (acc T, elem T) T) !T { if array.len == 0 { return error('Cannot reduce array of nothing.') } else { - mut value := array[0] + mut value := 0 for i, e in array { if i == 0 { From 5508895def2622740131b1d88022b669bec40297 Mon Sep 17 00:00:00 2001 From: Carlos Esquerdo Bernat Date: Fri, 21 Jun 2024 16:26:32 +0200 Subject: [PATCH 2/2] Update arrays.v --- vlib/arrays/arrays.v | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vlib/arrays/arrays.v b/vlib/arrays/arrays.v index 7d9435a0613ff1..e86a77da56d077 100644 --- a/vlib/arrays/arrays.v +++ b/vlib/arrays/arrays.v @@ -237,7 +237,7 @@ pub fn reduce[T](array []T, reduce_op fn (acc T, elem T) T) !T { if array.len == 0 { return error('Cannot reduce array of nothing.') } else { - mut value := 0 + mut value := array[0] for i, e in array { if i == 0 {