1#ifndef TATAMI_MULT_DENSE_MATRIX_DENSE_COLUMN_DISPATCH_HPP
2#define TATAMI_MULT_DENSE_MATRIX_DENSE_COLUMN_DISPATCH_HPP
9#include "../../utils.hpp"
117template<
typename LeftValue_,
typename LeftIndex_,
typename RightValue_,
typename RightIndex_,
typename Output_>
121 Output_*
const output,
122 const bool output_row_major,
126 if (output_row_major) {
133 if (output_row_major) {
virtual bool prefer_rows() const=0
Dense column-major LHS, dense column-major matrix RHS, column-major output.
Dense column-major LHS, dense column-major matrix RHS, row-major output.
Dense column-major LHS, dense row-major matrix RHS, column-major output.
Dense column-major LHS, dense row-major matrix RHS, row-major output.
Multiplication of tatami matrices.
Definition column_to_column.hpp:19
void multiply_dense_column_with_dense_row_matrix_to_row_output(const tatami::Matrix< LeftValue_, LeftIndex_ > &left, const RightColumns_ right_columns, GetRightRow_ get_right_row, Output_ *const output, const MultiplyDenseColumnWithDenseRowMatrixToRowOutputOptions &options)
Definition row_to_row.hpp:67
void set_dense_primary_block_size(MultiplyDenseColumnWithDenseMatrixOptions &options, int primary_block_size)
Definition dispatch.hpp:68
void set_dense_secondary_block_size(MultiplyDenseColumnWithDenseMatrixOptions &options, int secondary_block_size)
Definition dispatch.hpp:83
void multiply_dense_column_with_dense_column_matrix_to_column_output(const tatami::Matrix< LeftValue_, LeftIndex_ > &left, const RightColumns_ right_columns, GetRightColumn_ get_right_column, Output_ *const output, const MultiplyDenseColumnWithDenseColumnMatrixToColumnOutputOptions &options)
Definition column_to_column.hpp:68
void multiply_dense_column_with_dense_matrix(const tatami::Matrix< LeftValue_, LeftIndex_ > &left, const tatami::Matrix< RightValue_, RightIndex_ > &right, Output_ *const output, const bool output_row_major, const MultiplyDenseColumnWithDenseMatrixOptions &options)
Definition dispatch.hpp:118
void multiply_dense_column_with_dense_column_matrix_to_row_output(const tatami::Matrix< LeftValue_, LeftIndex_ > &left, const RightColumns_ right_columns, GetRightColumn_ get_right_column, Output_ *const output, const MultiplyDenseColumnWithDenseColumnMatrixToRowOutputOptions &options)
Definition column_to_row.hpp:68
void set_num_threads(MultiplyDenseColumnWithDenseMatrixOptions &options, int num_threads)
Definition dispatch.hpp:54
void multiply_dense_column_with_dense_row_matrix_to_column_output(const tatami::Matrix< LeftValue_, LeftIndex_ > &left, const RightColumns_ right_columns, GetRightRow_ get_right_row, Output_ *const output, const MultiplyDenseColumnWithDenseRowMatrixToColumnOutputOptions &options)
Definition row_to_column.hpp:67
Options for multiply_dense_column_with_dense_column_matrix_to_column_output().
Definition column_to_column.hpp:28
int primary_block_size
Definition column_to_column.hpp:40
int secondary_block_size
Definition column_to_column.hpp:47
int num_threads
Definition column_to_column.hpp:33
Options for multiply_dense_column_with_dense_column_matrix_to_row_output().
Definition column_to_row.hpp:28
int num_threads
Definition column_to_row.hpp:33
int primary_block_size
Definition column_to_row.hpp:40
int secondary_block_size
Definition column_to_row.hpp:47
Options for multiply_dense_column_with_dense_matrix().
Definition dispatch.hpp:21
MultiplyDenseColumnWithDenseRowMatrixToRowOutputOptions row_to_row
Definition dispatch.hpp:44
MultiplyDenseColumnWithDenseRowMatrixToColumnOutputOptions row_to_column
Definition dispatch.hpp:38
MultiplyDenseColumnWithDenseColumnMatrixToColumnOutputOptions column_to_column
Definition dispatch.hpp:26
MultiplyDenseColumnWithDenseColumnMatrixToRowOutputOptions column_to_row
Definition dispatch.hpp:32
Options for multiply_dense_column_with_dense_row_matrix_to_column_output().
Definition row_to_column.hpp:27
int primary_block_size
Definition row_to_column.hpp:39
int num_threads
Definition row_to_column.hpp:32
int secondary_block_size
Definition row_to_column.hpp:46
Options for multiply_dense_column_with_dense_row_matrix_to_row_output().
Definition row_to_row.hpp:27
int primary_block_size
Definition row_to_row.hpp:39
int secondary_block_size
Definition row_to_row.hpp:46
int num_threads
Definition row_to_row.hpp:32