package ec.app.regression.testcases;

public class Keijzer04Factory extends FunctionFactory {

	@Override
	protected int arity() {
		return 1;
	}

	@Override
	protected double function(final Double... x) {
		double sinx = Math.sin(x[0]);
		double sincosx = sinx * Math.cos(x[0]);
		return x[0] * x[0] * x[0] * Math.exp(-x[0]) * sincosx * (sinx * sincosx - 1);
	}

	@Override
	public String getSymbolicRepresentation() {
		return "x0 * x0 * x0 * exp(-x0) * sin(x0) * cos(x0) * (sin(x0) * sin(x0) * cos(x0) - 1)";
	}
}
