Skip to content

Commit 56345f9

Browse files
committed
fix documentation links and descriptions
1 parent 2d08a29 commit 56345f9

File tree

2 files changed

+32
-14
lines changed

2 files changed

+32
-14
lines changed

doc/specs/stdlib_linalg_iterative_solvers.md

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ title: linalg_iterative_solvers
1010

1111
The `stdlib_linalg_iterative_solvers` module provides base implementations for known iterative solver methods. Each method is exposed with two procedure flavors:
1212

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.
1414

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.
1616

1717
<!-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -->
18-
### The `linop` derived type
18+
### The `stdlib_linop` derived type
1919

2020
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.
2121

@@ -25,11 +25,11 @@ The following type-bound procedure pointers enable customization of the solver:
2525

2626
##### `matvec`
2727

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 \).
2929

3030
#### Syntax
3131

32-
`call ` [[stdlib_iterative_solvers(module):matvec(interface)]] ` (x,y,alpha,beta,op)`
32+
`call ` [[stdlib_linalg_iterative_solvers(module):stdlib_linop_dp_type(type)]] `%matvec(x,y,alpha,beta,op)`
3333

3434
###### Class
3535

@@ -53,7 +53,7 @@ Proxy procedure for the `dot_product`.
5353

5454
#### Syntax
5555

56-
`res = ` [[stdlib_iterative_solvers(module):inner_product(interface)]] ` (x,y)`
56+
`res = ` [[stdlib_linalg_iterative_solvers(module):stdlib_linop_dp_type(type)]] `%inner_product(x,y)`
5757

5858
###### Class
5959

@@ -99,7 +99,7 @@ Implements the Conjugate Gradient (CG) method for solving the linear system \( A
9999

100100
#### Syntax
101101

102-
`call ` [[stdlib_iterative_solvers(module):stdlib_solve_cg_kernel(interface)]] ` (A, b, x, tol, maxiter, workspace)`
102+
`call ` [[stdlib_linalg_iterative_solvers(module):stdlib_solve_cg_kernel(interface)]] ` (A, b, x, tol, maxiter, workspace)`
103103

104104
#### Status
105105

@@ -132,7 +132,7 @@ Provides a user-friendly interface to the CG method for solving \( Ax = b \), su
132132

133133
#### Syntax
134134

135-
`call ` [[stdlib_iterative_solvers(module):solve_cg(interface)]] ` (A, b, x [, di, rtol, atol, maxiter, restart, workspace])`
135+
`call ` [[stdlib_linalg_iterative_solvers(module):stdlib_solve_cg(interface)]] ` (A, b, x [, di, rtol, atol, maxiter, restart, workspace])`
136136

137137
#### Status
138138

@@ -173,7 +173,7 @@ Implements the Preconditioned Conjugate Gradient (PCG) method for solving the li
173173

174174
#### Syntax
175175

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)`
177177

178178
#### Status
179179

@@ -214,7 +214,7 @@ Provides a user-friendly interface to the PCG method for solving \( Ax = b \), s
214214

215215
#### Syntax
216216

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])`
218218

219219
#### Status
220220

@@ -259,7 +259,7 @@ Implements the Biconjugate Gradient Stabilized (BiCGSTAB) method for solving the
259259

260260
#### Syntax
261261

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)`
263263

264264
#### Status
265265

@@ -298,7 +298,7 @@ Provides a user-friendly interface to the BiCGSTAB method for solving \( Ax = b
298298

299299
#### Syntax
300300

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])`
302302

303303
#### Status
304304

@@ -339,8 +339,13 @@ BiCGSTAB is particularly effective for:
339339

340340
The method uses 8 auxiliary vectors internally, requiring more memory than simpler methods but often providing better stability and convergence properties.
341341

342-
#### Example
342+
#### Example 1
343343

344344
```fortran
345345
{!example/linalg/example_solve_bicgstab.f90!}
346+
```
347+
348+
#### Example 2
349+
```fortran
350+
{!example/linalg/example_solve_bicgstab_wilkinson.f90!}
346351
```

src/stdlib_linalg_iterative_solvers.fypp

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ module stdlib_linalg_iterative_solvers
2727

2828
!! version: experimental
2929
!!
30+
!! [Specifications](../page/specs/stdlib_linalg_iterative_solvers.html#stdlib_linop)
31+
!!
3032
!! linop type holding the linear operator and its associated methods.
3133
!! The `linop` type is used to define the linear operator for the iterative solvers.
3234
#:for k, t, s in R_KINDS_TYPES
@@ -38,6 +40,8 @@ module stdlib_linalg_iterative_solvers
3840

3941
!! version: experimental
4042
!!
43+
!! [Specifications](../page/specs/stdlib_linalg_iterative_solvers.html#stdlib_solver_workspace)
44+
!!
4145
!! solver_workspace type holding temporal array data for the iterative solvers.
4246
#:for k, t, s in R_KINDS_TYPES
4347
type, public :: stdlib_solver_workspace_${s}$_type
@@ -89,7 +93,10 @@ module stdlib_linalg_iterative_solvers
8993
#:endfor
9094
end interface
9195
public :: stdlib_solve_cg_kernel
92-
96+
97+
!! version: experimental
98+
!!
99+
!! [Specifications](../page/specs/stdlib_linalg_iterative_solvers.html#stdlib_solve_cg)
93100
interface stdlib_solve_cg
94101
#:for matrix in MATRIX_TYPES
95102
#:for k, t, s in R_KINDS_TYPES
@@ -154,6 +161,9 @@ module stdlib_linalg_iterative_solvers
154161
end interface
155162
public :: stdlib_solve_bicgstab_kernel
156163

164+
!! version: experimental
165+
!!
166+
!! [Specifications](../page/specs/stdlib_linalg_iterative_solvers.html#stdlib_solve_pcg)
157167
interface stdlib_solve_pcg
158168
#:for matrix in MATRIX_TYPES
159169
#:for k, t, s in R_KINDS_TYPES
@@ -180,6 +190,9 @@ module stdlib_linalg_iterative_solvers
180190
end interface
181191
public :: stdlib_solve_pcg
182192

193+
!! version: experimental
194+
!!
195+
!! [Specifications](../page/specs/stdlib_linalg_iterative_solvers.html#stdlib_solve_bicgstab)
183196
interface stdlib_solve_bicgstab
184197
#:for matrix in MATRIX_TYPES
185198
#:for k, t, s in R_KINDS_TYPES

0 commit comments

Comments
 (0)