6 #ifndef MYRAMATH_PDENSE_PGEMM_H 7 #define MYRAMATH_PDENSE_PGEMM_H 14 #include <myramath/MYRAMATH_EXPORT.h> 25 template<
class Number>
class Matrix;
26 template<
class Number>
class MatrixRange;
27 template<
class Number>
class CMatrixRange;
30 MYRAMATH_EXPORT
void pgemm_inplace(
const MatrixRange<NumberS>& C,
const CMatrixRange<NumberS>& A,
char op_A,
const CMatrixRange<NumberS>& B,
char op_B, NumberS alpha, NumberS beta, pdense::Options options =
pdense::Options::create());
32 MYRAMATH_EXPORT
void pgemm_inplace(
const MatrixRange<NumberD>& C,
const CMatrixRange<NumberD>& A,
char op_A,
const CMatrixRange<NumberD>& B,
char op_B, NumberD alpha, NumberD beta, pdense::Options options =
pdense::Options::create());
33 MYRAMATH_EXPORT
void pgemm_inplace(
const MatrixRange<NumberC>& C,
const CMatrixRange<NumberC>& A,
char op_A,
const CMatrixRange<NumberC>& B,
char op_B, NumberC alpha, NumberC beta, pdense::Options options =
pdense::Options::create());
34 MYRAMATH_EXPORT
void pgemm_inplace(
const MatrixRange<NumberZ>& C,
const CMatrixRange<NumberZ>& A,
char op_A,
const CMatrixRange<NumberZ>& B,
char op_B, NumberZ alpha, NumberZ beta, pdense::Options options =
pdense::Options::create());
38 MYRAMATH_EXPORT Matrix<NumberS> pgemm(
const CMatrixRange<NumberS>& A,
char op_A,
const CMatrixRange<NumberS>& B,
char op_B, NumberS alpha=1, pdense::Options options =
pdense::Options::create());
40 MYRAMATH_EXPORT Matrix<NumberD> pgemm(
const CMatrixRange<NumberD>& A,
char op_A,
const CMatrixRange<NumberD>& B,
char op_B, NumberD alpha=1, pdense::Options options =
pdense::Options::create());
41 MYRAMATH_EXPORT Matrix<NumberC> pgemm(
const CMatrixRange<NumberC>& A,
char op_A,
const CMatrixRange<NumberC>& B,
char op_B, NumberC alpha=1, pdense::Options options =
pdense::Options::create());
42 MYRAMATH_EXPORT Matrix<NumberZ> pgemm(
const CMatrixRange<NumberZ>& A,
char op_A,
const CMatrixRange<NumberZ>& B,
char op_B, NumberZ alpha=1, pdense::Options options =
pdense::Options::create());
46 MYRAMATH_EXPORT Matrix<NumberS> pgemm(
const CMatrixRange<NumberS>& A,
char op_A,
const CMatrixRange<NumberS>& B, NumberS alpha=1, pdense::Options options =
pdense::Options::create());
48 MYRAMATH_EXPORT Matrix<NumberD> pgemm(
const CMatrixRange<NumberD>& A,
char op_A,
const CMatrixRange<NumberD>& B, NumberD alpha=1, pdense::Options options =
pdense::Options::create());
49 MYRAMATH_EXPORT Matrix<NumberC> pgemm(
const CMatrixRange<NumberC>& A,
char op_A,
const CMatrixRange<NumberC>& B, NumberC alpha=1, pdense::Options options =
pdense::Options::create());
50 MYRAMATH_EXPORT Matrix<NumberZ> pgemm(
const CMatrixRange<NumberZ>& A,
char op_A,
const CMatrixRange<NumberZ>& B, NumberZ alpha=1, pdense::Options options =
pdense::Options::create());
54 MYRAMATH_EXPORT Matrix<NumberS> pgemm(
const CMatrixRange<NumberS>& A,
const CMatrixRange<NumberS>& B,
char op_B, NumberS alpha=1, pdense::Options options =
pdense::Options::create());
56 MYRAMATH_EXPORT Matrix<NumberD> pgemm(
const CMatrixRange<NumberD>& A,
const CMatrixRange<NumberD>& B,
char op_B, NumberD alpha=1, pdense::Options options =
pdense::Options::create());
57 MYRAMATH_EXPORT Matrix<NumberC> pgemm(
const CMatrixRange<NumberC>& A,
const CMatrixRange<NumberC>& B,
char op_B, NumberC alpha=1, pdense::Options options =
pdense::Options::create());
58 MYRAMATH_EXPORT Matrix<NumberZ> pgemm(
const CMatrixRange<NumberZ>& A,
const CMatrixRange<NumberZ>& B,
char op_B, NumberZ alpha=1, pdense::Options options =
pdense::Options::create());
62 MYRAMATH_EXPORT Matrix<NumberS> pgemm(
const CMatrixRange<NumberS>& A,
const CMatrixRange<NumberS>& B, NumberS alpha=1, pdense::Options options =
pdense::Options::create());
64 MYRAMATH_EXPORT Matrix<NumberD> pgemm(
const CMatrixRange<NumberD>& A,
const CMatrixRange<NumberD>& B, NumberD alpha=1, pdense::Options options =
pdense::Options::create());
65 MYRAMATH_EXPORT Matrix<NumberC> pgemm(
const CMatrixRange<NumberC>& A,
const CMatrixRange<NumberC>& B, NumberC alpha=1, pdense::Options options =
pdense::Options::create());
66 MYRAMATH_EXPORT Matrix<NumberZ> pgemm(
const CMatrixRange<NumberZ>& A,
const CMatrixRange<NumberZ>& B, NumberZ alpha=1, pdense::Options options =
pdense::Options::create());
70 MYRAMATH_EXPORT JobGraph pgemm_jobgraph(
const MatrixRange<NumberS>& C,
const CMatrixRange<NumberS>& A,
char op_A,
const CMatrixRange<NumberS>& B,
char op_B, NumberS alpha, NumberS beta,
char dir =
'F', pdense::Options options =
pdense::Options::create());
72 MYRAMATH_EXPORT JobGraph pgemm_jobgraph(
const MatrixRange<NumberD>& C,
const CMatrixRange<NumberD>& A,
char op_A,
const CMatrixRange<NumberD>& B,
char op_B, NumberD alpha, NumberD beta,
char dir =
'F', pdense::Options options =
pdense::Options::create());
73 MYRAMATH_EXPORT JobGraph pgemm_jobgraph(
const MatrixRange<NumberC>& C,
const CMatrixRange<NumberC>& A,
char op_A,
const CMatrixRange<NumberC>& B,
char op_B, NumberC alpha, NumberC beta,
char dir =
'F', pdense::Options options =
pdense::Options::create());
74 MYRAMATH_EXPORT JobGraph pgemm_jobgraph(
const MatrixRange<NumberZ>& C,
const CMatrixRange<NumberZ>& A,
char op_A,
const CMatrixRange<NumberZ>& B,
char op_B, NumberZ alpha, NumberZ beta,
char dir =
'F', pdense::Options options =
pdense::Options::create());
static Options create()
Named constructor idiom, creates default options.
Definition: Options.h:44
Abstraction for representing a directed acyclic graph of Job's.
Various utility functions/classes related to scalar Number types.
Options pack for routines in /pdense.