From 994cae1369f1436bfdaf5ffa8dec67f8295dde2b Mon Sep 17 00:00:00 2001 From: Kenil shah Date: Tue, 31 Mar 2026 13:39:25 +0530 Subject: [PATCH] perf: direct element-wise subtraction for LagrangeBasis refs --- ipa-multipoint/src/lagrange_basis.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ipa-multipoint/src/lagrange_basis.rs b/ipa-multipoint/src/lagrange_basis.rs index 9c272d92..e0e496d8 100644 --- a/ipa-multipoint/src/lagrange_basis.rs +++ b/ipa-multipoint/src/lagrange_basis.rs @@ -96,7 +96,18 @@ impl Sub<&LagrangeBasis> for &LagrangeBasis { type Output = LagrangeBasis; fn sub(self, rhs: &LagrangeBasis) -> Self::Output { - self.clone() + (-rhs) + assert_eq!( + self.values.len(), + rhs.values.len(), + "LagrangeBasis subtraction requires same length" + ); + LagrangeBasis::new( + self.values + .iter() + .zip(rhs.values.iter()) + .map(|(a, b)| *a - *b) + .collect(), + ) } }