Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
Public Member Functions | Public Attributes | Friends | List of all members
libsnark::sparse_vector< T > Struct Template Reference

#include <sparse_vector.hpp>

Public Member Functions

 sparse_vector ()=default
 
 sparse_vector (const sparse_vector< T > &other)=default
 
 sparse_vector (sparse_vector< T > &&other)=default
 
 sparse_vector (std::vector< T > &&v)
 
sparse_vector< T > & operator= (const sparse_vector< T > &other)=default
 
sparse_vector< T > & operator= (sparse_vector< T > &&other)=default
 
operator[] (const size_t idx) const
 
bool operator== (const sparse_vector< T > &other) const
 
bool operator== (const std::vector< T > &other) const
 
bool is_valid () const
 
bool empty () const
 
size_t domain_size () const
 
size_t size () const
 
size_t size_in_bits () const
 
template<typename FieldT >
std::pair< T, sparse_vector< T > > accumulate (const typename std::vector< FieldT >::const_iterator &it_begin, const typename std::vector< FieldT >::const_iterator &it_end, const size_t offset) const
 

Public Attributes

std::vector< size_t > indices
 
std::vector< T > values
 
size_t domain_size_
 

Friends

std::ostream & operator (std::ostream &out, const sparse_vector< T > &v)
 
std::istream & operator>> (std::istream &in, sparse_vector< T > &v)
 

Detailed Description

template<typename T>
struct libsnark::sparse_vector< T >

A sparse vector is a list of indices along with corresponding values. The indices are selected from the set {0,1,...,domain_size-1}.

Definition at line 21 of file sparse_vector.hpp.

Constructor & Destructor Documentation

◆ sparse_vector() [1/4]

template<typename T >
libsnark::sparse_vector< T >::sparse_vector ( )
default

◆ sparse_vector() [2/4]

template<typename T >
libsnark::sparse_vector< T >::sparse_vector ( const sparse_vector< T > &  other)
default

◆ sparse_vector() [3/4]

template<typename T >
libsnark::sparse_vector< T >::sparse_vector ( sparse_vector< T > &&  other)
default

◆ sparse_vector() [4/4]

template<typename T >
libsnark::sparse_vector< T >::sparse_vector ( std::vector< T > &&  v)

Member Function Documentation

◆ accumulate()

template<typename T >
template<typename FieldT >
std::pair<T, sparse_vector<T> > libsnark::sparse_vector< T >::accumulate ( const typename std::vector< FieldT >::const_iterator &  it_begin,
const typename std::vector< FieldT >::const_iterator &  it_end,
const size_t  offset 
) const

◆ domain_size()

template<typename T >
size_t libsnark::sparse_vector< T >::domain_size ( ) const

◆ empty()

template<typename T >
bool libsnark::sparse_vector< T >::empty ( ) const

◆ is_valid()

template<typename T >
bool libsnark::sparse_vector< T >::is_valid ( ) const

◆ operator=() [1/2]

template<typename T >
sparse_vector<T>& libsnark::sparse_vector< T >::operator= ( const sparse_vector< T > &  other)
default

◆ operator=() [2/2]

template<typename T >
sparse_vector<T>& libsnark::sparse_vector< T >::operator= ( sparse_vector< T > &&  other)
default

◆ operator==() [1/2]

template<typename T >
bool libsnark::sparse_vector< T >::operator== ( const sparse_vector< T > &  other) const

◆ operator==() [2/2]

template<typename T >
bool libsnark::sparse_vector< T >::operator== ( const std::vector< T > &  other) const

◆ operator[]()

template<typename T >
T libsnark::sparse_vector< T >::operator[] ( const size_t  idx) const

◆ size()

template<typename T >
size_t libsnark::sparse_vector< T >::size ( ) const

◆ size_in_bits()

template<typename T >
size_t libsnark::sparse_vector< T >::size_in_bits ( ) const

Friends And Related Function Documentation

◆ operator

template<typename T >
std::ostream& operator ( std::ostream &  out,
const sparse_vector< T > &  v 
)
friend

◆ operator>>

template<typename T >
std::istream& operator>> ( std::istream &  in,
sparse_vector< T > &  v 
)
friend

Member Data Documentation

◆ domain_size_

template<typename T >
size_t libsnark::sparse_vector< T >::domain_size_

Definition at line 37 of file sparse_vector.hpp.

◆ indices

template<typename T >
std::vector<size_t> libsnark::sparse_vector< T >::indices

Definition at line 35 of file sparse_vector.hpp.

◆ values

template<typename T >
std::vector<T> libsnark::sparse_vector< T >::values

Definition at line 36 of file sparse_vector.hpp.


The documentation for this struct was generated from the following file: