From e7bd7e4e18895c52f8f03a655713920a91bb332d Mon Sep 17 00:00:00 2001 From: conrad Date: Sun, 29 Jun 2025 22:52:33 +1000 Subject: [PATCH] return early if there are no non-zero elements --- include/armadillo_bits/fn_accu.hpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/armadillo_bits/fn_accu.hpp b/include/armadillo_bits/fn_accu.hpp index 41fcaadc..3b24e0ce 100644 --- a/include/armadillo_bits/fn_accu.hpp +++ b/include/armadillo_bits/fn_accu.hpp @@ -1408,6 +1408,8 @@ accu(const SpOp& expr) { const SpSubview_col& svcol = reinterpret_cast&>(expr.m); + if(svcol.n_nonzero == 0) { return eT(0); } + if(svcol.n_rows == svcol.m.n_rows) { arma_debug_print("accu(): SpSubview_col spop_square optimisation"); @@ -1460,6 +1462,8 @@ accu_spop_omit_helper(const T1& expr, functor is_omitted) { const SpSubview_col& svcol = reinterpret_cast&>(expr); + if(svcol.n_nonzero == 0) { return eT(0); } + if(svcol.n_rows == svcol.m.n_rows) { arma_debug_print("accu_spop_omit_helper(): SpSubview_col optimisation");