shithub: MicroHs

ref: a4229eb282ca32bc14103a33092e94382c3c7ca0
dir: /lib/Data/Floating.hs/

View raw version
module Data.Floating(module Data.Floating) where
import Prelude()              -- do not import Prelude
import Primitives
import Data.Fractional
import Data.Num

infixr 8 **

class (Fractional a) => Floating a  where
  pi       :: a
  exp      :: a -> a
  log      :: a -> a
  sqrt     :: a -> a
  (**)     :: a -> a -> a
  logBase  :: a -> a -> a
  sin      :: a -> a
  cos      :: a -> a
  tan      :: a -> a
  asin     :: a -> a
  acos     :: a -> a
  atan     :: a -> a
  sinh     :: a -> a
  cosh     :: a -> a
  tanh     :: a -> a
  asinh    :: a -> a
  acosh    :: a -> a
  atanh    :: a -> a
  log1p    :: a -> a
  expm1    :: a -> a
  log1pexp :: a -> a
  log1mexp :: a -> a

  x ** y              = exp (log x * y)
  logBase x y         = log y / log x
  sqrt x              = x ** (1/2)
  tan  x              = sin  x / cos  x
  sinh x              = (exp x - exp (- x)) / 2
  cosh x              = (exp x + exp (- x)) / 2
  tanh x              = sinh x / cosh x
  asinh x             = log (x + sqrt (x*x + 1))
  acosh x             = log (x + sqrt (x*x - 1))
  atanh x             = log ((x + 1) / (x - 1)) / 2
  log1p x             = log (1 + x)
  expm1 x             = exp x - 1
  log1pexp x          = log1p (exp x)
  log1mexp x          = log1p (- (exp x))