Diagonally_Dominant_Matrix Function

public function Diagonally_Dominant_Matrix(A) result(diagonally_dominant)

function which checks if A is diagonally dominant

Arguments

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

Return Value logical


Source Code

    function Diagonally_Dominant_Matrix(A) result(diagonally_dominant)
        real(dp), dimension(:, :), intent(in) :: A
        logical :: diagonally_dominant
        real(dp) :: summation
        integer :: i, N

        N = size(A, 1)

        diagonally_dominant = .true.

        do i = 1, N
            summation = sum(abs(A(i, :) - A(i, i)))
            if (abs(A(i, i)) < summation) then
                diagonally_dominant = .false.
                exit
            end if
        end do

    end function Diagonally_Dominant_Matrix