https://github.com/cran/pracma
Raw File
Tip revision: c79a04b5074656b36e591191eb8137b70a349932 authored by Hans W. Borchers on 30 June 2014, 00:00:00 UTC
version 1.7.0
Tip revision: c79a04b
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)
}
back to top