public interface Matrix<S extends Matrix<S,V>,V extends Value<V>> extends java.lang.Comparable<Matrix<?,?>>, SelfExpression<S>, Scalable<S>, Subtractable<S,Matrix<?,?>>, Negatable<S,S>, NonCommutativelyMultipliable<S,Matrix<?,?>>
Modifier and Type | Interface and Description |
---|---|
static class |
Matrix.Order |
Modifier and Type | Method and Description |
---|---|
default S |
add(Matrix<?,?> other)
add the value to this
|
static <T extends Matrix<?,?>> |
assertDimensions(T matrix,
int size) |
static <T extends Matrix<?,?>> |
assertDimensions(T matrix,
int rows,
int columns) |
static <T extends Matrix<?,?>> |
assertIsSquare(T matrix) |
default S |
divide(double scalar) |
default S |
divide(long scalar) |
default S |
divide(Value<?> scalar) |
default int |
getColumnSize() |
default Vector<?,V> |
getColumnVector(int column) |
default java.util.List<? extends Vector<?,V>> |
getColumnVectors() |
java.util.List<V> |
getData() |
default double[] |
getData(double[] dataArray) |
default float[] |
getData(float[] dataArray) |
default int[] |
getData(int[] dataArray) |
default long[] |
getData(long[] dataArray) |
java.util.List<java.util.List<V>> |
getData2() |
default double[][] |
getData2(double[][] dataArray) |
default float[][] |
getData2(float[][] dataArray) |
default int[][] |
getData2(int[][] dataArray) |
default long[][] |
getData2(long[][] dataArray) |
default int |
getDataSize() |
Vector2<IntValue> |
getDimensions2()
Get the dimensions as: [columns, rows].
|
default double[] |
getDoubleData() |
default double[][] |
getDoubleData2() |
V |
getElement(int major,
int minor) |
default float[] |
getFloatData() |
default float[][] |
getFloatData2() |
default int[] |
getIntData() |
default int[][] |
getIntData2() |
default long[] |
getLongData() |
default long[][] |
getLongData2() |
int |
getMajorSize() |
Vector<?,V> |
getMajorVector(int index) |
default java.util.List<? extends Vector<?,V>> |
getMajorVectors() |
int |
getMinorSize() |
Vector<?,V> |
getMinorVector(int index) |
default java.util.List<? extends Vector<?,V>> |
getMinorVectors() |
Matrix.Order |
getOrder() |
default int |
getRowSize() |
default Vector<?,V> |
getRowVector(int row) |
default java.util.List<? extends Vector<?,V>> |
getRowVectors() |
Matrix<?,V> |
getTransposed() |
default boolean |
isSquare() |
default S |
multiply(double scalar) |
default S |
multiply(long scalar) |
default S |
multiply(Matrix<?,?> other) |
default S |
multiply(Value<?> scalar) |
static <V extends Value<?>> |
multiplyData(java.util.List<? extends java.util.List<? extends Value<?>>> data,
java.util.List<? extends java.util.List<? extends Value<?>>> otherData) |
default S |
negate() |
S |
operateOnData(java.util.function.BiFunction<? super V,java.lang.Integer,? extends V> operator) |
S |
operateOnData(java.util.function.Function<? super V,? extends V> operator) |
default <I> S |
operateOnData(java.util.List<? extends I> itemList,
java.util.function.BiFunction<? super V,? super I,? extends V> operator) |
default <I> S |
operateOnData2(java.util.List<? extends java.util.List<? extends I>> itemList,
java.util.function.BiFunction<? super V,? super I,? extends V> operator) |
S |
operateOnData2(TriFunction<? super V,java.lang.Integer,java.lang.Integer,? extends V> operator) |
default S |
preMultiply(Matrix<?,?> other) |
static <V extends Value<?>> |
preMultiplyData(java.util.List<? extends java.util.List<? extends Value<?>>> data,
java.util.List<? extends java.util.List<? extends Value<?>>> otherData) |
default S |
setData(boolean setByReference,
java.util.List<? extends V> to) |
default S |
setData(boolean setByReference,
V... to) |
default S |
setData(double[] to) |
default S |
setData(float[] to) |
default S |
setData(int[] to) |
default S |
setData(java.util.List<? extends Value<?>> to) |
default S |
setData(long[] to) |
default S |
setData(java.lang.Number... values) |
default S |
setData(Value<?>... to) |
default S |
setData2(boolean setByReference,
java.util.List<? extends java.util.List<? extends V>> to) |
default S |
setData2(boolean copyByReference,
Vector<?,V>... to) |
default S |
setData2(double[]... to) |
default S |
setData2(float[]... to) |
default S |
setData2(int[]... to) |
default S |
setData2(java.util.List<? extends java.util.List<? extends Value<?>>> to) |
default S |
setData2(long[]... to) |
default S |
setData2(Vector<?,?>... values) |
default S |
subtract(Matrix<?,?> other)
subtract the value from this
|
S |
transpose() |
static <V extends Value<V>> |
transposeData(java.util.List<java.util.List<V>> data) |
Matrix<?,V> |
withOrder(Matrix.Order order) |
anonymize, decoupleValue, getValue, immutable, invalidations, over, over
divide, divide, getDivided, getDivided, getDivided, getDivided, getDivided, getMultiplied, getMultiplied, getMultiplied, getMultiplied, getMultiplied, multiply, multiply
getSubtracted
getNegated
getPreMultiplied
getMultiplied
Matrix.Order getOrder()
Matrix<?,V> withOrder(Matrix.Order order)
java.util.List<V> getData()
java.util.List<java.util.List<V>> getData2()
Vector2<IntValue> getDimensions2()
default S negate()
default S multiply(long scalar)
default S multiply(double scalar)
default S divide(long scalar)
default S divide(double scalar)
default S add(Matrix<?,?> other)
Addable
default S subtract(Matrix<?,?> other)
Subtractable
default S preMultiply(Matrix<?,?> other)
preMultiply
in interface NonCommutativelyMultipliable<S extends Matrix<S,V>,Matrix<?,?>>
static <V extends Value<?>> java.util.List<java.util.List<V>> multiplyData(java.util.List<? extends java.util.List<? extends Value<?>>> data, java.util.List<? extends java.util.List<? extends Value<?>>> otherData)
static <V extends Value<?>> java.util.List<java.util.List<V>> preMultiplyData(java.util.List<? extends java.util.List<? extends Value<?>>> data, java.util.List<? extends java.util.List<? extends Value<?>>> otherData)
S transpose()
static <V extends Value<V>> java.util.List<java.util.List<V>> transposeData(java.util.List<java.util.List<V>> data)
default int getDataSize()
int getMajorSize()
int getMinorSize()
V getElement(int major, int minor)
default int getRowSize()
default int getColumnSize()
default boolean isSquare()
static <T extends Matrix<?,?>> T assertIsSquare(T matrix)
static <T extends Matrix<?,?>> T assertDimensions(T matrix, int rows, int columns)
static <T extends Matrix<?,?>> T assertDimensions(T matrix, int size)
default int[] getData(int[] dataArray)
default long[] getData(long[] dataArray)
default float[] getData(float[] dataArray)
default double[] getData(double[] dataArray)
default int[][] getData2(int[][] dataArray)
default long[][] getData2(long[][] dataArray)
default float[][] getData2(float[][] dataArray)
default double[][] getData2(double[][] dataArray)
default int[] getIntData()
default long[] getLongData()
default float[] getFloatData()
default double[] getDoubleData()
default int[][] getIntData2()
default long[][] getLongData2()
default float[][] getFloatData2()
default double[][] getDoubleData2()
S operateOnData(java.util.function.BiFunction<? super V,java.lang.Integer,? extends V> operator)
S operateOnData2(TriFunction<? super V,java.lang.Integer,java.lang.Integer,? extends V> operator)
default <I> S operateOnData(java.util.List<? extends I> itemList, java.util.function.BiFunction<? super V,? super I,? extends V> operator)
default <I> S operateOnData2(java.util.List<? extends java.util.List<? extends I>> itemList, java.util.function.BiFunction<? super V,? super I,? extends V> operator)
default S setData2(boolean setByReference, java.util.List<? extends java.util.List<? extends V>> to)
default S setData(java.lang.Number... values)
default S setData(int[] to)
default S setData(long[] to)
default S setData(float[] to)
default S setData(double[] to)
default S setData2(int[]... to)
default S setData2(long[]... to)
default S setData2(float[]... to)
default S setData2(double[]... to)