//Constructor /// <summary> /// Creates an initialized instance /// </summary> /// <param name="settings">Configuration parameters</param> public ParamSeeker(ParamSeekerSettings settings) { _settings = settings.DeepClone(); _plannedValues = new ValueError[_settings.NumOfSteps + 1]; Replan(_settings.Min, double.NaN, _settings.Max, double.NaN); return; }
/// <summary> /// Deep copy constructor /// </summary> /// <param name="source">Source instance</param> public ParamSeekerSettings(ParamSeekerSettings source) { Min = source.Min; Max = source.Max; NumOfSteps = source.NumOfSteps; return; }
//Methods /// <summary> /// See the base. /// </summary> public override bool Equals(object obj) { if (obj == null) { return(false); } ParamSeekerSettings cmpSettings = obj as ParamSeekerSettings; if (Max != cmpSettings.Max || Min != cmpSettings.Min || NumOfSteps != cmpSettings.NumOfSteps ) { return(false); } return(true); }
//Constructor /// <summary> /// Creates an initialized instance /// </summary> /// <param name="settings">Configuration parameters</param> public ParamSeeker(ParamSeekerSettings settings) { if (settings.NumOfSubIntervals == ParamSeekerSettings.AutoSubIntervalsNum) { if (settings.Min == settings.Max) { _numOfIntervalInnerPoints = 0; _testCaseCollection = new TestCase[1]; _testCaseCollection[0] = new TestCase() { ParamValue = settings.Min, Error = double.NaN }; _currentTestCaseIdx = 0; return; } else { _numOfIntervalInnerPoints = DefaultNumOfIntervalInnerPoints; _testCaseCollection = new TestCase[2 + _numOfIntervalInnerPoints]; } } else { _numOfIntervalInnerPoints = settings.NumOfSubIntervals; _testCaseCollection = new TestCase[2 + _numOfIntervalInnerPoints]; } for (int i = 0; i < _testCaseCollection.Length; i++) { _testCaseCollection[i] = new TestCase() { ParamValue = double.NaN, Error = double.NaN }; } Replan(settings.Min, double.NaN, settings.Max, double.NaN); return; }
/// <summary> /// Deep copy constructor /// </summary> /// <param name="source">Source instance</param> public ParamSeekerSettings(ParamSeekerSettings source) : this(source.Min, source.Max, source.NumOfSubIntervals) { return; }