org.apache.commons.math3.linear

## Class QRDecomposition.Solver

- java.lang.Object
- - org.apache.commons.math3.linear.QRDecomposition.Solver

- All Implemented Interfaces:
    DecompositionSolver
  Enclosing class:
    QRDecomposition

      private static class QRDecomposition.Solver
      extends java.lang.Object
      implements DecompositionSolver

  Specialized solver.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private double[][]` | `qrt` A packed TRANSPOSED representation of the QR decomposition.
    `private double[]` | `rDiag` The diagonal elements of R.
    `private double` | `threshold` Singularity threshold.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `private` | `QRDecomposition.Solver(double[][] qrt, double[] rDiag, double threshold)` Build a solver from decomposed matrix.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `RealMatrix` | `getInverse()` Get the inverse (or pseudo-inverse) of the decomposed matrix.
    `boolean` | `isNonSingular()` Check if the decomposed matrix is non-singular.
    `RealMatrix` | `solve(RealMatrix b)` Solve the linear equation A × X = B for matrices A.
    `RealVector` | `solve(RealVector b)` Solve the linear equation A × X = B for matrices A.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### qrt

          private final double[][] qrt

      A packed TRANSPOSED representation of the QR decomposition.

      The elements BELOW the diagonal are the elements of the UPPER triangular matrix R, and the rows ABOVE the diagonal are the Householder reflector vectors from which an explicit form of Q can be recomputed if desired.

    - #### rDiag

          private final double[] rDiag

      The diagonal elements of R.

    - #### threshold

          private final double threshold

      Singularity threshold.

  - ### Constructor Detail

    - #### QRDecomposition.Solver

          private QRDecomposition.Solver(double[][] qrt,
                                double[] rDiag,
                                double threshold)

      Build a solver from decomposed matrix.
      Parameters:
        `qrt` - Packed TRANSPOSED representation of the QR decomposition.
        `rDiag` - Diagonal elements of R.
        `threshold` - Singularity threshold.

  - ### Method Detail

    - #### isNonSingular

          public boolean isNonSingular()

      Check if the decomposed matrix is non-singular.
      Specified by:
        `isNonSingular` in interface `DecompositionSolver`
      Returns:
        true if the decomposed matrix is non-singular.

    - #### solve

          public RealVector solve(RealVector b)

      Solve the linear equation A × X = B for matrices A.

      The A matrix is implicit, it is provided by the underlying decomposition algorithm.

      Specified by:
        `solve` in interface `DecompositionSolver`
      Parameters:
        `b` - right-hand side of the equation A × X = B
      Returns:
        a vector X that minimizes the two norm of A × X - B

    - #### solve

          public RealMatrix solve(RealMatrix b)

      Solve the linear equation A × X = B for matrices A.

      The A matrix is implicit, it is provided by the underlying decomposition algorithm.

      Specified by:
        `solve` in interface `DecompositionSolver`
      Parameters:
        `b` - right-hand side of the equation A × X = B
      Returns:
        a matrix X that minimizes the two norm of A × X - B

    - #### getInverse

          public RealMatrix getInverse()

      Get the inverse (or pseudo-inverse) of the decomposed matrix.
      Specified by:
        `getInverse` in interface `DecompositionSolver`
      Returns:
        inverse matrix

Copyright (c) 2003-2013 Apache Software Foundation