Boost C++ Libraries: Ticket #11328: Regression in multiprecision::cpp_int comparison https://svn.boost.org/trac10/ticket/11328 <p> The comparison of 2 values of different cpp_int types in the following program produces incorrect result: </p> <div class="wiki-code"><div class="code"><pre><span class="cp">#include</span> <span class="cpf">&lt;boost/version.hpp&gt;</span><span class="cp"></span> <span class="cp">#include</span> <span class="cpf">&lt;boost/multiprecision/cpp_int.hpp&gt;</span><span class="cp"></span> <span class="cp">#include</span> <span class="cpf">&lt;iostream&gt;</span><span class="cp"></span> <span class="k">using</span> <span class="n">bigint</span> <span class="o">=</span> <span class="n">boost</span><span class="o">::</span><span class="n">multiprecision</span><span class="o">::</span><span class="n">number</span><span class="o">&lt;</span><span class="n">boost</span><span class="o">::</span><span class="n">multiprecision</span><span class="o">::</span><span class="n">cpp_int_backend</span><span class="o">&lt;&gt;&gt;</span><span class="p">;</span> <span class="k">using</span> <span class="n">u128</span> <span class="o">=</span> <span class="n">boost</span><span class="o">::</span><span class="n">multiprecision</span><span class="o">::</span><span class="n">number</span><span class="o">&lt;</span><span class="n">boost</span><span class="o">::</span><span class="n">multiprecision</span><span class="o">::</span><span class="n">cpp_int_backend</span><span class="o">&lt;</span><span class="mi">128</span><span class="p">,</span> <span class="mi">128</span><span class="p">,</span> <span class="n">boost</span><span class="o">::</span><span class="n">multiprecision</span><span class="o">::</span><span class="n">unsigned_magnitude</span><span class="p">,</span> <span class="n">boost</span><span class="o">::</span><span class="n">multiprecision</span><span class="o">::</span><span class="n">unchecked</span><span class="p">,</span> <span class="kt">void</span><span class="o">&gt;&gt;</span><span class="p">;</span> <span class="kt">int</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span> <span class="n">u128</span> <span class="n">a</span> <span class="o">=</span> <span class="mi">14</span><span class="p">;</span> <span class="n">bigint</span> <span class="n">b</span> <span class="o">=</span> <span class="n">bigint</span><span class="p">(</span><span class="s">&quot;115792089237316195423570985008687907853269984665640564039457584007913129639948&quot;</span><span class="p">);</span> <span class="k">auto</span> <span class="n">correct</span> <span class="o">=</span> <span class="n">a</span> <span class="o">&lt;</span> <span class="n">b</span><span class="p">;</span> <span class="n">std</span><span class="o">::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">&quot;Boost &quot;</span> <span class="o">&lt;&lt;</span> <span class="n">BOOST_VERSION</span> <span class="o">&lt;&lt;</span> <span class="s">&quot; : &quot;</span> <span class="o">&lt;&lt;</span> <span class="n">correct</span> <span class="o">&lt;&lt;</span> <span class="n">std</span><span class="o">::</span><span class="n">endl</span><span class="p">;</span> <span class="k">return</span> <span class="o">!</span><span class="n">correct</span><span class="p">;</span> <span class="p">}</span> </pre></div></div><p> Versions affected: 1.58+. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/11328 Trac 1.4.3 Paweł Bylica <chfast@…> Thu, 21 May 2015 15:46:21 GMT attachment set https://svn.boost.org/trac10/ticket/11328 https://svn.boost.org/trac10/ticket/11328 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">bigint.cpp</span> </li> </ul> <p> Test program </p> Ticket John Maddock Sun, 31 May 2015 12:10:19 GMT <link>https://svn.boost.org/trac10/ticket/11328#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/11328#comment:1</guid> <description> <p> Confirmed, investigating. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>John Maddock</dc:creator> <pubDate>Mon, 01 Jun 2015 17:12:17 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/11328#comment:2 https://svn.boost.org/trac10/ticket/11328#comment:2 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> <p> Fixed in <a class="ext-link" href="https://github.com/boostorg/multiprecision/commit/d711ce23df7f17e38dd218a91fa3dd905c91f881"><span class="icon">​</span>https://github.com/boostorg/multiprecision/commit/d711ce23df7f17e38dd218a91fa3dd905c91f881</a> </p> Ticket anonymous Tue, 02 Jun 2015 07:19:01 GMT <link>https://svn.boost.org/trac10/ticket/11328#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/11328#comment:3</guid> <description> <p> How this change is going to be released? In boost 1.59? </p> </description> <category>Ticket</category> </item> <item> <dc:creator>John Maddock</dc:creator> <pubDate>Tue, 02 Jun 2015 08:17:35 GMT</pubDate> <title>milestone changed https://svn.boost.org/trac10/ticket/11328#comment:4 https://svn.boost.org/trac10/ticket/11328#comment:4 <ul> <li><strong>milestone</strong> <span class="trac-field-old">To Be Determined</span> → <span class="trac-field-new">Boost 1.59.0</span> </li> </ul> <blockquote class="citation"> <p> How this change is going to be released? In boost 1.59? </p> </blockquote> <p> Yes, that's the plan. </p> Ticket