001/* Copyright (C) 2013 TU Dortmund
002 * This file is part of AutomataLib, http://www.automatalib.net/.
003 * 
004 * AutomataLib is free software; you can redistribute it and/or
005 * modify it under the terms of the GNU Lesser General Public
006 * License version 3.0 as published by the Free Software Foundation.
007 * 
008 * AutomataLib is distributed in the hope that it will be useful,
009 * but WITHOUT ANY WARRANTY; without even the implied warranty of
010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
011 * Lesser General Public License for more details.
012 * 
013 * You should have received a copy of the GNU Lesser General Public
014 * License along with AutomataLib; if not, see
015 * http://www.gnu.de/documents/lgpl.en.html.
016 */
017package net.automatalib.util.automata.fsa;
018
019
020
021public abstract class NFAs {
022
023        /*
024        public static <I> FastDFA<I> determinize(NFA<?,I> nfa,
025                        Alphabet<I> inputAlphabet, boolean partial) {
026                FastDFA<I> out = new FastDFA<I>(inputAlphabet);
027                doDeterminize(nfa, out, inputAlphabet);
028                return out;
029        }
030        
031        public static <I> void determinize(NFA<?,I> nfa,
032                        MutableDFA<?,I> out,
033                        Collection<? extends I> inputs, boolean partial) {
034                doDeterminize(nfa, out, inputs);
035        }
036        
037        private static <SI,SO,I> void doDeterminize(NFA<SI,I> nfa,
038                        MutableDFA<SO,I> out,
039                        Collection<? extends I> inputs) {
040                Automata.cop
041                Automata.genericCopy(nfa.powersetView(),
042                                inputs,
043                                out,
044                                Mappings.<I>identity(),
045                                Acceptors.existentialAcceptance(nfa),
046                                Mappings.<Void,Void>nullMapping());
047        }
048        
049        */
050        
051        private NFAs() {}
052}