internal Intervals Subs(Function func) { List <string> intervalsStr; List <Interval> intervals = new List <Interval>(); if (func.Argument.Power == 1) { intervalsStr = IntervalString.Split('U').ToList(); foreach (var interStr in intervalsStr) { intervals.Add(Interval.Parse(interStr)); } foreach (var interval in intervals) { if (!interval.IsInfinityInterval) { Fraction leftBorder = func.Eq(interval.LeftBorder); Fraction rightBorder = func.Eq(interval.RightBorder); interval.ChangeBorders(leftBorder, rightBorder); } else { Fraction border = func.Eq(interval.Border); interval.ChangeBorderForInfinity(border); } } } Intervals newIntervals = new Intervals(intervals); Intervals endInterval; if (func.ValuesRange != null) { endInterval = newIntervals * func.ValuesRange; } else { endInterval = newIntervals; } return(endInterval); }
internal Fraction(GenerationKey generationKey) { Answer = new Intervals(generationKey); Sign = !Answer.StartFromFirstGap; settings = generationKey.Settings; Numenator = new List <Polynomial>(); foreach (var point in Answer.IncludedPoints) { Numenator.Add(new Polynomial("x", point)); } Denominator = new List <Polynomial>(); foreach (var point in Answer.NotIncludedPoints) { Denominator.Add(new Polynomial("x", point)); } //Создаем числитель //Numenator = CreateExpression(generationKey, Answer.IncludedPoints.GetRange(0, Answer.IncludedPoints.Count())); //Создаем занаменатель //Denominator = CreateExpression(generationKey, Answer.NotIncludedPoints.GetRange(0, Answer.NotIncludedPoints.Count())); }