java.lang.Object
org.cicirello.math.la.MatrixOps
Utility class of basic linear algebra matrix operations, where matrices are represented as 2-D
Java arrays.
-
Method Summary
Modifier and TypeMethodDescriptionstatic double[][]difference(double[][] A, double[][] B) Computes C = A - B.static double[][]difference(double[][] A, double[][] B, double[][] C) Computes C = A - B.static int[][]difference(int[][] A, int[][] B) Computes C = A - B.static int[][]difference(int[][] A, int[][] B, int[][] C) Computes C = A - B.static double[][]product(double[][] A, double[][] B) Computes C = A * B.static double[][]product(double[][] A, double[][] B, double[][] C) Computes C = A * B.static int[][]product(int[][] A, int[][] B) Computes C = A * B.static int[][]product(int[][] A, int[][] B, int[][] C) Computes C = A * B.static double[][]sum(double[][] A, double[][] B) Computes C = A + B.static double[][]sum(double[][] A, double[][] B, double[][] C) Computes C = A + B.static int[][]sum(int[][] A, int[][] B) Computes C = A + B.static int[][]sum(int[][] A, int[][] B, int[][] C) Computes C = A + B.static double[][]transposeSquareMatrixInline(double[][] matrix) Transpose a square matrix inline.static int[][]transposeSquareMatrixInline(int[][] matrix) Transpose a square matrix inline.
-
Method Details
-
transposeSquareMatrixInline
public static int[][] transposeSquareMatrixInline(int[][] matrix) Transpose a square matrix inline.- Parameters:
matrix- the matrix to transpose, with result replacing contents of matrix.- Returns:
- The matrix is returned for convenience for passing to other methods requiring a matrix as parameter. It is the same object reference that was passed as a parameter.
- Throws:
NullPointerException- if matrix is null.ArrayIndexOutOfBoundsException- if matrix is not square.
-
transposeSquareMatrixInline
public static double[][] transposeSquareMatrixInline(double[][] matrix) Transpose a square matrix inline.- Parameters:
matrix- the matrix to transpose, with result replacing contents of matrix.- Returns:
- The matrix is returned for convenience for passing to other methods requiring a matrix as parameter. It is the same object reference that was passed as a parameter.
- Throws:
NullPointerException- if matrix is null.ArrayIndexOutOfBoundsException- if matrix is not square.
-
sum
public static int[][] sum(int[][] A, int[][] B, int[][] C) Computes C = A + B.- Parameters:
A- matrixB- matrixC- if C is null then a new matrix is constructed for result, otherwise C is used for result.- Returns:
- A reference to the C matrix.
- Throws:
NullPointerException- if either A or B is null.ArrayIndexOutOfBoundsException- if A and B are of differing dimensions.ArrayIndexOutOfBoundsException- if C is non-null, but different dimensions than A and B.
-
sum
public static double[][] sum(double[][] A, double[][] B, double[][] C) Computes C = A + B.- Parameters:
A- matrixB- matrixC- if C is null then a new matrix is constructed for result, otherwise C is used for result.- Returns:
- A reference to the C matrix.
- Throws:
NullPointerException- if either A or B is null.ArrayIndexOutOfBoundsException- if A and B are of differing dimensions.ArrayIndexOutOfBoundsException- if C is non-null, but different dimensions than A and B.
-
sum
public static int[][] sum(int[][] A, int[][] B) Computes C = A + B.- Parameters:
A- matrixB- matrix- Returns:
- A reference to a new matrix C containing the sum.
- Throws:
NullPointerException- if either A or B is null.ArrayIndexOutOfBoundsException- if A and B are of differing dimensions.
-
sum
public static double[][] sum(double[][] A, double[][] B) Computes C = A + B.- Parameters:
A- matrixB- matrix- Returns:
- A reference to a new matrix C containing the sum.
- Throws:
NullPointerException- if either A or B is null.ArrayIndexOutOfBoundsException- if A and B are of differing dimensions.
-
difference
public static int[][] difference(int[][] A, int[][] B, int[][] C) Computes C = A - B.- Parameters:
A- matrixB- matrixC- if C is null then a new matrix is constructed for result, otherwise C is used for result.- Returns:
- A reference to the C matrix.
- Throws:
NullPointerException- if either A or B is null.ArrayIndexOutOfBoundsException- if A and B are of differing dimensions.ArrayIndexOutOfBoundsException- if C is non-null, but different dimensions than A and B.
-
difference
public static double[][] difference(double[][] A, double[][] B, double[][] C) Computes C = A - B.- Parameters:
A- matrixB- matrixC- if C is null then a new matrix is constructed for result, otherwise C is used for result.- Returns:
- A reference to the C matrix.
- Throws:
NullPointerException- if either A or B is null.ArrayIndexOutOfBoundsException- if A and B are of differing dimensions.ArrayIndexOutOfBoundsException- if C is non-null, but different dimensions than A and B.
-
difference
public static int[][] difference(int[][] A, int[][] B) Computes C = A - B.- Parameters:
A- matrixB- matrix- Returns:
- A reference to a new matrix C containing the difference.
- Throws:
NullPointerException- if either A or B is null.ArrayIndexOutOfBoundsException- if A and B are of differing dimensions.
-
difference
public static double[][] difference(double[][] A, double[][] B) Computes C = A - B.- Parameters:
A- matrixB- matrix- Returns:
- A reference to a new matrix C containing the difference.
- Throws:
NullPointerException- if either A or B is null.ArrayIndexOutOfBoundsException- if A and B are of differing dimensions.
-
product
public static int[][] product(int[][] A, int[][] B, int[][] C) Computes C = A * B.- Parameters:
A- matrixB- matrixC- if C is null then a new matrix is constructed for result, otherwise C is used for result.- Returns:
- A reference to the C matrix.
- Throws:
NullPointerException- if either A or B is null.ArrayIndexOutOfBoundsException- if number of columns of A is not equal to number of rows of B.ArrayIndexOutOfBoundsException- if C is non-null, but dimensions inconsistent with A and B (must have same number of rows of A and same number of columns of B).
-
product
public static double[][] product(double[][] A, double[][] B, double[][] C) Computes C = A * B.- Parameters:
A- matrixB- matrixC- if C is null then a new matrix is constructed for result, otherwise C is used for result.- Returns:
- A reference to the C matrix.
- Throws:
NullPointerException- if either A or B is null.ArrayIndexOutOfBoundsException- if number of columns of A is not equal to number of rows of B.ArrayIndexOutOfBoundsException- if C is non-null, but dimensions inconsistent with A and B (must have same number of rows of A and same number of columns of B).
-
product
public static int[][] product(int[][] A, int[][] B) Computes C = A * B.- Parameters:
A- matrixB- matrix- Returns:
- A reference to a new matrix C containing the product.
- Throws:
NullPointerException- if either A or B is null.ArrayIndexOutOfBoundsException- if number of columns of A is not equal to number of rows of B.
-
product
public static double[][] product(double[][] A, double[][] B) Computes C = A * B.- Parameters:
A- matrixB- matrix- Returns:
- A reference to a new matrix C containing the product.
- Throws:
NullPointerException- if either A or B is null.ArrayIndexOutOfBoundsException- if number of columns of A is not equal to number of rows of B.
-