
On Sun, Apr 20, 2014 at 11:25:36PM -0400, Edward Kmett wrote:
I use log1p as a better log (1 + x).
It lets me pick up a few decimal places worth of accuracy opportunistically.
But isn't it a bit unfortunate to take a function name that is known and used in numercial circles to get a higher accuracy and in the Haskell world it only might give you a higher accuracy? I'm not that much into numerics, but are you really using log1p without also really needing it? If you're using log1p to possibly get a higher accuracy but don't really need it, why you're using it in the first place? Both solutions - a log1p without a higher accuracy and throwing an error - seem to be somehow unsatisfactory. It might be nice to be able to define a warning for default implementations that might not do what you expect, but this also just seems like another workaround. Is it completely out of question to have another type class for these higher accuracy functions? Sure, if you're having some code that's generic on Floating, which should just work with and without these higher accuracy funtions, then this is out of question. But then at least IMHO the function names should somehow indicate that you can't be sure that they return a higher accuracy. Greetings, Daniel