%\usepackage{natbib}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{mathrsfs}
\usepackage{array}
\usepackage{bm}
\usepackage{multirow}
\usepackage{graphicx, subfigure}

\usepackage{xspace}

\newcommand{\E}{\mathbb{E}}
\def\N{{\rm N}}
\def\KL{{\rm KL}}
\def\P{P_{\rm data}}
\def\L{{\cal L}}
\def\M{{\cal M}}
\def\D{{\cal D}}
\def\G{{\cal G}}
\def\hh{\hat{h}}
\def\th{h}
\def\hx{\hat{x}}
\def\tx{\tilde{x}}
\def\tn{\tilde{n}}
\def\I{{\bf I}}
\def\J{{\bf J}}
\def\P{{q_{\rm data}}}

%\renewcommand{\algorithmicrequire}{\textbf{Input:}}
%\renewcommand{\algorithmicensure}{\textbf{Output:}}


\def\E{{\rm E}}
\def\tY{\tilde{Y}}
\def\tn{\tilde{n}}
\def\y{{\cal Y}}
\def\x{{\cal X}}
\def\hY{\hat{Y}}
\def\hX{\hat{X}}

%--------------------------------------------------------------------------------
% Add a period to the end of an abbreviation unless there's one
% already, then \xspace.
\makeatletter
\DeclareRobustCommand\onedot{\futurelet\@let@token\@onedot}
\def\@onedot{\ifx\@let@token.\else.\null\fi\xspace}
%
\def\eg{\emph{e.g}\onedot} \def\Eg{\emph{E.g}\onedot}
\def\ie{\emph{i.e}\onedot} \def\Ie{\emph{I.e}\onedot}
\def\cf{\emph{c.f}\onedot} \def\Cf{\emph{C.f}\onedot}
\def\etc{\emph{etc}\onedot} %\def\vs{\emph{vs}\onedot}
\def\wrt{w.r.t\onedot} \def\dof{d.o.f\onedot}
\def\etal{\emph{et al}\onedot}
\makeatother