# Curve::Polynomial class reference

[Core module]

## Declaration

`#include <Goptical/Curve/Polynomial>`

namespace Goptical {

namespace Curve {

class Polynomial;

};

};

This class is a member of the Curve namespace.

## Inheritance

## Description

This class allow definition of rotationally symmetric high order polynomial curves. Unlimited number of terms can be used.

## Members

See also the full member list section for this class.

### Inherited members

- 9 members inherited from Rotational

### Functions

- Polynomial()
- Polynomial(unsigned int first_term, unsigned int last_term, ...)
- virtual double derivative(double r) const
- virtual double sagitta(double r) const
- void set(unsigned int first_term, unsigned int last_term, ...)
- void set_even(unsigned int first_term, unsigned int last_term, ...)
- void set_first_term(unsigned int n)
- void set_last_term(unsigned int n)
- void set_odd(unsigned int first_term, unsigned int last_term, ...)
- void set_term_factor(unsigned int n, double c)

## Members detail

Create a new zero polynomial

Create a new polynomial with given order and coefficients. Same syntax as set() function.

This virtual function overrides the `derivative`

virtual function defined in the `Rotational`

base abstract class.

Documentation inherited from base class:

Get curve derivative at specified distance from origin.

- r: distance from curve origin (0, 0)

This virtual function implements the `sagitta`

pure function declared in the `Rotational`

base abstract class.

Documentation inherited from base class:

Get curve sagitta at specified distance from origin.

- r: distance from curve origin (0, 0)

Set polynomial order and coefficients.

- first_term: order of first (lowest) term.
- last_term: order of last (highest) term.
- ...: list of coefficient starting at lowest term

Set even polynomial order and coefficients.

- first_term: order of first (lowest) term, must be even.
- last_term: order of last (highest) term, must be even.
- ...: list of even coefficient starting at lowest term

Set order of first (lowest) term. Polynomial may be truncated or extended with 0 coefficients.

Set order of last (highest) term. Polynomial may be truncated or extended with 0 coefficients.

Set odd polynomial order and coefficients.

- first_term: order of first (lowest) term, must be odd.
- last_term: order of last (highest) term, must be odd.
- ...: list of odd coefficient starting at lowest term

Adjust coefficient of a single term. Adujst polynomial length as needed, setting additional coefficients to 0.