@Override public double process(double[] input) { func.process(input,output); double result = 0; for( int i = 0; i < output.length; i++ ) { result += output[i]*output[i]; } return result; } }
@Override public void computeFunctions(double[] output) { func.process(x,output); }
@Override public double process(double[] input) { func.process(input,output); double result = 0; for( int i = 0; i < output.length; i++ ) { result += output[i]*output[i]; } return result; } }
@Override protected void computeResiduals(DMatrixRMaj x, DMatrixRMaj residuals) { functionResiduals.process(x.data,residuals.data); } }
@Override protected void computeResiduals(DMatrixRMaj x, DMatrixRMaj residuals) { functionResiduals.process(x.data,residuals.data); } }
@Override protected void computeResiduals(DMatrixRMaj x, DMatrixRMaj residuals) { functionResiduals.process(x.data,residuals.data); } }
@Override protected void computeResiduals(DMatrixRMaj x, DMatrixRMaj residuals) { functionResiduals.process(x.data,residuals.data); } }
@Override public void computeFunctions(double[] output) { func.process(x,output); }
@Override protected double cost(DMatrixRMaj x) { functionResiduals.process(x.data,residuals.data); return 0.5*SpecializedOps_DDRM.elementSumSq(residuals); }
@Override protected double cost(DMatrixRMaj x) { functionResiduals.process(x.data,residuals.data); return 0.5*SpecializedOps_DDRM.elementSumSq(residuals); }
@Override protected double cost(DMatrixRMaj x) { functionResiduals.process(x.data,residuals.data); return 0.5*SpecializedOps_DDRM.elementSumSq(residuals); }
@Override protected double cost(DMatrixRMaj x) { functionResiduals.process(x.data,residuals.data); return 0.5*SpecializedOps_DDRM.elementSumSq(residuals); }
@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 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 sameStateAsCost, DMatrixRMaj gradient, HessianLeastSquares<S> hessian) { if( !sameStateAsCost ) functionResiduals.process(x.data,residuals.data); functionJacobian.process(x.data,jacobian); hessian.updateHessian(jacobian); math.multTransA(jacobian, residuals, gradient); }
@Override protected void functionGradientHessian(DMatrixRMaj x, boolean sameStateAsResiduals, DMatrixRMaj gradient, HessianLeastSquares<S> hessian) { if( !sameStateAsResiduals ) functionResiduals.process(x.data,residuals.data); functionJacobian.process(x.data,jacobian); hessian.updateHessian(jacobian); math.multTransA(jacobian, residuals, gradient); }
@Override protected void functionGradientHessian(DMatrixRMaj x, boolean sameStateAsCost, DMatrixRMaj gradient, HessianLeastSquares<S> hessian) { if( !sameStateAsCost ) functionResiduals.process(x.data,residuals.data); functionJacobian.process(x.data,jacobian); hessian.updateHessian(jacobian); math.multTransA(jacobian, 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, HessianLeastSquares<S> hessian) { if( !sameStateAsResiduals ) functionResiduals.process(x.data,residuals.data); functionJacobian.process(x.data,jacobian); hessian.updateHessian(jacobian); math.multTransA(jacobian, 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); }