MyraMath
pgemm.h
Go to the documentation of this file.
1 // ========================================================================= //
2 // This file is part of MyraMath, copyright (c) 2014-2019 by Ryan A Chilton //
3 // and distributed by MyraCore, LLC. See LICENSE.txt for license terms. //
4 // ========================================================================= //
5 
6 #ifndef MYRAMATH_PDENSE_PGEMM_H
7 #define MYRAMATH_PDENSE_PGEMM_H
8 
14 #include <myramath/MYRAMATH_EXPORT.h>
16 
18 
20 
21 
22 namespace myra {
23 
24 // Forward declarations.
25 template<class Number> class Matrix;
26 template<class Number> class MatrixRange;
27 template<class Number> class CMatrixRange;
28 
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());
36 
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());
44 
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());
52 
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());
60 
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());
68 
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());
76 
77 } // namespace myra
78 
79 #endif
static Options create()
Named constructor idiom, creates default options.
Definition: Options.h:44
Definition: syntax.dox:1
Abstraction for representing a directed acyclic graph of Job&#39;s.
Various utility functions/classes related to scalar Number types.
Options pack for routines in /pdense.