Class Indices


  • public final class Indices
    extends Object
    Helper class for instantiating Index objects.
    • Constructor Summary

      Constructors 
      Constructor Description
      Indices()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static Index all()
      An index that returns all elements of a dimension in the original order.
      static Index at​(long coord)
      A coordinate that selects a specific element on a given dimension.
      static Index at​(long coord, boolean keepDim)
      A coordinate that selects a specific element on a given dimension.
      static Index at​(NdArray<? extends Number> coord)
      A coordinate that selects a specific element on a given dimension.
      static Index at​(NdArray<? extends Number> coord, boolean keepDim)
      A coordinate that selects a specific element on a given dimension.
      static Index ellipsis()
      An index that expands to fill all available source dimensions.
      static Index even()
      An index that returns only elements found at an even position in the original dimension.
      static Index flip()
      An index that returns only elements on a given dimension between two coordinates.
      static Index hyperslab​(long start, long stride, long count, long block)
      An index that returns elements according to an hyperslab defined by start, stride, count, block.
      static Index newAxis()
      An index that inserts a new dimension of size 1 into the resulting array.
      static Index odd()
      An index that returns only elements found at an odd position in the original dimension.
      static Index range​(long start, long end)
      An index that returns only elements on a given dimension between two coordinates.
      static Index seq​(long... coords)
      An index that returns only specific elements on a given dimension.
      static Index seq​(NdArray<? extends Number> coords)
      An index that returns only specific elements on a given dimension.
      static Index slice​(long start, long end)
      An index that returns elements between start and end.
      static Index slice​(long start, long end, long stride)
      An index that returns every stride-th element between start and end.
      static Index slice​(Long start, Long end)
      An index that returns elements between start and end.
      static Index slice​(Long start, Long end, long stride)
      An index that returns every stride-th element between start and end.
      static Index sliceFrom​(long start)
      An index that returns only elements on a given dimension starting at a specific coordinate.
      static Index sliceFrom​(long start, long stride)
      An index that returns only elements on a given dimension starting at a specific coordinate, using the given stride.
      static Index sliceTo​(long end)
      An index that returns only elements on a given dimension up to a specific coordinate.
      static Index sliceTo​(long end, long stride)
      An index that returns only elements on a given dimension up to a specific coordinate, using the given stride.
      static Index step​(long stride)
      An index that skips a fixed amount of coordinates between each values returned.
    • Constructor Detail

      • Indices

        public Indices()
    • Method Detail

      • at

        public static Index at​(long coord)
        A coordinate that selects a specific element on a given dimension.

        When this index is applied to a given dimension, the dimension is resolved as a single element and therefore is excluded from the computation of the rank.

        For example, given a 3D matrix on the axis [x, y, z], if matrix.slice(all(), at(0), at(0), then the rank of the returned slice is 1 and its number of elements is x.numElements()

        Parameters:
        coord - coordinate of the element on the indexed axis
        Returns:
        index
      • at

        public static Index at​(NdArray<? extends Number> coord)
        A coordinate that selects a specific element on a given dimension.

        This is equivalent to call at(long) but where the value of the coordinate is provided by an N-dimensional array.

        Parameters:
        coord - scalar indicating the coordinate of the element on the indexed axis
        Returns:
        index
        Throws:
        IllegalRankException - if coord is not a scalar (rank 0)
      • at

        public static Index at​(long coord,
                               boolean keepDim)
        A coordinate that selects a specific element on a given dimension.

        When this index is applied to a given dimension, the dimension is resolved as a single element and therefore, if keepDim is false, is excluded from the computation of the rank. If keepDim is true, the dimension is collapsed down to one element.

        For example, given a 3D matrix on the axis [x, y, z], if matrix.slice(all(), at(0), at(0), then the rank of the returned slice is 1 and its number of elements is x.numElements()

        Parameters:
        coord - coordinate of the element on the indexed axis
        keepDim - whether to remove the dimension.
        Returns:
        index
      • at

        public static Index at​(NdArray<? extends Number> coord,
                               boolean keepDim)
        A coordinate that selects a specific element on a given dimension.

        This is equivalent to call at(long, boolean) but where the value of the coordinate is provided by an N-dimensional array.

        If keepDim is true, the dimension is collapsed down to one element instead of being removed.

        Parameters:
        coord - scalar indicating the coordinate of the element on the indexed axis
        keepDim - whether to remove the dimension.
        Returns:
        index
        Throws:
        IllegalRankException - if coord is not a scalar (rank 0)
      • all

        public static Index all()
        An index that returns all elements of a dimension in the original order.

        Applying this index to a given dimension will return the original dimension directly.

        For example, given a vector with n elements, all() returns x0, x1, ..., xn-1

        Returns:
        index
      • seq

        public static Index seq​(long... coords)
        An index that returns only specific elements on a given dimension.

        For example, given a vector with n elements on the x axis, and n > 10, seq(8, 0, 3) returns x8, x0, x3

        Parameters:
        coords - coordinates of the elements in the sequence
        Returns:
        index
      • seq

        public static Index seq​(NdArray<? extends Number> coords)
        An index that returns only specific elements on a given dimension.

        This is equivalent to seq(long...) but where the coordinates of the elements in the sequence are provided by an N-dimensional array.

        Parameters:
        coords - vector of coordinates of the elements in the sequence
        Returns:
        index
        Throws:
        IllegalRankException - if coords is not a vector (rank 1)
      • even

        public static Index even()
        An index that returns only elements found at an even position in the original dimension.

        For example, given a vector with n elements on the x axis, and n is even, even() returns x0, x2, ..., xn-2

        Returns:
        index
      • odd

        public static Index odd()
        An index that returns only elements found at an odd position in the original dimension.

        For example, given a vector with n elements on the x axis, and n is even, odd() returns x1, x3, ..., xn-1

        Returns:
        index
      • step

        public static Index step​(long stride)
        An index that skips a fixed amount of coordinates between each values returned.

        For example, given a vector with n elements on the x axis, step(k) returns x0, xk, xk*2, ...

        Parameters:
        stride - the number of elements between each steps
        Returns:
        index
      • sliceFrom

        public static Index sliceFrom​(long start)
        An index that returns only elements on a given dimension starting at a specific coordinate.

        For example, given a vector with n elements on the x axis, and n > k, from(k) returns xk, xk+1, ..., xn-1

        Parameters:
        start - coordinate of the first element of the sequence
        Returns:
        index
      • sliceFrom

        public static Index sliceFrom​(long start,
                                      long stride)
        An index that returns only elements on a given dimension starting at a specific coordinate, using the given stride.

        For example, given a vector with n elements on the x axis, and n > k, from(k) returns xk, xk+1, ..., xn-1

        Parameters:
        start - coordinate of the first element of the sequence
        stride - the stride to use
        Returns:
        index
        See Also:
        slice(long, long, long)
      • sliceTo

        public static Index sliceTo​(long end)
        An index that returns only elements on a given dimension up to a specific coordinate.

        For example, given a vector with n elements on the x axis, and n > k, to(k) returns x0, x1, ..., xk

        Parameters:
        end - coordinate of the last element of the sequence (exclusive)
        Returns:
        index
      • sliceTo

        public static Index sliceTo​(long end,
                                    long stride)
        An index that returns only elements on a given dimension up to a specific coordinate, using the given stride.

        For example, given a vector with n elements on the x axis, and n > k, to(k) returns x0, x1, ..., xk

        Parameters:
        end - coordinate of the last element of the sequence (exclusive)
        stride - the stride to use
        Returns:
        index
        See Also:
        slice(long, long, long)
      • range

        public static Index range​(long start,
                                  long end)
        An index that returns only elements on a given dimension between two coordinates.

        For example, given a vector with n elements on the x axis, and n > k > j, range(j, k) returns xj, xj+1, ..., xk

        Parameters:
        start - coordinate of the first element of the sequence
        end - coordinate of the last element of the sequence (exclusive)
        Returns:
        index
      • flip

        public static Index flip()
        An index that returns only elements on a given dimension between two coordinates.

        For example, given a vector with n elements on the x axis, and n > k > j, range(j, k) returns xj, xj+1, ..., xk

        Returns:
        index
      • hyperslab

        public static Index hyperslab​(long start,
                                      long stride,
                                      long count,
                                      long block)
        An index that returns elements according to an hyperslab defined by start, stride, count, block. See Hyperslab.
        Parameters:
        start - Starting location for the hyperslab.
        stride - The number of elements to separate each element or block to be selected.
        count - The number of elements or blocks to select along the dimension.
        block - The size of the block selected from the dimension.
        Returns:
        index
      • newAxis

        public static Index newAxis()
        An index that inserts a new dimension of size 1 into the resulting array.
        Returns:
        index
      • ellipsis

        public static Index ellipsis()
        An index that expands to fill all available source dimensions. Works the same as Python's ....
        Returns:
        index
      • slice

        public static Index slice​(long start,
                                  long end)
        An index that returns elements between start and end. If start or end is null, starts or ends at the beginning or the end, respectively.

        Analogous to Python's : slice syntax.

        Returns:
        index
      • slice

        public static Index slice​(long start,
                                  long end,
                                  long stride)
        An index that returns every stride-th element between start and end. If start or end is null, starts or ends at the beginning or the end, respectively.

        Analogous to Python's : slice syntax.

        Returns:
        index
      • slice

        public static Index slice​(Long start,
                                  Long end)
        An index that returns elements between start and end. If start or end is null, starts or ends at the beginning or the end, respectively.

        Analogous to Python's : slice syntax.

        Returns:
        index
      • slice

        public static Index slice​(Long start,
                                  Long end,
                                  long stride)
        An index that returns every stride-th element between start and end. If start or end is null, starts or ends at the beginning or the end, respectively.

        Analogous to Python's : slice syntax.

        Returns:
        index