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);
        }
Exemple #2
0
        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()));
        }