|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
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 |
Private Types | |
| typedef field_t< Builder > | field_pt |
| typedef bool_t< Builder > | bool_pt |
| typedef witness_t< Builder > | witness_pt |
Private Attributes | |
| Builder * | _context = nullptr |
| size_t | _max_size |
| field_pt | _length = 0 |
| ram_table< Builder > | _inner_table |
A dynamic array of field elements.
| Builder | (must support plookup) |
Definition at line 17 of file dynamic_array.hpp.
|
private |
Definition at line 20 of file dynamic_array.hpp.
|
private |
Definition at line 19 of file dynamic_array.hpp.
|
private |
Definition at line 21 of file dynamic_array.hpp.
| bb::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 Ultra 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 |
Definition at line 29 of file dynamic_array.cpp.
| bb::stdlib::DynamicArray< Builder >::DynamicArray | ( | const DynamicArray< Builder > & | other | ) |
Construct a new Dynamic Array< Builder>:: Dynamic Array object.
| Builder |
| other |
Definition at line 50 of file dynamic_array.cpp.
| bb::stdlib::DynamicArray< Builder >::DynamicArray | ( | DynamicArray< Builder > && | other | ) |
Construct a new Dynamic Array< Builder>:: Dynamic Array object.
| Builder |
| other |
Definition at line 64 of file dynamic_array.cpp.
| void bb::stdlib::DynamicArray< Builder >::conditional_pop | ( | const bool_pt & | predicate | ) |
Conditionallhy pop a field element off of the dynamic array.
| Builder |
| predicate |
Definition at line 271 of file dynamic_array.cpp.
| void bb::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 |
Definition at line 255 of file dynamic_array.cpp.
|
inline |
Definition at line 47 of file dynamic_array.hpp.
|
inline |
Definition at line 45 of file dynamic_array.hpp.
|
inline |
Definition at line 44 of file dynamic_array.hpp.
| DynamicArray< Builder > & bb::stdlib::DynamicArray< Builder >::operator= | ( | const DynamicArray< Builder > & | other | ) |
Assignment Operator.
| Builder |
| other |
Definition at line 78 of file dynamic_array.cpp.
| DynamicArray< Builder > & bb::stdlib::DynamicArray< Builder >::operator= | ( | DynamicArray< Builder > && | other | ) |
Move Assignment Operator.
| Builder |
| other |
Definition at line 94 of file dynamic_array.cpp.
| void bb::stdlib::DynamicArray< Builder >::pop | ( | ) |
Pop a field element off of the dynamic array.
| Builder |
Definition at line 237 of file dynamic_array.cpp.
| void bb::stdlib::DynamicArray< Builder >::push | ( | const field_pt & | value | ) |
Push a field element onto the dynamic array.
| Builder |
| value |
Definition at line 222 of file dynamic_array.cpp.
| field_t< Builder > bb::stdlib::DynamicArray< Builder >::read | ( | const field_pt & | index | ) | const |
Read a field element from the dynamic array at an index value.
| Builder |
| index |
Definition at line 175 of file dynamic_array.cpp.
| void bb::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
Definition at line 109 of file dynamic_array.cpp.
|
inline |
Definition at line 43 of file dynamic_array.hpp.
| void bb::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 |
Definition at line 199 of file dynamic_array.cpp.
|
private |
Definition at line 50 of file dynamic_array.hpp.
|
mutableprivate |
Definition at line 53 of file dynamic_array.hpp.
|
private |
Definition at line 52 of file dynamic_array.hpp.
|
private |
Definition at line 51 of file dynamic_array.hpp.