public UnconLeastSqTrustRegionSchur_F64( ParameterUpdate<S> update , HessianSchurComplement<S> hessian ) { super(update,hessian); jacLeft = hessian.createMatrix(); jacRight = hessian.createMatrix(); }
@Override protected void functionGradientHessian(DMatrixRMaj x, boolean sameStateAsCost, DMatrixRMaj gradient, HessianSchurComplement<S> hessian) { if( !sameStateAsCost ) functionResiduals.process(x.data,residuals.data); functionJacobian.process(x.data,jacLeft,jacRight); hessian.computeHessian(jacLeft,jacRight); hessian.computeGradient(jacLeft,jacRight,residuals,gradient); }
@Override protected void functionGradientHessian(DMatrixRMaj x, boolean sameStateAsResiduals, DMatrixRMaj gradient, HessianSchurComplement<S> hessian) { if( !sameStateAsResiduals ) functionResiduals.process(x.data,residuals.data); functionJacobian.process(x.data,jacLeft,jacRight); hessian.computeHessian(jacLeft,jacRight); hessian.computeGradient(jacLeft,jacRight,residuals,gradient); }
@Override protected void functionGradientHessian(DMatrixRMaj x, boolean sameStateAsResiduals, DMatrixRMaj gradient, HessianSchurComplement<S> hessian) { if( !sameStateAsResiduals ) functionResiduals.process(x.data,residuals.data); functionJacobian.process(x.data,jacLeft,jacRight); hessian.computeHessian(jacLeft,jacRight); hessian.computeGradient(jacLeft,jacRight,residuals,gradient); }
public UnconLeastSqTrustRegionSchur_F64( ParameterUpdate<S> update , HessianSchurComplement<S> hessian ) { super(update,hessian); jacLeft = hessian.createMatrix(); jacRight = hessian.createMatrix(); }
@Override protected void functionGradientHessian(DMatrixRMaj x, boolean sameStateAsCost, DMatrixRMaj gradient, HessianSchurComplement<S> hessian) { if( !sameStateAsCost ) functionResiduals.process(x.data,residuals.data); functionJacobian.process(x.data,jacLeft,jacRight); hessian.computeHessian(jacLeft,jacRight); hessian.computeGradient(jacLeft,jacRight,residuals,gradient); }