MyraMath
psyrk.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_PSYRK_H
7 #define MYRAMATH_PDENSE_PSYRK_H
8 
14 #include <myramath/MYRAMATH_EXPORT.h>
16 
18 
20 
21 namespace myra {
22 
23 // Forward declarations.
24 template<class Number> class Matrix;
25 template<class Number> class MatrixRange;
26 template<class Number> class CMatrixRange;
27 template<class Number> class LowerMatrix;
28 template<class Number> class LowerMatrixRange;
29 
31 // Same operation as syrk_inplace, but (p)arallel across threads. See dense/syrk.h
33 MYRAMATH_EXPORT void psyrk_inplace(const MatrixRange<NumberS>& C, char uplo, const CMatrixRange<NumberS>& A, char op='N', NumberS alpha=1, NumberS beta=0, pdense::Options options = pdense::Options::create());
34 MYRAMATH_EXPORT void psyrk_inplace(const MatrixRange<NumberD>& C, char uplo, const CMatrixRange<NumberD>& A, char op='N', NumberD alpha=1, NumberD beta=0, pdense::Options options = pdense::Options::create());
35 MYRAMATH_EXPORT void psyrk_inplace(const MatrixRange<NumberC>& C, char uplo, const CMatrixRange<NumberC>& A, char op='N', NumberC alpha=1, NumberC beta=0, pdense::Options options = pdense::Options::create());
36 MYRAMATH_EXPORT void psyrk_inplace(const MatrixRange<NumberZ>& C, char uplo, const CMatrixRange<NumberZ>& A, char op='N', NumberZ alpha=1, NumberZ beta=0, pdense::Options options = pdense::Options::create());
38 
40 // Same operation as syrk_inplace, but (p)arallel across threads. See dense/syrk.h
42 MYRAMATH_EXPORT void psyrk_inplace(const LowerMatrixRange<NumberS>& C, const CMatrixRange<NumberS>& A, char op='N', NumberS alpha=1, NumberS beta=0, pdense::Options options = pdense::Options::create());
43 MYRAMATH_EXPORT void psyrk_inplace(const LowerMatrixRange<NumberD>& C, const CMatrixRange<NumberD>& A, char op='N', NumberD alpha=1, NumberD beta=0, pdense::Options options = pdense::Options::create());
44 MYRAMATH_EXPORT void psyrk_inplace(const LowerMatrixRange<NumberC>& C, const CMatrixRange<NumberC>& A, char op='N', NumberC alpha=1, NumberC beta=0, pdense::Options options = pdense::Options::create());
45 MYRAMATH_EXPORT void psyrk_inplace(const LowerMatrixRange<NumberZ>& C, const CMatrixRange<NumberZ>& A, char op='N', NumberZ alpha=1, NumberZ beta=0, pdense::Options options = pdense::Options::create());
47 
49 // Same operation as syrk, but (p)arallel across threads. See dense/syrk.h
51 MYRAMATH_EXPORT LowerMatrix<NumberS> psyrk (const CMatrixRange<NumberS>& A, char op='N', NumberS alpha=1, pdense::Options options = pdense::Options::create());
52 MYRAMATH_EXPORT LowerMatrix<NumberD> psyrk (const CMatrixRange<NumberD>& A, char op='N', NumberD alpha=1, pdense::Options options = pdense::Options::create());
53 MYRAMATH_EXPORT LowerMatrix<NumberC> psyrk (const CMatrixRange<NumberC>& A, char op='N', NumberC alpha=1, pdense::Options options = pdense::Options::create());
54 MYRAMATH_EXPORT LowerMatrix<NumberZ> psyrk (const CMatrixRange<NumberZ>& A, char op='N', NumberZ alpha=1, pdense::Options options = pdense::Options::create());
56 
58 MYRAMATH_EXPORT JobGraph psyrk_jobgraph(const MatrixRange<NumberS>& C, char uplo, const CMatrixRange<NumberS>& A, char op='N', NumberS alpha=1, NumberS beta=0, pdense::Options options = pdense::Options::create());
60 MYRAMATH_EXPORT JobGraph psyrk_jobgraph(const MatrixRange<NumberD>& C, char uplo, const CMatrixRange<NumberD>& A, char op='N', NumberD alpha=1, NumberD beta=0, pdense::Options options = pdense::Options::create());
61 MYRAMATH_EXPORT JobGraph psyrk_jobgraph(const MatrixRange<NumberC>& C, char uplo, const CMatrixRange<NumberC>& A, char op='N', NumberC alpha=1, NumberC beta=0, pdense::Options options = pdense::Options::create());
62 MYRAMATH_EXPORT JobGraph psyrk_jobgraph(const MatrixRange<NumberZ>& C, char uplo, const CMatrixRange<NumberZ>& A, char op='N', NumberZ alpha=1, NumberZ beta=0, pdense::Options options = pdense::Options::create());
64 
66 MYRAMATH_EXPORT JobGraph psyrk_jobgraph(const LowerMatrixRange<NumberS>& C, const CMatrixRange<NumberS>& A, char op='N', NumberS alpha=1, NumberS beta=0, pdense::Options options = pdense::Options::create());
68 MYRAMATH_EXPORT JobGraph psyrk_jobgraph(const LowerMatrixRange<NumberD>& C, const CMatrixRange<NumberD>& A, char op='N', NumberD alpha=1, NumberD beta=0, pdense::Options options = pdense::Options::create());
69 MYRAMATH_EXPORT JobGraph psyrk_jobgraph(const LowerMatrixRange<NumberC>& C, const CMatrixRange<NumberC>& A, char op='N', NumberC alpha=1, NumberC beta=0, pdense::Options options = pdense::Options::create());
70 MYRAMATH_EXPORT JobGraph psyrk_jobgraph(const LowerMatrixRange<NumberZ>& C, const CMatrixRange<NumberZ>& A, char op='N', NumberZ alpha=1, NumberZ beta=0, pdense::Options options = pdense::Options::create());
72 
73 } // namespace myra
74 
75 #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.