AbstractVector implements Vector, LengthCachingVector { @Override public Vector assign(double value) { Iterator<Element> it; if (value == 0.0) { it = iterateNonZero(); while (it.hasNext()) { it.next().set(value); } } else { if (isSequentialAccess() && !isAddConstantTime()) { it = iterator(); OrderedIntDoubleMapping updates = new OrderedIntDoubleMapping(); while (it.hasNext()) { Element element = it.next(); if (element.get() == 0.0) { updates.set(element.index(), value); } else { element.set(value); } } mergeUpdates(updates); } else { for (int i = 0; i < size; ++i) { setQuick(i, value); } } } invalidateCachedLength(); return this; } protected  AbstractVector(int size); @Override Iterable<Element> all(); @Override Iterable<Element> nonZeroes(); @Override double aggregate(DoubleDoubleFunction aggregator, DoubleFunction map); @Override double aggregate(Vector other, DoubleDoubleFunction aggregator, DoubleDoubleFunction combiner); @Override Vector viewPart(int offset, int length); @SuppressWarnings("CloneDoesntDeclareCloneNotSupportedException") @Override Vector clone(); @Override Vector divide(double x); @Override double dot(Vector x); @Override double get(int index); @Override Element getElement(int index); @Override Vector normalize(); @Override Vector normalize(double power); @Override Vector logNormalize(); @Override Vector logNormalize(double power); Vector logNormalize(double power, double normLength); @Override double norm(double power); @Override double getLengthSquared(); @Override void invalidateCachedLength(); @Override double getDistanceSquared(Vector that); @Override double maxValue(); @Override int maxValueIndex(); @Override double minValue(); @Override int minValueIndex(); @Override Vector plus(double x); @Override Vector plus(Vector that); @Override Vector minus(Vector that); @Override void set(int index, double value); @Override void incrementQuick(int index, double increment); @Override Vector times(double x); @Override Vector times(Vector that); @Override double zSum(); @Override int getNumNonZeroElements(); @Override Vector assign(double value); @Override Vector assign(double[] values); @Override Vector assign(Vector other); @Override Vector assign(DoubleDoubleFunction f, double y); @Override Vector assign(DoubleFunction f); @Override Vector assign(Vector other, DoubleDoubleFunction function); @Override Matrix cross(Vector other); @Override final int size(); @Override String asFormatString(); @Override int hashCode(); @Override boolean equals(Object o); @Override String toString(); String toString(String[] dictionary); String sparseVectorToString();  }
@Test public void testAssignDouble() { test.assign(0); for (int i = 0; i < values.length; i++) { assertEquals("value[" + i + ']', 0.0, test.getQuick(i), EPSILON); } }
@Test public void testAssignUnaryFunction() { test.assign(Functions.NEGATE); for (int i = 1; i < values.length; i += 2) { assertEquals("value[" + i + ']', -values[i], test.getQuick(i+2), EPSILON); } }