Module ojalgo

Interface PhysicalStore<N extends Comparable<N>>

All Superinterfaces:
Access1D<N>, Access1D.Aggregatable<N>, Access1D.Collectable<N,Mutate1D>, Access1D.Sliceable<N>, Access1D.Visitable<N>, Access2D<N>, Access2D.Aggregatable<N>, Access2D.Collectable<N,TransformableRegion<N>>, Access2D.Sliceable<N>, Access2D.Visitable<N>, Consumer<Access2D<?>>, ElementsSupplier<N>, Group, Group.Additive<MatrixStore<N>>, Matrix2D<N,MatrixStore<N>>, MatrixStore<N>, Mutate1D, Mutate1D.Fillable<N>, Mutate1D.Modifiable<N>, Mutate2D, Mutate2D.Exchangeable, Mutate2D.Fillable<N>, Mutate2D.Modifiable<N>, Mutate2D.ModifiableReceiver<N>, Mutate2D.Receiver<N>, NormedVectorSpace<MatrixStore<N>,N>, Operate2D<N,ElementsSupplier<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>, Structure1D, Structure2D, Structure2D.Logical<Access2D<N>,MatrixStore<N>>, Structure2D.ReducibleTo1D<ElementsSupplier<N>>, TransformableRegion<N>, VectorSpace<MatrixStore<N>,N>
All Known Subinterfaces:
DecompositionStore<N>
All Known Implementing Classes:
GenericStore, R032Store, R064Store, RawStore

public interface PhysicalStore<N extends Comparable<N>> extends MatrixStore<N>, TransformableRegion<N>, Access1D.Collectable<N,Mutate1D>

PhysicalStore:s, as opposed to MatrixStore:s, are mutable. The vast majority of the methods defined here return void and none return PhysicalStore or MatrixStore.

This interface and its implementations are central to ojAlgo.

Author:
apete
  • Method Details

    • asList

      List<N> asList()
      Description copied from interface: Access1D
      An (immutable) List delegating to this Access1D.
      Specified by:
      asList in interface Access1D<N extends Comparable<N>>
      Returns:
      The elements of the physical store as a fixed size (1 dimensional) list. The elements may be accessed either row or colomn major.
      See Also:
    • indexOfLargestInColumn

      default int indexOfLargestInColumn(int row, int col)
    • indexOfLargestInRow

      default int indexOfLargestInRow(int row, int col)
    • indexOfLargestOnDiagonal

      default int indexOfLargestOnDiagonal(int row, int col)
    • modifyAny

      default void modifyAny(Transformation2D<N> modifier)
      Specified by:
      modifyAny in interface Mutate2D.ModifiableReceiver<N extends Comparable<N>>
      Specified by:
      modifyAny in interface TransformableRegion<N extends Comparable<N>>
    • substituteBackwards

      void substituteBackwards(Access2D<N> body, boolean unitDiagonal, boolean conjugated, boolean hermitian)
      Will solve the equation system [A][X]=[B] where:
      • [body][this]=[this] is [A][X]=[B] ("this" is the right hand side, and it will be overwritten with the solution).
      • [A] is upper/right triangular
      See Also:
      • SubstituteBackwards.invoke(double[], int, int, int, Access2D, boolean, boolean, boolean)
    • substituteForwards

      void substituteForwards(Access2D<N> body, boolean unitDiagonal, boolean conjugated, boolean identity)
      Will solve the equation system [A][X]=[B] where:
      • [body][this]=[this] is [A][X]=[B] ("this" is the right hand side, and it will be overwritten with the solution).
      • [A] is lower/left triangular
      See Also:
      • SubstituteForwards.invoke(double[], int, int, int, Access2D, boolean, boolean, boolean)
    • supplyTo

      default void supplyTo(TransformableRegion<N> receiver)
      Specified by:
      supplyTo in interface Access2D.Collectable<N extends Comparable<N>,TransformableRegion<N extends Comparable<N>>>
      Specified by:
      supplyTo in interface MatrixStore<N extends Comparable<N>>
    • transformLeft

      void transformLeft(Householder<N> transformation, int firstColumn)
    • transformLeft

      void transformLeft(Rotation<N> transformation)

      As in MatrixStore.premultiply(Access1D) where the left/parameter matrix is a plane rotation.

      Multiplying by a plane rotation from the left means that [this] gets two of its rows updated to new combinations of those two (current) rows.

      There are two ways to transpose/invert a rotation. Either you negate the angle or you interchange the two indeces that define the rotation plane.

      See Also:
    • transformRight

      void transformRight(Householder<N> transformation, int firstRow)
    • transformRight

      void transformRight(Rotation<N> transformation)

      As in MatrixStore.multiply(MatrixStore) where the right/parameter matrix is a plane rotation.

      Multiplying by a plane rotation from the right means that [this] gets two of its columns updated to new combinations of those two (current) columns.

      There result is undefined if the two input indeces are the same (in which case the rotation plane is undefined).

      See Also: