packages feed

HasBigDecimal-0.2.0.0: demo/Main.hs

module Main (
  main
) where

import Data.BigDecimal
import Data.BigFloating
import Data.Maybe (fromJust)


bigPi :: BigDecimal
bigPi = piChudnovsky (DOWN, Just 100)



halfToneStep :: BigDecimal
halfToneStep = nthRoot 2 12 (HALF_UP, Just 50)

halfToneStepsFrom :: BigDecimal -> Integer -> BigDecimal 
halfToneStepsFrom baseFrequency halfToneSteps = 
  baseFrequency * halfToneStep ^^ halfToneSteps



main :: IO ()
main = do
  let a = fromString "3.1415926"
      b = BigDecimal 31415926 7
      r = fromJust $ fromStringMaybe "2"
      
  print $ 100 * a
  print $ 100 * b
  print $ a == b
  print bigPi

  print $ 2 / bigPi

  print $ r^2 * pi

  print $ sqrt 2

  print $ sqr 2 (halfUp 3000)

  print $ roundBD (halfToneStepsFrom 440 12) (halfUp 2)