You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The `stdlib_linalg_iterative_solvers` module provides base implementations for known iterative solver methods. Each method is exposed with two procedure flavors:
12
12
13
-
* A `solve_<method>_kernel` which holds the method's base implementation. The linear system argument is defined through a `linop` derived type which enables extending the method for implicit or unknown (by `stdlib`) matrices or to complex scenarios involving distributed parallelism for which the user shall extend the `inner_product` and/or matrix-vector product to account for parallel syncrhonization.
13
+
* A `stdlib_solve_<method>_kernel` which holds the method's base implementation. The linear system argument is defined through a `stdlib_linop` derived type which enables extending the method for implicit or unknown (by `stdlib`) matrices or to complex scenarios involving distributed parallelism for which the user shall extend the `inner_product` and/or matrix-vector product to account for parallel syncrhonization.
14
14
15
-
* A `solve_<method>` which proposes an off-the-shelf ready to use interface for `dense` and `CSR_<kind>_type` matrices for all `real` kinds.
15
+
* A `stdlib_solve_<method>` which proposes an off-the-shelf ready to use interface for `dense` and `CSR_<kind>_type` matrices for all `real` kinds.
The `stdlib_linop_<kind>_type` derive type is an auxiliary class enabling to abstract the definition of the linear system and the actual implementation of the solvers.
21
21
@@ -25,11 +25,11 @@ The following type-bound procedure pointers enable customization of the solver:
25
25
26
26
##### `matvec`
27
27
28
-
Proxy procedure for the matrix-vector product $y = alpha * op(M) * x + beta * y$.
28
+
Proxy procedure for the matrix-vector product \(y = alpha * op(M) * x + beta * y\).
@@ -173,7 +173,7 @@ Implements the Preconditioned Conjugate Gradient (PCG) method for solving the li
173
173
174
174
#### Syntax
175
175
176
-
`call `[[stdlib_iterative_solvers(module):stdlib_solve_cg_kernel(interface)]]` (A, M, b, x, tol, maxiter, workspace)`
176
+
`call `[[stdlib_linalg_iterative_solvers(module):stdlib_solve_cg_kernel(interface)]]` (A, M, b, x, tol, maxiter, workspace)`
177
177
178
178
#### Status
179
179
@@ -214,7 +214,7 @@ Provides a user-friendly interface to the PCG method for solving \( Ax = b \), s
214
214
215
215
#### Syntax
216
216
217
-
`call `[[stdlib_iterative_solvers(module):stdlib_solve_pcg(interface)]]` (A, b, x [, di, tol, maxiter, restart, precond, M, workspace])`
217
+
`call `[[stdlib_linalg_iterative_solvers(module):stdlib_solve_pcg(interface)]]` (A, b, x [, di, tol, maxiter, restart, precond, M, workspace])`
218
218
219
219
#### Status
220
220
@@ -259,7 +259,7 @@ Implements the Biconjugate Gradient Stabilized (BiCGSTAB) method for solving the
259
259
260
260
#### Syntax
261
261
262
-
`call `[[stdlib_iterative_solvers(module):stdlib_solve_bicgstab_kernel(interface)]]` (A, M, b, x, rtol, atol, maxiter, workspace)`
262
+
`call `[[stdlib_linalg_iterative_solvers(module):stdlib_solve_bicgstab_kernel(interface)]]` (A, M, b, x, rtol, atol, maxiter, workspace)`
263
263
264
264
#### Status
265
265
@@ -298,7 +298,7 @@ Provides a user-friendly interface to the BiCGSTAB method for solving \( Ax = b
298
298
299
299
#### Syntax
300
300
301
-
`call `[[stdlib_iterative_solvers(module):stdlib_solve_bicgstab(interface)]]` (A, b, x [, di, rtol, atol, maxiter, restart, precond, M, workspace])`
301
+
`call `[[stdlib_linalg_iterative_solvers(module):stdlib_solve_bicgstab(interface)]]` (A, b, x [, di, rtol, atol, maxiter, restart, precond, M, workspace])`
302
302
303
303
#### Status
304
304
@@ -339,8 +339,13 @@ BiCGSTAB is particularly effective for:
339
339
340
340
The method uses 8 auxiliary vectors internally, requiring more memory than simpler methods but often providing better stability and convergence properties.
0 commit comments