Class QrHelperFunctions_DSCC


  • public class QrHelperFunctions_DSCC
    extends java.lang.Object
    Functions used with a sparse QR decomposition
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void applyHouseholder​(org.ejml.data.DMatrixSparseCSC V, int colV, double beta, double[] x)
      Applies a sparse Householder vector to a dense vector.
      static double computeHouseholder​(double[] x, int xStart, int xEnd, double max, org.ejml.data.DScalar gamma)
      Creates a householder reflection.
      static void rank1UpdateMultR​(org.ejml.data.DMatrixSparseCSC V, int colV, double gamma, org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixSparseCSC C, org.ejml.data.IGrowArray gw, org.ejml.data.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
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • QrHelperFunctions_DSCC

        public QrHelperFunctions_DSCC()
    • Method Detail

      • applyHouseholder

        public static void applyHouseholder​(org.ejml.data.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

        Parameters:
        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​(org.ejml.data.DMatrixSparseCSC V,
                                            int colV,
                                            double gamma,
                                            org.ejml.data.DMatrixSparseCSC A,
                                            org.ejml.data.DMatrixSparseCSC C,
                                            org.ejml.data.IGrowArray gw,
                                            org.ejml.data.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,
                                                org.ejml.data.DScalar gamma)
        Creates a householder reflection. (I-gamma*v*v')*x = tau*e1

        NOTE: Same as cs_house in csparse

        Parameters:
        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
        Returns:
        variable tau