Example #1
0
        /** Constructor.
         * @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? */
        //bool trueloop_check=true, bool detailed_states=false
        public DAUnionAlgorithm(DA da_1, DA da_2, bool trueloop_check, bool detailed_states)
        {
            _da_1 = da_1;
            _da_2 = da_2;
            _acceptance_calculator = new UnionAcceptanceCalculator(da_1.acceptance(), da_2.acceptance());
            _trueloop_check        = trueloop_check;
            _detailed_states       = detailed_states;

            if (!(_da_1.getAPSet() == _da_2.getAPSet()))
            {
                throw new IllegalArgumentException("Can't create union of DAs: APSets don't match");
            }

            APSet combined_ap = da_1.getAPSet();

            if (!_da_1.isCompact() || !_da_2.isCompact())
            {
                throw new IllegalArgumentException("Can't create union of DAs: Not compact");
            }

            _result_da = da_1.createInstance(combined_ap);
        }
Example #2
0
 /** Constructor.
  * @param da_state_1_ index of the state in the first automaton
  * @param da_state_2_ index of the state in the second automaton
  * @param acceptance_calculator UnionAcceptanceCalculator
  */
 //template <typename AcceptanceCalc>
 public UnionState(int da_state_1_, int da_state_2_, UnionAcceptanceCalculator acceptance_calculator)
 {
     da_state_1 = da_state_1_;
     da_state_2 = da_state_2_;
     signature  = acceptance_calculator.calculateAcceptance(da_state_1, da_state_2);
 }