Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.math.linear
Class BiDiagonalTransformer

    java.lang.Object
      org.apache.commons.math.linear.BiDiagonalTransformer

     class BiDiagonalTransformer

extends java.lang.Object

Class transforming any matrix to bi-diagonal shape.

Any m × n matrix A can be written as the product of three matrices: A = U × B × VT with U an m × m orthogonal matrix, B an m × n bi-diagonal matrix (lower diagonal if m < n, upper diagonal otherwise), and V an n × n orthogonal matrix.

Transformation to bi-diagonal shape is often not a goal by itself, but it is an intermediate step in more general decomposition algorithms like `Singular Value Decomposition`. This class is therefore intended for internal use by the library and is not public. As a consequence of this explicitly limited scope, many methods directly returns references to internal arrays, not copies.

Since:
  2.0
Version:
  $Revision: 811685 $ $Date: 2009-09-05 13:36:48 -0400 (Sat, 05 Sep 2009) $

Field Summary
`private RealMatrix` | `cachedB` Cached value of B.
`private RealMatrix` | `cachedU` Cached value of U.
`private RealMatrix` | `cachedV` Cached value of V.
`private double[][]` | `householderVectors` Householder vectors.
`private double[]` | `main` Main diagonal.
`private double[]` | `secondary` Secondary diagonal.

Constructor Summary
`BiDiagonalTransformer(RealMatrix matrix)` Build the transformation to bi-diagonal shape of a matrix.

Method Summary
`RealMatrix` | `getB()` Returns the bi-diagonal matrix B of the transform.
`(package private) double[][]` | `getHouseholderVectorsRef()` Get the Householder vectors of the transform.
`(package private) double[]` | `getMainDiagonalRef()` Get the main diagonal elements of the matrix B of the transform.
`(package private) double[]` | `getSecondaryDiagonalRef()` Get the secondary diagonal elements of the matrix B of the transform.
`RealMatrix` | `getU()` Returns the matrix U of the transform.
`RealMatrix` | `getV()` Returns the matrix V of the transform.
`(package private) boolean` | `isUpperBiDiagonal()` Check if the matrix is transformed to upper bi-diagonal.
`private void` | `transformToLowerBiDiagonal()` Transform original matrix to lower bi-diagonal form.
`private void` | `transformToUpperBiDiagonal()` Transform original matrix to upper bi-diagonal form.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### householderVectors

    private final double[][] householderVectors

  Householder vectors.

### main

    private final double[] main

  Main diagonal.

### secondary

    private final double[] secondary

  Secondary diagonal.

### cachedU

    private RealMatrix cachedU

  Cached value of U.

### cachedB

    private RealMatrix cachedB

  Cached value of B.

### cachedV

    private RealMatrix cachedV

  Cached value of V.

Constructor Detail

### BiDiagonalTransformer

    public BiDiagonalTransformer(RealMatrix matrix)

  Build the transformation to bi-diagonal shape of a matrix.

  Parameters:
    `matrix` - the matrix to transform.

Method Detail

### getU

    public RealMatrix getU()

  Returns the matrix U of the transform.

  U is an orthogonal matrix, i.e. its transpose is also its inverse.

  Returns:
    the U matrix

### getB

    public RealMatrix getB()

  Returns the bi-diagonal matrix B of the transform.

  Returns:
    the B matrix

### getV

    public RealMatrix getV()

  Returns the matrix V of the transform.

  V is an orthogonal matrix, i.e. its transpose is also its inverse.

  Returns:
    the V matrix

### getHouseholderVectorsRef

    double[][] getHouseholderVectorsRef()

  Get the Householder vectors of the transform.

  Note that since this class is only intended for internal use, it returns directly a reference to its internal arrays, not a copy.

  Returns:
    the main diagonal elements of the B matrix

### getMainDiagonalRef

    double[] getMainDiagonalRef()

  Get the main diagonal elements of the matrix B of the transform.

  Note that since this class is only intended for internal use, it returns directly a reference to its internal arrays, not a copy.

  Returns:
    the main diagonal elements of the B matrix

### getSecondaryDiagonalRef

    double[] getSecondaryDiagonalRef()

  Get the secondary diagonal elements of the matrix B of the transform.

  Note that since this class is only intended for internal use, it returns directly a reference to its internal arrays, not a copy.

  Returns:
    the secondary diagonal elements of the B matrix

### isUpperBiDiagonal

    boolean isUpperBiDiagonal()

  Check if the matrix is transformed to upper bi-diagonal.

  Returns:
    true if the matrix is transformed to upper bi-diagonal

### transformToUpperBiDiagonal

    private void transformToUpperBiDiagonal()

  Transform original matrix to upper bi-diagonal form.

  Transformation is done using alternate Householder transforms on columns and rows.

### transformToLowerBiDiagonal

    private void transformToLowerBiDiagonal()

  Transform original matrix to lower bi-diagonal form.

  Transformation is done using alternate Householder transforms on rows and columns.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (c) 2003-2011 Apache Software Foundation