MyraMath
pgetrf.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_PGETRF_H
7 #define MYRAMATH_PDENSE_PGETRF_H
8 
14 #include <myramath/MYRAMATH_EXPORT.h>
16 
18 
20 
21 #include <vector>
22 
23 namespace myra {
24 
25 // Forward declarations.
26 class intRange;
27 template<class Number> class MatrixRange;
28 
30 // Note, pgetrf_tile() is layout compatible with sequential getrf_inplace(), but less accurate.
32 MYRAMATH_EXPORT std::vector<int> pgetrf_tile(const MatrixRange<NumberS>& A, pdense::Options options = pdense::Options::create());
33 MYRAMATH_EXPORT std::vector<int> pgetrf_tile(const MatrixRange<NumberD>& A, pdense::Options options = pdense::Options::create());
34 MYRAMATH_EXPORT std::vector<int> pgetrf_tile(const MatrixRange<NumberC>& A, pdense::Options options = pdense::Options::create());
35 MYRAMATH_EXPORT std::vector<int> pgetrf_tile(const MatrixRange<NumberZ>& A, pdense::Options options = pdense::Options::create());
37 
39 MYRAMATH_EXPORT JobGraph pgetrf_tile_jobgraph(const MatrixRange<NumberS>& A, const intRange& swaps, pdense::Options options = pdense::Options::create());
41 MYRAMATH_EXPORT JobGraph pgetrf_tile_jobgraph(const MatrixRange<NumberD>& A, const intRange& swaps, pdense::Options options = pdense::Options::create());
42 MYRAMATH_EXPORT JobGraph pgetrf_tile_jobgraph(const MatrixRange<NumberC>& A, const intRange& swaps, pdense::Options options = pdense::Options::create());
43 MYRAMATH_EXPORT JobGraph pgetrf_tile_jobgraph(const MatrixRange<NumberZ>& A, const intRange& swaps, pdense::Options options = pdense::Options::create());
45 
47 // Slower but more stable than pgetrf_tile(). Reproduces the results of sequential getrf_inplace() almost exactly.
49 MYRAMATH_EXPORT std::vector<int> pgetrf_panel(const MatrixRange<NumberS>& A, pdense::Options options = pdense::Options::create());
50 MYRAMATH_EXPORT std::vector<int> pgetrf_panel(const MatrixRange<NumberD>& A, pdense::Options options = pdense::Options::create());
51 MYRAMATH_EXPORT std::vector<int> pgetrf_panel(const MatrixRange<NumberC>& A, pdense::Options options = pdense::Options::create());
52 MYRAMATH_EXPORT std::vector<int> pgetrf_panel(const MatrixRange<NumberZ>& A, pdense::Options options = pdense::Options::create());
54 
56 MYRAMATH_EXPORT JobGraph pgetrf_panel_jobgraph(char uplo, const MatrixRange<NumberS>& A, const intRange& swaps, pdense::Options options = pdense::Options::create());
58 MYRAMATH_EXPORT JobGraph pgetrf_panel_jobgraph(char uplo, const MatrixRange<NumberD>& A, const intRange& swaps, pdense::Options options = pdense::Options::create());
59 MYRAMATH_EXPORT JobGraph pgetrf_panel_jobgraph(char uplo, const MatrixRange<NumberC>& A, const intRange& swaps, pdense::Options options = pdense::Options::create());
60 MYRAMATH_EXPORT JobGraph pgetrf_panel_jobgraph(char uplo, const MatrixRange<NumberZ>& A, const intRange& swaps, pdense::Options options = pdense::Options::create());
62 
63 } // namespace myra
64 
65 #endif
std::vector< int > pgetrf_panel(const MatrixRange< NumberS > &A, pdense::Options options=pdense::Options::create())
Overwrites A with its P&#39;*L*U factorization, returns pivoting data P_swaps.
Definition: pgetrf_panel.cpp:234
JobGraph pgetrf_panel_jobgraph(char uplo, const MatrixRange< NumberS > &A, const intRange &swaps, pdense::Options options=pdense::Options::create())
Returns a JobGraph that fulfills pgetrf_panel(). When execute()&#39;d, overwrites A with L and U...
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.
JobGraph pgetrf_tile_jobgraph(const MatrixRange< NumberS > &A, const intRange &swaps, pdense::Options options=pdense::Options::create())
Returns a JobGraph that fulfills pgetrf_tile(). When execute()&#39;d, overwrites A with L and U...
Definition: pgetrf_tile.cpp:223
std::vector< int > pgetrf_tile(const MatrixRange< NumberS > &A, pdense::Options options=pdense::Options::create())
Overwrites A with its P&#39;*L*U factorization, returns pivoting data P_swaps.
Definition: pgetrf_tile.cpp:213