# pdPolynomial: Generate intrinsic HPD polynomial curves In pdSpecEst: An Analysis Toolbox for Hermitian Positive Definite Matrices

## Description

`pdPolynomial` generates intrinsic polynomial curves in the manifold of HPD matrices equipped with the affine-invariant Riemannian metric (see \insertCiteB09pdSpecEst[Chapter 6] or \insertCitePFA05pdSpecEst) according to the numerical integration procedure in \insertCiteHFJ14pdSpecEst. Given an initial starting point `p0` (i.e., a HPD matrix) in the Riemannian manifold and covariant derivatives up to order k - 1 at `p0`, `pdPolynomial` approximates the uniquely existing intrinsic polynomial curve of degree k passing through `p0` with the given covariant derivatives up to order k - 1 and vanishing higher order covariant derivatives.

## Usage

 `1` ```pdPolynomial(p0, v0, delta.t = 0.01, steps = 100) ```

## Arguments

 `p0` a (d, d)-dimensional HPD matrix specifying the starting point of the polynomial curve. `v0` a (d, d, k)-dimensional array corresponding to a sequence of (d,d)-dimensional Hermitian matrix-valued covariant derivatives from order zero up to order k - 1 at the starting point `p0`. `delta.t` a numeric value determining the incrementing step size in the numerical integration procedure. A smaller step size results in a higher resolution and therefore a more accurate approximation of the polynomial curve, defaults to `delta.t = 0.01`. `steps` number of incrementing steps in the numerical integration procedure, defaults to `steps = 100`.

## Value

A `(d, d, length(steps))`-dimensional array corresponding to a generated (approximate) intrinsic polynomial curve in the space of (d,d)-dimensional HPD matrices of degree k passing through `p0` with the given covariant derivatives `v0` up to order k - 1 and vanishing higher order covariant derivatives.

## References

\insertAllCited

`pdNeville`, `pdParTrans`
 ```1 2 3 4 5 6 7 8 9``` ```## First-order polynomial p0 <- diag(3) ## HPD starting point v0 <- array(H.coeff(rnorm(9), inverse = TRUE), dim = c(3, 3, 1)) ## zero-th order cov. derivative P.poly <- pdPolynomial(p0, v0) ## First-order polynomials coincide with geodesic curves P.geo <- sapply(seq(0, 1, length = 100), function(t) Expm(p0, t * Logm(p0, P.poly[, , 100])), simplify = "array") all.equal(P.poly, P.geo) ```