/// <summary>Initializes a new instance of the <see cref="OneDimRootFinderFunction"/> class.
 /// </summary>
 /// <param name="functionFactory">The objective function descriptor, i.e. the <see cref="OneDimRootFinderFunctionFactory"/> object that served as factory for the current object.</param>
 /// <param name="objectiveFunction">The objective function.</param>
 internal OneDimRootFinderFunction(OneDimRootFinderFunctionFactory functionFactory, Func<double, double> objectiveFunction)
 {
     m_Factory = functionFactory ?? throw new ArgumentNullException(nameof(functionFactory));
     m_ObjectiveFunction = objectiveFunction ?? throw new ArgumentNullException(nameof(objectiveFunction));
 }
 /// <summary>Initializes a new instance of the <see cref="OneDimRootFinderDifferentiableFunction"/> class.
 /// </summary>
 /// <param name="functionFactory">The objective function descriptor, i.e. the <see cref="OneDimRootFinderFunctionFactory"/> object that served as factory for the current object.</param>
 /// <param name="objectiveFunction">The objective function.</param>
 internal OneDimRootFinderDifferentiableFunction(OneDimRootFinderFunctionFactory functionFactory, OneDimEquationSolver.DifferentiableObjectiveFunction objectiveFunction)
     : base(functionFactory, x => { double dummy; return(objectiveFunction(x, out dummy)); })
 {
     m_DifferentiableObjectiveFunction = objectiveFunction ?? throw new ArgumentNullException(nameof(objectiveFunction));
 }