Class LeftRightStore<N extends Comparable<N>>

All Implemented Interfaces:
Group, Group.Additive<MatrixStore<N>>, NormedVectorSpace<MatrixStore<N>,N>, Operation, Operation.Addition<MatrixStore<N>>, Operation.Multiplication<MatrixStore<N>>, Operation.Subtraction<MatrixStore<N>>, ScalarOperation, ScalarOperation.Addition<MatrixStore<N>,N>, ScalarOperation.Division<MatrixStore<N>,N>, ScalarOperation.Multiplication<MatrixStore<N>,N>, ScalarOperation.Subtraction<MatrixStore<N>,N>, VectorSpace<MatrixStore<N>,N>, Matrix2D<N,MatrixStore<N>>, ElementsSupplier<N>, MatrixStore<N>, Access1D<N>, Access1D.Aggregatable<N>, Access1D.Sliceable<N>, Access1D.Visitable<N>, Access2D<N>, Access2D.Aggregatable<N>, Access2D.Collectable<N,TransformableRegion<N>>, Access2D.Sliceable<N>, Access2D.Visitable<N>, Operate2D<N,ElementsSupplier<N>>, Structure1D, Structure2D, Structure2D.Logical<Access2D<N>,MatrixStore<N>>, Structure2D.ReducibleTo1D<ElementsSupplier<N>>

final class LeftRightStore<N extends Comparable<N>> extends ComposingStore<N>
A merger of two MatrixStore instances by placing one store to the right of the other. The two matrices must have the same number of rows. The rows of the two matrices are logically merged to form new longer rows.
  • Field Details

  • Constructor Details

  • Method Details

    • doubleValue

      public double doubleValue(int row, int col)
      Description copied from interface: Access2D
      Extracts one element of this matrix as a double.
      Parameters:
      row - A row index.
      col - A column index.
      Returns:
      One matrix element
      See Also:
    • firstInColumn

      public int firstInColumn(int col)
      Description copied from interface: Structure2D
      The default value is simply 0, and if all elements are zeros then this.countRows().
      Parameters:
      col - The column index
      Returns:
      The row index of the first non-zero element in the specified column
    • firstInRow

      public int firstInRow(int row)
      Description copied from interface: Structure2D
      The default value is simply 0, and if all elements are zeros then this.countColumns().
      Returns:
      The column index of the first non-zero element in the specified row
    • get

      public N get(int row, int col)
    • limitOfColumn

      public int limitOfColumn(int col)
      Description copied from interface: Structure2D
      The default value is simply this.countRows(), and if all elements are zeros then 0.
      Specified by:
      limitOfColumn in interface Structure2D
      Overrides:
      limitOfColumn in class AbstractStore<N extends Comparable<N>>
      Returns:
      The row index of the first zero element, after all non-zeros, in the specified column (index of the last non-zero + 1)
    • limitOfRow

      public int limitOfRow(int row)
      Description copied from interface: Structure2D
      The default value is simply this.countColumns(), and if all elements are zeros then 0.
      Specified by:
      limitOfRow in interface Structure2D
      Overrides:
      limitOfRow in class AbstractStore<N extends Comparable<N>>
      Returns:
      The column index of the first zero element, after all non-zeros, in the specified row (index of the last non-zero + 1)
    • multiply

      public void multiply(Access1D<N> right, TransformableRegion<N> target)
    • multiply

      public MatrixStore<N> multiply(double scalar)
      Returns:
      this * scalarMultiplicand.
    • multiply

      public MatrixStore<N> multiply(MatrixStore<N> right)
      Parameters:
      right - The multiplicand
      Returns:
      this * multiplicand.
    • multiply

      public MatrixStore<N> multiply(N scalar)
      Returns:
      this * multiplicand.
    • multiplyBoth

      public N multiplyBoth(Access1D<N> leftAndRight)
      Description copied from interface: MatrixStore
      Assumes [leftAndRight] is a vector and will calulate [leftAndRight]H[this][leftAndRight]
      Specified by:
      multiplyBoth in interface MatrixStore<N extends Comparable<N>>
      Overrides:
      multiplyBoth in class AbstractStore<N extends Comparable<N>>
      Parameters:
      leftAndRight - The argument vector
      Returns:
      A scalar (extracted from the resulting 1 x 1 matrix)
    • premultiply

      public MatrixStore<N> premultiply(Access1D<N> left)
      Description copied from interface: MatrixStore
      The premultiply method differs from multiply in 3 ways:
      1. The matrix positions are swapped - left/right.
      2. It does NOT return a MatrixStore but an ElementsSupplier instead.
      3. It accepts an Access1D as the argument left matrix.
      Parameters:
      left - The left matrix
      Returns:
      The matrix product
    • supplyTo

      public void supplyTo(TransformableRegion<N> receiver)
    • toScalar

      public Scalar<N> toScalar(int row, int col)
      Description copied from interface: Matrix2D
      Extracts one element of this matrix as a Scalar.
      Parameters:
      row - A row index.
      col - A column index.
      Returns:
      One matrix element as a Scalar.