Class MatrixValue

java.lang.Object
org.apache.sysds.runtime.matrix.data.MatrixValue
All Implemented Interfaces:
Comparable, org.apache.hadoop.io.Writable, org.apache.hadoop.io.WritableComparable
Direct Known Subclasses:
MatrixBlock, MatrixCell

public abstract class MatrixValue extends Object implements org.apache.hadoop.io.WritableComparable
  • Constructor Details

    • MatrixValue

      public MatrixValue()
    • MatrixValue

      public MatrixValue(MatrixValue that)
  • Method Details

    • getNumRows

      public abstract int getNumRows()
    • getNumColumns

      public abstract int getNumColumns()
    • getNonZeros

      public abstract long getNonZeros()
    • set

      public abstract void set(int r, int c, double v)
    • get

      public abstract double get(int r, int c)
    • isInSparseFormat

      public abstract boolean isInSparseFormat()
    • isEmpty

      public abstract boolean isEmpty()
    • reset

      public abstract void reset()
    • reset

      public abstract void reset(int rl, int cl)
    • reset

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

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

      public abstract void reset(int rl, int cl, double v)
    • copy

      public abstract void copy(MatrixValue that)
      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.
      Parameters:
      that - object to copy the values into.
    • copy

      public abstract void copy(MatrixValue that, boolean sp)
      Copy that MatrixValue into this MatrixValue. But select sparse destination block depending on boolean parameter.
      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)
    • scalarOperations

      public abstract MatrixValue scalarOperations(ScalarOperator op, MatrixValue result)
    • binaryOperations

      public abstract MatrixValue binaryOperations(BinaryOperator op, MatrixValue thatValue, MatrixValue result)
    • binaryOperationsInPlace

      public abstract MatrixValue binaryOperationsInPlace(BinaryOperator op, MatrixValue thatValue)
    • reorgOperations

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

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

      public abstract void ctableOperations(Operator op, MatrixValue that, double scalar_that2, boolean ignoreZeros, CTableMap resultMap, MatrixBlock resultBlock)
    • ctableOperations

      public abstract void ctableOperations(Operator op, double scalar_that, double scalar_that2, CTableMap resultMap, MatrixBlock resultBlock)
    • ctableOperations

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

      public abstract void ctableOperations(Operator op, double scalarThat, MatrixValue that2, CTableMap ctableResult, MatrixBlock ctableResultBlock)
    • aggregateUnaryOperations

      public final MatrixValue aggregateUnaryOperations(AggregateUnaryOperator op, MatrixValue result, int blen, MatrixIndexes indexesIn)
    • aggregateUnaryOperations

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

      public abstract MatrixValue unaryOperations(UnaryOperator op, MatrixValue result)
    • incrementalAggregate

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

      public abstract void incrementalAggregate(AggregateOperator aggOp, MatrixValue newWithCorrection)
    • zeroOutOperations

      public abstract MatrixValue zeroOutOperations(MatrixValue result, IndexRange range)
    • slice

      public abstract 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. This is used in the context of spark execution to distributed sliced out matrix blocks of correct block size.
      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 abstract MatrixValue replaceOperations(MatrixValue result, double pattern, double replacement)
    • append

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