Returns the union of objects inheriting from class Set.

setunion(..., simplify = TRUE)

# S3 method for Set
+(x, y)

# S3 method for Set
|(x, y)

## Arguments

... Sets logical, if TRUE (default) returns the result in its simplest (unwrapped) form, usually a Set, otherwise a UnionSet. Set

## Value

An object inheriting from Set containing the union of supplied sets.

## Details

The union of $$N$$ sets, $$X1, ..., XN$$, is defined as the set of elements that exist in one or more sets, $$U = \{x : x \epsilon X1 \quad or \quad x \epsilon X2 \quad or \quad...\quad or \quad x \epsilon XN\}$$

The union of multiple ConditionalSets is given by combining their defining functions by an 'or', |, operator. See examples.

The union of fuzzy and crisp sets first coerces fuzzy sets to crisp sets by finding their support.

Other operators: powerset(), setcomplement(), setintersect(), setpower(), setproduct(), setsymdiff()

## Examples

# union of Sets

Set$new(-2:4) + Set$new(2:5)
#> {-2, -1,...,4, 5} setunion(Set$new(1, 4, "a"), Set$new("a", 6))
#> {1, 4, a, 6} Set$new(1, 2) + Set$new("a", 1i) + Set$new(9) #> {1, 2,...,0+1i, 9} # union of intervals Interval$new(1, 10) + Interval$new(5, 15) + Interval$new(20, 30)
#> [1,15] ∪ [20,30] Interval$new(1, 2, type = "()") + Interval$new(2, 3, type = "(]")
#> (1,2) ∪ (2,3] Interval$new(1, 5, class = "integer") + Interval$new(2, 7, class = "integer")
#> {1, 2,...,6, 7}
# union of mixed types

Set$new(1:10) + Interval$new(5, 15)
#> {1,...,10} ∪ [5,15] Set$new(1:10) + Interval$new(5, 15, class = "integer")
#> {1, 2,...,14, 15} Set$new(5, 7) | Tuple$new(6, 8, 7)
#> {5, 7, 6, 8}
# union of FuzzySet
FuzzySet$new(1, 0.1, 2, 0.5) + Set$new(2:5)
#> {1, 2,...,4, 5}
# union of conditional sets

ConditionalSet$new(function(x, y) x >= y) + ConditionalSet$new(function(x, y) x == y) +
ConditionalSet$new(function(x) x == 2) #> {x >= y | x == y | x == 2 : x ∈ V, y ∈ V} # union of special sets PosReals$new() + NegReals$new() #> ℝ Set$new(-Inf, Inf) + Reals\$new()
#> ℝ ∪ {-∞, +∞}