special_union_complement Interface

public interface special_union_complement

Specialiced function with assumptions that speed up performance. Merge B into A and remove values that are in C. The result can be written with set notation as A ∪ B / C. Preconditions (not tested!): 1. C is a subset of A 2. A and B are disjoint 3. B and C are disjoint 4. A, B, and C are sorted. The result will be sorted.


Contents


Module Procedures

private pure function special_union_complement_integer_int64(A, B, C) result(D)

Arguments

Type IntentOptional Attributes Name
integer(kind=int64), intent(in) :: A(:)
integer(kind=int64), intent(in) :: B(:)
integer(kind=int64), intent(in) :: C(:)

Return Value integer(kind=int64), (size(A)+size(B)-size(C))

private pure function special_union_complement_integer_int32(A, B, C) result(D)

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: A(:)
integer(kind=int32), intent(in) :: B(:)
integer(kind=int32), intent(in) :: C(:)

Return Value integer(kind=int32), (size(A)+size(B)-size(C))