R: Set of Complex Numbers

Complex {set6} | R Documentation

## Set of Complex Numbers

### Description

The mathematical set of complex numbers, defined as the the set of reals with possibly imaginary components. i.e.

{a + bi : a,b ε R}

where R is the set of reals.

### Details

There is no inherent ordering in the set of complex numbers, hence only the `contains` method is implemented here.

### Super class

`set6::Set` -> `Complex`

### Methods

#### Public methods

- `Complex$new()`

- `Complex$contains()`

- `Complex$equals()`

- `Complex$isSubset()`

- `Complex$strprint()`

- `Complex$clone()`

Inherited methods

- `set6::Set$add()`

- `set6::Set$multiplicity()`

- `set6::Set$print()`

- `set6::Set$remove()`

- `set6::Set$summary()`

#### Method `new()`

Create a new `Complex` object.

##### Usage

    Complex$new()

##### Returns

A new `Complex` object.

#### Method `contains()`

Tests to see if `x` is contained in the Set.

##### Usage

    Complex$contains(x, all = FALSE, bound = NULL)

##### Arguments

`x`

  any. Object or vector of objects to test.

`all`

  logical. If `FALSE` tests each `x` separately. Otherwise returns `TRUE` only if all `x` pass test.

`bound`

  logical.

##### Details

`x` can be of any type, including a Set itself. `x` should be a tuple if checking to see if it lies within a set of dimension greater than one. To test for multiple `x` at the same time, then provide these as a list.

If `all = TRUE` then returns `TRUE` if all `x` are contained in the `Set`, otherwise returns a vector of logicals. For Intervals, `bound` is used to specify if elements lying on the (possibly open) boundary of the interval are considered contained (`bound = TRUE`) or not (`bound = FALSE`).

##### Returns

If `all` is `TRUE` then returns `TRUE` if all elements of `x` are contained in the `Set`, otherwise `FALSE.` If `all` is `FALSE` then returns a vector of logicals corresponding to each individual element of `x`.

The infix operator `%inset%` is available to test if `x` is an element in the `Set`, see examples.

#### Method `equals()`

Tests if two sets are equal.

##### Usage

    Complex$equals(x, all = FALSE)

##### Arguments

`x`

  Set or vector of Sets.

`all`

  logical. If `FALSE` tests each `x` separately. Otherwise returns `TRUE` only if all `x` pass test.

##### Returns

If `all` is `TRUE` then returns `TRUE` if all `x` are equal to the Set, otherwise `FALSE`. If `all` is `FALSE` then returns a vector of logicals corresponding to each individual element of `x`.

Infix operators can be used for:

Equal | `==`
Not equal | `!=`

##### Examples

    # Equals
    Set$new(1,2)$equals(Set$new(5,6))
    Set$new(1,2)$equals(Interval$new(1,2))
    Set$new(1,2) == Interval$new(1,2, class = "integer")

    # Not equal
    !Set$new(1,2)$equals(Set$new(1,2))
    Set$new(1,2) != Set$new(1,5)

#### Method `isSubset()`

Test if one set is a (proper) subset of another

##### Usage

    Complex$isSubset(x, proper = FALSE, all = FALSE)

##### Arguments

`x`

  any. Object or vector of objects to test.

`proper`

  logical. If `TRUE` tests for proper subsets.

`all`

  logical. If `FALSE` tests each `x` separately. Otherwise returns `TRUE` only if all `x` pass test.

##### Details

If using the method directly, and not via one of the operators then the additional boolean argument `proper` can be used to specify testing of subsets or proper subsets. A Set is a proper subset of another if it is fully contained by the other Set (i.e. not equal to) whereas a Set is a (non-proper) subset if it is fully contained by, or equal to, the other Set.

When calling `$isSubset` on objects inheriting from Interval, the method treats the interval as if it is a Set, i.e. ordering and class are ignored. Use `$isSubinterval` to test if one interval is a subinterval of another.

Infix operators can be used for:

Subset | `<`
Proper Subset | `<=`
Superset | `>`
Proper Superset | `>=`

Every `Set` is a subset of a `Universal`. No `Set` is a super set of a `Universal`, and only a `Universal` is not a proper subset of a `Universal`.

##### Returns

If `all` is `TRUE` then returns `TRUE` if all `x` are subsets of the Set, otherwise `FALSE`. If `all` is `FALSE` then returns a vector of logicals corresponding to each individual element of `x`.

##### Examples

    Set$new(1,2,3)$isSubset(Set$new(1,2), proper = TRUE)
    Set$new(1,2) < Set$new(1,2,3) # proper subset

    c(Set$new(1,2,3), Set$new(1)) < Set$new(1,2,3) # not proper
    Set$new(1,2,3) <= Set$new(1,2,3) # proper

#### Method `strprint()`

Creates a printable representation of the object.

##### Usage

    Complex$strprint(n = 2)

##### Arguments

`n`

  numeric. Number of elements to display on either side of ellipsis when printing.

##### Returns

A character string representing the object.

#### Method `clone()`

The objects of this class are cloneable with this method.

##### Usage

    Complex$clone(deep = FALSE)

##### Arguments

`deep`

  Whether to make a deep clone.

### See Also

Other special sets: `ExtendedReals`, `Integers`, `Logicals`, `Naturals`, `NegIntegers`, `NegRationals`, `NegReals`, `PosIntegers`, `PosNaturals`, `PosRationals`, `PosReals`, `Rationals`, `Reals`, `Universal`

### Examples

    ## ------------------------------------------------
    ## Method `Complex$equals`
    ## ------------------------------------------------

    # Equals
    Set$new(1,2)$equals(Set$new(5,6))
    Set$new(1,2)$equals(Interval$new(1,2))
    Set$new(1,2) == Interval$new(1,2, class = "integer")

    # Not equal
    !Set$new(1,2)$equals(Set$new(1,2))
    Set$new(1,2) != Set$new(1,5)

    ## ------------------------------------------------
    ## Method `Complex$isSubset`
    ## ------------------------------------------------

    Set$new(1,2,3)$isSubset(Set$new(1,2), proper = TRUE)
    Set$new(1,2) < Set$new(1,2,3) # proper subset

    c(Set$new(1,2,3), Set$new(1)) < Set$new(1,2,3) # not proper
    Set$new(1,2,3) <= Set$new(1,2,3) # proper

[Package set6 version 0.2.3 Index]