@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); }
@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); }