Skip to content

Commit 15b0769

Browse files
committed
Added example for symtridiagonal and hermtridiagonal.
1 parent 345f6f9 commit 15b0769

File tree

3 files changed

+37
-2
lines changed

3 files changed

+37
-2
lines changed

doc/specs/stdlib_specialmatrices.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ Symmetric tridiagonal matrices are available with all supported data types as `s
114114

115115
#### Syntax
116116

117-
- To construct a symmetric tridiagonal matrix from already allocated arrays `dv` (main diagonal, size `n`) and `ev` (upper diagonal, size `n-1`):
117+
- To construct a symmetric tridiagonal matrix from already allocated arrays `dv` (main diagonal, size `n`, only its real part is being referenced) and `ev` (upper diagonal, size `n-1`):
118118

119119
`A = ` [[stdlib_specialmatrices(module):symtridiagonal(interface)]] `(dv, ev)`
120120

@@ -175,7 +175,7 @@ Note that only the real parts of the diagonal elements `dv` are being used to co
175175
#### Example
176176

177177
```fortran
178-
{!example/specialmatrices/example_hermtridiagonal_dp_type.f90!}
178+
{!example/specialmatrices/example_hermtridiagonal_cdp_type.f90!}
179179
```
180180

181181
## Specialized drivers for linear algebra tasks
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
program example_hermtridiagonal_matrix
2+
use stdlib_linalg_constants, only: dp
3+
use stdlib_specialmatrices
4+
implicit none
5+
6+
integer, parameter :: n = 5
7+
type(hermtridiagonal_cdp_type) :: A
8+
complex(dp) :: dv(n), ev(n - 1)
9+
real(dp) :: data(n, 2)
10+
11+
! Generate random tridiagonal elements.
12+
call random_number(data); dv = cmplx(data(:, 1), 0*data(:, 2), kind=dp)
13+
call random_number(data); ev = cmplx(data(:n - 1, 1), data(:n - 1, 2), kind=dp)
14+
15+
! Create the corresponding Hermitian tridiagonal matrix.
16+
A = hermtridiagonal(dv, ev)
17+
18+
end program example_hermtridiagonal_matrix
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
program example_symtridiagonal_matrix
2+
use stdlib_linalg_constants, only: dp
3+
use stdlib_specialmatrices
4+
implicit none
5+
6+
integer, parameter :: n = 5
7+
type(symtridiagonal_dp_type) :: A
8+
real(dp) :: dv(n), ev(n - 1)
9+
10+
! Generate random tridiagonal elements.
11+
call random_number(dv)
12+
call random_number(ev)
13+
14+
! Create the corresponding Symmetric tridiagonal matrix.
15+
A = symtridiagonal(dv, ev)
16+
17+
end program example_symtridiagonal_matrix

0 commit comments

Comments
 (0)