Browse Source

Optimization: Fix bug in ObjectiveChecker and ObjectiveChecker1D

* Bug caused the checks to be run every time a value/gradient/hessian was
requested, not just the first time a request was made.

(updated by cdrnet)
optimization-2
Scott Stephens 13 years ago
committed by Christoph Ruegg
parent
commit
a7e5853f2f
  1. 3
      src/Numerics/Optimization/ObjectiveChecker.cs
  2. 3
      src/Numerics/Optimization/ObjectiveChecker1D.cs

3
src/Numerics/Optimization/ObjectiveChecker.cs

@ -73,6 +73,7 @@ namespace MathNet.Numerics.Optimization
throw new EvaluationException("Objective function evaluation failed.", InnerEvaluation, e);
}
Checker.ValueChecker(InnerEvaluation);
ValueChecked = true;
}
return InnerEvaluation.Value;
}
@ -94,6 +95,7 @@ namespace MathNet.Numerics.Optimization
throw new EvaluationException("Objective gradient evaluation failed.", InnerEvaluation, e);
}
Checker.GradientChecker(InnerEvaluation);
GradientChecked = true;
}
return InnerEvaluation.Gradient;
}
@ -115,6 +117,7 @@ namespace MathNet.Numerics.Optimization
throw new EvaluationException("Objective hessian evaluation failed.", InnerEvaluation, e);
}
Checker.HessianChecker(InnerEvaluation);
HessianChecked = true;
}
return InnerEvaluation.Hessian;
}

3
src/Numerics/Optimization/ObjectiveChecker1D.cs

@ -72,6 +72,7 @@ namespace MathNet.Numerics.Optimization
throw new EvaluationException("Objective function evaluation failed.", InnerEvaluation, e);
}
Checker.ValueChecker(InnerEvaluation);
ValueChecked = true;
}
return InnerEvaluation.Value;
}
@ -93,6 +94,7 @@ namespace MathNet.Numerics.Optimization
throw new EvaluationException("Objective derivative evaluation failed.", InnerEvaluation, e);
}
Checker.DerivativeChecker(InnerEvaluation);
DerivativeChecked = true;
}
return InnerEvaluation.Derivative;
}
@ -114,6 +116,7 @@ namespace MathNet.Numerics.Optimization
throw new EvaluationException("Objective second derivative evaluation failed.", InnerEvaluation, e);
}
Checker.SecondDerivativeChecker(InnerEvaluation);
SecondDerivativeChecked = true;
}
return InnerEvaluation.SecondDerivative;
}

Loading…
Cancel
Save