https://github.com/cran/pracma
Tip revision: fdf16693b000f3e309c56091892c61f0ec9fd670 authored by Hans W. Borchers on 21 November 2017, 16:15:00 UTC
version 2.1.1
version 2.1.1
Tip revision: fdf1669
polyder.R
###
### POLYDER.R Polynom
###
polyder <- function(p, q) {
if (!missing(q)) {
if (length(q) == 0) return(0)
if (!is.numeric(q) && !is.complex(q))
stop("Arguments must be real or complex vectors or matrices.")
m <- length(q)
if (is.matrix(q)) q <- q[1:m]
} else {
q <- 1; m <- 1
}
if (length(p) == 0) return(0)
if (!is.numeric(p) && !is.complex(p))
stop("Argument 'p' must be a real or complex vector or matrix.")
n <- length(p)
if (is.matrix(p)) p <- p[1:n]
# multiply polynomials p an q
if (n*m <= 1) {
return(0)
} else {
r <- rep(0, n+m-1)
for (i in seq(along=q)) {
r <- r + c(rep(0, i-1), p * q[i], rep(0, m-i))
}
}
# case k > 1
k <- length(r)
r <- c((k-1):1) * r[1:(k-1)]
while (r[1] == 0 && length(r) >= 2) {
r <- r[2:length(r)]
}
return(r)
}