public class ReOrderedMatrix<V extends Value<V>> extends java.lang.Object implements Matrix<ReOrderedMatrix<V>,V>
Matrix.Order
Constructor and Description |
---|
ReOrderedMatrix(Matrix<?,V> source) |
Modifier and Type | Method and Description |
---|---|
ReOrderedMatrix<V> |
add(Matrix<?,?> value)
add the value to this
|
int |
compareTo(Matrix<?,?> o) |
ReOrderedMatrix<V> |
copy() |
ReOrderedMatrix<V> |
divide(double value) |
ReOrderedMatrix<V> |
divide(long value) |
ReOrderedMatrix<V> |
divide(Value<?> value) |
protected Matrix<?,V> |
getComponent() |
java.util.List<V> |
getData() |
java.util.List<java.util.List<V>> |
getData2() |
Vector2<IntValue> |
getDimensions2()
Get the dimensions as: [columns, rows].
|
V |
getElement(int major,
int minor) |
int |
getMajorSize() |
Vector<?,V> |
getMajorVector(int index) |
int |
getMinorSize() |
Vector<?,V> |
getMinorVector(int index) |
Matrix.Order |
getOrder() |
Matrix<?,V> |
getTransposed() |
ReOrderedMatrix<V> |
getValue()
This should always return the correct current value for this Expression.
|
Observable<Expression<? extends ReOrderedMatrix<V>>> |
invalidations() |
ReOrderedMatrix<V> |
multiply(double value) |
ReOrderedMatrix<V> |
multiply(long value) |
ReOrderedMatrix<V> |
multiply(Matrix<?,?> value) |
ReOrderedMatrix<V> |
multiply(Value<?> value) |
ReOrderedMatrix<V> |
negate() |
ReOrderedMatrix<V> |
operateOnData(java.util.function.BiFunction<? super V,java.lang.Integer,? extends V> operator) |
ReOrderedMatrix<V> |
operateOnData(java.util.function.Function<? super V,? extends V> operator) |
ReOrderedMatrix<V> |
operateOnData2(TriFunction<? super V,java.lang.Integer,java.lang.Integer,? extends V> operator) |
ReOrderedMatrix<V> |
preMultiply(Matrix<?,?> value) |
ReOrderedMatrix<V> |
subtract(Matrix<?,?> value)
subtract the value from this
|
ReOrderedMatrix<V> |
transpose() |
Matrix<?,V> |
withOrder(Matrix.Order order) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
assertDimensions, assertDimensions, assertIsSquare, getColumnSize, getColumnVector, getColumnVectors, getData, getData, getData, getData, getData2, getData2, getData2, getData2, getDataSize, getDoubleData, getDoubleData2, getFloatData, getFloatData2, getIntData, getIntData2, getLongData, getLongData2, getMajorVectors, getMinorVectors, getRowSize, getRowVector, getRowVectors, isSquare, multiplyData, operateOnData, operateOnData2, preMultiplyData, setData, setData, setData, setData, setData, setData, setData, setData, setData, setData2, setData2, setData2, setData2, setData2, setData2, setData2, setData2, transposeData
anonymize, decoupleValue, immutable, over, over
divide, divide, getDivided, getDivided, getDivided, getDivided, getDivided, getMultiplied, getMultiplied, getMultiplied, getMultiplied, getMultiplied, multiply, multiply
getSubtracted
getNegated
getPreMultiplied
getMultiplied
public ReOrderedMatrix<V> copy()
public int compareTo(Matrix<?,?> o)
compareTo
in interface java.lang.Comparable<Matrix<?,?>>
public ReOrderedMatrix<V> getValue()
Expression
Expression
, i.e. it should be either an immutable class, a const
reference, or a copy of the underlying value. This is important, but
conversely it does not mean that the return value can necessarily be
relied upon not to not mutate when this expression is updated, unless a read
lock is held.
Once a value has been returned, it is up to the implementing Expression as to
whether the value will be reliable such that it will remain the same even if
the conceptual value of this expression subsequently changes, or whether it
will update automatically with the expression. Please only rely on either
behavior if it is explicitly documented, otherwise use
Expression.decoupleValue()
if you need a persistent reference which is safe
to mutate and/or safe from external mutation.
The observers should only ever be notified of an update from the thread which
has the write lock on an Expression
, and Expression
s should
be careful to only notify observers when they are in a state where their
value can be fetched. Immediate fetch is discouraged, though. Expressions
should generally update lazily, not eagerly.
getValue
in interface Expression<ReOrderedMatrix<V extends Value<V>>>
public Observable<Expression<? extends ReOrderedMatrix<V>>> invalidations()
invalidations
in interface Expression<ReOrderedMatrix<V extends Value<V>>>
public Matrix.Order getOrder()
public Vector<?,V> getMajorVector(int index)
getMajorVector
in interface Matrix<ReOrderedMatrix<V extends Value<V>>,V extends Value<V>>
public Vector<?,V> getMinorVector(int index)
getMinorVector
in interface Matrix<ReOrderedMatrix<V extends Value<V>>,V extends Value<V>>
public java.util.List<V> getData()
public java.util.List<java.util.List<V>> getData2()
public int getMajorSize()
getMajorSize
in interface Matrix<ReOrderedMatrix<V extends Value<V>>,V extends Value<V>>
public int getMinorSize()
getMinorSize
in interface Matrix<ReOrderedMatrix<V extends Value<V>>,V extends Value<V>>
public V getElement(int major, int minor)
getElement
in interface Matrix<ReOrderedMatrix<V extends Value<V>>,V extends Value<V>>
public ReOrderedMatrix<V> operateOnData(java.util.function.Function<? super V,? extends V> operator)
operateOnData
in interface Matrix<ReOrderedMatrix<V extends Value<V>>,V extends Value<V>>
public ReOrderedMatrix<V> operateOnData(java.util.function.BiFunction<? super V,java.lang.Integer,? extends V> operator)
operateOnData
in interface Matrix<ReOrderedMatrix<V extends Value<V>>,V extends Value<V>>
public ReOrderedMatrix<V> operateOnData2(TriFunction<? super V,java.lang.Integer,java.lang.Integer,? extends V> operator)
operateOnData2
in interface Matrix<ReOrderedMatrix<V extends Value<V>>,V extends Value<V>>
public ReOrderedMatrix<V> transpose()
public ReOrderedMatrix<V> multiply(Value<?> value)
public ReOrderedMatrix<V> multiply(long value)
public ReOrderedMatrix<V> multiply(double value)
public ReOrderedMatrix<V> divide(Value<?> value)
public ReOrderedMatrix<V> divide(long value)
public ReOrderedMatrix<V> divide(double value)
public ReOrderedMatrix<V> subtract(Matrix<?,?> value)
Subtractable
public ReOrderedMatrix<V> add(Matrix<?,?> value)
Addable
public ReOrderedMatrix<V> negate()
public ReOrderedMatrix<V> preMultiply(Matrix<?,?> value)
preMultiply
in interface Matrix<ReOrderedMatrix<V extends Value<V>>,V extends Value<V>>
preMultiply
in interface NonCommutativelyMultipliable<ReOrderedMatrix<V extends Value<V>>,Matrix<?,?>>
public ReOrderedMatrix<V> multiply(Matrix<?,?> value)
public Matrix<?,V> withOrder(Matrix.Order order)
public Vector2<IntValue> getDimensions2()
Matrix
getDimensions2
in interface Matrix<ReOrderedMatrix<V extends Value<V>>,V extends Value<V>>