Class RawStore
- java.lang.Object
-
- org.ojalgo.matrix.store.RawStore
-
- All Implemented Interfaces:
java.util.function.Consumer<Access2D<?>>
,Group
,Group.Additive<MatrixStore<java.lang.Double>>
,NormedVectorSpace<MatrixStore<java.lang.Double>,java.lang.Double>
,Operation
,Operation.Addition<MatrixStore<java.lang.Double>>
,Operation.Multiplication<MatrixStore<java.lang.Double>>
,Operation.Subtraction<MatrixStore<java.lang.Double>>
,ScalarOperation
,ScalarOperation.Addition<MatrixStore<java.lang.Double>,java.lang.Double>
,ScalarOperation.Division<MatrixStore<java.lang.Double>,java.lang.Double>
,ScalarOperation.Multiplication<MatrixStore<java.lang.Double>,java.lang.Double>
,ScalarOperation.Subtraction<MatrixStore<java.lang.Double>,java.lang.Double>
,VectorSpace<MatrixStore<java.lang.Double>,java.lang.Double>
,Matrix2D<java.lang.Double,MatrixStore<java.lang.Double>>
,ElementsSupplier<java.lang.Double>
,MatrixStore<java.lang.Double>
,PhysicalStore<java.lang.Double>
,TransformableRegion<java.lang.Double>
,Access1D<java.lang.Double>
,Access1D.Aggregatable<java.lang.Double>
,Access1D.Sliceable<java.lang.Double>
,Access1D.Visitable<java.lang.Double>
,Access2D<java.lang.Double>
,Access2D.Aggregatable<java.lang.Double>
,Access2D.Collectable<java.lang.Double,TransformableRegion<java.lang.Double>>
,Access2D.Sliceable<java.lang.Double>
,Access2D.Visitable<java.lang.Double>
,Factory2D.Builder<RawStore>
,Mutate1D
,Mutate1D.Fillable<java.lang.Double>
,Mutate1D.Modifiable<java.lang.Double>
,Mutate2D
,Mutate2D.Exchangeable
,Mutate2D.Fillable<java.lang.Double>
,Mutate2D.Modifiable<java.lang.Double>
,Mutate2D.ModifiableReceiver<java.lang.Double>
,Mutate2D.Receiver<java.lang.Double>
,Operate2D<java.lang.Double,ElementsSupplier<java.lang.Double>>
,Structure1D
,Structure2D
,Structure2D.Logical<Access2D<java.lang.Double>,MatrixStore<java.lang.Double>>
,Structure2D.ReducibleTo1D<ElementsSupplier<java.lang.Double>>
public final class RawStore extends java.lang.Object implements PhysicalStore<java.lang.Double>, Factory2D.Builder<RawStore>
Uses double[][] internally.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.ojalgo.structure.Access2D
Access2D.Aggregatable<N extends java.lang.Comparable<N>>, Access2D.Collectable<N extends java.lang.Comparable<N>,R extends Mutate2D>, Access2D.ColumnView<N extends java.lang.Comparable<N>>, Access2D.ElementView<N extends java.lang.Comparable<N>>, Access2D.RowView<N extends java.lang.Comparable<N>>, Access2D.SelectionView<N extends java.lang.Comparable<N>>, Access2D.Sliceable<N extends java.lang.Comparable<N>>, Access2D.Visitable<N extends java.lang.Comparable<N>>
-
Nested classes/interfaces inherited from interface org.ojalgo.algebra.Group
Group.Additive<T>, Group.Multiplicative<T>
-
Nested classes/interfaces inherited from interface org.ojalgo.structure.Mutate1D
Mutate1D.Fillable<N extends java.lang.Comparable<N>>, Mutate1D.Mixable<N extends java.lang.Comparable<N>>, Mutate1D.Modifiable<N extends java.lang.Comparable<N>>, Mutate1D.ModifiableReceiver<N extends java.lang.Comparable<N>>, Mutate1D.Receiver<N extends java.lang.Comparable<N>>, Mutate1D.Sortable
-
Nested classes/interfaces inherited from interface org.ojalgo.structure.Mutate2D
Mutate2D.Exchangeable, Mutate2D.Fillable<N extends java.lang.Comparable<N>>, Mutate2D.Mixable<N extends java.lang.Comparable<N>>, Mutate2D.Modifiable<N extends java.lang.Comparable<N>>, Mutate2D.ModifiableReceiver<N extends java.lang.Comparable<N>>, Mutate2D.Receiver<N extends java.lang.Comparable<N>>
-
Nested classes/interfaces inherited from interface org.ojalgo.algebra.Operation
Operation.Addition<T>, Operation.Division<T>, Operation.Multiplication<T>, Operation.Subtraction<T>
-
Nested classes/interfaces inherited from interface org.ojalgo.matrix.store.PhysicalStore
PhysicalStore.Factory<N extends java.lang.Comparable<N>,I extends PhysicalStore<N> & Factory2D.Builder<I>>
-
Nested classes/interfaces inherited from interface org.ojalgo.algebra.ScalarOperation
ScalarOperation.Addition<T,N extends java.lang.Comparable<N>>, ScalarOperation.Division<T,N extends java.lang.Comparable<N>>, ScalarOperation.Multiplication<T,N extends java.lang.Comparable<N>>, ScalarOperation.Subtraction<T,N extends java.lang.Comparable<N>>
-
Nested classes/interfaces inherited from interface org.ojalgo.structure.Structure1D
Structure1D.BasicMapper<T>, Structure1D.IndexMapper<T>, Structure1D.IntIndex, Structure1D.Logical<S extends Structure1D,B extends Structure1D.Logical<S,B>>, Structure1D.LongIndex, Structure1D.LoopCallback
-
Nested classes/interfaces inherited from interface org.ojalgo.structure.Structure2D
Structure2D.IntRowColumn, Structure2D.Logical<S extends Structure2D,B extends Structure2D.Logical<S,B>>, Structure2D.LongRowColumn, Structure2D.ReducibleTo1D<R extends Structure1D>, Structure2D.Reshapable, Structure2D.RowColumnKey<R,C>, Structure2D.RowColumnMapper<R,C>
-
Nested classes/interfaces inherited from interface org.ojalgo.matrix.store.TransformableRegion
TransformableRegion.FillByMultiplying<N extends java.lang.Comparable<N>>
-
-
Field Summary
Fields Modifier and Type Field Description double[][]
data
static PhysicalStore.Factory<java.lang.Double,RawStore>
FACTORY
private int
myNumberOfColumns
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
accept(Access2D<?> supplied)
void
add(long row, long col, double addend)
void
add(long row, long col, java.lang.Comparable<?> addend)
java.lang.Double
aggregateAll(Aggregator aggregator)
java.util.List<java.lang.Double>
asList()
RawStore
build()
(package private) static Rotation.Primitive
cast(Rotation<java.lang.Double> aTransf)
MatrixStore<java.lang.Double>
conjugate()
Returns the conjugate transpose of this matrix.private static RawStore
convert(Access1D<?> elements, int structure)
RawStore
copy()
Make a deep copy of a matrixlong
count()
count() == countRows() * countColumns()long
countColumns()
Only need to implement if the structure may contain more than Integer.MAX_VALUE elements.long
countRows()
Only need to implement if the structure may contain more than Integer.MAX_VALUE elements.double
doubleValue(int row, int col)
Extracts one element of this matrix as a double.boolean
equals(java.lang.Object obj)
void
exchangeColumns(long colA, long colB)
void
exchangeRows(long rowA, long rowB)
private static double[][]
extract(Access1D<?> elements, int nbRows)
void
fillAll(java.lang.Double value)
void
fillAll(NullaryFunction<?> supplier)
void
fillByMultiplying(Access1D<java.lang.Double> left, Access1D<java.lang.Double> right)
void
fillColumn(long row, long col, java.lang.Double value)
void
fillColumn(long row, long col, NullaryFunction<?> supplier)
void
fillCompatible(Access2D<java.lang.Double> left, BinaryFunction<java.lang.Double> operator, Access2D<java.lang.Double> right)
'this' needs to be of a size compatible with the 'left' and 'right' matrices.void
fillDiagonal(long row, long col, java.lang.Double value)
void
fillDiagonal(long row, long col, NullaryFunction<?> supplier)
void
fillMatching(Access1D<?> source)
Will fill the elements of [this] with the corresponding input values, and in the process (if necessary) convert the elements to the correct type:void
fillMatching(Access1D<java.lang.Double> left, BinaryFunction<java.lang.Double> function, Access1D<java.lang.Double> right)
void
fillRange(long first, long limit, java.lang.Double value)
void
fillRange(long first, long limit, NullaryFunction<?> supplier)
void
fillRow(long row, long col, java.lang.Double value)
void
fillRow(long row, long col, NullaryFunction<?> supplier)
MatrixStore<java.lang.Double>
get()
java.lang.Double
get(int row, int col)
int
getColDim()
int
getRowDim()
int
hashCode()
long
indexOfLargest()
boolean
isSmall(long row, long col, double comparedTo)
void
modifyAll(UnaryFunction<java.lang.Double> modifier)
void
modifyColumn(long row, long col, UnaryFunction<java.lang.Double> modifier)
void
modifyDiagonal(long row, long col, UnaryFunction<java.lang.Double> modifier)
void
modifyMatching(BinaryFunction<java.lang.Double> function, Access1D<java.lang.Double> right)
void
modifyMatching(Access1D<java.lang.Double> left, BinaryFunction<java.lang.Double> function)
void
modifyOne(long row, long col, UnaryFunction<java.lang.Double> modifier)
void
modifyRange(long first, long limit, UnaryFunction<java.lang.Double> modifier)
void
modifyRow(long row, long col, UnaryFunction<java.lang.Double> modifier)
private static void
multiply(double[][] product, double[][] left, double[][] right)
RawStore
multiply(MatrixStore<java.lang.Double> right)
java.lang.Double
multiplyBoth(Access1D<java.lang.Double> leftAndRight)
Assumes [leftAndRight] is a vector and will calulate [leftAndRight]H[this][leftAndRight]PhysicalStore.Factory<java.lang.Double,RawStore>
physical()
TransformableRegion<java.lang.Double>
regionByColumns(int... columns)
TransformableRegion<java.lang.Double>
regionByLimits(int rowLimit, int columnLimit)
TransformableRegion<java.lang.Double>
regionByOffsets(int rowOffset, int columnOffset)
TransformableRegion<java.lang.Double>
regionByRows(int... rows)
TransformableRegion<java.lang.Double>
regionByTransposing()
void
reset()
Reset this mutable structure to some standard (all zeros) initial state.void
set(int row, int col, double value)
void
set(long row, long col, java.lang.Comparable<?> value)
Access1D<java.lang.Double>
sliceRow(long row)
void
substituteBackwards(Access2D<java.lang.Double> 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 triangularvoid
substituteForwards(Access2D<java.lang.Double> 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 triangularvoid
supplyTo(TransformableRegion<java.lang.Double> receiver)
PrimitiveScalar
toScalar(int row, int col)
Extracts one element of this matrix as a Scalar.java.lang.String
toString()
void
transformLeft(Householder<java.lang.Double> transformation, int firstColumn)
void
transformLeft(Rotation<java.lang.Double> transformation)
As inMatrixStore.premultiply(Access1D)
where the left/parameter matrix is a plane rotation.void
transformRight(Householder<java.lang.Double> transformation, int firstRow)
void
transformRight(Rotation<java.lang.Double> transformation)
As inMatrixStore.multiply(MatrixStore)
where the right/parameter matrix is a plane rotation.MatrixStore<java.lang.Double>
transpose()
void
visitAll(VoidFunction<java.lang.Double> visitor)
void
visitColumn(long row, long col, VoidFunction<java.lang.Double> visitor)
void
visitDiagonal(long row, long col, VoidFunction<java.lang.Double> visitor)
void
visitRange(long first, long limit, VoidFunction<java.lang.Double> visitor)
void
visitRow(long row, long col, VoidFunction<java.lang.Double> visitor)
static RawStore
wrap(double... data)
Will create a single row matrix with the supplied array as the inner array.static RawStore
wrap(double[][] data)
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.ojalgo.structure.Access1D
asCollectable1D, asKeyed1D, axpy, dot, select, supplyTo, toRawCopy1D
-
Methods inherited from interface org.ojalgo.structure.Access2D
asCollectable2D, asKeyed2D, byteValue, byteValue, byteValue, byteValue, columns, doubleValue, doubleValue, doubleValue, elements, floatValue, floatValue, floatValue, floatValue, get, intValue, intValue, intValue, intValue, longValue, longValue, longValue, longValue, nonzeros, rows, shortValue, shortValue, shortValue, shortValue, toRawCopy2D
-
Methods inherited from interface org.ojalgo.structure.Access2D.Aggregatable
aggregateColumn, aggregateDiagonal, aggregateRow, reduceColumns, reduceRows
-
Methods inherited from interface org.ojalgo.structure.Access2D.Collectable
collect
-
Methods inherited from interface org.ojalgo.structure.Access2D.Sliceable
sliceColumn, sliceDiagonal
-
Methods inherited from interface org.ojalgo.structure.Access2D.Visitable
visitColumn, visitDiagonal, visitOne, visitRow
-
Methods inherited from interface org.ojalgo.matrix.store.ElementsSupplier
onAny, onColumns, onColumns, onMatching, onMatching, onRows, onRows
-
Methods inherited from interface org.ojalgo.matrix.store.MatrixStore
above, above, above, add, add, add, aggregateColumn, aggregateDiagonal, aggregateRange, aggregateRow, below, below, below, bidiagonal, column, column, columns, columns, diagonal, diagonally, divide, divide, equals, get, hermitian, hessenberg, isHermitian, isNormal, isSmall, left, left, left, limits, logical, multiply, multiply, multiply, negate, norm, offsets, onAll, operate, power, premultiply, reduceColumns, reduceRows, repeat, right, right, right, row, row, rows, rows, select, select, signum, sliceColumn, sliceDiagonal, sliceRange, sliceRow, subtract, subtract, subtract, superimpose, superimpose, symmetric, triangular, tridiagonal, visitOne
-
Methods inherited from interface org.ojalgo.structure.Mutate1D.Fillable
fillCompatible, fillMatching
-
Methods inherited from interface org.ojalgo.structure.Mutate2D
set, set, set, set, set, set, set, set, set, set, set, set, set, set, set, set, set, set, set, set, set, set, set, set
-
Methods inherited from interface org.ojalgo.structure.Mutate2D.Fillable
fillColumn, fillColumn, fillColumn, fillColumn, fillDiagonal, fillDiagonal, fillDiagonal, fillDiagonal, fillRow, fillRow, fillRow, fillRow
-
Methods inherited from interface org.ojalgo.structure.Mutate2D.Modifiable
add, add, add, add, add, add, add, add, add, add, add, add, modifyColumn, modifyDiagonal, modifyMatchingInColumns, modifyMatchingInColumns, modifyMatchingInRows, modifyMatchingInRows, modifyOne, modifyRow
-
Methods inherited from interface org.ojalgo.structure.Mutate2D.ModifiableReceiver
modifyCompatible, modifyCompatible
-
Methods inherited from interface org.ojalgo.structure.Mutate2D.Receiver
isAcceptable
-
Methods inherited from interface org.ojalgo.structure.Operate2D
onAll, onAll, onAll, onAll, onAll, onCompatible, onCompatible
-
Methods inherited from interface org.ojalgo.matrix.store.PhysicalStore
indexOfLargestInColumn, indexOfLargestInRow, indexOfLargestOnDiagonal, modifyAny
-
Methods inherited from interface org.ojalgo.algebra.ScalarOperation.Addition
add
-
Methods inherited from interface org.ojalgo.algebra.ScalarOperation.Division
divide
-
Methods inherited from interface org.ojalgo.algebra.ScalarOperation.Multiplication
multiply
-
Methods inherited from interface org.ojalgo.algebra.ScalarOperation.Subtraction
subtract
-
Methods inherited from interface org.ojalgo.structure.Structure2D
firstInColumn, firstInRow, getMaxDim, getMinDim, isEmpty, isFat, isScalar, isSquare, isTall, isVector, limitOfColumn, limitOfRow, size
-
Methods inherited from interface org.ojalgo.matrix.store.TransformableRegion
synchronised
-
-
-
-
Field Detail
-
FACTORY
public static final PhysicalStore.Factory<java.lang.Double,RawStore> FACTORY
-
data
public final double[][] data
-
myNumberOfColumns
private final int myNumberOfColumns
-
-
Method Detail
-
wrap
public static RawStore wrap(double... data)
Will create a single row matrix with the supplied array as the inner array. You access it usingdata[0]
.
-
wrap
public static RawStore wrap(double[][] data)
-
extract
private static double[][] extract(Access1D<?> elements, int nbRows)
-
multiply
private static void multiply(double[][] product, double[][] left, double[][] right)
-
cast
static Rotation.Primitive cast(Rotation<java.lang.Double> aTransf)
-
accept
public void accept(Access2D<?> supplied)
- Specified by:
accept
in interfacejava.util.function.Consumer<Access2D<?>>
- Specified by:
accept
in interfaceMutate2D.Receiver<java.lang.Double>
-
add
public void add(long row, long col, java.lang.Comparable<?> addend)
- Specified by:
add
in interfaceMutate2D.Modifiable<java.lang.Double>
-
add
public void add(long row, long col, double addend)
- Specified by:
add
in interfaceMutate2D.Modifiable<java.lang.Double>
-
aggregateAll
public java.lang.Double aggregateAll(Aggregator aggregator)
- Specified by:
aggregateAll
in interfaceAccess1D.Aggregatable<java.lang.Double>
- Specified by:
aggregateAll
in interfaceMatrixStore<java.lang.Double>
-
asList
public java.util.List<java.lang.Double> asList()
- Specified by:
asList
in interfacePhysicalStore<java.lang.Double>
- Returns:
- The elements of the physical store as a fixed size (1 dimensional) list. The elements may be accessed either row or colomn major.
-
build
public RawStore build()
- Specified by:
build
in interfaceFactory2D.Builder<RawStore>
-
conjugate
public MatrixStore<java.lang.Double> conjugate()
Description copied from interface:MatrixStore
Returns the conjugate transpose of this matrix. The conjugate transpose is also known as adjoint matrix, adjugate matrix, hermitian adjoint or hermitian transpose. (The conjugate matrix is the complex conjugate of each element. This NOT what is returned here!)- Specified by:
conjugate
in interfaceMatrixStore<java.lang.Double>
- Specified by:
conjugate
in interfaceStructure2D.Logical<Access2D<java.lang.Double>,MatrixStore<java.lang.Double>>
- Specified by:
conjugate
in interfaceVectorSpace<MatrixStore<java.lang.Double>,java.lang.Double>
- See Also:
VectorSpace.conjugate()
-
copy
public RawStore copy()
Make a deep copy of a matrix- Specified by:
copy
in interfaceMatrixStore<java.lang.Double>
- Returns:
- A new PhysicalStore copy.
-
count
public long count()
Description copied from interface:Structure2D
count() == countRows() * countColumns()- Specified by:
count
in interfaceStructure1D
- Specified by:
count
in interfaceStructure2D
-
countColumns
public long countColumns()
Description copied from interface:Structure2D
Only need to implement if the structure may contain more than Integer.MAX_VALUE elements.- Specified by:
countColumns
in interfaceStructure2D
- Returns:
- The number of columns
-
countRows
public long countRows()
Description copied from interface:Structure2D
Only need to implement if the structure may contain more than Integer.MAX_VALUE elements.- Specified by:
countRows
in interfaceStructure2D
- Returns:
- The number of rows
-
doubleValue
public double doubleValue(int row, int col)
Description copied from interface:Access2D
Extracts one element of this matrix as a double.- Specified by:
doubleValue
in interfaceAccess2D<java.lang.Double>
- Specified by:
doubleValue
in interfaceMatrixStore<java.lang.Double>
- Parameters:
row
- A row index.col
- A column index.- Returns:
- One matrix element
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
exchangeColumns
public void exchangeColumns(long colA, long colB)
- Specified by:
exchangeColumns
in interfaceMutate2D.Exchangeable
- Specified by:
exchangeColumns
in interfaceTransformableRegion<java.lang.Double>
-
exchangeRows
public void exchangeRows(long rowA, long rowB)
- Specified by:
exchangeRows
in interfaceMutate2D.Exchangeable
- Specified by:
exchangeRows
in interfaceTransformableRegion<java.lang.Double>
-
fillAll
public void fillAll(java.lang.Double value)
- Specified by:
fillAll
in interfaceMutate1D.Fillable<java.lang.Double>
-
fillAll
public void fillAll(NullaryFunction<?> supplier)
- Specified by:
fillAll
in interfaceMutate1D.Fillable<java.lang.Double>
-
fillCompatible
public void fillCompatible(Access2D<java.lang.Double> left, BinaryFunction<java.lang.Double> operator, Access2D<java.lang.Double> right)
Description copied from interface:Mutate2D.Fillable
'this' needs to be of a size compatible with the 'left' and 'right' matrices. No checks are performed. The term "compatible" refers to MATLAB's rules for "array broadcasting". The result will be the same as if the 'left' and 'right' matrices where expanded (repeated) so that all three where of the same size, and then the operation was performed. The actual implementation may be more efficient than that.- Specified by:
fillCompatible
in interfaceMutate2D.Fillable<java.lang.Double>
-
fillByMultiplying
public void fillByMultiplying(Access1D<java.lang.Double> left, Access1D<java.lang.Double> right)
- Specified by:
fillByMultiplying
in interfaceTransformableRegion<java.lang.Double>
-
fillColumn
public void fillColumn(long row, long col, java.lang.Double value)
- Specified by:
fillColumn
in interfaceMutate2D.Fillable<java.lang.Double>
-
fillColumn
public void fillColumn(long row, long col, NullaryFunction<?> supplier)
- Specified by:
fillColumn
in interfaceMutate2D.Fillable<java.lang.Double>
-
fillDiagonal
public void fillDiagonal(long row, long col, java.lang.Double value)
- Specified by:
fillDiagonal
in interfaceMutate2D.Fillable<java.lang.Double>
-
fillDiagonal
public void fillDiagonal(long row, long col, NullaryFunction<?> supplier)
- Specified by:
fillDiagonal
in interfaceMutate2D.Fillable<java.lang.Double>
-
fillMatching
public void fillMatching(Access1D<?> source)
Description copied from interface:Mutate1D.Fillable
Will fill the elements of [this] with the corresponding input values, and in the process (if necessary) convert the elements to the correct type:
this(i) = values(i)
- Specified by:
fillMatching
in interfaceMutate1D.Fillable<java.lang.Double>
-
fillMatching
public void fillMatching(Access1D<java.lang.Double> left, BinaryFunction<java.lang.Double> function, Access1D<java.lang.Double> right)
- Specified by:
fillMatching
in interfaceMutate1D.Fillable<java.lang.Double>
-
fillRange
public void fillRange(long first, long limit, java.lang.Double value)
- Specified by:
fillRange
in interfaceMutate1D.Fillable<java.lang.Double>
-
fillRange
public void fillRange(long first, long limit, NullaryFunction<?> supplier)
- Specified by:
fillRange
in interfaceMutate1D.Fillable<java.lang.Double>
-
fillRow
public void fillRow(long row, long col, java.lang.Double value)
- Specified by:
fillRow
in interfaceMutate2D.Fillable<java.lang.Double>
-
fillRow
public void fillRow(long row, long col, NullaryFunction<?> supplier)
- Specified by:
fillRow
in interfaceMutate2D.Fillable<java.lang.Double>
-
get
public MatrixStore<java.lang.Double> get()
- Specified by:
get
in interfaceMatrixStore<java.lang.Double>
-
get
public java.lang.Double get(int row, int col)
- Specified by:
get
in interfaceMatrixStore<java.lang.Double>
-
getColDim
public int getColDim()
- Specified by:
getColDim
in interfaceStructure2D
- Returns:
- The number of columns
-
getRowDim
public int getRowDim()
- Specified by:
getRowDim
in interfaceStructure2D
- Returns:
- The number of rows
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
indexOfLargest
public long indexOfLargest()
- Specified by:
indexOfLargest
in interfaceAccess1D.Aggregatable<java.lang.Double>
- Specified by:
indexOfLargest
in interfaceMatrixStore<java.lang.Double>
-
isSmall
public boolean isSmall(long row, long col, double comparedTo)
- Specified by:
isSmall
in interfaceMatrixStore<java.lang.Double>
-
modifyAll
public void modifyAll(UnaryFunction<java.lang.Double> modifier)
- Specified by:
modifyAll
in interfaceMutate1D.Modifiable<java.lang.Double>
-
modifyColumn
public void modifyColumn(long row, long col, UnaryFunction<java.lang.Double> modifier)
- Specified by:
modifyColumn
in interfaceMutate2D.Modifiable<java.lang.Double>
-
modifyDiagonal
public void modifyDiagonal(long row, long col, UnaryFunction<java.lang.Double> modifier)
- Specified by:
modifyDiagonal
in interfaceMutate2D.Modifiable<java.lang.Double>
-
modifyMatching
public void modifyMatching(Access1D<java.lang.Double> left, BinaryFunction<java.lang.Double> function)
- Specified by:
modifyMatching
in interfaceMutate1D.Modifiable<java.lang.Double>
-
modifyMatching
public void modifyMatching(BinaryFunction<java.lang.Double> function, Access1D<java.lang.Double> right)
- Specified by:
modifyMatching
in interfaceMutate1D.Modifiable<java.lang.Double>
-
modifyOne
public void modifyOne(long row, long col, UnaryFunction<java.lang.Double> modifier)
- Specified by:
modifyOne
in interfaceMutate2D.Modifiable<java.lang.Double>
-
modifyRange
public void modifyRange(long first, long limit, UnaryFunction<java.lang.Double> modifier)
- Specified by:
modifyRange
in interfaceMutate1D.Modifiable<java.lang.Double>
-
modifyRow
public void modifyRow(long row, long col, UnaryFunction<java.lang.Double> modifier)
- Specified by:
modifyRow
in interfaceMutate2D.Modifiable<java.lang.Double>
-
multiply
public RawStore multiply(MatrixStore<java.lang.Double> right)
- Specified by:
multiply
in interfaceMatrixStore<java.lang.Double>
- Specified by:
multiply
in interfaceOperation.Multiplication<MatrixStore<java.lang.Double>>
- Parameters:
right
- The multiplicand- Returns:
this * multiplicand
.
-
multiplyBoth
public java.lang.Double multiplyBoth(Access1D<java.lang.Double> leftAndRight)
Description copied from interface:MatrixStore
Assumes [leftAndRight] is a vector and will calulate [leftAndRight]H[this][leftAndRight]- Specified by:
multiplyBoth
in interfaceMatrixStore<java.lang.Double>
- Parameters:
leftAndRight
- The argument vector- Returns:
- A scalar (extracted from the resulting 1 x 1 matrix)
-
physical
public PhysicalStore.Factory<java.lang.Double,RawStore> physical()
- Specified by:
physical
in interfaceMatrixStore<java.lang.Double>
-
regionByColumns
public TransformableRegion<java.lang.Double> regionByColumns(int... columns)
- Specified by:
regionByColumns
in interfaceTransformableRegion<java.lang.Double>
- Returns:
- A consumer (sub)region
-
regionByLimits
public TransformableRegion<java.lang.Double> regionByLimits(int rowLimit, int columnLimit)
- Specified by:
regionByLimits
in interfaceTransformableRegion<java.lang.Double>
- Returns:
- A consumer (sub)region
-
regionByOffsets
public TransformableRegion<java.lang.Double> regionByOffsets(int rowOffset, int columnOffset)
- Specified by:
regionByOffsets
in interfaceTransformableRegion<java.lang.Double>
- Returns:
- A consumer (sub)region
-
regionByRows
public TransformableRegion<java.lang.Double> regionByRows(int... rows)
- Specified by:
regionByRows
in interfaceTransformableRegion<java.lang.Double>
- Returns:
- A consumer (sub)region
-
regionByTransposing
public TransformableRegion<java.lang.Double> regionByTransposing()
- Specified by:
regionByTransposing
in interfaceTransformableRegion<java.lang.Double>
- Returns:
- A transposed consumer region
-
reset
public void reset()
Description copied from interface:Mutate1D
Reset this mutable structure to some standard (all zeros) initial state. It must still be usuable after this call, and the structure/size/shape must not change.
-
set
public void set(long row, long col, java.lang.Comparable<?> value)
-
sliceRow
public Access1D<java.lang.Double> sliceRow(long row)
- Specified by:
sliceRow
in interfaceAccess2D.Sliceable<java.lang.Double>
-
substituteBackwards
public void substituteBackwards(Access2D<java.lang.Double> body, boolean unitDiagonal, boolean conjugated, boolean hermitian)
Description copied from interface:PhysicalStore
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
- Specified by:
substituteBackwards
in interfacePhysicalStore<java.lang.Double>
- See Also:
SubstituteBackwards.invoke(double[], int, int, int, Access2D, boolean, boolean, boolean)
-
substituteForwards
public void substituteForwards(Access2D<java.lang.Double> body, boolean unitDiagonal, boolean conjugated, boolean identity)
Description copied from interface:PhysicalStore
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
- Specified by:
substituteForwards
in interfacePhysicalStore<java.lang.Double>
- See Also:
SubstituteForwards.invoke(double[], int, int, int, Access2D, boolean, boolean, boolean)
-
supplyTo
public void supplyTo(TransformableRegion<java.lang.Double> receiver)
- Specified by:
supplyTo
in interfaceAccess2D.Collectable<java.lang.Double,TransformableRegion<java.lang.Double>>
- Specified by:
supplyTo
in interfaceMatrixStore<java.lang.Double>
- Specified by:
supplyTo
in interfacePhysicalStore<java.lang.Double>
-
toScalar
public PrimitiveScalar toScalar(int row, int col)
Description copied from interface:Matrix2D
Extracts one element of this matrix as a Scalar.- Specified by:
toScalar
in interfaceMatrix2D<java.lang.Double,MatrixStore<java.lang.Double>>
- Specified by:
toScalar
in interfaceMatrixStore<java.lang.Double>
- Parameters:
row
- A row index.col
- A column index.- Returns:
- One matrix element as a Scalar.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
transformLeft
public void transformLeft(Householder<java.lang.Double> transformation, int firstColumn)
- Specified by:
transformLeft
in interfacePhysicalStore<java.lang.Double>
-
transformLeft
public void transformLeft(Rotation<java.lang.Double> transformation)
Description copied from interface:PhysicalStore
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.
- Specified by:
transformLeft
in interfacePhysicalStore<java.lang.Double>
- See Also:
PhysicalStore.transformRight(Rotation)
-
transformRight
public void transformRight(Householder<java.lang.Double> transformation, int firstRow)
- Specified by:
transformRight
in interfacePhysicalStore<java.lang.Double>
-
transformRight
public void transformRight(Rotation<java.lang.Double> transformation)
Description copied from interface:PhysicalStore
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).
- Specified by:
transformRight
in interfacePhysicalStore<java.lang.Double>
- See Also:
PhysicalStore.transformLeft(Rotation)
-
transpose
public MatrixStore<java.lang.Double> transpose()
- Specified by:
transpose
in interfaceElementsSupplier<java.lang.Double>
- Specified by:
transpose
in interfaceMatrix2D<java.lang.Double,MatrixStore<java.lang.Double>>
- Specified by:
transpose
in interfaceMatrixStore<java.lang.Double>
- Specified by:
transpose
in interfaceStructure2D.Logical<Access2D<java.lang.Double>,MatrixStore<java.lang.Double>>
- Returns:
- A transposed matrix instance.
-
visitAll
public void visitAll(VoidFunction<java.lang.Double> visitor)
- Specified by:
visitAll
in interfaceAccess1D.Visitable<java.lang.Double>
-
visitColumn
public void visitColumn(long row, long col, VoidFunction<java.lang.Double> visitor)
- Specified by:
visitColumn
in interfaceAccess2D.Visitable<java.lang.Double>
-
visitDiagonal
public void visitDiagonal(long row, long col, VoidFunction<java.lang.Double> visitor)
- Specified by:
visitDiagonal
in interfaceAccess2D.Visitable<java.lang.Double>
-
visitRange
public void visitRange(long first, long limit, VoidFunction<java.lang.Double> visitor)
- Specified by:
visitRange
in interfaceAccess1D.Visitable<java.lang.Double>
-
visitRow
public void visitRow(long row, long col, VoidFunction<java.lang.Double> visitor)
- Specified by:
visitRow
in interfaceAccess2D.Visitable<java.lang.Double>
-
-