private double[][][] CreateCoefficients(final int points) {
final double[][][] coefficients = new double[points][points][points];
for (int i = 0; i < points; i++) {
final Matrix delts = new Matrix(points, points);
final double[][] ptr = delts.getData();
for (int j = 0; j < points; j++) {
final double delt = (j - i);
double hterm = 1.0;
for (int k = 0; k < points; k++) {
ptr[j][k] = hterm / EncogMath.factorial(k);
hterm *= delt;
}
}
final Matrix invMatrix = delts.inverse();
final double dNumPointsFactorial = EncogMath.factorial(points);
for (int j = 0; j < points; j++) {
for (int k = 0; k < points; k++) {
coefficients[i][j][k] = (Math
.round(invMatrix.getData()[j][k]
* dNumPointsFactorial))
/ dNumPointsFactorial;
}
}
}