/// <summary> /// Construct a solver with given accuracies. /// </summary> /// <param name="relativeAccuracy"> Maximum relative error. </param> /// <param name="absoluteAccuracy"> Maximum absolute error. </param> /// <param name="functionValueAccuracy"> Maximum function value error. </param> //JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: //ORIGINAL LINE: protected BaseAbstractUnivariateSolver(final double relativeAccuracy, final double absoluteAccuracy, final double functionValueAccuracy) protected internal BaseAbstractUnivariateSolver(double relativeAccuracy, double absoluteAccuracy, double functionValueAccuracy) { this.absoluteAccuracy = absoluteAccuracy; this.relativeAccuracy = relativeAccuracy; this.functionValueAccuracy = functionValueAccuracy; this.evaluations = IntegerSequence.Incrementor.Create(); }
/// <summary> /// Prepare for computation. /// Subclasses must call this method if they override any of the /// {@code solve} methods. /// </summary> /// <param name="f"> Function to solve. </param> /// <param name="min"> Lower bound for the interval. </param> /// <param name="max"> Upper bound for the interval. </param> /// <param name="startValue"> Start value to use. </param> /// <param name="maxEval"> Maximum number of evaluations. </param> /// <exception cref="NullArgumentException"> if f is null </exception> protected internal virtual void Setup(int maxEval, FUNC f, double min, double max, double startValue) { // Checks. MathUtils.CheckNotNull(f); // Reset. searchMin = min; searchMax = max; searchStart = startValue; function = f; evaluations = evaluations.WithMaximalCount(maxEval).withStart(0); }