pub fn sum<G: CurveProjective<Scalar = Fr>>(points: &[G]) -> G {
    points.iter().fold(G::zero(), |mut accumulator, point| {
        accumulator.add_assign(&point);
        accumulator
    })
}
/// Sum elements of a group.
/// This can be applied to elements of any group over Fr; in particular G1 and
/// G2.
Sum elements of a group.
This can be applied to elements of any group over Fr; in particular G1 and
G2.
Sum elements of a group . This can be applied to elements of any group over Fr ; in particular G1 and G2 .
pub fn sum<G: CurveProjective<Scalar = Fr>>(points: &[G]) -> G {
    points.iter().fold(G::zero(), |mut accumulator, point| {
        accumulator.add_assign(&point);
        accumulator
    })
}
pub fn sum < G : CurveProjective < Scalar = Fr > > ( points : & [ G ] ) -> G { points . iter ( ) . fold ( G :: zero ( ) , | mut accumulator , point | { accumulator . add_assign ( & point ) ; accumulator } ) }
Sum elements of a group.
Sum elements of a group .
points
&[G]
points
&[G]