Package org.ejml.data

Class DMatrixD1

  • All Implemented Interfaces:
    java.io.Serializable, DMatrix, Matrix, ReshapeMatrix
    Direct Known Subclasses:
    DMatrix1Row, DMatrixRBlock

    public abstract class DMatrixD1
    extends java.lang.Object
    implements ReshapeMatrix, DMatrix
    A generic abstract class for matrices whose data is stored in a single 1D array of doubles. The format of the elements in this array is not specified. For example row major, column major, and block row major are all common formats.
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      double[] data
      Where the raw data for the matrix is stored.
      int numCols
      Number of columns in the matrix.
      int numRows
      Number of rows in the matrix.
    • Constructor Summary

      Constructors 
      Constructor Description
      DMatrixD1()  
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      double div​(int index, double val)
      Divides the specified value to the internal data array at the specified index.

      Equivalent to: this.data[index] /= val;
      double get​(int index)
      Returns the value of the matrix at the specified internal array index.
      double[] getData()
      Used to get a reference to the internal data.
      abstract int getIndex​(int row, int col)
      Returns the internal array index for the specified row and column.
      int getNumCols()
      Returns the number of columns in this matrix.
      int getNumRows()
      Returns the number of rows in this matrix.
      DMatrixIterator iterator​(boolean rowMajor, int minRow, int minCol, int maxRow, int maxCol)
      Creates a new iterator for traversing through a submatrix inside this matrix.
      double minus​(int index, double val)
      Subtracts the specified value to the internal data array at the specified index.

      Equivalent to: this.data[index] -= val;
      double plus​(int index, double val)
      Adds the specified value to the internal data array at the specified index.

      Equivalent to: this.data[index] += val;
      void print()
      Prints the matrix to standard out using standard formatting.
      void print​(java.lang.String format)
      Prints the matrix to standard out with the specified formatting.
      void reshape​(int numRows, int numCols)
      Equivalent to invoking reshape(numRows,numCols,false);
      abstract void reshape​(int numRows, int numCols, boolean saveValues)
      Changes the number of rows and columns in the matrix, allowing its size to grow or shrink.
      double set​(int index, double val)
      Sets the element's value at the specified index.
      void set​(DMatrixD1 b)
      Sets the value of this matrix to be the same as the value of the provided matrix.
      void setData​(double[] data)
      Changes the internal array reference.
      void setNumCols​(int numCols)
      Sets the number of columns.
      void setNumRows​(int numRows)
      Sets the number of rows.
      double times​(int index, double val)
      Multiplies the specified value to the internal data array at the specified index.

      Equivalent to: this.data[index] *= val;
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • data

        public double[] data
        Where the raw data for the matrix is stored. The format is type dependent.
      • numRows

        public int numRows
        Number of rows in the matrix.
      • numCols

        public int numCols
        Number of columns in the matrix.
    • Constructor Detail

      • DMatrixD1

        public DMatrixD1()
    • Method Detail

      • getData

        public double[] getData()
        Used to get a reference to the internal data.
        Returns:
        Reference to the matrix's data.
      • setData

        public void setData​(double[] data)
        Changes the internal array reference.
      • getIndex

        public abstract int getIndex​(int row,
                                     int col)
        Returns the internal array index for the specified row and column.
        Parameters:
        row - Row index.
        col - Column index.
        Returns:
        Internal array index.
      • set

        public void set​(DMatrixD1 b)
        Sets the value of this matrix to be the same as the value of the provided matrix. Both matrices must have the same shape:

        aij = bij

        Parameters:
        b - The matrix that this matrix is to be set equal to.
      • get

        public double get​(int index)
        Returns the value of the matrix at the specified internal array index. The element at which row and column returned by this function depends upon the matrix's internal structure, e.g. row-major, column-major, or block.
        Parameters:
        index - Internal array index.
        Returns:
        Value at the specified index.
      • set

        public double set​(int index,
                          double val)
        Sets the element's value at the specified index. The element at which row and column modified by this function depends upon the matrix's internal structure, e.g. row-major, column-major, or block.
        Parameters:
        index - Index of element that is to be set.
        val - The new value of the index.
      • plus

        public double plus​(int index,
                           double val)

        Adds the specified value to the internal data array at the specified index.

        Equivalent to: this.data[index] += val;

        Intended for use in highly optimized code. The row/column coordinate of the modified element is dependent upon the matrix's internal structure.

        Parameters:
        index - The index which is being modified.
        val - The value that is being added.
      • minus

        public double minus​(int index,
                            double val)

        Subtracts the specified value to the internal data array at the specified index.

        Equivalent to: this.data[index] -= val;

        Intended for use in highly optimized code. The row/column coordinate of the modified element is dependent upon the matrix's internal structure.

        Parameters:
        index - The index which is being modified.
        val - The value that is being subtracted.
      • times

        public double times​(int index,
                            double val)

        Multiplies the specified value to the internal data array at the specified index.

        Equivalent to: this.data[index] *= val;

        Intended for use in highly optimized code. The row/column coordinate of the modified element is dependent upon the matrix's internal structure.

        Parameters:
        index - The index which is being modified.
        val - The value that is being multiplied.
      • div

        public double div​(int index,
                          double val)

        Divides the specified value to the internal data array at the specified index.

        Equivalent to: this.data[index] /= val;

        Intended for use in highly optimized code. The row/column coordinate of the modified element is dependent upon the matrix's internal structure.

        Parameters:
        index - The index which is being modified.
        val - The value that is being divided.
      • reshape

        public abstract void reshape​(int numRows,
                                     int numCols,
                                     boolean saveValues)

        Changes the number of rows and columns in the matrix, allowing its size to grow or shrink. If the saveValues flag is set to true, then the previous values will be maintained, but reassigned to new elements in a row-major ordering. If saveValues is false values will only be maintained when the requested size is less than or equal to the internal array size. The primary use for this function is to encourage data reuse and avoid unnecessarily declaring and initialization of new memory.

        Examples:
        [ 1 2 ; 3 4 ] → reshape( 2 , 3 , true ) = [ 1 2 3 ; 4 0 0 ]
        [ 1 2 ; 3 4 ] → reshape( 1 , 2 , true ) = [ 1 2 ]
        [ 1 2 ; 3 4 ] → reshape( 1 , 2 , false ) = [ 1 2 ]
        [ 1 2 ; 3 4 ] → reshape( 2 , 3 , false ) = [ 0 0 0 ; 0 0 0 ]

        Parameters:
        numRows - The new number of rows in the matrix.
        numCols - The new number of columns in the matrix.
        saveValues - If true then the value of each element will be save using a row-major reordering. Typically this should be false.
      • reshape

        public void reshape​(int numRows,
                            int numCols)
        Equivalent to invoking reshape(numRows,numCols,false);
        Specified by:
        reshape in interface ReshapeMatrix
        Parameters:
        numRows - The new number of rows in the matrix.
        numCols - The new number of columns in the matrix.
      • iterator

        public DMatrixIterator iterator​(boolean rowMajor,
                                        int minRow,
                                        int minCol,
                                        int maxRow,
                                        int maxCol)
        Creates a new iterator for traversing through a submatrix inside this matrix. It can be traversed by row or by column. Range of elements is inclusive, e.g. minRow = 0 and maxRow = 1 will include rows 0 and 1. The iteration starts at (minRow,minCol) and ends at (maxRow,maxCol)
        Parameters:
        rowMajor - true means it will traverse through the submatrix by row first, false by columns.
        minRow - first row it will start at.
        minCol - first column it will start at.
        maxRow - last row it will stop at.
        maxCol - last column it will stop at.
        Returns:
        A new MatrixIterator
      • print

        public void print()
        Description copied from interface: Matrix
        Prints the matrix to standard out using standard formatting. This is the same as calling print("%e")
        Specified by:
        print in interface Matrix
      • print

        public void print​(java.lang.String format)
        Description copied from interface: Matrix
        Prints the matrix to standard out with the specified formatting.
        Specified by:
        print in interface Matrix
        Parameters:
        format - printf style formatting for a float. E.g. "%f"
        See Also:
        Formatter
      • getNumRows

        public int getNumRows()
        Returns the number of rows in this matrix.
        Specified by:
        getNumRows in interface Matrix
        Returns:
        Number of rows.
      • getNumCols

        public int getNumCols()
        Returns the number of columns in this matrix.
        Specified by:
        getNumCols in interface Matrix
        Returns:
        Number of columns.
      • setNumRows

        public void setNumRows​(int numRows)
        Sets the number of rows.
        Parameters:
        numRows - Number of rows
      • setNumCols

        public void setNumCols​(int numCols)
        Sets the number of columns.
        Parameters:
        numCols - Number of columns