java.util.PrimitiveIterator.OfDouble Java Examples
The following examples show how to use
java.util.PrimitiveIterator.OfDouble.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: DoubleArray.java From uima-uimaj with Apache License 2.0 | 6 votes |
@Override public OfDouble iterator() { return new OfDouble() { int i = 0; @Override public boolean hasNext() { return i < size(); } @Override public Double next() { if (!hasNext()) throw new NoSuchElementException(); return get(i++); } @Override public double nextDouble() { if (!hasNext()) throw new NoSuchElementException(); return get(i++); } }; }
Example #2
Source File: UniformDistributionThresholdProviderThresholdFilter.java From metanome-algorithms with Apache License 2.0 | 6 votes |
@Override public Iterable<Double> filter(DoubleSet similarities) { if (similarities.isEmpty()) { return DoubleSets.EMPTY_SET; } DoubleSortedSet filtered = sorted(similarities); double first = filtered.firstDouble(); int intervals = size - 1; if (intervals == 0) { return DoubleSets.singleton(first); } double last = filtered.lastDouble(); double intervalSize = (first - last) / intervals; UniformTrimmer trimmer = new UniformTrimmer(intervalSize); OfDouble iterator = filtered.iterator(); trimmer.trim(iterator); return filtered; }
Example #3
Source File: DoubleStreamEx.java From streamex with Apache License 2.0 | 6 votes |
/** * Returns a {@code float[]} array containing the elements of this stream * which are converted to floats using {@code (float)} cast operation. * * <p> * This is a terminal operation. * * @return an array containing the elements of this stream * @since 0.3.0 */ public float[] toFloatArray() { if (isParallel()) return collect(DoubleCollector.toFloatArray()); java.util.Spliterator.OfDouble spliterator = spliterator(); int size = intSize(spliterator); FloatBuffer buf; if (size >= 0) { buf = new FloatBuffer(size); spliterator.forEachRemaining((DoubleConsumer) buf::addUnsafe); } else { buf = new FloatBuffer(); spliterator.forEachRemaining((DoubleConsumer) buf::add); } return buf.toArray(); }
Example #4
Source File: IteratorUtils.java From metanome-algorithms with Apache License 2.0 | 5 votes |
public static OptionalDouble next(OfDouble it) { if (it.hasNext()) { double higher = it.nextDouble(); return OptionalDouble.of(higher); } return OptionalDouble.empty(); }
Example #5
Source File: DoubleStreamExTest.java From streamex with Apache License 2.0 | 5 votes |
@Test public void testDropWhile() { assertArrayEquals(new double[] { 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, LongStreamEx.range(100).asDoubleStream() .dropWhile(i -> i % 10 < 5).limit(10).toArray(), 0.0); assertEquals(100, LongStreamEx.range(100).asDoubleStream().sorted().dropWhile(i -> i % 10 < 0).count()); assertEquals(0, LongStreamEx.range(100).asDoubleStream().dropWhile(i -> i % 10 < 10).count()); assertEquals(OptionalDouble.of(0), LongStreamEx.range(100).asDoubleStream().dropWhile(i -> i % 10 < 0).findFirst()); assertEquals(OptionalDouble.empty(), LongStreamEx.range(100).asDoubleStream().dropWhile(i -> i % 10 < 10).findFirst()); java.util.Spliterator.OfDouble spltr = LongStreamEx.range(100).asDoubleStream().dropWhile(i -> i % 10 < 1).spliterator(); assertTrue(spltr.tryAdvance((double x) -> assertEquals(1, x, 0.0))); Builder builder = DoubleStream.builder(); spltr.forEachRemaining(builder); assertArrayEquals(LongStreamEx.range(2, 100).asDoubleStream().toArray(), builder.build().toArray(), 0.0); }
Example #6
Source File: UniformTrimmer.java From metanome-algorithms with Apache License 2.0 | 5 votes |
private void trim(OfDouble iterator) { while (iterator.hasNext()) { double current = iterator.nextDouble(); if (current <= first - count * intervalSize) { double diff = first - current; count = Math.max(count, (int) (diff / intervalSize)) + 1; } else { iterator.remove(); } } }
Example #7
Source File: IteratorUtilsTest.java From metanome-algorithms with Apache License 2.0 | 5 votes |
@Test public void testNextDouble() { DoubleList list = DoubleLists.singleton(1.0); OfDouble it = list.iterator(); assertThat(IteratorUtils.next(it).boxed()).hasValue(1.0); assertThat(IteratorUtils.next(it).boxed()).isEmpty(); }
Example #8
Source File: Dimensions.java From metanome-algorithms with Apache License 2.0 | 5 votes |
private static Dimension toDimension(DoubleSortedSet thresholds) { int size = thresholds.size(); Double2IntMap map = new Double2IntOpenHashMap(size); int i = 1; OfDouble it = thresholds.iterator(); while (it.hasNext()) { double threshold = it.nextDouble(); map.put(threshold, i++); } return new Dimension(map); }
Example #9
Source File: DoubleStreamEx.java From streamex with Apache License 2.0 | 4 votes |
DoubleStreamEx(Spliterator.OfDouble spliterator, StreamContext context) { super(spliterator, context); }
Example #10
Source File: DoubleStreamEx.java From streamex with Apache License 2.0 | 4 votes |
final DoubleStreamEx delegate(Spliterator.OfDouble spliterator) { return new DoubleStreamEx(spliterator, context); }
Example #11
Source File: UniformTrimmer.java From metanome-algorithms with Apache License 2.0 | 4 votes |
public void trim(OfDouble iterator) { OptionalDouble first = IteratorUtils.next(iterator); first.map(this::with) .ifPresent(w -> w.trim(iterator)); }
Example #12
Source File: DoubleStreamEx.java From streamex with Apache License 2.0 | 4 votes |
@Override public OfDouble iterator() { return Spliterators.iterator(spliterator()); }
Example #13
Source File: DoubleStreamExTest.java From streamex with Apache License 2.0 | 4 votes |
@Test public void testBasics() { assertFalse(DoubleStreamEx.of(1).isParallel()); assertTrue(DoubleStreamEx.of(1).parallel().isParallel()); assertFalse(DoubleStreamEx.of(1).parallel().sequential().isParallel()); AtomicInteger i = new AtomicInteger(); try (DoubleStreamEx s = DoubleStreamEx.of(1).onClose(i::incrementAndGet)) { assertEquals(1, s.count()); } assertEquals(1, i.get()); assertEquals(6, IntStreamEx.range(0, 4).asDoubleStream().sum(), 0); assertEquals(3, IntStreamEx.range(0, 4).asDoubleStream().max().getAsDouble(), 0); assertEquals(0, IntStreamEx.range(0, 4).asDoubleStream().min().getAsDouble(), 0); assertEquals(1.5, IntStreamEx.range(0, 4).asDoubleStream().average().getAsDouble(), 0.000001); assertEquals(4, IntStreamEx.range(0, 4).asDoubleStream().summaryStatistics().getCount()); assertArrayEquals(new double[] { 1, 2, 3 }, IntStreamEx.range(0, 5).asDoubleStream().skip(1).limit(3).toArray(), 0.0); assertArrayEquals(new double[] { 1, 2, 3 }, DoubleStreamEx.of(3, 1, 2).sorted().toArray(), 0.0); assertArrayEquals(new double[] { 1, 2, 3 }, DoubleStreamEx.of(1, 2, 1, 3, 2).distinct().toArray(), 0.0); assertArrayEquals(new int[] { 2, 4, 6 }, IntStreamEx.range(1, 4).asDoubleStream().mapToInt(x -> (int) x * 2) .toArray()); assertArrayEquals(new long[] { 2, 4, 6 }, IntStreamEx.range(1, 4).asDoubleStream().mapToLong(x -> (long) x * 2) .toArray()); assertArrayEquals(new double[] { 2, 4, 6 }, IntStreamEx.range(1, 4).asDoubleStream().map(x -> x * 2).toArray(), 0.0); assertArrayEquals(new double[] { 1, 3 }, IntStreamEx.range(0, 5).asDoubleStream().filter(x -> x % 2 == 1) .toArray(), 0.0); assertEquals(6.0, DoubleStreamEx.of(1.0, 2.0, 3.0).reduce(Double::sum).getAsDouble(), 0.0); assertEquals(Long.MAX_VALUE, LongStreamEx.rangeClosed(1, Long.MAX_VALUE).asDoubleStream().spliterator() .getExactSizeIfKnown()); assertArrayEquals(new double[] { 4, 2, 0, -2, -4 }, DoubleStreamEx.zip(new double[] { 5, 4, 3, 2, 1 }, new double[] { 1, 2, 3, 4, 5 }, (a, b) -> a - b).toArray(), 0.0); assertEquals("1.0; 0.5; 0.25; 0.125", DoubleStreamEx.of(1.0, 0.5, 0.25, 0.125).mapToObj(String::valueOf) .joining("; ")); List<Double> list = new ArrayList<>(); DoubleStreamEx.of(1.0, 0.5, 0.25, 0.125).forEach(list::add); assertEquals(Arrays.asList(1.0, 0.5, 0.25, 0.125), list); list = new ArrayList<>(); DoubleStreamEx.of(1.0, 0.5, 0.25, 0.125).parallel().forEachOrdered(list::add); assertEquals(Arrays.asList(1.0, 0.5, 0.25, 0.125), list); assertFalse(DoubleStreamEx.of(1.0, 2.0, 2.5).anyMatch(x -> x < 0.0)); assertTrue(DoubleStreamEx.of(1.0, 2.0, 2.5).anyMatch(x -> x >= 2.5)); assertTrue(DoubleStreamEx.of(1.0, 2.0, 2.5).noneMatch(x -> x < 0.0)); assertFalse(DoubleStreamEx.of(1.0, 2.0, 2.5).noneMatch(x -> x >= 2.5)); assertEquals(5.0, DoubleStreamEx.of(1.0, 2.0, 2.5).reduce(1, (a, b) -> a * b), 0.0); assertTrue(DoubleStreamEx.of(1, 2, 3).spliterator().hasCharacteristics(Spliterator.ORDERED)); assertFalse(DoubleStreamEx.of(1, 2, 3).unordered().spliterator().hasCharacteristics(Spliterator.ORDERED)); OfDouble iterator = DoubleStreamEx.of(1.0, 2.0, 3.0).iterator(); assertEquals(1.0, iterator.next(), 0.0); assertEquals(2.0, iterator.next(), 0.0); assertEquals(3.0, iterator.next(), 0.0); assertFalse(iterator.hasNext()); }
Example #14
Source File: DoubleArray.java From uima-uimaj with Apache License 2.0 | 4 votes |
@Override public Spliterator.OfDouble spliterator() { return Arrays.spliterator(theArray); }
Example #15
Source File: DoubleStreamEx.java From streamex with Apache License 2.0 | 3 votes |
/** * Produces an array containing cumulative results of applying the * accumulation function going left to right. * * <p> * This is a terminal operation. * * <p> * For parallel stream it's not guaranteed that accumulator will always be * executed in the same thread. * * <p> * This method cannot take all the advantages of parallel streams as it must * process elements strictly left to right. * * @param accumulator a * <a href="package-summary.html#NonInterference">non-interfering * </a>, <a href="package-summary.html#Statelessness">stateless</a> * function for incorporating an additional element into a result * @return the array where the first element is the first element of this * stream and every successor element is the result of applying * accumulator function to the previous array element and the * corresponding stream element. The resulting array has the same * length as this stream. * @see #foldLeft(DoubleBinaryOperator) * @since 0.5.1 */ public double[] scanLeft(DoubleBinaryOperator accumulator) { Spliterator.OfDouble spliterator = spliterator(); int size = intSize(spliterator); DoubleBuffer buf = new DoubleBuffer(size == -1 ? INITIAL_SIZE : size); delegate(spliterator).forEachOrdered(i -> buf.add(buf.size == 0 ? i : accumulator.applyAsDouble(buf.data[buf.size - 1], i))); return buf.toArray(); }
Example #16
Source File: DoubleStreamEx.java From streamex with Apache License 2.0 | 2 votes |
/** * Returns a stream containing cumulative results of applying the * accumulation function going left to right. * * <p> * This is a stateful * <a href="package-summary.html#StreamOps">quasi-intermediate</a> * operation. * * <p> * This operation resembles {@link #scanLeft(DoubleBinaryOperator)}, but * unlike {@code scanLeft} this operation is intermediate and accumulation * function must be associative. * * <p> * This method cannot take all the advantages of parallel streams as it must * process elements strictly left to right. Using an unordered source or * removing the ordering constraint with {@link #unordered()} may improve * the parallel processing speed. * * @param op an <a href="package-summary.html#Associativity">associative</a> * , <a href="package-summary.html#NonInterference">non-interfering * </a>, <a href="package-summary.html#Statelessness">stateless</a> * function for computing the next element based on the previous one * @return the new stream. * @see #scanLeft(DoubleBinaryOperator) * @since 0.6.1 */ public DoubleStreamEx prefix(DoubleBinaryOperator op) { return delegate(new PrefixOps.OfDouble(spliterator(), op)); }
Example #17
Source File: DoubleStreamEx.java From streamex with Apache License 2.0 | 2 votes |
/** * Returns a sequential {@code DoubleStreamEx} containing a single element. * * @param element the single element * @return a singleton sequential stream */ public static DoubleStreamEx of(double element) { return of(new ConstSpliterator.OfDouble(element, 1, true)); }
Example #18
Source File: DoubleStreamEx.java From streamex with Apache License 2.0 | 2 votes |
/** * Returns a sequential {@link DoubleStreamEx} created from given * {@link java.util.Spliterator.OfDouble}. * * @param spliterator a spliterator to create the stream from. * @return the new stream * @since 0.3.4 */ public static DoubleStreamEx of(Spliterator.OfDouble spliterator) { return new DoubleStreamEx(spliterator, StreamContext.SEQUENTIAL); }
Example #19
Source File: DoubleStreamEx.java From streamex with Apache License 2.0 | 2 votes |
/** * Returns a sequential, ordered {@link DoubleStreamEx} created from given * {@link java.util.PrimitiveIterator.OfDouble}. * * <p> * This method is roughly equivalent to * {@code DoubleStreamEx.of(Spliterators.spliteratorUnknownSize(iterator, ORDERED))} * , but may show better performance for parallel processing. * * <p> * Use this method only if you cannot provide better Stream source. * * @param iterator an iterator to create the stream from. * @return the new stream * @since 0.5.1 */ public static DoubleStreamEx of(PrimitiveIterator.OfDouble iterator) { return of(new UnknownSizeSpliterator.USOfDouble(iterator)); }
Example #20
Source File: DoubleStreamEx.java From streamex with Apache License 2.0 | 2 votes |
/** * Returns a sequential unordered {@code DoubleStreamEx} of given length * which elements are equal to supplied value. * * @param value the constant value * @param length the length of the stream * @return a new {@code DoubleStreamEx} * @since 0.1.2 */ public static DoubleStreamEx constant(double value, long length) { return of(new ConstSpliterator.OfDouble(value, length, false)); }
Example #21
Source File: DoubleStreamEx.java From streamex with Apache License 2.0 | 2 votes |
/** * Returns the spliterator which covers all the elements emitted by this * emitter. * * @return the new spliterator */ default Spliterator.OfDouble spliterator() { return new EmitterSpliterator.OfDouble(this); }