https://github.com/cran/pracma
Tip revision: 3fdb68cc842f2ab3b59608f8e04d495763584f78 authored by Hans W. Borchers on 27 November 2015, 12:07:10 UTC
version 1.8.8
version 1.8.8
Tip revision: 3fdb68c
polypow.R
##
## p ol y p o w . R Polynomial Powers
##
polypow <- function(p, n){
if ( !is.vector(p, mode="numeric") && !is.vector(p, mode="complex") )
stop("Arguments 'p' must be a real or complex vector.")
if ( !is.numeric(n) || length(n) != 1 || floor(n) != ceiling(n) || n < 0 )
stop("Argument 'n' must be a non-negative integer.")
pp <- c(1)
while (n > 0) {
pp <- polymul(pp, p)
n <- n - 1
}
return(pp)
}
polytrans <- function(p, q){
if ( (!is.vector(p, mode="numeric") && !is.vector(p, mode="complex")) ||
(!is.vector(q, mode="numeric") && !is.vector(q, mode="complex")) )
stop("Arguments 'p' and 'q' must be real or complex vectors.")
n <- length(p)
if (length(p) == 1)
return(p)
pt <- 0
for (i in 1:n) {
pt <- polyadd(pt, p[i]*polypow(q, n-i))
}
return(pt)
}