-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Labels
bugSomething isn't workingSomething isn't working
Description
When calling grb::mxv() with a dense descriptor but output vector not structurally dense, the return code is grb::SUCCESS instead of the expected grb::ILLEGAL.
For example:
grb::Vector<float> x( 5 ), y( 5 );
grb::Matrix<float> A( 5, 5 );
// Build the vectors and the matrix ...
auto plusTimes = grb::semirings::plusTimes< float >();
grb::clear( x );
// grb::set( x, 0 ); // without this line x is not initialized and thus not dense
grb::set( y, 1 ); // without this line x is not initialized and thus not dense
std::cerr << "grb::nnz(x) = " << grb::nnz(x) << std::endl; // this prints 0
rc = grb::mxv< grb::descriptors::dense >(x, A, y, plusTimes);
assert( rc == grb::SUCCESS );
Runs successfully even though it should throw an error.
This behavior has been observed with the following backends: reference, reference_omp, nonblocking, bsp1d, hyperdags, hybrid
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working