Package gorsat.Regression
Class LinearAlgebra
- java.lang.Object
-
- gorsat.Regression.LinearAlgebra
-
public class LinearAlgebra extends java.lang.Object
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidaddMultipleOf(double[] x, double a, double[] y, int offset, int upTo)Adds a * y to x.static voidcholeskyFactorize(double[][] A, int dim)Decomposes the matrix to A = UU^T where U is upper triangular.static doubledotProd(double[] x, double[] y, int len)Computes the dot product of the sub-vectors of x and y consisting of the elements whose index is < len.static doubledotProd(double[] x, double[] y, int offset, int upTo)Computes the dot product of the sub-vectors of x and y consisting of the elements whose index is < upTo and ≥ offset.static voidinvertUpperTriangular(double[][] U, double[][] X, int n)Inverts the upper triangular matrix n x n matrix U.static voidQRFactorize(double[][] X, double[] rDiag, int m)QR decomposes X.static voidsolveLower(double[][] L, double[] x, double[] y, int n)Solves Lx = y and writes the result to x.static voidsolveSymPosDef(double[][] A, double[] x, double[] b)Solves Ax = b and writes the results to x.static voidsolveUpper(double[][] U, double[] x, double[] y, int n)Solves Ux = y and writes the result to x.static doublesum(double[] x, int len)Computes the sum of the elements ofxwith index <len.static doublesum(double[] x, int offset, int upTo)Computes the sum the elements of x whose index is < upTo and ≥ offset.static doubletripleDotProd(double[] x, double[] y, double[] z, int len)Computes the triple dot product of the sub-vectors of x, y, z consisting of the elements whose index is < len.static doubletripleDotProd(double[] x, double[] y, double[] z, int offset, int upTo)Computes the tripte dot product of the sub-vectors of x, y, z consisting of the elements whose index is < upTo and ≥ offset.
-
-
-
Method Detail
-
solveSymPosDef
public static void solveSymPosDef(double[][] A, double[] x, double[] b)Solves Ax = b and writes the results to x. The matrix A must be symmetric and positively determined.
-
choleskyFactorize
public static void choleskyFactorize(double[][] A, int dim)Decomposes the matrix to A = UU^T where U is upper triangular. Writes the result to A.
-
solveUpper
public static void solveUpper(double[][] U, double[] x, double[] y, int n)Solves Ux = y and writes the result to x. It is ok if x and y are the same vector. The matrix U should be transposed.
-
solveLower
public static void solveLower(double[][] L, double[] x, double[] y, int n)Solves Lx = y and writes the result to x. The vector x must be different from y.
-
QRFactorize
public static void QRFactorize(double[][] X, double[] rDiag, int m)QR decomposes X. The matrix X is indexed (column, row) (it is transposed). The results are written to X s.t. in X[i] we write r_0i, r_1i,...,r_i-1i, h_i0, h_i1, ...,h_im-i-1 where h_i is the i-th Householder reflector vector. In rDiag we write r_00, r_11,...,r_nn where n is the number of columns in X. The number m is the number of rows in X.
-
invertUpperTriangular
public static void invertUpperTriangular(double[][] U, double[][] X, int n)Inverts the upper triangular matrix n x n matrix U. Writes the results to X.
-
dotProd
public static double dotProd(double[] x, double[] y, int len)Computes the dot product of the sub-vectors of x and y consisting of the elements whose index is < len.
-
dotProd
public static double dotProd(double[] x, double[] y, int offset, int upTo)Computes the dot product of the sub-vectors of x and y consisting of the elements whose index is < upTo and ≥ offset.
-
tripleDotProd
public static double tripleDotProd(double[] x, double[] y, double[] z, int len)Computes the triple dot product of the sub-vectors of x, y, z consisting of the elements whose index is < len.
-
tripleDotProd
public static double tripleDotProd(double[] x, double[] y, double[] z, int offset, int upTo)Computes the tripte dot product of the sub-vectors of x, y, z consisting of the elements whose index is < upTo and ≥ offset.
-
sum
public static double sum(double[] x, int len)Computes the sum of the elements ofxwith index <len.
-
sum
public static double sum(double[] x, int offset, int upTo)Computes the sum the elements of x whose index is < upTo and ≥ offset.
-
addMultipleOf
public static void addMultipleOf(double[] x, double a, double[] y, int offset, int upTo)Adds a * y to x.
-
-