8 #ifndef PB_VARIABLE_HPP_
9 #define PB_VARIABLE_HPP_
12 #include <libff/common/utils.hpp>
39 template<
typename FieldT>
41 protoboard<FieldT> &pb,
const std::string &annotation);
43 template<
typename FieldT>
46 typedef std::vector<pb_variable<FieldT>> contents;
49 using typename contents::const_iterator;
50 using typename contents::const_reverse_iterator;
51 using typename contents::iterator;
52 using typename contents::reverse_iterator;
54 using contents::begin;
55 using contents::emplace_back;
56 using contents::empty;
58 using contents::insert;
59 using contents::rbegin;
61 using contents::reserve;
63 using contents::operator[];
64 using contents::resize;
68 : contents(count, value){};
70 typename contents::const_iterator first,
71 typename contents::const_iterator last)
72 : contents(first, last){};
74 typename contents::const_reverse_iterator first,
75 typename contents::const_reverse_iterator last)
76 : contents(first, last){};
80 const std::string &annotation_prefix);
98 #define ONE pb_variable<FieldT>(0)
100 template<
typename FieldT>
117 template<
typename FieldT>
119 :
private std::vector<pb_linear_combination<FieldT>>
121 typedef std::vector<pb_linear_combination<FieldT>> contents;
124 using typename contents::const_iterator;
125 using typename contents::const_reverse_iterator;
126 using typename contents::iterator;
127 using typename contents::reverse_iterator;
129 using contents::begin;
130 using contents::emplace_back;
131 using contents::empty;
133 using contents::insert;
134 using contents::rbegin;
135 using contents::rend;
136 using contents::reserve;
137 using contents::size;
138 using contents::operator[];
139 using contents::resize;
150 : contents(count, value){};
152 typename contents::const_iterator first,
153 typename contents::const_iterator last)
154 : contents(first, last){};
156 typename contents::const_reverse_iterator first,
157 typename contents::const_reverse_iterator last)
158 : contents(first, last){};
177 template<
typename FieldT>
178 linear_combination<FieldT>
pb_sum(
const pb_linear_combination_array<FieldT> &v);
180 template<
typename FieldT>
182 const pb_linear_combination_array<FieldT> &v);
184 template<
typename FieldT>
186 const pb_linear_combination_array<FieldT> &v,
187 const std::vector<FieldT> &coeffs);
192 #endif // PB_VARIABLE_HPP_