<div dir="ltr">The Num class is defined in GHC.Num, so Prelude could import GHC.Num hiding (fma) to avoid having another round of prelude changes breaking code.<br><br><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, May 1, 2015 at 12:44 PM, Twan van Laarhoven <span dir="ltr"><<a href="mailto:twanvl@gmail.com" target="_blank">twanvl@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I agree that Num is the place to put this function, with a default implementation. In my mind it is a special combination of (+) and (*), which both live in Num as well.<br>
<br>
I dislike the name fma, as that is a three letter acronym with no meaning to people who don't do numeric programming. And by putting the function in Num the name would end up in the Prelude.<br>
<br>
For further bikeshedding: my proposal for a name would mulAdd. But fusedMulAdd or fusedMultiplyAdd would also be fine.<span class="HOEnZb"><font color="#888888"><br>
<br>
<br>
Twan</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
On 2015-04-30 00:19, Ken T Takusagawa wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Wed, 29 Apr 2015, Edward Kmett wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Good point. If we wanted to we could push this all the way up to Num given the operations<br>
involved, and I could see that you could benefit from it there for types that have nothing<br>
to do with floating point, e.g. modular arithmetic could get away with using a single 'mod'.<br>
</blockquote>
<br>
I too advocate this go in Num.  The place I anticipate<br>
seeing fma being used is in some polymorphic linear algebra<br>
library, and it is not uncommon (having recently done this<br>
myself) to do linear algebra on things that aren't<br>
RealFloat, e.g., Rational, Complex, or number-theoretic<br>
fields.<br>
<br>
--ken<br>
_______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" target="_blank">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br>
<br>
</blockquote>
_______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" target="_blank">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br>
</div></div></blockquote></div><br></div>