public MatrixND<Double> run(double error) { MatrixND<Double> data = new MatrixNDImpl<Double>(dimensions, 1.0); while (!finish(error)) { os.iterate(data, 0); fs.iterate(data, 1); fo.iterate(data, new int[] {2}); f.iterate(data, new int[] {1, 2}); } return data; }