Changed pseudocode to not use indexing, double return instead of loop break

This commit is contained in:
Andreas Tsouchlos 2023-01-26 00:13:16 +01:00
parent d4e531d47c
commit 9ca69da479
3 changed files with 35 additions and 45 deletions

View File

@ -195,7 +195,7 @@
basicstyle=\normalfont, basicstyle=\normalfont,
columns=fullflexible, columns=fullflexible,
keywordstyle=\color{black}\bfseries, keywordstyle=\color{black}\bfseries,
keywords={a, for, end, do, b} % add the keywords you want, or load keywords={a, for, end, do, return, b} % add the keywords you want, or load
% a language as Rubens explains in his comment above. % a language as Rubens explains in his comment above.
numbers=left, numbers=left,
xleftmargin=.04\textwidth, xleftmargin=.04\textwidth,

View File

@ -94,15 +94,14 @@
\vspace{2mm} \vspace{2mm}
\begin{algorithm}[caption={}, label={}] \begin{algorithm}[caption={}, label={}]
$\boldsymbol{s}^{\left( 0 \right)} = \boldsymbol{0}$ $\boldsymbol{s} \leftarrow \boldsymbol{0}$
for $k=0$ to $K-1$ do for $K$ iterations do
$\boldsymbol{r}^{\left( k+1 \right)} = \boldsymbol{s}^{(k)} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s}^{(k)} \right) $ $\boldsymbol{r} \leftarrow \boldsymbol{s} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s} \right) $
Compute $\nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right)$ $\boldsymbol{s} \leftarrow \boldsymbol{r} - \gamma \nabla h\left( \boldsymbol{r} \right) $
$\boldsymbol{s}^{\left( k+1 \right)} = \boldsymbol{r}^{(k+1)} - \gamma \nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right) $ $\boldsymbol{\hat{x}} \leftarrow \text{sign}\left( \boldsymbol{s} \right) $
$\boldsymbol{\hat{x}} = \text{sign}\left( \boldsymbol{s}^{\left( k+1 \right) } \right) $ If $\boldsymbol{H}\boldsymbol{\hat{c}} = \boldsymbol{0}$, then return $\boldsymbol{\hat{c}}$
If $\boldsymbol{\hat{x}}$ passes the parity check condition, break the loop.
end for end for
Output $\boldsymbol{\hat{x}}$ return $\boldsymbol{\hat{c}}$
\end{algorithm} \end{algorithm}
\end{frame} \end{frame}

View File

@ -379,18 +379,15 @@
\begin{figure}[htpb] \begin{figure}[htpb]
\centering \centering
\begin{algorithm}[caption={}, label={}, \begin{algorithm}[caption={}, label={}]
basicstyle=\fontsize{7.5}{9.5}\selectfont $\boldsymbol{s} \leftarrow \boldsymbol{0}$
] for $K$ iterations do
$\boldsymbol{s}^{\left( 0 \right)} = \boldsymbol{0}$ $\boldsymbol{r} \leftarrow \boldsymbol{s} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s} \right) $
for $k=0$ to $K-1$ do $\boldsymbol{s} \leftarrow \boldsymbol{r} - \gamma \nabla h\left( \boldsymbol{r} \right) $
$\boldsymbol{r}^{\left( k+1 \right)} = \boldsymbol{s}^{(k)} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s}^{(k)}\right) $ $\boldsymbol{\hat{x}} \leftarrow \text{sign}\left( \boldsymbol{s} \right) $
Compute $\nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right)$ If $\boldsymbol{H}\boldsymbol{\hat{c}} = \boldsymbol{0}$, then return $\boldsymbol{\hat{c}}$
$\boldsymbol{s}^{\left( k+1 \right)} = \boldsymbol{r}^{(k+1)} - \gamma \nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right) $
$\boldsymbol{\hat{x}} = \text{sign}\left( \boldsymbol{s}^{\left( k+1 \right) } \right) $
If $\boldsymbol{\hat{x}}$ passes the parity check condition, break the loop.
end for end for
Output $\boldsymbol{\hat{x}}$ return $\boldsymbol{\hat{c}}$
\end{algorithm} \end{algorithm}
\caption{Proximal decoding algorithm \cite{proximal_paper}} \caption{Proximal decoding algorithm \cite{proximal_paper}}
@ -862,18 +859,15 @@ Output $\boldsymbol{\hat{x}}$
\begin{figure} \begin{figure}
\centering \centering
\begin{algorithm}[caption={}, label={}, \begin{algorithm}[caption={}, label={}]
basicstyle=\fontsize{7.5}{9.5}\selectfont $\boldsymbol{s} \leftarrow \boldsymbol{0}$
] for $K$ iterations do
$\boldsymbol{s}^{\left( 0 \right)} = \boldsymbol{0}$ $\boldsymbol{r} \leftarrow \boldsymbol{s} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s} \right) $
for $k=0$ to $K-1$ do $\boldsymbol{s} \leftarrow \boldsymbol{r} - \gamma \nabla h\left( \boldsymbol{r} \right) $
$\boldsymbol{r}^{\left( k+1 \right)} = \boldsymbol{s}^{(k)} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s}^{(k)} \right) $ $\boldsymbol{\hat{x}} \leftarrow \text{sign}\left( \boldsymbol{s} \right) $
Compute $\nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right)$ If $\boldsymbol{H}\boldsymbol{\hat{c}} = \boldsymbol{0}$, then return $\boldsymbol{\hat{c}}$
$\boldsymbol{s}^{\left( k+1 \right)} = \boldsymbol{r}^{(k+1)} - \gamma \nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right) $
$\boldsymbol{\hat{x}} = \text{sign}\left( \boldsymbol{s}^{\left( k+1 \right) } \right) $
If $\boldsymbol{\hat{x}}$ passes the parity check condition, break the loop.
end for end for
Output $\boldsymbol{\hat{x}}$ return $\boldsymbol{\hat{c}}$
\end{algorithm} \end{algorithm}
\caption{Proximal decoding algorithm \cite{proximal_paper}} \caption{Proximal decoding algorithm \cite{proximal_paper}}
@ -885,21 +879,18 @@ Output $\boldsymbol{\hat{x}}$
\begin{figure} \begin{figure}
\centering \centering
\begin{algorithm}[caption={}, label={}, \begin{algorithm}[caption={}, label={}]
basicstyle=\fontsize{7.5}{9.5}\selectfont $\boldsymbol{s} \leftarrow \boldsymbol{0}$
] for $K$ iterations do
$\boldsymbol{s}^{\left( 0 \right)} = \boldsymbol{0}$ $\boldsymbol{r} \leftarrow \boldsymbol{s} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s} \right) $
for $k=0$ to $K-1$ do $\boldsymbol{s} \leftarrow \boldsymbol{r} - \gamma \nabla h\left( \boldsymbol{r} \right) $
$\boldsymbol{r}^{\left( k+1 \right)} = \boldsymbol{s}^{(k)} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s}^{(k)}\right) $ $\boldsymbol{\hat{x}} \leftarrow \text{sign}\left( \boldsymbol{s} \right) $
Compute $\nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right)$ If $\boldsymbol{H}\boldsymbol{\hat{c}} = \boldsymbol{0}$, then return $\boldsymbol{\hat{c}}$
$\boldsymbol{s}^{\left( k+1 \right)} = \boldsymbol{r}^{(k+1)} - \gamma \nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right) $
$\boldsymbol{\hat{x}} = \text{sign}\left( \boldsymbol{s}^{\left( k+1 \right) } \right) $
$\textcolor{KITblue}{\text{If }\boldsymbol{\hat{x}}\text{ passes the parity check condition, output }\boldsymbol{\hat{x}}}$
end for end for
$\textcolor{KITblue}{\text{Find }N\text{ most probably wrong bits.}}$ $\textcolor{KITblue}{\text{Find }N\text{ most probably wrong bits.}}$
$\textcolor{KITblue}{\text{Generate variations } \boldsymbol{\tilde{x}}_n\text{ of }\boldsymbol{\hat{x}}\text{ with the }N\text{ bits modified.}}$ $\textcolor{KITblue}{\text{Generate variations } \boldsymbol{\tilde{c}}_n\text{ of }\boldsymbol{\hat{c}}\text{ with the }N\text{ bits modified.}}$
$\textcolor{KITblue}{\text{Compute }d_H\left( \boldsymbol{ \tilde{x}}_n, \boldsymbol{\hat{x}} \right) \forall n \in \left[ 1 : N-1 \right]}$ $\textcolor{KITblue}{\text{Compute }d_H\left( \boldsymbol{ \tilde{c}}_n, \boldsymbol{\hat{c}} \right) \forall n \in \left[ 1 : N-1 \right]}$
$\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{x}}_n\text{ with lowest }d_H\left( \boldsymbol{ \tilde{x}}_n, \boldsymbol{\hat{x}} \right)}$ $\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{c}}_n\text{ with lowest }d_H\left( \boldsymbol{ \tilde{c}}_n, \boldsymbol{\hat{c}} \right)}$
\end{algorithm} \end{algorithm}
\caption{Hybrid proximal \& ML decoding algorithm} \caption{Hybrid proximal \& ML decoding algorithm}