/// <summary> /// Initializes a new instance of the <see cref="AlgorithmBase"/> class. /// </summary> /// <param name="parameters"> /// The parameters. /// </param> public AlgorithmBase(Input parameters) : base(parameters) { threshold = ThresholdFactory.Make(parameters.ThresholdMethod, parameters); criterion = CriterionFactory.Make(parameters.StopCriterion, threshold, parameters); extractor = WordExtractorFactory.GetSeeker(parameters.Seeker); balance = parameters.Balance; windowLen = parameters.WindowLength; windowDec = parameters.WindowDecrement; }
/// <summary> /// The make. /// </summary> /// <param name="index"> /// The index. /// </param> /// <param name="threshold"> /// The threshold. /// </param> /// <param name="input"> /// The input. /// </param> /// <returns> /// The <see cref="Criterion"/>. /// </returns> public static Criterion Make(int index, ThresholdVariator threshold, Input input) { switch (index) { case 0: return new CriterionPartialOrlov(threshold, input.Precision); case 1: return new CriterionMinSymmetryByShrader(threshold, input.Precision); case 2: return new CriterionMinSymmetryByIntervals(threshold, input.Precision); case 3: return new CriterionEqualityOfDepths(threshold, input.Precision); case 4: return new CriterionAttitudeOfRemoteness(threshold, input.Precision); case 5: return new CriterionMinimumRegularity(threshold, input.Precision); case 6: return new CriterionGoldenRatio(threshold, input.Precision); default: throw new ArgumentException("Unknown index", "index"); } }
/// <summary> /// Initializes a new instance of the <see cref="CriterionPartialOrlov"/> class. /// </summary> /// <param name="threshold"> /// The rule for handle a threshold value. /// </param> /// <param name="precision"> /// The additional value. /// </param> public CriterionPartialOrlov(ThresholdVariator threshold, double precision) : base(threshold, precision) { Value = double.MaxValue; precisionOfDifference = 1; }
/// <summary> /// Initializes a new instance of the <see cref="CriterionEqualityOfDepths"/> class. /// </summary> /// <param name="threshold"> /// A rule for handling a threshold value. /// </param> /// <param name="precision"> /// Additional value to. /// </param> public CriterionEqualityOfDepths(ThresholdVariator threshold, double precision) : base(threshold, precision) { Value = double.MinValue; }
/// <summary> /// Initializes a new instance of the <see cref="CriterionGoldenRatio"/> class. /// </summary> /// <param name="threshold"> /// A rule for handling a threshold value. /// </param> /// <param name="precision"> /// Additional value to. /// </param> public CriterionGoldenRatio(ThresholdVariator threshold, double precision) : base(threshold, precision) { Value = double.MaxValue; }
/// <summary> /// Initializes a new instance of the <see cref="CriterionShrederByWords"/> class. /// </summary> /// <param name="threshold"> /// A rule for handle a threshold value. /// </param> /// <param name="precision"> /// The precision. /// </param> public CriterionShrederByWords(ThresholdVariator threshold, double precision) : base(threshold, precision) { }
/// <summary> /// Initializes a new instance of the <see cref="CriterionMinSymmetryByIntervals"/> class. /// </summary> /// <param name="threshold"> /// The threshold. /// </param> /// <param name="precision"> /// The precision. /// </param> public CriterionMinSymmetryByIntervals(ThresholdVariator threshold, double precision) : base(threshold, precision) { }
/// <summary> /// Initializes a new instance of the <see cref="CriterionMinimumRegularity"/> class. /// </summary> /// <param name="threshold"> /// A rule for handling a threshold value. /// </param> /// <param name="precision"> /// Additional value to. /// </param> public CriterionMinimumRegularity(ThresholdVariator threshold, double precision) : base(threshold, precision) { Value = double.MaxValue; }
/// <summary> /// Initializes a new instance of the <see cref="CriterionMinSymmetryByShrader"/> class. /// </summary> /// <param name="threshold"> /// The threshold. /// </param> /// <param name="precision"> /// The precision. /// </param> public CriterionMinSymmetryByShrader(ThresholdVariator threshold, double precision) : base(threshold, precision) { Value = double.MaxValue; }
/// <summary> /// Initializes a new instance of the <see cref="CriterionAttitudeOfRemoteness"/> class. /// </summary> /// <param name="threshold"> /// A rule for handling a threshold value. /// </param> /// <param name="precision"> /// Additional value to. /// </param> public CriterionAttitudeOfRemoteness(ThresholdVariator threshold, double precision) : base(threshold, precision) { Value = double.MinValue; }