From 628741482b6ee2a53503507087f4f6835a285542 Mon Sep 17 00:00:00 2001 From: rnhmjoj Date: Mon, 1 Jun 2015 17:17:22 +0200 Subject: [PATCH] Move constants --- src/Data/Number/Functions.hs | 23 ++++++++++++++++++++++- src/Data/Number/Instances.hs | 19 ------------------- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/src/Data/Number/Functions.hs b/src/Data/Number/Functions.hs index 03a5bb5..459775b 100644 --- a/src/Data/Number/Functions.hs +++ b/src/Data/Number/Functions.hs @@ -5,6 +5,7 @@ import Data.Number.Types import Data.Number.Instances import Data.Number.Internal + -- Various -- precision :: Number -> Nat @@ -17,6 +18,7 @@ show' (x:|E) = show (toInteger x) show' (x:|xs) = show (toInteger x) ++ " + 1/(" ++ show' xs ++ ")" show' (M (x:|xs)) = "-" ++ show (toInteger x) ++ " - 1/(" ++ show' xs ++ ")" + -- Conversion -- fromList :: [Nat] -> Number @@ -25,4 +27,23 @@ fromList (x:xs) = x :| fromList xs toList :: Number -> [Nat] toList E = [] -toList (x:|xs) = x : toList xs \ No newline at end of file +toList (x:|xs) = x : toList xs + + +-- constants -- + +φ :: Number +φ = 1 :| φ + +σ :: Number +σ = σ' 0 where + σ' n = n :| σ' (succ n) + +π :: Number +π = toNumber pi + +e :: Number +e = fmap a σ where + a n | p == 0 = 2*q + | otherwise = 1 + where (q, p) = quotRem n 3 \ No newline at end of file diff --git a/src/Data/Number/Instances.hs b/src/Data/Number/Instances.hs index 58b5a0c..392562b 100644 --- a/src/Data/Number/Instances.hs +++ b/src/Data/Number/Instances.hs @@ -52,22 +52,3 @@ toNumber x0 (n,f) = properFraction (abs x0) x1 | f < 1e-6 = 0 | otherwise = 1/f - - --- constants -- - -φ :: Number -φ = 1 :| φ - -σ :: Number -σ = σ' 0 where - σ' n = n :| σ' (succ n) - -π :: Number -π = toNumber pi - -e :: Number -e = fmap a σ where - a n | p == 0 = 2*q - | otherwise = 1 - where (q, p) = quotRem n 3