Commit b75ae398 authored by Renaud Pacalet's avatar Renaud Pacalet

ldpc doc

parent d1aa38b7
/doc/build/
*.fig.bak
#FIG 3.2 Produced by xfig version 3.2.6a
#
#FIG 3.2 Produced by xfig version 3.2.7a
Landscape
Center
Metric
A4
100.00
Single
-2
#
# Embb ( http://embb.telecom-paristech.fr/ ) - This file is part of Embb
# Copyright (C) - Telecom ParisTech
# Contacts: contact-embb@telecom-paristech.fr
......@@ -9,39 +16,10 @@
# software under the terms of the CeCILL license. You should have received a copy
# of the CeCILL license along with this program; if not, you can access it online
# at http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
#
Landscape
Center
Metric
A4
100.00
Single
-2
1200 2
5 1 0 1 0 7 50 -1 -1 0.000 0 0 0 0 13365.000 12060.000 13320 12060 13365 12015 13410 12060
6 14895 12015 15975 12465
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
15255 12015 15255 12105 14985 12105 14985 12015 15255 12015
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
15705 12015 15705 12105 15435 12105 15435 12015 15705 12015
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
14895 12015 14895 12465 15975 12465 15975 12015 14895 12015
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
15975 12105 15975 12375 15885 12375 15885 12105 15975 12105
4 1 0 50 -1 0 12 0.0000 0 150 720 15390 12285 aset_ram\001
-6
6 14895 12465 15975 12915
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
15255 12915 15255 12825 14985 12825 14985 12915 15255 12915
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
15705 12915 15705 12825 15435 12825 15435 12915 15705 12915
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
14895 12915 14895 12465 15975 12465 15975 12915 14895 12915
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
15975 12825 15975 12555 15885 12555 15885 12825 15975 12825
4 1 0 50 -1 0 12 0.0000 0 180 855 15390 12735 alpha_ram\001
-6
5 1 0 1 0 7 53 -1 20 0.000 0 0 0 0 14310.000 13050.000 14265 13050 14310 13005 14355 13050
5 1 0 1 0 7 53 -1 20 0.000 0 0 0 0 14490.000 13050.000 14445 13050 14490 13005 14535 13050
6 11610 13230 13185 14085
1 2 0 1 0 7 50 -1 -1 0.000 1 0.0000 11745 13995 135 90 11610 14085 11880 13905
2 1 0 1 4 7 50 -1 -1 0.000 0 0 -1 1 0 2
......@@ -52,22 +30,10 @@ Single
11610 13545 11880 13545
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
11610 13680 11880 13680 11880 13860 11610 13860 11610 13680
4 0 4 50 -1 0 12 0.0000 2 135 690 11925 13365 : control\001
4 0 0 50 -1 0 12 0.0000 2 135 450 11925 13590 : data\001
4 0 0 50 -1 0 12 0.0000 2 180 1140 11925 13815 : synchronous\001
4 0 0 50 -1 0 12 0.0000 2 135 1245 11925 14040 : combinatorial\001
-6
6 16020 13185 18450 13410
5 1 0 1 0 7 50 -1 -1 0.000 0 0 0 0 16110.000 13320.000 16065 13320 16110 13275 16155 13320
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 0 1.00 60.00 120.00
16155 13320 16515 13320
4 0 0 50 -1 0 12 0.0000 2 195 1890 16560 13365 $\\gamma_n^{(l)}$ (go)\001
-6
6 14265 11340 15075 11610
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
14265 11340 14265 11610 15075 11610 15075 11340 14265 11340
4 1 0 50 -1 0 12 0.0000 0 150 750 14670 11520 aset_new\001
4 0 4 50 -1 0 12 0.0000 2 150 705 11925 13365 : control\001
4 0 0 50 -1 0 12 0.0000 2 150 480 11925 13590 : data\001
4 0 0 50 -1 0 12 0.0000 2 195 1200 11925 13815 : synchronous\001
4 0 0 50 -1 0 12 0.0000 2 150 1275 11925 14040 : combinatorial\001
-6
1 1 0 1 0 7 50 -1 -1 0.000 1 0.0000 14310 12465 270 360 14310 12465 14580 12825
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 3
......@@ -75,13 +41,10 @@ Single
13950 11835 14130 11835 14130 12195
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 3
1 0 1.00 60.00 120.00
13230 13095 14130 13095 14130 12735
13230 13050 14130 13050 14130 12735
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 0 1.00 60.00 120.00
14535 12240 14895 12240
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 0 1.00 60.00 120.00
14535 12690 14895 12690
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 5
1 0 1.00 60.00 120.00
14670 11340 14670 11250 13455 11250 13455 11610 13680 11610
......@@ -99,19 +62,10 @@ Single
15120 13185 15120 12915
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 6
1 0 1.00 60.00 120.00
15975 12240 16110 12240 16110 11070 13365 11070 13365 12375 14040 12375
2 1 0 1 4 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 0 1.00 60.00 120.00
14490 13005 14490 12735
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 5
1 0 1.00 60.00 120.00
15975 12690 16110 12690 16110 13500 14310 13500 14310 12825
15975 12240 16110 12240 16110 11070 13365 11070 13365 12330 14085 12330
2 1 0 1 4 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 0 1.00 60.00 120.00
14310 11835 14310 12105
2 1 0 1 4 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 0 1.00 60.00 120.00
13770 12555 14040 12555
2 1 0 1 4 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 0 1.00 60.00 120.00
13815 11160 13815 11430
......@@ -120,8 +74,6 @@ Single
13410 12060 13680 12060
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
13320 12060 13230 12060
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3
14670 12690 14670 13320 16065 13320
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 0 1.00 60.00 120.00
14670 12240 14670 11610
......@@ -132,8 +84,49 @@ Single
13950 12240 13950 11430 13680 11430 13680 12240 13950 12240
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3
13680 11610 13950 11835 13680 12060
4 1 4 50 -1 0 12 0.0000 2 165 315 14490 13140 $n$\001
4 1 4 50 -1 0 12 0.0000 2 180 465 14400 11790 phase\001
4 2 0 50 -1 0 12 0.0000 2 195 3525 13185 12105 $\\{+\\infty,+\\infty,0,\\bm{0},0,\\bm{false}\\}$\001
4 2 0 50 -1 0 12 0.0000 2 195 2010 13185 13140 $\\gamma_n^{(l-1)}$ (gi)\001
4 2 4 50 -1 0 12 0.0000 2 165 1455 13725 12600 first\\_iteration (fi)\001
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
14265 11340 14265 11610 15075 11610 15075 11340 14265 11340
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
15255 12015 15255 12105 14985 12105 14985 12015 15255 12015
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
15705 12015 15705 12105 15435 12105 15435 12015 15705 12015
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
14895 12015 14895 12465 15975 12465 15975 12015 14895 12015
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
15975 12105 15975 12375 15885 12375 15885 12105 15975 12105
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
15255 12915 15255 12825 14985 12825 14985 12915 15255 12915
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
15705 12915 15705 12825 15435 12825 15435 12915 15705 12915
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
14895 12915 14895 12465 15975 12465 15975 12915 14895 12915
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
15975 12825 15975 12555 15885 12555 15885 12825 15975 12825
2 1 0 1 4 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 0 1.00 60.00 120.00
13770 12510 14040 12510
2 1 0 1 4 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 0 1.00 60.00 120.00
13770 12690 14085 12690
2 1 0 1 0 7 53 -1 20 0.000 0 0 -1 0 0 2
14130 13050 14265 13050
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 3
1 0 1.00 60.00 120.00
14310 12825 14310 13410 16290 13410
2 1 0 1 0 7 53 -1 -1 0.000 0 0 -1 1 0 4
1 0 1.00 60.00 120.00
14535 13050 14670 13050 14670 12690 14895 12690
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 5
1 0 1.00 60.00 120.00
15975 12690 16110 12690 16110 13320 14490 13320 14490 12735
2 1 0 1 0 7 53 -1 -1 0.000 0 0 -1 0 0 2
14355 13050 14445 13050
4 1 4 50 -1 0 12 0.0000 2 195 510 14400 11790 phase\001
4 2 0 50 -1 0 12 0.0000 2 210 3750 13185 12105 $\\{+\\infty,+\\infty,0,\\bm{0},0,\\bm{false}\\}$\001
4 1 0 50 -1 0 12 0.0000 2 195 585 15390 12285 r\\_ram\001
4 1 0 50 -1 0 12 0.0000 2 195 615 15390 12735 g\\_ram\001
4 1 0 50 -1 0 12 0.0000 2 195 615 14670 11520 r\\_new\001
4 2 4 50 -1 0 12 0.0000 2 195 1500 13725 12555 first\\_iteration (fi)\001
4 2 4 50 -1 0 12 0.0000 2 180 315 13725 12735 $n$\001
4 0 0 50 -1 0 12 0.0000 2 210 2040 16335 13455 $\\gamma_n^{(l)}$ (go)\001
4 2 0 50 -1 0 12 0.0000 2 210 2145 13185 13095 $\\gamma_n^{(l-1)}$ (gi)\001
#FIG 3.2 Produced by xfig version 3.2.6a
#
#FIG 3.2 Produced by xfig version 3.2.7a
Landscape
Center
Metric
A4
100.00
Single
-2
#
# Embb ( http://embb.telecom-paristech.fr/ ) - This file is part of Embb
# Copyright (C) - Telecom ParisTech
# Contacts: contact-embb@telecom-paristech.fr
......@@ -9,16 +16,11 @@
# software under the terms of the CeCILL license. You should have received a copy
# of the CeCILL license along with this program; if not, you can access it online
# at http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
#
Landscape
Center
Metric
A4
100.00
Single
-2
1200 2
6 17325 10125 18135 10575
4 1 4 50 -1 0 12 0.0000 2 105 345 17730 10260 mss\001
4 1 4 50 -1 0 12 0.0000 2 195 765 17730 10515 (p\\_ram)\001
-6
2 1 0 1 1 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 0 1.00 60.00 120.00
15030 10890 15300 10890
......@@ -89,11 +91,6 @@ Single
2 1 0 1 4 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 0 1.00 60.00 120.00
18360 10350 18630 10350
2 4 0 1 5 7 50 -1 -1 0.000 0 0 7 0 0 5
19350 10620 19350 9270 18630 9270 18630 10620 19350 10620
2 1 0 1 5 7 50 -1 -1 0.000 0 0 -1 1 0 6
1 0 1.00 60.00 120.00
19350 9855 19440 9855 19440 9180 16830 9180 16830 10260 17100 10260
2 4 0 1 5 7 50 -1 -1 0.000 0 0 7 0 0 5
18990 11070 18990 10710 18630 10710 18630 11070 18990 11070
2 1 0 1 5 7 50 -1 -1 0.000 0 0 -1 1 0 3
......@@ -110,21 +107,23 @@ Single
2 1 0 1 1 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 0 1.00 60.00 120.00
14400 9810 14400 10080
2 4 0 1 5 7 53 -1 20 0.000 0 0 7 0 0 5
19350 10620 19350 9270 18630 9270 18630 10620 19350 10620
2 1 0 1 5 7 50 -1 -1 0.000 0 0 -1 1 0 6
1 0 1.00 60.00 120.00
19395 9855 19530 9855 19530 9090 16830 9090 16830 10170 17100 10170
2 4 0 1 5 7 54 -1 20 0.000 0 0 7 0 0 5
19395 10575 19395 9225 18675 9225 18675 10575 19395 10575
2 4 0 1 5 7 55 -1 20 0.000 0 0 7 0 0 5
19440 10530 19440 9180 18720 9180 18720 10530 19440 10530
4 1 1 50 -1 0 12 0.0000 4 150 285 14400 10665 ctrl\001
4 1 14 50 -1 0 12 0.0000 2 105 345 15705 10395 rom\001
4 1 14 50 -1 0 12 0.0000 4 150 285 15480 10935 ctrl\001
4 1 28 50 -1 0 12 0.0000 2 150 315 16560 10305 add\001
4 1 28 50 -1 0 12 0.0000 2 150 315 16560 10485 gen\001
4 1 4 50 -1 0 12 0.0000 4 150 285 17730 10935 ctrl\001
4 1 4 50 -1 0 12 0.0000 2 105 345 17730 10395 mss\001
4 1 5 50 -1 0 12 0.0000 2 150 300 18990 10530 pes\001
4 1 4 50 -1 0 12 0.0000 4 195 150 18495 10260 gi\001
4 1 5 50 -1 0 12 0.0000 4 150 210 17775 9315 go\001
4 1 5 50 -1 0 12 0.0000 4 150 285 18810 10935 ctrl\001
4 1 5 50 -1 0 12 0.0000 4 120 360 18990 10080 aset\001
4 1 5 50 -1 0 12 0.0000 4 195 465 18990 9540 alpha\001
4 1 5 50 -1 0 12 0.0000 4 105 435 18990 10260 rams\001
4 1 5 50 -1 0 12 0.0000 4 105 435 18990 9720 rams\001
4 1 1 50 -1 0 12 0.0000 2 195 675 14400 9720 css2pss\001
4 1 28 50 -1 0 12 0.0000 4 150 285 16560 10935 ctrl\001
4 0 0 50 -1 0 12 0.0000 4 150 1275 14535 11790 : combinatorial\001
......@@ -134,3 +133,7 @@ Single
4 0 4 50 -1 0 12 0.0000 2 195 615 17910 11430 stage 4\001
4 0 5 50 -1 0 12 0.0000 2 195 615 17910 11655 stage 5\001
4 0 28 50 -1 0 12 0.0000 2 195 615 17100 11880 stage 3\001
4 1 5 50 -1 0 12 0.0000 2 150 210 18990 10530 pe\001
4 1 5 50 -1 0 12 0.0000 4 150 210 17820 9225 go\001
4 1 5 50 -1 0 12 0.0000 6 195 615 18990 9630 g\\_ram\001
4 1 5 50 -1 0 12 0.0000 6 195 585 18990 10170 r\\_ram\001
......@@ -66,16 +66,17 @@
\DeclareMathOperator{\sgn}{sgn}
\DeclareMathOperator{\sign}{sgn}
\newcommand{\ldpc}{\texttt{LDPC}}
\newcommand{\prio}{\gamma}
\newcommand{\post}{\tilde{\gamma}}
\newcommand{\Embb}[0]{$\mathcal{E}mbb$\xspace}
\newcommand{\TODO}[1]{%
\vskip .2cm%
\vspace.2cm%
\begingroup\par%
\hbox to \hsize{\strut\rlap{\bf\huge\textasteriskcentered\large TODO%
\huge\textasteriskcentered\quad}\vrule\hfil\parbox{.5\hsize}{\it #1}\hfil}%%
\hbox\ to \hsize{\strut\rlap{\bf\huge\textasteriskcentered\large TODO%
\huge\textasteriskcentered\quad}\vrule\hfil\parbox{.5\hsize}\textit{#1}\hfil}%%
\par\endgroup%
\vskip .2cm%
\vpace.2cm%
}%
% vim: set tabstop=4 softtabstop=4 shiftwidth=4 noexpandtab textwidth=0:
......@@ -16,7 +16,7 @@
\addeditor{RP}
\date{\today}
\title{Low Density Parity Check decoder (LDPC) documentation}
\title{Low Density Parity Check decoder (\ldpc) documentation}
\author{}
\begin{document}
......@@ -30,11 +30,7 @@
\chapter{Introduction}
This document describes the Low Density Parity Check decoder (LDPC) of the \Embb processor. Chapter \ref{ch:ug} is the LDPC user guide and presents the decoder
on a purely functional point of view. Chapter \ref{ch:ds} is a technical data sheet describing all the internal details of the hardware architecture. The reader
interested in writing a software application that uses LDPC can skip chapter \ref{ch:ds}: all the information about LDPC features and how to control it are
given in chapter \ref{ch:ug}. The user interested in understanding the underlying hardware architecture will find a comprehensive description in chapter
\ref{ch:ds}.
This document describes the Low Density Parity Check decoder (\ldpc) of the \Embb\ processor. Chapter~\ref{ch:ug} is the \ldpc\ user guide and presents the decoder on a purely functional point of view. Chapter~\ref{ch:ds} is a technical data sheet describing all the internal details of the hardware architecture. The reader interested in writing a software application that uses \ldpc\ can skip chapter~\ref{ch:ds}: all the information about \ldpc\ features and how to control it are given in chapter~\ref{ch:ug}. The user interested in understanding the underlying hardware architecture will find a comprehensive description in chapter~\ref{ch:ds}.
\section*{Revision history}
......@@ -44,15 +40,14 @@ given in chapter \ref{ch:ug}. The user interested in understanding the underlyin
\toprule
\textbf{Date} & \textbf{Version} & \textbf{Revision} \\
\midrule
2017-01-05 & 0.1 & Initial release. \\
2017/01/05 & 0.1 & Initial release. \\
\bottomrule
\end{tabular}
\caption{Revision history}
\label{tab:revisions}
\caption{Revision history}\label{tab:revisions}
\end{center}
\end{table}
\mainmatter
\mainmatter%
\chapter{User guide\label{ch:ug}}
\input{ldpc_ug}
......@@ -60,7 +55,7 @@ given in chapter \ref{ch:ug}. The user interested in understanding the underlyin
\chapter{Data sheet\label{ch:ds}}
\input{ldpc_ds}
\backmatter
\backmatter%
\bibliography{biblio}{}
\bibliographystyle{plain}
......
This diff is collapsed.
......@@ -10,7 +10,7 @@
% at http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
%
The original SCMS algorithm, as proposed in~\cite{savin2008self}, is depicted on algorithm~\ref{alg:scms-original}, with the following notations:
The original Self-Corrected Min-Sum (SCMS) decoding algorithm for LDPC codes, as proposed in~\cite{savin2008self}, is depicted on algorithm~\ref{alg:scms-original}, with the following notations:
\begin{itemize}
\item $\Tg$: Tanner graph of LDPC code
......@@ -60,7 +60,11 @@ The original SCMS algorithm, as proposed in~\cite{savin2008self}, is depicted on
\caption{The original SCMS algorithm}\label{alg:scms-original}
\end{algorithm}
Note that algorithm~\ref{alg:scms-original} can be slightly modified to use only posterior information ($\post_n$), initialized with prior information ($\prio_n$) before the first iteration. Line~\ref{alg:scms-original-posterior-update} becomes: $\post_n^{(l)} \leftarrow \post_n^{(l-1)} + \sum\limits_{m\in\Tg(n)}\beta_{m,n}^{(l)}$ with $\post_n^{(0)}=\prio_n$. The impact on decoding performance is negigible but the savings in terms of storage space is significant.
Algorithm~\ref{alg:scms-original} can be slightly modified to use only posterior information ($\post_n$), initialized with prior information ($\prio_n$) before the first iteration. Line~\ref{alg:scms-original-posterior-update} becomes:
\begin{align*}
\post_n^{(l)} \leftarrow \post_n^{(l-1)} + \sum\limits_{m\in\Tg(n)}\beta_{m,n}^{(l)}
\end{align*}
with $\post_n^{(0)}=\prio_n$. The impact on decoding performance is negigible but the savings in terms of storage space is significant.
Algorithm~\ref{alg:scms-original} can also be transformed in an equivalent algorithm where the CN-to-VN ($\beta$) and VN-to-CN ($\alpha$) message computations are swapped and their initializations are changed. Algorithm~\ref{alg:scms-modified} illustrates these two modifications.
......@@ -77,7 +81,7 @@ Algorithm~\ref{alg:scms-original} can also be transformed in an equivalent algor
\For{$l = 1$ to $l_{max}$} \Comment\ Iterate
\For{$m = 0$ to $M-1$} \Comment\ For all rows
\For{$n \in \Tg(m)$} \Comment\ For all active columns in row
\State\ $\alpha_{m,n}^{(l)} \leftarrow \post_n^{(l-1)} - \beta_n^{(l-1)}$
\State\ $\alpha_{m,n}^{(l)} \leftarrow \post_n^{(l-1)} - \beta_{m,n}^{(l-1)}$
\If{$\sign(\alpha_{m,n}^{(l)}) \neq \sign(\alpha_{m,n}^{(l-1)}) \band \alpha_{m,n}^{(l-1)} \neq 0$}
\State\ $\alpha_{m,n}^{(l)} \leftarrow 0$ \Comment\ Erase message
\EndIf%
......@@ -109,7 +113,7 @@ The layered schedule proposed in~\cite{mansour2006turbo} speeds-up the propagati
\For{$l = 1$ to $l_{max}$} \Comment\ Iterate
\For{$m = 0$ to $M-1$} \Comment\ For all rows
\For{$n \in \Tg(m)$} \Comment\ For all active columns in row
\State\ $\alpha_{m,n}^{(l)} \leftarrow \post_n^{(l-1)} - \beta_n^{(l-1)}$
\State\ $\alpha_{m,n}^{(l)} \leftarrow \post_n^{(l-1)} - \beta_{m,n}^{(l-1)}$
\If{$\sign(\alpha_{m,n}^{(l)}) \neq \sign(\alpha_{m,n}^{(l-1)}) \band \alpha_{m,n}^{(l-1)} \neq 0$}
\State\ $\alpha_{m,n}^{(l)} \leftarrow 0$ \Comment\ Erase message
\EndIf%
......@@ -163,7 +167,7 @@ The SCMS algorithm with layered schedule can be re-formulated as shown on algori
\For{$l = 1$ to $l_{max}$}
\For{$m = 0$ to $M-1$}
\State\ $r_m^{(l)} \leftarrow \{+\infty,+\infty,0,\bm{+1},+1,\bm{false}\}$\label{alg:scms-optimized:r-init}
\For{$n \in \Tg(m)$}
\For{$n \in \Tg(m)$}\label{alg:scms-optimized:phase-1-begin}
\State\ $\alpha \leftarrow \post_n^{(l-1)} - \beta(r_m^{(l-1)},n)$\label{alg:scms-optimized:a-new}
\If{$\sign(\alpha) \neq r_m^{(l-1)}.\alpha^s_n \band\ (\bnot r_m^{(l-1)}.\alpha^e_n)$}\label{alg:scms-optimized:erase-begin}
\State\ $\alpha \leftarrow 0$
......@@ -178,10 +182,10 @@ The SCMS algorithm with layered schedule can be re-formulated as shown on algori
\ElsIf{$\lvert\alpha\rvert < r_m^{(l)}.m_2$}
\State\ $r_m^{(l)}.m_2 \leftarrow \lvert\alpha\rvert$
\EndIf\label{alg:scms-optimized:r-new-end}
\EndFor%
\For{$n \in \Tg(m)$}\label{alg:scms-optimized:g-begin}
\EndFor\label{alg:scms-optimized:phase-1-end}
\For{$n \in \Tg(m)$}\label{alg:scms-optimized:g-begin}\label{alg:scms-optimized:phase-2-begin}
\State\ $\post_n^{(l)} \leftarrow \post_n^{(l-1)} + \beta(r_m^{(l)},n)$\label{alg:scms-optimized:g-new}
\EndFor\label{alg:scms-optimized:g-end}
\EndFor\label{alg:scms-optimized:g-end}\label{alg:scms-optimized:phase-2-end}
\EndFor%
\EndFor%
\end{algorithmic}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment