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