swh:1:snp:81eadaa089e8253d8469bcef66aa332632c6c669
Tip revision: f0ba8a5d88ce30d08c8312fd9b882f2ff051d91b authored by Hans W. Borchers on 25 August 2018, 21:00:11 UTC
version 2.1.5
version 2.1.5
Tip revision: f0ba8a5
roots.R
###
### ROOTS.R Matlab ROOTS Function
###
roots <- function(p) {
if (is.null(p) || length(p) == 0) return(matrix(0, nrow=0, ncol=0))
if ( !is.vector(p, mode="numeric"))
stop("Argument p must be a vector of real numbers.")
if (length(p) == 1) return(matrix(0, nrow=0, ncol=0))
# Find non-zero entries in p
inz <- which(p != 0)
nnz <- length(inz)
if (nnz == 0) return(c())
# Strip leading and trailing zeros, but remember the trailing zeros
q <- p[inz[1]:inz[nnz]]
r <- rep(0, length(p) - inz[nnz])
A <- compan(q)
return(c(r, eig(A)))
}