Interface HessianSchurComplement<S extends DMatrix>

All Superinterfaces:
HessianMath
All Known Implementing Classes:
HessianSchurComplement_Base, HessianSchurComplement_DDRM, HessianSchurComplement_DSCC

public interface HessianSchurComplement<S extends DMatrix> extends HessianMath

Given the already computed Jacobian (broken up into a left and right side) compute the decomposed approximate Hessian matrix, i.e. [A B, B D]

     A=L'*L
     B=L'*R
     D=R*R
 

Where L and R are the left and right hand side of the Jacobian, respectively

  • Method Details

    • computeHessian

      void computeHessian(S jacLeft, S jacRight)
      Given the left and right hand side of the Jacobian compute the Hessian.
      Parameters:
      jacLeft - (input) Jacobian left side
      jacRight - (input) Jacobian right side
    • computeGradient

      void computeGradient(S jacLeft, S jacRight, DMatrixRMaj residuals, DMatrixRMaj gradient)
      Computes the gradient given the Jacobian and the residuals.
      Parameters:
      jacLeft - (input) Jacobian left side
      jacRight - (input) Jacobian right side
      residuals - (Input) residuals
      gradient - (Output) gradient
    • createMatrix

      S createMatrix()
      Creates a matrix of the same type that this interface can process
      Returns:
      matrx