diff options
author | chessai <chessai1996@gmail.com> | 2019-02-01 13:01:46 -0500 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2019-06-09 18:41:02 -0400 |
commit | f737033329817335bc01ab16a385b4b5ec5b3b5d (patch) | |
tree | c437a8e0f813be553bec23b6cc9e9dd960707ddd /compiler/prelude | |
parent | a018c3a84c88f6208e7bd5587af1cdf40c2ae991 (diff) | |
download | haskell-f737033329817335bc01ab16a385b4b5ec5b3b5d.tar.gz |
Introduce log1p and expm1 primops
Previously log and exp were primitives yet log1p and expm1 were FFI
calls. Fix this non-uniformity.
Diffstat (limited to 'compiler/prelude')
-rw-r--r-- | compiler/prelude/primops.txt.pp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/compiler/prelude/primops.txt.pp b/compiler/prelude/primops.txt.pp index 39e7c4799c..5b5dd9dc8d 100644 --- a/compiler/prelude/primops.txt.pp +++ b/compiler/prelude/primops.txt.pp @@ -763,12 +763,23 @@ primop DoubleExpOp "expDouble#" Monadic with code_size = { primOpCodeSizeForeignCall } +primop DoubleExpM1Op "expm1Double#" Monadic + Double# -> Double# + with + code_size = { primOpCodeSizeForeignCall } + primop DoubleLogOp "logDouble#" Monadic Double# -> Double# with code_size = { primOpCodeSizeForeignCall } can_fail = True +primop DoubleLog1POp "log1pDouble#" Monadic + Double# -> Double# + with + code_size = { primOpCodeSizeForeignCall } + can_fail = True + primop DoubleSqrtOp "sqrtDouble#" Monadic Double# -> Double# with @@ -904,12 +915,23 @@ primop FloatExpOp "expFloat#" Monadic with code_size = { primOpCodeSizeForeignCall } +primop FloatExpM1Op "expm1Float#" Monadic + Float# -> Float# + with + code_size = { primOpCodeSizeForeignCall } + primop FloatLogOp "logFloat#" Monadic Float# -> Float# with code_size = { primOpCodeSizeForeignCall } can_fail = True +primop FloatLog1POp "log1pFloat#" Monadic + Float# -> Float# + with + code_size = { primOpCodeSizeForeignCall } + can_fail = True + primop FloatSqrtOp "sqrtFloat#" Monadic Float# -> Float# with |