array_equality_i1 Function

private pure function array_equality_i1(array1, array2) result(are_equal)

Arguments

Type IntentOptional Attributes Name
integer, DIMENSION(:), POINTER, CONTIGUOUS :: array1
integer, DIMENSION(:), POINTER, CONTIGUOUS :: array2

Return Value logical


Source Code

   PURE_ARRAY_EQUALITY FUNCTION array_equality_i1(array1, array2) RESULT(are_equal)
      INTEGER, DIMENSION(:), POINTER, CONTIGUOUS         :: array1, array2
      LOGICAL                                            :: are_equal

      are_equal = .FALSE.
      IF (ASSOCIATED(array1) .AND. ASSOCIATED(array2)) THEN
#if TO_VERSION(1, 11) <= TO_VERSION(LIBXSMM_CONFIG_VERSION_MAJOR, LIBXSMM_CONFIG_VERSION_MINOR)
         are_equal = .NOT. libxsmm_diff(array1, array2)
#else
         IF (SIZE(array1) .NE. SIZE(array2)) RETURN
         are_equal = ALL(array1 .EQ. array2)
#endif
      END IF
   END FUNCTION array_equality_i1