Package extra166y

Class ParallelDoubleArrayWithBounds

  • Direct Known Subclasses:
    ParallelDoubleArray

    public abstract class ParallelDoubleArrayWithBounds
    extends ParallelDoubleArrayWithFilter
    A prefix view of ParallelDoubleArray that causes operations to apply only to elements within a given range. Instances of this class may be constructed only via prefix methods of ParallelDoubleArray or its other prefix classes.
    • Method Detail

      • withBounds

        public abstract ParallelDoubleArrayWithBounds withBounds​(int firstIndex,
                                                                 int upperBound)
        Returns an operation prefix that causes a method to operate only on the elements of the array between firstIndex (inclusive) and upperBound (exclusive). The bound arguments are relative to the current bounds. For example pa.withBounds(2, 8).withBounds(3, 5) indexes the 5th (= 2+3) and 6th elements of pa. However, indices returned by methods such as indexOf are with respect to the underlying ParallelDoubleArray.
        Parameters:
        firstIndex - the lower bound (inclusive)
        upperBound - the upper bound (exclusive)
        Returns:
        operation prefix
      • indexOf

        public abstract int indexOf​(double target)
        Returns the index of some element equal to given target, or -1 if not present
        Parameters:
        target - the element to search for
        Returns:
        the index or -1 if not present
      • binarySearch

        public abstract int binarySearch​(double target)
        Assuming this array is sorted, returns the index of an element equal to given target, or -1 if not present. If the array is not sorted, the results are undefined.
        Parameters:
        target - the element to search for
        Returns:
        the index or -1 if not present
      • binarySearch

        public abstract int binarySearch​(double target,
                                         Ops.DoubleComparator comparator)
        Assuming this array is sorted with respect to the given comparator, returns the index of an element equal to given target, or -1 if not present. If the array is not sorted, the results are undefined.
        Parameters:
        target - the element to search for
        comparator - the comparator
        Returns:
        the index or -1 if not present
      • cumulate

        public abstract ParallelDoubleArrayWithBounds cumulate​(Ops.DoubleReducer reducer,
                                                               double base)
        Replaces each element with the running cumulation of applying the given reducer.
        Parameters:
        reducer - the reducer
        base - the result for an empty array
        Returns:
        this (to simplify use in expressions)
      • cumulateSum

        public abstract ParallelDoubleArrayWithBounds cumulateSum()
        Replaces each element with the running sum
        Returns:
        this (to simplify use in expressions)
      • precumulate

        public abstract double precumulate​(Ops.DoubleReducer reducer,
                                           double base)
        Replaces each element with the cumulation of applying the given reducer to all previous values, and returns the total reduction.
        Parameters:
        reducer - the reducer
        base - the result for an empty array
        Returns:
        the total reduction
      • precumulateSum

        public abstract double precumulateSum()
        Replaces each element with its prefix sum
        Returns:
        the total sum
      • sort

        public abstract ParallelDoubleArrayWithBounds sort​(Ops.DoubleComparator cmp)
        Sorts the elements. Unlike Arrays.sort, this sort does not guarantee that elements with equal keys maintain their relative position in the array.
        Parameters:
        cmp - the comparator to use
        Returns:
        this (to simplify use in expressions)
      • sort

        public abstract ParallelDoubleArrayWithBounds sort()
        Sorts the elements, assuming all elements are Comparable. Unlike Arrays.sort, this sort does not guarantee that elements with equal keys maintain their relative position in the array.
        Returns:
        this (to simplify use in expressions)
        Throws:
        java.lang.ClassCastException - if any element is not Comparable.