/// <summary>Initializes a new instance of the <see cref="LevenbergMarquardtOptimizer"/> class.
        /// </summary>
        /// <param name="abortCondition">The abort (stopping) condition for the Simulated Annealing optimizer.</param>
        public LevenbergMarquardtOptimizer(LevenbergMarquardtAbortCondition abortCondition)
        {
            AbortCondition = abortCondition ?? throw new ArgumentNullException(nameof(abortCondition));

            m_Name = new IdentifierString("Levenberg-Marquardt");
            m_FunctionDescriptor   = new MultivariateFunctionFactory();
            m_ConstraintDescriptor = new MultiDimOptimizerConstraintFactory(MultiDimOptimizerConstraintFactory.ConstraintType.Box | MultiDimOptimizerConstraintFactory.ConstraintType.LinearEquation | MultiDimOptimizerConstraintFactory.ConstraintType.LinearInEquation | MultiDimOptimizerConstraintFactory.ConstraintType.None);
        }
 /// <summary>Initializes the <see cref="LevenbergMarquardtOptimizer" /> class.
 /// </summary>
 static LevenbergMarquardtOptimizer()
 {
     StandardAbortCondition = LevenbergMarquardtAbortCondition.Create();
 }