19template <
typename Commitment,
typename FF>
20static Commitment batch_mul_native(
const std::vector<Commitment>& _points,
const std::vector<FF>& _scalars)
22 std::vector<Commitment> points;
23 std::vector<FF> scalars;
24 for (
size_t i = 0; i < _points.size(); ++i) {
25 const auto& point = _points[i];
26 const auto& scalar = _scalars[i];
29 if (!scalar.is_zero() && !point.is_point_at_infinity() && !point.y.is_zero()) {
30 points.emplace_back(point);
31 scalars.emplace_back(scalar);
36 return Commitment::infinity();
39 auto result = points[0] * scalars[0];
40 for (
size_t idx = 1; idx < scalars.size(); ++idx) {
41 result = result + points[idx] * scalars[idx];
Entry point for Barretenberg command-line interface.