Пример #1
0
        /** Calculate the union of two DA. If the DAs are not compact, they are made compact.
         * @param da_1 The first DA
         * @param da_2 the second DA
         * @param trueloop_check Check for trueloops?
         * @param detailed_states Generate detailed descriptions of the states?
         * @return shared_ptr to result DA
         */
        //bool trueloop_check=true,bool detailed_states=false
        public static DA calculateUnion(DA da_1, DA da_2, bool trueloop_check, bool detailed_states)
        {
            //if (!da_1.isCompact()) {
            //  da_1.makeCompact();
            //}

            //if (!da_2.isCompact()) {
            //  da_2.makeCompact();
            //}

            DAUnionAlgorithm dua = new DAUnionAlgorithm(da_1, da_2, trueloop_check, detailed_states);

            NBA2DA generator = new NBA2DA(detailed_states);

            generator.convert(dua, dua.getResultDA() as DRA, 0);

            return(dua.getResultDA());
        }
Пример #2
0
        /** Calculate the union of two DA, using stuttering if possible. If the DAs are not compact, they are made compact.
         * @param da_1 The first DA
         * @param da_2 the second DA
         * @param stutter_information information about the symbols where stuttering is allowed
         * @param trueloop_check Check for trueloops?
         * @param detailed_states Generate detailed descriptions of the states? */
        //bool trueloop_check=true, bool detailed_states=false
        public static DA calculateUnionStuttered(DA da_1, DA da_2, StutterSensitivenessInformation stutter_information, bool trueloop_check, bool detailed_states)
        {
            //if (!da_1.isCompact()) {
            //  da_1.makeCompact();
            //}

            //if (!da_2.isCompact()) {
            //  da_2.makeCompact();
            //}

            //typedef DAUnionAlgorithm<DA_t> algo_t;
            DAUnionAlgorithm dua = new DAUnionAlgorithm(da_1, da_2, trueloop_check, detailed_states);

            //<algo_t, DA_t>
            StutteredNBA2DAUnion generator = new StutteredNBA2DAUnion(detailed_states, stutter_information);

            generator.convert(dua, dua.getResultDA(), 0);

            return(dua.getResultDA());
        }