File: RealFrac.hs

package info (click to toggle)
bali-phy 4.0~beta16%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 15,192 kB
  • sloc: cpp: 119,288; xml: 13,482; haskell: 9,722; python: 2,930; yacc: 1,329; perl: 1,169; lex: 904; sh: 343; makefile: 26
file content (24 lines) | stat: -rw-r--r-- 754 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{-# LANGUAGE NoImplicitPrelude #-}
module Compiler.RealFrac where

import Compiler.Real
import Compiler.Fractional
import Compiler.Integral
import Data.Ord            -- for >=
import Compiler.Num        -- for negate

infixl 8 ^^

class (Real a, Fractional a) => RealFrac a
--    properFraction :: (Integral b) => a -> (b,a)
--    truncate, round  :: (Integral b) => a -> b
--    ceiling, floor   :: (Integral b) => a -> b

foreign import bpcall "Prelude:truncate" truncate :: Double -> Int
foreign import bpcall "Prelude:ceiling" ceiling :: Double -> Int
foreign import bpcall "Prelude:floor" floor :: Double -> Int
foreign import bpcall "Prelude:round" round :: Double -> Int

instance RealFrac Double

x ^^ n = if n >= 0 then x^n else recip (x^(-n))