<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[134467] trunk/dports/science/gnuradio</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="https://trac.macports.org/changeset/134467">134467</a></dd>
<dt>Author</dt> <dd>michaelld@macports.org</dd>
<dt>Date</dt> <dd>2015-03-26 11:43:37 -0700 (Thu, 26 Mar 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>gnuradio:
+ Add non-default variant to allow for building with c++11 compliance;
+ fix libc++ / libstdc++ and c++11 patches to work, for now, while we figure out a better way to handle std::complex math pre-c++11.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkdportssciencegnuradioPortfile">trunk/dports/science/gnuradio/Portfile</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkdportssciencegnuradiofilespatchc11fixesdiff">trunk/dports/science/gnuradio/files/patch-c++11-fixes.diff</a></li>
<li><a href="#trunkdportssciencegnuradiofilespatchdvbt2_libc_fixesdiff">trunk/dports/science/gnuradio/files/patch-dvbt2_libc++_fixes.diff</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkdportssciencegnuradioPortfile"></a>
<div class="modfile"><h4>Modified: trunk/dports/science/gnuradio/Portfile (134466 => 134467)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/science/gnuradio/Portfile        2015-03-26 17:35:54 UTC (rev 134466)
+++ trunk/dports/science/gnuradio/Portfile        2015-03-26 18:43:37 UTC (rev 134467)
</span><span class="lines">@@ -153,9 +153,28 @@
</span><span class="cx">         patchfiles-append \
</span><span class="cx">             patch-various.diff
</span><span class="cx"> 
</span><del>-        # temporary patch to fix use of std::complex in dvbt2_paprtr_cc_impl.cc
</del><ins>+        if {${configure.cxx_stdlib} eq &quot;libc++&quot; ||
+            [variant_isset cxx11]} {
+
+            # temporary patch to fix use of std::complex in dvbt2 to
+            # be compatible with libc++ and/or c++11
+            patchfiles-append \
+                patch-dvbt2_libc++_fixes.diff
+
+        } else {
+
+            # libstdc++ and not c++11:
+            # temporary patch to fix use of std::complex
+            # in dvbt2_paprtr_cc_impl.cc
+            patchfiles-append \
+                patch-dvbt2_paprtr_cc_impl.cc.diff
+
+        }
+
+        # temporary patch to fix compiling using -std=c++11; does not
+        # hurt for using older C++ standards.
</ins><span class="cx">         patchfiles-append \
</span><del>-            patch-dvbt2_paprtr_cc_impl.cc.diff
</del><ins>+            patch-c++11-fixes.diff
</ins><span class="cx"> 
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -563,3 +582,36 @@
</span><span class="cx">         -DSDL_INCLUDE_DIR=
</span><span class="cx"> 
</span><span class="cx"> }
</span><ins>+
+variant cxx11 description &quot;Compile using C++11&quot; {
+
+    # require C++11
+
+    configure.cxxflags-append -std=c++11
+
+    if {${configure.cxx_stdlib} eq &quot;libstdc++&quot;} {
+
+        # *clang* when using libstdc++ do not seem to support C++11;
+        # C++11 support seems to need GCC 4.7+ when using libstdc++;
+        # could use C++0x support on GCC4.[56], but just ignore it since
+        # there are newer compilers already in place as defaults.
+
+        # Blacklist GCC compilers not supporting C++11 and all CLANG.
+        # This is probably not necessary, but it's good practice.
+
+        compiler.blacklist-append *clang* {*gcc-3*} {*gcc-4.[0-6]}
+
+        # and whitelist those we do want to use. wish there were a better way.
+        # these will be used in the order provided.
+
+        compiler.whitelist macports-gcc-4.9 macports-gcc-4.8 macports-gcc-4.7
+
+    } else {
+
+        # using libc++;
+        # Blacklist Clang not supporting C++11 in some form and all GCC.
+
+        compiler.blacklist-append *gcc* {clang &lt; 500}
+
+    }
+}
</ins></span></pre></div>
<a id="trunkdportssciencegnuradiofilespatchc11fixesdiff"></a>
<div class="addfile"><h4>Added: trunk/dports/science/gnuradio/files/patch-c++11-fixes.diff (0 => 134467)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/science/gnuradio/files/patch-c++11-fixes.diff                                (rev 0)
+++ trunk/dports/science/gnuradio/files/patch-c++11-fixes.diff        2015-03-26 18:43:37 UTC (rev 134467)
</span><span class="lines">@@ -0,0 +1,52 @@
</span><ins>+--- gr-dtv/lib/atsc/atsc_sync_impl.cc.orig
++++ gr-dtv/lib/atsc/atsc_sync_impl.cc
+@@ -31,6 +31,13 @@
+ namespace gr {
+   namespace dtv {

++    static const double LOOP_FILTER_TAP = 0.0005;        // 0.0005 works
++    static const double ADJUSTMENT_GAIN = 1.0e-5 / (10 * ATSC_DATA_SEGMENT_LENGTH);
++    static const int          SYMBOL_INDEX_OFFSET = 3;
++    static const int          MIN_SEG_LOCK_CORRELATION_VALUE = 5;
++    static const int          SSI_MIN = -16;
++    static const int          SSI_MAX =  15;
++
+     atsc_sync::sptr
+     atsc_sync::make(float rate)
+     {
+--- gr-dtv/lib/atsc/atsc_sync_impl.h.orig
++++ gr-dtv/lib/atsc/atsc_sync_impl.h
+@@ -34,12 +34,6 @@ namespace gr {
+     class atsc_sync_impl : public atsc_sync
+     {
+     private:
+-      static const double LOOP_FILTER_TAP = 0.0005;        // 0.0005 works
+-      static const double ADJUSTMENT_GAIN = 1.0e-5 / (10 * ATSC_DATA_SEGMENT_LENGTH);
+-      static const int          SYMBOL_INDEX_OFFSET = 3;
+-      static const int          MIN_SEG_LOCK_CORRELATION_VALUE = 5;
+-      static const int          SSI_MIN = -16;
+-      static const int          SSI_MAX =  15;

+       gr::filter::single_pole_iir&lt;float,float,float&gt; d_loop; // ``VCO'' loop filter
+       gr::filter::mmse_fir_interpolator_ff d_interp;
+--- gr-fec/lib/cc_decoder_impl.cc.orig
++++ gr-fec/lib/cc_decoder_impl.cc
+@@ -147,7 +147,7 @@ namespace gr {
+           d_SUBSHIFT = 0;
+         }

+-        yp_kernel = boost::assign::map_list_of(&quot;k=7r=2&quot;, volk_8u_x4_conv_k7_r2_8u);
++        std::map&lt;std::string, conv_kernel&gt; yp_kernel = boost::assign::map_list_of(&quot;k=7r=2&quot;, volk_8u_x4_conv_k7_r2_8u);

+         std::string k_ = &quot;k=&quot;;
+         std::string r_ = &quot;r=&quot;;
+--- gr-fec/lib/cc_decoder_impl.h.orig
++++ gr-fec/lib/cc_decoder_impl.h
+@@ -85,7 +85,6 @@ namespace gr {
+         int parity(int x);
+         int parityb(unsigned char x);
+         void partab_init(void);
+-        std::map&lt;std::string, conv_kernel&gt; yp_kernel;

+       public:
+         cc_decoder_impl(int frame_size, int k,
</ins></span></pre></div>
<a id="trunkdportssciencegnuradiofilespatchdvbt2_libc_fixesdiff"></a>
<div class="addfile"><h4>Added: trunk/dports/science/gnuradio/files/patch-dvbt2_libc++_fixes.diff (0 => 134467)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/science/gnuradio/files/patch-dvbt2_libc++_fixes.diff                                (rev 0)
+++ trunk/dports/science/gnuradio/files/patch-dvbt2_libc++_fixes.diff        2015-03-26 18:43:37 UTC (rev 134467)
</span><span class="lines">@@ -0,0 +1,2402 @@
</span><ins>+--- gr-dtv/lib/dvbt2/dvbt2_framemapper_cc_impl.cc.orig
++++ gr-dtv/lib/dvbt2/dvbt2_framemapper_cc_impl.cc
+@@ -245,12 +245,12 @@ namespace gr {

+       bch_poly_build_tables();
+       l1pre_ldpc_lookup_generate();
+-      m_bpsk[0].real() =  1.0;
+-      m_bpsk[0].imag() =  0.0;
+-      m_bpsk[1].real() =  -1.0;
+-      m_bpsk[1].imag() =  0.0;
+-      unmodulated[0].real() =  0.0;
+-      unmodulated[0].imag() =  0.0;
++      m_bpsk[0].real( 1.0);
++      m_bpsk[0].imag( 0.0);
++      m_bpsk[1].real( -1.0);
++      m_bpsk[1].imag( 0.0);
++      unmodulated[0].real( 0.0);
++      unmodulated[0].imag( 0.0);

+       l1post_ldpc_lookup_generate();
+       switch (l1constellation) {
+@@ -259,182 +259,182 @@ namespace gr {
+           break;
+         case L1_MOD_QPSK:
+           normalization = sqrt(2);
+-          m_qpsk[0].real() =  1.0 / normalization;
+-          m_qpsk[0].imag() =  1.0 / normalization;
+-          m_qpsk[1].real() =  1.0 / normalization;
+-          m_qpsk[1].imag() = -1.0 / normalization;
+-          m_qpsk[2].real() = -1.0 / normalization;
+-          m_qpsk[2].imag() =  1.0 / normalization;
+-          m_qpsk[3].real() = -1.0 / normalization;
+-          m_qpsk[3].imag() = -1.0 / normalization;
++          m_qpsk[0].real( 1.0 / normalization);
++          m_qpsk[0].imag( 1.0 / normalization);
++          m_qpsk[1].real( 1.0 / normalization);
++          m_qpsk[1].imag(-1.0 / normalization);
++          m_qpsk[2].real(-1.0 / normalization);
++          m_qpsk[2].imag( 1.0 / normalization);
++          m_qpsk[3].real(-1.0 / normalization);
++          m_qpsk[3].imag(-1.0 / normalization);
+           eta_mod = 2;
+           break;
+         case L1_MOD_16QAM:
+           normalization = sqrt(10);
+-          m_16qam[0].real()  =  3.0 / normalization;
+-          m_16qam[0].imag()  =  3.0 / normalization;
+-          m_16qam[1].real()  =  3.0 / normalization;
+-          m_16qam[1].imag()  =  1.0 / normalization;
+-          m_16qam[2].real()  =  1.0 / normalization;
+-          m_16qam[2].imag()  =  3.0 / normalization;
+-          m_16qam[3].real()  =  1.0 / normalization;
+-          m_16qam[3].imag()  =  1.0 / normalization;
+-          m_16qam[4].real()  =  3.0 / normalization;
+-          m_16qam[4].imag()  = -3.0 / normalization;
+-          m_16qam[5].real()  =  3.0 / normalization;
+-          m_16qam[5].imag()  = -1.0 / normalization;
+-          m_16qam[6].real()  =  1.0 / normalization;
+-          m_16qam[6].imag()  = -3.0 / normalization;
+-          m_16qam[7].real()  =  1.0 / normalization;
+-          m_16qam[7].imag()  = -1.0 / normalization;
+-          m_16qam[8].real()  = -3.0 / normalization;
+-          m_16qam[8].imag()  =  3.0 / normalization;
+-          m_16qam[9].real()  = -3.0 / normalization;
+-          m_16qam[9].imag()  =  1.0 / normalization;
+-          m_16qam[10].real() = -1.0 / normalization;
+-          m_16qam[10].imag() =  3.0 / normalization;
+-          m_16qam[11].real() = -1.0 / normalization;
+-          m_16qam[11].imag() =  1.0 / normalization;
+-          m_16qam[12].real() = -3.0 / normalization;
+-          m_16qam[12].imag() = -3.0 / normalization;
+-          m_16qam[13].real() = -3.0 / normalization;
+-          m_16qam[13].imag() = -1.0 / normalization;
+-          m_16qam[14].real() = -1.0 / normalization;
+-          m_16qam[14].imag() = -3.0 / normalization;
+-          m_16qam[15].real() = -1.0 / normalization;
+-          m_16qam[15].imag() = -1.0 / normalization;
++          m_16qam[0].real( 3.0 / normalization);
++          m_16qam[0].imag( 3.0 / normalization);
++          m_16qam[1].real( 3.0 / normalization);
++          m_16qam[1].imag( 1.0 / normalization);
++          m_16qam[2].real( 1.0 / normalization);
++          m_16qam[2].imag( 3.0 / normalization);
++          m_16qam[3].real( 1.0 / normalization);
++          m_16qam[3].imag( 1.0 / normalization);
++          m_16qam[4].real( 3.0 / normalization);
++          m_16qam[4].imag(-3.0 / normalization);
++          m_16qam[5].real( 3.0 / normalization);
++          m_16qam[5].imag(-1.0 / normalization);
++          m_16qam[6].real( 1.0 / normalization);
++          m_16qam[6].imag(-3.0 / normalization);
++          m_16qam[7].real( 1.0 / normalization);
++          m_16qam[7].imag(-1.0 / normalization);
++          m_16qam[8].real(-3.0 / normalization);
++          m_16qam[8].imag( 3.0 / normalization);
++          m_16qam[9].real(-3.0 / normalization);
++          m_16qam[9].imag( 1.0 / normalization);
++          m_16qam[10].real(-1.0 / normalization);
++          m_16qam[10].imag( 3.0 / normalization);
++          m_16qam[11].real(-1.0 / normalization);
++          m_16qam[11].imag( 1.0 / normalization);
++          m_16qam[12].real(-3.0 / normalization);
++          m_16qam[12].imag(-3.0 / normalization);
++          m_16qam[13].real(-3.0 / normalization);
++          m_16qam[13].imag(-1.0 / normalization);
++          m_16qam[14].real(-1.0 / normalization);
++          m_16qam[14].imag(-3.0 / normalization);
++          m_16qam[15].real(-1.0 / normalization);
++          m_16qam[15].imag(-1.0 / normalization);
+           eta_mod = 4;
+           break;
+         case L1_MOD_64QAM:
+           normalization = sqrt(42);
+-          m_64qam[0].real() =   7.0 / normalization;
+-          m_64qam[0].imag() =   7.0 / normalization;
+-          m_64qam[1].real() =   7.0 / normalization;
+-          m_64qam[1].imag() =   5.0 / normalization;
+-          m_64qam[2].real() =   5.0 / normalization;
+-          m_64qam[2].imag() =   7.0 / normalization;
+-          m_64qam[3].real() =   5.0 / normalization;
+-          m_64qam[3].imag() =   5.0 / normalization;
+-          m_64qam[4].real() =   7.0 / normalization;
+-          m_64qam[4].imag() =   1.0 / normalization;
+-          m_64qam[5].real() =   7.0 / normalization;
+-          m_64qam[5].imag() =   3.0 / normalization;
+-          m_64qam[6].real() =   5.0 / normalization;
+-          m_64qam[6].imag() =   1.0 / normalization;
+-          m_64qam[7].real() =   5.0 / normalization;
+-          m_64qam[7].imag() =   3.0 / normalization;
+-          m_64qam[8].real() =   1.0 / normalization;
+-          m_64qam[8].imag() =   7.0 / normalization;
+-          m_64qam[9].real() =   1.0 / normalization;
+-          m_64qam[9].imag() =   5.0 / normalization;
+-          m_64qam[10].real() =  3.0 / normalization;
+-          m_64qam[10].imag() =  7.0 / normalization;
+-          m_64qam[11].real() =  3.0 / normalization;
+-          m_64qam[11].imag() =  5.0 / normalization;
+-          m_64qam[12].real() =  1.0 / normalization;
+-          m_64qam[12].imag() =  1.0 / normalization;
+-          m_64qam[13].real() =  1.0 / normalization;
+-          m_64qam[13].imag() =  3.0 / normalization;
+-          m_64qam[14].real() =  3.0 / normalization;
+-          m_64qam[14].imag() =  1.0 / normalization;
+-          m_64qam[15].real() =  3.0 / normalization;
+-          m_64qam[15].imag() =  3.0 / normalization;
+-          m_64qam[16].real() =  7.0 / normalization;
+-          m_64qam[16].imag() = -7.0 / normalization;
+-          m_64qam[17].real() =  7.0 / normalization;
+-          m_64qam[17].imag() = -5.0 / normalization;
+-          m_64qam[18].real() =  5.0 / normalization;
+-          m_64qam[18].imag() = -7.0 / normalization;
+-          m_64qam[19].real() =  5.0 / normalization;
+-          m_64qam[19].imag() = -5.0 / normalization;
+-          m_64qam[20].real() =  7.0 / normalization;
+-          m_64qam[20].imag() = -1.0 / normalization;
+-          m_64qam[21].real() =  7.0 / normalization;
+-          m_64qam[21].imag() = -3.0 / normalization;
+-          m_64qam[22].real() =  5.0 / normalization;
+-          m_64qam[22].imag() = -1.0 / normalization;
+-          m_64qam[23].real() =  5.0 / normalization;
+-          m_64qam[23].imag() = -3.0 / normalization;
+-          m_64qam[24].real() =  1.0 / normalization;
+-          m_64qam[24].imag() = -7.0 / normalization;
+-          m_64qam[25].real() =  1.0 / normalization;
+-          m_64qam[25].imag() = -5.0 / normalization;
+-          m_64qam[26].real() =  3.0 / normalization;
+-          m_64qam[26].imag() = -7.0 / normalization;
+-          m_64qam[27].real() =  3.0 / normalization;
+-          m_64qam[27].imag() = -5.0 / normalization;
+-          m_64qam[28].real() =  1.0 / normalization;
+-          m_64qam[28].imag() = -1.0 / normalization;
+-          m_64qam[29].real() =  1.0 / normalization;
+-          m_64qam[29].imag() = -3.0 / normalization;
+-          m_64qam[30].real() =  3.0 / normalization;
+-          m_64qam[30].imag() = -1.0 / normalization;
+-          m_64qam[31].real() =  3.0 / normalization;
+-          m_64qam[31].imag() = -3.0 / normalization;
+-          m_64qam[32].real() = -7.0 / normalization;
+-          m_64qam[32].imag() =  7.0 / normalization;
+-          m_64qam[33].real() = -7.0 / normalization;
+-          m_64qam[33].imag() =  5.0 / normalization;
+-          m_64qam[34].real() = -5.0 / normalization;
+-          m_64qam[34].imag() =  7.0 / normalization;
+-          m_64qam[35].real() = -5.0 / normalization;
+-          m_64qam[35].imag() =  5.0 / normalization;
+-          m_64qam[36].real() = -7.0 / normalization;
+-          m_64qam[36].imag() =  1.0 / normalization;
+-          m_64qam[37].real() = -7.0 / normalization;
+-          m_64qam[37].imag() =  3.0 / normalization;
+-          m_64qam[38].real() = -5.0 / normalization;
+-          m_64qam[38].imag() =  1.0 / normalization;
+-          m_64qam[39].real() = -5.0 / normalization;
+-          m_64qam[39].imag() =  3.0 / normalization;
+-          m_64qam[40].real() = -1.0 / normalization;
+-          m_64qam[40].imag() =  7.0 / normalization;
+-          m_64qam[41].real() = -1.0 / normalization;
+-          m_64qam[41].imag() =  5.0 / normalization;
+-          m_64qam[42].real() = -3.0 / normalization;
+-          m_64qam[42].imag() =  7.0 / normalization;
+-          m_64qam[43].real() = -3.0 / normalization;
+-          m_64qam[43].imag() =  5.0 / normalization;
+-          m_64qam[44].real() = -1.0 / normalization;
+-          m_64qam[44].imag() =  1.0 / normalization;
+-          m_64qam[45].real() = -1.0 / normalization;
+-          m_64qam[45].imag() =  3.0 / normalization;
+-          m_64qam[46].real() = -3.0 / normalization;
+-          m_64qam[46].imag() =  1.0 / normalization;
+-          m_64qam[47].real() = -3.0 / normalization;
+-          m_64qam[47].imag() =  3.0 / normalization;
+-          m_64qam[48].real() = -7.0 / normalization;
+-          m_64qam[48].imag() = -7.0 / normalization;
+-          m_64qam[49].real() = -7.0 / normalization;
+-          m_64qam[49].imag() = -5.0 / normalization;
+-          m_64qam[50].real() = -5.0 / normalization;
+-          m_64qam[50].imag() = -7.0 / normalization;
+-          m_64qam[51].real() = -5.0 / normalization;
+-          m_64qam[51].imag() = -5.0 / normalization;
+-          m_64qam[52].real() = -7.0 / normalization;
+-          m_64qam[52].imag() = -1.0 / normalization;
+-          m_64qam[53].real() = -7.0 / normalization;
+-          m_64qam[53].imag() = -3.0 / normalization;
+-          m_64qam[54].real() = -5.0 / normalization;
+-          m_64qam[54].imag() = -1.0 / normalization;
+-          m_64qam[55].real() = -5.0 / normalization;
+-          m_64qam[55].imag() = -3.0 / normalization;
+-          m_64qam[56].real() = -1.0 / normalization;
+-          m_64qam[56].imag() = -7.0 / normalization;
+-          m_64qam[57].real() = -1.0 / normalization;
+-          m_64qam[57].imag() = -5.0 / normalization;
+-          m_64qam[58].real() = -3.0 / normalization;
+-          m_64qam[58].imag() = -7.0 / normalization;
+-          m_64qam[59].real() = -3.0 / normalization;
+-          m_64qam[59].imag() = -5.0 / normalization;
+-          m_64qam[60].real() = -1.0 / normalization;
+-          m_64qam[60].imag() = -1.0 / normalization;
+-          m_64qam[61].real() = -1.0 / normalization;
+-          m_64qam[61].imag() = -3.0 / normalization;
+-          m_64qam[62].real() = -3.0 / normalization;
+-          m_64qam[62].imag() = -1.0 / normalization;
+-          m_64qam[63].real() = -3.0 / normalization;
+-          m_64qam[63].imag() = -3.0 / normalization;
++          m_64qam[0].real(  7.0 / normalization);
++          m_64qam[0].imag(  7.0 / normalization);
++          m_64qam[1].real(  7.0 / normalization);
++          m_64qam[1].imag(  5.0 / normalization);
++          m_64qam[2].real(  5.0 / normalization);
++          m_64qam[2].imag(  7.0 / normalization);
++          m_64qam[3].real(  5.0 / normalization);
++          m_64qam[3].imag(  5.0 / normalization);
++          m_64qam[4].real(  7.0 / normalization);
++          m_64qam[4].imag(  1.0 / normalization);
++          m_64qam[5].real(  7.0 / normalization);
++          m_64qam[5].imag(  3.0 / normalization);
++          m_64qam[6].real(  5.0 / normalization);
++          m_64qam[6].imag(  1.0 / normalization);
++          m_64qam[7].real(  5.0 / normalization);
++          m_64qam[7].imag(  3.0 / normalization);
++          m_64qam[8].real(  1.0 / normalization);
++          m_64qam[8].imag(  7.0 / normalization);
++          m_64qam[9].real(  1.0 / normalization);
++          m_64qam[9].imag(  5.0 / normalization);
++          m_64qam[10].real( 3.0 / normalization);
++          m_64qam[10].imag( 7.0 / normalization);
++          m_64qam[11].real( 3.0 / normalization);
++          m_64qam[11].imag( 5.0 / normalization);
++          m_64qam[12].real( 1.0 / normalization);
++          m_64qam[12].imag( 1.0 / normalization);
++          m_64qam[13].real( 1.0 / normalization);
++          m_64qam[13].imag( 3.0 / normalization);
++          m_64qam[14].real( 3.0 / normalization);
++          m_64qam[14].imag( 1.0 / normalization);
++          m_64qam[15].real( 3.0 / normalization);
++          m_64qam[15].imag( 3.0 / normalization);
++          m_64qam[16].real( 7.0 / normalization);
++          m_64qam[16].imag(-7.0 / normalization);
++          m_64qam[17].real( 7.0 / normalization);
++          m_64qam[17].imag(-5.0 / normalization);
++          m_64qam[18].real( 5.0 / normalization);
++          m_64qam[18].imag(-7.0 / normalization);
++          m_64qam[19].real( 5.0 / normalization);
++          m_64qam[19].imag(-5.0 / normalization);
++          m_64qam[20].real( 7.0 / normalization);
++          m_64qam[20].imag(-1.0 / normalization);
++          m_64qam[21].real( 7.0 / normalization);
++          m_64qam[21].imag(-3.0 / normalization);
++          m_64qam[22].real( 5.0 / normalization);
++          m_64qam[22].imag(-1.0 / normalization);
++          m_64qam[23].real( 5.0 / normalization);
++          m_64qam[23].imag(-3.0 / normalization);
++          m_64qam[24].real( 1.0 / normalization);
++          m_64qam[24].imag(-7.0 / normalization);
++          m_64qam[25].real( 1.0 / normalization);
++          m_64qam[25].imag(-5.0 / normalization);
++          m_64qam[26].real( 3.0 / normalization);
++          m_64qam[26].imag(-7.0 / normalization);
++          m_64qam[27].real( 3.0 / normalization);
++          m_64qam[27].imag(-5.0 / normalization);
++          m_64qam[28].real( 1.0 / normalization);
++          m_64qam[28].imag(-1.0 / normalization);
++          m_64qam[29].real( 1.0 / normalization);
++          m_64qam[29].imag(-3.0 / normalization);
++          m_64qam[30].real( 3.0 / normalization);
++          m_64qam[30].imag(-1.0 / normalization);
++          m_64qam[31].real( 3.0 / normalization);
++          m_64qam[31].imag(-3.0 / normalization);
++          m_64qam[32].real(-7.0 / normalization);
++          m_64qam[32].imag( 7.0 / normalization);
++          m_64qam[33].real(-7.0 / normalization);
++          m_64qam[33].imag( 5.0 / normalization);
++          m_64qam[34].real(-5.0 / normalization);
++          m_64qam[34].imag( 7.0 / normalization);
++          m_64qam[35].real(-5.0 / normalization);
++          m_64qam[35].imag( 5.0 / normalization);
++          m_64qam[36].real(-7.0 / normalization);
++          m_64qam[36].imag( 1.0 / normalization);
++          m_64qam[37].real(-7.0 / normalization);
++          m_64qam[37].imag( 3.0 / normalization);
++          m_64qam[38].real(-5.0 / normalization);
++          m_64qam[38].imag( 1.0 / normalization);
++          m_64qam[39].real(-5.0 / normalization);
++          m_64qam[39].imag( 3.0 / normalization);
++          m_64qam[40].real(-1.0 / normalization);
++          m_64qam[40].imag( 7.0 / normalization);
++          m_64qam[41].real(-1.0 / normalization);
++          m_64qam[41].imag( 5.0 / normalization);
++          m_64qam[42].real(-3.0 / normalization);
++          m_64qam[42].imag( 7.0 / normalization);
++          m_64qam[43].real(-3.0 / normalization);
++          m_64qam[43].imag( 5.0 / normalization);
++          m_64qam[44].real(-1.0 / normalization);
++          m_64qam[44].imag( 1.0 / normalization);
++          m_64qam[45].real(-1.0 / normalization);
++          m_64qam[45].imag( 3.0 / normalization);
++          m_64qam[46].real(-3.0 / normalization);
++          m_64qam[46].imag( 1.0 / normalization);
++          m_64qam[47].real(-3.0 / normalization);
++          m_64qam[47].imag( 3.0 / normalization);
++          m_64qam[48].real(-7.0 / normalization);
++          m_64qam[48].imag(-7.0 / normalization);
++          m_64qam[49].real(-7.0 / normalization);
++          m_64qam[49].imag(-5.0 / normalization);
++          m_64qam[50].real(-5.0 / normalization);
++          m_64qam[50].imag(-7.0 / normalization);
++          m_64qam[51].real(-5.0 / normalization);
++          m_64qam[51].imag(-5.0 / normalization);
++          m_64qam[52].real(-7.0 / normalization);
++          m_64qam[52].imag(-1.0 / normalization);
++          m_64qam[53].real(-7.0 / normalization);
++          m_64qam[53].imag(-3.0 / normalization);
++          m_64qam[54].real(-5.0 / normalization);
++          m_64qam[54].imag(-1.0 / normalization);
++          m_64qam[55].real(-5.0 / normalization);
++          m_64qam[55].imag(-3.0 / normalization);
++          m_64qam[56].real(-1.0 / normalization);
++          m_64qam[56].imag(-7.0 / normalization);
++          m_64qam[57].real(-1.0 / normalization);
++          m_64qam[57].imag(-5.0 / normalization);
++          m_64qam[58].real(-3.0 / normalization);
++          m_64qam[58].imag(-7.0 / normalization);
++          m_64qam[59].real(-3.0 / normalization);
++          m_64qam[59].imag(-5.0 / normalization);
++          m_64qam[60].real(-1.0 / normalization);
++          m_64qam[60].imag(-1.0 / normalization);
++          m_64qam[61].real(-1.0 / normalization);
++          m_64qam[61].imag(-3.0 / normalization);
++          m_64qam[62].real(-3.0 / normalization);
++          m_64qam[62].imag(-1.0 / normalization);
++          m_64qam[63].real(-3.0 / normalization);
++          m_64qam[63].imag(-3.0 / normalization);
+           eta_mod = 6;
+           break;
+       }
+@@ -1799,12 +1799,12 @@ namespace gr {
+       for (int i = 0; i &lt; mapped_items - stream_items - 1840 - (N_post / eta_mod) - (N_FC - C_FC); i++) {
+         int b = ((sr) ^ (sr &gt;&gt; 1)) &amp; 1;
+         if (b) {
+-          dummy_randomize[i].real() = -1.0;
++          dummy_randomize[i].real(-1.0);
+         }
+         else {
+-          dummy_randomize[i].real() = 1.0;
++          dummy_randomize[i].real(1.0);
+         }
+-        dummy_randomize[i].imag() = 0;
++        dummy_randomize[i].imag(0);
+         sr &gt;&gt;= 1;
+         if(b) {
+           sr |= 0x4000;
+--- gr-dtv/lib/dvbt2/dvbt2_miso_cc_impl.cc.orig
++++ gr-dtv/lib/dvbt2/dvbt2_miso_cc_impl.cc
+@@ -578,11 +578,11 @@ namespace gr {
+         for (int j = 0; j &lt; miso_items; j += 2) {
+           temp1 = *in++;
+           temp2 = *in++;
+-          out2-&gt;real() = -temp2.real();
+-          out2-&gt;imag() = temp2.imag();
++          out2-&gt;real(-temp2.real());
++          out2-&gt;imag( temp2.imag());
+           out2++;
+-          out2-&gt;real() = temp1.real();
+-          out2-&gt;imag() = -temp1.imag();
++          out2-&gt;real( temp1.real());
++          out2-&gt;imag(-temp1.imag());
+           out2++;
+         }
+       }
+--- gr-dtv/lib/dvbt2/dvbt2_modulator_bc_impl.cc.orig
++++ gr-dtv/lib/dvbt2/dvbt2_modulator_bc_impl.cc
+@@ -88,749 +88,749 @@ namespace gr {
+       switch (constellation) {
+         case MOD_QPSK:
+           normalization = sqrt(2);
+-          m_qpsk[0].real() =  1.0 / normalization;
+-          m_qpsk[0].imag() =  1.0 / normalization;
+-          m_qpsk[1].real() =  1.0 / normalization;
+-          m_qpsk[1].imag() = -1.0 / normalization;
+-          m_qpsk[2].real() = -1.0 / normalization;
+-          m_qpsk[2].imag() =  1.0 / normalization;
+-          m_qpsk[3].real() = -1.0 / normalization;
+-          m_qpsk[3].imag() = -1.0 / normalization;
++          m_qpsk[0].real( 1.0 / normalization);
++          m_qpsk[0].imag( 1.0 / normalization);
++          m_qpsk[1].real( 1.0 / normalization);
++          m_qpsk[1].imag(-1.0 / normalization);
++          m_qpsk[2].real(-1.0 / normalization);
++          m_qpsk[2].imag( 1.0 / normalization);
++          m_qpsk[3].real(-1.0 / normalization);
++          m_qpsk[3].imag(-1.0 / normalization);
+           if (rotation == ROTATION_ON) {
+             cyclic_delay = TRUE;
+             rotation_angle = (2.0 * M_PI * 29.0) / 360;
+             for (int i = 0; i &lt; 4; i++) {
+-              m_temp[0].real() = m_qpsk[i].real();
+-              m_qpsk[i].real() = (m_qpsk[i].real() * cos(rotation_angle)) - (m_qpsk[i].imag() * sin(rotation_angle));
+-              m_qpsk[i].imag() = (m_temp[0].real() * sin(rotation_angle)) + (m_qpsk[i].imag() * cos(rotation_angle));
++              m_temp[0].real(m_qpsk[i].real());
++              m_qpsk[i].real((m_qpsk[i].real() * cos(rotation_angle)) - (m_qpsk[i].imag() * sin(rotation_angle)));
++              m_qpsk[i].imag((m_temp[0].real() * sin(rotation_angle)) + (m_qpsk[i].imag() * cos(rotation_angle)));
+             }
+           }
+           break;
+         case MOD_16QAM:
+           normalization = sqrt(10);
+-          m_16qam[0].real()  =  3.0 / normalization;
+-          m_16qam[0].imag()  =  3.0 / normalization;
+-          m_16qam[1].real()  =  3.0 / normalization;
+-          m_16qam[1].imag()  =  1.0 / normalization;
+-          m_16qam[2].real()  =  1.0 / normalization;
+-          m_16qam[2].imag()  =  3.0 / normalization;
+-          m_16qam[3].real()  =  1.0 / normalization;
+-          m_16qam[3].imag()  =  1.0 / normalization;
+-          m_16qam[4].real()  =  3.0 / normalization;
+-          m_16qam[4].imag()  = -3.0 / normalization;
+-          m_16qam[5].real()  =  3.0 / normalization;
+-          m_16qam[5].imag()  = -1.0 / normalization;
+-          m_16qam[6].real()  =  1.0 / normalization;
+-          m_16qam[6].imag()  = -3.0 / normalization;
+-          m_16qam[7].real()  =  1.0 / normalization;
+-          m_16qam[7].imag()  = -1.0 / normalization;
+-          m_16qam[8].real()  = -3.0 / normalization;
+-          m_16qam[8].imag()  =  3.0 / normalization;
+-          m_16qam[9].real()  = -3.0 / normalization;
+-          m_16qam[9].imag()  =  1.0 / normalization;
+-          m_16qam[10].real() = -1.0 / normalization;
+-          m_16qam[10].imag() =  3.0 / normalization;
+-          m_16qam[11].real() = -1.0 / normalization;
+-          m_16qam[11].imag() =  1.0 / normalization;
+-          m_16qam[12].real() = -3.0 / normalization;
+-          m_16qam[12].imag() = -3.0 / normalization;
+-          m_16qam[13].real() = -3.0 / normalization;
+-          m_16qam[13].imag() = -1.0 / normalization;
+-          m_16qam[14].real() = -1.0 / normalization;
+-          m_16qam[14].imag() = -3.0 / normalization;
+-          m_16qam[15].real() = -1.0 / normalization;
+-          m_16qam[15].imag() = -1.0 / normalization;
++          m_16qam[0].real( 3.0 / normalization);
++          m_16qam[0].imag( 3.0 / normalization);
++          m_16qam[1].real( 3.0 / normalization);
++          m_16qam[1].imag( 1.0 / normalization);
++          m_16qam[2].real( 1.0 / normalization);
++          m_16qam[2].imag( 3.0 / normalization);
++          m_16qam[3].real( 1.0 / normalization);
++          m_16qam[3].imag( 1.0 / normalization);
++          m_16qam[4].real( 3.0 / normalization);
++          m_16qam[4].imag(-3.0 / normalization);
++          m_16qam[5].real( 3.0 / normalization);
++          m_16qam[5].imag(-1.0 / normalization);
++          m_16qam[6].real( 1.0 / normalization);
++          m_16qam[6].imag(-3.0 / normalization);
++          m_16qam[7].real( 1.0 / normalization);
++          m_16qam[7].imag(-1.0 / normalization);
++          m_16qam[8].real(-3.0 / normalization);
++          m_16qam[8].imag( 3.0 / normalization);
++          m_16qam[9].real(-3.0 / normalization);
++          m_16qam[9].imag( 1.0 / normalization);
++          m_16qam[10].real(-1.0 / normalization);
++          m_16qam[10].imag( 3.0 / normalization);
++          m_16qam[11].real(-1.0 / normalization);
++          m_16qam[11].imag( 1.0 / normalization);
++          m_16qam[12].real(-3.0 / normalization);
++          m_16qam[12].imag(-3.0 / normalization);
++          m_16qam[13].real(-3.0 / normalization);
++          m_16qam[13].imag(-1.0 / normalization);
++          m_16qam[14].real(-1.0 / normalization);
++          m_16qam[14].imag(-3.0 / normalization);
++          m_16qam[15].real(-1.0 / normalization);
++          m_16qam[15].imag(-1.0 / normalization);
+           if (rotation == ROTATION_ON) {
+             cyclic_delay = TRUE;
+             rotation_angle = (2.0 * M_PI * 16.8) / 360;
+             for (int i = 0; i &lt; 16; i++) {
+-              m_temp[0].real() = m_16qam[i].real();
+-              m_16qam[i].real() = (m_16qam[i].real() * cos(rotation_angle)) - (m_16qam[i].imag() * sin(rotation_angle));
+-              m_16qam[i].imag() = (m_temp[0].real() * sin(rotation_angle)) + (m_16qam[i].imag() * cos(rotation_angle));
++              m_temp[0].real(m_16qam[i].real());
++              m_16qam[i].real((m_16qam[i].real() * cos(rotation_angle)) - (m_16qam[i].imag() * sin(rotation_angle)));
++              m_16qam[i].imag((m_temp[0].real() * sin(rotation_angle)) + (m_16qam[i].imag() * cos(rotation_angle)));
+             }
+           }
+           break;
+         case MOD_64QAM:
+           normalization = sqrt(42);
+-          m_64qam[0].real() =   7.0 / normalization;
+-          m_64qam[0].imag() =   7.0 / normalization;
+-          m_64qam[1].real() =   7.0 / normalization;
+-          m_64qam[1].imag() =   5.0 / normalization;
+-          m_64qam[2].real() =   5.0 / normalization;
+-          m_64qam[2].imag() =   7.0 / normalization;
+-          m_64qam[3].real() =   5.0 / normalization;
+-          m_64qam[3].imag() =   5.0 / normalization;
+-          m_64qam[4].real() =   7.0 / normalization;
+-          m_64qam[4].imag() =   1.0 / normalization;
+-          m_64qam[5].real() =   7.0 / normalization;
+-          m_64qam[5].imag() =   3.0 / normalization;
+-          m_64qam[6].real() =   5.0 / normalization;
+-          m_64qam[6].imag() =   1.0 / normalization;
+-          m_64qam[7].real() =   5.0 / normalization;
+-          m_64qam[7].imag() =   3.0 / normalization;
+-          m_64qam[8].real() =   1.0 / normalization;
+-          m_64qam[8].imag() =   7.0 / normalization;
+-          m_64qam[9].real() =   1.0 / normalization;
+-          m_64qam[9].imag() =   5.0 / normalization;
+-          m_64qam[10].real() =  3.0 / normalization;
+-          m_64qam[10].imag() =  7.0 / normalization;
+-          m_64qam[11].real() =  3.0 / normalization;
+-          m_64qam[11].imag() =  5.0 / normalization;
+-          m_64qam[12].real() =  1.0 / normalization;
+-          m_64qam[12].imag() =  1.0 / normalization;
+-          m_64qam[13].real() =  1.0 / normalization;
+-          m_64qam[13].imag() =  3.0 / normalization;
+-          m_64qam[14].real() =  3.0 / normalization;
+-          m_64qam[14].imag() =  1.0 / normalization;
+-          m_64qam[15].real() =  3.0 / normalization;
+-          m_64qam[15].imag() =  3.0 / normalization;
+-          m_64qam[16].real() =  7.0 / normalization;
+-          m_64qam[16].imag() = -7.0 / normalization;
+-          m_64qam[17].real() =  7.0 / normalization;
+-          m_64qam[17].imag() = -5.0 / normalization;
+-          m_64qam[18].real() =  5.0 / normalization;
+-          m_64qam[18].imag() = -7.0 / normalization;
+-          m_64qam[19].real() =  5.0 / normalization;
+-          m_64qam[19].imag() = -5.0 / normalization;
+-          m_64qam[20].real() =  7.0 / normalization;
+-          m_64qam[20].imag() = -1.0 / normalization;
+-          m_64qam[21].real() =  7.0 / normalization;
+-          m_64qam[21].imag() = -3.0 / normalization;
+-          m_64qam[22].real() =  5.0 / normalization;
+-          m_64qam[22].imag() = -1.0 / normalization;
+-          m_64qam[23].real() =  5.0 / normalization;
+-          m_64qam[23].imag() = -3.0 / normalization;
+-          m_64qam[24].real() =  1.0 / normalization;
+-          m_64qam[24].imag() = -7.0 / normalization;
+-          m_64qam[25].real() =  1.0 / normalization;
+-          m_64qam[25].imag() = -5.0 / normalization;
+-          m_64qam[26].real() =  3.0 / normalization;
+-          m_64qam[26].imag() = -7.0 / normalization;
+-          m_64qam[27].real() =  3.0 / normalization;
+-          m_64qam[27].imag() = -5.0 / normalization;
+-          m_64qam[28].real() =  1.0 / normalization;
+-          m_64qam[28].imag() = -1.0 / normalization;
+-          m_64qam[29].real() =  1.0 / normalization;
+-          m_64qam[29].imag() = -3.0 / normalization;
+-          m_64qam[30].real() =  3.0 / normalization;
+-          m_64qam[30].imag() = -1.0 / normalization;
+-          m_64qam[31].real() =  3.0 / normalization;
+-          m_64qam[31].imag() = -3.0 / normalization;
+-          m_64qam[32].real() = -7.0 / normalization;
+-          m_64qam[32].imag() =  7.0 / normalization;
+-          m_64qam[33].real() = -7.0 / normalization;
+-          m_64qam[33].imag() =  5.0 / normalization;
+-          m_64qam[34].real() = -5.0 / normalization;
+-          m_64qam[34].imag() =  7.0 / normalization;
+-          m_64qam[35].real() = -5.0 / normalization;
+-          m_64qam[35].imag() =  5.0 / normalization;
+-          m_64qam[36].real() = -7.0 / normalization;
+-          m_64qam[36].imag() =  1.0 / normalization;
+-          m_64qam[37].real() = -7.0 / normalization;
+-          m_64qam[37].imag() =  3.0 / normalization;
+-          m_64qam[38].real() = -5.0 / normalization;
+-          m_64qam[38].imag() =  1.0 / normalization;
+-          m_64qam[39].real() = -5.0 / normalization;
+-          m_64qam[39].imag() =  3.0 / normalization;
+-          m_64qam[40].real() = -1.0 / normalization;
+-          m_64qam[40].imag() =  7.0 / normalization;
+-          m_64qam[41].real() = -1.0 / normalization;
+-          m_64qam[41].imag() =  5.0 / normalization;
+-          m_64qam[42].real() = -3.0 / normalization;
+-          m_64qam[42].imag() =  7.0 / normalization;
+-          m_64qam[43].real() = -3.0 / normalization;
+-          m_64qam[43].imag() =  5.0 / normalization;
+-          m_64qam[44].real() = -1.0 / normalization;
+-          m_64qam[44].imag() =  1.0 / normalization;
+-          m_64qam[45].real() = -1.0 / normalization;
+-          m_64qam[45].imag() =  3.0 / normalization;
+-          m_64qam[46].real() = -3.0 / normalization;
+-          m_64qam[46].imag() =  1.0 / normalization;
+-          m_64qam[47].real() = -3.0 / normalization;
+-          m_64qam[47].imag() =  3.0 / normalization;
+-          m_64qam[48].real() = -7.0 / normalization;
+-          m_64qam[48].imag() = -7.0 / normalization;
+-          m_64qam[49].real() = -7.0 / normalization;
+-          m_64qam[49].imag() = -5.0 / normalization;
+-          m_64qam[50].real() = -5.0 / normalization;
+-          m_64qam[50].imag() = -7.0 / normalization;
+-          m_64qam[51].real() = -5.0 / normalization;
+-          m_64qam[51].imag() = -5.0 / normalization;
+-          m_64qam[52].real() = -7.0 / normalization;
+-          m_64qam[52].imag() = -1.0 / normalization;
+-          m_64qam[53].real() = -7.0 / normalization;
+-          m_64qam[53].imag() = -3.0 / normalization;
+-          m_64qam[54].real() = -5.0 / normalization;
+-          m_64qam[54].imag() = -1.0 / normalization;
+-          m_64qam[55].real() = -5.0 / normalization;
+-          m_64qam[55].imag() = -3.0 / normalization;
+-          m_64qam[56].real() = -1.0 / normalization;
+-          m_64qam[56].imag() = -7.0 / normalization;
+-          m_64qam[57].real() = -1.0 / normalization;
+-          m_64qam[57].imag() = -5.0 / normalization;
+-          m_64qam[58].real() = -3.0 / normalization;
+-          m_64qam[58].imag() = -7.0 / normalization;
+-          m_64qam[59].real() = -3.0 / normalization;
+-          m_64qam[59].imag() = -5.0 / normalization;
+-          m_64qam[60].real() = -1.0 / normalization;
+-          m_64qam[60].imag() = -1.0 / normalization;
+-          m_64qam[61].real() = -1.0 / normalization;
+-          m_64qam[61].imag() = -3.0 / normalization;
+-          m_64qam[62].real() = -3.0 / normalization;
+-          m_64qam[62].imag() = -1.0 / normalization;
+-          m_64qam[63].real() = -3.0 / normalization;
+-          m_64qam[63].imag() = -3.0 / normalization;
++          m_64qam[0].real(  7.0 / normalization);
++          m_64qam[0].imag(  7.0 / normalization);
++          m_64qam[1].real(  7.0 / normalization);
++          m_64qam[1].imag(  5.0 / normalization);
++          m_64qam[2].real(  5.0 / normalization);
++          m_64qam[2].imag(  7.0 / normalization);
++          m_64qam[3].real(  5.0 / normalization);
++          m_64qam[3].imag(  5.0 / normalization);
++          m_64qam[4].real(  7.0 / normalization);
++          m_64qam[4].imag(  1.0 / normalization);
++          m_64qam[5].real(  7.0 / normalization);
++          m_64qam[5].imag(  3.0 / normalization);
++          m_64qam[6].real(  5.0 / normalization);
++          m_64qam[6].imag(  1.0 / normalization);
++          m_64qam[7].real(  5.0 / normalization);
++          m_64qam[7].imag(  3.0 / normalization);
++          m_64qam[8].real(  1.0 / normalization);
++          m_64qam[8].imag(  7.0 / normalization);
++          m_64qam[9].real(  1.0 / normalization);
++          m_64qam[9].imag(  5.0 / normalization);
++          m_64qam[10].real( 3.0 / normalization);
++          m_64qam[10].imag( 7.0 / normalization);
++          m_64qam[11].real( 3.0 / normalization);
++          m_64qam[11].imag( 5.0 / normalization);
++          m_64qam[12].real( 1.0 / normalization);
++          m_64qam[12].imag( 1.0 / normalization);
++          m_64qam[13].real( 1.0 / normalization);
++          m_64qam[13].imag( 3.0 / normalization);
++          m_64qam[14].real( 3.0 / normalization);
++          m_64qam[14].imag( 1.0 / normalization);
++          m_64qam[15].real( 3.0 / normalization);
++          m_64qam[15].imag( 3.0 / normalization);
++          m_64qam[16].real( 7.0 / normalization);
++          m_64qam[16].imag(-7.0 / normalization);
++          m_64qam[17].real( 7.0 / normalization);
++          m_64qam[17].imag(-5.0 / normalization);
++          m_64qam[18].real( 5.0 / normalization);
++          m_64qam[18].imag(-7.0 / normalization);
++          m_64qam[19].real( 5.0 / normalization);
++          m_64qam[19].imag(-5.0 / normalization);
++          m_64qam[20].real( 7.0 / normalization);
++          m_64qam[20].imag(-1.0 / normalization);
++          m_64qam[21].real( 7.0 / normalization);
++          m_64qam[21].imag(-3.0 / normalization);
++          m_64qam[22].real( 5.0 / normalization);
++          m_64qam[22].imag(-1.0 / normalization);
++          m_64qam[23].real( 5.0 / normalization);
++          m_64qam[23].imag(-3.0 / normalization);
++          m_64qam[24].real( 1.0 / normalization);
++          m_64qam[24].imag(-7.0 / normalization);
++          m_64qam[25].real( 1.0 / normalization);
++          m_64qam[25].imag(-5.0 / normalization);
++          m_64qam[26].real( 3.0 / normalization);
++          m_64qam[26].imag(-7.0 / normalization);
++          m_64qam[27].real( 3.0 / normalization);
++          m_64qam[27].imag(-5.0 / normalization);
++          m_64qam[28].real( 1.0 / normalization);
++          m_64qam[28].imag(-1.0 / normalization);
++          m_64qam[29].real( 1.0 / normalization);
++          m_64qam[29].imag(-3.0 / normalization);
++          m_64qam[30].real( 3.0 / normalization);
++          m_64qam[30].imag(-1.0 / normalization);
++          m_64qam[31].real( 3.0 / normalization);
++          m_64qam[31].imag(-3.0 / normalization);
++          m_64qam[32].real(-7.0 / normalization);
++          m_64qam[32].imag( 7.0 / normalization);
++          m_64qam[33].real(-7.0 / normalization);
++          m_64qam[33].imag( 5.0 / normalization);
++          m_64qam[34].real(-5.0 / normalization);
++          m_64qam[34].imag( 7.0 / normalization);
++          m_64qam[35].real(-5.0 / normalization);
++          m_64qam[35].imag( 5.0 / normalization);
++          m_64qam[36].real(-7.0 / normalization);
++          m_64qam[36].imag( 1.0 / normalization);
++          m_64qam[37].real(-7.0 / normalization);
++          m_64qam[37].imag( 3.0 / normalization);
++          m_64qam[38].real(-5.0 / normalization);
++          m_64qam[38].imag( 1.0 / normalization);
++          m_64qam[39].real(-5.0 / normalization);
++          m_64qam[39].imag( 3.0 / normalization);
++          m_64qam[40].real(-1.0 / normalization);
++          m_64qam[40].imag( 7.0 / normalization);
++          m_64qam[41].real(-1.0 / normalization);
++          m_64qam[41].imag( 5.0 / normalization);
++          m_64qam[42].real(-3.0 / normalization);
++          m_64qam[42].imag( 7.0 / normalization);
++          m_64qam[43].real(-3.0 / normalization);
++          m_64qam[43].imag( 5.0 / normalization);
++          m_64qam[44].real(-1.0 / normalization);
++          m_64qam[44].imag( 1.0 / normalization);
++          m_64qam[45].real(-1.0 / normalization);
++          m_64qam[45].imag( 3.0 / normalization);
++          m_64qam[46].real(-3.0 / normalization);
++          m_64qam[46].imag( 1.0 / normalization);
++          m_64qam[47].real(-3.0 / normalization);
++          m_64qam[47].imag( 3.0 / normalization);
++          m_64qam[48].real(-7.0 / normalization);
++          m_64qam[48].imag(-7.0 / normalization);
++          m_64qam[49].real(-7.0 / normalization);
++          m_64qam[49].imag(-5.0 / normalization);
++          m_64qam[50].real(-5.0 / normalization);
++          m_64qam[50].imag(-7.0 / normalization);
++          m_64qam[51].real(-5.0 / normalization);
++          m_64qam[51].imag(-5.0 / normalization);
++          m_64qam[52].real(-7.0 / normalization);
++          m_64qam[52].imag(-1.0 / normalization);
++          m_64qam[53].real(-7.0 / normalization);
++          m_64qam[53].imag(-3.0 / normalization);
++          m_64qam[54].real(-5.0 / normalization);
++          m_64qam[54].imag(-1.0 / normalization);
++          m_64qam[55].real(-5.0 / normalization);
++          m_64qam[55].imag(-3.0 / normalization);
++          m_64qam[56].real(-1.0 / normalization);
++          m_64qam[56].imag(-7.0 / normalization);
++          m_64qam[57].real(-1.0 / normalization);
++          m_64qam[57].imag(-5.0 / normalization);
++          m_64qam[58].real(-3.0 / normalization);
++          m_64qam[58].imag(-7.0 / normalization);
++          m_64qam[59].real(-3.0 / normalization);
++          m_64qam[59].imag(-5.0 / normalization);
++          m_64qam[60].real(-1.0 / normalization);
++          m_64qam[60].imag(-1.0 / normalization);
++          m_64qam[61].real(-1.0 / normalization);
++          m_64qam[61].imag(-3.0 / normalization);
++          m_64qam[62].real(-3.0 / normalization);
++          m_64qam[62].imag(-1.0 / normalization);
++          m_64qam[63].real(-3.0 / normalization);
++          m_64qam[63].imag(-3.0 / normalization);
+           if (rotation == ROTATION_ON) {
+             cyclic_delay = TRUE;
+             rotation_angle = (2.0 * M_PI * 8.6) / 360;
+             for (int i = 0; i &lt; 64; i++) {
+-              m_temp[0].real() = m_64qam[i].real();
+-              m_64qam[i].real() = (m_64qam[i].real() * cos(rotation_angle)) - (m_64qam[i].imag() * sin(rotation_angle));
+-              m_64qam[i].imag() = (m_temp[0].real() * sin(rotation_angle)) + (m_64qam[i].imag() * cos(rotation_angle));
++              m_temp[0].real(m_64qam[i].real());
++              m_64qam[i].real((m_64qam[i].real() * cos(rotation_angle)) - (m_64qam[i].imag() * sin(rotation_angle)));
++              m_64qam[i].imag((m_temp[0].real() * sin(rotation_angle)) + (m_64qam[i].imag() * cos(rotation_angle)));
+             }
+           }
+           break;
+         case MOD_256QAM:
+           normalization = sqrt(170);
+-          m_256qam[0].real()   =  15 / normalization;
+-          m_256qam[0].imag()   =  15 / normalization;
+-          m_256qam[1].real()   =  15 / normalization;
+-          m_256qam[1].imag()   =  13 / normalization;
+-          m_256qam[2].real()   =  13 / normalization;
+-          m_256qam[2].imag()   =  15 / normalization;
+-          m_256qam[3].real()   =  13 / normalization;
+-          m_256qam[3].imag()   =  13 / normalization;
+-          m_256qam[4].real()   =  15 / normalization;
+-          m_256qam[4].imag()   =   9 / normalization;
+-          m_256qam[5].real()   =  15 / normalization;
+-          m_256qam[5].imag()   =  11 / normalization;
+-          m_256qam[6].real()   =  13 / normalization;
+-          m_256qam[6].imag()   =   9 / normalization;
+-          m_256qam[7].real()   =  13 / normalization;
+-          m_256qam[7].imag()   =  11 / normalization;
+-          m_256qam[8].real()   =   9 / normalization;
+-          m_256qam[8].imag()   =  15 / normalization;
+-          m_256qam[9].real()   =   9 / normalization;
+-          m_256qam[9].imag()   =  13 / normalization;
+-          m_256qam[10].real()  =  11 / normalization;
+-          m_256qam[10].imag()  =  15 / normalization;
+-          m_256qam[11].real()  =  11 / normalization;
+-          m_256qam[11].imag()  =  13 / normalization;
+-          m_256qam[12].real()  =   9 / normalization;
+-          m_256qam[12].imag()  =   9 / normalization;
+-          m_256qam[13].real()  =   9 / normalization;
+-          m_256qam[13].imag()  =  11 / normalization;
+-          m_256qam[14].real()  =  11 / normalization;
+-          m_256qam[14].imag()  =   9 / normalization;
+-          m_256qam[15].real()  =  11 / normalization;
+-          m_256qam[15].imag()  =  11 / normalization;
+-          m_256qam[16].real()  =  15 / normalization;
+-          m_256qam[16].imag()  =   1 / normalization;
+-          m_256qam[17].real()  =  15 / normalization;
+-          m_256qam[17].imag()  =   3 / normalization;
+-          m_256qam[18].real()  =  13 / normalization;
+-          m_256qam[18].imag()  =   1 / normalization;
+-          m_256qam[19].real()  =  13 / normalization;
+-          m_256qam[19].imag()  =   3 / normalization;
+-          m_256qam[20].real()  =  15 / normalization;
+-          m_256qam[20].imag()  =   7 / normalization;
+-          m_256qam[21].real()  =  15 / normalization;
+-          m_256qam[21].imag()  =   5 / normalization;
+-          m_256qam[22].real()  =  13 / normalization;
+-          m_256qam[22].imag()  =   7 / normalization;
+-          m_256qam[23].real()  =  13 / normalization;
+-          m_256qam[23].imag()  =   5 / normalization;
+-          m_256qam[24].real()  =   9 / normalization;
+-          m_256qam[24].imag()  =   1 / normalization;
+-          m_256qam[25].real()  =   9 / normalization;
+-          m_256qam[25].imag()  =   3 / normalization;
+-          m_256qam[26].real()  =  11 / normalization;
+-          m_256qam[26].imag()  =   1 / normalization;
+-          m_256qam[27].real()  =  11 / normalization;
+-          m_256qam[27].imag()  =   3 / normalization;
+-          m_256qam[28].real()  =   9 / normalization;
+-          m_256qam[28].imag()  =   7 / normalization;
+-          m_256qam[29].real()  =   9 / normalization;
+-          m_256qam[29].imag()  =   5 / normalization;
+-          m_256qam[30].real()  =  11 / normalization;
+-          m_256qam[30].imag()  =   7 / normalization;
+-          m_256qam[31].real()  =  11 / normalization;
+-          m_256qam[31].imag()  =   5 / normalization;
+-          m_256qam[32].real()  =   1 / normalization;
+-          m_256qam[32].imag()  =  15 / normalization;
+-          m_256qam[33].real()  =   1 / normalization;
+-          m_256qam[33].imag()  =  13 / normalization;
+-          m_256qam[34].real()  =   3 / normalization;
+-          m_256qam[34].imag()  =  15 / normalization;
+-          m_256qam[35].real()  =   3 / normalization;
+-          m_256qam[35].imag()  =  13 / normalization;
+-          m_256qam[36].real()  =   1 / normalization;
+-          m_256qam[36].imag()  =   9 / normalization;
+-          m_256qam[37].real()  =   1 / normalization;
+-          m_256qam[37].imag()  =  11 / normalization;
+-          m_256qam[38].real()  =   3 / normalization;
+-          m_256qam[38].imag()  =   9 / normalization;
+-          m_256qam[39].real()  =   3 / normalization;
+-          m_256qam[39].imag()  =  11 / normalization;
+-          m_256qam[40].real()  =   7 / normalization;
+-          m_256qam[40].imag()  =  15 / normalization;
+-          m_256qam[41].real()  =   7 / normalization;
+-          m_256qam[41].imag()  =  13 / normalization;
+-          m_256qam[42].real()  =   5 / normalization;
+-          m_256qam[42].imag()  =  15 / normalization;
+-          m_256qam[43].real()  =   5 / normalization;
+-          m_256qam[43].imag()  =  13 / normalization;
+-          m_256qam[44].real()  =   7 / normalization;
+-          m_256qam[44].imag()  =   9 / normalization;
+-          m_256qam[45].real()  =   7 / normalization;
+-          m_256qam[45].imag()  =  11 / normalization;
+-          m_256qam[46].real()  =   5 / normalization;
+-          m_256qam[46].imag()  =   9 / normalization;
+-          m_256qam[47].real()  =   5 / normalization;
+-          m_256qam[47].imag()  =  11 / normalization;
+-          m_256qam[48].real()  =   1 / normalization;
+-          m_256qam[48].imag()  =   1 / normalization;
+-          m_256qam[49].real()  =   1 / normalization;
+-          m_256qam[49].imag()  =   3 / normalization;
+-          m_256qam[50].real()  =   3 / normalization;
+-          m_256qam[50].imag()  =   1 / normalization;
+-          m_256qam[51].real()  =   3 / normalization;
+-          m_256qam[51].imag()  =   3 / normalization;
+-          m_256qam[52].real()  =   1 / normalization;
+-          m_256qam[52].imag()  =   7 / normalization;
+-          m_256qam[53].real()  =   1 / normalization;
+-          m_256qam[53].imag()  =   5 / normalization;
+-          m_256qam[54].real()  =   3 / normalization;
+-          m_256qam[54].imag()  =   7 / normalization;
+-          m_256qam[55].real()  =   3 / normalization;
+-          m_256qam[55].imag()  =   5 / normalization;
+-          m_256qam[56].real()  =   7 / normalization;
+-          m_256qam[56].imag()  =   1 / normalization;
+-          m_256qam[57].real()  =   7 / normalization;
+-          m_256qam[57].imag()  =   3 / normalization;
+-          m_256qam[58].real()  =   5 / normalization;
+-          m_256qam[58].imag()  =   1 / normalization;
+-          m_256qam[59].real()  =   5 / normalization;
+-          m_256qam[59].imag()  =   3 / normalization;
+-          m_256qam[60].real()  =   7 / normalization;
+-          m_256qam[60].imag()  =   7 / normalization;
+-          m_256qam[61].real()  =   7 / normalization;
+-          m_256qam[61].imag()  =   5 / normalization;
+-          m_256qam[62].real()  =   5 / normalization;
+-          m_256qam[62].imag()  =   7 / normalization;
+-          m_256qam[63].real()  =   5 / normalization;
+-          m_256qam[63].imag()  =   5 / normalization;
+-          m_256qam[64].real()  =  15 / normalization;
+-          m_256qam[64].imag()  = -15 / normalization;
+-          m_256qam[65].real()  =  15 / normalization;
+-          m_256qam[65].imag()  = -13 / normalization;
+-          m_256qam[66].real()  =  13 / normalization;
+-          m_256qam[66].imag()  = -15 / normalization;
+-          m_256qam[67].real()  =  13 / normalization;
+-          m_256qam[67].imag()  = -13 / normalization;
+-          m_256qam[68].real()  =  15 / normalization;
+-          m_256qam[68].imag()  =  -9 / normalization;
+-          m_256qam[69].real()  =  15 / normalization;
+-          m_256qam[69].imag()  = -11 / normalization;
+-          m_256qam[70].real()  =  13 / normalization;
+-          m_256qam[70].imag()  =  -9 / normalization;
+-          m_256qam[71].real()  =  13 / normalization;
+-          m_256qam[71].imag()  = -11 / normalization;
+-          m_256qam[72].real()  =   9 / normalization;
+-          m_256qam[72].imag()  = -15 / normalization;
+-          m_256qam[73].real()  =   9 / normalization;
+-          m_256qam[73].imag()  = -13 / normalization;
+-          m_256qam[74].real()  =  11 / normalization;
+-          m_256qam[74].imag()  = -15 / normalization;
+-          m_256qam[75].real()  =  11 / normalization;
+-          m_256qam[75].imag()  = -13 / normalization;
+-          m_256qam[76].real()  =   9 / normalization;
+-          m_256qam[76].imag()  =  -9 / normalization;
+-          m_256qam[77].real()  =   9 / normalization;
+-          m_256qam[77].imag()  = -11 / normalization;
+-          m_256qam[78].real()  =  11 / normalization;
+-          m_256qam[78].imag()  =  -9 / normalization;
+-          m_256qam[79].real()  =  11 / normalization;
+-          m_256qam[79].imag()  = -11 / normalization;
+-          m_256qam[80].real()  =  15 / normalization;
+-          m_256qam[80].imag()  =  -1 / normalization;
+-          m_256qam[81].real()  =  15 / normalization;
+-          m_256qam[81].imag()  =  -3 / normalization;
+-          m_256qam[82].real()  =  13 / normalization;
+-          m_256qam[82].imag()  =  -1 / normalization;
+-          m_256qam[83].real()  =  13 / normalization;
+-          m_256qam[83].imag()  =  -3 / normalization;
+-          m_256qam[84].real()  =  15 / normalization;
+-          m_256qam[84].imag()  =  -7 / normalization;
+-          m_256qam[85].real()  =  15 / normalization;
+-          m_256qam[85].imag()  =  -5 / normalization;
+-          m_256qam[86].real()  =  13 / normalization;
+-          m_256qam[86].imag()  =  -7 / normalization;
+-          m_256qam[87].real()  =  13 / normalization;
+-          m_256qam[87].imag()  =  -5 / normalization;
+-          m_256qam[88].real()  =   9 / normalization;
+-          m_256qam[88].imag()  =  -1 / normalization;
+-          m_256qam[89].real()  =   9 / normalization;
+-          m_256qam[89].imag()  =  -3 / normalization;
+-          m_256qam[90].real()  =  11 / normalization;
+-          m_256qam[90].imag()  =  -1 / normalization;
+-          m_256qam[91].real()  =  11 / normalization;
+-          m_256qam[91].imag()  =  -3 / normalization;
+-          m_256qam[92].real()  =   9 / normalization;
+-          m_256qam[92].imag()  =  -7 / normalization;
+-          m_256qam[93].real()  =   9 / normalization;
+-          m_256qam[93].imag()  =  -5 / normalization;
+-          m_256qam[94].real()  =  11 / normalization;
+-          m_256qam[94].imag()  =  -7 / normalization;
+-          m_256qam[95].real()  =  11 / normalization;
+-          m_256qam[95].imag()  =  -5 / normalization;
+-          m_256qam[96].real()  =   1 / normalization;
+-          m_256qam[96].imag()  = -15 / normalization;
+-          m_256qam[97].real()  =   1 / normalization;
+-          m_256qam[97].imag()  = -13 / normalization;
+-          m_256qam[98].real()  =   3 / normalization;
+-          m_256qam[98].imag()  = -15 / normalization;
+-          m_256qam[99].real()  =   3 / normalization;
+-          m_256qam[99].imag()  = -13 / normalization;
+-          m_256qam[100].real() =   1 / normalization;
+-          m_256qam[100].imag() =  -9 / normalization;
+-          m_256qam[101].real() =   1 / normalization;
+-          m_256qam[101].imag() = -11 / normalization;
+-          m_256qam[102].real() =   3 / normalization;
+-          m_256qam[102].imag() =  -9 / normalization;
+-          m_256qam[103].real() =   3 / normalization;
+-          m_256qam[103].imag() = -11 / normalization;
+-          m_256qam[104].real() =   7 / normalization;
+-          m_256qam[104].imag() = -15 / normalization;
+-          m_256qam[105].real() =   7 / normalization;
+-          m_256qam[105].imag() = -13 / normalization;
+-          m_256qam[106].real() =   5 / normalization;
+-          m_256qam[106].imag() = -15 / normalization;
+-          m_256qam[107].real() =   5 / normalization;
+-          m_256qam[107].imag() = -13 / normalization;
+-          m_256qam[108].real() =   7 / normalization;
+-          m_256qam[108].imag() =  -9 / normalization;
+-          m_256qam[109].real() =   7 / normalization;
+-          m_256qam[109].imag() = -11 / normalization;
+-          m_256qam[110].real() =   5 / normalization;
+-          m_256qam[110].imag() =  -9 / normalization;
+-          m_256qam[111].real() =   5 / normalization;
+-          m_256qam[111].imag() = -11 / normalization;
+-          m_256qam[112].real() =   1 / normalization;
+-          m_256qam[112].imag() =  -1 / normalization;
+-          m_256qam[113].real() =   1 / normalization;
+-          m_256qam[113].imag() =  -3 / normalization;
+-          m_256qam[114].real() =   3 / normalization;
+-          m_256qam[114].imag() =  -1 / normalization;
+-          m_256qam[115].real() =   3 / normalization;
+-          m_256qam[115].imag() =  -3 / normalization;
+-          m_256qam[116].real() =   1 / normalization;
+-          m_256qam[116].imag() =  -7 / normalization;
+-          m_256qam[117].real() =   1 / normalization;
+-          m_256qam[117].imag() =  -5 / normalization;
+-          m_256qam[118].real() =   3 / normalization;
+-          m_256qam[118].imag() =  -7 / normalization;
+-          m_256qam[119].real() =   3 / normalization;
+-          m_256qam[119].imag() =  -5 / normalization;
+-          m_256qam[120].real() =   7 / normalization;
+-          m_256qam[120].imag() =  -1 / normalization;
+-          m_256qam[121].real() =   7 / normalization;
+-          m_256qam[121].imag() =  -3 / normalization;
+-          m_256qam[122].real() =   5 / normalization;
+-          m_256qam[122].imag() =  -1 / normalization;
+-          m_256qam[123].real() =   5 / normalization;
+-          m_256qam[123].imag() =  -3 / normalization;
+-          m_256qam[124].real() =   7 / normalization;
+-          m_256qam[124].imag() =  -7 / normalization;
+-          m_256qam[125].real() =   7 / normalization;
+-          m_256qam[125].imag() =  -5 / normalization;
+-          m_256qam[126].real() =   5 / normalization;
+-          m_256qam[126].imag() =  -7 / normalization;
+-          m_256qam[127].real() =   5 / normalization;
+-          m_256qam[127].imag() =  -5 / normalization;
+-          m_256qam[128].real() = -15 / normalization;
+-          m_256qam[128].imag() =  15 / normalization;
+-          m_256qam[129].real() = -15 / normalization;
+-          m_256qam[129].imag() =  13 / normalization;
+-          m_256qam[130].real() = -13 / normalization;
+-          m_256qam[130].imag() =  15 / normalization;
+-          m_256qam[131].real() = -13 / normalization;
+-          m_256qam[131].imag() =  13 / normalization;
+-          m_256qam[132].real() = -15 / normalization;
+-          m_256qam[132].imag() =   9 / normalization;
+-          m_256qam[133].real() = -15 / normalization;
+-          m_256qam[133].imag() =  11 / normalization;
+-          m_256qam[134].real() = -13 / normalization;
+-          m_256qam[134].imag() =   9 / normalization;
+-          m_256qam[135].real() = -13 / normalization;
+-          m_256qam[135].imag() =  11 / normalization;
+-          m_256qam[136].real() =  -9 / normalization;
+-          m_256qam[136].imag() =  15 / normalization;
+-          m_256qam[137].real() =  -9 / normalization;
+-          m_256qam[137].imag() =  13 / normalization;
+-          m_256qam[138].real() = -11 / normalization;
+-          m_256qam[138].imag() =  15 / normalization;
+-          m_256qam[139].real() = -11 / normalization;
+-          m_256qam[139].imag() =  13 / normalization;
+-          m_256qam[140].real() =  -9 / normalization;
+-          m_256qam[140].imag() =   9 / normalization;
+-          m_256qam[141].real() =  -9 / normalization;
+-          m_256qam[141].imag() =  11 / normalization;
+-          m_256qam[142].real() = -11 / normalization;
+-          m_256qam[142].imag() =   9 / normalization;
+-          m_256qam[143].real() = -11 / normalization;
+-          m_256qam[143].imag() =  11 / normalization;
+-          m_256qam[144].real() = -15 / normalization;
+-          m_256qam[144].imag() =   1 / normalization;
+-          m_256qam[145].real() = -15 / normalization;
+-          m_256qam[145].imag() =   3 / normalization;
+-          m_256qam[146].real() = -13 / normalization;
+-          m_256qam[146].imag() =   1 / normalization;
+-          m_256qam[147].real() = -13 / normalization;
+-          m_256qam[147].imag() =   3 / normalization;
+-          m_256qam[148].real() = -15 / normalization;
+-          m_256qam[148].imag() =   7 / normalization;
+-          m_256qam[149].real() = -15 / normalization;
+-          m_256qam[149].imag() =   5 / normalization;
+-          m_256qam[150].real() = -13 / normalization;
+-          m_256qam[150].imag() =   7 / normalization;
+-          m_256qam[151].real() = -13 / normalization;
+-          m_256qam[151].imag() =   5 / normalization;
+-          m_256qam[152].real() =  -9 / normalization;
+-          m_256qam[152].imag() =   1 / normalization;
+-          m_256qam[153].real() =  -9 / normalization;
+-          m_256qam[153].imag() =   3 / normalization;
+-          m_256qam[154].real() = -11 / normalization;
+-          m_256qam[154].imag() =   1 / normalization;
+-          m_256qam[155].real() = -11 / normalization;
+-          m_256qam[155].imag() =   3 / normalization;
+-          m_256qam[156].real() =  -9 / normalization;
+-          m_256qam[156].imag() =   7 / normalization;
+-          m_256qam[157].real() =  -9 / normalization;
+-          m_256qam[157].imag() =   5 / normalization;
+-          m_256qam[158].real() = -11 / normalization;
+-          m_256qam[158].imag() =   7 / normalization;
+-          m_256qam[159].real() = -11 / normalization;
+-          m_256qam[159].imag() =   5 / normalization;
+-          m_256qam[160].real() =  -1 / normalization;
+-          m_256qam[160].imag() =  15 / normalization;
+-          m_256qam[161].real() =  -1 / normalization;
+-          m_256qam[161].imag() =  13 / normalization;
+-          m_256qam[162].real() =  -3 / normalization;
+-          m_256qam[162].imag() =  15 / normalization;
+-          m_256qam[163].real() =  -3 / normalization;
+-          m_256qam[163].imag() =  13 / normalization;
+-          m_256qam[164].real() =  -1 / normalization;
+-          m_256qam[164].imag() =   9 / normalization;
+-          m_256qam[165].real() =  -1 / normalization;
+-          m_256qam[165].imag() =  11 / normalization;
+-          m_256qam[166].real() =  -3 / normalization;
+-          m_256qam[166].imag() =   9 / normalization;
+-          m_256qam[167].real() =  -3 / normalization;
+-          m_256qam[167].imag() =  11 / normalization;
+-          m_256qam[168].real() =  -7 / normalization;
+-          m_256qam[168].imag() =  15 / normalization;
+-          m_256qam[169].real() =  -7 / normalization;
+-          m_256qam[169].imag() =  13 / normalization;
+-          m_256qam[170].real() =  -5 / normalization;
+-          m_256qam[170].imag() =  15 / normalization;
+-          m_256qam[171].real() =  -5 / normalization;
+-          m_256qam[171].imag() =  13 / normalization;
+-          m_256qam[172].real() =  -7 / normalization;
+-          m_256qam[172].imag() =   9 / normalization;
+-          m_256qam[173].real() =  -7 / normalization;
+-          m_256qam[173].imag() =  11 / normalization;
+-          m_256qam[174].real() =  -5 / normalization;
+-          m_256qam[174].imag() =   9 / normalization;
+-          m_256qam[175].real() =  -5 / normalization;
+-          m_256qam[175].imag() =  11 / normalization;
+-          m_256qam[176].real() =  -1 / normalization;
+-          m_256qam[176].imag() =   1 / normalization;
+-          m_256qam[177].real() =  -1 / normalization;
+-          m_256qam[177].imag() =   3 / normalization;
+-          m_256qam[178].real() =  -3 / normalization;
+-          m_256qam[178].imag() =   1 / normalization;
+-          m_256qam[179].real() =  -3 / normalization;
+-          m_256qam[179].imag() =   3 / normalization;
+-          m_256qam[180].real() =  -1 / normalization;
+-          m_256qam[180].imag() =   7 / normalization;
+-          m_256qam[181].real() =  -1 / normalization;
+-          m_256qam[181].imag() =   5 / normalization;
+-          m_256qam[182].real() =  -3 / normalization;
+-          m_256qam[182].imag() =   7 / normalization;
+-          m_256qam[183].real() =  -3 / normalization;
+-          m_256qam[183].imag() =   5 / normalization;
+-          m_256qam[184].real() =  -7 / normalization;
+-          m_256qam[184].imag() =   1 / normalization;
+-          m_256qam[185].real() =  -7 / normalization;
+-          m_256qam[185].imag() =   3 / normalization;
+-          m_256qam[186].real() =  -5 / normalization;
+-          m_256qam[186].imag() =   1 / normalization;
+-          m_256qam[187].real() =  -5 / normalization;
+-          m_256qam[187].imag() =   3 / normalization;
+-          m_256qam[188].real() =  -7 / normalization;
+-          m_256qam[188].imag() =   7 / normalization;
+-          m_256qam[189].real() =  -7 / normalization;
+-          m_256qam[189].imag() =   5 / normalization;
+-          m_256qam[190].real() =  -5 / normalization;
+-          m_256qam[190].imag() =   7 / normalization;
+-          m_256qam[191].real() =  -5 / normalization;
+-          m_256qam[191].imag() =   5 / normalization;
+-          m_256qam[192].real() = -15 / normalization;
+-          m_256qam[192].imag() = -15 / normalization;
+-          m_256qam[193].real() = -15 / normalization;
+-          m_256qam[193].imag() = -13 / normalization;
+-          m_256qam[194].real() = -13 / normalization;
+-          m_256qam[194].imag() = -15 / normalization;
+-          m_256qam[195].real() = -13 / normalization;
+-          m_256qam[195].imag() = -13 / normalization;
+-          m_256qam[196].real() = -15 / normalization;
+-          m_256qam[196].imag() =  -9 / normalization;
+-          m_256qam[197].real() = -15 / normalization;
+-          m_256qam[197].imag() = -11 / normalization;
+-          m_256qam[198].real() = -13 / normalization;
+-          m_256qam[198].imag() =  -9 / normalization;
+-          m_256qam[199].real() = -13 / normalization;
+-          m_256qam[199].imag() = -11 / normalization;
+-          m_256qam[200].real() =  -9 / normalization;
+-          m_256qam[200].imag() = -15 / normalization;
+-          m_256qam[201].real() =  -9 / normalization;
+-          m_256qam[201].imag() = -13 / normalization;
+-          m_256qam[202].real() = -11 / normalization;
+-          m_256qam[202].imag() = -15 / normalization;
+-          m_256qam[203].real() = -11 / normalization;
+-          m_256qam[203].imag() = -13 / normalization;
+-          m_256qam[204].real() =  -9 / normalization;
+-          m_256qam[204].imag() =  -9 / normalization;
+-          m_256qam[205].real() =  -9 / normalization;
+-          m_256qam[205].imag() = -11 / normalization;
+-          m_256qam[206].real() = -11 / normalization;
+-          m_256qam[206].imag() =  -9 / normalization;
+-          m_256qam[207].real() = -11 / normalization;
+-          m_256qam[207].imag() = -11 / normalization;
+-          m_256qam[208].real() = -15 / normalization;
+-          m_256qam[208].imag() =  -1 / normalization;
+-          m_256qam[209].real() = -15 / normalization;
+-          m_256qam[209].imag() =  -3 / normalization;
+-          m_256qam[210].real() = -13 / normalization;
+-          m_256qam[210].imag() =  -1 / normalization;
+-          m_256qam[211].real() = -13 / normalization;
+-          m_256qam[211].imag() =  -3 / normalization;
+-          m_256qam[212].real() = -15 / normalization;
+-          m_256qam[212].imag() =  -7 / normalization;
+-          m_256qam[213].real() = -15 / normalization;
+-          m_256qam[213].imag() =  -5 / normalization;
+-          m_256qam[214].real() = -13 / normalization;
+-          m_256qam[214].imag() =  -7 / normalization;
+-          m_256qam[215].real() = -13 / normalization;
+-          m_256qam[215].imag() =  -5 / normalization;
+-          m_256qam[216].real() =  -9 / normalization;
+-          m_256qam[216].imag() =  -1 / normalization;
+-          m_256qam[217].real() =  -9 / normalization;
+-          m_256qam[217].imag() =  -3 / normalization;
+-          m_256qam[218].real() = -11 / normalization;
+-          m_256qam[218].imag() =  -1 / normalization;
+-          m_256qam[219].real() = -11 / normalization;
+-          m_256qam[219].imag() =  -3 / normalization;
+-          m_256qam[220].real() =  -9 / normalization;
+-          m_256qam[220].imag() =  -7 / normalization;
+-          m_256qam[221].real() =  -9 / normalization;
+-          m_256qam[221].imag() =  -5 / normalization;
+-          m_256qam[222].real() = -11 / normalization;
+-          m_256qam[222].imag() =  -7 / normalization;
+-          m_256qam[223].real() = -11 / normalization;
+-          m_256qam[223].imag() =  -5 / normalization;
+-          m_256qam[224].real() =  -1 / normalization;
+-          m_256qam[224].imag() = -15 / normalization;
+-          m_256qam[225].real() =  -1 / normalization;
+-          m_256qam[225].imag() = -13 / normalization;
+-          m_256qam[226].real() =  -3 / normalization;
+-          m_256qam[226].imag() = -15 / normalization;
+-          m_256qam[227].real() =  -3 / normalization;
+-          m_256qam[227].imag() = -13 / normalization;
+-          m_256qam[228].real() =  -1 / normalization;
+-          m_256qam[228].imag() =  -9 / normalization;
+-          m_256qam[229].real() =  -1 / normalization;
+-          m_256qam[229].imag() = -11 / normalization;
+-          m_256qam[230].real() =  -3 / normalization;
+-          m_256qam[230].imag() =  -9 / normalization;
+-          m_256qam[231].real() =  -3 / normalization;
+-          m_256qam[231].imag() = -11 / normalization;
+-          m_256qam[232].real() =  -7 / normalization;
+-          m_256qam[232].imag() = -15 / normalization;
+-          m_256qam[233].real() =  -7 / normalization;
+-          m_256qam[233].imag() = -13 / normalization;
+-          m_256qam[234].real() =  -5 / normalization;
+-          m_256qam[234].imag() = -15 / normalization;
+-          m_256qam[235].real() =  -5 / normalization;
+-          m_256qam[235].imag() = -13 / normalization;
+-          m_256qam[236].real() =  -7 / normalization;
+-          m_256qam[236].imag() =  -9 / normalization;
+-          m_256qam[237].real() =  -7 / normalization;
+-          m_256qam[237].imag() = -11 / normalization;
+-          m_256qam[238].real() =  -5 / normalization;
+-          m_256qam[238].imag() =  -9 / normalization;
+-          m_256qam[239].real() =  -5 / normalization;
+-          m_256qam[239].imag() = -11 / normalization;
+-          m_256qam[240].real() =  -1 / normalization;
+-          m_256qam[240].imag() =  -1 / normalization;
+-          m_256qam[241].real() =  -1 / normalization;
+-          m_256qam[241].imag() =  -3 / normalization;
+-          m_256qam[242].real() =  -3 / normalization;
+-          m_256qam[242].imag() =  -1 / normalization;
+-          m_256qam[243].real() =  -3 / normalization;
+-          m_256qam[243].imag() =  -3 / normalization;
+-          m_256qam[244].real() =  -1 / normalization;
+-          m_256qam[244].imag() =  -7 / normalization;
+-          m_256qam[245].real() =  -1 / normalization;
+-          m_256qam[245].imag() =  -5 / normalization;
+-          m_256qam[246].real() =  -3 / normalization;
+-          m_256qam[246].imag() =  -7 / normalization;
+-          m_256qam[247].real() =  -3 / normalization;
+-          m_256qam[247].imag() =  -5 / normalization;
+-          m_256qam[248].real() =  -7 / normalization;
+-          m_256qam[248].imag() =  -1 / normalization;
+-          m_256qam[249].real() =  -7 / normalization;
+-          m_256qam[249].imag() =  -3 / normalization;
+-          m_256qam[250].real() =  -5 / normalization;
+-          m_256qam[250].imag() =  -1 / normalization;
+-          m_256qam[251].real() =  -5 / normalization;
+-          m_256qam[251].imag() =  -3 / normalization;
+-          m_256qam[252].real() =  -7 / normalization;
+-          m_256qam[252].imag() =  -7 / normalization;
+-          m_256qam[253].real() =  -7 / normalization;
+-          m_256qam[253].imag() =  -5 / normalization;
+-          m_256qam[254].real() =  -5 / normalization;
+-          m_256qam[254].imag() =  -7 / normalization;
+-          m_256qam[255].real() =  -5 / normalization;
+-          m_256qam[255].imag() =  -5 / normalization;
++          m_256qam[0].real( 15 / normalization);
++          m_256qam[0].imag( 15 / normalization);
++          m_256qam[1].real( 15 / normalization);
++          m_256qam[1].imag( 13 / normalization);
++          m_256qam[2].real( 13 / normalization);
++          m_256qam[2].imag( 15 / normalization);
++          m_256qam[3].real( 13 / normalization);
++          m_256qam[3].imag( 13 / normalization);
++          m_256qam[4].real( 15 / normalization);
++          m_256qam[4].imag(  9 / normalization);
++          m_256qam[5].real( 15 / normalization);
++          m_256qam[5].imag( 11 / normalization);
++          m_256qam[6].real( 13 / normalization);
++          m_256qam[6].imag(  9 / normalization);
++          m_256qam[7].real( 13 / normalization);
++          m_256qam[7].imag( 11 / normalization);
++          m_256qam[8].real(  9 / normalization);
++          m_256qam[8].imag( 15 / normalization);
++          m_256qam[9].real(  9 / normalization);
++          m_256qam[9].imag( 13 / normalization);
++          m_256qam[10].real( 11 / normalization);
++          m_256qam[10].imag( 15 / normalization);
++          m_256qam[11].real( 11 / normalization);
++          m_256qam[11].imag( 13 / normalization);
++          m_256qam[12].real(  9 / normalization);
++          m_256qam[12].imag(  9 / normalization);
++          m_256qam[13].real(  9 / normalization);
++          m_256qam[13].imag( 11 / normalization);
++          m_256qam[14].real( 11 / normalization);
++          m_256qam[14].imag(  9 / normalization);
++          m_256qam[15].real( 11 / normalization);
++          m_256qam[15].imag( 11 / normalization);
++          m_256qam[16].real( 15 / normalization);
++          m_256qam[16].imag(  1 / normalization);
++          m_256qam[17].real( 15 / normalization);
++          m_256qam[17].imag(  3 / normalization);
++          m_256qam[18].real( 13 / normalization);
++          m_256qam[18].imag(  1 / normalization);
++          m_256qam[19].real( 13 / normalization);
++          m_256qam[19].imag(  3 / normalization);
++          m_256qam[20].real( 15 / normalization);
++          m_256qam[20].imag(  7 / normalization);
++          m_256qam[21].real( 15 / normalization);
++          m_256qam[21].imag(  5 / normalization);
++          m_256qam[22].real( 13 / normalization);
++          m_256qam[22].imag(  7 / normalization);
++          m_256qam[23].real( 13 / normalization);
++          m_256qam[23].imag(  5 / normalization);
++          m_256qam[24].real(  9 / normalization);
++          m_256qam[24].imag(  1 / normalization);
++          m_256qam[25].real(  9 / normalization);
++          m_256qam[25].imag(  3 / normalization);
++          m_256qam[26].real( 11 / normalization);
++          m_256qam[26].imag(  1 / normalization);
++          m_256qam[27].real( 11 / normalization);
++          m_256qam[27].imag(  3 / normalization);
++          m_256qam[28].real(  9 / normalization);
++          m_256qam[28].imag(  7 / normalization);
++          m_256qam[29].real(  9 / normalization);
++          m_256qam[29].imag(  5 / normalization);
++          m_256qam[30].real( 11 / normalization);
++          m_256qam[30].imag(  7 / normalization);
++          m_256qam[31].real( 11 / normalization);
++          m_256qam[31].imag(  5 / normalization);
++          m_256qam[32].real(  1 / normalization);
++          m_256qam[32].imag( 15 / normalization);
++          m_256qam[33].real(  1 / normalization);
++          m_256qam[33].imag( 13 / normalization);
++          m_256qam[34].real(  3 / normalization);
++          m_256qam[34].imag( 15 / normalization);
++          m_256qam[35].real(  3 / normalization);
++          m_256qam[35].imag( 13 / normalization);
++          m_256qam[36].real(  1 / normalization);
++          m_256qam[36].imag(  9 / normalization);
++          m_256qam[37].real(  1 / normalization);
++          m_256qam[37].imag( 11 / normalization);
++          m_256qam[38].real(  3 / normalization);
++          m_256qam[38].imag(  9 / normalization);
++          m_256qam[39].real(  3 / normalization);
++          m_256qam[39].imag( 11 / normalization);
++          m_256qam[40].real(  7 / normalization);
++          m_256qam[40].imag( 15 / normalization);
++          m_256qam[41].real(  7 / normalization);
++          m_256qam[41].imag( 13 / normalization);
++          m_256qam[42].real(  5 / normalization);
++          m_256qam[42].imag( 15 / normalization);
++          m_256qam[43].real(  5 / normalization);
++          m_256qam[43].imag( 13 / normalization);
++          m_256qam[44].real(  7 / normalization);
++          m_256qam[44].imag(  9 / normalization);
++          m_256qam[45].real(  7 / normalization);
++          m_256qam[45].imag( 11 / normalization);
++          m_256qam[46].real(  5 / normalization);
++          m_256qam[46].imag(  9 / normalization);
++          m_256qam[47].real(  5 / normalization);
++          m_256qam[47].imag( 11 / normalization);
++          m_256qam[48].real(  1 / normalization);
++          m_256qam[48].imag(  1 / normalization);
++          m_256qam[49].real(  1 / normalization);
++          m_256qam[49].imag(  3 / normalization);
++          m_256qam[50].real(  3 / normalization);
++          m_256qam[50].imag(  1 / normalization);
++          m_256qam[51].real(  3 / normalization);
++          m_256qam[51].imag(  3 / normalization);
++          m_256qam[52].real(  1 / normalization);
++          m_256qam[52].imag(  7 / normalization);
++          m_256qam[53].real(  1 / normalization);
++          m_256qam[53].imag(  5 / normalization);
++          m_256qam[54].real(  3 / normalization);
++          m_256qam[54].imag(  7 / normalization);
++          m_256qam[55].real(  3 / normalization);
++          m_256qam[55].imag(  5 / normalization);
++          m_256qam[56].real(  7 / normalization);
++          m_256qam[56].imag(  1 / normalization);
++          m_256qam[57].real(  7 / normalization);
++          m_256qam[57].imag(  3 / normalization);
++          m_256qam[58].real(  5 / normalization);
++          m_256qam[58].imag(  1 / normalization);
++          m_256qam[59].real(  5 / normalization);
++          m_256qam[59].imag(  3 / normalization);
++          m_256qam[60].real(  7 / normalization);
++          m_256qam[60].imag(  7 / normalization);
++          m_256qam[61].real(  7 / normalization);
++          m_256qam[61].imag(  5 / normalization);
++          m_256qam[62].real(  5 / normalization);
++          m_256qam[62].imag(  7 / normalization);
++          m_256qam[63].real(  5 / normalization);
++          m_256qam[63].imag(  5 / normalization);
++          m_256qam[64].real( 15 / normalization);
++          m_256qam[64].imag(-15 / normalization);
++          m_256qam[65].real( 15 / normalization);
++          m_256qam[65].imag(-13 / normalization);
++          m_256qam[66].real( 13 / normalization);
++          m_256qam[66].imag(-15 / normalization);
++          m_256qam[67].real( 13 / normalization);
++          m_256qam[67].imag(-13 / normalization);
++          m_256qam[68].real( 15 / normalization);
++          m_256qam[68].imag( -9 / normalization);
++          m_256qam[69].real( 15 / normalization);
++          m_256qam[69].imag(-11 / normalization);
++          m_256qam[70].real( 13 / normalization);
++          m_256qam[70].imag( -9 / normalization);
++          m_256qam[71].real( 13 / normalization);
++          m_256qam[71].imag(-11 / normalization);
++          m_256qam[72].real(  9 / normalization);
++          m_256qam[72].imag(-15 / normalization);
++          m_256qam[73].real(  9 / normalization);
++          m_256qam[73].imag(-13 / normalization);
++          m_256qam[74].real( 11 / normalization);
++          m_256qam[74].imag(-15 / normalization);
++          m_256qam[75].real( 11 / normalization);
++          m_256qam[75].imag(-13 / normalization);
++          m_256qam[76].real(  9 / normalization);
++          m_256qam[76].imag( -9 / normalization);
++          m_256qam[77].real(  9 / normalization);
++          m_256qam[77].imag(-11 / normalization);
++          m_256qam[78].real( 11 / normalization);
++          m_256qam[78].imag( -9 / normalization);
++          m_256qam[79].real( 11 / normalization);
++          m_256qam[79].imag(-11 / normalization);
++          m_256qam[80].real( 15 / normalization);
++          m_256qam[80].imag( -1 / normalization);
++          m_256qam[81].real( 15 / normalization);
++          m_256qam[81].imag( -3 / normalization);
++          m_256qam[82].real( 13 / normalization);
++          m_256qam[82].imag( -1 / normalization);
++          m_256qam[83].real( 13 / normalization);
++          m_256qam[83].imag( -3 / normalization);
++          m_256qam[84].real( 15 / normalization);
++          m_256qam[84].imag( -7 / normalization);
++          m_256qam[85].real( 15 / normalization);
++          m_256qam[85].imag( -5 / normalization);
++          m_256qam[86].real( 13 / normalization);
++          m_256qam[86].imag( -7 / normalization);
++          m_256qam[87].real( 13 / normalization);
++          m_256qam[87].imag( -5 / normalization);
++          m_256qam[88].real(  9 / normalization);
++          m_256qam[88].imag( -1 / normalization);
++          m_256qam[89].real(  9 / normalization);
++          m_256qam[89].imag( -3 / normalization);
++          m_256qam[90].real( 11 / normalization);
++          m_256qam[90].imag( -1 / normalization);
++          m_256qam[91].real( 11 / normalization);
++          m_256qam[91].imag( -3 / normalization);
++          m_256qam[92].real(  9 / normalization);
++          m_256qam[92].imag( -7 / normalization);
++          m_256qam[93].real(  9 / normalization);
++          m_256qam[93].imag( -5 / normalization);
++          m_256qam[94].real( 11 / normalization);
++          m_256qam[94].imag( -7 / normalization);
++          m_256qam[95].real( 11 / normalization);
++          m_256qam[95].imag( -5 / normalization);
++          m_256qam[96].real(  1 / normalization);
++          m_256qam[96].imag(-15 / normalization);
++          m_256qam[97].real(  1 / normalization);
++          m_256qam[97].imag(-13 / normalization);
++          m_256qam[98].real(  3 / normalization);
++          m_256qam[98].imag(-15 / normalization);
++          m_256qam[99].real(  3 / normalization);
++          m_256qam[99].imag(-13 / normalization);
++          m_256qam[100].real(  1 / normalization);
++          m_256qam[100].imag( -9 / normalization);
++          m_256qam[101].real(  1 / normalization);
++          m_256qam[101].imag(-11 / normalization);
++          m_256qam[102].real(  3 / normalization);
++          m_256qam[102].imag( -9 / normalization);
++          m_256qam[103].real(  3 / normalization);
++          m_256qam[103].imag(-11 / normalization);
++          m_256qam[104].real(  7 / normalization);
++          m_256qam[104].imag(-15 / normalization);
++          m_256qam[105].real(  7 / normalization);
++          m_256qam[105].imag(-13 / normalization);
++          m_256qam[106].real(  5 / normalization);
++          m_256qam[106].imag(-15 / normalization);
++          m_256qam[107].real(  5 / normalization);
++          m_256qam[107].imag(-13 / normalization);
++          m_256qam[108].real(  7 / normalization);
++          m_256qam[108].imag( -9 / normalization);
++          m_256qam[109].real(  7 / normalization);
++          m_256qam[109].imag(-11 / normalization);
++          m_256qam[110].real(  5 / normalization);
++          m_256qam[110].imag( -9 / normalization);
++          m_256qam[111].real(  5 / normalization);
++          m_256qam[111].imag(-11 / normalization);
++          m_256qam[112].real(  1 / normalization);
++          m_256qam[112].imag( -1 / normalization);
++          m_256qam[113].real(  1 / normalization);
++          m_256qam[113].imag( -3 / normalization);
++          m_256qam[114].real(  3 / normalization);
++          m_256qam[114].imag( -1 / normalization);
++          m_256qam[115].real(  3 / normalization);
++          m_256qam[115].imag( -3 / normalization);
++          m_256qam[116].real(  1 / normalization);
++          m_256qam[116].imag( -7 / normalization);
++          m_256qam[117].real(  1 / normalization);
++          m_256qam[117].imag( -5 / normalization);
++          m_256qam[118].real(  3 / normalization);
++          m_256qam[118].imag( -7 / normalization);
++          m_256qam[119].real(  3 / normalization);
++          m_256qam[119].imag( -5 / normalization);
++          m_256qam[120].real(  7 / normalization);
++          m_256qam[120].imag( -1 / normalization);
++          m_256qam[121].real(  7 / normalization);
++          m_256qam[121].imag( -3 / normalization);
++          m_256qam[122].real(  5 / normalization);
++          m_256qam[122].imag( -1 / normalization);
++          m_256qam[123].real(  5 / normalization);
++          m_256qam[123].imag( -3 / normalization);
++          m_256qam[124].real(  7 / normalization);
++          m_256qam[124].imag( -7 / normalization);
++          m_256qam[125].real(  7 / normalization);
++          m_256qam[125].imag( -5 / normalization);
++          m_256qam[126].real(  5 / normalization);
++          m_256qam[126].imag( -7 / normalization);
++          m_256qam[127].real(  5 / normalization);
++          m_256qam[127].imag( -5 / normalization);
++          m_256qam[128].real(-15 / normalization);
++          m_256qam[128].imag( 15 / normalization);
++          m_256qam[129].real(-15 / normalization);
++          m_256qam[129].imag( 13 / normalization);
++          m_256qam[130].real(-13 / normalization);
++          m_256qam[130].imag( 15 / normalization);
++          m_256qam[131].real(-13 / normalization);
++          m_256qam[131].imag( 13 / normalization);
++          m_256qam[132].real(-15 / normalization);
++          m_256qam[132].imag(  9 / normalization);
++          m_256qam[133].real(-15 / normalization);
++          m_256qam[133].imag( 11 / normalization);
++          m_256qam[134].real(-13 / normalization);
++          m_256qam[134].imag(  9 / normalization);
++          m_256qam[135].real(-13 / normalization);
++          m_256qam[135].imag( 11 / normalization);
++          m_256qam[136].real( -9 / normalization);
++          m_256qam[136].imag( 15 / normalization);
++          m_256qam[137].real( -9 / normalization);
++          m_256qam[137].imag( 13 / normalization);
++          m_256qam[138].real(-11 / normalization);
++          m_256qam[138].imag( 15 / normalization);
++          m_256qam[139].real(-11 / normalization);
++          m_256qam[139].imag( 13 / normalization);
++          m_256qam[140].real( -9 / normalization);
++          m_256qam[140].imag(  9 / normalization);
++          m_256qam[141].real( -9 / normalization);
++          m_256qam[141].imag( 11 / normalization);
++          m_256qam[142].real(-11 / normalization);
++          m_256qam[142].imag(  9 / normalization);
++          m_256qam[143].real(-11 / normalization);
++          m_256qam[143].imag( 11 / normalization);
++          m_256qam[144].real(-15 / normalization);
++          m_256qam[144].imag(  1 / normalization);
++          m_256qam[145].real(-15 / normalization);
++          m_256qam[145].imag(  3 / normalization);
++          m_256qam[146].real(-13 / normalization);
++          m_256qam[146].imag(  1 / normalization);
++          m_256qam[147].real(-13 / normalization);
++          m_256qam[147].imag(  3 / normalization);
++          m_256qam[148].real(-15 / normalization);
++          m_256qam[148].imag(  7 / normalization);
++          m_256qam[149].real(-15 / normalization);
++          m_256qam[149].imag(  5 / normalization);
++          m_256qam[150].real(-13 / normalization);
++          m_256qam[150].imag(  7 / normalization);
++          m_256qam[151].real(-13 / normalization);
++          m_256qam[151].imag(  5 / normalization);
++          m_256qam[152].real( -9 / normalization);
++          m_256qam[152].imag(  1 / normalization);
++          m_256qam[153].real( -9 / normalization);
++          m_256qam[153].imag(  3 / normalization);
++          m_256qam[154].real(-11 / normalization);
++          m_256qam[154].imag(  1 / normalization);
++          m_256qam[155].real(-11 / normalization);
++          m_256qam[155].imag(  3 / normalization);
++          m_256qam[156].real( -9 / normalization);
++          m_256qam[156].imag(  7 / normalization);
++          m_256qam[157].real( -9 / normalization);
++          m_256qam[157].imag(  5 / normalization);
++          m_256qam[158].real(-11 / normalization);
++          m_256qam[158].imag(  7 / normalization);
++          m_256qam[159].real(-11 / normalization);
++          m_256qam[159].imag(  5 / normalization);
++          m_256qam[160].real( -1 / normalization);
++          m_256qam[160].imag( 15 / normalization);
++          m_256qam[161].real( -1 / normalization);
++          m_256qam[161].imag( 13 / normalization);
++          m_256qam[162].real( -3 / normalization);
++          m_256qam[162].imag( 15 / normalization);
++          m_256qam[163].real( -3 / normalization);
++          m_256qam[163].imag( 13 / normalization);
++          m_256qam[164].real( -1 / normalization);
++          m_256qam[164].imag(  9 / normalization);
++          m_256qam[165].real( -1 / normalization);
++          m_256qam[165].imag( 11 / normalization);
++          m_256qam[166].real( -3 / normalization);
++          m_256qam[166].imag(  9 / normalization);
++          m_256qam[167].real( -3 / normalization);
++          m_256qam[167].imag( 11 / normalization);
++          m_256qam[168].real( -7 / normalization);
++          m_256qam[168].imag( 15 / normalization);
++          m_256qam[169].real( -7 / normalization);
++          m_256qam[169].imag( 13 / normalization);
++          m_256qam[170].real( -5 / normalization);
++          m_256qam[170].imag( 15 / normalization);
++          m_256qam[171].real( -5 / normalization);
++          m_256qam[171].imag( 13 / normalization);
++          m_256qam[172].real( -7 / normalization);
++          m_256qam[172].imag(  9 / normalization);
++          m_256qam[173].real( -7 / normalization);
++          m_256qam[173].imag( 11 / normalization);
++          m_256qam[174].real( -5 / normalization);
++          m_256qam[174].imag(  9 / normalization);
++          m_256qam[175].real( -5 / normalization);
++          m_256qam[175].imag( 11 / normalization);
++          m_256qam[176].real( -1 / normalization);
++          m_256qam[176].imag(  1 / normalization);
++          m_256qam[177].real( -1 / normalization);
++          m_256qam[177].imag(  3 / normalization);
++          m_256qam[178].real( -3 / normalization);
++          m_256qam[178].imag(  1 / normalization);
++          m_256qam[179].real( -3 / normalization);
++          m_256qam[179].imag(  3 / normalization);
++          m_256qam[180].real( -1 / normalization);
++          m_256qam[180].imag(  7 / normalization);
++          m_256qam[181].real( -1 / normalization);
++          m_256qam[181].imag(  5 / normalization);
++          m_256qam[182].real( -3 / normalization);
++          m_256qam[182].imag(  7 / normalization);
++          m_256qam[183].real( -3 / normalization);
++          m_256qam[183].imag(  5 / normalization);
++          m_256qam[184].real( -7 / normalization);
++          m_256qam[184].imag(  1 / normalization);
++          m_256qam[185].real( -7 / normalization);
++          m_256qam[185].imag(  3 / normalization);
++          m_256qam[186].real( -5 / normalization);
++          m_256qam[186].imag(  1 / normalization);
++          m_256qam[187].real( -5 / normalization);
++          m_256qam[187].imag(  3 / normalization);
++          m_256qam[188].real( -7 / normalization);
++          m_256qam[188].imag(  7 / normalization);
++          m_256qam[189].real( -7 / normalization);
++          m_256qam[189].imag(  5 / normalization);
++          m_256qam[190].real( -5 / normalization);
++          m_256qam[190].imag(  7 / normalization);
++          m_256qam[191].real( -5 / normalization);
++          m_256qam[191].imag(  5 / normalization);
++          m_256qam[192].real(-15 / normalization);
++          m_256qam[192].imag(-15 / normalization);
++          m_256qam[193].real(-15 / normalization);
++          m_256qam[193].imag(-13 / normalization);
++          m_256qam[194].real(-13 / normalization);
++          m_256qam[194].imag(-15 / normalization);
++          m_256qam[195].real(-13 / normalization);
++          m_256qam[195].imag(-13 / normalization);
++          m_256qam[196].real(-15 / normalization);
++          m_256qam[196].imag( -9 / normalization);
++          m_256qam[197].real(-15 / normalization);
++          m_256qam[197].imag(-11 / normalization);
++          m_256qam[198].real(-13 / normalization);
++          m_256qam[198].imag( -9 / normalization);
++          m_256qam[199].real(-13 / normalization);
++          m_256qam[199].imag(-11 / normalization);
++          m_256qam[200].real( -9 / normalization);
++          m_256qam[200].imag(-15 / normalization);
++          m_256qam[201].real( -9 / normalization);
++          m_256qam[201].imag(-13 / normalization);
++          m_256qam[202].real(-11 / normalization);
++          m_256qam[202].imag(-15 / normalization);
++          m_256qam[203].real(-11 / normalization);
++          m_256qam[203].imag(-13 / normalization);
++          m_256qam[204].real( -9 / normalization);
++          m_256qam[204].imag( -9 / normalization);
++          m_256qam[205].real( -9 / normalization);
++          m_256qam[205].imag(-11 / normalization);
++          m_256qam[206].real(-11 / normalization);
++          m_256qam[206].imag( -9 / normalization);
++          m_256qam[207].real(-11 / normalization);
++          m_256qam[207].imag(-11 / normalization);
++          m_256qam[208].real(-15 / normalization);
++          m_256qam[208].imag( -1 / normalization);
++          m_256qam[209].real(-15 / normalization);
++          m_256qam[209].imag( -3 / normalization);
++          m_256qam[210].real(-13 / normalization);
++          m_256qam[210].imag( -1 / normalization);
++          m_256qam[211].real(-13 / normalization);
++          m_256qam[211].imag( -3 / normalization);
++          m_256qam[212].real(-15 / normalization);
++          m_256qam[212].imag( -7 / normalization);
++          m_256qam[213].real(-15 / normalization);
++          m_256qam[213].imag( -5 / normalization);
++          m_256qam[214].real(-13 / normalization);
++          m_256qam[214].imag( -7 / normalization);
++          m_256qam[215].real(-13 / normalization);
++          m_256qam[215].imag( -5 / normalization);
++          m_256qam[216].real( -9 / normalization);
++          m_256qam[216].imag( -1 / normalization);
++          m_256qam[217].real( -9 / normalization);
++          m_256qam[217].imag( -3 / normalization);
++          m_256qam[218].real(-11 / normalization);
++          m_256qam[218].imag( -1 / normalization);
++          m_256qam[219].real(-11 / normalization);
++          m_256qam[219].imag( -3 / normalization);
++          m_256qam[220].real( -9 / normalization);
++          m_256qam[220].imag( -7 / normalization);
++          m_256qam[221].real( -9 / normalization);
++          m_256qam[221].imag( -5 / normalization);
++          m_256qam[222].real(-11 / normalization);
++          m_256qam[222].imag( -7 / normalization);
++          m_256qam[223].real(-11 / normalization);
++          m_256qam[223].imag( -5 / normalization);
++          m_256qam[224].real( -1 / normalization);
++          m_256qam[224].imag(-15 / normalization);
++          m_256qam[225].real( -1 / normalization);
++          m_256qam[225].imag(-13 / normalization);
++          m_256qam[226].real( -3 / normalization);
++          m_256qam[226].imag(-15 / normalization);
++          m_256qam[227].real( -3 / normalization);
++          m_256qam[227].imag(-13 / normalization);
++          m_256qam[228].real( -1 / normalization);
++          m_256qam[228].imag( -9 / normalization);
++          m_256qam[229].real( -1 / normalization);
++          m_256qam[229].imag(-11 / normalization);
++          m_256qam[230].real( -3 / normalization);
++          m_256qam[230].imag( -9 / normalization);
++          m_256qam[231].real( -3 / normalization);
++          m_256qam[231].imag(-11 / normalization);
++          m_256qam[232].real( -7 / normalization);
++          m_256qam[232].imag(-15 / normalization);
++          m_256qam[233].real( -7 / normalization);
++          m_256qam[233].imag(-13 / normalization);
++          m_256qam[234].real( -5 / normalization);
++          m_256qam[234].imag(-15 / normalization);
++          m_256qam[235].real( -5 / normalization);
++          m_256qam[235].imag(-13 / normalization);
++          m_256qam[236].real( -7 / normalization);
++          m_256qam[236].imag( -9 / normalization);
++          m_256qam[237].real( -7 / normalization);
++          m_256qam[237].imag(-11 / normalization);
++          m_256qam[238].real( -5 / normalization);
++          m_256qam[238].imag( -9 / normalization);
++          m_256qam[239].real( -5 / normalization);
++          m_256qam[239].imag(-11 / normalization);
++          m_256qam[240].real( -1 / normalization);
++          m_256qam[240].imag( -1 / normalization);
++          m_256qam[241].real( -1 / normalization);
++          m_256qam[241].imag( -3 / normalization);
++          m_256qam[242].real( -3 / normalization);
++          m_256qam[242].imag( -1 / normalization);
++          m_256qam[243].real( -3 / normalization);
++          m_256qam[243].imag( -3 / normalization);
++          m_256qam[244].real( -1 / normalization);
++          m_256qam[244].imag( -7 / normalization);
++          m_256qam[245].real( -1 / normalization);
++          m_256qam[245].imag( -5 / normalization);
++          m_256qam[246].real( -3 / normalization);
++          m_256qam[246].imag( -7 / normalization);
++          m_256qam[247].real( -3 / normalization);
++          m_256qam[247].imag( -5 / normalization);
++          m_256qam[248].real( -7 / normalization);
++          m_256qam[248].imag( -1 / normalization);
++          m_256qam[249].real( -7 / normalization);
++          m_256qam[249].imag( -3 / normalization);
++          m_256qam[250].real( -5 / normalization);
++          m_256qam[250].imag( -1 / normalization);
++          m_256qam[251].real( -5 / normalization);
++          m_256qam[251].imag( -3 / normalization);
++          m_256qam[252].real( -7 / normalization);
++          m_256qam[252].imag( -7 / normalization);
++          m_256qam[253].real( -7 / normalization);
++          m_256qam[253].imag( -5 / normalization);
++          m_256qam[254].real( -5 / normalization);
++          m_256qam[254].imag( -7 / normalization);
++          m_256qam[255].real( -5 / normalization);
++          m_256qam[255].imag( -5 / normalization);
+           if (rotation == ROTATION_ON) {
+             cyclic_delay = TRUE;
+             rotation_angle = (2.0 * M_PI * 3.576334375) / 360;
+             for (int i = 0; i &lt; 256; i++) {
+-              m_temp[0].real() = m_256qam[i].real();
+-              m_256qam[i].real() = (m_256qam[i].real() * cos(rotation_angle)) - (m_256qam[i].imag() * sin(rotation_angle));
+-              m_256qam[i].imag() = (m_temp[0].real() * sin(rotation_angle)) + (m_256qam[i].imag() * cos(rotation_angle));
++              m_temp[0].real(m_256qam[i].real());
++              m_256qam[i].real((m_256qam[i].real() * cos(rotation_angle)) - (m_256qam[i].imag() * sin(rotation_angle)));
++              m_256qam[i].imag((m_temp[0].real() * sin(rotation_angle)) + (m_256qam[i].imag() * cos(rotation_angle)));
+             }
+           }
+           break;
+         default:
+           normalization = sqrt(2);
+-          m_qpsk[0].real() =  1.0 / normalization;
+-          m_qpsk[0].imag() =  1.0 / normalization;
+-          m_qpsk[1].real() =  1.0 / normalization;
+-          m_qpsk[1].imag() = -1.0 / normalization;
+-          m_qpsk[2].real() = -1.0 / normalization;
+-          m_qpsk[2].imag() =  1.0 / normalization;
+-          m_qpsk[3].real() = -1.0 / normalization;
+-          m_qpsk[3].imag() = -1.0 / normalization;
++          m_qpsk[0].real( 1.0 / normalization);
++          m_qpsk[0].imag( 1.0 / normalization);
++          m_qpsk[1].real( 1.0 / normalization);
++          m_qpsk[1].imag(-1.0 / normalization);
++          m_qpsk[2].real(-1.0 / normalization);
++          m_qpsk[2].imag( 1.0 / normalization);
++          m_qpsk[3].real(-1.0 / normalization);
++          m_qpsk[3].imag(-1.0 / normalization);
+           if (rotation == ROTATION_ON) {
+             cyclic_delay = TRUE;
+             rotation_angle = (2.0 * M_PI * 29.0) / 360;
+             for (int i = 0; i &lt; 4; i++) {
+-              m_temp[0].real() = m_qpsk[i].real();
+-              m_qpsk[i].real() = (m_qpsk[i].real() * cos(rotation_angle)) - (m_qpsk[i].imag() * sin(rotation_angle));
+-              m_qpsk[i].imag() = (m_temp[0].real() * sin(rotation_angle)) + (m_qpsk[i].imag() * cos(rotation_angle));
++              m_temp[0].real(m_qpsk[i].real());
++              m_qpsk[i].real((m_qpsk[i].real() * cos(rotation_angle)) - (m_qpsk[i].imag() * sin(rotation_angle)));
++              m_qpsk[i].imag((m_temp[0].real() * sin(rotation_angle)) + (m_qpsk[i].imag() * cos(rotation_angle)));
+             }
+           }
+           break;
+@@ -880,7 +880,7 @@ namespace gr {
+                 index_delay = in_delay[(j + cell_size - 1) % cell_size];
+                 f_temp[0] = m_qpsk[index &amp; 0x3];
+                 g_temp[0] = m_qpsk[index_delay &amp; 0x3];
+-                f_temp[0].imag() = g_temp[0].imag();
++                f_temp[0].imag(g_temp[0].imag());
+                 *out++ = f_temp[0];
+               }
+             }
+@@ -901,7 +901,7 @@ namespace gr {
+                 index_delay = in_delay[(j + cell_size - 1) % cell_size];
+                 f_temp[0] = m_16qam[index &amp; 0xf];
+                 g_temp[0] = m_16qam[index_delay &amp; 0xf];
+-                f_temp[0].imag() = g_temp[0].imag();
++                f_temp[0].imag(g_temp[0].imag());
+                 *out++ = f_temp[0];
+               }
+             }
+@@ -922,7 +922,7 @@ namespace gr {
+                 index_delay = in_delay[(j + cell_size - 1) % cell_size];
+                 f_temp[0] = m_64qam[index &amp; 0x3f];
+                 g_temp[0] = m_64qam[index_delay &amp; 0x3f];
+-                f_temp[0].imag() = g_temp[0].imag();
++                f_temp[0].imag(g_temp[0].imag());
+                 *out++ = f_temp[0];
+               }
+             }
+@@ -943,7 +943,7 @@ namespace gr {
+                 index_delay = in_delay[(j + cell_size - 1) % cell_size];
+                 f_temp[0] = m_256qam[index &amp; 0xff];
+                 g_temp[0] = m_256qam[index_delay &amp; 0xff];
+-                f_temp[0].imag() = g_temp[0].imag();
++                f_temp[0].imag(g_temp[0].imag());
+                 *out++ = f_temp[0];
+               }
+             }
+--- gr-dtv/lib/dvbt2/dvbt2_p1insertion_cc_impl.cc.orig
++++ gr-dtv/lib/dvbt2/dvbt2_p1insertion_cc_impl.cc
+@@ -137,11 +137,11 @@ namespace gr {
+         dbpsk_modulation_sequence[i] = dbpsk_modulation_sequence[i + 1] * p1_randomize[i];
+       }
+       for (int i = 0; i &lt; 1024; i++) {
+-        p1_freq[i].real() = 0.0;
+-        p1_freq[i].imag() = 0.0;
++        p1_freq[i].real(0.0);
++        p1_freq[i].imag(0.0);
+       }
+       for (int i = 0; i &lt; 384; i++) {
+-        p1_freq[p1_active_carriers[i] + 86].real() = float(dbpsk_modulation_sequence[i]);
++        p1_freq[p1_active_carriers[i] + 86].real(float(dbpsk_modulation_sequence[i]));
+       }
+       p1_fft_size = 1024;
+       p1_fft = new fft::fft_complex(p1_fft_size, false, 1);
+@@ -151,8 +151,7 @@ namespace gr {
+       p1_fft-&gt;execute();
+       memcpy(out, p1_fft-&gt;get_outbuf(), sizeof(gr_complex) * p1_fft_size);
+       for (int i = 0; i &lt; 1024; i++) {
+-        p1_time[i].real() *= 1 / sqrt(384);
+-        p1_time[i].imag() *= 1 / sqrt(384);
++        p1_time[i] *= 1.0 / sqrt(384);
+       }
+       for (int i = 0; i &lt; 1023; i++) {
+         p1_freqshft[i + 1] = p1_freq[i];
+@@ -166,8 +165,7 @@ namespace gr {
+       p1_fft-&gt;execute();
+       memcpy(out, p1_fft-&gt;get_outbuf(), sizeof(gr_complex) * p1_fft_size);
+       for (int i = 0; i &lt; 1024; i++) {
+-        p1_timeshft[i].real() *= 1 / sqrt(384);
+-        p1_timeshft[i].imag() *= 1 / sqrt(384);
++        p1_timeshft[i] *= 1 / sqrt(384);
+       }
+       frame_items = ((numdatasyms + N_P2) * fft_size) + ((numdatasyms + N_P2) * guard_interval);
+       insertion_items = frame_items + 2048;
+--- gr-dtv/lib/dvbt2/dvbt2_paprtr_cc_impl.cc.orig
++++ gr-dtv/lib/dvbt2/dvbt2_paprtr_cc_impl.cc
+@@ -24,7 +24,6 @@

+ #include &lt;gnuradio/io_signature.h&gt;
+ #include &quot;dvbt2_paprtr_cc_impl.h&quot;
+-#include &lt;complex.h&gt;
+ #include &lt;volk/volk.h&gt;
+ #include &lt;stdio.h&gt;

+@@ -670,21 +669,16 @@
+     {
+       const gr_complex *in = (const gr_complex *) input_items[0];
+       gr_complex *out = (gr_complex *) output_items[0];
+-      gr_complex zero, one;
+-      int index, valid;
+-      int L_FC = 0;
+       gr_complex *dst;
++      int m = 0, L_FC = 0, index, valid;
+       float normalization = 1.0 / N_TR;
+-      int m = 0;
+-      float y, a, alpha, center = (C_PS - 1) / 2;
++      float y, a, alpha, center = (C_PS - 1) / 2.0;
+       float aMax = 5.0 * N_TR * sqrt(10.0 / (27.0 * C_PS));
++      const gr_complex zero (0.0, 0.0);
++      const gr_complex one (1.0, 0.0);
+       gr_complex u, result, temp;
+-      double _Complex vtemp;
++      double vtemp;

+-      one.real() = 1.0;
+-      one.imag() = 0.0;
+-      zero.real() = 0.0;
+-      zero.imag() = 0.0;
+       if (N_FC != 0) {
+         L_FC = 1;
+       }
+@@ -763,18 +757,16 @@
+                 if (y &lt; v_clip + 0.01) {
+                   break;
+                 }
+-                u.real() = (in[m].real() + c[m].real()) / y;
+-                u.imag() = (in[m].imag() + c[m].imag()) / y;
++                u.real((in[m].real() + c[m].real()) / y);
++                u.imag((in[m].imag() + c[m].imag()) / y);
+                 alpha = y - v_clip;
+                 for (int n = 0; n &lt; N_TR; n++) {
+-                  vtemp = 0.0 + ((2 * M_PI * m * ((papr_map[n] + shift) - center)) / papr_fft_size * _Complex_I);
+-                  vtemp = cexp(vtemp);
+-                  ctemp[n].real() = creal(vtemp);
+-                  ctemp[n].imag() = -cimag(vtemp);
++                  vtemp = (-2.0 * M_PI * m * ((papr_map[n] + shift) - center)) / papr_fft_size;
++                  ctemp[n] = std::exp (gr_complexd (0.0, vtemp));
+                 }
+                 volk_32fc_s32fc_multiply_32fc(v, ctemp, u, N_TR);
+-                temp.real() = alpha;
+-                temp.imag() = 0.0;
++                temp.real(alpha);
++                temp.imag(0.0);
+                 volk_32fc_s32fc_multiply_32fc(rNew, v, temp, N_TR);
+                 volk_32f_x2_subtract_32f((float*)rNew, (float*)r, (float*)rNew, N_TR * 2);
+                 volk_32fc_x2_multiply_conjugate_32fc(ctemp, r, v, N_TR);
+@@ -796,18 +788,18 @@
+                     }
+                   }
+                   alpha = a;
+-                  temp.real() = alpha;
+-                  temp.imag() = 0.0;
++                  temp.real(alpha);
++                  temp.imag(0.0);
+                   volk_32fc_s32fc_multiply_32fc(rNew, v, temp, N_TR);
+                   volk_32f_x2_subtract_32f((float*)rNew, (float*)r, (float*)rNew, N_TR * 2);
+                 }
+                 for (int n = 0; n &lt; papr_fft_size; n++) {
+                   ones_freq[(n + m) % papr_fft_size] = ones_time[n];
+                 }
+-                temp.real() = alpha;
+-                temp.imag() = 0.0;
+-                result.real() = (u.real() * temp.real()) - (u.imag() * temp.imag());
+-                result.imag() = (u.imag() * temp.real()) + (u.real() * temp.imag());
++                temp.real(alpha);
++                temp.imag(0.0);
++                result.real((u.real() * temp.real()) - (u.imag() * temp.imag()));
++                result.imag((u.imag() * temp.real()) + (u.real() * temp.imag()));
+                 volk_32fc_s32fc_multiply_32fc(ctemp, ones_freq, result, papr_fft_size);
+                 volk_32f_x2_subtract_32f((float*)c, (float*)c, (float*)ctemp, papr_fft_size * 2);
+                 memcpy(r, rNew, sizeof(gr_complex) * N_TR);
+--- gr-dtv/lib/dvbt2/dvbt2_pilotgenerator_cc_impl.cc.orig
++++ gr-dtv/lib/dvbt2/dvbt2_pilotgenerator_cc_impl.cc
+@@ -740,14 +740,14 @@ namespace gr {
+               }
+             }
+           }
+-          cp_bpsk[0].real() = 4.0 / 3.0;
+-          cp_bpsk[0].imag() = 0.0;
+-          cp_bpsk[1].real() = -4.0 / 3.0;
+-          cp_bpsk[1].imag() = 0.0;
+-          cp_bpsk_inverted[0].real() = -4.0 / 3.0;
+-          cp_bpsk_inverted[0].imag() = 0.0;
+-          cp_bpsk_inverted[1].real() = 4.0 / 3.0;
+-          cp_bpsk_inverted[1].imag() = 0.0;
++          cp_bpsk[0].real(4.0 / 3.0);
++          cp_bpsk[0].imag(0.0);
++          cp_bpsk[1].real(-4.0 / 3.0);
++          cp_bpsk[1].imag(0.0);
++          cp_bpsk_inverted[0].real(-4.0 / 3.0);
++          cp_bpsk_inverted[0].imag(0.0);
++          cp_bpsk_inverted[1].real(4.0 / 3.0);
++          cp_bpsk_inverted[1].imag(0.0);
+           break;
+         case FFTSIZE_2K:
+           for (int i = 0; i &lt; 18; i++) {
+@@ -778,14 +778,14 @@ namespace gr {
+               }
+             }
+           }
+-          cp_bpsk[0].real() = 4.0 / 3.0;
+-          cp_bpsk[0].imag() = 0.0;
+-          cp_bpsk[1].real() = -4.0 / 3.0;
+-          cp_bpsk[1].imag() = 0.0;
+-          cp_bpsk_inverted[0].real() = -4.0 / 3.0;
+-          cp_bpsk_inverted[0].imag() = 0.0;
+-          cp_bpsk_inverted[1].real() = 4.0 / 3.0;
+-          cp_bpsk_inverted[1].imag() = 0.0;
++          cp_bpsk[0].real(4.0 / 3.0);
++          cp_bpsk[0].imag(0.0);
++          cp_bpsk[1].real(-4.0 / 3.0);
++          cp_bpsk[1].imag(0.0);
++          cp_bpsk_inverted[0].real(-4.0 / 3.0);
++          cp_bpsk_inverted[0].imag(0.0);
++          cp_bpsk_inverted[1].real(4.0 / 3.0);
++          cp_bpsk_inverted[1].imag(0.0);
+           break;
+         case FFTSIZE_4K:
+           for (int i = 0; i &lt; 36; i++) {
+@@ -816,14 +816,14 @@ namespace gr {
+               }
+             }
+           }
+-          cp_bpsk[0].real() = (4.0 * sqrt(2)) / 3.0;
+-          cp_bpsk[0].imag() = 0.0;
+-          cp_bpsk[1].real() = -(4.0 * sqrt(2)) / 3.0;
+-          cp_bpsk[1].imag() = 0.0;
+-          cp_bpsk_inverted[0].real() = -(4.0 * sqrt(2)) / 3.0;
+-          cp_bpsk_inverted[0].imag() = 0.0;
+-          cp_bpsk_inverted[1].real() = (4.0 * sqrt(2)) / 3.0;
+-          cp_bpsk_inverted[1].imag() = 0.0;
++          cp_bpsk[0].real((4.0 * sqrt(2)) / 3.0);
++          cp_bpsk[0].imag(0.0);
++          cp_bpsk[1].real(-(4.0 * sqrt(2)) / 3.0);
++          cp_bpsk[1].imag(0.0);
++          cp_bpsk_inverted[0].real(-(4.0 * sqrt(2)) / 3.0);
++          cp_bpsk_inverted[0].imag(0.0);
++          cp_bpsk_inverted[1].real((4.0 * sqrt(2)) / 3.0);
++          cp_bpsk_inverted[1].imag(0.0);
+           break;
+         case FFTSIZE_8K:
+         case FFTSIZE_8K_T2GI:
+@@ -855,14 +855,14 @@ namespace gr {
+               }
+             }
+           }
+-          cp_bpsk[0].real() = 8.0 / 3.0;
+-          cp_bpsk[0].imag() = 0.0;
+-          cp_bpsk[1].real() = -8.0 / 3.0;
+-          cp_bpsk[1].imag() = 0.0;
+-          cp_bpsk_inverted[0].real() = -8.0 / 3.0;
+-          cp_bpsk_inverted[0].imag() = 0.0;
+-          cp_bpsk_inverted[1].real() = 8.0 / 3.0;
+-          cp_bpsk_inverted[1].imag() = 0.0;
++          cp_bpsk[0].real(8.0 / 3.0);
++          cp_bpsk[0].imag(0.0);
++          cp_bpsk[1].real(-8.0 / 3.0);
++          cp_bpsk[1].imag(0.0);
++          cp_bpsk_inverted[0].real(-8.0 / 3.0);
++          cp_bpsk_inverted[0].imag(0.0);
++          cp_bpsk_inverted[1].real(8.0 / 3.0);
++          cp_bpsk_inverted[1].imag(0.0);
+           break;
+         case FFTSIZE_16K:
+         case FFTSIZE_16K_T2GI:
+@@ -894,14 +894,14 @@ namespace gr {
+               }
+             }
+           }
+-          cp_bpsk[0].real() = 8.0 / 3.0;
+-          cp_bpsk[0].imag() = 0.0;
+-          cp_bpsk[1].real() = -8.0 / 3.0;
+-          cp_bpsk[1].imag() = 0.0;
+-          cp_bpsk_inverted[0].real() = -8.0 / 3.0;
+-          cp_bpsk_inverted[0].imag() = 0.0;
+-          cp_bpsk_inverted[1].real() = 8.0 / 3.0;
+-          cp_bpsk_inverted[1].imag() = 0.0;
++          cp_bpsk[0].real(8.0 / 3.0);
++          cp_bpsk[0].imag(0.0);
++          cp_bpsk[1].real(-8.0 / 3.0);
++          cp_bpsk[1].imag(0.0);
++          cp_bpsk_inverted[0].real(-8.0 / 3.0);
++          cp_bpsk_inverted[0].imag(0.0);
++          cp_bpsk_inverted[1].real(8.0 / 3.0);
++          cp_bpsk_inverted[1].imag(0.0);
+           break;
+         case FFTSIZE_32K:
+         case FFTSIZE_32K_T2GI:
+@@ -933,110 +933,110 @@ namespace gr {
+               }
+             }
+           }
+-          cp_bpsk[0].real() = 8.0 / 3.0;
+-          cp_bpsk[0].imag() = 0.0;
+-          cp_bpsk[1].real() = -8.0 / 3.0;
+-          cp_bpsk[1].imag() = 0.0;
+-          cp_bpsk_inverted[0].real() = -8.0 / 3.0;
+-          cp_bpsk_inverted[0].imag() = 0.0;
+-          cp_bpsk_inverted[1].real() = 8.0 / 3.0;
+-          cp_bpsk_inverted[1].imag() = 0.0;
++          cp_bpsk[0].real(8.0 / 3.0);
++          cp_bpsk[0].imag(0.0);
++          cp_bpsk[1].real(-8.0 / 3.0);
++          cp_bpsk[1].imag(0.0);
++          cp_bpsk_inverted[0].real(-8.0 / 3.0);
++          cp_bpsk_inverted[0].imag(0.0);
++          cp_bpsk_inverted[1].real(8.0 / 3.0);
++          cp_bpsk_inverted[1].imag(0.0);
+           break;
+       }
+       switch (pilotpattern) {
+         case PILOT_PP1:
+-          sp_bpsk[0].real() = 4.0 / 3.0;
+-          sp_bpsk[0].imag() = 0.0;
+-          sp_bpsk[1].real() = -4.0 / 3.0;
+-          sp_bpsk[1].imag() = 0.0;
+-          sp_bpsk_inverted[0].real() = -4.0 / 3.0;
+-          sp_bpsk_inverted[0].imag() = 0.0;
+-          sp_bpsk_inverted[1].real() = 4.0 / 3.0;
+-          sp_bpsk_inverted[1].imag() = 0.0;
++          sp_bpsk[0].real(4.0 / 3.0);
++          sp_bpsk[0].imag(0.0);
++          sp_bpsk[1].real(-4.0 / 3.0);
++          sp_bpsk[1].imag(0.0);
++          sp_bpsk_inverted[0].real(-4.0 / 3.0);
++          sp_bpsk_inverted[0].imag(0.0);
++          sp_bpsk_inverted[1].real(4.0 / 3.0);
++          sp_bpsk_inverted[1].imag(0.0);
+           dx = 3;
+           dy = 4;
+           break;
+         case PILOT_PP2:
+-          sp_bpsk[0].real() = 4.0 / 3.0;
+-          sp_bpsk[0].imag() = 0.0;
+-          sp_bpsk[1].real() = -4.0 / 3.0;
+-          sp_bpsk[1].imag() = 0.0;
+-          sp_bpsk_inverted[0].real() = -4.0 / 3.0;
+-          sp_bpsk_inverted[0].imag() = 0.0;
+-          sp_bpsk_inverted[1].real() = 4.0 / 3.0;
+-          sp_bpsk_inverted[1].imag() = 0.0;
++          sp_bpsk[0].real(4.0 / 3.0);
++          sp_bpsk[0].imag(0.0);
++          sp_bpsk[1].real(-4.0 / 3.0);
++          sp_bpsk[1].imag(0.0);
++          sp_bpsk_inverted[0].real(-4.0 / 3.0);
++          sp_bpsk_inverted[0].imag(0.0);
++          sp_bpsk_inverted[1].real(4.0 / 3.0);
++          sp_bpsk_inverted[1].imag(0.0);
+           dx = 6;
+           dy = 2;
+           break;
+         case PILOT_PP3:
+-          sp_bpsk[0].real() = 7.0 / 4.0;
+-          sp_bpsk[0].imag() = 0.0;
+-          sp_bpsk[1].real() = -7.0 / 4.0;
+-          sp_bpsk[1].imag() = 0.0;
+-          sp_bpsk_inverted[0].real() = -7.0 / 4.0;
+-          sp_bpsk_inverted[0].imag() = 0.0;
+-          sp_bpsk_inverted[1].real() = 7.0 / 4.0;
+-          sp_bpsk_inverted[1].imag() = 0.0;
++          sp_bpsk[0].real(7.0 / 4.0);
++          sp_bpsk[0].imag(0.0);
++          sp_bpsk[1].real(-7.0 / 4.0);
++          sp_bpsk[1].imag(0.0);
++          sp_bpsk_inverted[0].real(-7.0 / 4.0);
++          sp_bpsk_inverted[0].imag(0.0);
++          sp_bpsk_inverted[1].real(7.0 / 4.0);
++          sp_bpsk_inverted[1].imag(0.0);
+           dx = 6;
+           dy = 4;
+           break;
+         case PILOT_PP4:
+-          sp_bpsk[0].real() = 7.0 / 4.0;
+-          sp_bpsk[0].imag() = 0.0;
+-          sp_bpsk[1].real() = -7.0 / 4.0;
+-          sp_bpsk[1].imag() = 0.0;
+-          sp_bpsk_inverted[0].real() = -7.0 / 4.0;
+-          sp_bpsk_inverted[0].imag() = 0.0;
+-          sp_bpsk_inverted[1].real() = 7.0 / 4.0;
+-          sp_bpsk_inverted[1].imag() = 0.0;
++          sp_bpsk[0].real(7.0 / 4.0);
++          sp_bpsk[0].imag(0.0);
++          sp_bpsk[1].real(-7.0 / 4.0);
++          sp_bpsk[1].imag(0.0);
++          sp_bpsk_inverted[0].real(-7.0 / 4.0);
++          sp_bpsk_inverted[0].imag(0.0);
++          sp_bpsk_inverted[1].real(7.0 / 4.0);
++          sp_bpsk_inverted[1].imag(0.0);
+           dx = 12;
+           dy = 2;
+           break;
+         case PILOT_PP5:
+-          sp_bpsk[0].real() = 7.0 / 3.0;
+-          sp_bpsk[0].imag() = 0.0;
+-          sp_bpsk[1].real() = -7.0 / 3.0;
+-          sp_bpsk[1].imag() = 0.0;
+-          sp_bpsk_inverted[0].real() = -7.0 / 3.0;
+-          sp_bpsk_inverted[0].imag() = 0.0;
+-          sp_bpsk_inverted[1].real() = 7.0 / 3.0;
+-          sp_bpsk_inverted[1].imag() = 0.0;
++          sp_bpsk[0].real(7.0 / 3.0);
++          sp_bpsk[0].imag(0.0);
++          sp_bpsk[1].real(-7.0 / 3.0);
++          sp_bpsk[1].imag(0.0);
++          sp_bpsk_inverted[0].real(-7.0 / 3.0);
++          sp_bpsk_inverted[0].imag(0.0);
++          sp_bpsk_inverted[1].real(7.0 / 3.0);
++          sp_bpsk_inverted[1].imag(0.0);
+           dx = 12;
+           dy = 4;
+           break;
+         case PILOT_PP6:
+-          sp_bpsk[0].real() = 7.0 / 3.0;
+-          sp_bpsk[0].imag() = 0.0;
+-          sp_bpsk[1].real() = -7.0 / 3.0;
+-          sp_bpsk[1].imag() = 0.0;
+-          sp_bpsk_inverted[0].real() = -7.0 / 3.0;
+-          sp_bpsk_inverted[0].imag() = 0.0;
+-          sp_bpsk_inverted[1].real() = 7.0 / 3.0;
+-          sp_bpsk_inverted[1].imag() = 0.0;
++          sp_bpsk[0].real(7.0 / 3.0);
++          sp_bpsk[0].imag(0.0);
++          sp_bpsk[1].real(-7.0 / 3.0);
++          sp_bpsk[1].imag(0.0);
++          sp_bpsk_inverted[0].real(-7.0 / 3.0);
++          sp_bpsk_inverted[0].imag(0.0);
++          sp_bpsk_inverted[1].real(7.0 / 3.0);
++          sp_bpsk_inverted[1].imag(0.0);
+           dx = 24;
+           dy = 2;
+           break;
+         case PILOT_PP7:
+-          sp_bpsk[0].real() = 7.0 / 3.0;
+-          sp_bpsk[0].imag() = 0.0;
+-          sp_bpsk[1].real() = -7.0 / 3.0;
+-          sp_bpsk[1].imag() = 0.0;
+-          sp_bpsk_inverted[0].real() = -7.0 / 3.0;
+-          sp_bpsk_inverted[0].imag() = 0.0;
+-          sp_bpsk_inverted[1].real() = 7.0 / 3.0;
+-          sp_bpsk_inverted[1].imag() = 0.0;
++          sp_bpsk[0].real(7.0 / 3.0);
++          sp_bpsk[0].imag(0.0);
++          sp_bpsk[1].real(-7.0 / 3.0);
++          sp_bpsk[1].imag(0.0);
++          sp_bpsk_inverted[0].real(-7.0 / 3.0);
++          sp_bpsk_inverted[0].imag(0.0);
++          sp_bpsk_inverted[1].real(7.0 / 3.0);
++          sp_bpsk_inverted[1].imag(0.0);
+           dx = 24;
+           dy = 4;
+           break;
+         case PILOT_PP8:
+-          sp_bpsk[0].real() = 7.0 / 3.0;
+-          sp_bpsk[0].imag() = 0.0;
+-          sp_bpsk[1].real() = -7.0 / 3.0;
+-          sp_bpsk[1].imag() = 0.0;
+-          sp_bpsk_inverted[0].real() = -7.0 / 3.0;
+-          sp_bpsk_inverted[0].imag() = 0.0;
+-          sp_bpsk_inverted[1].real() = 7.0 / 3.0;
+-          sp_bpsk_inverted[1].imag() = 0.0;
++          sp_bpsk[0].real(7.0 / 3.0);
++          sp_bpsk[0].imag(0.0);
++          sp_bpsk[1].real(-7.0 / 3.0);
++          sp_bpsk[1].imag(0.0);
++          sp_bpsk_inverted[0].real(-7.0 / 3.0);
++          sp_bpsk_inverted[0].imag(0.0);
++          sp_bpsk_inverted[1].real(7.0 / 3.0);
++          sp_bpsk_inverted[1].imag(0.0);
+           dx = 6;
+           dy = 16;
+           break;
+@@ -1132,24 +1132,24 @@ namespace gr {
+       left_nulls = ((vlength - C_PS) / 2) + 1;
+       right_nulls = (vlength - C_PS) / 2;
+       if ((fftsize == FFTSIZE_32K || fftsize == FFTSIZE_32K_T2GI) &amp;&amp; (miso == FALSE)) {
+-        p2_bpsk[0].real() = sqrt(37.0) / 5.0;
+-        p2_bpsk[0].imag() = 0.0;
+-        p2_bpsk[1].real() = -(sqrt(37.0) / 5.0);
+-        p2_bpsk[1].imag() = 0.0;
+-        p2_bpsk_inverted[0].real() = -(sqrt(37.0) / 5.0);
+-        p2_bpsk_inverted[0].imag() = 0.0;
+-        p2_bpsk_inverted[1].real() = sqrt(37.0) / 5.0;
+-        p2_bpsk_inverted[1].imag() = 0.0;
++        p2_bpsk[0].real(sqrt(37.0) / 5.0);
++        p2_bpsk[0].imag(0.0);
++        p2_bpsk[1].real(-(sqrt(37.0) / 5.0));
++        p2_bpsk[1].imag(0.0);
++        p2_bpsk_inverted[0].real(-(sqrt(37.0) / 5.0));
++        p2_bpsk_inverted[0].imag(0.0);
++        p2_bpsk_inverted[1].real(sqrt(37.0) / 5.0);
++        p2_bpsk_inverted[1].imag(0.0);
+       }
+       else {
+-        p2_bpsk[0].real() = sqrt(31.0) / 5.0;
+-        p2_bpsk[0].imag() = 0.0;
+-        p2_bpsk[1].real() = -(sqrt(31.0) / 5.0);
+-        p2_bpsk[1].imag() = 0.0;
+-        p2_bpsk_inverted[0].real() = -(sqrt(31.0) / 5.0);
+-        p2_bpsk_inverted[0].imag() = 0.0;
+-        p2_bpsk_inverted[1].real() = sqrt(31.0) / 5.0;
+-        p2_bpsk_inverted[1].imag() = 0.0;
++        p2_bpsk[0].real(sqrt(31.0) / 5.0);
++        p2_bpsk[0].imag(0.0);
++        p2_bpsk[1].real(-(sqrt(31.0) / 5.0));
++        p2_bpsk[1].imag(0.0);
++        p2_bpsk_inverted[0].real(-(sqrt(31.0) / 5.0));
++        p2_bpsk_inverted[0].imag(0.0);
++        p2_bpsk_inverted[1].real(sqrt(31.0) / 5.0);
++        p2_bpsk_inverted[1].imag(0.0);
+       }
+       normalization = 5.0 / sqrt(27.0 * C_PS);
+       switch (bandwidth) {
+@@ -1176,6 +1176,7 @@ namespace gr {
+           break;
+       }
+       fstep = fs / vlength;
++      sincrms = sqrt(sincrms / (vlength / 2));
+       for (int i = 0; i &lt; vlength / 2; i++) {
+         x = M_PI * f / fs;
+         if (i == 0) {
+@@ -1185,16 +1186,12 @@ namespace gr {
+           sinc = sin(x) / x;
+         }
+         sincrms += sinc * sinc;
+-        inverse_sinc[i + (vlength / 2)].real() = 1.0 / sinc;
+-        inverse_sinc[i + (vlength / 2)].imag() = 0.0;
+-        inverse_sinc[(vlength / 2) - i - 1].real() = 1.0 / sinc;
+-        inverse_sinc[(vlength / 2) - i - 1].imag() = 0.0;
++        inverse_sinc[i + (vlength / 2)].real(sincrms / sinc);
++        inverse_sinc[i + (vlength / 2)].imag(0.0);
++        inverse_sinc[(vlength / 2) - i - 1].real(sincrms / sinc);
++        inverse_sinc[(vlength / 2) - i - 1].imag(0.0);
+         f = f + fstep;
+       }
+-      sincrms = sqrt(sincrms / (vlength / 2));
+-      for (int i = 0; i &lt; vlength; i++) {
+-        inverse_sinc[i].real() *= sincrms;
+-      }
+       equalization_enable = equalization;
+       ofdm_fft_size = vlength;
+       ofdm_fft = new fft::fft_complex(ofdm_fft_size, false, 1);
+@@ -2750,8 +2747,8 @@ namespace gr {
+       gr_complex *dst;
+       int L_FC = 0;

+-      zero.real() = 0.0;
+-      zero.imag() = 0.0;
++      zero.real(0.0);
++      zero.imag(0.0);
+       if (N_FC != 0) {
+         L_FC = 1;
+       }
</ins></span></pre>
</div>
</div>

</body>
</html>