<div dir="ltr">Barry:<div><br>If you would only rewrite PETSc in a numerically oriented programming language like Fortran, this problem would disappear.  See real(kind=REAL128) in ISO_FORTRAN_ENV, which is part of Fortran 2008.</div><div><br></div><div>Of course I am trolling, although I intend to use Fortran 2008 as my way of getting 128b floats into MPI-4, which Jed has been asking for for a while now.</div><div><br>Best,</div><div><br></div><div>Jeff</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 28, 2015 at 9:38 PM, Jed Brown <span dir="ltr"><<a href="mailto:jed@jedbrown.org" target="_blank">jed@jedbrown.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">Barry Smith <<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>> writes:<br>
<br>
>   After wasting hours debugging I just realized that gcc __float128<br>
>   REQUIRES that numerical constants be written with a q suffix or<br>
>   first they are treated as double and then converted to __float.<br>
<br>
</span>Unsuffixed numeric literals are double.  It's the semantic of the<br>
language, not something they can change by adding a type.  Sorry.<br>
<span class=""><br>
>    I cannot understand why this is done this way. Who wants to convert a code to __float128 and have to then label all floating point numbers with a q which of course also means the code is not compilable with other compilers in double.<br>
<br>
</span>It's ugly, but you can put it in a macro:<br>
<br>
#define NUM(a)   a ## q<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Jeff Hammond<br><a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a><br><a href="http://jeffhammond.github.io/" target="_blank">http://jeffhammond.github.io/</a></div>
</div>