Package gorsat.Regression
Class LinearAlgebra
java.lang.Object
gorsat.Regression.LinearAlgebra
public class LinearAlgebra
extends java.lang.Object
-
Method Summary
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 Details
-
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.
-