Package org.apache.sysds.runtime.matrix.data

# Class MatrixCell

java.lang.Object
org.apache.sysds.runtime.matrix.data.MatrixValue
org.apache.sysds.runtime.matrix.data.MatrixCell

All Implemented Interfaces:
  `Serializable`, `Comparable`, `org.apache.hadoop.io.Writable`, `org.apache.hadoop.io.WritableComparable`

Direct Known Subclasses:
  `WeightedCell`

public class MatrixCell extends MatrixValue implements Serializable

See Also:
  - Serialized Form

## Nested Class Summary

## Nested classes/interfaces inherited from class org.apache.sysds.runtime.matrix.data.MatrixValue

`MatrixValue.CellIndex`

## Constructor Summary

Constructors
Constructor
Description
`MatrixCell()`
`MatrixCell(double v)`

## Method Summary

Modifier and Type
Method
Description
`MatrixValue`
`aggregateUnaryOperations(AggregateUnaryOperator op, MatrixValue result, int blen, MatrixIndexes indexesIn, boolean inCP)`
`void`
`append(MatrixValue valueIn2, ArrayList<IndexedMatrixValue> outlist, int blen, boolean cbind, boolean m2IsLast, int nextNCol)`
`MatrixValue`
`binaryOperations(BinaryOperator op, MatrixValue thatValue, MatrixValue result)`
`MatrixValue`
`binaryOperationsInPlace(BinaryOperator op, MatrixValue thatValue)`
`int`
`compareTo(Object o)`
`int`
`compareTo(MatrixCell o)`
`void`
`copy(MatrixValue that)`
Copy that MatrixValue into this MatrixValue.
`void`
`copy(MatrixValue that, boolean sp)`
Copy that MatrixValue into this MatrixValue.
`void`
`ctableOperations(Operator op, double scalarThat, double scalarThat2, CTableMap resultMap, MatrixBlock resultBlock)`
`void`
`ctableOperations(Operator op, double scalarThat, MatrixValue that2, CTableMap resultMap, MatrixBlock resultBlock)`
`void`
`ctableOperations(Operator op, MatrixIndexes ix1, double scalarThat, boolean left, int blen, CTableMap resultMap, MatrixBlock resultBlock)`
`void`
`ctableOperations(Operator op, MatrixValue that, double scalarThat2, boolean ignoreZeros, CTableMap ctableResult, MatrixBlock ctableResultBlock)`
`void`
`ctableOperations(Operator op, MatrixValue that, MatrixValue that2, CTableMap resultMap, MatrixBlock resultBlock)`
`void`
`denseScalarOperationsInPlace(ScalarOperator op)`
`boolean`
`equals(Object o)`
`double`
`get(int r, int c)`
`long`
`getNonZeros()`
`int`
`getNumColumns()`
`int`
`getNumRows()`
`double`
`getValue()`
`int`
`hashCode()`
`void`
`incrementalAggregate(AggregateOperator aggOp, MatrixValue newWithCorrection)`
`void`
`incrementalAggregate(AggregateOperator aggOp, MatrixValue correction, MatrixValue newWithCorrection, boolean deep)`
`boolean`
`isEmpty()`
`boolean`
`isInSparseFormat()`
`void`
`readFields(DataInput in)`
`MatrixValue`
`reorgOperations(ReorgOperator op, MatrixValue result, int startRow, int startColumn, int length)`
`MatrixValue`
`replaceOperations(MatrixValue result, double pattern, double replacement)`
`void`
`reset()`
`void`
`reset(int rl, int cl)`
`void`
`reset(int rl, int cl, boolean sp)`
`void`
`reset(int rl, int cl, boolean sp, long nnzs)`
`void`
`reset(int rl, int cl, double v)`
`MatrixValue`
`scalarOperations(ScalarOperator op, MatrixValue result)`
`void`
`set(int r, int c, double v)`
`void`
`setValue(double v)`
`void`
`slice(ArrayList<IndexedMatrixValue> outlist, IndexRange range, int rowCut, int colCut, int blen, int boundaryRlen, int boundaryClen)`
Slice out up to 4 matrixBlocks that are separated by the row and col Cuts.
`void`
`sparseScalarOperationsInPlace(ScalarOperator op)`
`void`
`sparseUnaryOperationsInPlace(UnaryOperator op)`
`MatrixValue`
`unaryOperations(UnaryOperator op, MatrixValue result)`
`void`
`write(DataOutput out)`
`MatrixValue`
`zeroOutOperations(MatrixValue result, IndexRange range)`

### Methods inherited from class org.apache.sysds.runtime.matrix.data.MatrixValue

`aggregateUnaryOperations`

### Methods inherited from class java.lang.Object

`getClass, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### MatrixCell

public MatrixCell()

### MatrixCell

public MatrixCell(double v)

## Method Details

### setValue

public void setValue(double v)

### getValue

public double getValue()

### copy

public void copy(MatrixValue that, boolean sp)
Description copied from class: `MatrixValue`
Copy that MatrixValue into this MatrixValue. But select sparse destination block depending on boolean parameter.

Specified by:
  `copy` in class `MatrixValue`
Parameters:
  `that` - object to copy the values into.
  `sp` - boolean specifying if output should be forced sparse or dense. (only applicable if the 'that' is a MatrixBlock)

### copy

public void copy(MatrixValue that)
Description copied from class: `MatrixValue`
Copy that MatrixValue into this MatrixValue. If the MatrixValue is a MatrixBlock evaluate the sparsity of the original matrix, and copy into either a sparse or a dense matrix.

Specified by:
  `copy` in class `MatrixValue`
Parameters:
  `that` - object to copy the values into.

### getNonZeros

public long getNonZeros()

Specified by:
  `getNonZeros` in class `MatrixValue`

### getNumColumns

public int getNumColumns()

Specified by:
  `getNumColumns` in class `MatrixValue`

### getNumRows

public int getNumRows()

Specified by:
  `getNumRows` in class `MatrixValue`

### get

public double get(int r, int c)

Specified by:
  `get` in class `MatrixValue`

### isInSparseFormat

public boolean isInSparseFormat()

Specified by:
  `isInSparseFormat` in class `MatrixValue`

### isEmpty

public boolean isEmpty()

Specified by:
  `isEmpty` in class `MatrixValue`

### readFields

public void readFields(DataInput in) throws IOException

Specified by:
  `readFields` in interface `org.apache.hadoop.io.Writable`
Throws:
  `IOException`

### reset

public void reset()

Specified by:
  `reset` in class `MatrixValue`

### reset

public void reset(int rl, int cl)

Specified by:
  `reset` in class `MatrixValue`

### reset

public void reset(int rl, int cl, boolean sp)

Specified by:
  `reset` in class `MatrixValue`

### reset

public void reset(int rl, int cl, boolean sp, long nnzs)

Specified by:
  `reset` in class `MatrixValue`

### reset

public void reset(int rl, int cl, double v)

Specified by:
  `reset` in class `MatrixValue`

### set

public void set(int r, int c, double v)

Specified by:
  `set` in class `MatrixValue`

### write

public void write(DataOutput out) throws IOException

Specified by:
  `write` in interface `org.apache.hadoop.io.Writable`
Throws:
  `IOException`

### binaryOperations

public MatrixValue binaryOperations(BinaryOperator op, MatrixValue thatValue, MatrixValue result)

Specified by:
  `binaryOperations` in class `MatrixValue`

### binaryOperationsInPlace

public MatrixValue binaryOperationsInPlace(BinaryOperator op, MatrixValue thatValue)

Specified by:
  `binaryOperationsInPlace` in class `MatrixValue`

### denseScalarOperationsInPlace

public void denseScalarOperationsInPlace(ScalarOperator op)

### reorgOperations

public MatrixValue reorgOperations(ReorgOperator op, MatrixValue result, int startRow, int startColumn, int length)

Specified by:
  `reorgOperations` in class `MatrixValue`

### scalarOperations

public MatrixValue scalarOperations(ScalarOperator op, MatrixValue result)

Specified by:
  `scalarOperations` in class `MatrixValue`

### sparseScalarOperationsInPlace

public void sparseScalarOperationsInPlace(ScalarOperator op)

### sparseUnaryOperationsInPlace

public void sparseUnaryOperationsInPlace(UnaryOperator op)

### unaryOperations

public MatrixValue unaryOperations(UnaryOperator op, MatrixValue result)

Specified by:
  `unaryOperations` in class `MatrixValue`

### compareTo

public int compareTo(MatrixCell o)

### compareTo

public int compareTo(Object o)

Specified by:
  `compareTo` in interface `Comparable`

### equals

public boolean equals(Object o)

Overrides:
  `equals` in class `Object`

### hashCode

public int hashCode()

Overrides:
  `hashCode` in class `Object`

### incrementalAggregate

public void incrementalAggregate(AggregateOperator aggOp, MatrixValue correction, MatrixValue newWithCorrection, boolean deep)

Specified by:
  `incrementalAggregate` in class `MatrixValue`

### zeroOutOperations

public MatrixValue zeroOutOperations(MatrixValue result, IndexRange range)

Specified by:
  `zeroOutOperations` in class `MatrixValue`

### incrementalAggregate

public void incrementalAggregate(AggregateOperator aggOp, MatrixValue newWithCorrection)

Specified by:
  `incrementalAggregate` in class `MatrixValue`

### ctableOperations

public void ctableOperations(Operator op, MatrixValue that, MatrixValue that2, CTableMap resultMap, MatrixBlock resultBlock)

Specified by:
  `ctableOperations` in class `MatrixValue`

### ctableOperations

public void ctableOperations(Operator op, MatrixValue that, double scalarThat2, boolean ignoreZeros, CTableMap ctableResult, MatrixBlock ctableResultBlock)

Specified by:
  `ctableOperations` in class `MatrixValue`

### ctableOperations

public void ctableOperations(Operator op, double scalarThat, double scalarThat2, CTableMap resultMap, MatrixBlock resultBlock)

Specified by:
  `ctableOperations` in class `MatrixValue`

### ctableOperations

public void ctableOperations(Operator op, MatrixIndexes ix1, double scalarThat, boolean left, int blen, CTableMap resultMap, MatrixBlock resultBlock)

Specified by:
  `ctableOperations` in class `MatrixValue`

### ctableOperations

public void ctableOperations(Operator op, double scalarThat, MatrixValue that2, CTableMap resultMap, MatrixBlock resultBlock)

Specified by:
  `ctableOperations` in class `MatrixValue`

### slice

public void slice(ArrayList<IndexedMatrixValue> outlist, IndexRange range, int rowCut, int colCut, int blen, int boundaryRlen, int boundaryClen)
Description copied from class: `MatrixValue`
Slice out up to 4 matrixBlocks that are separated by the row and col Cuts. This is used in the context of spark execution to distributed sliced out matrix blocks of correct block size.

Specified by:
  `slice` in class `MatrixValue`
Parameters:
  `outlist` - The output matrix blocks that is extracted from the matrix
  `range` - An index range containing overlapping information.
  `rowCut` - The row to cut and split the matrix.
  `colCut` - The column to cut ans split the matrix.
  `blen` - The Block size of the output matrices.
  `boundaryRlen` - The row length of the edge case matrix block, used for the final blocks that does not have enough rows to construct a full block.
  `boundaryClen` - The col length of the edge case matrix block, used for the final blocks that does not have enough cols to construct a full block.

### replaceOperations

public MatrixValue replaceOperations(MatrixValue result, double pattern, double replacement)

Specified by:
  `replaceOperations` in class `MatrixValue`

### aggregateUnaryOperations

public MatrixValue aggregateUnaryOperations(AggregateUnaryOperator op, MatrixValue result, int blen, MatrixIndexes indexesIn, boolean inCP)

Specified by:
  `aggregateUnaryOperations` in class `MatrixValue`

### append

public void append(MatrixValue valueIn2, ArrayList<IndexedMatrixValue> outlist, int blen, boolean cbind, boolean m2IsLast, int nextNCol)

Specified by:
  `append` in class `MatrixValue`