Esempio n. 1
0
        public void run_SESE(ref GraphVariables.clsGraph graph, ref GraphVariables.clsHWLS clsHWLS, ref GraphVariables.clsHWLS clsHWLS_Untangle,
                             ref GraphVariables.clsLoop clsLoop, ref GraphVariables.clsSESE clsSESE)
        {
            HiPerfTimer pt = new HiPerfTimer();

            pt.Start();
            double time = 0;

            DateTime dt            = new DateTime();
            DateTime dt2           = new DateTime();
            double   duration      = 0;
            double   duration_SESE = 0;

            System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();

            Initialize_All();

            for (int i = 0; i < 1; i++)
            {
                dt = DateTime.Now;
                watch.Start();

                gProAnalyzer.Functionalities.NodeSplittingType1.Run_Split_Type1(ref graph, graph.orgNet, graph.midNet);

                gProAnalyzer.Functionalities.LoopIdentification.Run_FindLoop(ref graph, graph.midNet, ref clsLoop, clsLoop.orgLoop, ref clsLoop.IrreducibleError);

                graph.Network[graph.finalNet] = graph.Network[graph.midNet];
                gProAnalyzer.Functionalities.NodeSplittingType2.Run_Split_Type2(ref graph, graph.midNet, graph.finalNet, ref clsLoop, clsLoop.orgLoop);

                gProAnalyzer.Functionalities.DominanceIdentification.find_Dom(ref graph, graph.finalNet);
                gProAnalyzer.Functionalities.DominanceIdentification.find_Pdom(ref graph, graph.finalNet);
                gProAnalyzer.Functionalities.DominanceIdentification.find_DomEI(ref graph, graph.finalNet, -2);
                gProAnalyzer.Functionalities.DominanceIdentification.find_PdomEI(ref graph, graph.finalNet);

                dt2 = DateTime.Now;
                gProAnalyzer.Functionalities.SESEIdentification.find_SESE_Dummy(ref graph, graph.finalNet, ref clsLoop, clsLoop.orgLoop, ref clsSESE, clsSESE.finalSESE, -2);
                duration_SESE = duration_SESE + (DateTime.Now - dt2).TotalMilliseconds;

                gProAnalyzer.Functionalities.NodeSplittingType3.Run_Split_Type3(ref graph, graph.finalNet, ref clsLoop, clsLoop.orgLoop, ref clsSESE, clsSESE.finalSESE, true);

                gProAnalyzer.Functionalities.PolygonIdentification.polygonIdentification(ref graph, graph.finalNet, ref clsSESE, clsSESE.finalSESE);

                //Make nesting forest
                gProAnalyzer.Ultilities.makeNestingForest.make_NestingForest(ref graph, graph.finalNet, ref clsHWLS, ref clsLoop, clsLoop.orgLoop, ref clsSESE, clsSESE.finalSESE);

                duration = duration + (DateTime.Now - dt).TotalMilliseconds;
                watch.Stop();
            }

            informList = new double[30];
            count_Bonds_Rigids(ref graph, graph.finalNet, ref clsSESE, clsSESE.finalSESE, ref clsLoop, clsLoop.orgLoop, ref clsHWLS);

            MessageBox.Show("The SESE identification is in: " + (duration_SESE).ToString() + " milisecond", "Finish-SESE");
            MessageBox.Show("The System has finished identify the SESE region in: " + (watch.ElapsedMilliseconds / 1).ToString() + " milisecond", "Finish");
        }
Esempio n. 2
0
        public int RunTest(ref gProAnalyzer.GraphVariables.clsGraph graph, ref gProAnalyzer.GraphVariables.clsHWLS clsHWLS, ref gProAnalyzer.GraphVariables.clsLoop clsLoop,
                           ref gProAnalyzer.GraphVariables.clsSESE clsSESE, int numRun)
        {
            duration = 0;
            HiPerfTimer pt = new HiPerfTimer();

            pt.Start();

            for (int i = 0; i < numRun; i++)
            {
                Initialize_All();

                //SplitType1.Run_Split_Type1(ref graph, graph.orgNet, graph.midNet);

                //findLoop.Run_FindLoop(ref graph, graph.midNet, ref clsLoop, clsLoop.orgLoop, ref clsLoop.IrreducibleError);

                graph.Network[graph.finalNet] = graph.Network[graph.orgNet];
                //SplitType2.Run_Split_Type2(ref graph, graph.midNet, graph.finalNet, ref clsLoop, clsLoop.orgLoop);

                gProAnalyzer.Functionalities.DominanceIdentification.find_Dom(ref graph, graph.finalNet);
                gProAnalyzer.Functionalities.DominanceIdentification.find_Pdom(ref graph, graph.finalNet);
                gProAnalyzer.Functionalities.DominanceIdentification.find_DomEI(ref graph, graph.finalNet, -2);
                gProAnalyzer.Functionalities.DominanceIdentification.find_PdomEI(ref graph, graph.finalNet);

                //sese.find_SESE_WithLoop(ref graph, graph.finalNet, ref clsLoop, clsLoop.orgLoop, ref clsSESE, clsSESE.finalSESE, -2);
                gProAnalyzer.Functionalities.SESEIdentification.find_SESE_Dummy(ref graph, graph.finalNet, ref clsLoop, clsLoop.orgLoop, ref clsSESE, clsSESE.finalSESE, -2);


                gProAnalyzer.Functionalities.NodeSplittingType3.Run_Split_Type3(ref graph, graph.finalNet, ref clsLoop, clsLoop.orgLoop, ref clsSESE, clsSESE.finalSESE, true);

                //Decompose cyclic subgraphs

                //Make nesting forest?
                gProAnalyzer.Ultilities.makeNestingForest.make_NestingForest(ref graph, graph.finalNet, ref clsHWLS, ref clsLoop, clsLoop.orgLoop, ref clsSESE, clsSESE.finalSESE);
            }

            pt.Stop();
            duration += pt.Duration;

            duration = duration / (double)numRun;
            duration = duration * 1000;

            //makInst.make_InstanceFlow(ref graph, graph.finalNet, 0, "", "");

            //==================================================
            //== get initial behavior profile ==
            //graph.Network[graph.reduceNet] = graph.Network[graph.finalNet];
            //extendG.full_extentNetwork(ref graph, graph.reduceNet, 0, 0);
            //indexing.get_InitialBehaviorProfile(ref graph, graph.reduceNet, ref clsHWLS, ref clsLoop, clsLoop.orgLoop, ref clsSESE, clsSESE.finalSESE);
            //Database storing

            return(0);
        }