polyds_c

 Procedure Abstract Required_Reading Keywords Brief_I/O Detailed_Input Detailed_Output Parameters Exceptions Files Particulars Examples Restrictions Literature_References Author_and_Institution Version Index_Entries

#### Procedure

```   void polyds_c ( ConstSpiceDouble    * coeffs,
SpiceInt              deg,
SpiceInt              nderiv,
SpiceDouble           t,
SpiceDouble         * p )

```

#### Abstract

```   Compute the value of a polynomial and it's first
n derivatives at the value t.
```

```   None.
```

#### Keywords

```    INTERPOLATION
MATH
POLYNOMIAL

```

#### Brief_I/O

```    VARIABLE  I/O  DESCRIPTION
--------  ---  --------------------------------------------------
coeffs     I   Coefficients of the polynomial to be evaluated.
deg        I   Degree of the polynomial to be evaluated.
nderiv     I   Number of derivatives to compute.
t          I   Point to evaluate the polynomial and derivatives
p          O   Value of polynomial and derivatives.
```

#### Detailed_Input

```    coeffs     contains the coefficients of the polynomial that is
to be evaluated. The first element of this array
should be the constant term, the second element the
linear coefficient, the third term the quadratic
coefficient, and so on. The number of coefficients
supplied should be one more than deg.

f(x) = coeffs + coeffs*x + coeffs*x^2 +
coeffs*x^3 + ... + coeffs[deg]*x^deg

deg        is the degree of the polynomial to be evaluated. deg
should be one less than the number of coefficients
supplied.

nderiv     is the number of derivatives to compute. If nderiv
is zero, only the polynomial will be evaluated. If
nderiv = 1, then the polynomial and its first
derivative will be evaluated, and so on. If the value
of nderiv is negative, the routine returns
immediately.

t          is the point at which the polynomial and its
derivatives should be evaluated.
```

#### Detailed_Output

```    p          is an array containing the value of the polynomial and
its derivatives evaluated at t. The first element of
the array contains the value of p at t. The second
element of the array contains the value of the first
derivative of p at t and so on. The nderiv + 1'st
element of the array contains the nderiv'th derivative
of p evaluated at t.
```

#### Parameters

```    None.
```

#### Exceptions

```   Error free

1) If nderiv is less than zero, the routine simply returns

2) If the degree of the polynomial is less than 0, the routine
simply returns.
```

#### Files

```    None.
```

#### Particulars

```    This routine uses the user supplied coefficients (coeffs)
to evaluate a polynomial (having these coefficients) and its
derivatives at the point t. The zero'th derivative of the
polynomial is regarded as the polynomial itself.
```

#### Examples

```   Example:

For the polynomial

f(x) = 1 + 3*x + 0.5*x^2 + x^3 + 0.5*x^4 - x^5 + x^6

the coefficient set

Degree  coeffs
------  ------
0       1
1       3
2       0.5
3       1
4       0.5
5      -1
6       1

Suppose t = 1.0

We expect:

Derivative Number     t = 1
------------------    -----
f(x)         0        6
f'(x)        1        10
f''(x)       2        23
f'''(x)      3        78

#include <stdio.h>
#include "SpiceUsr.h"

int main()
{

/.
Local variables.
./
SpiceDouble      coeffs [] = { 1., 3., 0.5, 1., 0.5, -1., 1. };
SpiceInt         deg    = 6;
SpiceInt         nderiv = 3;
SpiceDouble      t      = 1.;

/. Dimension p as nderiv + 1. ./
SpiceDouble      p [ 4 ];

int              i;

polyds_c ( coeffs, deg, nderiv, t, p );

for ( i=0; i<=nderiv; i++ )
{
printf( "p = %lf\n", p[i] );
}

return(0);
}

The program outputs:

p = 6.000000
p = 10.000000
p = 23.000000
p = 78.000000
```

#### Restrictions

```    Depending on the coefficients the user should be careful when
taking high order derivatives. As the example shows, these
can get big in a hurry. In general the coefficients of the
derivatives of a polynomial grow at a rate greater
than N! (N factorial).
```

#### Literature_References

```    None.
```

#### Author_and_Institution

```    W.L. Taber      (JPL)
E.D. Wright     (JPL)
```

#### Version

```   -CSPICE Version 1.0.0, 24-AUG-2015 (EDW)
```

#### Index_Entries

```   compute a polynomial and its derivatives
```
`Wed Apr  5 17:54:40 2017`