Index: branches/3076_IA_evaluators_analyzers/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectiveConstraintConstOptNmseEvaluator.cs
===================================================================
--- branches/3076_IA_evaluators_analyzers/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectiveConstraintConstOptNmseEvaluator.cs	(revision 17761)
+++ branches/3076_IA_evaluators_analyzers/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectiveConstraintConstOptNmseEvaluator.cs	(revision 17764)
@@ -16,4 +16,5 @@
     private const string ConstOptIterationsParameterName = "ConstOpt Iterations";
     private const string PenalityMultiplierParameterName = "ConstraintsPenalityMultiplier";
+    private const string BoundsEstimatorParameterName = "Bounds estimator";
 
     public IFixedValueParameter<BoolValue> UseConstOptParamerter =>
@@ -26,4 +27,7 @@
       (ILookupParameter<DoubleValue>)Parameters[PenalityMultiplierParameterName];
 
+    public IValueParameter<IBoundsEstimator> BoundsEstimatorParameter =>
+      (IValueParameter<IBoundsEstimator>) Parameters[BoundsEstimatorParameterName];
+
     public bool UseConstOpt {
       get => UseConstOptParamerter.Value.Value;
@@ -34,4 +38,9 @@
       get => ConstOpterIterationsParameter.Value.Value;
       set => ConstOpterIterationsParameter.Value.Value = value;
+    }
+
+    public IBoundsEstimator BoundsEstimator {
+      get => BoundsEstimatorParameter.Value;
+      set => BoundsEstimatorParameter.Value = value;
     }
 
@@ -54,4 +63,5 @@
       Parameters.Add(new LookupParameter<DoubleValue>(PenalityMultiplierParameterName,
         "Lookup parameter for the penality multiplier.", "PenalityMultiplier"));
+      Parameters.Add(new ValueParameter<IBoundsEstimator>(BoundsEstimatorParameterName, "Select the Boundsestimator.", new IABoundsEstimator()));
     }
 
@@ -73,14 +83,17 @@
         Parameters.Add(new LookupParameter<DoubleValue>(PenalityMultiplierParameterName,
           "Lookup parameter for the penality multiplier.", "PenalityMultiplier"));
+
+      if (!Parameters.ContainsKey(BoundsEstimatorParameterName))
+        Parameters.Add(new ValueParameter<IBoundsEstimator>(BoundsEstimatorParameterName, "Select the Boundsestimator.", new IABoundsEstimator()));
     }
 
     public override IOperation InstrumentedApply() {
-      var rows                                      = GenerateRowsToEvaluate();
-      var solution                                  = SymbolicExpressionTreeParameter.ActualValue;
+      var rows                         = GenerateRowsToEvaluate();
+      var solution                = SymbolicExpressionTreeParameter.ActualValue;
       var problemData                               = ProblemDataParameter.ActualValue;
       var interpreter                               = SymbolicDataAnalysisTreeInterpreterParameter.ActualValue;
-      var estimationLimits                          = EstimationLimitsParameter.ActualValue;
+      var estimationLimits                 = EstimationLimitsParameter.ActualValue;
       var applyLinearScaling                        = false;
-      var constantOptimizationIterations            = ConstOptIterations;
+      var constantOptimizationIterations         = ConstOptIterations;
       var constantOptimizationUpdateVariableWeights = true;
 
@@ -115,5 +128,5 @@
       var boundedEstimatedValues = estimatedValues.LimitToRange(lowerEstimationLimit, upperEstimationLimit);
       var nmse = OnlineNormalizedMeanSquaredErrorCalculator.Calculate(targetValues, boundedEstimatedValues, out var errorState);
-      if (!SymbolicRegressionConstraintAnalyzer.ConstraintsSatisfied(constraints, variableRanges, solution, false, out double error))
+      if (!SymbolicRegressionConstraintAnalyzer.ConstraintsSatisfied(constraints, variableRanges, solution, out double error))
       {
         if (double.IsNaN(error) || double.IsInfinity(error))
Index: branches/3076_IA_evaluators_analyzers/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectiveConstraintEvaluator.cs
===================================================================
--- branches/3076_IA_evaluators_analyzers/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectiveConstraintEvaluator.cs	(revision 17761)
+++ branches/3076_IA_evaluators_analyzers/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectiveConstraintEvaluator.cs	(revision 17764)
@@ -27,5 +27,6 @@
     private const string PenaltyMultiplierParameterName = "Constraints Penalty Multiplier";
 
-    private const string UseIntervalSplittingParameterName = "Use Interval Splitting";
+    private const string BoundsEstimatorParameterName = "Bounds estimator";
+
 
     public IFixedValueParameter<BoolValue> UseConstantOptimizationParameter =>
@@ -41,6 +42,6 @@
       (IFixedValueParameter<DoubleValue>) Parameters[PenaltyMultiplierParameterName];
 
-    public IFixedValueParameter<BoolValue> UseIntervalSplittingParameter =>
-      (IFixedValueParameter<BoolValue>) Parameters[UseIntervalSplittingParameterName];
+    public IValueParameter<IBoundsEstimator> BoundsEstimatorParameter =>
+      (IValueParameter<IBoundsEstimator>)Parameters[BoundsEstimatorParameterName];
 
     public bool UseConstantOptimization {
@@ -64,8 +65,9 @@
     }
 
-    public bool UseIntervalSplitting {
-      get => UseIntervalSplittingParameter.Value.Value;
-      set => UseIntervalSplittingParameter.Value.Value = value;
-    }
+    public IBoundsEstimator BoundsEstimator {
+      get => BoundsEstimatorParameter.Value;
+      set => BoundsEstimatorParameter.Value = value;
+    }
+
 
     //Use false for maximization, because we try to minimize the NMSE
@@ -91,6 +93,6 @@
       Parameters.Add(new FixedValueParameter<DoubleValue>(PenaltyMultiplierParameterName,
         "Specify how hard constraints violations should be punished", new DoubleValue(1.0)));
-      Parameters.Add(new FixedValueParameter<BoolValue>(UseIntervalSplittingParameterName,
-        "Define whether interval splitting is used or not.", new BoolValue(false)));
+      Parameters.Add(new ValueParameter<IBoundsEstimator>(BoundsEstimatorParameterName,
+        "Select the Boundsestimator.", new IABoundsEstimator()));
     }
 
@@ -117,8 +119,8 @@
       }
 
-      if (!Parameters.ContainsKey(UseIntervalSplittingParameterName)) {
-        Parameters.Add(new FixedValueParameter<BoolValue>(UseIntervalSplittingParameterName,
-          "Define whether interval splitting is used or not.", new BoolValue(false)));
-      }
+      if (!Parameters.ContainsKey(BoundsEstimatorParameterName))
+        Parameters.Add(new ValueParameter<IBoundsEstimator>(BoundsEstimatorParameterName,
+          "Select the Boundsestimator.", new IABoundsEstimator()));
+
     }
 
@@ -176,6 +178,5 @@
 
       var quality = Calculate(interpreter, solution, estimationLimits.Lower, estimationLimits.Upper, problemData, rows,
-        UseSoftConstraints,
-        PenaltyMultiplier, UseIntervalSplitting);
+        UseSoftConstraints, PenaltyMultiplier);
       QualityParameter.ActualValue = new DoubleValue(quality);
 
@@ -188,5 +189,5 @@
       double upperEstimationLimit,
       IRegressionProblemData problemData, IEnumerable<int> rows, bool useSoftConstraints,
-      double penaltyMultiplier, bool useSplitting) {
+      double penaltyMultiplier) {
       var estimatedValues = interpreter.GetSymbolicExpressionTreeValues(solution, problemData.Dataset, rows);
       var targetValues = problemData.Dataset.GetDoubleValues(problemData.TargetVariable, rows);
@@ -198,5 +199,5 @@
         out var errorState);
 
-      if (!SymbolicRegressionConstraintAnalyzer.ConstraintsSatisfied(constraints, variableRanges, solution, useSplitting,
+      if (!SymbolicRegressionConstraintAnalyzer.ConstraintsSatisfied(constraints, variableRanges, solution,
         out var error)) {
         if (useSoftConstraints) {
@@ -229,5 +230,5 @@
       var nmse = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, tree,
         EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper,
-        problemData, rows, UseSoftConstraints, PenaltyMultiplier, UseIntervalSplitting);
+        problemData, rows, UseSoftConstraints, PenaltyMultiplier);
 
       SymbolicDataAnalysisTreeInterpreterParameter.ExecutionContext = null;
Index: branches/3076_IA_evaluators_analyzers/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectiveConstraintScalingNmseEvaluator.cs
===================================================================
--- branches/3076_IA_evaluators_analyzers/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectiveConstraintScalingNmseEvaluator.cs	(revision 17761)
+++ branches/3076_IA_evaluators_analyzers/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectiveConstraintScalingNmseEvaluator.cs	(revision 17764)
@@ -85,5 +85,5 @@
       var variableRanges = problemData.VariableRanges.GetReadonlyDictionary();
 
-      if (!SymbolicRegressionConstraintAnalyzer.ConstraintsSatisfied(constraints, variableRanges, solution, false, out double error))
+      if (!SymbolicRegressionConstraintAnalyzer.ConstraintsSatisfied(constraints, variableRanges, solution, out double error))
         return 1.0;
 
Index: branches/3076_IA_evaluators_analyzers/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SymbolicRegressionConstraintAnalyzer.cs
===================================================================
--- branches/3076_IA_evaluators_analyzers/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SymbolicRegressionConstraintAnalyzer.cs	(revision 17761)
+++ branches/3076_IA_evaluators_analyzers/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SymbolicRegressionConstraintAnalyzer.cs	(revision 17764)
@@ -226,7 +226,7 @@
     public static bool ConstraintsSatisfied(IEnumerable<IntervalConstraint> constraints,
                                             IReadOnlyDictionary<string, Interval> variableRanges,
-                                            ISymbolicExpressionTree solution, bool useSplitting,
+                                            ISymbolicExpressionTree solution,
                                             out double error) {
-      var intervalInterpreter = new IntervalInterpreter() {UseIntervalSplitting = useSplitting};
+      var intervalInterpreter = new IntervalInterpreter();
       error = 0.0;
       var satisfied = true;
