static bool AllowToMulMinusePluseActionFx(AddToTree.Tree Dummy)
        {
            if (Dummy == null)
            {
                return(true);
            }
            bool Is = true;

            if (Dummy.SampleAccess == "/")
            {
                if (IS.IsMinuseOrPluse(Dummy.SampleAccess))
                {
                    AddToTreeTreeLinkList FACTOR = FindSubFactor.FindSubFactorFx(Dummy.LeftSideAccess, Dummy.RightSideAccess);
                    if (!(FACTOR.ISEmpty()))
                    {
                        AddToTree.Tree FACT = new AddToTree.Tree(null, false);
                        do
                        {
                            FACT = FACTOR.DELETEFromTreeFirstNode();
                            if (IS.IsMinuseOrPluse(FACT.SampleAccess))
                            {
                                Is = false;
                            }
                        }while(!(FACTOR.ISEmpty()));
                    }
                }
            }
            Is = Is && (AllowToMulMinusePluse.AllowToMulMinusePluseActionFx(Dummy.LeftSideAccess));
            Is = Is && (AllowToMulMinusePluse.AllowToMulMinusePluseActionFx(Dummy.RightSideAccess));
            return(Is);
        }
        static public bool AllowToMulMinusePluseFx(AddToTree.Tree Dummy, ref UknownIntegralSolver UIS)
        {
            Dummy.LeftSideAccess  = FactorActivation.FactorActivationFx(Dummy.LeftSideAccess, ref UIS);
            Dummy.RightSideAccess = FactorActivation.FactorActivationFx(Dummy.RightSideAccess, ref UIS);
            bool Is = AllowToMulMinusePluse.AllowToMulMinusePluseActionFx(Dummy);

            return(Is);
        }
Example #3
0
        static AddToTree.Tree SpliterCalculator(AddToTree.Tree Dummy, ref bool Again, ref UknownIntegralSolver UIS)
        {
            if (Dummy == null)
            {
                return(Dummy);
            }
            Dummy.LeftSideAccess = Spliter.SpliterCalculator(Dummy.LeftSideAccess, ref Again, ref UIS);
            try
            {
                if (EqualToObject.IsEqualWithThreadConsiderationCommonly(Dummy.LeftSideAccess.ThreadAccess, Dummy.ThreadAccess))
                {
                    Dummy = Dummy.LeftSideAccess;
                }
            }
            catch (NullReferenceException t)
            { ExceptionClass.ExceptionClassMethod(t); }
            Dummy.RightSideAccess = Spliter.SpliterCalculator(Dummy.RightSideAccess, ref Again, ref UIS);
            try
            {
                if (EqualToObject.IsEqualWithThreadConsiderationCommonly(Dummy.LeftSideAccess.ThreadAccess, Dummy.ThreadAccess))
                {
                    Dummy = Dummy.LeftSideAccess;
                }
            }
            catch (NullReferenceException t)
            { ExceptionClass.ExceptionClassMethod(t); }

            //ERROR091409214 :The some needed spliation dose not acts.
            //if (Dummy.SampleAccess == "/")
            //ERRORCORECTION98242184 :Corrected as below.
            int INCREASE = 2147483647 / 4;

            UIS.SetProgressValue(UIS.progressBar11, 0);
            try
            {
                if (Dummy.SampleAccess == "/")
                {
                    if (((Dummy.LeftSideAccess.SampleAccess == "+") || (Dummy.LeftSideAccess.SampleAccess == "-")) && (AllowToMulMinusePluse.AllowToMulMinusePluseFx(Dummy, ref UIS)) && (Dummy.SplitableAccess))
                    {
                        UIS.SetProgressValue(UIS.progressBar11, INCREASE + UIS.progressBar11.Value);
                        Again = true;
                        AddToTree.Tree Div1 = Dummy.CopyNewTree(Dummy.RightSideAccess);
                        AddToTree.Tree Div2 = Dummy.CopyNewTree(Dummy.RightSideAccess);

                        UIS.SetProgressValue(UIS.progressBar11, INCREASE + UIS.progressBar11.Value);

                        //Dummy = Dummy.LeftSideAccess;

                        AddToTree.Tree DummyLeft = new AddToTree.Tree("/", false);

                        DummyLeft.SetLefTandRightCommonlySide(Dummy.CopyNewTree(Dummy.LeftSideAccess.LeftSideAccess), Div1);
                        DummyLeft.LeftSideAccess.ThreadAccess  = DummyLeft;
                        DummyLeft.RightSideAccess.ThreadAccess = DummyLeft;

                        UIS.SetProgressValue(UIS.progressBar11, INCREASE + UIS.progressBar11.Value);

                        Dummy.LeftSideAccess.LeftSideAccess = DummyLeft;
                        Dummy.LeftSideAccess.LeftSideAccess.ThreadAccess = Dummy.LeftSideAccess;

                        AddToTree.Tree DummyRight = new AddToTree.Tree("/", false);
                        //ERROR37492387 :Refe to page 261.
                        DummyRight.SetLefTandRightCommonlySide(Dummy.CopyNewTree(Dummy.LeftSideAccess.RightSideAccess), Div2);
                        DummyRight.LeftSideAccess.ThreadAccess  = DummyRight;
                        DummyRight.RightSideAccess.ThreadAccess = DummyRight;

                        UIS.SetProgressValue(UIS.progressBar11, INCREASE + UIS.progressBar11.Value);

                        Dummy.LeftSideAccess.RightSideAccess = DummyRight;
                        Dummy.LeftSideAccess.RightSideAccess.ThreadAccess = Dummy.LeftSideAccess;


                        Dummy.LeftSideAccess.ThreadAccess = Dummy.ThreadAccess;
                        Dummy = Dummy.LeftSideAccess;
                        UIS.SetProgressValue(UIS.progressBar11, 2147483647);
                    }
                    //  :The error is at here.refre to page 287.
                    //ADDDED73562150 :The added is here :Refer to page 331.

                    /*if ((Dummy.RightSideAccess.SampleAccess == "+") || (Dummy.RightSideAccess.SampleAccess == "-"))
                     * {
                     *  Again = true;
                     *  AddToTree.Tree Div1 = Dummy.CopyNewTree(Dummy.LeftSideAccess);
                     *  AddToTree.Tree Div2 = Dummy.CopyNewTree(Dummy.LeftSideAccess);
                     *
                     *  Dummy = Dummy.RightSideAccess;
                     *
                     *  AddToTree.Tree DummyRight=new AddToTree.Tree("/",false);
                     *
                     *  DummyRight.SetLefTandRightCommonlySide(Div1,Dummy.CopyNewTree(Dummy.RightSideAccess));
                     *  DummyRight.LeftSideAccess.ThreadAccess = DummyRight;
                     *  DummyRight.RightSideAccess.ThreadAccess = DummyRight;
                     *
                     *  DummyRight.RightSideAccess=DummyRight;
                     *  Dummy.RightSideAccess.ThreadAccess=Dummy;
                     *
                     *  AddToTree.Tree DummyLeft=new AddToTree.Tree("/",false);
                     *
                     *  DummyLeft.SetLefTandRightCommonlySide(Div2, Dummy.CopyNewTree(Dummy.RightSideAccess));
                     *  DummyLeft.LeftSideAccess.ThreadAccess = DummyLeft;
                     *  DummyLeft.RightSideAccess.ThreadAccess = DummyLeft;
                     *
                     *  DummyLeft.RightSideAccess=DummyLeft;
                     *  Dummy.LeftSideAccess.ThreadAccess=Dummy;
                     *
                     *  Dummy=Dummy.ThreadAccess;
                     *
                     *  Dummy.RightSideAccess.ThreadAccess=Dummy.ThreadAccess;
                     *  Dummy=Dummy.RightSideAccess;
                     *
                     * }
                     */
                    /*if (IS.IsOperator(Dummy.SampleAccess))
                     *  if (!IS.IsPower(Dummy.SampleAccess))
                     *      if (!IS.IsFunction(Dummy.SampleAccess))
                     *      {
                     *          AddToTree.Tree Div= Spliter.TheRightSideOperandOfDivision(Dummy)
                     *          if (!SPLITED.FINDTreeWithThreadConsideration(Dummy.LeftSideAccess))
                     *          {
                     *              Dummy.LeftSideAccess = Spliter.DivisionSpliter(Dummy.LeftSideAccess,Div, 0);
                     *              Dummy.LeftSideAccess.LeftSideAccess.ThreadAccess = Dummy.LeftSideAccess;
                     *              Dummy.LeftSideAccess.RightSideAccess.ThreadAccess = Dummy.LeftSideAccess;
                     *          }
                     *          if (!SPLITED.FINDTreeWithThreadConsideration(Dummy.RightSideAccess))
                     *          {
                     *              Dummy.RightSideAccess = Spliter.DivisionSpliter(Dummy.RightSideAccess,Div, 0);
                     *              Dummy.RightSideAccess.LeftSideAccess.ThreadAccess = Dummy.RightSideAccess;
                     *              Dummy.RightSideAccess.RightSideAccess.ThreadAccess = Dummy.RightSideAccess;
                     *          }
                     *
                     *          SPLITED.ADDToTree(Dummy);
                     *          //Dummy.LeftSideAccess.ThreadAccess = Dummy;
                     *          //if (Dummy.ThreadAccess == null)
                     *          //  Dummy.LeftSideAccess.ThreadAccess = null;
                     *          //Dummy = Dummy.LeftSideAccess;
                     *
                     *
                     *      }
                     */
                }
                else
                {       //ERRORCORECTION981278 :Correction of ERRORCAUSE713040 .refer to page 182.
                        //ERROR30405031v :Refer to page 207.

                    /*if (!SPLITED.ISEmpty())
                     * {
                     *  if (Dummy.ThreadAccess == null)
                     *      Dummy.LeftSideAccess.ThreadAccess = null;
                     *  Dummy = Dummy.LeftSideAccess;
                     * }
                     */
                }
            }
            catch (NullReferenceException t)
            { ExceptionClass.ExceptionClassMethod(t); }

            /*
             *  if (Again)
             *  {
             *      Again = false;
             *      Spliter.SpliterCalculator(Dummy);
             *
             *  }*/
            return(Dummy);
        }