## Uses of Interface
org.eclipse.january.dataset.Dataset

- Packages that use Dataset
  Package | Description
  --- | ---
  org.eclipse.january.dataset |
  org.eclipse.january.metadata |

- - ### Uses of Dataset in org.eclipse.january.dataset

    Subinterfaces of Dataset in org.eclipse.january.dataset
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `CompoundDataset`
    `interface` | `DateDataset` Interface for a dataset containing `Date`s.

    Classes in org.eclipse.january.dataset that implement Dataset
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AbstractCompoundDataset` Generic container class for data that is compound in nature Each subclass has an array of compound types, items of this array are composed of primitive types Data items can be Complex, Vector, etc
    `class` | `AbstractDataset` Generic container class for data Each subclass has an array of primitive types, elements of this array are grouped or compounded to make items Data items can be boolean, integer, float, complex float, vector float, etc
    `class` | `BooleanDataset` Extend boolean base dataset for boolean values
    `class` | `BooleanDatasetBase` Extend dataset for boolean values // PRIM_TYPE
    `class` | `ByteDataset` Extend dataset for byte values // PRIM_TYPE
    `class` | `ComplexDoubleDataset` Extend compound dataset to hold complex double values // PRIM_TYPE
    `class` | `ComplexFloatDataset` Extend compound dataset to hold complex float values // PRIM_TYPE
    `class` | `CompoundByteDataset` Extend compound dataset for byte values // PRIM_TYPE
    `class` | `CompoundDoubleDataset` Extend compound dataset for double values // PRIM_TYPE
    `class` | `CompoundFloatDataset` Extend compound dataset for float values // PRIM_TYPE
    `class` | `CompoundIntegerDataset` Extend compound dataset for int values // PRIM_TYPE
    `class` | `CompoundLongDataset` Extend compound dataset for long values // PRIM_TYPE
    `class` | `CompoundShortDataset` Extend compound dataset for short values // PRIM_TYPE
    `class` | `DateDatasetImpl`
    `class` | `DoubleDataset` Extend dataset for double values // PRIM_TYPE
    `class` | `FloatDataset` Extend dataset for float values // PRIM_TYPE
    `class` | `IntegerDataset` Extend dataset for int values // PRIM_TYPE
    `class` | `LongDataset` Extend dataset for long values // PRIM_TYPE
    `class` | `ObjectDataset` Extend dataset for objects
    `class` | `ObjectDatasetBase` Extend dataset for Object values // PRIM_TYPE
    `class` | `RGBDataset` Class to hold colour datasets as red, green, blue tuples of short integers
    `class` | `ShortDataset` Extend dataset for short values // PRIM_TYPE
    `class` | `StringDataset` Extend dataset for objects
    `class` | `StringDatasetBase` Extend dataset for String values // PRIM_TYPE

    Fields in org.eclipse.january.dataset declared as Dataset
    Modifier and Type | Field and Description
    --- | ---
    `protected Dataset` | BroadcastIteratorBase.`aDataset`
    `protected Dataset` | BroadcastIteratorBase.`bDataset`
    `protected Dataset` | BroadcastIterator.`oDataset` Output dataset

    Methods in org.eclipse.january.dataset with type parameters of type Dataset
    Modifier and Type | Method and Description
    --- | ---
    `<T extends Dataset> T` | Dataset.`cast(Class<T> clazz)` Cast a dataset
    `<T extends Dataset> T` | AbstractDataset.`cast(Class<T> clazz)`
    `static <T extends Dataset> T` | DatasetUtils.`cast(Class<T> clazz, IDataset d)` Cast a dataset
    `<T extends Dataset> T` | Dataset.`copy(Class<T> clazz)` Copy and cast a dataset
    `<T extends Dataset> T` | AbstractDataset.`copy(Class<T> clazz)`
    `static <T extends Dataset> T` | DatasetUtils.`copy(Class<T> clazz, IDataset d)` Copy and cast a dataset
    `static <T extends Dataset> T` | DatasetFactory.`createComplexDataset(Class<T> clazz, Object real, Object imag)` Create complex dataset of given class from real and imaginary parts
    `static <T extends Dataset> T` | DatasetFactory.`createCompoundDataset(Class<T> clazz, Object... objects)` Create compound dataset of given class from given parts
    `static <T extends Dataset> T` | DatasetFactory.`createFromList(Class<T> clazz, List<?> objectList)` Create dataset of given class from list
    `static <T extends Dataset> T` | DatasetFactory.`createFromObject(Class<T> clazz, Object obj, int... shape)` Create a dataset from object
    `static <T extends Dataset> T` | DatasetFactory.`createFromObject(int itemSize, Class<T> clazz, Object obj, int... shape)` Create a compound dataset from object
    `static <T extends Dataset> T` | DatasetFactory.`createLinearSpace(Class<T> clazz, double start, double stop, int length)` Create a 1D dataset of linearly spaced values in closed interval
    `static <T extends Dataset> T` | DatasetFactory.`createLogSpace(Class<T> clazz, double start, double stop, int length, double base)` Create a 1D dataset of logarithmically spaced values in closed interval.
    `static <T extends Dataset> T` | DatasetFactory.`createRange(Class<T> clazz, double stop)` Create dataset with items ranging from 0 to given stop in steps of 1
    `static <T extends Dataset> T` | DatasetFactory.`createRange(Class<T> clazz, double start, double stop, double step)` Create dataset with items ranging from given start to given stop in given steps
    `static <T extends Dataset> T` | DatasetUtils.`diag(T a, int offset)` Create a (off-)diagonal matrix from items in dataset
    `static <T extends Dataset> T` | DatasetUtils.`flipLeftRight(T a)` Flip items in left/right direction, column-wise, or along second axis
    `static <T extends Dataset> T` | DatasetUtils.`flipUpDown(T a)` Flip items in up/down direction, row-wise, or along first axis
    `static <T extends Dataset> T` | DatasetFactory.`ones(Class<T> clazz, int... shape)`
    `static <T extends Dataset> T` | DatasetFactory.`ones(Dataset dataset, Class<T> clazz)`
    `static <T extends Dataset> T` | DatasetFactory.`ones(int itemSize, Class<T> clazz, int... shape)`
    `static <T extends Dataset> T` | DatasetFactory.`ones(T dataset)`
    `static <T extends Dataset> T` | DatasetUtils.`put(T a, Dataset indices, Object values)` Changes specific items of dataset by replacing them with other array
    `static <T extends Dataset> T` | DatasetUtils.`put(T a, int[] indices, Object values)` Changes specific items of dataset by replacing them with other array
    `static <T extends Dataset> T` | DatasetUtils.`repeat(T a, int[] repeats, int axis)` Constructs a dataset which has its elements along an axis replicated from the original dataset by the number of times given in the repeats array.
    `static <T extends Dataset> T` | DatasetUtils.`resize(T a, int... shape)` Resize a dataset
    `static <T extends Dataset> T` | DatasetUtils.`roll(T a, int shift, Integer axis)` Roll items over given axis by given amount
    `static <T extends Dataset> T` | DatasetUtils.`rollAxis(T a, int axis, int start)` Roll the specified axis backwards until it lies in given position
    `static <T extends Dataset> T` | DatasetUtils.`rotate90(T a)` Rotate items in first two dimension by 90 degrees anti-clockwise
    `static <T extends Dataset> T` | DatasetUtils.`rotate90(T a, int k)` Rotate items in first two dimension by 90 degrees anti-clockwise
    `static <T extends Dataset> T` | DatasetUtils.`sort(T a)`
    `static <T extends Dataset> T` | DatasetUtils.`sort(T a, Integer axis)`
    `static <T extends Dataset> T` | DatasetUtils.`take(T a, Dataset indices, Integer axis)` Take items from dataset along an axis
    `static <T extends Dataset> T` | DatasetUtils.`take(T a, int[] indices, Integer axis)` Take items from dataset along an axis
    `static <T extends Dataset> T` | DatasetFactory.`zeros(Class<T> clazz, int... shape)`
    `static <T extends Dataset> T` | DatasetFactory.`zeros(Dataset dataset, Class<T> clazz)`
    `static <T extends Dataset> T` | DatasetFactory.`zeros(int itemSize, Class<T> clazz, int... shape)`
    `static <T extends Dataset> T` | DatasetFactory.`zeros(T dataset)`

    Methods in org.eclipse.january.dataset that return Dataset
    Modifier and Type | Method and Description
    --- | ---
    `static Dataset` | Maths.`abs(Object a)` abs - absolute value of each element
    `static Dataset` | Maths.`abs(Object a, Dataset o)` abs - absolute value of each element
    `static Dataset` | Maths.`add(Collection<IDataset> sets, boolean requireClone)` Adds all sets passed in together The first IDataset must cast to Dataset For memory efficiency sake if add(...) is called with a set of size one, no clone is done, the original object is returned directly.
    `Dataset` | Dataset.`all(int axis)`
    `static Dataset` | Maths.`angle(Object a)` Create a dataset of the arguments from a complex dataset
    `static Dataset` | Maths.`angle(Object a, boolean inDegrees)` Create a dataset of the arguments from a complex dataset
    `static Dataset` | Maths.`angle(Object a, boolean inDegrees, Dataset o)` Create a dataset of the arguments from a complex dataset
    `static Dataset` | Maths.`angle(Object a, Dataset o)` Create a dataset of the arguments from a complex dataset
    `Dataset` | Dataset.`any(int axis)`
    `static Dataset` | DatasetUtils.`append(IDataset a, IDataset b, int axis)` Append copy of dataset with another dataset along n-th axis
    `static Dataset` | Maths.`arctan2(Object a, Object b)`
    `static Dataset` | Maths.`arctan2(Object a, Object b, Dataset o)`
    `Dataset` | Dataset.`argMax(int axis, boolean... ignoreInvalids)` Find indices of maximum values along given axis
    `Dataset` | Dataset.`argMin(int axis, boolean... ignoreInvalids)` Find indices of minimum values along given axis
    `Dataset` | CompoundDataset.`asNonCompoundDataset(boolean shareData)` Get a non-compound dataset version
    `static Dataset` | LinearAlgebra.`calcCholeskyDecomposition(Dataset a)` Calculate Cholesky decomposition A = L L^T
    `static Dataset` | LinearAlgebra.`calcConjugateGradient(Dataset a, Dataset v)` Calculation A x = v by conjugate gradient method with the stopping criterion being that the estimated residual r = v - A x satisfies ||r|| < ||v|| with maximum of 100 iterations
    `static Dataset` | LinearAlgebra.`calcConjugateGradient(Dataset a, Dataset v, int maxIterations, double delta)` Calculation A x = v by conjugate gradient method with the stopping criterion being that the estimated residual r = v - A x satisfies ||r|| < delta ||v||
    `static Dataset[]` | LinearAlgebra.`calcEigenDecomposition(Dataset a)` Calculate eigen-decomposition A = V D V^T
    `static Dataset` | LinearAlgebra.`calcEigenvalues(Dataset a)`
    `static Dataset` | LinearAlgebra.`calcInverse(Dataset a)` Calculate inverse of square dataset
    `static Dataset[]` | LinearAlgebra.`calcLUDecomposition(Dataset a)` Calculate LU decomposition A = P^-1 L U
    `static Dataset` | LinearAlgebra.`calcPseudoInverse(Dataset a)` Calculate (Moore-Penrose) pseudo-inverse
    `static Dataset[]` | LinearAlgebra.`calcQRDecomposition(Dataset a)` Calculate QR decomposition A = Q R
    `static Dataset[]` | LinearAlgebra.`calcSingularValueDecomposition(Dataset a)` Calculate singular value decomposition A = U S V^T
    `Dataset` | Dataset.`cast(boolean repeat, int dtype, int isize)` Cast a dataset
    `Dataset` | AbstractDataset.`cast(boolean repeat, int dtype, int isize)`
    `static Dataset` | DatasetUtils.`cast(IDataset d, boolean repeat, int dtype, int isize)` Cast a dataset
    `static Dataset` | DatasetUtils.`cast(IDataset d, int dtype)` Cast a dataset
    `Dataset` | Dataset.`cast(int dtype)` Cast a dataset
    `Dataset` | AbstractDataset.`cast(int dtype)`
    `static Dataset` | Maths.`centralDifference(Dataset a, int axis)` Discrete difference of dataset along axis using finite central difference
    `static Dataset` | DatasetUtils.`choose(IntegerDataset index, Object[] choices, boolean throwAIOOBE, boolean clip)` Choose content from choices where condition is true, otherwise use default.
    `Dataset` | Dataset.`clone()`
    `static Dataset` | DatasetUtils.`coerce(Dataset a, Object obj)` Create a copy that has been coerced to an appropriate dataset type depending on the input object's class
    `static Dataset` | DatasetUtils.`concatenate(IDataset[] as, int axis)` Concatenate the set of datasets along given axis
    `static Dataset` | Maths.`conjugate(Object a)`
    `static Dataset` | Maths.`conjugate(Object a, Dataset o)`
    `static Dataset[]` | BroadcastUtils.`convertAndBroadcast(Object... objects)` Converts and broadcast all objects as datasets of same shape
    `static Dataset` | DatasetUtils.`convertToDataset(IDataset data)` Convert (if necessary) a dataset obeying the interface to our implementation
    `static Dataset` | DatasetUtils.`copy(IDataset d, int dtype)` Copy and cast a dataset
    `Dataset` | Dataset.`copy(int dtype)` Copy and cast a dataset
    `Dataset` | AbstractDataset.`copy(int dtype)`
    `Dataset` | Dataset.`count(int axis, boolean... ignoreInvalids)`
    `Dataset` | AbstractDataset.`count(int axis, boolean... ignoreInvalids)`
    `static Dataset` | Stats.`covariance(Dataset a)` See `Stats.covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)` with b = null, rowvar = true, bias = false and ddof = null.
    `static Dataset` | Stats.`covariance(Dataset a, boolean rowvar, boolean bias, Integer ddof)` See `Stats.covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)` with b = null.
    `static Dataset` | Stats.`covariance(Dataset a, Dataset b)` See `Stats.covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)` with b = null, rowvar = true, bias = false and ddof = null.
    `static Dataset` | Stats.`covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)` Calculate the covariance matrix (array) of a concatenated with b.
    `Dataset` | RGBDataset.`createBlueDataset(int dtype)` Extract blue colour channel
    `static Dataset` | DatasetUtils.`createDatasetFromCompoundDataset(CompoundDataset a, boolean shareData)` Create a dataset from a compound dataset by using elements of an item as last axis
    `static Dataset` | DatasetFactory.`createFromList(int dtype, List<?> objectList)` Deprecated. Please use the class-based methods in DatasetFactory, such as `DatasetFactory.createFromList(Class, List<?>)`
    `static Dataset` | DatasetFactory.`createFromList(List<?> objectList)` Create dataset of appropriate type from list
    `static Dataset` | DatasetFactory.`createFromObject(boolean isUnsigned, Object obj)` Create a dataset from object (automatically detect dataset type)
    `static Dataset` | DatasetFactory.`createFromObject(int itemSize, int dtype, Object obj, int... shape)` Deprecated. Please use the class-based methods in DatasetFactory, such as `DatasetFactory.createFromObject(int, Class, Object, int...)`
    `static Dataset` | DatasetFactory.`createFromObject(int dtype, Object obj)` Deprecated. Please use the class-based methods in DatasetFactory, such as `#createFromObject(Class, Object, int)`
    `static Dataset` | DatasetFactory.`createFromObject(int dtype, Object obj, int... shape)` Deprecated. Please use the class-based methods in DatasetFactory, such as `DatasetFactory.createFromObject(Class, Object, int...)`
    `static Dataset` | DatasetFactory.`createFromObject(Object obj)` Create a dataset from object (automatically detect dataset type)
    `static Dataset` | DatasetFactory.`createFromObject(Object obj, int... shape)` Create a dataset from object (automatically detect dataset type)
    `Dataset` | RGBDataset.`createGreenDataset(int dtype)` Extract green colour channel
    `Dataset` | RGBDataset.`createGreyDataset(double red, double green, double blue, int dtype)` Convert colour dataset to a grey-scale one using given RGB to luma mapping
    `Dataset` | RGBDataset.`createGreyDataset(int dtype)` Convert colour dataset to a grey-scale one using the NTSC formula, aka ITU-R BT.601, for RGB to luma mapping
    `static Dataset` | DatasetFactory.`createLinearSpace(double start, double stop, int length, int dtype)` Deprecated. Please use the class-based methods in DatasetFactory, such as `DatasetFactory.createLinearSpace(Class, double, double, int)`
    `static Dataset` | DatasetFactory.`createLogSpace(double start, double stop, int length, double base, int dtype)` Deprecated. Please use the class-based methods in DatasetFactory, such as `DatasetFactory.createLogSpace(Class, double, double, int, double)`
    `static Dataset` | DatasetFactory.`createRange(double start, double stop, double step, int dtype)` Deprecated. Please use the class-based methods in DatasetFactory, such as `DatasetFactory.createRange(Class, double, double, double)`
    `static Dataset` | DatasetFactory.`createRange(double stop, int dtype)` Deprecated. Please use the class-based methods in DatasetFactory, such as `DatasetFactory.createRange(Class, double)`
    `Dataset` | RGBDataset.`createRedDataset(int dtype)` Extract red colour channel
    `static Dataset` | LinearAlgebra.`crossProduct(Dataset a, Dataset b)` Calculate the cross product of two datasets.
    `static Dataset` | LinearAlgebra.`crossProduct(Dataset a, Dataset b, int axisA, int axisB, int axisC)` Calculate the cross product of two datasets.
    `static Dataset` | Stats.`cumulativeProduct(Dataset a, boolean... ignoreInvalids)`
    `static Dataset` | Stats.`cumulativeProduct(Dataset a, int axis, boolean... ignoreInvalids)`
    `static Dataset` | Stats.`cumulativeSum(Dataset a, boolean... ignoreInvalids)`
    `static Dataset` | Stats.`cumulativeSum(Dataset a, int axis, boolean... ignoreInvalids)`
    `static Dataset` | Maths.`derivative(Dataset x, Dataset y, int n)` Calculates the derivative of a line described by two datasets (x,y) given a spread of n either side of the point
    `static Dataset` | Maths.`difference(Dataset a, int n, int axis)` Discrete difference of dataset along axis using finite difference
    `static Dataset` | LinearAlgebra.`dotProduct(Dataset a, Dataset b)` Calculate the dot product of two datasets.
    `static Dataset` | DatasetUtils.`extract(IDataset data, IDataset condition)` Extract values where condition is non-zero.
    `static Dataset` | DatasetUtils.`eye(int rows, int cols, int offset, int dtype)`
    `Dataset` | Dataset.`fill(Object obj)` Fill dataset with given object
    `Dataset` | Dataset.`flatten()` Flatten shape
    `Dataset` | AbstractDataset.`flatten()`
    `static Dataset` | Maths.`floorDivide(Object a, Object b)`
    `static Dataset` | Maths.`floorDivide(Object a, Object b, Dataset o)`
    `static Dataset` | Maths.`floorRemainder(Object a, Object b)`
    `static Dataset` | Maths.`floorRemainder(Object a, Object b, Dataset o)`
    `Dataset` | Dataset.`getBroadcastView(int... shape)`
    `Dataset` | AbstractDataset.`getBroadcastView(int... broadcastShape)`
    `Dataset` | Dataset.`getBy1DIndex(IntegerDataset index)` This is modelled after the NumPy get item with an index dataset
    `Dataset` | AbstractDataset.`getBy1DIndex(IntegerDataset index)`
    `Dataset` | Dataset.`getByBoolean(Dataset selection)` This is modelled after the NumPy get item with a condition specified by a boolean dataset
    `Dataset` | AbstractDataset.`getByBoolean(Dataset selection)`
    `Dataset` | Dataset.`getByIndexes(Object... indexes)` This is modelled after the NumPy get item with an array of indexing objects
    `Dataset` | AbstractDataset.`getByIndexes(Object... indexes)`
    `Dataset` | RunningAverage.`getCurrentAverage()`
    `Dataset` | CompoundDataset.`getElements(int element)` Get chosen elements from each item as a dataset
    `Dataset` | CompoundDataset.`getElementsView(int element)` Get chosen elements from each item as a view on dataset
    `Dataset` | Dataset.`getErrorBuffer()` Get the (un-broadcasted) dataset that backs the (squared) error data
    `Dataset` | AbstractDataset.`getErrorBuffer()`
    `Dataset` | Dataset.`getErrors()` Get the error array from the dataset of same shape.
    `Dataset` | AbstractDataset.`getErrors()`
    `protected Dataset` | AbstractDataset.`getInternalSquaredError()`
    `Dataset` | SingleInputBroadcastIterator.`getOutput()`
    `Dataset` | BroadcastIterator.`getOutput()`
    `Dataset` | Dataset.`getRealPart()`
    `Dataset` | AbstractDataset.`getRealPart()`
    `Dataset` | Dataset.`getRealView()`
    `Dataset` | AbstractDataset.`getRealView()`
    `Dataset` | Dataset.`getSlice(IMonitor mon, int[] start, int[] stop, int[] step)`
    `Dataset` | LazyDataset.`getSlice(IMonitor monitor, int[] start, int[] stop, int[] step)`
    `Dataset` | AggregateDataset.`getSlice(IMonitor monitor, int[] start, int[] stop, int[] step)`
    `Dataset` | AbstractDataset.`getSlice(IMonitor monitor, int[] start, int[] stop, int[] step)`
    `Dataset` | Dataset.`getSlice(IMonitor mon, Slice... slice)`
    `Dataset` | LazyDataset.`getSlice(IMonitor monitor, Slice... slice)`
    `Dataset` | AggregateDataset.`getSlice(IMonitor monitor, Slice... slice)`
    `Dataset` | AbstractDataset.`getSlice(IMonitor monitor, Slice... slice)`
    `Dataset` | Dataset.`getSlice(IMonitor mon, SliceND slice)`
    `Dataset` | LazyDataset.`getSlice(IMonitor monitor, SliceND slice)`
    `Dataset` | AggregateDataset.`getSlice(IMonitor monitor, SliceND slice)`
    `Dataset` | AbstractDataset.`getSlice(IMonitor monitor, SliceND slice)`
    `Dataset` | Dataset.`getSlice(int[] start, int[] stop, int[] step)`
    `Dataset` | LazyDataset.`getSlice(int[] start, int[] stop, int[] step)`
    `Dataset` | AggregateDataset.`getSlice(int[] start, int[] stop, int[] step)`
    `Dataset` | AbstractDataset.`getSlice(int[] start, int[] stop, int[] step)`
    `Dataset` | Dataset.`getSlice(Slice... slice)`
    `Dataset` | LazyDataset.`getSlice(Slice... slice)`
    `Dataset` | AggregateDataset.`getSlice(Slice... slice)`
    `Dataset` | AbstractDataset.`getSlice(Slice... slice)`
    `Dataset` | Dataset.`getSlice(SliceND slice)`
    `Dataset` | LazyDataset.`getSlice(SliceND slice)`
    `Dataset` | AggregateDataset.`getSlice(SliceND slice)`
    `Dataset` | AbstractDataset.`getSlice(SliceND slice)` Get a slice of the dataset.
    `Dataset` | Dataset.`getSliceView(int[] start, int[] stop, int[] step)`
    `Dataset` | AbstractDataset.`getSliceView(int[] start, int[] stop, int[] step)`
    `Dataset` | Dataset.`getSliceView(Slice... slice)`
    `Dataset` | AbstractDataset.`getSliceView(Slice... slice)`
    `Dataset` | Dataset.`getSliceView(SliceND slice)`
    `Dataset` | AbstractDataset.`getSliceView(SliceND slice)` Get a slice of the dataset.
    `Dataset` | Dataset.`getTransposedView(int... axes)`
    `Dataset` | AbstractDataset.`getTransposedView(int... axes)`
    `Dataset` | AbstractCompoundDataset.`getUniqueItems()`
    `Dataset` | Dataset.`getUniqueItems()` Get unique items
    `Dataset` | Dataset.`getView(boolean deepCopyMetadata)`
    `static Dataset` | Maths.`hypot(Object a, Object b)`
    `static Dataset` | Maths.`hypot(Object a, Object b, Dataset o)`
    `Dataset` | Dataset.`iadd(Object o)` In-place addition with object o
    `Dataset` | Dataset.`idivide(Object o)` In-place division with object o
    `Dataset` | Dataset.`ifloor()` In-place floor
    `Dataset` | Dataset.`ifloorDivide(Object o)` In-place floor division with object o
    `Dataset` | AbstractDataset.`ifloorDivide(Object o)`
    `Dataset` | Dataset.`imultiply(Object o)` In-place multiplication with object o
    `static Dataset` | Maths.`interpolate(Dataset x, Dataset d, IDataset x0, Number left, Number right)` Linearly interpolate values at points in a 1D dataset corresponding to given coordinates.
    `Dataset` | Dataset.`ipower(Object o)` In-place raise to power of object o
    `static Dataset` | Stats.`iqr(Dataset a, int axis)` Interquartile range: Q3 - Q1
    `Dataset` | Dataset.`iremainder(Object o)` In-place remainder
    `Dataset` | Dataset.`isubtract(Object o)` In-place subtraction with object o
    `static Dataset` | LinearAlgebra.`kroneckerProduct(Dataset a, Dataset b)` Create the Kronecker product as defined by kron[k0,...,kN] = a[i0,...,iN] * b[j0,...,jN] where kn = sn * in + jn for n = 0...N and s is shape of b
    `static Dataset` | Stats.`kurtosis(Dataset a, int axis, boolean... ignoreInvalids)`
    `static Dataset` | DatasetUtils.`lnnorm(Dataset a)` Function that returns a normalised dataset which is bounded between 0 and 1 and has been distributed on a natural log scale
    `static Dataset` | DatasetUtils.`lognorm(Dataset a)` Function that returns a normalised dataset which is bounded between 0 and 1 and has been distributed on a log10 scale
    `static Dataset` | DatasetUtils.`makeUnsigned(IDataset a)` Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs of its content
    `Dataset` | Dataset.`max(int axis, boolean... ignoreInvalids)`
    `Dataset` | AbstractDataset.`max(int axis, boolean... ignoreInvalids)`
    `static Dataset` | LazyMaths.`mean(ILazyDataset data, int... ignoreAxes)`
    `Dataset` | Dataset.`mean(int axis, boolean... ignoreInvalids)`
    `Dataset` | AbstractDataset.`mean(int axis, boolean... ignoreInvalids)`
    `static Dataset` | LazyMaths.`mean(int start, int stop, ILazyDataset data, int... ignoreAxes)`
    `static Dataset` | CollectionStats.`mean(List<IDataset> sets)` Used to get a mean image from a set of images for instance.
    `static Dataset` | Stats.`median(Dataset a, int axis)`
    `static Dataset` | CollectionStats.`median(List<IDataset> sets)` Used to get a median image from a set of images for instance.
    `Dataset` | Dataset.`min(int axis, boolean... ignoreInvalids)`
    `Dataset` | AbstractDataset.`min(int axis, boolean... ignoreInvalids)`
    `static Dataset` | Maths.`multiply(Collection<IDataset> sets, boolean requireClone)` Multiplies all sets passed in together The first IDataset must cast to Dataset
    `static Dataset` | DatasetUtils.`norm(Dataset a)` Function that returns a normalised dataset which is bounded between 0 and 1
    `static Dataset` | DatasetFactory.`ones(Dataset dataset, int dtype)` Deprecated. Please use the class-based methods in DatasetFactory, such as `DatasetFactory.createRange(Class, double, double, double)`
    `static Dataset` | DatasetFactory.`ones(int[] shape, int dtype)` Deprecated. Please use the class-based methods in DatasetFactory, such as `#ones(int[], Class)`
    `static Dataset` | DatasetFactory.`ones(int itemSize, int[] shape, int dtype)` Deprecated. Please use the class-based methods in DatasetFactory, such as `DatasetFactory.ones(Class, int...)`
    `static Dataset` | Operations.`operate(BinaryOperation op, Object a, Object b, Dataset o)` Operate on a dataset
    `static Dataset` | Operations.`operate(UnaryOperation op, Object a, Dataset o)` Operate on a dataset
    `static Dataset` | LinearAlgebra.`outerProduct(Dataset a, Dataset b)` Calculate the outer product of two datasets
    `Dataset` | Dataset.`peakToPeak(int axis, boolean... ignoreInvalids)`
    `Dataset` | AbstractDataset.`peakToPeak(int axis, boolean... ignoreInvalids)`
    `static Dataset` | Maths.`phaseAsComplexNumber(Object a, boolean keepZeros)` Create a phase only dataset.
    `static Dataset` | Maths.`phaseAsComplexNumber(Object a, Dataset o, boolean keepZeros)` Create a phase only dataset.
    `static Dataset` | LinearAlgebra.`power(Dataset a, int n)` Raise dataset to given power by matrix multiplication
    `static Dataset` | Stats.`product(Dataset a, int axis, boolean... ignoreInvalids)`
    `static Dataset` | LazyMaths.`product(ILazyDataset data, int axis)`
    `Dataset` | Dataset.`product(int axis, boolean... ignoreInvalids)`
    `Dataset` | AbstractDataset.`product(int axis, boolean... ignoreInvalids)`
    `static Dataset[]` | Stats.`quantile(Dataset a, int axis, double... values)` Calculate quantiles of dataset which is defined as the inverse of the cumulative distribution function (CDF)
    `static Dataset` | Maths.`reciprocal(Object a)` Find reciprocal from dataset
    `static Dataset` | Maths.`reciprocal(Object a, Dataset o)` Find reciprocal from dataset
    `static Dataset` | InterpolatorUtils.`regrid(Dataset data, Dataset x, Dataset y, Dataset gridX, Dataset gridY)`
    `static Dataset` | InterpolatorUtils.`regridOld(Dataset data, Dataset x, Dataset y, Dataset gridX, Dataset gridY)`
    `static Dataset` | InterpolatorUtils.`remap1D(Dataset dataset, Dataset axis, Dataset outputAxis)`
    `static Dataset` | InterpolatorUtils.`remapAxis(Dataset dataset, int axisIndex, Dataset originalAxisForCorrection, Dataset outputAxis)`
    `static Dataset` | InterpolatorUtils.`remapOneAxis(Dataset dataset, int axisIndex, Dataset corrections, Dataset originalAxisForCorrection, Dataset outputAxis)`
    `Dataset` | Dataset.`reshape(int... shape)` Returns new dataset with new shape but old data if possible, otherwise a copy is made
    `Dataset` | AbstractDataset.`reshape(int... shape)`
    `Dataset` | Dataset.`rootMeanSquare(int axis, boolean... ignoreInvalids)`
    `Dataset` | AbstractDataset.`rootMeanSquare(int axis, boolean... ignoreInvalids)`
    `static Dataset` | DatasetUtils.`select(BooleanDataset[] conditions, Object[] choices, Object def)` Select content from choices where condition is true, otherwise use default.
    `static Dataset` | DatasetUtils.`select(BooleanDataset condition, Object x, Object y)` Select content according where condition is true.
    `static Dataset` | InterpolatorUtils.`selectDatasetRegion(Dataset dataset, int x, int y, int xSize, int ySize)`
    `Dataset` | Dataset.`setBy1DIndex(Object obj, Dataset index)` This is modelled after the NumPy set item with an index dataset
    `Dataset` | Dataset.`setByBoolean(Object obj, Dataset selection)` This is modelled after the NumPy set item with a condition specified by a boolean dataset
    `Dataset` | Dataset.`setByIndexes(Object obj, Object... indexes)` This is modelled after the NumPy set item with an array of indexing objects
    `Dataset` | Dataset.`setSlice(Object obj, IndexIterator iterator)`
    `Dataset` | Dataset.`setSlice(Object obj, int[] start, int[] stop, int[] step)` This is modelled after the NumPy array slice
    `Dataset` | AbstractDataset.`setSlice(Object obj, int[] start, int[] stop, int[] step)`
    `Dataset` | Dataset.`setSlice(Object obj, Slice... slice)` This is modelled after the NumPy array slice
    `Dataset` | AbstractDataset.`setSlice(Object obj, Slice... slice)`
    `Dataset` | Dataset.`setSlice(Object obj, SliceND slice)` This is modelled after the NumPy array slice
    `Dataset` | AbstractDataset.`setSlice(Object obj, SliceND slice)`
    `static Dataset` | Stats.`skewness(Dataset a, int axis, boolean... ignoreInvalids)`
    `static Dataset` | DatasetUtils.`sliceAndConvertLazyDataset(ILazyDataset lazy)` Slice (or fully load), if necessary, a lazy dataset, otherwise take a slice view and convert to our dataset implementation.
    `static Dataset` | LinearAlgebra.`solve(Dataset a, Dataset v)` Solve linear matrix equation A x = v
    `static Dataset` | LinearAlgebra.`solveSVD(Dataset a, Dataset v)` Solve least squares matrix equation A x = v by SVD
    `Dataset` | Dataset.`sort(Integer axis)` In-place sort of dataset
    `Dataset` | Dataset.`squeeze()`
    `Dataset` | AbstractDataset.`squeeze()`
    `Dataset` | Dataset.`squeeze(boolean onlyFromEnds)`
    `Dataset` | AbstractDataset.`squeeze(boolean onlyFromEnds)`
    `Dataset` | Dataset.`squeezeEnds()`
    `Dataset` | AbstractDataset.`squeezeEnds()`
    `Dataset` | Dataset.`stdDeviation(int axis)` Standard deviation is square root of the variance
    `Dataset` | AbstractDataset.`stdDeviation(int axis)`
    `Dataset` | Dataset.`stdDeviation(int axis, boolean isWholePopulation, boolean... ignoreInvalids)` Standard deviation is square root of the variance
    `Dataset` | AbstractDataset.`stdDeviation(int axis, boolean isWholePopulation, boolean... ignoreInvalids)`
    `static Dataset` | LazyMaths.`sum(ILazyDataset data, boolean ignore, int... axes)`
    `static Dataset` | LazyMaths.`sum(ILazyDataset data, int... ignoreAxes)`
    `static Dataset` | LazyMaths.`sum(ILazyDataset data, int axis)`
    `Dataset` | Dataset.`sum(int axis, boolean... ignoreInvalids)`
    `Dataset` | AbstractDataset.`sum(int axis, boolean... ignoreInvalids)`
    `static Dataset` | DatasetUtils.`swapAxes(IDataset a, int axis1, int axis2)` Swap two axes in dataset
    `Dataset` | Dataset.`swapAxes(int axis1, int axis2)` Swap two axes in dataset
    `Dataset` | AbstractDataset.`swapAxes(int axis1, int axis2)`
    `Dataset` | Dataset.`synchronizedCopy()` This is a synchronized version of the clone method
    `Dataset` | AbstractDataset.`synchronizedCopy()`
    `static Dataset` | LinearAlgebra.`tensorDotProduct(Dataset a, Dataset b, int[] axisa, int[] axisb)` Calculate the tensor dot product over given axes.
    `static Dataset` | LinearAlgebra.`tensorDotProduct(Dataset a, Dataset b, int axisa, int axisb)` Calculate the tensor dot product over given axes.
    `static Dataset` | DatasetUtils.`tile(IDataset a, int... reps)` Construct a dataset that contains the original dataset repeated the number of times in each axis given by corresponding entries in the reps array
    `static Dataset` | LinearAlgebra.`trace(Dataset a)` Calculate trace of dataset - sum of values over 1st axis and 2nd axis
    `static Dataset` | LinearAlgebra.`trace(Dataset a, int offset, int axis1, int axis2)` Calculate trace of dataset - sum of values over axis1 and axis2 where axis2 is offset
    `static Dataset` | DatasetUtils.`transpose(IDataset a, int... axes)` Permute copy of dataset's axes so that given order is old order:
    `Dataset` | Dataset.`transpose(int... axes)` See `getTransposedView(int...)`
    `Dataset` | AbstractDataset.`transpose(int... axes)`
    `static Dataset` | Stats.`typedProduct(Dataset a, int dtype, int axis, boolean... ignoreInvalids)`
    `static Dataset` | Stats.`typedSum(Dataset a, int dtype, int axis, boolean... ignoreInvalids)`
    `Dataset` | Dataset.`variance(int axis)`
    `Dataset` | AbstractDataset.`variance(int axis)`
    `Dataset` | Dataset.`variance(int axis, boolean isWholePopulation, boolean... ignoreInvalids)`
    `Dataset` | AbstractDataset.`variance(int axis, boolean isWholePopulation, boolean... ignoreInvalids)`
    `static Dataset` | DatasetFactory.`zeros(Dataset dataset, int dtype)` Deprecated. Please use the class-based methods in DatasetFactory, such as `DatasetFactory.zeros(Dataset, Class)`
    `static Dataset` | DatasetFactory.`zeros(int[] shape, int dtype)` Deprecated. Please use the class-based methods in DatasetFactory, such as `DatasetFactory.zeros(Class, int...)`
    `static Dataset` | DatasetFactory.`zeros(int itemSize, int[] shape, int dtype)` Deprecated. Please use the class-based methods in DatasetFactory, such as `DatasetFactory.zeros(int, Class, int...)`

    Methods in org.eclipse.january.dataset that return types with arguments of type Dataset
    Modifier and Type | Method and Description
    --- | ---
    `static List<Dataset>` | Maths.`gradient(Dataset y, Dataset... x)` Calculate gradient (or partial derivatives) by central difference
    `static List<Dataset>` | DatasetUtils.`meshGrid(Dataset... axes)` Construct a list of datasets where each represents a coordinate varying over the hypergrid formed by the input list of axes
    `static List<Dataset>` | DatasetUtils.`split(Dataset a, int[] indices, int axis)` Split a dataset into parts along given axis
    `static List<Dataset>` | DatasetUtils.`split(Dataset a, int sections, int axis, boolean checkEqual)` Split a dataset into equal sections along given axis

    Methods in org.eclipse.january.dataset with parameters of type Dataset
    Modifier and Type | Method and Description
    --- | ---
    `static Dataset` | Maths.`abs(Object a, Dataset o)` abs - absolute value of each element
    `static Dataset` | Maths.`angle(Object a, boolean inDegrees, Dataset o)` Create a dataset of the arguments from a complex dataset
    `static Dataset` | Maths.`angle(Object a, Dataset o)` Create a dataset of the arguments from a complex dataset
    `static Dataset` | Maths.`arctan2(Object a, Object b, Dataset o)`
    `static Object` | Stats.`averageDeviation(Dataset a)`
    `static Dataset` | LinearAlgebra.`calcCholeskyDecomposition(Dataset a)` Calculate Cholesky decomposition A = L L^T
    `static double` | LinearAlgebra.`calcConditionNumber(Dataset a)` Calculate condition number of matrix by singular value decomposition method
    `static Dataset` | LinearAlgebra.`calcConjugateGradient(Dataset a, Dataset v)` Calculation A x = v by conjugate gradient method with the stopping criterion being that the estimated residual r = v - A x satisfies ||r|| < ||v|| with maximum of 100 iterations
    `static Dataset` | LinearAlgebra.`calcConjugateGradient(Dataset a, Dataset v, int maxIterations, double delta)` Calculation A x = v by conjugate gradient method with the stopping criterion being that the estimated residual r = v - A x satisfies ||r|| < delta ||v||
    `static double` | LinearAlgebra.`calcDeterminant(Dataset a)`
    `static Dataset[]` | LinearAlgebra.`calcEigenDecomposition(Dataset a)` Calculate eigen-decomposition A = V D V^T
    `static Dataset` | LinearAlgebra.`calcEigenvalues(Dataset a)`
    `static Dataset` | LinearAlgebra.`calcInverse(Dataset a)` Calculate inverse of square dataset
    `static Dataset[]` | LinearAlgebra.`calcLUDecomposition(Dataset a)` Calculate LU decomposition A = P^-1 L U
    `static int` | LinearAlgebra.`calcMatrixRank(Dataset a)` Calculate matrix rank by singular value decomposition method
    `static List<IntegerDataset>` | DatasetUtils.`calcPositionsFromIndexes(Dataset indices, int[] shape)` Calculate positions in given shape from a dataset of 1-D indexes
    `static Dataset` | LinearAlgebra.`calcPseudoInverse(Dataset a)` Calculate (Moore-Penrose) pseudo-inverse
    `static Dataset[]` | LinearAlgebra.`calcQRDecomposition(Dataset a)` Calculate QR decomposition A = Q R
    `static Dataset[]` | LinearAlgebra.`calcSingularValueDecomposition(Dataset a)` Calculate singular value decomposition A = U S V^T
    `static double[]` | LinearAlgebra.`calcSingularValues(Dataset a)`
    `static CompoundDataset` | DatasetUtils.`cast(Dataset[] a, int dtype)` Cast array of datasets to a compound dataset
    `static Dataset` | Maths.`centralDifference(Dataset a, int axis)` Discrete difference of dataset along axis using finite central difference
    `static double[]` | DatasetUtils.`centroid(Dataset a, Dataset... bases)` Get the centroid value of a dataset, this function works out the centroid in every direction
    `static double[]` | DatasetUtils.`centroid(Dataset a, Dataset... bases)` Get the centroid value of a dataset, this function works out the centroid in every direction
    `static Dataset` | DatasetUtils.`coerce(Dataset a, Object obj)` Create a copy that has been coerced to an appropriate dataset type depending on the input object's class
    `static Dataset` | Maths.`conjugate(Object a, Dataset o)`
    `void` | CompoundShortDataset.`copyElements(Dataset destination, int element)`
    `void` | CompoundLongDataset.`copyElements(Dataset destination, int element)`
    `void` | CompoundIntegerDataset.`copyElements(Dataset destination, int element)`
    `void` | CompoundFloatDataset.`copyElements(Dataset destination, int element)`
    `void` | CompoundDoubleDataset.`copyElements(Dataset destination, int element)`
    `void` | CompoundByteDataset.`copyElements(Dataset destination, int element)`
    `void` | CompoundDataset.`copyElements(Dataset destination, int element)` Copy chosen elements from each item to another dataset
    `void` | StringDatasetBase.`copyItemsFromAxes(int[] pos, boolean[] axes, Dataset dest)`
    `void` | Dataset.`copyItemsFromAxes(int[] pos, boolean[] axes, Dataset dest)` Copy content from axes in given position to array
    `void` | ShortDataset.`copyItemsFromAxes(int[] pos, boolean[] axes, Dataset dest)`
    `void` | ObjectDatasetBase.`copyItemsFromAxes(int[] pos, boolean[] axes, Dataset dest)`
    `void` | LongDataset.`copyItemsFromAxes(int[] pos, boolean[] axes, Dataset dest)`
    `void` | IntegerDataset.`copyItemsFromAxes(int[] pos, boolean[] axes, Dataset dest)`
    `void` | FloatDataset.`copyItemsFromAxes(int[] pos, boolean[] axes, Dataset dest)`
    `void` | DoubleDataset.`copyItemsFromAxes(int[] pos, boolean[] axes, Dataset dest)`
    `void` | CompoundShortDataset.`copyItemsFromAxes(int[] pos, boolean[] axes, Dataset dest)`
    `void` | CompoundLongDataset.`copyItemsFromAxes(int[] pos, boolean[] axes, Dataset dest)`
    `void` | CompoundIntegerDataset.`copyItemsFromAxes(int[] pos, boolean[] axes, Dataset dest)`
    `void` | CompoundFloatDataset.`copyItemsFromAxes(int[] pos, boolean[] axes, Dataset dest)`
    `void` | CompoundDoubleDataset.`copyItemsFromAxes(int[] pos, boolean[] axes, Dataset dest)`
    `void` | CompoundByteDataset.`copyItemsFromAxes(int[] pos, boolean[] axes, Dataset dest)`
    `void` | ByteDataset.`copyItemsFromAxes(int[] pos, boolean[] axes, Dataset dest)`
    `void` | BooleanDatasetBase.`copyItemsFromAxes(int[] pos, boolean[] axes, Dataset dest)`
    `protected static void` | AbstractDataset.`copyToView(Dataset orig, AbstractDataset view, boolean clone, boolean cloneMetadata)` Copy fields from original to view
    `static Dataset` | Stats.`covariance(Dataset a)` See `Stats.covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)` with b = null, rowvar = true, bias = false and ddof = null.
    `static Dataset` | Stats.`covariance(Dataset a, boolean rowvar, boolean bias, Integer ddof)` See `Stats.covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)` with b = null.
    `static Dataset` | Stats.`covariance(Dataset a, Dataset b)` See `Stats.covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)` with b = null, rowvar = true, bias = false and ddof = null.
    `static Dataset` | Stats.`covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)` Calculate the covariance matrix (array) of a concatenated with b.
    `static int[]` | BroadcastUtils.`createBroadcastStrides(Dataset a, int[] broadcastShape)` Create a stride array from a dataset to a broadcast shape
    `static <T extends CompoundDataset> T` | DatasetUtils.`createCompoundDataset(Class<T> clazz, Dataset... datasets)` Create a compound dataset from given datasets
    `static CompoundDataset` | DatasetUtils.`createCompoundDataset(Dataset... datasets)` Create a compound dataset from given datasets
    `static CompoundDataset` | DatasetUtils.`createCompoundDataset(Dataset dataset, int itemSize)` Create a compound dataset from given dataset
    `static CompoundDataset` | DatasetUtils.`createCompoundDataset(int dtype, Dataset... datasets)` Create a compound dataset from given datasets
    `static CompoundDataset` | DatasetUtils.`createCompoundDatasetFromLastAxis(Dataset a, boolean shareData)` Create a compound dataset by using last axis as elements of an item
    `static CompoundShortDataset` | CompoundShortDataset.`createCompoundDatasetWithLastDimension(Dataset a, boolean shareData)` Create a compound dataset using last dimension of given dataset
    `static CompoundLongDataset` | CompoundLongDataset.`createCompoundDatasetWithLastDimension(Dataset a, boolean shareData)` Create a compound dataset using last dimension of given dataset
    `static CompoundIntegerDataset` | CompoundIntegerDataset.`createCompoundDatasetWithLastDimension(Dataset a, boolean shareData)` Create a compound dataset using last dimension of given dataset
    `static CompoundFloatDataset` | CompoundFloatDataset.`createCompoundDatasetWithLastDimension(Dataset a, boolean shareData)` Create a compound dataset using last dimension of given dataset
    `static CompoundDoubleDataset` | CompoundDoubleDataset.`createCompoundDatasetWithLastDimension(Dataset a, boolean shareData)` Create a compound dataset using last dimension of given dataset
    `static CompoundByteDataset` | CompoundByteDataset.`createCompoundDatasetWithLastDimension(Dataset a, boolean shareData)` Create a compound dataset using last dimension of given dataset
    `static RGBDataset` | RGBDataset.`createFromHSL(Dataset hue, Dataset saturation, Dataset lightness)` Create a RGB dataset from hue, saturation and lightness dataset
    `static RGBDataset` | RGBDataset.`createFromHSV(Dataset hue, Dataset saturation, Dataset value)` Create a RGB dataset from hue, saturation and value dataset
    `static BroadcastSelfIterator` | BroadcastSelfIterator.`createIterator(Dataset a, Dataset b)`
    `static BroadcastIterator` | BroadcastIterator.`createIterator(Dataset a, Dataset b)`
    `static BroadcastIterator` | BroadcastIterator.`createIterator(Dataset a, Dataset b, Dataset o)`
    `static BroadcastIterator` | BroadcastIterator.`createIterator(Dataset a, Dataset b, Dataset o, boolean createIfNull)`
    `static Object` | DatasetUtils.`createJavaArray(Dataset a)` Create Java array (of arrays) from dataset
    `static LazyWriteableDataset` | LazyWriteableDataset.`createLazyDataset(Dataset dataset)` Create a lazy writeable dataset based on in-memory data (handy for testing)
    `static LazyDataset` | LazyDataset.`createLazyDataset(Dataset dataset)` Create a lazy dataset based on in-memory data (handy for testing)
    `static LazyWriteableDataset` | LazyWriteableDataset.`createLazyDataset(Dataset dataset, int[] maxShape)` Create a lazy writeable dataset based on in-memory data (handy for testing)
    `static int[]` | AbstractDataset.`createStrides(Dataset a, int[] offset)` Create a stride array from dataset
    `static int[]` | AbstractDataset.`createStrides(SliceND slice, Dataset a, int[] stride, int[] offset)` Create a stride array from slice information and a dataset
    `static List<Double>` | DatasetUtils.`crossings(Dataset xAxis, Dataset yAxis, double yValue)` Find x values of all the crossing points of the dataset with the given y value
    `static List<Double>` | DatasetUtils.`crossings(Dataset xAxis, Dataset yAxis, double yValue, double xRangeProportion)` Function that uses the crossings function but prunes the result, so that multiple crossings within a certain proportion of the overall range of the x values
    `static List<Double>` | DatasetUtils.`crossings(Dataset d, double value)` Find linearly-interpolated crossing points where the given dataset crosses the given value
    `static Dataset` | LinearAlgebra.`crossProduct(Dataset a, Dataset b)` Calculate the cross product of two datasets.
    `static Dataset` | LinearAlgebra.`crossProduct(Dataset a, Dataset b, int axisA, int axisB, int axisC)` Calculate the cross product of two datasets.
    `static Dataset` | Stats.`cumulativeProduct(Dataset a, boolean... ignoreInvalids)`
    `static Dataset` | Stats.`cumulativeProduct(Dataset a, int axis, boolean... ignoreInvalids)`
    `static Dataset` | Stats.`cumulativeSum(Dataset a, boolean... ignoreInvalids)`
    `static Dataset` | Stats.`cumulativeSum(Dataset a, int axis, boolean... ignoreInvalids)`
    `static Dataset` | Maths.`derivative(Dataset x, Dataset y, int n)` Calculates the derivative of a line described by two datasets (x,y) given a spread of n either side of the point
    `static Dataset` | Maths.`difference(Dataset a, int n, int axis)` Discrete difference of dataset along axis using finite difference
    `static Dataset` | LinearAlgebra.`dotProduct(Dataset a, Dataset b)` Calculate the dot product of two datasets.
    `void` | StringDatasetBase.`fillDataset(Dataset result, IndexIterator iter)`
    `void` | Dataset.`fillDataset(Dataset other, IndexIterator iter)` Populate another dataset with part of current dataset
    `void` | ShortDataset.`fillDataset(Dataset result, IndexIterator iter)`
    `void` | ObjectDatasetBase.`fillDataset(Dataset result, IndexIterator iter)`
    `void` | LongDataset.`fillDataset(Dataset result, IndexIterator iter)`
    `void` | IntegerDataset.`fillDataset(Dataset result, IndexIterator iter)`
    `void` | FloatDataset.`fillDataset(Dataset result, IndexIterator iter)`
    `void` | DoubleDataset.`fillDataset(Dataset result, IndexIterator iter)`
    `void` | CompoundShortDataset.`fillDataset(Dataset result, IndexIterator iter)`
    `void` | CompoundLongDataset.`fillDataset(Dataset result, IndexIterator iter)`
    `void` | CompoundIntegerDataset.`fillDataset(Dataset result, IndexIterator iter)`
    `void` | CompoundFloatDataset.`fillDataset(Dataset result, IndexIterator iter)`
    `void` | CompoundDoubleDataset.`fillDataset(Dataset result, IndexIterator iter)`
    `void` | CompoundByteDataset.`fillDataset(Dataset result, IndexIterator iter)`
    `void` | ByteDataset.`fillDataset(Dataset result, IndexIterator iter)`
    `void` | BooleanDatasetBase.`fillDataset(Dataset result, IndexIterator iter)`
    `static IntegerDataset` | DatasetUtils.`findFirstOccurrences(Dataset a, Dataset values)` Find first occurrences in one dataset of values given in another sorted dataset
    `static int` | DatasetUtils.`findIndexEqualTo(Dataset a, double n)` Find absolute index of first value in dataset that is equal to given number
    `static IntegerDataset` | DatasetUtils.`findIndexesForValues(Dataset a, Dataset values)` Find indexes in sorted dataset of values for each value in other dataset
    `static int` | DatasetUtils.`findIndexGreaterThan(Dataset a, double n)` Find absolute index of first value in dataset that is greater than given number
    `static int` | DatasetUtils.`findIndexGreaterThanOrEqualTo(Dataset a, double n)` Find absolute index of first value in dataset that is greater than or equal to given number
    `static int` | DatasetUtils.`findIndexLessThan(Dataset a, double n)` Find absolute index of first value in dataset that is less than given number
    `static int` | DatasetUtils.`findIndexLessThanOrEqualTo(Dataset a, double n)` Find absolute index of first value in dataset that is less than or equal to given number
    `static Dataset` | Maths.`floorDivide(Object a, Object b, Dataset o)`
    `static Dataset` | Maths.`floorRemainder(Object a, Object b, Dataset o)`
    `BooleanIterator` | Dataset.`getBooleanIterator(Dataset choice)` Get an iterator that visits every item in this dataset where the corresponding item in choice dataset is true
    `BooleanIterator` | AbstractDataset.`getBooleanIterator(Dataset choice)`
    `BooleanIterator` | Dataset.`getBooleanIterator(Dataset choice, boolean value)` Get an iterator that visits every item in this dataset where the corresponding item in choice dataset is given by value
    `BooleanIterator` | AbstractDataset.`getBooleanIterator(Dataset choice, boolean value)`
    `CompoundDataset` | AbstractCompoundDataset.`getByBoolean(Dataset selection)`
    `Dataset` | Dataset.`getByBoolean(Dataset selection)` This is modelled after the NumPy get item with a condition specified by a boolean dataset
    `Dataset` | AbstractDataset.`getByBoolean(Dataset selection)`
    `CompoundDataset` | CompoundDataset.`getByBoolean(Dataset selection)`
    `static String` | DTypeUtils.`getDTypeName(Dataset a)`
    `protected static ConcurrentMap<Class<? extends MetadataType>,List<MetadataType>>` | AbstractDataset.`getMetadataMap(Dataset a, boolean clone)`
    `static List<Dataset>` | Maths.`gradient(Dataset y, Dataset... x)` Calculate gradient (or partial derivatives) by central difference
    `static List<Dataset>` | Maths.`gradient(Dataset y, Dataset... x)` Calculate gradient (or partial derivatives) by central difference
    `static double` | Outliers.`highMed(Dataset data)` Returns the himed
    `static Dataset` | Maths.`hypot(Object a, Object b, Dataset o)`
    `static double` | Maths.`interpolate(Dataset d, Dataset m, double... x)` Linearly interpolate a value at a point in a n-D dataset with a mask.
    `static double` | Maths.`interpolate(Dataset d, Dataset m, double x0)` Linearly interpolate a value at a point in a 1D dataset with a mask.
    `static double` | Maths.`interpolate(Dataset d, Dataset m, double x0, double x1)` Linearly interpolate a value at a point in a 2D dataset with a mask.
    `static Dataset` | Maths.`interpolate(Dataset x, Dataset d, IDataset x0, Number left, Number right)` Linearly interpolate values at points in a 1D dataset corresponding to given coordinates.
    `static double` | Maths.`interpolate(Dataset d, double... x)` Linearly interpolate a value at a point in a n-D dataset.
    `static double` | Maths.`interpolate(Dataset d, double x0)` Linearly interpolate a value at a point in a 1D dataset.
    `static double` | Maths.`interpolate(Dataset d, double x0, double x1)` Linearly interpolate a value at a point in a 2D dataset.
    `static Object` | Stats.`iqr(Dataset a)` Interquartile range: Q3 - Q1
    `static Dataset` | Stats.`iqr(Dataset a, int axis)` Interquartile range: Q3 - Q1
    `static Dataset` | LinearAlgebra.`kroneckerProduct(Dataset a, Dataset b)` Create the Kronecker product as defined by kron[k0,...,kN] = a[i0,...,iN] * b[j0,...,jN] where kn = sn * in + jn for n = 0...N and s is shape of b
    `static Object` | Stats.`kurtosis(Dataset a, boolean... ignoreInvalids)`
    `static Dataset` | Stats.`kurtosis(Dataset a, int axis, boolean... ignoreInvalids)`
    `static Dataset` | DatasetUtils.`lnnorm(Dataset a)` Function that returns a normalised dataset which is bounded between 0 and 1 and has been distributed on a natural log scale
    `static Dataset` | DatasetUtils.`lognorm(Dataset a)` Function that returns a normalised dataset which is bounded between 0 and 1 and has been distributed on a log10 scale
    `static double` | Outliers.`lowMed(Dataset data)` Returns the lomed
    `static void` | DatasetUtils.`makeFinite(Dataset a)` Make floating point datasets contain only finite values.
    `static Object` | Stats.`median(Dataset a)`
    `static Dataset` | Stats.`median(Dataset a, int axis)`
    `static double[]` | Outliers.`medianAbsoluteDeviation(Dataset data)` Returns the Median Absolute Deviation (MAD) and the median.
    `static List<Dataset>` | DatasetUtils.`meshGrid(Dataset... axes)` Construct a list of datasets where each represents a coordinate varying over the hypergrid formed by the input list of axes
    `static List<IntegerDataset>` | Comparisons.`nonZero(Dataset a)` Create a list of indices of positions where items are non-zero
    `static double` | LinearAlgebra.`norm(Dataset a)`
    `static Dataset` | DatasetUtils.`norm(Dataset a)` Function that returns a normalised dataset which is bounded between 0 and 1
    `static double` | LinearAlgebra.`norm(Dataset a, double p)`
    `static double` | LinearAlgebra.`norm(Dataset a, LinearAlgebra.NormOrder order)`
    `static <T extends Dataset> T` | DatasetFactory.`ones(Dataset dataset, Class<T> clazz)`
    `static Dataset` | DatasetFactory.`ones(Dataset dataset, int dtype)` Deprecated. Please use the class-based methods in DatasetFactory, such as `DatasetFactory.createRange(Class, double, double, double)`
    `static Dataset` | Operations.`operate(BinaryOperation op, Object a, Object b, Dataset o)` Operate on a dataset
    `static Dataset` | Operations.`operate(UnaryOperation op, Object a, Dataset o)` Operate on a dataset
    `static Dataset` | LinearAlgebra.`outerProduct(Dataset a, Dataset b)` Calculate the outer product of two datasets
    `static double[]` | Stats.`outlierValues(Dataset a, double lo, double hi, int length)` Calculate approximate outlier values.
    `static Dataset` | Maths.`phaseAsComplexNumber(Object a, Dataset o, boolean keepZeros)` Create a phase only dataset.
    `static Dataset` | LinearAlgebra.`power(Dataset a, int n)` Raise dataset to given power by matrix multiplication
    `static Object` | Stats.`product(Dataset a, boolean... ignoreInvalids)`
    `static Dataset` | Stats.`product(Dataset a, int axis, boolean... ignoreInvalids)`
    `static <T extends Dataset> T` | DatasetUtils.`put(T a, Dataset indices, Object values)` Changes specific items of dataset by replacing them with other array
    `static double[]` | Stats.`quantile(Dataset a, double... values)` Calculate quantiles of dataset which is defined as the inverse of the cumulative distribution function (CDF)
    `static double` | Stats.`quantile(Dataset a, double q)` Calculate quantile of dataset which is defined as the inverse of the cumulative distribution function (CDF)
    `static Dataset[]` | Stats.`quantile(Dataset a, int axis, double... values)` Calculate quantiles of dataset which is defined as the inverse of the cumulative distribution function (CDF)
    `static Dataset` | Maths.`reciprocal(Object a, Dataset o)` Find reciprocal from dataset
    `static Dataset` | InterpolatorUtils.`regrid(Dataset data, Dataset x, Dataset y, Dataset gridX, Dataset gridY)`
    `static Dataset` | InterpolatorUtils.`regridOld(Dataset data, Dataset x, Dataset y, Dataset gridX, Dataset gridY)`
    `static Dataset` | InterpolatorUtils.`remap1D(Dataset dataset, Dataset axis, Dataset outputAxis)`
    `static Dataset` | InterpolatorUtils.`remapAxis(Dataset dataset, int axisIndex, Dataset originalAxisForCorrection, Dataset outputAxis)`
    `static Dataset` | InterpolatorUtils.`remapOneAxis(Dataset dataset, int axisIndex, Dataset corrections, Dataset originalAxisForCorrection, Dataset outputAxis)`
    `static void` | DatasetUtils.`removeNansAndInfinities(Dataset a, Number value)` Removes NaNs and infinities from floating point datasets.
    `static double` | Stats.`residual(Dataset a, Dataset b)` The residual is the sum of squared differences
    `double` | StringDatasetBase.`residual(Object b, Dataset w, boolean ignoreNaNs)`
    `double` | Dataset.`residual(Object o, Dataset weight, boolean ignoreNaNs)` Calculate residual of dataset with object o and weight.
    `double` | ShortDataset.`residual(Object b, Dataset w, boolean ignoreNaNs)`
    `double` | ObjectDatasetBase.`residual(Object b, Dataset w, boolean ignoreNaNs)`
    `double` | LongDataset.`residual(Object b, Dataset w, boolean ignoreNaNs)`
    `double` | IntegerDataset.`residual(Object b, Dataset w, boolean ignoreNaNs)`
    `double` | FloatDataset.`residual(Object b, Dataset w, boolean ignoreNaNs)`
    `double` | DoubleDataset.`residual(Object b, Dataset w, boolean ignoreNaNs)`
    `double` | CompoundShortDataset.`residual(Object b, Dataset w, boolean ignoreNaNs)`
    `double` | CompoundLongDataset.`residual(Object b, Dataset w, boolean ignoreNaNs)`
    `double` | CompoundIntegerDataset.`residual(Object b, Dataset w, boolean ignoreNaNs)`
    `double` | CompoundFloatDataset.`residual(Object b, Dataset w, boolean ignoreNaNs)`
    `double` | CompoundDoubleDataset.`residual(Object b, Dataset w, boolean ignoreNaNs)`
    `double` | CompoundByteDataset.`residual(Object b, Dataset w, boolean ignoreNaNs)`
    `double` | ComplexFloatDataset.`residual(Object b, Dataset w, boolean ignoreNaNs)`
    `double` | ComplexDoubleDataset.`residual(Object b, Dataset w, boolean ignoreNaNs)`
    `double` | ByteDataset.`residual(Object b, Dataset w, boolean ignoreNaNs)`
    `double` | BooleanDatasetBase.`residual(Object b, Dataset w, boolean ignoreNaNs)`
    `double` | BooleanDataset.`residual(Object b, Dataset w, boolean ignoreNaNs)`
    `static Dataset` | InterpolatorUtils.`selectDatasetRegion(Dataset dataset, int x, int y, int xSize, int ySize)`
    `StringDatasetBase` | StringDatasetBase.`setBy1DIndex(Object obj, Dataset index)`
    `Dataset` | Dataset.`setBy1DIndex(Object obj, Dataset index)` This is modelled after the NumPy set item with an index dataset
    `ShortDataset` | ShortDataset.`setBy1DIndex(Object obj, Dataset index)`
    `ObjectDatasetBase` | ObjectDatasetBase.`setBy1DIndex(Object obj, Dataset index)`
    `LongDataset` | LongDataset.`setBy1DIndex(Object obj, Dataset index)`
    `IntegerDataset` | IntegerDataset.`setBy1DIndex(Object obj, Dataset index)`
    `FloatDataset` | FloatDataset.`setBy1DIndex(Object obj, Dataset index)`
    `DoubleDataset` | DoubleDataset.`setBy1DIndex(Object obj, Dataset index)`
    `CompoundShortDataset` | CompoundShortDataset.`setBy1DIndex(Object o, Dataset index)`
    `CompoundLongDataset` | CompoundLongDataset.`setBy1DIndex(Object o, Dataset index)`
    `CompoundIntegerDataset` | CompoundIntegerDataset.`setBy1DIndex(Object o, Dataset index)`
    `CompoundFloatDataset` | CompoundFloatDataset.`setBy1DIndex(Object o, Dataset index)`
    `CompoundDoubleDataset` | CompoundDoubleDataset.`setBy1DIndex(Object o, Dataset index)`
    `CompoundByteDataset` | CompoundByteDataset.`setBy1DIndex(Object o, Dataset index)`
    `ByteDataset` | ByteDataset.`setBy1DIndex(Object obj, Dataset index)`
    `BooleanDatasetBase` | BooleanDatasetBase.`setBy1DIndex(Object obj, Dataset index)`
    `CompoundDataset` | CompoundDataset.`setBy1DIndex(Object obj, Dataset index)`
    `StringDatasetBase` | StringDatasetBase.`setByBoolean(Object obj, Dataset selection)`
    `Dataset` | Dataset.`setByBoolean(Object obj, Dataset selection)` This is modelled after the NumPy set item with a condition specified by a boolean dataset
    `ShortDataset` | ShortDataset.`setByBoolean(Object obj, Dataset selection)`
    `ObjectDatasetBase` | ObjectDatasetBase.`setByBoolean(Object obj, Dataset selection)`
    `LongDataset` | LongDataset.`setByBoolean(Object obj, Dataset selection)`
    `IntegerDataset` | IntegerDataset.`setByBoolean(Object obj, Dataset selection)`
    `FloatDataset` | FloatDataset.`setByBoolean(Object obj, Dataset selection)`
    `DoubleDataset` | DoubleDataset.`setByBoolean(Object obj, Dataset selection)`
    `CompoundShortDataset` | CompoundShortDataset.`setByBoolean(Object o, Dataset selection)`
    `CompoundLongDataset` | CompoundLongDataset.`setByBoolean(Object o, Dataset selection)`
    `CompoundIntegerDataset` | CompoundIntegerDataset.`setByBoolean(Object o, Dataset selection)`
    `CompoundFloatDataset` | CompoundFloatDataset.`setByBoolean(Object o, Dataset selection)`
    `CompoundDoubleDataset` | CompoundDoubleDataset.`setByBoolean(Object o, Dataset selection)`
    `CompoundByteDataset` | CompoundByteDataset.`setByBoolean(Object o, Dataset selection)`
    `ByteDataset` | ByteDataset.`setByBoolean(Object obj, Dataset selection)`
    `BooleanDatasetBase` | BooleanDatasetBase.`setByBoolean(Object obj, Dataset selection)`
    `CompoundDataset` | CompoundDataset.`setByBoolean(Object obj, Dataset selection)`
    `void` | CompoundShortDataset.`setElements(Dataset source, int element)`
    `void` | CompoundLongDataset.`setElements(Dataset source, int element)`
    `void` | CompoundIntegerDataset.`setElements(Dataset source, int element)`
    `void` | CompoundFloatDataset.`setElements(Dataset source, int element)`
    `void` | CompoundDoubleDataset.`setElements(Dataset source, int element)`
    `void` | CompoundByteDataset.`setElements(Dataset source, int element)`
    `void` | CompoundDataset.`setElements(Dataset source, int element)` Set values of chosen elements from each item according to source dataset
    `static Object` | Stats.`skewness(Dataset a, boolean... ignoreInvalids)`
    `static Dataset` | Stats.`skewness(Dataset a, int axis, boolean... ignoreInvalids)`
    `static double` | Outliers.`snFast(Dataset data)` Returns the Sn estimator of Croux and Rousseeuw.
    `static double` | Outliers.`snNaive(Dataset data)` Returns the Sn estimator of Croux and Rousseeuw.
    `static Dataset` | LinearAlgebra.`solve(Dataset a, Dataset v)` Solve linear matrix equation A x = v
    `static Dataset` | LinearAlgebra.`solveSVD(Dataset a, Dataset v)` Solve least squares matrix equation A x = v by SVD
    `static void` | DatasetUtils.`sort(Dataset a, Dataset... b)` Sort in place given dataset and reorder ancillary datasets too
    `static void` | DatasetUtils.`sort(Dataset a, Dataset... b)` Sort in place given dataset and reorder ancillary datasets too
    `static List<Dataset>` | DatasetUtils.`split(Dataset a, int[] indices, int axis)` Split a dataset into parts along given axis
    `static List<Dataset>` | DatasetUtils.`split(Dataset a, int sections, int axis, boolean checkEqual)` Split a dataset into equal sections along given axis
    `static Object` | Stats.`sum(Dataset a, boolean... ignoreInvalids)`
    `static <T extends Dataset> T` | DatasetUtils.`take(T a, Dataset indices, Integer axis)` Take items from dataset along an axis
    `static Dataset` | LinearAlgebra.`tensorDotProduct(Dataset a, Dataset b, int[] axisa, int[] axisb)` Calculate the tensor dot product over given axes.
    `static Dataset` | LinearAlgebra.`tensorDotProduct(Dataset a, Dataset b, int axisa, int axisb)` Calculate the tensor dot product over given axes.
    `static Dataset` | LinearAlgebra.`trace(Dataset a)` Calculate trace of dataset - sum of values over 1st axis and 2nd axis
    `static Dataset` | LinearAlgebra.`trace(Dataset a, int offset, int axis1, int axis2)` Calculate trace of dataset - sum of values over axis1 and axis2 where axis2 is offset
    `static Object` | Stats.`typedProduct(Dataset a, int dtype, boolean... ignoreInvalids)`
    `static Dataset` | Stats.`typedProduct(Dataset a, int dtype, int axis, boolean... ignoreInvalids)`
    `static Object` | Stats.`typedSum(Dataset a, int dtype, boolean... ignoreInvalids)`
    `static Dataset` | Stats.`typedSum(Dataset a, int dtype, int axis, boolean... ignoreInvalids)`
    `static Object` | Maths.`unwrap(Dataset o, Object... a)` Unwrap result from mathematical methods if necessary
    `static Object` | Maths.`unwrap(Dataset o, Object a)` Unwrap result from mathematical methods if necessary
    `static Object` | Maths.`unwrap(Dataset o, Object a, Object b)` Unwrap result from mathematical methods if necessary
    `static void` | DatasetUtils.`unwrapUnsigned(Dataset a, int bitWidth)` Unwrap dataset elements so that all elements are unsigned
    `static double` | Stats.`weightedResidual(Dataset a, Dataset b, Dataset w)` The residual is the sum of squared differences
    `static <T extends Dataset> T` | DatasetFactory.`zeros(Dataset dataset, Class<T> clazz)`
    `static Dataset` | DatasetFactory.`zeros(Dataset dataset, int dtype)` Deprecated. Please use the class-based methods in DatasetFactory, such as `DatasetFactory.zeros(Dataset, Class)`

    Method parameters in org.eclipse.january.dataset with type arguments of type Dataset
    Modifier and Type | Method and Description
    --- | ---
    `static IntegerDataset` | DatasetUtils.`calcIndexesFromPositions(List<? extends Dataset> positions, int[] shape, int... mode)` Calculate indexes in given shape from datasets of position
    `static int` | DTypeUtils.`getDType(Class<? extends Dataset> clazz)`

    Constructors in org.eclipse.january.dataset with parameters of type Dataset
    Constructor and Description
    `BooleanIterator(IndexIterator iter, Dataset selection)` Constructor for an iterator over the items of a boolean dataset that are true
    `BooleanIterator(IndexIterator iter, Dataset selection, boolean value)` Constructor for an iterator over the items of a boolean dataset that match given value
    `BroadcastIterator(Dataset a, Dataset b, Dataset o)`
    `BroadcastIteratorBase(Dataset a, Dataset b)`
    `BroadcastPairIterator(Dataset a, Dataset b, Dataset o, boolean createIfNull)`
    `BroadcastSelfIterator(Dataset a, Dataset b)`
    `BroadcastSingleIterator(Dataset a, Dataset b)`
    `ContiguousPairIterator(Dataset a, Dataset b, Dataset o, boolean createIfNull)`
    `ContiguousSingleIterator(Dataset a, Dataset b)`
    `IntegerIterator(Dataset index, int length)` Constructor for an iterator over the items of an integer dataset
    `IntegerIterator(Dataset index, int length, int isize)` Constructor for an iterator over the items of an integer dataset
    `RGBDataset(Dataset grey)` Create a dataset using given grey data
    `RGBDataset(Dataset red, Dataset green, Dataset blue)` Create a dataset using given colour data (colour components are given separately)
    `SingleInputBroadcastIterator(Dataset a, Dataset o)`
    `SingleInputBroadcastIterator(Dataset a, Dataset o, boolean createIfNull)`
    `SingleInputBroadcastIterator(Dataset a, Dataset o, boolean createIfNull, boolean allowInteger, boolean allowComplex)`

  - ### Uses of Dataset in org.eclipse.january.metadata

    Methods in org.eclipse.january.metadata that return Dataset
    Modifier and Type | Method and Description
    --- | ---
    `Dataset` | StatisticsMetadata.`getArgMaximum(int axis, boolean... ignoreInvalids)`
    `Dataset` | StatisticsMetadata.`getArgMinimum(int axis, boolean... ignoreInvalids)`
    `Dataset` | StatisticsMetadata.`getCount(int axis, boolean... ignoreInvalids)`
    `Dataset` | StatisticsMetadata.`getMaximum(int axis, boolean... ignoreInvalids)`
    `Dataset` | StatisticsMetadata.`getMean(int axis, boolean... ignoreInvalids)`
    `Dataset` | StatisticsMetadata.`getMinimum(int axis, boolean... ignoreInvalids)`
    `Dataset` | StatisticsMetadata.`getSum(int axis, boolean... ignoreInvalids)`
    `Dataset` | StatisticsMetadata.`getVariance(int axis, boolean isWholePopulation, boolean... ignoreInvalids)`

    Methods in org.eclipse.january.metadata with parameters of type Dataset
    Modifier and Type | Method and Description
    --- | ---
    `void` | StatisticsMetadata.`initialize(Dataset dataset)`

Copyright © 2017. All rights reserved.