/// <summary> /// Minimizes (and determinizes if not already deterministic) the given automaton. /// </summary> /// <param name="a">The automaton.</param> internal static void Minimize(Automaton a) { if (!a.IsSingleton) { switch (Automaton.Minimization) { case Automaton.MinimizeHuffman: MinimizationOperations.MinimizeHuffman(a); break; case Automaton.MinimizeBrzozowski: MinimizationOperations.MinimizeBrzozowski(a); break; default: MinimizationOperations.MinimizeHopcroft(a); break; } } a.RecomputeHashCode(); }