\chapter{Uživatelská příručka}
\section{Popis struktury SetCost}\label{SetCost}
\begin{verbatim}
struct SetCost{
    int cubes; /* number of cubes in the cover */
    int primes; /* number of prime cubes */
    int in; /* transistor count, binary-valued variables */
    int out; /* transistor count, output part */
    int mv; /* transistor count, multiple-valued vars */
    int total; /* total number of transistors */
};
\end{verbatim}

Struktura {\it SetCost} reprezentuje cenu jednoho pokryt\'{\i}. Tato struktura je 
třikr\'{a}t pou\v{z}it\'{a} v struktuře PLAStats je a určuje cenu ON-setu, 
OFF-setu a DC-setu objektu tř\'{\i}dy {\it PLA}, nad kterou byla zavol\'{a}na metoda 
{\it getStats()}. N\'{a}sleduj\'{\i}c\'{\i} popis polo\v{z}ek by měl poskytnout dostatek 
informac\'{\i} o jejich v\'{y}znamu:

\begin{itemize}
\item {\it cubes} -- ud\'{a}v\'{a} počet krychl\'{\i}(setů) v~dan\'{e}m pokryt\'{\i}
\item {\it primes} -- ud\'{a}v\'{a} počet př\'{\i}m\'{y}ch implikant\'{u} v~dan\'{e}m pokryt\'{\i}
\item {\it in} -- ud\'{a}v\'{a} počet tranzistorů (nul) pro v\v{s}echny dvouhodnotov\'{e} proměnn\'{e} (vstupy) /* Count transistors (zeros) for each binary variable (inputs) */
\item {\it out} -- ud\'{a}v\'{a} počet tranzistorů (jedniček) pro v\'{y}stupn\'{\i} proměnnou /* Count the transistors (ones) for the output variable */
\item {\it mv} -- ud\'{a}v\'{a} počet tranzistorů pro v\v{s}echny v\'{\i}cehodnotov\'{e} proměnn\'{e} /* Count transistors for each mv variable based on sparse/dense */
\item {\it total} -- ud\'{a}v\'{a} celkov\'{y} počet liter\'{a}lů (in + out + mv)
\end{itemize}

\section{popis struktury PLAStats}\label{PLAStats}
\begin{verbatim}
struct PLAStats{
    std::string source;
    int variables; 
    int binary_variables;
    int multiplevalued_variables;
    std::vector<$int> mv_sizes; 
    int outputs; 
    SetCost ON_set; 
    SetCost OFF_set; 
    SetCost DC_set; 
    std::string phase
    std::vector< std::pair<int, int> > two_bit_decoders; 
    std::vector< std::vector<int> > symbolic; 
};
\end{verbatim}

Struktura {\it PLAStats} slou\v{z}\'{\i} pro před\'{a}n\'{\i} kompletn\'{\i}ch statistik o 
logick\'{e} funkci. Hodnoty jej\'{\i} polo\v{z}ek odpov\'{\i}daj\'{\i} 
hodnot\'{a}m proměnn\'{y}ch ve v\'{y}pisu obdr\v{z}en\'{e}m po 
zavol\'{a}n\'{\i} metody {\it printStats(FILE* target).} 

N\'{a}sleduj\'{\i}c\'{\i} popis polo\v{z}ek by měl poskytnout dostatek 
informac\'{\i} o jejich v\'{y}znamu:

\begin{itemize}
\item {\it source} -- C++ řetězec s~n\'{a}zvem zdroje, odkud byla logick\'{a} funkce načtena. Li\v{s}\'{\i} se podle metody pou\v{z}it\'{e} při načten\'{\i} logick\'{e} funkce:
	\begin{itemize}
	\item {\it loadFromFile(const char*)} - řetězec shodn\'{y} s~n\'{a}zvem souboru, kter\'{y} byl pou\v{z}it jako parametr
	\item {\it loadFromFile(FILE*)} -- řetězec m\'{a} hodnotu ,,(stream)``
	\item {\it loadFromString(FILE*)} -- řetězec m\'{a} hodnotu ,,(string)``
	\end{itemize}
\item {\it variables} -- ud\'{a}v\'{a} počet proměnn\'{y}ch v~logick\'{e} funkci
\item {\it binary{\_}variables} -- ud\'{a}v\'{a} počet dvouhodnotov\'{y}ch proměnn\'{y}ch
\item {\it multiplevalued{\_}variables} -- ud\'{a}v\'{a} počet v\'{\i}cehodnotov\'{y}ch proměnn\'{y}ch
\item {\it mv{\_}sizes} -- je to vektor velikost\'{\i} v\'{\i}cehodnotov\'{y}ch proměnn\'{y}ch
\item {\it outputs} -- ud\'{a}v\'{a} počet v\'{y}stupů
\item {\it ON{\_}set}, {\it OFF{\_}set}, {\it DC{\_}set} -- ceny pro jednotliv\'{a} pokryt\'{\i}. Pro v\'{\i}c informac\'{\i} viz. struktura SetCost
\item {\it phase} -- C++ řetězec, ve kter\'{e}m je zaps\'{a}na f\'{a}ze logick\'{e} funkce
\item {\it two{\_}bit{\_}decoders} -- vektor dvojic dvoubitov\'{e}ho dekod\'{e}ru
\item {\it symbolic} -- vektor vektorů hodnot symbolick\'{y}ch proměnn\'{y}ch
\end{itemize}


\section{popis třídy PLA}\label{PLA}
Tř\'{\i}da {\it PLA} reprezentuje logickou funkci. Jej\'{\i} metody 
prov\'{a}děj\'{\i} operace nad logickou funkc\'{\i} (nebo dvěma funkcemi), 
d\'{a} se jim určit v\'{y}stupn\'{\i} form\'{a}t logick\'{e} funkce. 
Dal\v{s}\'{\i} metody slou\v{z}\'{\i} pro vyps\'{a}n\'{\i} logick\'{e} 
funkce do zadan\'{e}ho streamu. Pomoc\'{\i} t\'{e}to tř\'{\i}dy se 
určuj\'{\i} původn\'{\i} nastaven\'{\i} Espressa (upřesňuj\'{\i}c\'{\i} 
informace pro někter\'{e} vykon\'{a}van\'{e} funkce, přesměrov\'{a}n\'{\i} 
v\'{y}stupů, debugovac\'{\i} v\'{y}pisy,{\ldots})

{\bf Metody pro načten\'{\i} logick\'{e} funkce}
\begin{itemize}
\item {\it loadFromFile(const char* filename)} -- načte funkci ze souboru zadan\'{e}ho jm\'{e}nem
\item {\it loadFromFile(FILE* fdescr)} -- načte funkci ze streamu (ze souboru ale i z~kl\'{a}vesnice)
\item {\it loadFromString(const char *function)} -- načte funkci se zadan\'{e}ho řetězce
\end{itemize}

{\bf Metody vykon\'{a}vaj\'{\i}c\'{\i} Espresso algoritmy}
\begin{itemize}
\item {\it espresso()} -- provede Espresso minimalizaci logick\'{e} funkce
\item {\it exact()} -- vykon\'{a} exaktn\'{\i} minimalizačn\'{\i} algoritmus
\item {\it qm()} -- vykon\'{a} rychlej\v{s}\'{\i} exaktn\'{\i} minimalizačn\'{\i} algoritmus (vypoč\'{\i}t\'{a}v\'{a} jenom jedno pokryt\'{\i})
\item {\it so(int strategy = 0)} -- ka\v{z}dou funkci minimalizuje jako single-output funkci. Parametr {\it strategy} mů\v{z}e nab\'{y}vat hodnot: $0$ -- provede Espresso minimalizaci, $1$ -- provede exaktn\'{\i} minimalizaci
\item {\it so{\_}both(int strategy = 0)} -- ka\v{z}dou funkci minimalizuje jako single-output přičem\v{z} v\v{z}dy vyb\'{\i}r\'{a} tu men\v{s}\'{\i} funkci z~ON-setu a OFF-setu. Parametr {\it strategy} mů\v{z}e nab\'{\i}vat hodnot: $0$ -- provede minimalizaci, $1$ -- provede exaktn\'{\i} minimalizaci
\item {\it simplify()} -- provede rychl\'{e} zjednodu\v{s}en\'{\i} ON-setu
\item {\it signature()} -- provede ,,signature cubes`` algoritmus
\item {\it opo(bool exact{\_}minimize = false, bool repeated = false, bool skip{\_}sparse = false)} -- provede optimalizaci v\'{y}stupn\'{\i} f\'{a}zy. Parametr {\it exact{\_}minimize }urč\'{\i}, jestli se pou\v{z}ije exaktn\'{\i} minimalizace, parametr {\it repeated} urč\'{\i} jestli se bude prov\'{a}dět opakovan\'{e} přirazen\'{\i} f\'{a}ze a parametr {\it skip{\_}sparse} urč\'{\i}, jestli se přeskoč\'{\i} ,,rozpt\'{y}len\'{\i}`` ({\it sparse} krok Espresso algoritmu)
\item {\it opoall(int first = -1, int last = -1, int strategy = 0)} -- minimalizuje funkci se v\v{s}emi mo\v{z}n\'{y}mi přirazen\'{\i}mi f\'{a}ze. Parametry {\it first} a {\it last} určuj\'{\i} rozsah v\'{y}stupn\'{\i}ch funkc\'{\i}, nad kter\'{y}mi se m\'{a} minimalizace prov\'{e}st, hodnoty $-1$ a $-1$ určuj\'{\i} cel\'{y} rozsah. Parametr {\it strategy} mů\v{z}e nab\'{\i}vat hodnot: $0$ -- pro Espresso minimalizaci, $1$ -- pro exaktn\'{\i} minimalizaci
\item {\it pair(int strategy = 0)} -- provede p\'{a}rov\'{a}n\'{\i} (hled\'{a}, kter\'{e} bin\'{a}rn\'{\i} proměnn\'{e} by měly b\'{y}t sp\'{a}rov\'{a}ny, aby do\v{s}lo k~největ\v{s}\'{\i} redukci termů). Parametr {\it strategy} mů\v{z}e nab\'{\i}vat hodnot: 0 -- algebraick\'{e} dělen\'{\i}, $1$ -- siln\'{e} dělen\'{\i}, $2$ -- Espresso minimalizace, $3$ -- exaktn\'{\i} minimalizace
\item {\it pairall(int strategy = 0)} -- provede p\'{a}rov\'{a}n\'{\i} na v\v{s}echny p\'{a}ry. Parametr strategy ml\v{z}e nab\'{\i}vat hodnot: $0$ -- Espresso minimalizace, $1$ -- exaktn\'{\i} minimalizace, $2$ -- přirazen\'{\i} f\'{a}źe
\end{itemize}

{\bf Metody prov\'{a}děj\'{\i}c\'{\i} operace nad dvěma logick\'{y}mi 
funkcemi}
\begin{itemize}
\item {\it {\_}union{\_}(PLA* second)} -- provede sjednocen\'{\i} logick\'{y}ch funkc\'{\i}
\item {\it {\_}xor{\_}(PLA* second)} -- provede exkluzivn\'{\i} součet logick\'{y}ch funkc\'{\i}
\item {\it sharp(PLA* second)} -- spočte sharp produkt logick\'{y}ch funkc\'{\i}
\item {\it dsharp(PLA* sekond)} -- spočte disjunktn\'{\i} sharp produkt logick\'{y}ch funkc\'{\i}
\item {\it intersect(PLA* second)} -- provede průnik logick\'{y}ch funkc\'{\i}
\item {\it verify(PLA* second)} -- ověř\'{\i}, jestli jsou logick\'{e} funkce ekvivalentn\'{\i}
\item {\it PLAverify(PLA* second)} -- ověř\'{\i}, jestli jsou logick\'{e} funkce ekvivalentn\'{\i}, přičem\v{z} prov\'{a}d\'{\i} permutaci sloupců a ř\'{a}dků na z\'{a}kladě jmen
\end{itemize}

{\bf Metody vykon\'{a}vaj\'{\i}c\'{\i} jednotliv\'{e} kroky Espresso 
algoritmu }
\begin{itemize}
\item {\it essen()} -- zkontroluje př\'{\i}m\'{e} implikanty
\item {\it expand()} -- provede expanzi
\item {\it gasp() }
\item {\it super{\_}gasp()}
\item {\it irred()} -- extrahuje minim\'{a}ln\'{\i} neredundantn\'{\i} subret
\item {\it make{\_}sparse()} -- provede ,,rozpt\'{y}len\'{\i}`` (redukuje celkov\'{y} počet liter\'{a}lů v~pokryt\'{\i}
\item {\it reduce()} -- provede redukci (ka\v{z}dou krychli nahrad\'{\i} jej\'{\i} redukovanou formou) 
\item {\it test()} -- provede nad danou logickou funkc\'{\i} jednu iteraci Espresso algoritmu
\end{itemize}

{\bf Sm\'{\i}\v{s}en\'{e} metody}
\begin{itemize}
\item {\it copy()} -- vr\'{a}t\'{\i} ukazatel na kopii logick\'{e} funkce
\item {\it print(FILE* target)} -- funkce zap\'{\i}\v{s}e logickou do dan\'{e}ho v\'{y}stupu
\item {\it seto(const char*)} -- slou\v{z}\'{\i} na nastaven\'{\i} v\'{y}stupn\'{\i}ho form\'{a}tu logick\'{e} funkce. Př\'{\i}pustn\'{e} řetězce jsou: "f", "r","d", "fd", "fr", "dr", "fdr", "fc", "rc", "dc", "fdc", "frc", "drc", "fdrc", "pleasure", "eqn", "eqntott", "kiss", "cons" a "scons", přičem\v{z} ,,f`` znamen\'{a} ON-set, ,,d`` znamen\'{a} DC-set, ,,r`` znamen\'{a} OFF-set, ,,c`` znamen\'{a} constraints{\_}type, ,,pleasure`` znamen\'{a} pleasure{\_}type, ,,eqn`` a ,,eqntott`` znamenaj\'{\i} eqntott{\_}type, ,,kiss`` znamen\'{a} kiss{\_}type a ,,scons`` znamen\'{a} symbolic{\_}constraints{\_}type
\item {\it pos()} -- vyměn\'{\i} ON-set a OFF-set
\item {\it lexsort()} -- seřad\'{\i} krychle standardn\'{\i}m lexik\'{a}ln\'{\i}m způsobem
\end{itemize}

{\bf Metody poskytuj\'{\i}c\'{\i} informace o logick\'{e} funkci}
\begin{itemize}
\item {\it check(FILE* target)} -- do zadan\'{e}ho v\'{y}stupu vyp\'{\i}\v{s}e informace o ověřen\'{\i} konzistence logick\'{e} funkce (disjunktnost v\v{s}ech pokryt\'{\i} a jestli pokryt\'{\i} tvoř\'{\i} univerzum)
\item {\it ONDCdisjoint()} -- vrac\'{\i} true/false v~z\'{a}vislosti na tom, jestli je ON-set a DC-set disjunktn\'{\i}
\item {\it ONOFFdisjoint()} -- vrac\'{\i} true/false v~z\'{a}vislosti na tom, jestli je ON-set a OFF-set disjunktn\'{\i}
\item {\it DCOFFdisjoint()} - vrac\'{\i} true/false v~z\'{a}vislosti na tom, jestli je DC-set a OFF-set disjunktn\'{\i}
\item {\it universe()} -- vrac\'{\i} true/false v~z\'{a}vislosti na tom, jestli sjednocen\'{\i} ON-setu, OFF-setu a DC-setu tvoř\'{\i} univerzum 
\item {\it printStats(FILE* target)} -- do zvolen\'{e}ho streamu vyp\'{\i}\v{s}e v\v{s}echny informace o funkci
\item {\it getStats()} -- vr\'{a}t\'{\i} ukazatel na nově alokovanou strukturu obsahuj\'{\i}c\'{\i} v\v{s}echny informace o logick\'{e} funkci (viz popis struktury PLAStats)
\item {\it taut()} -- zjist\'{\i}, jestli je logick\'{a} funkce tautologi\'{\i} 
\item {\it outputs()} -- vr\'{a}t\'{\i} počet v\'{y}stupů. Pro pou\v{z}it\'{\i} s {\it opoall()}
\item {\it inputs()} -- vr\'{a}t\'{\i} počet proměnn\'{y}ch v~logick\'{e} funkci. Pro pou\v{z}it\'{\i} s~{\it minterms()} a {\it d1merge()}
\end{itemize}

{\bf Statick\'{e} metody pro nastaven\'{\i} EspressoOptions}
\begin{itemize}
\item {\it setOptions(EspressoOptions {\&}opt)} -- aktualizuje nastaven\'{\i} podle zadan\'{e}ho {\it opt}
\item {\it setDefaultOptions()} -- nastav\'{\i} v\'{y}stupy a ostatn\'{\i} nastaven\'{\i} tak, jak byly v~původn\'{\i}m Espressu
\end{itemize}

{\bf Takzvan\'{e} ,,hacky``}
\begin{itemize}
\item {\it equiv()} -- vr\'{a}t\'{\i} ukazatel na vektor obsahuj\'{\i}c\'{\i} dvojice ekvivalentn\'{\i}ch v\'{y}stupů
\item {\it map(FILE* target)} -- do zadan\'{e}ho v\'{y}stupu vyp\'{\i}\v{s}e Karnaughovu mapu funkie
\item {\it map{\_}dcset()} -- spočte DC-set logick\'{e} funkce
\item {\it contain()} -- sma\v{z}e sety, kter\'{e} jsou obsa\v{z}eny v nějak\'{e}m vět\v{s}\'{\i}m setu
\item {\it d1merge(int first = -1, int last = -1)} -- provede efektivn\'{\i} distance-1 slučovac\'{\i} algoritmus. Parametry {\it first} a {\it last} určuj\'{\i} rozsah proměnn\'{y}ch, nad kter\'{y}mi se m\'{a} minimalizace prov\'{e}st, hodnoty $-1$ a $-1$ určuj\'{\i} cel\'{y} rozsah.
\item {\it d1merge{\_}in()} -- provede efektivn\'{\i} distance-1 slučovac\'{\i} algoritmus, ale jenom pro vstupy
\item {\it disjoint() }-- uprav\'{\i} ON-set na disjunktn\'{\i} pokryt\'{\i}
\item {\it minterms(int first, int last)} -- provede expanzi do mintermů. Parametry {\it first} a {\it last} určuj\'{\i} rozsah proměnn\'{y}ch, nad kter\'{y}mi se m\'{a} minimalizace prov\'{e}st, hodnoty $-1$ a $-1$ určuj\'{\i} cel\'{y} rozsah
\item {\it primes()} -- generuje v\v{s}echny př\'{\i}m\'{e} implikanty (pomoc\'{\i} konsenzu)
\item {\it separate() }-- odstr\'{a}n\'{\i} DC-set z~ON-setu
\end{itemize}


\section{Popis třídy EspressoOptions}\label{EspressoOptions}
Tř\'{\i}da {\it EspressoOptions} reprezentuje ,,\'{u}schovnu`` upřesňuj\'{\i}c\'{\i}ch 
informac\'{\i} pro Espresso algoritmy. D\'{a}le obsahuje debugovac\'{\i} 
nastaven\'{\i} a určen\'{\i} v\'{y}stupů pro v\'{y}pisy Espresso algoritmů. 
\'{U}lohou t\'{e}to tř\'{\i}dy je udr\v{z}ovat nastaven\'{\i} zadan\'{a} 
u\v{z}ivatelem v~konzistentn\'{\i}m stavu.
Dokud nen\'{\i} pou\v{z}ita jako argument statick\'{e} metody 
{\it setOptions(EspressoOptions{\&}) }tř\'{\i}dy {\it PLA}, nemaj\'{\i} jej\'{\i} nastaven\'{\i} \v{z}\'{a}dn\'{y} vliv na 
prov\'{a}děn\'{e} operace tř\'{\i}dy {\it PLA}. V~okam\v{z}iku, kdy je pou\v{z}ita 
jako parametr zm\'{\i}něn\'{e} metody {\it setOptions()}, dojde ke zkop\'{\i}rov\'{a}n\'{\i} 
jej\'{\i}ch nastaven\'{\i} do glob\'{a}ln\'{\i}ch proměnn\'{y}ch Espressa. 
N\'{a}sledně mů\v{z}e b\'{y}t objekt t\'{e}to tř\'{\i}dy modifikov\'{a}n, 
ani\v{z} by se tyto změny projevily při prov\'{a}děn\'{\i} 
n\'{a}sleduj\'{\i}c\'{\i}ch operac\'{\i} tř\'{\i}dy {\it PLA}. 

Nastaven\'{\i} zahrnuj\'{\i}: určen\'{\i} a povolen\'{\i} různ\'{y}ch druhů 
v\'{y}stupů a upřesňuj\'{\i}c\'{\i} informace pro minimalizačn\'{\i} 
algoritmy tř\'{\i}dy {\it PLA.}

{\bf Metody na automatick\'{e} nastaven\'{\i} hodnot}
\begin{itemize}
\item reset() -- nastav\'{\i} v\v{s}echny hodnoty na false a v\'{y}stupy do NULL
\item setEspressoDefaults() -- nastav\'{\i} v\'{y}stupy tak, jak byly původně v~Espressu
\end{itemize}

{\bf Metody na povolen\'{\i} v\'{y}stupů}
\begin{itemize}
\item setEat(bool value) -- nastav\'{\i} vypisov\'{a}n\'{\i} koment\'{a}řů nalezen\'{y}ch při nač\'{\i}tan\'{\i} logick\'{e} funkce
\item setEatdots(bool value) -- nastav\'{\i} vypisov\'{a}n\'{\i} nezn\'{a}m\'{y}ch př\'{\i}kazů nalezen\'{y}ch při nač\'{\i}tan\'{\i} logick\'{e} funkce
\item setTrace(bool value) -- nastav\'{\i} ,,trasov\'{a}n\'{\i}`` (
\item setSummary(bool value) -- nastav\'{\i} vypisov\'{a}n\'{\i} shrnut\'{\i} po ka\v{z}d\'{e} \'{u}spě\v{s}n\'{e} operaci
\item setDebug(bool value) -- nastav\'{\i} vypisov\'{a}n\'{\i} debugovac\'{\i}ch informac\'{\i}. Vypnut\'{\i}m těchto v\'{y}pisů budou zastaveny i v\'{y}pisy {\it verboseDebug}
\item setVerboseDebug(bool value) -- nastav\'{\i} vypisov\'{a}n\'{\i} podrobn\'{y}ch debugovac\'{\i}ch informac\'{\i}. Toto nastaven\'{\i} ovlivňuje i nastaven\'{\i} {\it debug}
\item setVerboseDebug(const char * function) -- nastav\'{\i} vypisov\'{a}n\'{\i} podorbn\'{y}ch informac\'{\i} u zvolen\'{e} funkce. N\'{a}zev funkce mus\'{\i} b\'{y}t jedn\'{\i}m z: "compl", "essen", "expand", "expand1", "irred", "irred1", "reduce", "reduce1", "mincov", "mincov1", "sparse", "sharp", "taut", "gasp", "exact".
\end{itemize}

{\bf Metody na nastaven\'{\i} v\'{y}stupů}
Tyto metody nastavuj\'{\i} v\'{y}stupn\'{\i} proud, do kter\'{e}ho budou 
hl\'{a}\v{s}ky přesměrov\'{a}ny. Nastaven\'{\i} proudu na {\it NULL} zak\'{a}\v{z}e 
jejich vypisov\'{a}n\'{\i}. Po určen\'{\i} v\'{y}stupn\'{e}ho proudu je 
potřeba v\'{y}pis př\'{\i}slu\v{s}n\'{e} skupiny potvrdit -- nastavit jeho 
př\'{\i}znak na hodnotu {\it true}
\begin{itemize}
\item {\it setTraceSummaryOutput(FILE* fdescr)} -- nastav\'{\i} v\'{y}stup pro trace a summary
\item {\it setDebugOutput(FILE* fdescr)} -- nastav\'{\i} v\'{y}stup pro debut a verboseDebug
\item {\it setErrorOutput(FILE* fdescr)} -- nastav\'{\i} v\'{y}stup pro chybov\'{e} hl\'{a}\v{s}ky
\item {\it setEat(FILE* fdescr)} -- nastav\'{\i} v\'{y}stup pro koment\'{a}ře nalezen\'{e} při nač\'{\i}tan\'{\i} logick\'{e} funkce
\item {\it setEatdots(FILE* fdescr)} -- nastav\'{\i} v\'{y}stup pro nezn\'{a}m\'{e} př\'{\i}kazy nalezen\'{e} při nač\'{\i}t\'{a}n\'{\i} logick\'{e} funkce
\item {\it setStandardOutput(FILE* fdescr)} -- nastav\'{\i} v\'{y}stup pro oznamovac\'{\i} hl\'{a}\v{s}ky
\end{itemize}

{\bf Metody na nastaven\'{\i} přep\'{\i}načů t\'{y}kaj\'{\i}c\'{\i}ch se 
algoritmů Espressa}
\begin{itemize}
\item setFast(bool value) -- nastav\'{\i} př\'{\i}znak, aby se expanze vykonala jenom jednou
\item setKiss(bool value) -- nastav\'{\i} ,,kiss-style`` minimalizačń\'{\i} probl\'{e}m
\item setNess(bool value) -- nastav\'{\i} př\'{\i}znak, aby se odstranili př\'{\i}m\'{e} implikanty
\item setNirr(bool value) -- nastav\'{\i} př\'{\i}znak, aby v~posledn\'{\i}m kroku nebyly odstraněny redundantn\'{\i} liter\'{a}ly
\item setNunwrap(bool value) -- nastav\'{\i} př\'{\i}znak, aby se ON-set před započet\'{\i}m minimalizace ,,nerozbalil``
\item setOnset(bool value) -- nastav\'{\i} př\'{\i}znak, aby se ON-set opětovně dopoč\'{\i}tal
\item setRandom(bool value) -- nastav\'{\i} př\'{\i}znak pro pou\v{z}it\'{\i} n\'{a}hodn\'{e}ho uspoř\'{a}d\'{a}n\'{\i}
\item setStrong(bool value) -- nastav\'{\i} př\'{\i}znak, aby se pou\v{z}ila metoda super{\_}gasp
\end{itemize}

{\bf Metody na z\'{\i}skan\'{\i} hodnot v\v{s}ech přep\'{\i}načů}
Metody vracej\'{\i} true/false v~z\'{a}vislosti na hodnotě dan\'{e}ho 
přep\'{\i}nače. N\'{a}zvy jsou voleny tak, aby bylo zřejm\'{e}, kter\'{a} 
metoda na nastaven\'{\i} př\'{\i}slu\v{s}\'{\i} k~dan\'{e} metodě na 
z\'{\i}sk\'{a}n\'{\i} hodnoty
\begin{itemize}
\item {\it eat(), eatdots(), fast(), kiss(),ness(), nirr(), nunwrap(), onset(), random(), strong(), trace(), summary(), debug(), verboseDebug()}
\end{itemize}
