is_diagonally_dominant Function

public function is_diagonally_dominant(A) result(is_diag_dom)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), dimension(:, :) :: A

Return Value logical


Source Code

    function is_diagonally_dominant(A) result(is_diag_dom)
        real(dp), dimension(:, :), intent(in) :: A
        logical :: is_diag_dom
        integer :: i, N
        real(dp) :: row_sum

        N = size(A, 1)
        is_diag_dom = .true.

        do i = 1, N
            row_sum = sum(abs(A(i, :))) - abs(A(i, i))
            if (abs(A(i, i)) < row_sum) then
                is_diag_dom = .false.
                return
            end if
        end do

    end function is_diagonally_dominant