assertive.numbers (version 0.0-2)

assert_all_are_imaginary: Is the input real/imaginary?

Description

Checks to see if the input is real or imaginary.

Usage

assert_all_are_imaginary(x, tol = 100 * .Machine$double.eps, na_ignore = FALSE, severity = getOption("assertive.severity", "stop"))
assert_any_are_imaginary(x, tol = 100 * .Machine$double.eps, na_ignore = FALSE, severity = getOption("assertive.severity", "stop"))
assert_all_are_real(x, tol = 100 * .Machine$double.eps, na_ignore = FALSE, severity = getOption("assertive.severity", "stop"))
assert_any_are_real(x, tol = 100 * .Machine$double.eps, na_ignore = FALSE, severity = getOption("assertive.severity", "stop"))
is_imaginary(x, tol = 100 * .Machine$double.eps, .xname = get_name_in_parent(x))
is_real(x, tol = 100 * .Machine$double.eps, .xname = get_name_in_parent(x))

Arguments

x
Input to check.
tol
Imaginary/real components smaller than tol are not considered.
na_ignore
A logical value. If FALSE, NA values cause an error; otherwise they do not. Like na.rm in many stats package functions, except that the position of the failing values does not change.
severity
How severe should the consequences of the assertion be? Either "stop", "warning", "message", or "none".
.xname
Not intended to be used directly.

Value

TRUE if the input has imaginary component equal to zero. The assert_* functions return nothing but throw an error if the corresponding is_* function returns FALSE.

See Also

complex

Examples

Run this code
(x <- with(expand.grid(re = -1:1, im = -1:1), re + im * 1i))
is_real(x)
is_imaginary(x)

# By default, very small imaginary/real components are ignored.
x <- .Machine$double.eps * (1 + 1i)
is_real(x)
is_real(x, 0)
is_imaginary(x)
is_imaginary(x, 0)
# numbers with both a real and imaginary component return FALSE
# (since they are neither purely real nor purely imaginary)
cmplx <- 1 + 1i
is_real(cmplx)
is_imaginary(cmplx)
assert_all_are_real(1:10)
assert_all_are_real(1:10 + 0i)
assert_any_are_real(c(1i, 0))
assert_all_are_imaginary(1:10 * 1i)
assert_any_are_imaginary(c(1i, 0))
assertive.base::dont_stop(assert_all_are_real(x))
assertive.base::dont_stop(assert_all_are_imaginary(x))

Run the code above in your browser using DataLab