26#ifndef _H_GRB_BLAS3_BASE
27#define _H_GRB_BLAS3_BASE
89 typename OutputType,
typename InputType1,
typename InputType2,
90 typename CIT,
typename RIT,
typename NIT,
102 std::cerr <<
"Selected backend does not implement grb::mxm "
103 <<
"(semiring version)\n";
106 const bool selected_backend_does_not_support_mxm =
false;
107 assert( selected_backend_does_not_support_mxm );
177 typename OutputType,
typename InputType1,
typename InputType2,
178 typename InputType3,
typename RIT,
typename CIT,
typename NIT,
179 Backend backend,
typename Coords
193 std::cerr <<
"Selected backend does not implement grb::zip (vectors into "
194 <<
"matrices, non-void)\n";
197 const bool selected_backend_does_not_support_zip_from_vectors_to_matrix
199 assert( selected_backend_does_not_support_zip_from_vectors_to_matrix );
219 typename InputType1,
typename InputType2,
typename InputType3,
220 typename RIT,
typename CIT,
typename NIT,
221 Backend backend,
typename Coords
233 std::cerr <<
"Selected backend does not implement grb::zip (vectors into "
234 <<
"matrices, void)\n";
237 const bool selected_backend_does_not_support_zip_from_vectors_to_void_matrix
239 assert( selected_backend_does_not_support_zip_from_vectors_to_void_matrix );
This file contains a register of all backends that are either implemented, under implementation,...
An ALP/GraphBLAS matrix.
Definition: matrix.hpp:71
A generalised semiring.
Definition: semiring.hpp:186
A GraphBLAS vector.
Definition: vector.hpp:64
RC mxm(Matrix< OutputType, backend, CIT, RIT, NIT > &C, const Matrix< InputType1, backend, CIT, RIT, NIT > &A, const Matrix< InputType2, backend, CIT, RIT, NIT > &B, const Semiring &ring=Semiring(), const Phase &phase=EXECUTE)
Unmasked and in-place sparse matrix–sparse matrix multiplication (SpMSpM), .
Definition: blas3.hpp:94
RC zip(Matrix< OutputType, backend, RIT, CIT, NIT > &A, const Vector< InputType1, backend, Coords > &x, const Vector< InputType2, backend, Coords > &y, const Vector< InputType3, backend, Coords > &z, const Phase &phase=EXECUTE)
The grb::zip merges three vectors into a matrix.
Definition: blas3.hpp:181
RC clear(Vector< DataType, backend, Coords > &x) noexcept
Clears a given vector of all nonzeroes.
Definition: io.hpp:574
Backend
A collection of all backends.
Definition: backends.hpp:46
Specifies the ALP/GraphBLAS matrix container.
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
@ SUCCESS
Indicates the primitive has executed successfully.
Definition: rc.hpp:54
@ UNSUPPORTED
Indicates that the execution of the requested primitive with the given arguments is not supported by ...
Definition: rc.hpp:129
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
Phase
Primitives with sparse ALP/GraphBLAS output containers may run into the issue where an appropriate gr...
Definition: phase.hpp:152
@ EXECUTE
Speculatively assumes that the output container of the requested operation has enough capacity to com...
Definition: phase.hpp:257
Defines the various phases an ALP/GraphBLAS primitive may be executed with.
Specifies the ALP/GraphBLAS vector container.