Skip to content

Commit 6802a73

Browse files
committed
changed
1 parent ecc8ecf commit 6802a73

2 files changed

Lines changed: 3 additions & 77 deletions

File tree

src/specialmatrices/stdlib_specialmatrices_tridiagonal.fypp

Lines changed: 2 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -36,31 +36,8 @@ submodule (stdlib_specialmatrices) tridiagonal_matrices
3636
!! Matrix dimension.
3737
type(tridiagonal_${s1}$_type) :: A
3838
!! Corresponding tridiagonal matrix.
39-
40-
<<<<<<< HEAD
41-
<<<<<<< HEAD
42-
=======
43-
>>>>>>> 42054c9d7c11c427d6628bba5c236f0bf2fcdc97
44-
! Internal variables.
45-
type(linalg_state_type) :: err0
46-
47-
! Description of the matrix.
48-
A%n = n
49-
if (n <= 0) then
50-
err0 = linalg_state_type(this, LINALG_VALUE_ERROR, "Matrix size needs to be positive, n = ", n, ".")
51-
call linalg_error_handling(err0)
52-
endif
53-
! Matrix elements.
54-
allocate( A%dl(n-1), source = dl )
55-
allocate( A%dv(n), source= dv )
56-
allocate( A%du(n-1), source = du )
57-
<<<<<<< HEAD
58-
=======
59-
call build_tridiagonal(dl, dv, du, n, A)
60-
>>>>>>> 72698fd78241550f6d359b58ef08499d9c1ed030
61-
=======
39+
6240
call build_tridiagonal(dl, dv, du, n, A)
63-
>>>>>>> 42054c9d7c11c427d6628bba5c236f0bf2fcdc97
6441
end function
6542

6643
module function initialize_tridiagonal_impure_${s1}$(dl, dv, du, err) result(A)
@@ -243,10 +220,6 @@ submodule (stdlib_specialmatrices) tridiagonal_matrices
243220
#:else
244221
allocate(B(n, n), source=zero_${k1}$)
245222
#:endif
246-
<<<<<<< HEAD
247-
<<<<<<< HEAD
248-
=======
249-
>>>>>>> 42054c9d7c11c427d6628bba5c236f0bf2fcdc97
250223

251224
if (n == 1) then
252225
B(1, 1) = A%dv(1)
@@ -261,24 +234,8 @@ submodule (stdlib_specialmatrices) tridiagonal_matrices
261234
B(n, n-1) = A%dl(n-1)
262235
B(n, n) = A%dv(n)
263236
end if
264-
<<<<<<< HEAD
265-
=======
266-
=======
267-
>>>>>>> 42054c9d7c11c427d6628bba5c236f0bf2fcdc97
268-
B(1, 1) = A%dv(1)
269-
B(1, 2) = A%du(1)
270-
do concurrent (i=2:n-1)
271-
B(i, i-1) = A%dl(i-1)
272-
B(i, i) = A%dv(i)
273-
B(i, i+1) = A%du(i)
274-
enddo
275-
B(n, n-1) = A%dl(n-1)
276-
B(n, n) = A%dv(n)
277-
<<<<<<< HEAD
278-
>>>>>>> 72698fd78241550f6d359b58ef08499d9c1ed030
279-
=======
280-
>>>>>>> 42054c9d7c11c427d6628bba5c236f0bf2fcdc97
281237
end associate
238+
282239
end function
283240
#:endfor
284241

test/linalg/test_linalg_specialmatrices.fypp

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ contains
113113
"spmv(fail): y = alpha*A*x + beta*y, alpha: "//to_string(alpha)//", beta: "//to_string(beta))
114114
if (allocated(error)) return
115115

116-
! Test y = alpha * A.T @ x beta * y for random values of alpha and beta
116+
! Test y = alpha * A.T @ x + beta * y for random values of alpha and beta
117117
y1 = 0.0_wp
118118
call random_number(alpha)
119119
call random_number(beta)
@@ -446,41 +446,10 @@ contains
446446
! Scalar multiplication test
447447
C = 3.0_wp * A
448448
call check(error, all_close(dense(C), 3.0_wp * dense(A)), .true.)
449-
subroutine test_sym_tridiagonal_arithmetic(error)
450-
!> Error handling
451-
type(error_type), allocatable, intent(out) :: error
452-
#:for k1, t1, s1 in (KINDS_TYPES)
453-
block
454-
integer, parameter :: wp = ${k1}$
455-
type(sym_tridiagonal_${s1}$_type) :: A, B, C
456-
${t1}$, allocatable :: dv(:), du(:)
457-
458-
dv = [1.0_wp, 5.0_wp, 9.0_wp, 13.0_wp]
459-
du = [2.0_wp, 6.0_wp, 10.0_wp]
460-
A = sym_tridiagonal(du, dv)
461-
462-
dv = [3.0_wp, 7.0_wp, 11.0_wp, 14.0_wp]
463-
du = [4.0_wp, 8.0_wp, 12.0_wp]
464-
B = sym_tridiagonal(du, dv)
465-
466-
C = A + B
467-
call check(error, all_close(dense(C), dense(A) + dense(B)), .true., &
468-
"Symmetric tridiagonal operator + failed")
469-
if (allocated(error)) return
470-
471-
C = A - B
472-
call check(error, all_close(dense(C), dense(A) - dense(B)), .true., &
473-
"Symmetric tridiagonal operator - failed")
474-
if (allocated(error)) return
475-
476-
C = 5.0_wp * A
477-
call check(error, all_close(dense(C), 5.0_wp * dense(A)), .true., &
478-
"Symmetric tridiagonal operator * failed")
479449
if (allocated(error)) return
480450
end block
481451
#:endfor
482452
end subroutine
483-
end module
484453

485454
end module
486455

0 commit comments

Comments
 (0)