]> gitweb.michael.orlitzky.com - numerical-analysis.git/commitdiff
Make numbers == 3000.1.* required.
authorMichael Orlitzky <michael@orlitzky.com>
Fri, 12 Oct 2012 17:16:36 +0000 (13:16 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Fri, 12 Oct 2012 17:16:36 +0000 (13:16 -0400)
Import Data.Number.BigFloat in the .ghci file.
Add a doctest for newtons_method using BigFloat.

.ghci
numerical-analysis.cabal
src/Roots/Simple.hs

diff --git a/.ghci b/.ghci
index 12335d1134919b3cd5c4906c6457c74cb918a39b..e5788ad490b393ff84510a64209adbc4d657f9f2 100644 (file)
--- a/.ghci
+++ b/.ghci
@@ -4,5 +4,8 @@
 -- Load everything.
 :l src/Roots/Simple.hs
 
+-- Just for convenience.
+import Data.Number.BigFloat
+
 -- Use a calmer prompt.
 :set prompt "numerical-analysis> "
index 7bd0fb409795c36257f88e0393ecb439b0e298de..995395de97a683f4384b3329e74d50e761e64a47 100644 (file)
@@ -20,6 +20,8 @@ library
 
   build-depends:
     base                        == 4.5.*,
+    numbers                     == 3000.1.*,
+    -- Test deps
     HUnit                       == 1.2.*,
     QuickCheck                  == 2.*,
     test-framework              == 0.6.*,
@@ -53,6 +55,7 @@ test-suite doctests
   main-is: Doctests.hs
   build-depends:
     base      == 4.5.*,
+    numbers   == 3000.1.*,
     -- Additional test dependencies.
     doctest   == 0.7.*
 
index 1ab9034038d996bf5906a985d78ada0eec8e362f..79750e8d15b9aa2f0091e903b94a17accea9b7b8 100644 (file)
@@ -114,6 +114,14 @@ newton_iterations f f' x0 =
 --   >>> abs (f root) < 1/100000
 --   True
 --
+--   >>> import Data.Number.BigFloat
+--   >>> let eps = 1/(10^20) :: BigFloat Prec50
+--   >>> let Just root = newtons_method f f' eps 2
+--   >>> root
+--   1.13472413840151949260544605450647284028100785303643e0
+--   >>> abs (f root) < eps
+--   True
+--
 newtons_method :: (Fractional a, Ord a)
                  => (a -> a) -- ^ The function @f@ whose root we seek
                  -> (a -> a) -- ^ The derivative of @f@