1#ifndef TATAMI_MULT_SINGLE_VECTOR_DENSE_ROW_HPP
2#define TATAMI_MULT_SINGLE_VECTOR_DENSE_ROW_HPP
9#include "../dense_dot_product.hpp"
49template<std::
size_t accumulators_ = 4,
typename LeftValue_,
typename LeftIndex_,
typename RightValue_,
typename Output_>
52 const RightValue_*
const right,
53 Output_*
const output,
56 const auto NR = left.
nrow();
57 const auto NC = left.
ncol();
61 for (LeftIndex_ r = start, end = start + length; r < end; ++r) {
62 auto ptr = ext->fetch(buffer.data());
63 output[r] = dense_dot_product<accumulators_>(
67 static_cast<Output_
>(0)
virtual Index_ ncol() const=0
virtual Index_ nrow() const=0
Multiplication of tatami matrices.
Definition column_to_column.hpp:19
void multiply_dense_row_with_single_vector(const tatami::Matrix< LeftValue_, LeftIndex_ > &left, const RightValue_ *const right, Output_ *const output, const MultiplyDenseRowWithSingleVectorOptions &options)
Definition dense_row.hpp:50
int parallelize(Function_ fun, const Index_ tasks, const int workers)
Container_ create_container_of_Index_size(const Index_ x, Args_ &&... args)
auto consecutive_extractor(const Matrix< Value_, Index_ > &matrix, const bool row, const Index_ iter_start, const Index_ iter_length, Args_ &&... args)
Options for multiply_dense_row_with_single_vector().
Definition dense_row.hpp:25
int num_threads
Definition dense_row.hpp:30