Class FloatMatrixDataDense

    • Constructor Detail

      • FloatMatrixDataDense

        public FloatMatrixDataDense​(float[] matrixSI,
                                    int rows,
                                    int cols)
                             throws ValueRuntimeException
        Create a matrix with dense data.
        Parameters:
        matrixSI - float[]; the data to store
        rows - int; the number of rows
        cols - int; the number of columns
        Throws:
        ValueRuntimeException - in case rows * cols != matrixSI.length
      • FloatMatrixDataDense

        public FloatMatrixDataDense​(float[][] matrixSI)
                             throws ValueRuntimeException
        Create a matrix with dense data. The float array is of the form d[rows][columns] so each value can be found with f[row][column].
        Parameters:
        matrixSI - float[][]; the data to store
        Throws:
        NullPointerException - when matrixSI is null
        ValueRuntimeException - in case matrix is ragged
    • Method Detail

      • cardinality

        public final int cardinality()
        Compute and return the number of non-zero cells in this indexed value.
        Specified by:
        cardinality in class AbstractStorage<FloatMatrixData>
        Returns:
        int; the number of non-zero cells
      • assign

        public final FloatMatrixDataDense assign​(FloatFunction floatFunction)
        Apply an operation to each cell.
        Specified by:
        assign in class FloatMatrixData
        Parameters:
        floatFunction - FloatFunction; the operation to apply
        Returns:
        FloatMatrixData; this (modified) double vector data object
      • assign

        public final FloatMatrixDataDense assign​(FloatFunction2 floatFunction,
                                                 FloatMatrixData right)
        Apply a binary operation on a cell by cell basis.
        Specified by:
        assign in class FloatMatrixData
        Parameters:
        floatFunction - FloatFunction2; the binary operation to apply
        right - FloatMatrixData; the right operand for the binary operation
        Returns:
        FloatMatrixData; this (modified) double matrix data object
      • toDense

        public final FloatMatrixDataDense toDense()
        Return the data of this matrix in dense storage format.
        Specified by:
        toDense in class FloatMatrixData
        Returns:
        FloatMatrixDataDense; the dense transformation of this data
      • toSparse

        public final FloatMatrixDataSparse toSparse()
        Return the data of this matrix in sparse storage format.
        Specified by:
        toSparse in class FloatMatrixData
        Returns:
        FloatMatrixDataSparse; the sparse transformation of this data
      • getSI

        public final float getSI​(int row,
                                 int col)
        Retrieve one value from this data.
        Specified by:
        getSI in class FloatMatrixData
        Parameters:
        row - int; the row number to get the value for
        col - int; the column number to get the value for
        Returns:
        the value at the [row, col] point
      • setSI

        public final void setSI​(int row,
                                int col,
                                float valueSI)
        Sets a value at the [row, col] point in the matrix.
        Specified by:
        setSI in class FloatMatrixData
        Parameters:
        row - int; the row number to set the value for
        col - int; the column number to set the value for
        valueSI - float; the value at the index
      • getDenseMatrixSI

        public final float[][] getDenseMatrixSI()
        Create and return a deep copy of the data in dense format. The float array is of the form f[rows][columns] so each value can be found with f[row][column].
        Specified by:
        getDenseMatrixSI in class FloatMatrixData
        Returns:
        float[][]; a safe, dense copy of matrixSI as a matrix
      • getDoubleDenseMatrixSI

        public final double[][] getDoubleDenseMatrixSI()
        Create and return a deep copy of the data in dense format. The double array is of the form d[rows][columns] so each value can be found with d[row][column].
        Specified by:
        getDoubleDenseMatrixSI in class FloatMatrixData
        Returns:
        double[][]; a safe, dense copy of matrixSI as a matrix
      • plus

        public FloatMatrixData plus​(FloatMatrixData right)
                             throws ValueRuntimeException
        Add two matrices on a cell-by-cell basis. If both matrices are sparse, a sparse matrix is returned, otherwise a dense matrix is returned.
        Specified by:
        plus in class FloatMatrixData
        Parameters:
        right - FloatMatrixData; the other data object to add
        Returns:
        the sum of this data object and the other data object
        Throws:
        ValueRuntimeException - if matrices have different lengths
      • minus

        public final FloatMatrixDataDense minus​(FloatMatrixData right)
        Subtract two matrices on a cell-by-cell basis. If both matrices are sparse, a sparse matrix is returned, otherwise a dense matrix is returned.
        Specified by:
        minus in class FloatMatrixData
        Parameters:
        right - FloatMatrixData; the other data object to subtract
        Returns:
        the sum of this data object and the other data object
      • times

        public FloatMatrixData times​(FloatMatrixData right)
                              throws ValueRuntimeException
        Multiply two matrices on a cell-by-cell basis. If both matrices are dense, a dense matrix is returned, otherwise a sparse matrix is returned.
        Specified by:
        times in class FloatMatrixData
        Parameters:
        right - FloatMatrixData; the other data object to multiply with
        Returns:
        FloatMatrixData; a new double matrix data store holding the result of the multiplications
        Throws:
        ValueRuntimeException - if matrices have different sizes
      • divide

        public FloatMatrixData divide​(FloatMatrixData right)
                               throws ValueRuntimeException
        Divide two matrices on a cell-by-cell basis. If both matrices are dense, a dense matrix is returned, otherwise a sparse matrix is returned.
        Specified by:
        divide in class FloatMatrixData
        Parameters:
        right - FloatMatrixData; the other data object to divide by
        Returns:
        the sum of this data object and the other data object
        Throws:
        ValueRuntimeException - if matrices have different sizes