MyraMath
partialsolve.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_MULTIFRONTAL_LU_PARTIALSOLVE_H
7 #define MYRAMATH_MULTIFRONTAL_LU_PARTIALSOLVE_H
8 
17 #include <vector>
18 
19 namespace myra {
20 
21 // Forward declarations.
22 class intCRange;
23 template<class Number> class Matrix;
24 template<class Number> class CMatrixRange;
25 template<class Number> class MatrixRange;
26 
27 namespace multifrontal {
28 namespace detail {
29 namespace lu {
30 
31 // Forward declarations.
32 template<class Kernel> class LUContainer;
33 
34 } } } // namespace
35 
36 namespace multifrontal {
37 namespace lu {
38 namespace partialsolve {
39 
40 // Useful typedef.
41 typedef ::myra::multifrontal::Options Options;
42 
43 // Implementation detail of partialsolve()
44 template<class Kernel> JobGraph partialsolve_jobgraph(
45  const ::myra::multifrontal::detail::lu::LUContainer<Kernel>& LU,
46  const intCRange& i,
47  const intCRange& j,
48  const CMatrixRange<typename ReflectNumber<Kernel>::type>& B,
49  const MatrixRange<typename ReflectNumber<Kernel>::type>& X,
50  char side, char order, char op_L, char up_U, Options options);
51 
52 // Implementation detail of partialsolve()
53 template<class Kernel> void partialsolve_inplace(
54  const ::myra::multifrontal::detail::lu::LUContainer<Kernel>& LU,
55  const intCRange& i,
56  const intCRange& j,
57  const CMatrixRange<typename ReflectNumber<Kernel>::type>& B,
58  const MatrixRange<typename ReflectNumber<Kernel>::type>& X,
59  char side, char order, char op_L, char up_U, Options options);
60 
61 } } } } // namespace
62 
63 #endif
Reflects Number trait for a Container, containers of Numbers (Matrix&#39;s, Vector&#39;s, etc) should special...
Definition: Number.h:55
Options pack for routines in /multifrontal.
Definition: Options.h:24
Type erasure class that wraps JobGraphBase, gives it value semantics.
Definition: JobGraph.h:64
Definition: syntax.dox:1
Represents a const MatrixRange.
Definition: bothcat.h:22
Definition: random.cpp:45
Abstraction for representing a directed acyclic graph of Job&#39;s.
Various utility functions/classes related to scalar Number types.
Represents a mutable MatrixRange.
Definition: conjugate.h:26
Options pack for routines in /multifrontal.
Definition: partialsolve.h:32
Represents a const intRange.
Definition: intRange.h:142