|
barretenberg
|
A dynamic array of field elements. More...
#include <dynamic_array.hpp>
Public Member Functions | |
| DynamicArray (Builder *builder, const size_t maximum_size) | |
| Construct a new Dynamic Array< Builder>:: Dynamic Array object. | |
| DynamicArray (const DynamicArray &other) | |
| Construct a new Dynamic Array< Builder>:: Dynamic Array object. | |
| DynamicArray (DynamicArray &&other) | |
| Construct a new Dynamic Array< Builder>:: Dynamic Array object. | |
| DynamicArray & | operator= (const DynamicArray &other) |
| Assignment Operator. | |
| DynamicArray & | operator= (DynamicArray &&other) |
| Move Assignment Operator. | |
| void | resize (const field_pt &new_length, const field_pt default_value=0) |
| Resize array. Current method v. inefficient! | |
| field_pt | read (const field_pt &index) const |
| Read a field element from the dynamic array at an index value. | |
| void | write (const field_pt &index, const field_pt &value) |
| Write a field element into the dynamic array at an index value. | |
| void | push (const field_pt &index) |
| Push a field element onto the dynamic array. | |
| void | pop () |
| Pop a field element off of the dynamic array. | |
| void | conditional_push (const bool_pt &predicate, const field_pt &index) |
| Conditionally push a field element onto the dynamic array. | |
| void | conditional_pop (const bool_pt &predicate) |
| Conditionallhy pop a field element off of the dynamic array. | |
| field_pt | size () const |
| size_t | native_size () const |
| size_t | max_size () const |
| Builder * | get_context () const |
A dynamic array of field elements.
| Builder | (must support plookup) |
| proof_system::plonk::stdlib::DynamicArray< Builder >::DynamicArray | ( | Builder * | builder, |
| const size_t | maximum_size | ||
| ) |
Construct a new Dynamic Array< Builder>:: Dynamic Array object.
Dynamic arrays require a maximum size when created, that cannot be exceeded. Read and write operations cost 3.25 UltraPlonk gates. Each dynamic array requires an additional 3.25 * maximum_size number of gates. If the dynamic array also requires a unique range constraint table due to its length (e.g. not a power of 2), this will add an additional (maximum_size / 6) gates.
| Builder |
| builder | |
| maximum_size | The maximum size of the array |
| proof_system::plonk::stdlib::DynamicArray< Builder >::DynamicArray | ( | const DynamicArray< Builder > & | other | ) |
Construct a new Dynamic Array< Builder>:: Dynamic Array object.
| Builder |
| other |
| proof_system::plonk::stdlib::DynamicArray< Builder >::DynamicArray | ( | DynamicArray< Builder > && | other | ) |
Construct a new Dynamic Array< Builder>:: Dynamic Array object.
| Builder |
| other |
| void proof_system::plonk::stdlib::DynamicArray< Builder >::conditional_pop | ( | const bool_pt & | predicate | ) |
Conditionallhy pop a field element off of the dynamic array.
| Builder |
| predicate |
| void proof_system::plonk::stdlib::DynamicArray< Builder >::conditional_push | ( | const bool_pt & | predicate, |
| const field_pt & | value | ||
| ) |
Conditionally push a field element onto the dynamic array.
| Builder |
| predicate | |
| value |
| DynamicArray< Builder > & proof_system::plonk::stdlib::DynamicArray< Builder >::operator= | ( | const DynamicArray< Builder > & | other | ) |
Assignment Operator.
| Builder |
| other |
| DynamicArray< Builder > & proof_system::plonk::stdlib::DynamicArray< Builder >::operator= | ( | DynamicArray< Builder > && | other | ) |
Move Assignment Operator.
| Builder |
| other |
| void proof_system::plonk::stdlib::DynamicArray< Builder >::pop |
Pop a field element off of the dynamic array.
| Builder |
| void proof_system::plonk::stdlib::DynamicArray< Builder >::push | ( | const field_pt & | value | ) |
Push a field element onto the dynamic array.
| Builder |
| value |
| field_t< Builder > proof_system::plonk::stdlib::DynamicArray< Builder >::read | ( | const field_pt & | index | ) | const |
Read a field element from the dynamic array at an index value.
| Builder |
| index |
| void proof_system::plonk::stdlib::DynamicArray< Builder >::resize | ( | const field_pt & | new_length, |
| const field_pt | default_value = 0 |
||
| ) |
Resize array. Current method v. inefficient!
| Builder |
| new_length |
Iterate over max array size if i is currently >= length but will be < new_length, write default_value into ram table
| void proof_system::plonk::stdlib::DynamicArray< Builder >::write | ( | const field_pt & | index, |
| const field_pt & | value | ||
| ) |
Write a field element into the dynamic array at an index value.
| Builder |
| index | |
| value |