<div dir="ltr">If you need multiplyHigh for 128-bit then you need uint256. At some point you have to decide whether you need that many bits as a supported operation.  When Java was created a 64-bit long as the widest type made sense, however CPUs such as x64 now support 128, 256 and 512 bit natively and having the JVM dong its best to work this out is not as clean as defining it explicitly.</div><div hspace="streak-pt-mark" style="max-height:1px"><img alt="" style="width:0px;max-height:0px;overflow:hidden" src="https://mailfoogae.appspot.com/t?sender=acGV0ZXIubGF3cmV5QGdtYWlsLmNvbQ%3D%3D&type=zerocontent&guid=287f1b83-8392-404e-a537-ec9f0e7e2545"><font color="#ffffff" size="1">ᐧ</font></div><div class="gmail_extra"><br><div class="gmail_quote">On 26 September 2017 at 15:57, Andrew Haley <span dir="ltr"><<a href="mailto:aph@redhat.com" target="_blank">aph@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 26/09/17 15:53, Peter Lawrey wrote:<br>
> None, except you end up jumping through hoops to implement 128 bit<br>
> arithmetic efficiently or cleanly. At some point language support for such<br>
> a basic operation is the simplest and clearest solution.<br>
<br>
</span>There's nothing inefficient about this approach.  I don't quite see<br>
how 128-bit types help with cleanliness, because then you'd need a<br>
multiplyHigh for 128-bit types, surely?  You need that for the type<br>
system to be complete.<br>
<div class="HOEnZb"><div class="h5"><br>
--<br>
Andrew Haley<br>
Java Platform Lead Engineer<br>
Red Hat UK Ltd. <<a href="https://www.redhat.com" rel="noreferrer" target="_blank">https://www.redhat.com</a>><br>
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671<br>
</div></div></blockquote></div><br></div>