constructible 0.1.0.1 → 0.1.1
raw patch · 2 files changed
+11/−12 lines, 2 filesdep +integer-rootsdep −arithmoiPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: integer-roots
Dependencies removed: arithmoi
API changes (from Hackage documentation)
- Data.Real.Constructible: instance ComplexPolar (Complex Construct) Construct
- Data.Real.Constructible: instance ComplexRect (Complex Construct) Construct
- Data.Real.Constructible: instance Enum Construct
- Data.Real.Constructible: instance Eq Construct
- Data.Real.Constructible: instance Eq ConstructException
- Data.Real.Constructible: instance Exception ConstructException
- Data.Real.Constructible: instance Floating (Complex Construct)
- Data.Real.Constructible: instance Floating Construct
- Data.Real.Constructible: instance Fractional (Complex Construct)
- Data.Real.Constructible: instance Fractional Construct
- Data.Real.Constructible: instance Num (Complex Construct)
- Data.Real.Constructible: instance Num Construct
- Data.Real.Constructible: instance Ord Construct
- Data.Real.Constructible: instance Ord ConstructException
- Data.Real.Constructible: instance Read Construct
- Data.Real.Constructible: instance Real Construct
- Data.Real.Constructible: instance RealFrac Construct
- Data.Real.Constructible: instance Show (Field k)
- Data.Real.Constructible: instance Show Construct
- Data.Real.Constructible: instance Show ConstructException
- Data.Real.Constructible: instance Show FieldShape
- Data.Real.Constructible: instance Typeable ConstructException
+ Data.Real.Constructible: instance Data.Complex.Generic.Class.ComplexPolar (Data.Complex.Generic.Complex Data.Real.Constructible.Construct) Data.Real.Constructible.Construct
+ Data.Real.Constructible: instance Data.Complex.Generic.Class.ComplexRect (Data.Complex.Generic.Complex Data.Real.Constructible.Construct) Data.Real.Constructible.Construct
+ Data.Real.Constructible: instance GHC.Classes.Eq Data.Real.Constructible.Construct
+ Data.Real.Constructible: instance GHC.Classes.Eq Data.Real.Constructible.ConstructException
+ Data.Real.Constructible: instance GHC.Classes.Ord Data.Real.Constructible.Construct
+ Data.Real.Constructible: instance GHC.Classes.Ord Data.Real.Constructible.ConstructException
+ Data.Real.Constructible: instance GHC.Enum.Enum Data.Real.Constructible.Construct
+ Data.Real.Constructible: instance GHC.Exception.Type.Exception Data.Real.Constructible.ConstructException
+ Data.Real.Constructible: instance GHC.Float.Floating (Data.Complex.Generic.Complex Data.Real.Constructible.Construct)
+ Data.Real.Constructible: instance GHC.Float.Floating Data.Real.Constructible.Construct
+ Data.Real.Constructible: instance GHC.Num.Num (Data.Complex.Generic.Complex Data.Real.Constructible.Construct)
+ Data.Real.Constructible: instance GHC.Num.Num Data.Real.Constructible.Construct
+ Data.Real.Constructible: instance GHC.Read.Read Data.Real.Constructible.Construct
+ Data.Real.Constructible: instance GHC.Real.Fractional (Data.Complex.Generic.Complex Data.Real.Constructible.Construct)
+ Data.Real.Constructible: instance GHC.Real.Fractional Data.Real.Constructible.Construct
+ Data.Real.Constructible: instance GHC.Real.Real Data.Real.Constructible.Construct
+ Data.Real.Constructible: instance GHC.Real.RealFrac Data.Real.Constructible.Construct
+ Data.Real.Constructible: instance GHC.Show.Show (Data.Real.Constructible.Field k)
+ Data.Real.Constructible: instance GHC.Show.Show Data.Real.Constructible.Construct
+ Data.Real.Constructible: instance GHC.Show.Show Data.Real.Constructible.ConstructException
+ Data.Real.Constructible: instance GHC.Show.Show Data.Real.Constructible.FieldShape
Files
- Data/Real/Constructible.hs +8/−9
- constructible.cabal +3/−3
Data/Real/Constructible.hs view
@@ -55,7 +55,7 @@ import Data.Complex.Generic.TH (deriveComplexF) import Data.Ratio ((%), numerator, denominator) import Data.Typeable (Typeable)-import Math.NumberTheory.Powers.Squares (exactSquareRoot)+import Math.NumberTheory.Roots (exactSquareRoot) import Numeric.Search.Integer (search) import Text.Read (Lexeme (..), Read (..), lexP, parens, prec, readListPrecDefault, step) import Text.Read.Lex (numberToInteger)@@ -63,8 +63,8 @@ data FieldShape = QShape | SqrtShape !FieldShape deriving Show data Field k where- Q :: Field QShape- Sqrt :: !(Field k) -> !(Elt k) -> Field (SqrtShape k)+ Q :: Field 'QShape+ Sqrt :: !(Field k) -> !(Elt k) -> Field ('SqrtShape k) instance Show (Field k) where showsPrec _ Q = showString "Q"@@ -72,9 +72,9 @@ showParen (d > 9) $ showsPrec 9 k . showString "[sqrt " . showsPrecK k 10 r . showString "]" type family Elt (k :: FieldShape)-type instance Elt QShape = Rational+type instance Elt 'QShape = Rational data SqrtElt k = SqrtZero | SqrtElt !(Elt k) !(Elt k)-type instance Elt (SqrtShape k) = SqrtElt k+type instance Elt ('SqrtShape k) = SqrtElt k sqrtElt :: Field k -> Elt k -> Elt k -> SqrtElt k sqrtElt k a b | isZeroK k a && isZeroK k b = SqrtZero@@ -183,7 +183,7 @@ (-!), (+!), (*!), (/!) :: (Int -> ShowS) -> (Int -> ShowS) -> Int -> ShowS infixl 6 +!, -! infixl 7 *!, /!-negateS s d = showParen (d > 6) $ showChar '-' . s 6+negateS s d = showParen (d > 6) $ showChar '-' . s 7 (+!) s1 s2 d = showParen (d > 6) $ s1 6 . showString " + " . s2 7 (-!) s1 s2 d = showParen (d > 6) $ s1 6 . showString " - " . s2 7 (*!) s1 s2 d = showParen (d > 7) $ s1 7 . showChar '*' . s2 8@@ -351,8 +351,7 @@ log = throw (Unconstructible "log") a ** b = go (numerator b') (denominator b') where b' = toRational b- go p q = let (n, p') = divMod p q in- (if n >= 0 then a^n else 1/a^(-n))*go' p' q+ go p q = let (n, p') = divMod p q in a^^n*go' p' q go' 0 _ = 1 go' p q = case divMod q 2 of (q', 0) -> sqrt (go p q')@@ -386,7 +385,7 @@ instance Enum Construct where succ = (+ 1)- pred = (subtract 1)+ pred = subtract 1 toEnum = fromIntegral fromEnum = fromInteger . truncate enumFrom n = n `seq` (n : enumFrom (n + 1))
constructible.cabal view
@@ -1,5 +1,5 @@ name: constructible-version: 0.1.0.1+version: 0.1.1 synopsis: Exact computation with constructible real numbers description: The constructible reals are the subset of the real numbers that can@@ -19,10 +19,10 @@ library exposed-modules: Data.Real.Constructible build-depends:- arithmoi >=0.1, base ==4.*, binary-search >=0.0,- complex-generic >=0.1+ complex-generic >=0.1,+ integer-roots >=1.0 ghc-options: -Wall source-repository head