com.lgc.wsh.opt
Interface LinearTransform


public interface LinearTransform

Define methods applying a linear transform and its transpose


Method Summary
 void addTranspose(VectConst data, Vect model)
          Apply the transpose of a linear transform model = F' data Add to existing data.
 void adjustRobustErrors(Vect dataError)
          Apply any robust trimming of outliers, or scale all errors for an approximate L1 norm when squared.
 void forward(Vect data, VectConst model)
          Apply the linear transform data = F model Zero the current data, and do not add.
 void inverseHessian(Vect model)
          To speed convergence multiple a model by an approximate inverse Hessian.
 

Method Detail

forward

void forward(Vect data,
             VectConst model)
Apply the linear transform data = F model Zero the current data, and do not add.

Parameters:
data - Output after linear transform
model - Input for linear transform

addTranspose

void addTranspose(VectConst data,
                  Vect model)
Apply the transpose of a linear transform model = F' data Add to existing data.

Parameters:
data - Input for transpose.
model - Output after linear transform.

inverseHessian

void inverseHessian(Vect model)
To speed convergence multiple a model by an approximate inverse Hessian. An empty implementation is equivalent to an identity and is also okay. The Hessian is equivalent to multiplying once by the forward operation and then by the transpose. Your approximate inverse can greatly speed convergence by trying to diagonalize this Hessian, or at least balancing the diagonal.

Parameters:
model - The model to be multiplied.

adjustRobustErrors

void adjustRobustErrors(Vect dataError)
Apply any robust trimming of outliers, or scale all errors for an approximate L1 norm when squared. This method should do nothing if you want a standard least-squares solution. Do not change the overall variance of the errors more than necessary.

Parameters:
dataError - This is the original data minus the modeled data.