Proposal: Add "fma" to the RealFloat class

Twan van Laarhoven twanvl at
Fri May 1 16:44:20 UTC 2015

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.

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.

For further bikeshedding: my proposal for a name would mulAdd. But fusedMulAdd 
or fusedMultiplyAdd would also be fine.


On 2015-04-30 00:19, Ken T Takusagawa wrote:
> On Wed, 29 Apr 2015, Edward Kmett wrote:
>> Good point. If we wanted to we could push this all the way up to Num given the operations
>> involved, and I could see that you could benefit from it there for types that have nothing
>> to do with floating point, e.g. modular arithmetic could get away with using a single 'mod'.
> I too advocate this go in Num.  The place I anticipate
> seeing fma being used is in some polymorphic linear algebra
> library, and it is not uncommon (having recently done this
> myself) to do linear algebra on things that aren't
> RealFloat, e.g., Rational, Complex, or number-theoretic
> fields.
> --ken
> _______________________________________________
> Libraries mailing list
> Libraries at

More information about the Libraries mailing list