Class QrHelperFunctions_DSCC


public class QrHelperFunctions_DSCC extends Object
Functions used with a sparse QR decomposition
  • Constructor Details

    • QrHelperFunctions_DSCC

      public QrHelperFunctions_DSCC()
  • Method Details

    • applyHouseholder

      public static void applyHouseholder(DMatrixSparseCSC V, int colV, double beta, double[] x)

      Applies a sparse Householder vector to a dense vector.

           x = x - v*(beta*(v'*x))

      NOTE: This is the same as cs_happly() in csparse

      V - (Input) Matrix containing the Householder
      colV - Column in V with the Householder vector
      beta - scalar
      x - (Input and Output) vector that the Householder is applied to. Modified.
    • rank1UpdateMultR

      public static void rank1UpdateMultR(DMatrixSparseCSC V, int colV, double gamma, DMatrixSparseCSC A, DMatrixSparseCSC C, @Nullable @Nullable IGrowArray gw, @Nullable @Nullable DGrowArray gx)

      Performs a rank-1 update operation on the submatrix specified by V with the multiply on the right.

      C = (I - γ*v*vT)*A

      The order that matrix multiplies are performed has been carefully selected to minimize the number of operations.

      Before this can become a truly generic operation the submatrix specification needs to be made more generic.

    • computeHouseholder

      public static double computeHouseholder(double[] x, int xStart, int xEnd, double max, DScalar gamma)
      Creates a householder reflection. (I-gamma*v*v')*x = tau*e1

      NOTE: Same as cs_house in csparse

      x - (Input) Vector x (Output) Vector v. Modified.
      xStart - First index in X that is to be processed
      xEnd - Last + 1 index in x that is to be processed.
      gamma - (Output) Storage for computed gamma
      variable tau