[Haskell-cafe] exp implementation
Christopher Howard
christopher.howard at frigidcode.com
Thu Apr 11 17:12:29 CEST 2013
On 04/11/2013 06:37 AM, Brandon Allbery wrote:
> On Thu, Apr 11, 2013 at 1:38 AM, Christopher Howard
> <christopher.howard at frigidcode.com
> <mailto:christopher.howard at frigidcode.com>> wrote:
>
> Hi. For my own learning, I wanted to see how the exp function is
> implemented in GHC. I have GHC 7.4.1 source code open, but I'm having
> trouble figuring out which file the actual function definition is
> in. I see
>
> expFloat (F# x) = F# (expFloat# x)
>
>
> expFloat# is likely a primop; good luck.... Primops aka primitive
> operations are generally implemented in the compiler backend as assembly
> language or Cmm code. Untangling that part of ghc makes my head swim. >.>
>
> --
> brandon s allbery kf8nh sine nomine associates
> allbery.b at gmail.com <mailto:allbery.b at gmail.com>
> ballbery at sinenomine.net <mailto:ballbery at sinenomine.net>
> unix, openafs, kerberos, infrastructure, xmonad http://sinenomine.net
I traced it down some more: I think it eventually goes into the
compiler/nativeGen section where it is translated into the platform's
native version of the function. On my platform, I think this is the expf
function from math.h. (See EXP(3)).
I find that to be interesting, because it means you could change the
output of your programs by altering your standard library. But I guess
there are a lot of things you could change by altering your standard
library!
--
frigidcode.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 555 bytes
Desc: OpenPGP digital signature
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20130411/57717884/attachment.pgp>
More information about the Haskell-Cafe
mailing list