diff --git a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ndarray/BaseNDArray.java b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ndarray/BaseNDArray.java index 126ba2466..9904168de 100644 --- a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ndarray/BaseNDArray.java +++ b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ndarray/BaseNDArray.java @@ -1724,12 +1724,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { return z; } - /** - * Returns the elements at the specified indices - * - * @param indices the indices to getScalar - * @return the array with the specified elements - */ @Override public int getInt(int... indices) { return (int) getDouble(indices); @@ -1761,12 +1755,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { return Shape.getLong(this, indices); } - /** - * Returns the elements at the specified indices - * - * @param indices the indices to get - * @return the array with the specified elements - */ @Override public double getDouble(int... indices) { autoProcessScalarCall(); @@ -1815,12 +1803,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { return Shape.getDouble(this, indices); } - /** - * Returns the elements at the specified indices - * - * @param indices the indices to get - * @return the array with the specified elements - */ @Override public float getFloat(int... indices) { return (float) getDouble(indices); @@ -1831,9 +1813,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { return (float) getDouble(indices); } - /** - * Test whether a matrix is scalar. - */ @Override public boolean isScalar() { if (isEmpty()) @@ -2000,11 +1979,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { } } - /** - * Returns true if this ndarray is 2d - * - * @return true if the element is a matrix, false otherwise - */ public boolean isMatrix() { return rank() == 2; } @@ -2216,14 +2190,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { return this; } - /** - * Mainly here for people coming from numpy. - * This is equivalent to a call to permute - * - * @param dimension the dimension to swap - * @param with the one to swap it with - * @return the swapped axes view - */ @Override public INDArray swapAxes(int dimension, int with) { int[] shape = ArrayUtil.range(0, shape().length); @@ -2263,12 +2229,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { this.data = data; } - /** - * Number of slices: aka shape[0] - * - * @return the number of slices - * for this nd array - */ @Override public long slices() { return size(0); @@ -3377,18 +3337,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { return Shape.offset(jvmShapeInfo.javaShapeInformation) + (idx); } - - - /** - * Returns the specified slice of this matrix. - * In matlab, this would be equivalent to (given a 2 x 2 x 2): - * A(:,:,x) where x is the slice you want to return. - *
- * The slice is always relative to the final dimension of the matrix. - * - * @param slice the slice to return - * @return the specified slice of this matrix - */ @Override public INDArray slice(long slice) { Nd4j.getCompressor().autoDecompress(this); @@ -3425,8 +3373,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { return Nd4j.scalar(d); } - - @Override public int getTrailingOnes() { int numLeadingOnes = 0; @@ -3438,8 +3384,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { return numLeadingOnes; } - - @Override public int getLeadingOnes() { int numLeadingOnes = 0; @@ -3451,16 +3395,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { return numLeadingOnes; } - - - /** - * Returns the slice of this from the specified dimension - * - * @param slice the dimension to return from - * @param dimension the dimension of the slice to return - * @return the slice of this matrix from the specified dimension - * and dimension - */ @Override public INDArray slice(long slice, int dimension) { Nd4j.getCompressor().autoDecompress(this); @@ -3490,12 +3424,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { } - /** - * Fetch a particular number on a multi dimensional scale. - * - * @param indexes the indexes to get a number from - * @return the number at the specified indices - */ @Override public INDArray getScalar(int[] indexes) { if (indexes.length > rank()) @@ -3717,9 +3645,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { return (float) getDouble(i, j); } - /** - * Return transposed copy of this matrix. - */ @Override public INDArray transpose() { Preconditions.checkState(rank() >= 2, "Can't transpose array with rank < 2: array shape %ndShape", this); @@ -3727,7 +3652,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { return permute(ArrayUtil.reverseCopy(ArrayUtil.range(0, rank()))); } - /** * * Return transposed version of this matrix. @@ -4047,12 +3971,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { return norm2(false, dimension); } - /** - * Number of columns (shape[1]), throws an exception when - * called when not 2d - * - * @return the number of columns in the array (only 2d) - */ @Override public int columns() { // FIXME: int cast @@ -4068,13 +3986,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { } - /** - * Returns the number of rows - * in the array (only 2d) throws an exception when - * called when not 2d - * - * @return the number of rows in the matrix - */ @Override public int rows() { // FIXME: @@ -4089,12 +4000,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { throw new IllegalStateException("Rank is " + rank() + " rows() call is not valid"); } - - /** - * Flattens the array for linear indexing - * - * @return the flattened version of this array - */ @Override public INDArray ravel(char ordering) { Nd4j.getCompressor().autoDecompress(this); @@ -4104,11 +4009,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { return dup(ordering).reshape(ordering, length()); } - /** - * Flattens the array for linear indexing - * - * @return the flattened version of this array - */ @Override public INDArray ravel() { return reshape(length()); @@ -4125,22 +4025,11 @@ public abstract class BaseNDArray implements INDArray, Iterable { } } - /** - * Reshape the matrix. Number of elements must not change. - * - * @param newRows - * @param newColumns - */ @Override public INDArray reshape(long newRows, long newColumns) { return reshape(new long[] {newRows, newColumns}); } - /** - * Get the specified column - * - * @param c - */ @Override public INDArray getColumn(long c) { Nd4j.getCompressor().autoDecompress(this); @@ -4383,11 +4272,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { return create(new int[] {rows, length}); } - /** - * Get a copy of a row. - * - * @param r the row to get - */ @Override public INDArray getRow(long r) { if (isRowVector() && r == 0) @@ -4409,14 +4293,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { return row.reshape(1, row.length()); } - - /** - * This method allows you to compare INDArray against other INDArray, with variable eps - * - * @param o - * @param eps - * @return - */ public boolean equalsWithEps(Object o, double eps) { Nd4j.getCompressor().autoDecompress(this); @@ -4563,11 +4439,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { return shapeInformation.asNioLong(); } - /** - * Returns the shape(dimensions) of this array - * - * @return the shape of this matrix - */ public long[] shape() { return jvmShapeInfo.shape; } @@ -4577,11 +4448,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { return Shape.shapeToString(this); } - /** - * Returns the stride(indices along the linear index for which each slice is accessed) of this array - * - * @return the stride of this array - */ @Override public long[] stride() { return jvmShapeInfo.stride; @@ -4598,13 +4464,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { return jvmShapeInfo.order; } - /** - * Returns the size of this array - * along a particular dimension - * - * @param dimension the dimension to return from - * @return the shape of the specified dimension - */ @Override public long size(int dimension) { if (dimension < 0) @@ -4629,11 +4488,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { return jvmShapeInfo.rank; } - /** - * Returns the total number of elements in the ndarray - * - * @return the number of elements in the ndarray - */ @Override public long length() { if (isEmpty()) @@ -4745,12 +4599,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { } - /** - * Broadcasts this ndarray to be the specified shape - * - * @param shape the new shape of this ndarray - * @return the broadcasted ndarray - */ @Override public INDArray broadcast(long... shape) { return broadcast(Nd4j.createUninitialized(this.dataType(), shape, this.ordering())); @@ -4877,12 +4725,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { } - /** - * See: http://www.mathworks.com/help/matlab/ref/permute.html - * - * @param rearrange the dimensions to swap to - * @return the newly permuted array - */ @Override public INDArray permute(int... rearrange) { Preconditions.checkArgument(rearrange.length == rank(), "Incorrect number of arguments for permute function:" + @@ -4911,14 +4753,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { return value; } - /** - * An in-place version of permute. The array shape information (shape, strides) - * is modified by this operation (but not the data itself) - * See: http://www.mathworks.com/help/matlab/ref/permute.html - * - * @param rearrange the dimensions to swap to - * @return the current array - */ @Override public INDArray permutei(int... rearrange) { Preconditions.checkArgument(rearrange.length == rank(), "Incorrect number of arguments for permute function:" + @@ -5047,17 +4881,11 @@ public abstract class BaseNDArray implements INDArray, Iterable { return isMatrix() && rows() == columns(); } - /** - * Checks whether the matrix is a row vector. - */ @Override public boolean isRowVector() { return (rank() == 2 && rows() == 1) && length() > 1 || rank() == 1 && length() > 1; } - /** - * Checks whether the matrix is a column vector. - */ @Override public boolean isColumnVector() { return rank() == 2 && columns() == 1 && length() > 1; @@ -5112,12 +4940,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { return toString(Long.MAX_VALUE, false, -1 * dataType().precision()); } - /** - * Returns a scalar (individual element) - * of a scalar ndarray - * - * @return the individual item in this ndarray - */ @Override public Object element() { @@ -5236,11 +5058,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { return new FirstAxisIterator(this); } - /** - * Returns the start of where the ndarray is for the original data buffer - * - * @return - */ @Override public long originalOffset() { if (data().originalOffset() >= Integer.MAX_VALUE) @@ -5294,24 +5111,11 @@ public abstract class BaseNDArray implements INDArray, Iterable { data().read(s, headerData.getLeft(), headerData.getMiddle(), headerData.getRight()); } - - /** - * This method returns index of highest value along specified dimension(s) - * - * @param dimension - * @return - */ @Override public INDArray argMax(int... dimension) { return Nd4j.argMax(this, dimension); } - - /** - * This method returns True, if this INDArray instance is attached to some Workspace. False otherwise. - * - * @return - */ @Override public boolean isAttached() { if (isEmpty()) @@ -5324,13 +5128,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { (data.originalDataBuffer() != null && data.originalDataBuffer().isAttached()); } - /** - * This method checks, if given attached INDArray is still in scope of its parent Workspace - *- * PLEASE NOTE: if this INDArray isn't attached to any Workspace, this method will return true - * - * @return - */ @Override public boolean isInScope() { if (!isAttached()) @@ -5339,13 +5136,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { return data.isInScope(); } - /** - * This metod detaches INDArray from Workspace, returning copy. Basically it's dup() into new memory chunk. - *
- * PLEASE NOTE: If this INDArray instance is NOT attached - it will be returned unmodified. - * - * @return - */ @Override public INDArray detach() { if (!isAttached()) @@ -5402,14 +5192,6 @@ public abstract class BaseNDArray implements INDArray, Iterable { } } - /** - * This method detaches INDArray from current Workspace, and attaches it to Workspace above, if any. - *
- * PLEASE NOTE: If this INDArray instance is NOT attached - it will be returned unmodified.
- * PLEASE NOTE: If current Workspace is the top-tier one, effect will be equal to detach() call - detached copy will be returned
- *
- * @return
- */
@Override
public INDArray leverage() {
WorkspaceUtils.assertValidArray(this, "Cannot leverage INDArray to new workspace");
@@ -5453,33 +5235,11 @@ public abstract class BaseNDArray implements INDArray, Iterable {
}
}
- /**
- * This method detaches INDArray from current Workspace, and attaches it to Workspace with a given Id
- *
- * PLEASE NOTE: If this INDArray instance is NOT attached - it will be returned unmodified.
- * PLEASE NOTE: If Workspace with target Id wasn't created before - this array will be returned unmodified.
- * PLEASE NOTE: If target workspace is the current one - this array will be returned unmodified.
- *
- * @param id
- * @return
- */
@Override
public INDArray leverageTo(String id) {
return leverageTo(id, false);
}
- /**
- * This method detaches INDArray from current Workspace, and attaches it to Workspace with a given Id.
- * If enforceExistence == true, and no workspace with the specified ID exists, then an {@link Nd4jNoSuchWorkspaceException}
- * is thrown. Otherwise, if enforceExistance == false and no workspace with the specified ID exists, then the current
- * INDArray is returned unmodified (same as {@link #leverage()}
- *
- * @param id ID of the workspace to leverage to
- * @param enforceExistence If true, and the specified workspace does not exist: an {@link Nd4jNoSuchWorkspaceException}
- * will be thrown.
- * @return The INDArray, leveraged to the specified workspace
- * @see #leverageTo(String)
- */
@Override
public INDArray leverageTo(String id, boolean enforceExistence) throws Nd4jNoSuchWorkspaceException {
WorkspaceUtils.assertValidArray(this, "Cannot leverage INDArray to new workspace");
@@ -5518,16 +5278,6 @@ public abstract class BaseNDArray implements INDArray, Iterable {
return copy;
}
- /**
- * This method detaches INDArray from current Workspace, and attaches it to Workspace with a given Id, if a workspace
- * with the given ID is open and active.
- *
- * If the workspace does not exist, or is not active, the array is detached from any workspaces.
- *
- * @param id ID of the workspace to leverage to
- * @return The INDArray, leveraged to the specified workspace (if it exists and is active) otherwise the detached array
- * @see #leverageTo(String)
- */
public INDArray leverageOrDetach(String id){
if(!isAttached()){
return this;
@@ -5539,30 +5289,11 @@ public abstract class BaseNDArray implements INDArray, Iterable {
return leverageTo(id);
}
- /**
- * This method pulls this INDArray into current Workspace.
- *
- * PLEASE NOTE: If there's no current Workspace - INDArray returned as is
- *
- * @return Migrated INDArray or this if no current workspace
- * @see #migrate(boolean)
- */
@Override
public INDArray migrate() {
return migrate(false);
}
- /**
- * This method pulls this INDArray into current Workspace, or optionally detaches if no workspace is present.
- * That is:
- * If current workspace is present/active, INDArray is migrated to it.
- * If no current workspace is present/active, one of two things occur:
- * 1. If detachOnNoWs arg is true: if there is no current workspace, INDArray is detached
- * 2. If detachOnNoWs arg is false: this INDArray is returned as-is (no-op) - equivalent to {@link #migrate()}
- *
- * @param detachOnNoWs If true: detach on no WS. If false and no workspace: return this.
- * @return Migrated INDArray
- */
@Override
public INDArray migrate(boolean detachOnNoWs){
WorkspaceUtils.assertValidArray(this, "Cannot leverage INDArray to new workspace");
@@ -5778,17 +5509,11 @@ public abstract class BaseNDArray implements INDArray, Iterable {
throw new IllegalStateException("Unknown dataType: [" + type + "]");
}
- /**
- * This method returns true if this INDArray is special case: no-value INDArray
- *
- * @return
- */
@Override
public boolean isEmpty() {
return Shape.isEmpty(jvmShapeInfo.javaShapeInformation);
}
-
@Override
public long[] shapeInfoJava() {
return jvmShapeInfo.javaShapeInformation;
@@ -5880,8 +5605,6 @@ public abstract class BaseNDArray implements INDArray, Iterable {
throw new IllegalStateException("Cannot perform operation " + opName + " on empty array with datatype " + dataType());
}
-
-
@Override
public boolean closeable() {
if (released || isAttached())
diff --git a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ndarray/BaseSparseNDArray.java b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ndarray/BaseSparseNDArray.java
index c9c5cab37..ebe768cac 100644
--- a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ndarray/BaseSparseNDArray.java
+++ b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ndarray/BaseSparseNDArray.java
@@ -1296,7 +1296,7 @@ public abstract class BaseSparseNDArray implements ISparseNDArray {
}
@Override
- public float getFloat(long[] indices) {
+ public float getFloat(long... indices) {
return 0;
}
@@ -1321,7 +1321,7 @@ public abstract class BaseSparseNDArray implements ISparseNDArray {
}
@Override
- public float getFloat(int[] indices) {
+ public float getFloat(int... indices) {
return 0;
}
@@ -1514,23 +1514,16 @@ public abstract class BaseSparseNDArray implements ISparseNDArray {
return isMatrix() && rows() == columns();
}
- /**
- * Checks whether the matrix is a row vector.
- */
@Override
public boolean isRowVector() {
return rank == 2 && rows == 1;
}
- /**
- * Checks whether the matrix is a column vector.
- */
@Override
public boolean isColumnVector() {
return rank == 2 && columns == 1;
}
-
@Override
public boolean isMatrix() {
if (isMatrix != null)
diff --git a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ndarray/BaseSparseNDArrayCOO.java b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ndarray/BaseSparseNDArrayCOO.java
index 85a7ec5ce..b50200dbb 100644
--- a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ndarray/BaseSparseNDArrayCOO.java
+++ b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ndarray/BaseSparseNDArrayCOO.java
@@ -683,12 +683,12 @@ public class BaseSparseNDArrayCOO extends BaseSparseNDArray {
}
@Override
- public float getFloat(int[] indices) {
+ public float getFloat(int... indices) {
return (float) getDouble(indices);
}
@Override
- public float getFloat(long[] indices) {
+ public float getFloat(long... indices) {
return 0;
}
@@ -860,11 +860,6 @@ public class BaseSparseNDArrayCOO extends BaseSparseNDArray {
return Nd4j.createBuffer(Doubles.toArray(val));
}
- /**
- * Returns the indices of non-zero element of the vector
- *
- * @return indices in Databuffer
- * */
@Override
public DataBuffer getVectorCoordinates() {
int idx;
@@ -884,10 +879,6 @@ public class BaseSparseNDArrayCOO extends BaseSparseNDArray {
return Nd4j.createBuffer(temp);
}
- /**
- * Converts the sparse ndarray into a dense one
- * @return a dense ndarray
- */
@Override
public INDArray toDense() {
// TODO support view conversion
@@ -1131,11 +1122,6 @@ public class BaseSparseNDArrayCOO extends BaseSparseNDArray {
return null;
}
- /**
- * This method returns true if this INDArray is special case: no-value INDArray
- *
- * @return
- */
@Override
public boolean isEmpty() {
return false;
diff --git a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ndarray/INDArray.java b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ndarray/INDArray.java
index f9f04cc43..23e7f2fcc 100644
--- a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ndarray/INDArray.java
+++ b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ndarray/INDArray.java
@@ -1912,6 +1912,9 @@ public interface INDArray extends Serializable, AutoCloseable {
*/
INDArray getScalar(int... indices);
+ /**
+ * See {@link #getScalar(int[])}
+ */
INDArray getScalar(long... indices);
/**
@@ -1921,12 +1924,32 @@ public interface INDArray extends Serializable, AutoCloseable {
*/
int getInt(int... indices);
+ /**
+ * Get a long value at the specified index.
+ * @param index Index to get the integer at.
+ * @return long value at the specified index
+ */
long getLong(long index);
+ /**
+ * Get a long value at the specified indices.
+ * @param indices Indices to get the double at. Number of indices must match the array rank.
+ * @return long value at the specified index
+ */
long getLong(long... indices);
+ /**
+ * Get the numeric value at the specified index.
+ * @param index index to retreive.
+ * @return numeric value at the specified index.
+ */
Number getNumber(long index);
+ /**
+ * Get a numeric value at the specified indices.
+ * @param indices Indices to get the value from. Number of indices must match the array rank.
+ * @return Numeric value at the specified index
+ */
Number getNumber(long... indices);
/**
@@ -1936,6 +1959,9 @@ public interface INDArray extends Serializable, AutoCloseable {
*/
double getDouble(int... indices);
+ /**
+ * See {@link #getDouble(int[])}
+ */
double getDouble(long... indices);
/**
@@ -1944,10 +1970,12 @@ public interface INDArray extends Serializable, AutoCloseable {
* @param indices the indices to getScalar
* @return the array with the specified elements
*/
- float getFloat(int[] indices);
-
- float getFloat(long[] indices);
+ float getFloat(int... indices);
+ /**
+ * See {@link #getFloat(int...)}
+ */
+ float getFloat(long... indices);
/**
* Get the double value at the specified linear index in the array
@@ -1962,7 +1990,7 @@ public interface INDArray extends Serializable, AutoCloseable {
*
* @param i Dimension 0 (row) index
* @param j Dimension 1 (column) index
- * @return
+ * @return double value at the specified indices
*/
double getDouble(long i, long j);
@@ -1984,7 +2012,6 @@ public interface INDArray extends Serializable, AutoCloseable {
*/
float getFloat(long i, long j);
-
/**
* Returns a copy of this ndarray
*
@@ -2007,7 +2034,6 @@ public interface INDArray extends Serializable, AutoCloseable {
*/
INDArray ravel();
-
/**
* Returns a flattened version (row vector) of this ndarray
*
@@ -2015,10 +2041,9 @@ public interface INDArray extends Serializable, AutoCloseable {
*/
INDArray ravel(char order);
-
/**
- *
- * @param data
+ * Set the data for this ndarray.
+ * @param data new value for the ndarray data.
*/
void setData(DataBuffer data);
@@ -2046,15 +2071,15 @@ public interface INDArray extends Serializable, AutoCloseable {
int getLeadingOnes();
/**
- * Returns the specified slice of this ndarray
+ * Returns the slice of this from the specified dimension
*
- * @param i the index of the slice to return
- * @param dimension the dimension to return the slice for
- * @return the specified slice of this ndarray
+ * @param i the index of the slice to return
+ * @param dimension the dimension of the slice to return
+ * @return the slice of this matrix from the specified dimension
+ * and dimension
*/
INDArray slice(long i, int dimension);
-
/**
* Returns the specified slice of this ndarray
*
@@ -2063,23 +2088,21 @@ public interface INDArray extends Serializable, AutoCloseable {
*/
INDArray slice(long i);
-
/**
- * Returns the start of where the ndarray is
- * for the underlying data
+ * Returns the start of where the ndarray is for the underlying data
*
* @return the starting offset
*/
long offset();
-
+ // TODO: Unused untested method.
/**
* Returns the start of where the ndarray is for the original data buffer
- * @return
+ *
+ * @return original offset.
*/
long originalOffset();
-
/**
* Reshapes the ndarray (can't change the length of the ndarray). Typically this will be a view, unless reshaping
* without copying is impossible.
@@ -2110,7 +2133,6 @@ public interface INDArray extends Serializable, AutoCloseable {
*/
INDArray reshape(char order, boolean enforceView, long... newShape);
-
/**
* Reshapes the ndarray (can't change the length of the ndarray). Typically this will be a view, unless reshaping
* without copying is impossible.
@@ -2121,7 +2143,6 @@ public interface INDArray extends Serializable, AutoCloseable {
*/
INDArray reshape(char order, int rows, int columns);
-
/**
* Reshapes the ndarray (can't change the length of the ndarray). Typically this will be a view, unless reshaping
* without copying is impossible.
@@ -2131,6 +2152,9 @@ public interface INDArray extends Serializable, AutoCloseable {
*/
INDArray reshape(long... newShape);
+ /**
+ * See {@link #reshape(long[])}
+ */
INDArray reshape(int[] shape);
/**
@@ -2150,7 +2174,6 @@ public interface INDArray extends Serializable, AutoCloseable {
*/
INDArray transpose();
-
/**
* Flip the rows and columns of a matrix, in-place
*
@@ -2216,8 +2239,11 @@ public interface INDArray extends Serializable, AutoCloseable {
* @return the newly permuted array
*/
INDArray dimShuffle(Object[] rearrange, int[] newOrder, boolean[] broadCastable);
- INDArray dimShuffle(Object[] rearrange, long[] newOrder, boolean[] broadCastable);
+ /**
+ * See {@link #dimShuffle(Object[], int[], boolean[])
+ */
+ INDArray dimShuffle(Object[] rearrange, long[] newOrder, boolean[] broadCastable);
/**
* Returns the specified column.
@@ -2336,7 +2362,6 @@ public interface INDArray extends Serializable, AutoCloseable {
*/
boolean isScalar();
-
/**
* Returns the shape of this ndarray
*
@@ -2346,7 +2371,7 @@ public interface INDArray extends Serializable, AutoCloseable {
/**
* Returns shape descriptor of this ndarray
- * @return
+ * @return shape descriptor
*/
LongShapeDescriptor shapeDescriptor();
@@ -2386,7 +2411,6 @@ public interface INDArray extends Serializable, AutoCloseable {
*/
INDArray broadcast(long... shape);
-
/**
* Broadcasts this ndarray to be the specified shape
*
@@ -2394,7 +2418,6 @@ public interface INDArray extends Serializable, AutoCloseable {
*/
INDArray broadcast(INDArray result);
-
/**
* Returns a scalar (individual element)
* of a scalar ndarray
@@ -2413,9 +2436,9 @@ public interface INDArray extends Serializable, AutoCloseable {
/**
* This method checks 2 INDArrays equality with given eps
*
- * @param o
+ * @param o INDArray to compare against.
* @param eps Epsilon value to use for the quality operation
- * @return
+ * @return True if ndarrays are equal within eps.
*/
boolean equalsWithEps(Object o, double eps);
@@ -2448,7 +2471,7 @@ public interface INDArray extends Serializable, AutoCloseable {
/**
* Remainder operator
* @param denominator the denominator
- * @return
+ * @return remainder
*/
INDArray remainder(INDArray denominator);
@@ -2456,75 +2479,86 @@ public interface INDArray extends Serializable, AutoCloseable {
* Remainder operator
* @param denominator the denominator
* @param result the result array to put this in
- * @return
+ * @return Remainder
*/
INDArray remainder(INDArray denominator, INDArray result);
/**
- * The scalar denominator
+ * The scalar remainder
* @param denominator the denominator as a scalar
- * @return
+ * @return Remainder
*/
INDArray remainder(Number denominator);
/**
- *
- * @param denominator
- * @param result
- * @return
+ * The scalar remainder
+ * @param denominator the denominator as a scalar
+ * @param result the result array to put this in
+ * @return Remainder
*/
INDArray remainder(Number denominator, INDArray result);
+ // TODO: Unused untested method.
/**
* In place remainder
- * @param denominator
- * @return
+ * @param denominator the denominator
+ * @return Remainder
*/
INDArray remainderi(INDArray denominator);
+ // TODO: Unused untested method.
/**
* In place remainder
- * @param denominator
- * @return
+ * @param denominator the denominator
+ * @return Remainder
*/
INDArray remainderi(Number denominator);
/**
* remainder of division
- * @param denominator the array of denominators for each element
- * in this array
- * @return
+ * @param denominator the array of denominators for each element in this array
+ * @return array of remainders
*/
INDArray fmod(INDArray denominator);
/**
* remainder of division
- * @param denominator the
+ * @param denominator the array of denominators for each element in this array
* @param result the result array
- * @return
+ * @return array of remainders
*/
INDArray fmod(INDArray denominator, INDArray result);
/**
+ * remainder of division by scalar.
*
- * @param denominator
- * @return
+ * @param denominator the denominator
+ * @return array of remainders
*/
INDArray fmod(Number denominator);
+ /**
+ * remainder of division by scalar.
+ *
+ * @param denominator the denominator
+ * @param result the result array
+ * @return array of remainders
+ */
INDArray fmod(Number denominator, INDArray result);
+ // TODO: Unused untested method.
/**
* In place fmod
- * @param denominator
- * @return
+ * @param denominator the array of denominators for each element in this array
+ * @return array of remainders
*/
INDArray fmodi(INDArray denominator);
+ // TODO: Unused untested method.
/**
* In place fmod
- * @param denominator
- * @return
+ * @param denominator the denominator as a scalar
+ * @return array of remainders
*/
INDArray fmodi(Number denominator);
@@ -2546,7 +2580,7 @@ public interface INDArray extends Serializable, AutoCloseable {
* This method checks, if given attached INDArray is still in scope of its parent Workspace
*
* PLEASE NOTE: if this INDArray isn't attached to any Workspace, this method will return true
- * @return
+ * @return true if attached to workspace.
*/
boolean isInScope();
@@ -2563,12 +2597,11 @@ public interface INDArray extends Serializable, AutoCloseable {
/**
* This method detaches INDArray from current Workspace, and attaches it to Workspace above, if any.
*
- * PLEASE NOTE: If this INDArray instance is
- * NOT attached - it will be returned unmodified.
+ * PLEASE NOTE: If this INDArray instance is NOT attached - it will be returned unmodified.
* PLEASE NOTE: If current Workspace is the top-tier one,
* effect will be equal to detach() call - detached copy will be returned
*
- * @return
+ * @return this ndarray or a detached copy.
*/
INDArray leverage();
@@ -2576,8 +2609,6 @@ public interface INDArray extends Serializable, AutoCloseable {
* This method detaches INDArray from current Workspace, and attaches it to Workspace with a given Id - if a workspace
* with that ID exists. If no workspace with the specified ID exists, the current INDArray is returned unmodified.
*
- * @param id ID of the workspace to leverage to
- * @return
* @see #leverageTo(String, boolean)
*/
INDArray leverageTo(String id);
@@ -2635,7 +2666,7 @@ public interface INDArray extends Serializable, AutoCloseable {
* This method returns percentile value for this INDArray
*
* @param percentile target percentile in range of 0..100
- * @return
+ * @return percentile value
*/
Number percentileNumber(Number percentile);
@@ -2648,29 +2679,28 @@ public interface INDArray extends Serializable, AutoCloseable {
/**
* This method returns median along given dimension(s)
- * @param dimension
+ * @param dimension Dimension to calculate median
* @return Median along specified dimensions
*/
INDArray median(int... dimension);
/**
- * This method returns median along given dimension(s)
+ * This method returns percentile along given dimension(s)
* @param percentile target percentile in range of 0..100
* @param dimension Dimension to calculate percentile for
- * @return
+ * @return array with percentiles
*/
INDArray percentile(Number percentile, int... dimension);
- /**
+ /*
* ------------ Sparse methods ------------
*/
-
/**
* Return a array of non-major pointers
* i.e. return the column indexes in case of row-major ndarray
* @return a DataBuffer of indexes
- * */
+ */
DataBuffer getVectorCoordinates();
/**
@@ -2681,7 +2711,7 @@ public interface INDArray extends Serializable, AutoCloseable {
/**
* Return the number of non-null element
* @return nnz
- * */
+ */
int nnz();
/**
@@ -2691,15 +2721,18 @@ public interface INDArray extends Serializable, AutoCloseable {
* */
SparseFormat getFormat();
+ //TODO: Undocumented but often used method.
int[] flags();
+ //TODO: Undocumented but often used method.
int[] hiddenDimensions();
+ //TODO: Undocumented but often used method.
int[] sparseOffsets();
+ //TODO: Undocumented but often used method.
int underlyingRank();
-
/**
* Add an {@link INDArray}
* to flatbuffers builder
@@ -2710,19 +2743,19 @@ public interface INDArray extends Serializable, AutoCloseable {
/**
* This method returns true if this INDArray is special case: no-value INDArray
- * @return
+ * @return True if empty.
*/
boolean isEmpty();
/**
* This method returns shapeInformation as jvm long array
- * @return
+ * @return shapeInformation
*/
long[] shapeInfoJava();
/**
* This method returns dtype for this INDArray
- * @return
+ * @return Datattype
*/
DataType dataType();
@@ -2734,45 +2767,45 @@ public interface INDArray extends Serializable, AutoCloseable {
/**
* This method checks if this INDArray instance is one of integer types
- * @return
+ * @return true if integer type
*/
boolean isZ();
/**
* This method checks if this INDArray instance has boolean type
- * @return
+ * @return true if boolean type.
*/
boolean isB();
/**
* This method checks if this INDArray instance has String type
- * @return
+ * @return true if string type.
*/
boolean isS();
/**
* This method cast elements of this INDArray to new data type
*
- * @param dataType
- * @return
+ * @param dataType new datatype.
+ * @return this if datatype matches, otherwise a new array of specified datatype.
*/
INDArray castTo(DataType dataType);
/**
* This method checks if all elements within this array are non-zero (or true, in case of boolean)
- * @return
+ * @return true if all non-zero.
*/
boolean all();
/**
* This method checks if any of the elements within this array are non-zero (or true, in case of boolean)
- * @return
+ * @return true if any non-zero.
*/
boolean any();
/**
* This method checks if any of the elements within this array are non-zero (or true, in case of boolean)
- * @return
+ * @return true if any non-zero
*/
boolean none();
@@ -2798,35 +2831,29 @@ public interface INDArray extends Serializable, AutoCloseable {
/**
* This method returns empty array with the same dtype/order/shape as this one
- * @return
+ * @return empty array with the same dtype/order/shape
*/
INDArray like();
/**
* This method returns uninitialized array with the same dtype/order/shape as this one
- * @return
+ * @return uninitialized array with the same dtype/order/shape
*/
INDArray ulike();
- /**
- * This method returns array with gains for Barnes-Hut-Tsne algorithm
- * @return
- */
- //INDArray[] gains(INDArray input, INDArray gradx, INDArray epsilon);
-
/**
* Get a string representation of the array with configurable formatting
* @param options format options
*/
String toString(@NonNull NDArrayStrings options);
-
/**
* Get a string representation of the array
*
* @param maxElements Summarize if more than maxElements in the array
* @param forceSummarize Force a summary instead of a full print
* @param precision The number of decimals to print. Doesn't print trailing 0s if negative
+ * @return string representation of the array
*/
String toString(long maxElements, boolean forceSummarize, int precision);
diff --git a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ndarray/ISparseNDArray.java b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ndarray/ISparseNDArray.java
index e7dd5d1db..7eac57c8a 100644
--- a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ndarray/ISparseNDArray.java
+++ b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ndarray/ISparseNDArray.java
@@ -28,28 +28,11 @@ public interface ISparseNDArray extends INDArray {
*
* */
- /**
- * Return a array of non-major pointers
- * i.e. return the column indexes in case of row-major ndarray
- * @return a DataBuffer of indexes
- * */
DataBuffer getVectorCoordinates();
- /**
- * Return a dense representation of the sparse ndarray
- * */
INDArray toDense();
- /**
- * Return the number of non-null element
- * @return nnz
- * */
int nnz();
- /**
- * Return the sparse format (i.e COO, CSR, ...)
- * @return format
- * @see SparseFormat
- * */
SparseFormat getFormat();
}
diff --git a/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-cuda/src/main/java/org/nd4j/linalg/jcublas/JCublasNDArray.java b/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-cuda/src/main/java/org/nd4j/linalg/jcublas/JCublasNDArray.java
index eb0db01a3..79d87a01e 100644
--- a/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-cuda/src/main/java/org/nd4j/linalg/jcublas/JCublasNDArray.java
+++ b/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-cuda/src/main/java/org/nd4j/linalg/jcublas/JCublasNDArray.java
@@ -544,13 +544,6 @@ public class JCublasNDArray extends BaseNDArray {
return LongShapeDescriptor.fromShape(shape(), stride(), elementWiseStride(), ordering(), dataType(), isEmpty());
}
- /**
- * This method does direct array copy. Impossible to use on views or mixed orders.
- *
- * PLEASE NOTE: YOU SHOULD NEVER USE THIS METHOD, UNLESS YOU 100% CLEAR ABOUT IT
- *
- * @return
- */
@Override
public INDArray unsafeDuplication() {
return unsafeDuplication(true);
@@ -717,14 +710,6 @@ public class JCublasNDArray extends BaseNDArray {
return copy;
}
-
- /**
- * This method pulls this INDArray into current Workspace.
- *
- * PLEASE NOTE: If there's no current Workspace - INDArray returned as is
- *
- * @return
- */
@Override
public INDArray migrate() {
WorkspaceUtils.assertValidArray(this, "Cannot leverage INDArray to new workspace");
diff --git a/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-cuda/src/main/java/org/nd4j/linalg/jcublas/JcusparseNDArrayCSR.java b/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-cuda/src/main/java/org/nd4j/linalg/jcublas/JcusparseNDArrayCSR.java
index 2698c299f..ae738f5c3 100644
--- a/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-cuda/src/main/java/org/nd4j/linalg/jcublas/JcusparseNDArrayCSR.java
+++ b/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-cuda/src/main/java/org/nd4j/linalg/jcublas/JcusparseNDArrayCSR.java
@@ -114,11 +114,6 @@ public class JcusparseNDArrayCSR extends BaseSparseNDArrayCSR {
throw new UnsupportedOperationException();
}
- /**
- * This method returns true if this INDArray is special case: no-value INDArray
- *
- * @return
- */
@Override
public boolean isEmpty() {
throw new UnsupportedOperationException();
diff --git a/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-native/src/main/java/org/nd4j/linalg/cpu/nativecpu/NDArray.java b/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-native/src/main/java/org/nd4j/linalg/cpu/nativecpu/NDArray.java
index dc9ab6417..a6cd47fb0 100644
--- a/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-native/src/main/java/org/nd4j/linalg/cpu/nativecpu/NDArray.java
+++ b/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-native/src/main/java/org/nd4j/linalg/cpu/nativecpu/NDArray.java
@@ -459,13 +459,6 @@ public class NDArray extends BaseNDArray {
return new BaseNDArrayProxy(this);
}
- /**
- * This method does direct array copy. Impossible to use on views or mixed orders.
- *
- * PLEASE NOTE: YOU SHOULD NEVER USE THIS METHOD, UNLESS YOU 100% CLEAR ABOUT IT
- *
- * @return
- */
@Override
public INDArray unsafeDuplication() {
WorkspaceUtils.assertValidArray(this, "Cannot duplicate array");
diff --git a/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-native/src/main/java/org/nd4j/linalg/cpu/nativecpu/SparseNDArrayCSR.java b/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-native/src/main/java/org/nd4j/linalg/cpu/nativecpu/SparseNDArrayCSR.java
index b35662b98..f73f9dece 100644
--- a/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-native/src/main/java/org/nd4j/linalg/cpu/nativecpu/SparseNDArrayCSR.java
+++ b/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-native/src/main/java/org/nd4j/linalg/cpu/nativecpu/SparseNDArrayCSR.java
@@ -124,11 +124,6 @@ public class SparseNDArrayCSR extends BaseSparseNDArrayCSR {
throw new UnsupportedOperationException();
}
- /**
- * This method returns true if this INDArray is special case: no-value INDArray
- *
- * @return
- */
@Override
public boolean isEmpty() {
return false;