\hypertarget{type_8h}{}\doxysection{libgymbo/type.h File Reference}
\label{type_8h}\index{libgymbo/type.h@{libgymbo/type.h}}


Implementatations of basic alias, types, and classes.  


{\ttfamily \#include $<$unordered\+\_\+map$>$}\newline
{\ttfamily \#include $<$unordered\+\_\+set$>$}\newline
{\ttfamily \#include $<$utility$>$}\newline
{\ttfamily \#include \char`\"{}utils.\+h\char`\"{}}\newline
Include dependency graph for type.\+h\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{type_8h__incl}
\end{center}
\end{figure}
This graph shows which files directly or indirectly include this file\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{type_8h__dep__incl}
\end{center}
\end{figure}
\doxysubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \mbox{\hyperlink{classgymbo_1_1Instr}{gymbo\+::\+Instr}}
\begin{DoxyCompactList}\small\item\em Class representing an instruction. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structgymbo_1_1Grad}{gymbo\+::\+Grad}}
\begin{DoxyCompactList}\small\item\em Struct representing the gradient of a symbolic expression. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structgymbo_1_1Sym}{gymbo\+::\+Sym}}
\begin{DoxyCompactList}\small\item\em Struct representing a symbolic expression. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structgymbo_1_1DiscreteDist}{gymbo\+::\+Discrete\+Dist}}
\begin{DoxyCompactList}\small\item\em Represents a discrete probability distribution. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structgymbo_1_1DiscreteUniformDist}{gymbo\+::\+Discrete\+Uniform\+Dist}}
\begin{DoxyCompactList}\small\item\em Represents a discrete uniform distribution derived from \mbox{\hyperlink{structgymbo_1_1DiscreteDist}{Discrete\+Dist}}. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structgymbo_1_1BernoulliDist}{gymbo\+::\+Bernoulli\+Dist}}
\begin{DoxyCompactList}\small\item\em Represents a bernoulli distribution derived from \mbox{\hyperlink{structgymbo_1_1DiscreteDist}{Discrete\+Dist}}. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structgymbo_1_1BinomialDist}{gymbo\+::\+Binomial\+Dist}}
\begin{DoxyCompactList}\small\item\em Represents a binomial distribution derived from \mbox{\hyperlink{structgymbo_1_1DiscreteDist}{Discrete\+Dist}}. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structgymbo_1_1SymProb}{gymbo\+::\+Sym\+Prob}}
\begin{DoxyCompactList}\small\item\em Represents a symbolic probability with a numerator and denominator. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structgymbo_1_1SymState}{gymbo\+::\+Sym\+State}}
\begin{DoxyCompactList}\small\item\em Struct representing the symbolic state of the symbolic execution. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structgymbo_1_1Trace}{gymbo\+::\+Trace}}
\begin{DoxyCompactList}\small\item\em Struct representing a trace in symbolic execution. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
 \mbox{\hyperlink{namespacegymbo}{gymbo}}
\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
using \mbox{\hyperlink{namespacegymbo_a5cbc49c07ec788c2da4cda3b41f9364f}{gymbo\+::\+Word32}} = uint32\+\_\+t
\begin{DoxyCompactList}\small\item\em Alias for 32-\/bit unsigned integer. \end{DoxyCompactList}\item 
using \mbox{\hyperlink{namespacegymbo_a9b6a88c2be45a5e3fd3f053681f89733}{gymbo\+::\+Prog}} = std\+::vector$<$ Instr $>$
\begin{DoxyCompactList}\small\item\em Alias for a program, represented as a vector of instructions. \end{DoxyCompactList}\item 
using \mbox{\hyperlink{namespacegymbo_a93394c86b71f9947e9d17b61013e600c}{gymbo\+::\+Mem}} = std\+::unordered\+\_\+map$<$ Word32, Word32 $>$
\begin{DoxyCompactList}\small\item\em Alias for memory, represented as an unordered map of 32-\/bit words. \end{DoxyCompactList}\item 
using \mbox{\hyperlink{namespacegymbo_ac714ceb538af2de2adce25193f0e5eaf}{gymbo\+::\+SMem}} = std\+::unordered\+\_\+map$<$ Word32, Sym $>$
\begin{DoxyCompactList}\small\item\em Alias for symbolic memory, represented as an unordered map of symbolic expressions. \end{DoxyCompactList}\item 
using \mbox{\hyperlink{namespacegymbo_aea0120f1cdc1417f9b6b8480ac562389}{gymbo\+::\+Path\+Constraints\+Table}} = std\+::unordered\+\_\+map$<$ std\+::string, std\+::pair$<$ bool, std\+::unordered\+\_\+map$<$ int, float $>$ $>$$>$
\begin{DoxyCompactList}\small\item\em Alias for a table of path constraints. \end{DoxyCompactList}\item 
using \mbox{\hyperlink{namespacegymbo_a035e6fe34f819db35a5662ae0cf427d3}{gymbo\+::\+Prob\+Path\+Constraints\+Table}} = std\+::unordered\+\_\+map$<$ int, std\+::vector$<$ std\+::tuple$<$ Sym, Mem, Sym\+Prob $>$ $>$$>$
\begin{DoxyCompactList}\small\item\em Alias for a table of probabilistic path constraints. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum class \mbox{\hyperlink{namespacegymbo_a367bfa154f9003b6f35beef881a6bb14}{gymbo\+::\+Instr\+Type}} \{ \newline
\mbox{\hyperlink{namespacegymbo_a367bfa154f9003b6f35beef881a6bb14aec211f7c20af43e742bf2570c3cb84f9}{gymbo\+::\+Add}}
, \mbox{\hyperlink{namespacegymbo_a367bfa154f9003b6f35beef881a6bb14ae80155eceb940c89e2de63ad05868db2}{gymbo\+::\+Sub}}
, \mbox{\hyperlink{namespacegymbo_a367bfa154f9003b6f35beef881a6bb14a62b6d55816cf737bfc6f42e60df1a3f2}{gymbo\+::\+Mul}}
, \mbox{\hyperlink{namespacegymbo_a367bfa154f9003b6f35beef881a6bb14a51a0569eddc8af78b9f7dd509605ccd1}{gymbo\+::\+Jmp\+If}}
, \newline
\mbox{\hyperlink{namespacegymbo_a367bfa154f9003b6f35beef881a6bb14a6cff4b2c006c869ef3c73f7fbd6e2711}{gymbo\+::\+Jmp}}
, \mbox{\hyperlink{namespacegymbo_a367bfa154f9003b6f35beef881a6bb14ac33315685a0cba3ce53be378b3c7874b}{gymbo\+::\+And}}
, \mbox{\hyperlink{namespacegymbo_a367bfa154f9003b6f35beef881a6bb14a3a2d5fe857d8f9541136a124c2edec6c}{gymbo\+::\+Or}}
, \mbox{\hyperlink{namespacegymbo_a367bfa154f9003b6f35beef881a6bb14aa74c05d080620f087c4e523977230666}{gymbo\+::\+Not}}
, \newline
\mbox{\hyperlink{namespacegymbo_a367bfa154f9003b6f35beef881a6bb14a50033c15af7795cd6617f117b29d6922}{gymbo\+::\+Lt}}
, \mbox{\hyperlink{namespacegymbo_a367bfa154f9003b6f35beef881a6bb14abccd5ec3ec8fd3a4471e71e9b407c60c}{gymbo\+::\+Le}}
, \mbox{\hyperlink{namespacegymbo_a367bfa154f9003b6f35beef881a6bb14a3718b5ecf60aa0dba49e150e96cb1fc3}{gymbo\+::\+Eq}}
, \mbox{\hyperlink{namespacegymbo_a367bfa154f9003b6f35beef881a6bb14a9c6a9d9f033001a9b3104984d319563b}{gymbo\+::\+Push}}
, \newline
\mbox{\hyperlink{namespacegymbo_a367bfa154f9003b6f35beef881a6bb14afdb0c388de01d545017cdf9ccf00eb72}{gymbo\+::\+Store}}
, \mbox{\hyperlink{namespacegymbo_a367bfa154f9003b6f35beef881a6bb14af19dbf2edb3a0bd74b0524d960ff21eb}{gymbo\+::\+Load}}
, \mbox{\hyperlink{namespacegymbo_a367bfa154f9003b6f35beef881a6bb14a0ae61bd0474e04c9f1195d4baa0213a0}{gymbo\+::\+Pop}}
, \mbox{\hyperlink{namespacegymbo_a367bfa154f9003b6f35beef881a6bb14a7a1a5f3e79fdc91edf2f5ead9d66abb4}{gymbo\+::\+Read}}
, \newline
\mbox{\hyperlink{namespacegymbo_a367bfa154f9003b6f35beef881a6bb14a13dba24862cf9128167a59100e154c8d}{gymbo\+::\+Print}}
, \mbox{\hyperlink{namespacegymbo_a367bfa154f9003b6f35beef881a6bb14a8778f5cc5ee1685fb97ad92e33e63225}{gymbo\+::\+Swap}}
, \mbox{\hyperlink{namespacegymbo_a367bfa154f9003b6f35beef881a6bb14a120be0bc58aa2e541a3be4d16b19d828}{gymbo\+::\+Dup}}
, \mbox{\hyperlink{namespacegymbo_a367bfa154f9003b6f35beef881a6bb14aef087651eb482bae4624478696f4ad4f}{gymbo\+::\+Over}}
, \newline
\mbox{\hyperlink{namespacegymbo_a367bfa154f9003b6f35beef881a6bb14abbbe5f56234982223c943e66e75d0f8e}{gymbo\+::\+RotL}}
, \mbox{\hyperlink{namespacegymbo_a367bfa154f9003b6f35beef881a6bb14af92965e2c8a7afb3c1b9a5c09a263636}{gymbo\+::\+Done}}
, \mbox{\hyperlink{namespacegymbo_a367bfa154f9003b6f35beef881a6bb14ab7e7f2b46723f5b08d763041108f8fed}{gymbo\+::\+Nop}}
 \}
\begin{DoxyCompactList}\small\item\em Enum representing different instruction types. \end{DoxyCompactList}\item 
enum class \mbox{\hyperlink{namespacegymbo_a4524c130985b8982d2787f9bafe27225}{gymbo\+::\+Sym\+Type}} \{ \newline
\mbox{\hyperlink{namespacegymbo_a4524c130985b8982d2787f9bafe27225a68a532004a63c408aa8587e5c0b19f32}{gymbo\+::\+SAdd}}
, \mbox{\hyperlink{namespacegymbo_a4524c130985b8982d2787f9bafe27225a8da2905886bedd12c82662380dd2f797}{gymbo\+::\+SSub}}
, \mbox{\hyperlink{namespacegymbo_a4524c130985b8982d2787f9bafe27225ac3aa42a4033c097f132de2e645772726}{gymbo\+::\+SMul}}
, \mbox{\hyperlink{namespacegymbo_a4524c130985b8982d2787f9bafe27225a32f44ca65beff335be6e9d884d9ff187}{gymbo\+::\+SEq}}
, \newline
\mbox{\hyperlink{namespacegymbo_a4524c130985b8982d2787f9bafe27225abb67bd7c54875002b5a8214f04ba0c39}{gymbo\+::\+SNot}}
, \mbox{\hyperlink{namespacegymbo_a4524c130985b8982d2787f9bafe27225a8e6bcd5685e5221b7133c03e692f4a92}{gymbo\+::\+SOr}}
, \mbox{\hyperlink{namespacegymbo_a4524c130985b8982d2787f9bafe27225ae04506053d891434c87bcb7c9ee7a492}{gymbo\+::\+SCon}}
, \mbox{\hyperlink{namespacegymbo_a4524c130985b8982d2787f9bafe27225a93deba25f847dbb4b3ae0711aad67318}{gymbo\+::\+SCnt}}
, \newline
\mbox{\hyperlink{namespacegymbo_a4524c130985b8982d2787f9bafe27225a086ea780e08007dce53b3c400c2a7ef3}{gymbo\+::\+SAnd}}
, \mbox{\hyperlink{namespacegymbo_a4524c130985b8982d2787f9bafe27225ad2c3d0433b9da329df4c66b885706dd4}{gymbo\+::\+SLt}}
, \mbox{\hyperlink{namespacegymbo_a4524c130985b8982d2787f9bafe27225a46b6c8e7c51af424839e28ad6f8ecbe8}{gymbo\+::\+SLe}}
, \mbox{\hyperlink{namespacegymbo_a4524c130985b8982d2787f9bafe27225adae537bd250f746297c0cfad0128c24d}{gymbo\+::\+SAny}}
 \}
\begin{DoxyCompactList}\small\item\em Enum representing different symbolic expression types. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Implementatations of basic alias, types, and classes. 

\begin{DoxyAuthor}{Author}
Hideaki Takahashi 
\end{DoxyAuthor}
