1use crate::{fbig::FBig, repr::Word, round::Round};
4use core::{
5 iter::{Product, Sum},
6 ops::{Add, Mul},
7};
8
9impl<T, R: Round, const B: Word> Sum<T> for FBig<R, B>
13where
14 Self: Add<T, Output = Self>,
15{
16 fn sum<I: Iterator<Item = T>>(iter: I) -> Self {
17 iter.fold(FBig::ZERO, FBig::add)
18 }
19}
20
21impl<T, R: Round, const B: Word> Product<T> for FBig<R, B>
22where
23 Self: Mul<T, Output = Self>,
24{
25 fn product<I: Iterator<Item = T>>(iter: I) -> Self {
26 iter.fold(FBig::ONE, FBig::mul)
27 }
28}