public ConvexMonotoneInterpolation(List <double> xBegin, int size, List <double> yBegin, double quadraticity,
                                    double monotonicity, bool forcePositive, bool flatFinalPeriod,
                                    Dictionary <double, ISectionHelper> preExistingHelpers)
 {
     impl_ = new ConvexMonotoneImpl(xBegin, size, yBegin, quadraticity, monotonicity, forcePositive,
                                    flatFinalPeriod, preExistingHelpers);
     impl_.update();
 }
        // public ConvexMonotoneInterpolation(Interpolation interp) : base(interp) { }

        public Dictionary <double, ISectionHelper> getExistingHelpers()
        {
            ConvexMonotoneImpl derived = impl_ as ConvexMonotoneImpl;

            return(derived.getExistingHelpers());
        }
 public ConvexMonotoneInterpolation(List<double> xBegin, int size, List<double> yBegin, double quadraticity,
                             double monotonicity, bool forcePositive, bool flatFinalPeriod,
                             Dictionary<double,ISectionHelper> preExistingHelpers)
 {
     impl_ = new ConvexMonotoneImpl(xBegin, size, yBegin, quadraticity, monotonicity, forcePositive,
                                    flatFinalPeriod, preExistingHelpers);
     impl_.update();
 }