Returns the symmetric difference of two objects inheriting from class Set
.
setsymdiff(x, y, simplify = TRUE) x %-% y
x, y | Set |
---|---|
simplify | logical, if |
An object inheriting from Set
containing the symmetric difference of elements in both x
and y
.
The symmetric difference, aka disjunctive union, of two sets, \(X, Y\), is defined as the set of elements that exist in set \(X\) or in \(Y\) but not both, $$\{z : (z \epsilon X \cup z \epsilon Y) \\ \cap \\ \neg(z \epsilon X \cap z \epsilon Y)\}$$
The symmetric difference can also be expressed as the union of two sets minus the intersection.
Therefore setsymdiff
is written as a thin wrapper over these operations, so for two sets, A,B
:
A %-% B = (A | B) - (A & B)
.
The symmetric difference of fuzzy and crisp sets first coerces fuzzy sets to crisp sets by finding their support.
Other operators:
powerset()
,
setcomplement()
,
setintersect()
,
setpower()
,
setproduct()
,
setunion()
# symmetrical difference compared to union and intersection Set$new(1, 2, 3) %-% Set$new(3, 4) #> {1, 2, 4} (Set$new(1, 2, 3) | Set$new(3, 4)) - (Set$new(1, 2, 3) & Set$new(3, 4)) #> {1, 2, 4} # ConditionalSets demonstrate the internal logic ConditionalSet$new(function(x) x > 0) %-% ConditionalSet$new(function(y) y == 0) #> isSubset is currently undefined for conditional sets. #> isSubset is currently undefined for conditional sets. #> {x ∈ 𝕍, y ∈ 𝕍 : (x > 0 | y == 0) & !(x > 0 & y == 0)}