A rule for handle a threshold value
Inheritance: IDefinable
 /// <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;
 }