module Futhark.Util.CMath
  ( roundFloat,
    ceilFloat,
    floorFloat,
    roundDouble,
    ceilDouble,
    floorDouble,
    nextafterf,
    nextafter,
    lgamma,
    lgammaf,
    tgamma,
    tgammaf,
    erf,
    erff,
    erfc,
    erfcf,
    cbrt,
    cbrtf,
    hypot,
    hypotf,
    ldexp,
    ldexpf,
    copysign,
    copysignf,
  )
where
import Foreign.C.Types (CInt (..))
foreign import ccall "nearbyint" c_nearbyint :: Double -> Double
foreign import ccall "nearbyintf" c_nearbyintf :: Float -> Float
foreign import ccall "ceil" c_ceil :: Double -> Double
foreign import ccall "ceilf" c_ceilf :: Float -> Float
foreign import ccall "floor" c_floor :: Double -> Double
foreign import ccall "floorf" c_floorf :: Float -> Float
roundFloat :: Float -> Float
roundFloat :: Float -> Float
roundFloat = Float -> Float
c_nearbyintf
ceilFloat :: Float -> Float
ceilFloat :: Float -> Float
ceilFloat = Float -> Float
c_ceilf
floorFloat :: Float -> Float
floorFloat :: Float -> Float
floorFloat = Float -> Float
c_floorf
roundDouble :: Double -> Double
roundDouble :: Double -> Double
roundDouble = Double -> Double
c_nearbyint
ceilDouble :: Double -> Double
ceilDouble :: Double -> Double
ceilDouble = Double -> Double
c_ceil
floorDouble :: Double -> Double
floorDouble :: Double -> Double
floorDouble = Double -> Double
c_floor
foreign import ccall "nextafter" c_nextafter :: Double -> Double -> Double
foreign import ccall "nextafterf" c_nextafterf :: Float -> Float -> Float
nextafterf :: Float -> Float -> Float
nextafterf :: Float -> Float -> Float
nextafterf = Float -> Float -> Float
c_nextafterf
nextafter :: Double -> Double -> Double
nextafter :: Double -> Double -> Double
nextafter = Double -> Double -> Double
c_nextafter
foreign import ccall "lgamma" c_lgamma :: Double -> Double
foreign import ccall "lgammaf" c_lgammaf :: Float -> Float
foreign import ccall "tgamma" c_tgamma :: Double -> Double
foreign import ccall "tgammaf" c_tgammaf :: Float -> Float
lgamma :: Double -> Double
lgamma :: Double -> Double
lgamma = Double -> Double
c_lgamma
lgammaf :: Float -> Float
lgammaf :: Float -> Float
lgammaf = Float -> Float
c_lgammaf
tgamma :: Double -> Double
tgamma :: Double -> Double
tgamma = Double -> Double
c_tgamma
tgammaf :: Float -> Float
tgammaf :: Float -> Float
tgammaf = Float -> Float
c_tgammaf
foreign import ccall "hypot" c_hypot :: Double -> Double -> Double
foreign import ccall "hypotf" c_hypotf :: Float -> Float -> Float
hypot :: Double -> Double -> Double
hypot :: Double -> Double -> Double
hypot = Double -> Double -> Double
c_hypot
hypotf :: Float -> Float -> Float
hypotf :: Float -> Float -> Float
hypotf = Float -> Float -> Float
c_hypotf
foreign import ccall "erf" c_erf :: Double -> Double
foreign import ccall "erff" c_erff :: Float -> Float
foreign import ccall "erfc" c_erfc :: Double -> Double
foreign import ccall "erfcf" c_erfcf :: Float -> Float
erf :: Double -> Double
erf :: Double -> Double
erf = Double -> Double
c_erf
erff :: Float -> Float
erff :: Float -> Float
erff = Float -> Float
c_erff
erfc :: Double -> Double
erfc :: Double -> Double
erfc = Double -> Double
c_erfc
erfcf :: Float -> Float
erfcf :: Float -> Float
erfcf = Float -> Float
c_erfcf
foreign import ccall "cbrt" c_cbrt :: Double -> Double
foreign import ccall "cbrtf" c_cbrtf :: Float -> Float
cbrt :: Double -> Double
cbrt :: Double -> Double
cbrt = Double -> Double
c_cbrt
cbrtf :: Float -> Float
cbrtf :: Float -> Float
cbrtf = Float -> Float
c_cbrtf
foreign import ccall "ldexp" c_ldexp :: Double -> CInt -> Double
foreign import ccall "ldexpf" c_ldexpf :: Float -> CInt -> Float
ldexp :: Double -> CInt -> Double
ldexp :: Double -> CInt -> Double
ldexp = Double -> CInt -> Double
c_ldexp
ldexpf :: Float -> CInt -> Float
ldexpf :: Float -> CInt -> Float
ldexpf = Float -> CInt -> Float
c_ldexpf
foreign import ccall "copysign" c_copysign :: Double -> Double -> Double
foreign import ccall "copysignf" c_copysignf :: Float -> Float -> Float
copysign :: Double -> Double -> Double
copysign :: Double -> Double -> Double
copysign = Double -> Double -> Double
c_copysign
copysignf :: Float -> Float -> Float
copysignf :: Float -> Float -> Float
copysignf = Float -> Float -> Float
c_copysignf