/// <summary>Initializes a new instance of the <see cref="GoldenSectionSearchOptimizer"/> class.
        /// </summary>
        /// <param name="bracketingApproach">The Bracketing approach.</param>
        /// <param name="abortCondition">The abort (stopping) condition for the Golden Section Search optimizer.</param>
        public GoldenSectionSearchOptimizer(IMinimumBracketing bracketingApproach, GoldenSectionSearchAbortCondition abortCondition)
        {
            BracketingApproach = bracketingApproach ?? throw new ArgumentNullException(nameof(bracketingApproach));
            AbortCondition     = abortCondition ?? throw new ArgumentNullException(nameof(abortCondition));

            m_Name = new IdentifierString(String.Format("Golden Section Search; {0}", abortCondition.ToString()));
            m_ObjectiveFunctionFactory = new OneDimOptimizerFunctionFactory();
            m_ConstraintDescriptor     = new OneDimOptimizerConstraintFactory(OneDimOptimizerConstraintFactory.ConstraintType.All);
        }
 /// <summary>Initializes the <see cref="GoldenSectionSearchOptimizer" /> class.
 /// </summary>
 static GoldenSectionSearchOptimizer()
 {
     StandardAbortCondition    = GoldenSectionSearchAbortCondition.Create();
     StandardMinimumBracketing = new DownhillBracketing();
 }