VectorBinaryAssign { public abstract Vector assign(Vector x, Vector y, DoubleDoubleFunction f);  abstract boolean isValid(Vector x, Vector y, DoubleDoubleFunction f); abstract double estimateCost(Vector x, Vector y, DoubleDoubleFunction f); abstract Vector assign(Vector x, Vector y, DoubleDoubleFunction f); static VectorBinaryAssign getBestOperation(Vector x, Vector y, DoubleDoubleFunction f); static Vector assignBest(Vector x, Vector y, DoubleDoubleFunction f); static final VectorBinaryAssign[] OPERATIONS; }
@Test public void testAll() { SequentialAccessSparseVector x = new SequentialAccessSparseVector(CARDINALITY); for (int i = 0; i < x.size(); ++i) { x.setQuick(i, i); } SequentialAccessSparseVector y = new SequentialAccessSparseVector(x); System.out.printf("function %s; operation %s\n", function, operation); operation.assign(x, y, function); for (int i = 0; i < x.size(); ++i) { assertEquals(x.getQuick(i), function.apply(i, i), 0.0); } }