ru.sscc.matrix.solve
Class RotationSolver

java.lang.Object
  |
  +--ru.sscc.matrix.solve.RealDirectSolver
        |
        +--ru.sscc.matrix.solve.RealDenseSolver
              |
              +--ru.sscc.matrix.solve.RealCommonSolver
                    |
                    +--ru.sscc.matrix.solve.RotationSolver

public class RotationSolver
extends RealCommonSolver

Solves SLAE with a rectangular dense matrix using Givens rotations. If the solution doesn't exist or isn't unique, the normal pseudo-solution is found by the solve method. If the factorized matrix has non-maximal range, the CalculatingException will be thrown at the end of factorization. You can ignore the exception and solve the system in this case also.

See Also:
Serialized Form

Fields inherited from class ru.sscc.matrix.solve.RealCommonSolver
balanceVector, range
 
Fields inherited from class ru.sscc.matrix.solve.RealDenseSolver
matrix
 
Constructor Summary
RotationSolver()
          Constructor without attachment of a matrix.
RotationSolver(DenseMatrix matrix)
          Constructs an instance upon a dense matrix.
RotationSolver(int nRows, int nColumns)
          Constructs an instance with clear matrix of the double[] type.
RotationSolver(RealContainer entries, int nRows, int nColumns)
          Constructs an instance based on a user's real data container.
 
Method Summary
protected  void doFactorize()
          Factorizes the matrix using Givens rotations.
 void transform(DenseMatrix matrix)
          Applies the orthogonal transformation to the dense matrix in the same order as it was done at the factorization of the attached matrix.
 void transform(RealVector vector)
          Applies the orthogonal transformation to the vector in the same order as it was done at the factorization of the attached matrix (the first step of solving SLAE with already factorized matrix).
 void transformT(RealVector vector)
          Applies the transpose orthogonal transformation to the vector.
 
Methods inherited from class ru.sscc.matrix.solve.RealCommonSolver
attach, backSubstitution, backSubstitutionT, balance, balanceVector, columnFactorized, doBackSubstitution, doBackSubstitutionT, ensureTransformable, factorize, getReductionAccuracy, hasBalanceTag, matrixRange, nullSpace, nullSpaceRange, prepareNullVector, reuse, setBalanceTag, setReductionAccuracy, solve, solveT
 
Methods inherited from class ru.sscc.matrix.solve.RealDenseSolver
clone, forwardSubstitution, getMatrix, solveLowerTriangular, solveUpperTriangular, sourceSize, targetSize
 
Methods inherited from class ru.sscc.matrix.solve.RealDirectSolver
constructInverse, constructRefinedInverse, ensureFactorized, isFactorized, setFactorized, solveAndRefine
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RotationSolver

public RotationSolver()
Constructor without attachment of a matrix.

RotationSolver

public RotationSolver(int nRows,
                      int nColumns)
Constructs an instance with clear matrix of the double[] type.
Parameters:
nRows - the number of rows
nColumns - the number of columns

RotationSolver

public RotationSolver(RealContainer entries,
                      int nRows,
                      int nColumns)
Constructs an instance based on a user's real data container.
Parameters:
entries - the matrix container consisting of entries ordered by rows
nRows - the number of rows
nColumns - the number of columns

RotationSolver

public RotationSolver(DenseMatrix matrix)
Constructs an instance upon a dense matrix.
Parameters:
matrix - the rectangular dense matrix
Method Detail

doFactorize

protected void doFactorize()
Factorizes the matrix using Givens rotations.
Overrides:
doFactorize in class RealCommonSolver

transform

public void transform(DenseMatrix matrix)
Applies the orthogonal transformation to the dense matrix in the same order as it was done at the factorization of the attached matrix.
Overrides:
transform in class RealCommonSolver

transform

public void transform(RealVector vector)
Applies the orthogonal transformation to the vector in the same order as it was done at the factorization of the attached matrix (the first step of solving SLAE with already factorized matrix).
Overrides:
transform in class RealCommonSolver

transformT

public void transformT(RealVector vector)
Applies the transpose orthogonal transformation to the vector.
Overrides:
transformT in class RealCommonSolver