@Override public int getNumNonZeroElements() { final DoubleIterator iterator = values.values().iterator(); int numNonZeros = 0; for( int i = values.size(); i-- != 0; ) if ( iterator.nextDouble() != 0 ) numNonZeros++; return numNonZeros; }
@Override public DoubleColumn fillWith(final DoubleIterator iterator) { for (int r = 0; r < size(); r++) { if (!iterator.hasNext()) { break; } set(r, iterator.nextDouble()); } return this; }
@Override public DoubleColumn fillWith(final DoubleRangeIterable iterable) { DoubleIterator iterator = iterable.iterator(); for (int r = 0; r < size(); r++) { if (!iterator.hasNext()) { iterator = iterable.iterator(); if (!iterator.hasNext()) { break; } } set(r, iterator.nextDouble()); } return this; }
/** * Compute the sum of the elements of a map. * @param v The vector * @return The sum of the values of {@code v}. */ public static double sumAbs(Long2DoubleMap v) { double sum = 0; DoubleIterator iter = v.values().iterator(); while (iter.hasNext()) { sum += Math.abs(iter.nextDouble()); } return sum; }
/** * Compute the sum of the elements of a map. * @param v The vector * @return The sum of the values of {@code v}. */ public static double sum(Long2DoubleMap v) { double sum = 0; DoubleIterator iter = v.values().iterator(); while (iter.hasNext()) { sum += iter.nextDouble(); } return sum; }
/** * Compute the sum of the squares of elements of a map. * @param v The vector * @return The sum of the squares of the values of {@code v}. */ public static double sumOfSquares(Long2DoubleMap v) { if (v instanceof Long2DoubleSortedArrayMap) { return sumOfSquares((Long2DoubleSortedArrayMap) v); } else { double sum = 0; DoubleIterator iter = v.values().iterator(); while (iter.hasNext()) { double d = iter.nextDouble(); sum += d * d; } return sum; } }
@Override public InvertibleFunction<Long2DoubleMap,Long2DoubleMap> makeTransformation(Long2DoubleMap reference) { if (reference.isEmpty()) { return new IdentityVectorNormalizer().makeTransformation(reference); } else { final double mean = Vectors.mean(reference); double var = 0; DoubleIterator iter = reference.values().iterator(); while (iter.hasNext()) { final double v = iter.nextDouble(); final double diff = v - mean; var += diff * diff; } if (Scalars.isZero(var) && Scalars.isZero(damping)) { logger.warn("found zero variance for {}, and no damping is enabled", reference); } /* damping calculation as described in Hofmann '04 * $\sigma_u^2 = \frac{\sigma^2 + q * \={\sigma}^2}{n_u + q}$ */ double stdev = Math.sqrt((var + damping * globalVariance) / (reference.size() + damping)); return new Transform(mean, stdev); } }
@Override public double nextDouble() { return i.nextDouble(); } }
/** * {@inheritDoc} * * @deprecated Please use the corresponding type-specific method instead. */ @Deprecated @Override default Double next() { return Double.valueOf(nextDouble()); } /**
/** Stores the element returned by an iterator to a given print stream. * * @param i an iterator whose output will be written to {@code stream}. * @param stream a print stream. */ public static void storeDoubles(final DoubleIterator i, final PrintStream stream) { while(i.hasNext()) stream.println(i.nextDouble()); } /** Stores the element returned by an iterator to a file given by a {@link File} object.
/** Stores the element returned by an iterator to a file given by a {@link File} object. * * @param i an iterator whose output will be written to {@code filename}. * @param file a file. */ public static void storeDoubles(final DoubleIterator i, final File file) throws IOException { final DataOutputStream dos = new DataOutputStream(new FastBufferedOutputStream(new FileOutputStream(file))); while(i.hasNext()) dos.writeDouble(i.nextDouble()); dos.close(); } /** Stores the element returned by an iterator to a file given by a pathname.
private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException { final DoubleIterator i = iterator(); s.defaultWriteObject(); for (int j = size; j-- != 0;) s.writeDouble(i.nextDouble()); }
private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException { final DoubleIterator i = iterator(); s.defaultWriteObject(); for (long j = size; j-- != 0;) s.writeDouble(i.nextDouble()); }
public static boolean all(final DoubleIterator iterator, final java.util.function.DoublePredicate predicate) { Objects.requireNonNull(predicate); do { if (!iterator.hasNext()) return true; } while (predicate.test(iterator.nextDouble())); return false; } public static int indexOf(final DoubleIterator iterator, final java.util.function.DoublePredicate predicate) {
public static int indexOf(final DoubleIterator iterator, final java.util.function.DoublePredicate predicate) { Objects.requireNonNull(predicate); for (int i = 0; iterator.hasNext(); ++i) { if (predicate.test(iterator.nextDouble())) return i; } return -1; } private static class IteratorConcatenator implements DoubleIterator {
@Override public double nextDouble() { if (!hasNext()) throw new NoSuchElementException(); double next = a[lastOffset = offset].nextDouble(); advance(); return next; } @Override
private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException { final DoubleIterator i = iterator(); s.defaultWriteObject(); for (int j = size; j-- != 0;) s.writeDouble(i.nextDouble()); }
@Override public int size() { int c = 0; final DoubleIterator iterator = iterator(); while (iterator.hasNext()) { iterator.nextDouble(); c++; } return c; } @Override
@Override public boolean removeAll(final DoubleCollection c) { boolean retVal = false; for (final DoubleIterator i = c.iterator(); i.hasNext();) if (rem(i.nextDouble())) retVal = true; return retVal; } @Override
@Override public boolean addAll(int index, final DoubleCollection c) { ensureIndex(index); final DoubleIterator i = c.iterator(); final boolean retVal = i.hasNext(); while (i.hasNext()) add(index++, i.nextDouble()); return retVal; } /**