Parallel Colt 0.7.2

## cern.colt.matrix.tfloat.algo.solver Class FloatHyBR

```java.lang.Object
cern.colt.matrix.tfloat.algo.solver.AbstractFloatIterativeSolver
cern.colt.matrix.tfloat.algo.solver.FloatHyBR
```
All Implemented Interfaces:
FloatIterativeSolver

`public class FloatHyBRextends AbstractFloatIterativeSolver`

HyBR is a Hybrid Bidiagonalization Regularization method used for solving large-scale, ill-posed inverse problems of the form: b = A*x + noise The method combines an iterative Lanczos Bidiagonalization (LBD) Method with an SVD-based regularization method to stabilize the semiconvergence behavior that is characteristic of many ill-posed problems. The code is derived from RestoreTools: An Object Oriented Matlab Package for Image Restoration written by James G. Nagy and several of his students, including Julianne Chung, Katrina Palmer, Lisa Perrone, and Ryan Wright.

References:

[1] Paige and Saunders, "LSQR an algorithm for sparse linear equations an sparse least squares", ACM Trans. Math Software, 8 (1982), pp. 43-71.

[2] Bjorck, Grimme and Van Dooren, "An implicit shift bidiagonalization algorithm for ill-posed systems", BIT 34 (11994), pp. 520-534.

[3] Chung, Nagy and O'Leary, "A Weighted GCV Method for Lanczos Hybrid Regularization", Elec. Trans. Numer. Anal., 28 (2008), pp. 149--167.

Author:
Piotr Wendykier (piotr.wendykier@gmail.com)

Constructor Summary
`FloatHyBR()`
Creates new instance of HyBR solver with default parameters:

innerSolver = HyBR.InnerSolver.TIKHONOV
regularizationParameter = 0
omega = 0
reorthogonalize = false
beginRegularization = 2
flatTolerance = 1e-6
computeRnrm = false;
```FloatHyBR(HyBRInnerSolver innerSolver, HyBRRegularizationMethod regularizationMethod, float regularizationParameter, float omega, boolean reorthogonalize, int beginRegularization, float flatTolerance, boolean computeRnrm)```
Creates new instance of HyBR solver.

Method Summary
` FloatMatrix1D` ```solve(FloatMatrix2D A, FloatMatrix1D b, FloatMatrix1D x)```
Solves the given problem, writing result into the vector.

Methods inherited from class cern.colt.matrix.tfloat.algo.solver.AbstractFloatIterativeSolver
`getIterationMonitor, getPreconditioner, setIterationMonitor, setPreconditioner`

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

Constructor Detail

### FloatHyBR

`public FloatHyBR()`
Creates new instance of HyBR solver with default parameters:

innerSolver = HyBR.InnerSolver.TIKHONOV
regularizationParameter = 0
omega = 0
reorthogonalize = false
beginRegularization = 2
flatTolerance = 1e-6
computeRnrm = false;

### FloatHyBR

```public FloatHyBR(HyBRInnerSolver innerSolver,
HyBRRegularizationMethod regularizationMethod,
float regularizationParameter,
float omega,
boolean reorthogonalize,
int beginRegularization,
float flatTolerance,
boolean computeRnrm)```
Creates new instance of HyBR solver.

Parameters:
`innerSolver` - solver for the inner problem
`regularizationMethod` - a method for choosing a regularization parameter
`regularizationParameter` - if regularizationMethod == HyBR.RegularizationMethod.NONE then the regularization parameter has to be specified here (value from the interval (0,1))
`omega` - regularizationMethod == HyBR.RegularizationMethod.WGCV then omega has to be specified here (must be nonnegative)
`reorthogonalize` - if thue then Lanczos subspaces are reorthogonalized
`beginRegularization` - begin regularization after this iteration (must be at least 2)
`flatTolerance` - tolerance for detecting flatness in the GCV curve as a stopping criteria (must be nonnegative)
`computeRnorm` - if true then the norm of relative residual is computed
Method Detail

### solve

```public FloatMatrix1D solve(FloatMatrix2D A,
FloatMatrix1D b,
FloatMatrix1D x)
throws IterativeSolverFloatNotConvergedException```
Description copied from interface: `FloatIterativeSolver`
Solves the given problem, writing result into the vector.

Parameters:
`A` - Matrix of the problem
`b` - Right hand side
`x` - Solution is stored here. Also used as initial guess
Returns:
The solution vector x
Throws:
`IterativeSolverFloatNotConvergedException`

Parallel Colt 0.7.2