# Purpose¶

The module `EvaluateInterpolationPolynomial` evaluates a multidimensional, scalar interpolation polynomial at a given point and shows additional information.

# Usage¶

Connect the polynomial to be examined, enter the point at which to evaluate and watch the result.

Note that the polynomial might internally be stored as a sum of polynomials. This is in particular true for those polynomials created by the `SmolyakInterpolationPolynomial` module. In this case, some of the information shown applies to one summand only, and you can browse through the summands with the `Select Summand Number` field. Also, you can evaluate the summands individually by enabling the `Evaluate one summand only` field.

# Input Fields¶

## inputPolynomial¶

`name: ``inputPolynomial``, type: ``MLBase`

# Parameter Fields¶

## Field Index¶

 `Bounding Box`: `String` `Number of Summands`: `Integer` `Dimension of Summand`: `Integer` `Select Summand Number`: `Integer` `Evaluate one summand only`: `Bool` `Evaluation Point`: `String` `Evaluation Value`: `Double` `Interpolation Nodes`: `String` `Is constant`: `Bool` `Newton Values`: `String`

## Visible Fields¶

### Evaluation Point¶

`name: ``evalPoint``, type: ``String`

Sets the point at which the polynomial should be evaluated.

Separate components with comma. If the point does not match the dimension, it will internally be truncated or supplemented with zeros as required.

### Evaluation Value¶

`name: ``evalValue``, type: ``Double``, persistent: ``no`

Shows the value of the polynomial at the given point.

If the `Evaluate one summand only` field is enabled, it displays the value of the current summand at the given point.

### Number of Summands¶

`name: ``countSummands``, type: ``Integer``, persistent: ``no`

Shows the number of summands the polynomial consists of.

### Select Summand Number¶

`name: ``numSummand``, type: ``Integer``, default: ``0`

Sets the number of the summand (starting with 0) that should be examined.

This refers to all read-only fields that display properties of one summand only.

### Dimension of Summand¶

`name: ``dim``, type: ``Integer``, persistent: ``no`

Shows the space dimension of the current summand.

Usually, the dimension is the same for all summands, but the data structure does not require it to be like this.

Also, if you create a polynomial with the `SmolyakInterpolationPolynomial` module, the summands will usually have different degrees, so that for certain derivatives (obtained using the `DeriveInterpolationPolynomial` module), some summands might be constant (and thus stored as a zero-dimensional polynomial) while others are not. See the example network for an example.

### Evaluate one summand only¶

`name: ``evalOneSummandOnly``, type: ``Bool``, default: ``FALSE`

If checked, the behavior of `Evaluation Value`, `Bounding Box`, and `Is constant` is changed.

### Interpolation Nodes¶

`name: ``nodes``, type: ``String``, persistent: ``no`

Shows some internal information about the current summand.

### Newton Values¶

`name: ``cValues``, type: ``String``, persistent: ``no`

Shows some internal information about the current summand.

### Bounding Box¶

`name: ``bBox``, type: ``String``, persistent: ``no`

Shows the polynomial’s bounding box.

Each polynomial has a generic bounding box, determined by the way it was created with the `TensorInterpolationPolynomial` or the `SmolyakInterpolationPolynomial` module.

Usually, the bounding box is defined the way you would intuitively expect it to be. However, if you compute partial derivatives with the `DeriveInterpolationPolynomial` module, this will usually make the bounding box unexpectedly smaller.

If the `Evaluate one summand only` field is enabled, this field displays the bounding box of the current summand (instead of the whole polynomial).

### Is constant¶

`name: ``isConst``, type: ``Bool``, persistent: ``no`

Shows whether the polynomial is by its representation a constant.

If it is true, this means that the polynomial takes exactly the same values at all points.

If it is false, the polynomial is very likely to be non-constant, but it may occur that the constantness cannot be detected from the representation. To be absolutely sure, use a `SimplifyInterpolationPolynomial` module before this.