## Cubic Evaluation

The program `CubicEval`

evaluates a cubic equation. In mathematics, a cubic function is a function of the form:

$f\left(x\right)=a{x}^{3}+b{x}^{2}+cx+d$

where *a* is nonzero; or in other words, a function defined by a polynomial of degree three.

The program asks for the values of the coefficients *a*, *b*, *c*, and *d*. Then it asks for a minimum and maximum value of *x* in order to set the range of the calculation (`xmin`

and `xmax`

). Finally it asks for the size of the step, the separation between evaluations (`deltax`

).

They are used in a loop:

`for (double x = xmin; x <= xmax; x += deltax) {...}`

and then the results of *y* for each *x* are printed on screen. The function that makes the evaluation is in the class `CCubicEval`

.

### Function `evaluateX()`

This is the function that evaluates *y* for different values of *x*. It is defined as `static`

, so that there is no need to instantiate the class to invoke it.

```
public static double evaluateX(CCubicEval f, double x) {
double y = f.a*Math.pow(x,3) + f.b*Math.pow(x,2) + f.c*x + f.d;
return y;
}
```

In the application, we can call it by first creating an object of type `CCubicEval`

that contains the values of the coefficients. Then we can reuse it to calculate the function in different regions:

```
CCubicEval f = new CCubicEval(a, b, c, d);
...
double y = CCubicEval.evaluateX(f, x);
```