Sophie

Sophie

distrib > Fedora > 18 > x86_64 > media > updates > by-pkgid > d9ab9b712c406347034632251e926a6d > files > 36

ghc-numbers-devel-3000.2.0.0-1.fc18.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Data.Number.Dif</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Data-Number-Dif.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Data-Number-Dif.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">numbers-3000.2.0.0: Various number types</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Data.Number.Dif</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>The <code><a href="Data-Number.html#t:Dif">Dif</a></code> module contains a data type, <code><a href="Data-Number-Dif.html#t:Dif">Dif</a></code>, that allows for
 automatic forward differentiation.
</p><p>All the ideas are from Jerzy Karczmarczuk's work,
 see <a href="http://users.info.unicaen.fr/~karczma/arpap/diffalg.pdf">http://users.info.unicaen.fr/~karczma/arpap/diffalg.pdf</a>.
</p><p>A simple example, if we define
</p><pre> foo x = x*x
</pre><p>then the function
</p><pre> foo' = deriv foo
</pre><p>will behave as if its body was 2*x.
</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span>  <a href="#t:Dif">Dif</a> a</li><li class="src short"><a href="#v:val">val</a> ::  <a href="Data-Number-Dif.html#t:Dif">Dif</a> a -&gt; a</li><li class="src short"><a href="#v:df">df</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> a) =&gt; <a href="Data-Number-Dif.html#t:Dif">Dif</a> a -&gt; <a href="Data-Number-Dif.html#t:Dif">Dif</a> a</li><li class="src short"><a href="#v:mkDif">mkDif</a> ::  a -&gt; <a href="Data-Number-Dif.html#t:Dif">Dif</a> a -&gt; <a href="Data-Number-Dif.html#t:Dif">Dif</a> a</li><li class="src short"><a href="#v:dCon">dCon</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a =&gt; a -&gt; <a href="Data-Number-Dif.html#t:Dif">Dif</a> a</li><li class="src short"><a href="#v:dVar">dVar</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> a) =&gt; a -&gt; <a href="Data-Number-Dif.html#t:Dif">Dif</a> a</li><li class="src short"><a href="#v:deriv">deriv</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> b, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> b) =&gt; (<a href="Data-Number-Dif.html#t:Dif">Dif</a> a -&gt; <a href="Data-Number-Dif.html#t:Dif">Dif</a> b) -&gt; a -&gt; b</li><li class="src short"><a href="#v:unDif">unDif</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> a) =&gt; (<a href="Data-Number-Dif.html#t:Dif">Dif</a> a -&gt; <a href="Data-Number-Dif.html#t:Dif">Dif</a> b) -&gt; a -&gt; b</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Dif" class="def">Dif</a> a <a href="src/Data-Number-Dif.html#Dif" class="link">Source</a></p><div class="doc"><p>The <code><a href="Data-Number-Dif.html#t:Dif">Dif</a></code> type is the type of differentiable numbers.
 It's an instance of all the usual numeric classes.
 The computed derivative of a function is is correct
 except where the function is discontinuous, at these points
 the derivative should be a Dirac pulse, but it isn't.
</p><p>The <code><a href="Data-Number-Dif.html#t:Dif">Dif</a></code> numbers are printed with a trailing ~~ to
 indicate that there is a &quot;tail&quot; of derivatives.
</p></div><div class="subs instances"><p id="control.i:Dif" class="caption collapser" onclick="toggleSection('i:Dif')">Instances</p><div id="section.i:Dif" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Data-Number-Dif.html#t:Dif">Dif</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Floating">Floating</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> a) =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Floating">Floating</a> (<a href="Data-Number-Dif.html#t:Dif">Dif</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Fractional">Fractional</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> a) =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Fractional">Fractional</a> (<a href="Data-Number-Dif.html#t:Dif">Dif</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> a) =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> (<a href="Data-Number-Dif.html#t:Dif">Dif</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Ord.html#t:Ord">Ord</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Ord.html#t:Ord">Ord</a> (<a href="Data-Number-Dif.html#t:Dif">Dif</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Read.html#t:Read">Read</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Read.html#t:Read">Read</a> (<a href="Data-Number-Dif.html#t:Dif">Dif</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Real">Real</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Real">Real</a> (<a href="Data-Number-Dif.html#t:Dif">Dif</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:RealFloat">RealFloat</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:RealFloat">RealFloat</a> (<a href="Data-Number-Dif.html#t:Dif">Dif</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:RealFrac">RealFrac</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:RealFrac">RealFrac</a> (<a href="Data-Number-Dif.html#t:Dif">Dif</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> (<a href="Data-Number-Dif.html#t:Dif">Dif</a> a)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:val" class="def">val</a> ::  <a href="Data-Number-Dif.html#t:Dif">Dif</a> a -&gt; a<a href="src/Data-Number-Dif.html#val" class="link">Source</a></p><div class="doc"><p>The <code><a href="Data-Number-Dif.html#v:val">val</a></code> function takes a <code><a href="Data-Number-Dif.html#t:Dif">Dif</a></code> number back to a normal
 number, thus forgetting about all the derivatives.
</p></div></div><div class="top"><p class="src"><a name="v:df" class="def">df</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> a) =&gt; <a href="Data-Number-Dif.html#t:Dif">Dif</a> a -&gt; <a href="Data-Number-Dif.html#t:Dif">Dif</a> a<a href="src/Data-Number-Dif.html#df" class="link">Source</a></p><div class="doc"><p>The <code><a href="Data-Number-Dif.html#v:df">df</a></code> takes a <code><a href="Data-Number-Dif.html#t:Dif">Dif</a></code> number and returns its first
 derivative.  The function can be iterated to to get
 higher derivaties.
</p></div></div><div class="top"><p class="src"><a name="v:mkDif" class="def">mkDif</a> ::  a -&gt; <a href="Data-Number-Dif.html#t:Dif">Dif</a> a -&gt; <a href="Data-Number-Dif.html#t:Dif">Dif</a> a<a href="src/Data-Number-Dif.html#mkDif" class="link">Source</a></p><div class="doc"><p>The <code><a href="Data-Number-Dif.html#v:mkDif">mkDif</a></code> takes a value and <code><a href="Data-Number-Dif.html#t:Dif">Dif</a></code> value and makes
 a <code><a href="Data-Number-Dif.html#t:Dif">Dif</a></code> number that has the given value as its normal
 value, and the <code><a href="Data-Number-Dif.html#t:Dif">Dif</a></code> number as its derivatives.
</p></div></div><div class="top"><p class="src"><a name="v:dCon" class="def">dCon</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a =&gt; a -&gt; <a href="Data-Number-Dif.html#t:Dif">Dif</a> a<a href="src/Data-Number-Dif.html#dCon" class="link">Source</a></p><div class="doc"><p>The <code><a href="Data-Number-Dif.html#v:dCon">dCon</a></code> function turns a normal number into a <code><a href="Data-Number-Dif.html#t:Dif">Dif</a></code>
 number with the same value.  Not that numeric literals
 do not need an explicit conversion due to the normal
 Haskell overloading of literals.
</p></div></div><div class="top"><p class="src"><a name="v:dVar" class="def">dVar</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> a) =&gt; a -&gt; <a href="Data-Number-Dif.html#t:Dif">Dif</a> a<a href="src/Data-Number-Dif.html#dVar" class="link">Source</a></p><div class="doc"><p>The <code><a href="Data-Number-Dif.html#v:dVar">dVar</a></code> function turns a number into a variable
 number.  This is the number with with respect to which
 the derivaticve is computed.
</p></div></div><div class="top"><p class="src"><a name="v:deriv" class="def">deriv</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> b, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> b) =&gt; (<a href="Data-Number-Dif.html#t:Dif">Dif</a> a -&gt; <a href="Data-Number-Dif.html#t:Dif">Dif</a> b) -&gt; a -&gt; b<a href="src/Data-Number-Dif.html#deriv" class="link">Source</a></p><div class="doc"><p>The <code><a href="Data-Number-Dif.html#v:deriv">deriv</a></code> function is a simple utility to take the
 derivative of a (single argument) function.
 It is simply defined as
</p><pre>  deriv f = val . df . f . dVar
</pre></div></div><div class="top"><p class="src"><a name="v:unDif" class="def">unDif</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Prelude.html#t:Num">Num</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> a) =&gt; (<a href="Data-Number-Dif.html#t:Dif">Dif</a> a -&gt; <a href="Data-Number-Dif.html#t:Dif">Dif</a> b) -&gt; a -&gt; b<a href="src/Data-Number-Dif.html#unDif" class="link">Source</a></p><div class="doc"><p>Convert a <code><a href="Data-Number-Dif.html#t:Dif">Dif</a></code> function to an ordinary function.
</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.10.0</p></div></body></html>