Sort complex numbers into complex conjugate pairs ordered by increasing real
part.
Usage
cplxpair(z, tol = 100 * .Machine$double.eps, MARGIN = 2)
Arguments
z
Vector, matrix, or array of complex numbers.
tol
Weighting factor 0 < tol < 1, which determines the
tolerance of matching. Default: 100 * .Machine$double.eps. (This
definition differs from the 'Octave' usage).
MARGIN
Vector giving the subscripts which the function will be applied
over. E.g., for a matrix 1 indicates rows, 2 indicates columns, c(1, 2)
indicates rows and columns. Where X has named dimnames, it can be a
character vector selecting dimension names. Default: 2 (columns).
Value
Vector, matrix or array containing ordered complex conjugate pairs by
increasing real parts.
Details
The negative imaginary complex numbers are placed first within each pair. All
real numbers (those with abs(Im (z) / z) < tol) are placed after the
complex pairs.
An error is signaled if some complex numbers could not be paired and if all
complex numbers are not exact conjugates (to within tol).