\usepackage{amsmath, amssymb, amsthm}
\usepackage{thmtools,thm-restate}
\usepackage{algorithm, algorithmic}
\newcommand{\E}[2]{\mathbb{E}_{#2}[#1]}
\newcommand{\m}[1]{\mathbf{#1}}
\newcommand{\norm}[1]{\lVert{#1}\rVert}

\newcommand{\ip}[2]{\langle #1,#2 \rangle}
\newcommand{\abs}[1]{\lvert{#1}\rvert}
\newcommand{\real}[1]{\mathbb{R}^{#1}}
\newcommand{\R}{\mathbb{R}}

\DeclareMathOperator{\sign}{sign}
\DeclareMathOperator{\sech}{sech}
\DeclareMathOperator{\erf}{erf}


\theoremstyle{plain}% default
\newtheorem{thm}{Theorem}
\newtheorem{lem}[thm]{Lemma}
\newtheorem{prop}[thm]{Proposition}
\newtheorem*{cor}{Corollary}
\newtheorem*{KL}{Klein’s Lemma}
\theoremstyle{definition}
\newtheorem{defn}{Definition}[section]
% 8 Using the amsthm package
\newtheorem{exmp}{Example}[section]
\newtheorem{xca}[exmp]{Exercise}
\theoremstyle{remark}
\newtheorem*{rem}{Remark}
\newtheorem*{note}{Note}


\newcommand{\surt}{\textsc{Surr.}\xspace}
\newcommand{\spgdt}{\textsc{Sp.G.}\xspace}
\newcommand{\lzot}{\textsc{L.ZO}\xspace}

\newcommand{\sur}{\textsc{Surrogate}\xspace}
\newcommand{\spgd}{\textsc{SparseGrad}\xspace}
\newcommand{\lzo}{\textsc{LocalZO}\xspace}

\newcommand{\lzotd}{LocalZO+tDBN\xspace}
\newcommand{\lzott}{LocalZO+TET\xspace}