27#ifndef _H_GRB_VECTOR_BASE
28#define _H_GRB_VECTOR_BASE
63 template<
typename D, enum Backend implementation,
typename C >
141 public std::iterator<
142 std::forward_iterator_tag,
143 std::pair< const size_t, const D >,
174 return std::pair< const size_t, const D >();
226 Vector(
const size_t n,
const size_t nz ) {
483 typename fwd_iterator =
const D * __restrict__
487 const fwd_iterator start,
const fwd_iterator
end,
598 typename ind_iterator =
const size_t * __restrict__,
599 typename nnz_iterator =
const D * __restrict__,
604 const ind_iterator ind_start,
const ind_iterator ind_end,
605 const nnz_iterator nnz_start,
const nnz_iterator nnz_end,
606 const Dup &dup = Dup()
724 typename ind_iterator =
const size_t * __restrict__,
725 typename nnz_iterator =
const D * __restrict__,
731 const ind_iterator ind_start,
732 const ind_iterator ind_end,
733 const nnz_iterator nnz_start,
734 const nnz_iterator nnz_end,
735 const Dup &dup = Dup()
771 template<
typename T >
801 template<
typename T >
866 template<
class Mono
id >
921 #ifndef _GRB_NO_EXCEPTIONS
922 throw std::runtime_error(
923 "Requesting lambda reference of unimplemented Vector backend."
This file contains a register of all backends that are either implemented, under implementation,...
A generalised monoid.
Definition: monoid.hpp:54
A standard iterator for the Vector< D > class.
Definition: vector.hpp:146
bool operator!=(const const_iterator &other) const
Definition: vector.hpp:157
std::pair< const size_t, const D > operator*() const
Dereferences the current position of this iterator.
Definition: vector.hpp:173
bool operator==(const const_iterator &other) const
Standard equals operator.
Definition: vector.hpp:151
const_iterator & operator++()
Advances the position of this iterator by one.
Definition: vector.hpp:190
A GraphBLAS vector.
Definition: vector.hpp:64
RC build(const Vector< mask_type, implementation, C > &mask, const Accum &accum, const ind_iterator ind_start, const ind_iterator ind_end, const nnz_iterator nnz_start, const nnz_iterator nnz_end, const Dup &dup=Dup())
Copy from raw user-supplied data into a vector.
Definition: vector.hpp:728
Vector(const size_t n)
Creates an ALP/GraphBLAS vector.
Definition: vector.hpp:235
Vector(Vector< D, implementation, C > &&x) noexcept
Move constructor.
Definition: vector.hpp:259
D value_type
The type of elements stored in this vector.
Definition: vector.hpp:69
const_iterator begin() const
Same as cbegin().
Definition: vector.hpp:351
const_iterator cbegin() const
Provides the only mechanism to extract data from this GraphBLAS vector.
Definition: vector.hpp:340
RC nnz(T &nnz) const
Return the number of nonzeroes in this vector.
Definition: vector.hpp:802
RC build(const Accum &accum, const ind_iterator ind_start, const ind_iterator ind_end, const nnz_iterator nnz_start, const nnz_iterator nnz_end, const Dup &dup=Dup())
Copy from raw user-supplied data into a vector.
Definition: vector.hpp:602
const_iterator cend() const
Indicates the end to the elements in this container.
Definition: vector.hpp:380
lambda_reference operator()(const size_t i, const Monoid &monoid=Monoid())
Returns a lambda reference to an element of this sparse vector.
Definition: vector.hpp:867
RC size(T &size) const
Return the dimension of this vector.
Definition: vector.hpp:772
Vector(const size_t n, const size_t nz)
Creates an ALP/GraphBLAS vector.
Definition: vector.hpp:226
~Vector()
Default destructor.
Definition: vector.hpp:307
lambda_reference operator[](const size_t i)
Returns a lambda reference to an element of this vector.
Definition: vector.hpp:919
Vector< D, implementation, C > & operator=(Vector< D, implementation, C > &&x) noexcept
Move-from-temporary assignment.
Definition: vector.hpp:278
const_iterator end() const
Same as cend().
Definition: vector.hpp:391
D & lambda_reference
Defines a reference to a value of type D.
Definition: vector.hpp:124
RC build(const Accum &accum, const fwd_iterator start, const fwd_iterator end, fwd_iterator npos)
Copy from raw user-supplied data into a vector.
Definition: vector.hpp:485
This operator discards all left-hand side input and simply copies the right-hand side input to the ou...
Definition: ops.hpp:116
Defines all ALP/GraphBLAS descriptors.
static constexpr Descriptor no_operation
Indicates no additional pre- or post-processing on any of the GraphBLAS function arguments.
Definition: descriptors.hpp:63
The ALP/GraphBLAS namespace.
Definition: graphblas.hpp:450
RC
Return codes of ALP primitives.
Definition: rc.hpp:47
@ PANIC
Generic fatal error code.
Definition: rc.hpp:68
unsigned int Descriptor
Descriptors indicate pre- or post-processing for some or all of the arguments to an ALP/GraphBLAS cal...
Definition: descriptors.hpp:54
Provides a set of standard binary operators.
Defines the ALP error codes.