File: refact.rst

package info (click to toggle)
rocsolver 6.4.3-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 17,876 kB
  • sloc: cpp: 151,850; python: 2,275; sh: 875; objc: 642; ansic: 402; makefile: 71; xml: 26
file content (150 lines) | stat: -rw-r--r-- 4,193 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
.. meta::
  :description: rocSOLVER documentation and API reference library
  :keywords: rocSOLVER, ROCm, API, documentation

.. _refactor:

**********************************************
rocSOLVER refactorization and direct solvers
**********************************************

These are functions that implement direct solvers for sparse systems with
different coefficient matrices that share the same sparsity pattern.
The re-factorization functions are divided into the following categories:

* :ref:`rfinit`. Basic functions to initialize and destroy meta data.
* :ref:`rfrefact`. Re-factorization of new matrices given a known sparsity pattern.
* :ref:`rfsolver`. Based on triangular re-factorization.

.. note::
    Throughout the APIs' descriptions, we use the following notations:

    * i, j, and k are used as general purpose indices. In some legacy LAPACK APIs, k could be
      a parameter indicating some problem/matrix dimension.
    * Depending on the context, when it is necessary to index rows, columns and blocks or submatrices,
      i is assigned to rows, j to columns and k to blocks. :math:`l` is always used to index
      matrices/problems in a batch.
    * x[i] stands for the i-th element of vector x, while A[i,j] represents the element
      in the i-th row and j-th column of matrix A. Indices are 1-based, i.e. x[1] is the first
      element of x.
    * To identify a block in a matrix or a matrix in the batch, k and :math:`l` are used as sub-indices
    * x_i :math:`=x_i`; we sometimes use both notations, :math:`x_i` when displaying mathematical
      equations, and x_i in the text describing the function parameters.
    * If X is a real vector or matrix, :math:`X^T` indicates its transpose; if X is complex, then
      :math:`X^H` represents its conjugate transpose. When X could be real or complex, we use X' to
      indicate X transposed or X conjugate transposed, accordingly.
    * When a matrix `A` is formed as the product of several matrices, the following notation is used:
      `A=M(1)M(2)...M(t)`.



.. _rfinit:

Initialization and meta data
==================================

.. contents:: List of initialization functions
   :local:
   :backlinks: top


.. _rfinfocreate:

rocsolver_create_rfinfo()
---------------------------------------
.. doxygenfunction:: rocsolver_create_rfinfo


.. _rfinfodestroy:

rocsolver_destroy_rfinfo()
---------------------------------------
.. doxygenfunction:: rocsolver_destroy_rfinfo


.. _rfinfoset:

rocsolver_set_rfinfo_mode()
---------------------------------------
.. doxygenfunction:: rocsolver_set_rfinfo_mode


.. _rfinfoget:

rocsolver_get_rfinfo_mode()
---------------------------------------
.. doxygenfunction:: rocsolver_get_rfinfo_mode


.. _rfanalysis:

rocsolver_csrrf_analysis()
--------------------------------------
.. doxygenfunction:: rocsolver_dcsrrf_analysis
   :outline:
.. doxygenfunction:: rocsolver_scsrrf_analysis



.. _rfrefact:

Triangular re-factorization
==================================

.. contents:: List of re-factorization functions
   :local:
   :backlinks: top

.. _rfsumlu:

rocsolver_<type>csrrf_sumlu()
----------------------------------
.. doxygenfunction:: rocsolver_dcsrrf_sumlu
   :outline:
.. doxygenfunction:: rocsolver_scsrrf_sumlu


.. _rfsplitlu:

rocsolver_<type>csrrf_splitlu()
------------------------------------
.. doxygenfunction:: rocsolver_dcsrrf_splitlu
   :outline:
.. doxygenfunction:: rocsolver_scsrrf_splitlu


.. _rfrefactlu:

rocsolver_<type>csrrf_refactlu()
------------------------------------
.. doxygenfunction:: rocsolver_dcsrrf_refactlu
   :outline:
.. doxygenfunction:: rocsolver_scsrrf_refactlu


.. _rfrefactchol:

rocsolver_<type>csrrf_refactchol()
------------------------------------
.. doxygenfunction:: rocsolver_dcsrrf_refactchol
   :outline:
.. doxygenfunction:: rocsolver_scsrrf_refactchol



.. _rfsolver:

Direct sparse solvers
==================================

.. contents:: List of direct solvers
   :local:
   :backlinks: top

.. _rfsolve:

rocsolver_<type>csrrf_solve()
----------------------------------
.. doxygenfunction:: rocsolver_dcsrrf_solve
   :outline:
.. doxygenfunction:: rocsolver_scsrrf_solve