Initial commit.
[SVN r2955]
@@ -1,225 +0,0 @@
|
||||
%% This BibTeX bibliography file was created using BibDesk.
|
||||
%% http://bibdesk.sourceforge.net/
|
||||
|
||||
|
||||
%% Created for Daryle Walker at 2005-08-13 07:09:33 -0400
|
||||
|
||||
|
||||
%% Saved with string encoding ASCII (TeX)
|
||||
|
||||
|
||||
|
||||
@electronic{Inc.:it,
|
||||
Address = {450 Phillip Street, Waterloo, ON, N2L SJ2, Canada},
|
||||
Date-Added = {2005-08-13 07:03:51 -0400},
|
||||
Date-Modified = {2005-08-13 07:09:22 -0400},
|
||||
Edition = {version V, release 5.1},
|
||||
Editor = {Waterloo Maple Inc.},
|
||||
Note = {A commercial computer-aided mathematics software},
|
||||
Title = {Maple},
|
||||
Url = {http://www.maplesoft.com}}
|
||||
|
||||
@electronic{Holin:lq,
|
||||
Author = {Hubert Holin and Didier Vidal},
|
||||
Date-Added = {2005-08-13 06:59:47 -0400},
|
||||
Date-Modified = {2005-08-13 07:02:44 -0400},
|
||||
Note = {available for licencing from the author, {\copyright}},
|
||||
Title = {Horizontal-preserving quaternions}}
|
||||
|
||||
@url{Weisstein:ym,
|
||||
Annote = {Was <http://www.treasure-troves.com/math/CayleyNumber.html> by E. Weisstein, but was redirected to a page that included a suggested cite listing.
|
||||
},
|
||||
Author = {Eric W. Weisstein},
|
||||
Date-Added = {2005-08-13 06:50:54 -0400},
|
||||
Date-Modified = {2005-08-13 06:58:24 -0400},
|
||||
Publisher = {MathWorld---A Wolfram Web Resource},
|
||||
Title = {Cayley Number},
|
||||
Url = {http://mathworld.wolfram.com/CayleyNumber.html}}
|
||||
|
||||
@article{Sudbery:1979ei,
|
||||
Author = {A. Sudbery},
|
||||
Date-Added = {2005-08-13 06:46:18 -0400},
|
||||
Date-Modified = {2005-08-13 06:47:44 -0400},
|
||||
Journal = {Proceedings of the Cambridge Philosophical Society},
|
||||
Title = {Quaternionic Analysis},
|
||||
Volume = {85},
|
||||
Year = {1979}}
|
||||
|
||||
@article{Salamon:1982sg,
|
||||
Author = {S. Salamon},
|
||||
Date-Added = {2005-08-13 06:42:04 -0400},
|
||||
Date-Modified = {2005-08-13 06:44:22 -0400},
|
||||
Journal = {Inventiones Mathematica},
|
||||
Number = {1},
|
||||
Pages = {143--171},
|
||||
Title = {Quaternionic Kaeler Manifolds},
|
||||
Volume = {67},
|
||||
Year = {1982}}
|
||||
|
||||
@article{Pletincks:1989ds,
|
||||
Author = {D. Pletincks},
|
||||
Date-Added = {2005-08-13 06:36:48 -0400},
|
||||
Date-Modified = {2005-08-13 06:38:45 -0400},
|
||||
Journal = {The Visual Computer, an International Journal of Computer Graphics},
|
||||
Number = {1/2},
|
||||
Pages = {2--13},
|
||||
Title = {Quaternion calculus as a basic tool in computer graphics},
|
||||
Volume = {5},
|
||||
Year = {1989}}
|
||||
|
||||
@article{Pichon:1973oh,
|
||||
Address = {Paris},
|
||||
Author = {G. Pichon},
|
||||
Date-Added = {2005-08-13 06:30:53 -0400},
|
||||
Date-Modified = {2005-08-13 06:34:48 -0400},
|
||||
Journal = {Collection M\'{e}thodes},
|
||||
Pages = {31},
|
||||
Publisher = {Hermann},
|
||||
Title = {Groupes de Lie, representations lin\'{e}aires et applications},
|
||||
Year = {1973}}
|
||||
|
||||
@unpublished{Pham:1996gf,
|
||||
Author = {F. Pham},
|
||||
Date-Added = {2005-08-13 06:23:13 -0400},
|
||||
Date-Modified = {2005-08-13 06:26:04 -0400},
|
||||
Note = {early version, unpublished, presented at the Journ\'{e}es Non Standard, Paris, 1996-12-14 and perhaps elsewhere},
|
||||
Title = {Une d\'{e}finition non standard de l'exponentielle (variation sur un th\`{e}me de Pierre Cartier)},
|
||||
Year = {1996}}
|
||||
|
||||
@booklet{Misner:1973es,
|
||||
Address = {New York},
|
||||
Author = {C.W. Misner and K.S. Thone and J.A. Wheeler},
|
||||
Chapter = {41---Spinors},
|
||||
Date-Added = {2005-08-13 06:16:27 -0400},
|
||||
Date-Modified = {2005-08-13 06:23:28 -0400},
|
||||
Publisher = {W.H. Freeman and Company},
|
||||
Title = {Gravitation},
|
||||
Year = {1973}}
|
||||
|
||||
@book{Lelong-Ferrand:1978gq,
|
||||
Author = {J. Lelong-Ferrand and J.M. Arnaudi\`{e}s},
|
||||
Date-Added = {2005-08-13 06:08:32 -0400},
|
||||
Date-Modified = {2005-08-13 06:12:02 -0400},
|
||||
Edition = {3eme \'{e}dition},
|
||||
Publisher = {Dunod Universit\'{e}},
|
||||
Title = {Cours de math\`{e}matiques, Tome 1, Alg\`{e}bre},
|
||||
Year = {1978}}
|
||||
|
||||
@article{Leborgne:1982hf,
|
||||
Author = {D. Leborgne},
|
||||
Date-Added = {2005-08-13 06:04:45 -0400},
|
||||
Date-Modified = {2005-08-13 06:06:39 -0400},
|
||||
Journal = {Math\'{e}matiques},
|
||||
Publisher = {P.U.F.},
|
||||
Title = {Calcul diff\'{e}rentiel et g\'{e}ometrie},
|
||||
Year = {1982}}
|
||||
|
||||
@book{Lang:1971vf,
|
||||
Author = {S. Lang},
|
||||
Date-Added = {2005-08-13 05:58:26 -0400},
|
||||
Date-Modified = {2005-08-13 06:02:25 -0400},
|
||||
Edition = {Revised printing: January 1971},
|
||||
Publisher = {Addisson-Wesley Publishing Company},
|
||||
Series = {Addison-Wesley Series in Mathematics},
|
||||
Title = {Algebra},
|
||||
Year = {1971}}
|
||||
|
||||
@article{Khoan:1972ld,
|
||||
Author = {V. K. Khoan},
|
||||
Date-Added = {2005-08-13 05:53:27 -0400},
|
||||
Date-Modified = {2005-08-13 05:57:05 -0400},
|
||||
Journal = {Cours et exercices r\'{e}solus maitrise de math\'{e}matiques certificat C2},
|
||||
Publisher = {Vuibert},
|
||||
Title = {Distributions Analyse de Fourier Op\'{e}rateurs aux D\'{e}riv\'{e}es Partielles, tome 1},
|
||||
Year = {1972}}
|
||||
|
||||
@article{Howell:1975ft,
|
||||
Author = {T. Howell and J.C. Lafon},
|
||||
Date-Added = {2005-08-13 05:50:14 -0400},
|
||||
Date-Modified = {2005-08-13 05:51:43 -0400},
|
||||
Journal = {Cornell Computer Science TR 75-245},
|
||||
Month = {June},
|
||||
Title = {The complexity of the quaternion product},
|
||||
Year = {1975}}
|
||||
|
||||
@article{Gurlebeck:1989mb,
|
||||
Author = {K. G\"{u}rlebeck and W. Sp\"{o}ssig},
|
||||
Date-Added = {2005-08-13 05:46:31 -0400},
|
||||
Date-Modified = {2005-08-13 05:48:44 -0400},
|
||||
Journal = {International Series of Numerical Mathematics},
|
||||
Publisher = {Birkha\"{u}ser},
|
||||
Title = {Quaternion Analysis and Elliptical Boundary Problems},
|
||||
Volume = {89},
|
||||
Year = {1989}}
|
||||
|
||||
@article{Exbrayat:1971pk,
|
||||
Author = {J. M. Exbrayat and P. Mazet},
|
||||
Date-Added = {2005-08-13 05:06:22 -0400},
|
||||
Date-Modified = {2005-08-13 05:44:53 -0400},
|
||||
Journal = {Notions Modernes de Math\'{e}matiques},
|
||||
Publisher = {Hatier-Universit\'{e}},
|
||||
Title = {alg\`{e}bre 1, Notions Fondamentales de la Th\'{e}orie des Ensembles},
|
||||
Year = {1971}}
|
||||
|
||||
@webpage{Dixon:ex,
|
||||
Annote = {The web site was originally <http://www.7stones.com/Homepage/sevenhome2.html>, but it has a redirect page to <http://www.7stones.com/index.html>, of which I trimmed the default key.
|
||||
},
|
||||
Author = {G. Dixon},
|
||||
Date-Added = {2005-08-13 04:59:19 -0400},
|
||||
Date-Modified = {2005-08-13 05:02:52 -0400},
|
||||
Url = {http://www.7stones.com}}
|
||||
|
||||
@article{Dixon:1994rh,
|
||||
Author = {G. Dixon},
|
||||
Date-Added = {2005-08-13 04:54:24 -0400},
|
||||
Date-Modified = {2005-08-13 04:56:21 -0400},
|
||||
Journal = {Mathematics and Its Applications},
|
||||
Publisher = {Kluwer Academic Publishers},
|
||||
Title = {Division Algebras: Octonions, Quaternions, Complex Numbers and the Algebraic Design of Physics},
|
||||
Year = {1994}}
|
||||
|
||||
@article{Casteljau:1987bc,
|
||||
Author = {P. de Casteljau},
|
||||
Date-Added = {2005-08-13 04:47:03 -0400},
|
||||
Date-Modified = {2005-08-13 04:50:13 -0400},
|
||||
Journal = {Trait\'{e} des nouvelles technologies, s\'{e}rie math\'{e}matiques appliqu\'{e}es},
|
||||
Publisher = {Hermes},
|
||||
Title = {Les quaternions},
|
||||
Year = {1987}}
|
||||
|
||||
@book{Bourbaki:do,
|
||||
Author = {N. Bourbaki},
|
||||
Date-Added = {2005-08-13 04:41:28 -0400},
|
||||
Date-Modified = {2005-08-13 04:42:11 -0400},
|
||||
Title = {Espaces Vectoriels Topologiques}}
|
||||
|
||||
@book{Bourbaki:sc,
|
||||
Author = {N. Bourbaki},
|
||||
Date-Added = {2005-08-13 04:39:45 -0400},
|
||||
Date-Modified = {2005-08-13 04:41:18 -0400},
|
||||
Title = {Alg\`{e}bre}}
|
||||
|
||||
@book{Berger:1990ce,
|
||||
Author = {M. Berger},
|
||||
Date-Added = {2005-08-13 04:35:48 -0400},
|
||||
Date-Modified = {2005-08-13 04:36:40 -0400},
|
||||
Publisher = {Nathan},
|
||||
Title = {G\'{e}ometrie 1},
|
||||
Year = {1990}}
|
||||
|
||||
@inbook{Beardon:1979ek,
|
||||
Author = {A.F. Beardon},
|
||||
Date-Added = {2005-08-13 04:29:25 -0400},
|
||||
Date-Modified = {2005-08-13 04:33:48 -0400},
|
||||
Publisher = {John Wiley \& Sons, A Wiley-Interscience Publication},
|
||||
Title = {Complex Analysis, The Argument Principle in Analysis and Topology},
|
||||
Year = {1979}}
|
||||
|
||||
@article{Godbillon:1971th,
|
||||
Author = {C. Godbillon},
|
||||
Date-Added = {2005-08-13 04:12:45 -0400},
|
||||
Date-Modified = {2005-08-13 04:35:21 -0400},
|
||||
Journal = {Collection M\'{e}thodes},
|
||||
Publisher = {Hermann},
|
||||
Title = {\'{E}l\'{e}ments de Topologie Alg\'{e}brique},
|
||||
Year = {1971}}
|
||||
1542
doc/HyperComplex.tex
17
doc/Jamfile.v2
Normal file
@@ -0,0 +1,17 @@
|
||||
|
||||
# Copyright John Maddock 2005. Use, modification, and distribution are
|
||||
# subject to the Boost Software License, Version 1.0. (See accompanying
|
||||
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
using quickbook ;
|
||||
|
||||
xml math : math.qbk ;
|
||||
boostbook standalone
|
||||
:
|
||||
math
|
||||
:
|
||||
<xsl:param>nav.layout=none
|
||||
<xsl:param>navig.graphics=0
|
||||
;
|
||||
|
||||
|
||||
108
doc/beta.qbk
Normal file
@@ -0,0 +1,108 @@
|
||||
[section The Beta Function]
|
||||
|
||||
[caution __caution ]
|
||||
|
||||
[h4 Synopsis]
|
||||
|
||||
``
|
||||
#include <boost/math/special_functions/beta.hpp>
|
||||
``
|
||||
|
||||
namespace boost{ namespace math{
|
||||
|
||||
template <class T>
|
||||
T beta(T a, T b);
|
||||
|
||||
}} // namespaces
|
||||
|
||||
[h4 Description]
|
||||
|
||||
The beta function is defined by:
|
||||
|
||||
[$../equations/beta1.png]
|
||||
|
||||
[$../graphs/beta.png]
|
||||
|
||||
And for small values:
|
||||
|
||||
[$../graphs/beta-small.png]
|
||||
|
||||
There are effectively two versions of this function internally: a fully
|
||||
generic version that is slow, but reasonably accurate, and a much more
|
||||
efficient approximation that is used where the number of digits in the mantissa
|
||||
of T correspond to a certain __lanczos. In practice any built in
|
||||
floating point type you will encounter has an appropriate __lanczos
|
||||
defined for it. It is also possible, given enough machine time, to generate
|
||||
further __lanczos's using the program libs/math/tools/lanczos_generator.cpp.
|
||||
|
||||
[h4 Accuracy]
|
||||
|
||||
The following table shows peek errors for various domains of input arguments,
|
||||
plus comparisons to other open source implementations where available. Note that
|
||||
only results for the widest floating point type on the system are given as
|
||||
narrower types have __zero_error.
|
||||
|
||||
[table Peek Errors In the Beta Function
|
||||
[[Mantissa Size] [Platform and Compiler] [Errors in range\n0.4 < a,b < 100] [Errors in range\n1e-6 < a,b < 36]]
|
||||
[[53] [Win32, Visual C++ 8] [Peek=99 Mean=22\n\n(GSL Peek=1178 Mean=238)\n(Cephes=1612)] [Peek=10.7 Mean=2.6\n\n(GSL Peek=12 Mean=2.0)\n(Cephes=174)]]
|
||||
[[64] [Red Hat Linux IA32, g++ 3.4.4] [Peek=112.1 Mean=26.9] [Peek=15.8 Mean=3.6]]
|
||||
[[64] [Red Hat Linux IA64, g++ 3.4.4] [Peek=61.4 Mean=19.5] [Peek=12.2 Mean=3.6]]
|
||||
[[113] [HPUX IA64, aCC A.06.06] [Peek=42.03 Mean=13.94] [Peek=9.8 Mean=3.1]]
|
||||
]
|
||||
|
||||
Note that the worst errors occur when a or b are large, and that
|
||||
when this is the case the result is very close to zero, so absolute
|
||||
errors will be very small.
|
||||
|
||||
[h4 Testing]
|
||||
|
||||
A mixture of spot tests of exact values, and randomly generated test data are
|
||||
used: the test data was computed using NTL::RR at 1000-bit precision.
|
||||
|
||||
[h4 Implementation]
|
||||
|
||||
Traditional methods of evaluating the beta function either involve evaluating
|
||||
the gamma functions directly, or taking logarithms and then
|
||||
exponentiating the result. However, the former is prone to overflows
|
||||
for even very modest arguments, while the latter is prone to cancellation
|
||||
errors. As an alternative, if we regard the gamma function as a white-box
|
||||
containing the __lanczos then we can combine the power terms:
|
||||
|
||||
[$../equations/beta2.png]
|
||||
|
||||
which is almost the ideal solution, however almost all of the error occurs
|
||||
in evaluating the power terms when /a/ or /b/ are large. If we assume that /a > b/
|
||||
then the larger of the two power terms can be reduced by a factor of /b/, which
|
||||
immediately cuts the maximum error in half:
|
||||
|
||||
[$../equations/beta3.png]
|
||||
|
||||
This may not be the final solution, but it is very competitive compared to
|
||||
other implementation methods.
|
||||
|
||||
The generic implementation - where no __lanczos approximation is available - is
|
||||
implemented in a very similar way to the generic version of the gamma function.
|
||||
Again in order to avoid numerical overflow the power terms that prefix the series and
|
||||
continued fraction parts are collected together into:
|
||||
|
||||
[$../equations/beta8.png]
|
||||
|
||||
where la, lb and lc are the integration limits used for a, b, and a+b.
|
||||
|
||||
There are a few special cases worth mentioning:
|
||||
|
||||
When /a/ or /b/ are less than one, we can use the recurrence relations:
|
||||
|
||||
[$../equations/beta4.png]
|
||||
|
||||
[$../equations/beta5.png]
|
||||
|
||||
To move to a more favorable region where they are both greater than 1.
|
||||
|
||||
In addition:
|
||||
|
||||
[$../equations/beta7.png]
|
||||
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -1,724 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>Boost Arbitrary-length Whole-number Library</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1><img src="../../../c++boost.gif" alt="c++boost.gif (8819 bytes)" align="middle" width="277" height="86">Arbitrary-length Whole-number Library</h1>
|
||||
|
||||
<p>The headers <cite><a href="../../../boost/math/big_whole_core.hpp">boost/math/big_whole_core.hpp</a></cite> and <cite><a href="../../../boost/math/big_whole.hpp">boost/math/big_whole.hpp</a></cite> cover the definition of and operations for unlimited-length nonnegative integers (only memory constraints should limit the numbers supported).</p>
|
||||
|
||||
<h2><a name="contents">Contents</a></h2>
|
||||
|
||||
<ol>
|
||||
<li><a href="#contents">Contents</a></li>
|
||||
<li><a href="#rationale">Rationale</a></li>
|
||||
<li><a href="#core">Core Definition and Routines</a>
|
||||
<ul>
|
||||
<li><a href="#c_header">Header Synopsis</a></li>
|
||||
<li><a href="#c_bigwhole">Unlimited-Length Nonnegative Integer Type</a>
|
||||
<ul>
|
||||
<li><a href="#c_bw_ctr">Constructors</a></li>
|
||||
<li><a href="#c_bw_observe">Observer Member Functions</a></li>
|
||||
<li><a href="#c_bw_mutate">Mutating Member Functions</a></li>
|
||||
<li><a href="#c_bw_ops">Operators</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#c_nm_funcs">Non-Member Functions & Operators</a>
|
||||
<ul>
|
||||
<li><a href="#c_nm_ops">Operators</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#c_limits">Numeric Limits</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#additional">Additional Routines</a>
|
||||
<ul>
|
||||
<li><a href="#a_header">Header Synopsis</a></li>
|
||||
<li><a href="#a_bit_conv">Bit-String Conversion Functions</a></li>
|
||||
<li><a href="#a_io_ops">Input & Output Operators</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#refer">References</a></li>
|
||||
<li><a href="#credits">Credits</a>
|
||||
<ul>
|
||||
<li><a href="#contributors">Contributors</a></li>
|
||||
<li><a href="#history">History</a></li>
|
||||
</ul></li>
|
||||
</ol>
|
||||
|
||||
<h2><a name="rationale">Rationale</a></h2>
|
||||
|
||||
<p>Various "bignum" classes provide objects that model numbers beyond the limits of the built-in numeric types. The class provided in this library gives a portable implementation of nonnegative integers (also known as "whole" numbers). The implementation tries to lean towards good performance, but it's probably not as good as the various highly-refined "bignum" types available.</p>
|
||||
|
||||
<h2><a name="core">Core Definition and Routines</a></h2>
|
||||
|
||||
<p>The <cite><a href="../../../boost/math/big_whole_core.hpp">boost/math/big_whole_core.hpp</a></cite> header contains the declaration for the unlimited-length nonnegative integer type and declarations for various core routines.</p>
|
||||
|
||||
<h3><a name="c_header">Header Synopsis</a></h3>
|
||||
|
||||
<blockquote><pre>
|
||||
#include <limits> <i>// for std::numeric_limits</i>
|
||||
|
||||
namespace boost
|
||||
{
|
||||
namespace math
|
||||
{
|
||||
|
||||
class big_whole;
|
||||
|
||||
void swap( big_whole &a, big_whole &b );
|
||||
|
||||
big_whole and_not( big_whole const &a, big_whole const &b );
|
||||
|
||||
big_whole abs( big_whole const &w );
|
||||
short sgn( big_whole const &w );
|
||||
|
||||
big_whole operator !( big_whole const &w );
|
||||
big_whole operator +( big_whole const &w );
|
||||
big_whole operator -( big_whole const &w );
|
||||
big_whole operator ++( big_whole &w, int );
|
||||
big_whole operator --( big_whole &w, int );
|
||||
|
||||
bool operator ==( big_whole const &lhs, big_whole const &rhs );
|
||||
bool operator !=( big_whole const &lhs, big_whole const &rhs );
|
||||
bool operator < ( big_whole const &lhs, big_whole const &rhs );
|
||||
bool operator > ( big_whole const &lhs, big_whole const &rhs );
|
||||
bool operator <=( big_whole const &lhs, big_whole const &rhs );
|
||||
bool operator >=( big_whole const &lhs, big_whole const &rhs );
|
||||
|
||||
big_whole operator &( big_whole const &lhs, big_whole const &rhs );
|
||||
big_whole operator |( big_whole const &lhs, big_whole const &rhs );
|
||||
big_whole operator ^( big_whole const &lhs, big_whole const &rhs );
|
||||
|
||||
big_whole operator >>( big_whole const &value, big_whole const &shift );
|
||||
big_whole operator <<( big_whole const &value, big_whole const &shift );
|
||||
|
||||
big_whole operator +( big_whole const &augend, big_whole const &addend );
|
||||
big_whole operator -( big_whole const &minuend, big_whole const &subtrahend );
|
||||
|
||||
big_whole & operator &=( big_whole &lhs, big_whole const &rhs );
|
||||
big_whole & operator |=( big_whole &lhs, big_whole const &rhs );
|
||||
big_whole & operator ^=( big_whole &lhs, big_whole const &rhs );
|
||||
big_whole & operator >>=( big_whole &lhs, big_whole const &rhs );
|
||||
big_whole & operator <<=( big_whole &lhs, big_whole const &rhs );
|
||||
big_whole & operator +=( big_whole &lhs, big_whole const &rhs );
|
||||
big_whole & operator -=( big_whole &lhs, big_whole const &rhs );
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
namespace std
|
||||
{
|
||||
|
||||
template < > class numeric_limits< boost::math::big_whole >;
|
||||
|
||||
}
|
||||
</pre></blockquote>
|
||||
|
||||
<h3><a name="c_bigwhole">Unlimited-Length Nonnegative Integer Type</a></h3>
|
||||
|
||||
<p>Objects from the <code>boost::math::big_whole</code> class represent unlimited-length nonnegative integers. Even though the implemenation is advanced, objects from this type can be passed around like any other value-based type. The usual mathematical functions and operators are provided. These objects have a binary (<i>i.e.</i> radix-2) representation, so various bit-twiddling functions and operators are also provided.</p>
|
||||
|
||||
<blockquote><pre>
|
||||
#include <boost/cstdint.hpp> <i>// for boost::uintmax_t</i>
|
||||
#include <cstddef> <i>// for std::size_t</i>
|
||||
#include <valarray> <i>// for std::valarray</i>
|
||||
|
||||
class boost::math::big_whole
|
||||
{
|
||||
public:
|
||||
// Lifetime management
|
||||
big_whole();
|
||||
big_whole( big_whole const &other );
|
||||
|
||||
big_whole( boost::uintmax_t v );
|
||||
|
||||
explicit big_whole( std::valarray<bool> const &b );
|
||||
explicit big_whole( std::valarray<std::size_t> const &i );
|
||||
|
||||
// Object-mutating operations
|
||||
void swap( big_whole &other );
|
||||
|
||||
void assign( big_whole const &other );
|
||||
void assign( boost::uintmax_t v );
|
||||
|
||||
void reconfigure( std::valarray<bool> const &b );
|
||||
void reconfigure( std::valarray<std::size_t> const &i );
|
||||
|
||||
// Value-accessing operations
|
||||
uintmax_t to_uintmax() const;
|
||||
std::valarray<bool> to_bit_vector() const;
|
||||
std::valarray<std::size_t> to_bit_indices() const;
|
||||
|
||||
bool is_even() const;
|
||||
|
||||
// Bit-twiddling operations
|
||||
void reset();
|
||||
void reset( std::size_t from, std::size_t to );
|
||||
void reset( std::size_t i );
|
||||
|
||||
void set( std::size_t from, std::size_t to );
|
||||
void set( std::size_t i );
|
||||
|
||||
void flip( std::size_t from, std::size_t to );
|
||||
void flip( std::size_t i );
|
||||
|
||||
void bit_assign( std::size_t from, std::size_t to, bool value );
|
||||
void bit_assign( std::size_t i, bool value );
|
||||
|
||||
void bits_assign( std::size_t from, std::size_t to, big_whole const &values );
|
||||
|
||||
// Bit-inspecting operations
|
||||
std::size_t length() const;
|
||||
|
||||
std::size_t count() const;
|
||||
bool any() const;
|
||||
bool none() const;
|
||||
|
||||
bool test( std::size_t i ) const;
|
||||
big_whole tests( std::size_t from, std::size_t to ) const;
|
||||
|
||||
big_whole reverse( std::size_t cap ) const;
|
||||
big_whole reverse() const;
|
||||
|
||||
std::size_t search_tested_bit( std::size_t from, bool value, bool increase_indices ) const;
|
||||
std::size_t next_tested_bit( std::size_t from, bool value ) const;
|
||||
std::size_t previous_tested_bit( std::size_t from, bool value ) const;
|
||||
std::size_t next_set_bit( std::size_t from ) const;
|
||||
std::size_t next_reset_bit( std::size_t from ) const;
|
||||
std::size_t previous_set_bit( std::size_t from ) const;
|
||||
std::size_t previous_reset_bit( std::size_t from ) const;
|
||||
|
||||
// Self-operator mutators
|
||||
void not_self();
|
||||
void same_self();
|
||||
void negate_self();
|
||||
|
||||
// Object-accessing operations
|
||||
int compare( big_whole const &other ) const;
|
||||
|
||||
bool intersects( big_whole const &other ) const;
|
||||
|
||||
std::size_t scale() const;
|
||||
|
||||
// Operators
|
||||
big_whole & operator =( big_whole const &rhs );
|
||||
|
||||
operator <em>bool_type</em>() const;
|
||||
|
||||
big_whole & operator ++();
|
||||
big_whole & operator --();
|
||||
|
||||
};
|
||||
</pre></blockquote>
|
||||
|
||||
<h4><a name="c_bw_ctr">Constructors</a></h4>
|
||||
|
||||
<p><strong>Note:</strong> the automatically-defined destructor is used.</p>
|
||||
|
||||
<dl>
|
||||
<dt><code>big_whole();</code>
|
||||
<dd>
|
||||
<strong>Effects:</strong> sets the internal state such that the stored numerical value is zero (using a minimal amount of memory)<br>
|
||||
<strong>Rationale:</strong> standard default-state creation
|
||||
|
||||
<dt><code>big_whole( big_whole &other );</code>
|
||||
<dd>
|
||||
<strong>Effects:</strong> sets the internal state such that the stored numerical value is the same as the numerical value stored in <var>other</var><br>
|
||||
<strong>Rationale:</strong> standard creation via copying
|
||||
|
||||
<dt><code>big_whole( boost::uintmax_t v );</code>
|
||||
<dd>
|
||||
<strong>Effects:</strong> sets the internal state such that the stored numerical value is the same as <var>v</var><br>
|
||||
<strong>Rationale:</strong> creation via conversion
|
||||
|
||||
<dt><code>explicit big_whole( std::valarray<bool> const &b );</code>
|
||||
<dd>
|
||||
<strong>Effects:</strong> sets the internal state such that the stored numerical value has the same bit pattern as <var>b</var><br>
|
||||
<strong>Rationale:</strong> creation via bit-pattern
|
||||
|
||||
<dt><code>explicit big_whole( std::valarray<std::size_t> const &i );</code>
|
||||
<dd>
|
||||
<strong>Effects:</strong> sets the internal state such that the stored numerical value has its set bits at the positions given by <var>i</var><br>
|
||||
<strong>Rationale:</strong> creation via set-bit-location specification
|
||||
</dl>
|
||||
|
||||
<h4><a name="c_bw_observe">Observer Member Functions</a></h4>
|
||||
|
||||
<dl>
|
||||
<dt><code>boost::uintmax_t to_uintmax() const;</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> the numeric value stored in <code>*this</code>, reduced modulo 2<sup><code>std::numeric_limits< boost::uintmax_t >::digits</code></sup><br>
|
||||
<strong>Rationale:</strong> explicit reverse conversion
|
||||
|
||||
<dt><code>std::valarray<bool> to_bit_vector() const;</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> the bit pattern for the numeric value stored in <code>*this</code><br>
|
||||
<strong>Rationale:</strong> break down to a bit pattern
|
||||
|
||||
<dt><code>std::valarray<std::size_t> to_bit_indices() const;</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> the places of the set bits for the numeric value stored in <code>*this</code><br>
|
||||
<strong>Rationale:</strong> break down to a set-bit index list
|
||||
|
||||
<dt><code>bool is_even() const;</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> whether the numeric value stored in <code>*this</code> is even (or odd if not)<br>
|
||||
<strong>Note:</strong> same as <code>*this % 2 == 0</code>, but is probably implemented more efficiently<br>
|
||||
<strong>Rationale:</strong> simple even/odd test
|
||||
|
||||
<dt><code>std::size_t length() const;</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> the smallest nonnegative integer, <var>n</var>, such that 2<sup><var>n</var></sup> is greater than the numeric value stored in <code>*this</code> (returns 0 if <code>*this</code> represents zero)<br>
|
||||
<strong>Note:</strong> same as <code>this->to_bit_vector().size()</code> or (for nonzero length) <code>1 + this->to_bit_indices().max()</code>, but is probably implemented more efficiently<br>
|
||||
<strong>Rationale:</strong> size of bit-pattern vector
|
||||
|
||||
<dt><code>std::size_t count() const;</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> the number of set bits in the numeric value stored in <code>*this</code><br>
|
||||
<strong>Note:</strong> same as <code>this->to_bit_indices().size()</code>, but is probably implemented more efficiently<br>
|
||||
<strong>Rationale:</strong> size of set-bit index list
|
||||
|
||||
<dt><code>bool any() const;</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> whether any bits in the numeric value stored in <code>*this</code> are set<br>
|
||||
<strong>Note:</strong> same as <code>this->count() > 0</code>, but is probably implemented more efficiently<br>
|
||||
<strong>Rationale:</strong> reversed zero test
|
||||
|
||||
<dt><code>bool none() const;</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> whether no bits in the numeric value stored in <code>*this</code> are set<br>
|
||||
<strong>Note:</strong> same as <code>!this->any()</code><br>
|
||||
<strong>Rationale:</strong> zero test
|
||||
|
||||
<dt><code>bool test( std::size_t i ) const;</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> whether the bit corresponding to the 2<sup><var>i</var></sup> place for the numeric value stored in <code>*this</code> is set<br>
|
||||
<strong>Rationale:</strong> inspect a specific bit
|
||||
|
||||
<dt><code>big_whole tests( std::size_t from, std::size_t to ) const;</code>
|
||||
<dd>
|
||||
<strong>Precondition:</strong> <code>from <= to</code><br>
|
||||
<strong>Returns:</strong> states of the bits corresponding between the 2<sup><var>from</var></sup> and 2<sup><var>to</var></sup> places (inclusive) for the numeric value stored in <code>*this</code>; equivalent to <code>(*this % 2<sup><var>to</var> + 1</sup>) / 2<sup><var>from</var></sup></code><br>
|
||||
<strong>Rationale:</strong> inspect a set of bits at once
|
||||
|
||||
<dt><code>big_whole reverse( std::size_t cap ) const;</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> a copy of the lowest <var>cap</var> + 1 bits (<i>i.e.</i> apply a modulo 2<sup><var>cap</var> + 1</sup>) of <code>*this</code> in reverse order (<i>e.g.</i> for <var>n</var> ranging from 0 to <var>cap</var>, the bit in the 2<sup><var>n</var></sup> place now appears in the 2<sup><var>cap</var> - <var>n</var></sup> place)<br>
|
||||
<strong>Rationale:</strong> generate bit-pattern palidromes
|
||||
|
||||
<dt><code>big_whole reverse() const;</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> 0 if <code>*this</code> represents zero; otherwise, <code>this->reverse( this->length() - 1 )</code><br>
|
||||
<strong>Rationale:</strong> shorthand for the most common case of bit-order reversal (minimal amount for all significant bits)
|
||||
|
||||
<dt><code>std::size_t search_tested_bit( std::size_t from, bool value, bool increase_indices ) const;</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> if <var>increase_indices</var> is TRUE, then <code>this->next_tested_bit( <var>from</var>, <var>value</var> )</code>, else <code>this->previous_tested_bit( <var>from</var>, <var>value</var> )</code><br>
|
||||
<strong>Rationale:</strong> most general bit-searching routine
|
||||
|
||||
<dt><code>std::size_t next_tested_bit( std::size_t from, bool value ) const;</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> the index of the first bit after <var>from</var> that is equal to <var>value</var>, 0 if such a bit cannot be found<br>
|
||||
<strong>Rationale:</strong> forward searching for a specific bit value
|
||||
|
||||
<dt><code>std::size_t previous_tested_bit( std::size_t from, bool value ) const;</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> the index of the first bit before <var>from</var> that is equal to <var>value</var>, the maximum <code>std::size_t</code> value if such a bit cannot be found<br>
|
||||
<strong>Rationale:</strong> backward searching for a specific bit value
|
||||
|
||||
<dt><code>std::size_t next_set_bit( std::size_t from ) const;</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> <code>this->next_tested_bit( <var>from</var>, true )</code><br>
|
||||
<strong>Rationale:</strong> forward searching for a TRUE bit
|
||||
|
||||
<dt><code>std::size_t next_reset_bit( std::size_t from ) const;</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> <code>this->next_tested_bit( <var>from</var>, false )</code><br>
|
||||
<strong>Rationale:</strong> forward searching for a FALSE bit
|
||||
|
||||
<dt><code>std::size_t previous_set_bit( std::size_t from ) const;</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> <code>this->previous_tested_bit( <var>from</var>, true )</code><br>
|
||||
<strong>Rationale:</strong> backward searching for a TRUE bit
|
||||
|
||||
<dt><code>std::size_t previous_reset_bit( std::size_t from ) const;</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> <code>this->previous_tested_bit( <var>from</var>, false )</code><br>
|
||||
<strong>Rationale:</strong> backward searching for a FALSE bit
|
||||
|
||||
<dt><code>int compare( big_whole const &other ) const;</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> zero if <code>*this</code> and <var>other</var> represent the same value, a positive number if <code>*this</code> is the greater, and a negative number if <code>*this</code> is the lesser (<i>i.e.</i> <var>other</var> is the greater)<br>
|
||||
<strong>Rationale:</strong> equality/ordered comparison core routine
|
||||
|
||||
<dt><code>bool intersects( big_whole const &other ) const;</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> whether there is at least one bit place that is set in both <code>*this</code> and <var>other</var><br>
|
||||
<strong>Note:</strong> same as <code>(*this & <var>other</var>) != 0</code>, but is probably implemented more efficiently<br>
|
||||
<strong>Rationale:</strong> simple bit-set intersection test
|
||||
|
||||
<dt><code>std::size_t scale() const;</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> zero if <code>*this</code> represents zero, otherwise the smallest nonnegative integer <var>x</var> such that <code>*this >> <var>x</var></code> is odd<br>
|
||||
<strong>Rationale:</strong> find number of trailing zeroes
|
||||
</dl>
|
||||
|
||||
<h4><a name="c_bw_mutate">Mutating Member Functions</a></h4>
|
||||
|
||||
<dl>
|
||||
<dt><code>void swap( big_whole &other );</code>
|
||||
<dd>
|
||||
<strong>Effects:</strong> <code>*this</code> takes ownership of <var>other</var>'s state; <var>other</var> takes ownership of the state <code>*this</code> had before this member function call<br>
|
||||
<strong>Rationale:</strong> standard class-type-specific swap member-function refinement
|
||||
|
||||
<dt><code>void assign( big_whole const &other );</code>
|
||||
<dd>
|
||||
<strong>Effects:</strong> sets the internal state to a copy of <var>other</var>'s state<br>
|
||||
<strong>Postconditions:</strong> <code>*this == <var>other</var></code><br>
|
||||
<strong>Rationale:</strong> member-function repackaging of copy operation
|
||||
|
||||
<dt><code>void assign( uintmax_t v );</code>
|
||||
<dd>
|
||||
<strong>Effects:</strong> sets the internal state to give a numeric value equivalent to <var>v</var><br>
|
||||
<strong>Postconditions:</strong> <code>*this == big_whole( <var>v</var> )</code><br>
|
||||
<strong>Rationale:</strong> converting copy operation
|
||||
|
||||
<dt><code>void reconfigure( std::valarray<bool> const &b );</code>
|
||||
<dd>
|
||||
<strong>Effects:</strong> sets the internal state to give a numeric value that has the bit pattern given by <var>b</var><br>
|
||||
<strong>Postconditions:</strong> <code>*this == big_whole( <var>b</var> )</code><br>
|
||||
<strong>Rationale:</strong> re-configuring copy operation with a bit pattern
|
||||
|
||||
<dt><code>void reconfigure( std::valarray<std::size_t> const &i );</code>
|
||||
<dd>
|
||||
<strong>Effects:</strong> sets the internal state to give a numeric value that has only the bit positions given by <var>i</var> set<br>
|
||||
<strong>Postconditions:</strong> <code>*this == big_whole( <var>i</var> )</code><br>
|
||||
<strong>Rationale:</strong> re-configuring copy operation with a list of the set bits
|
||||
|
||||
<dt><code>void reset();</code><br>
|
||||
<code>void reset( std::size_t from, std::size_t to );</code><br>
|
||||
<code>void reset( std::size_t i );</code>
|
||||
<dd>
|
||||
<strong>Effects:</strong> changes the internal state so some set of the bits of the represented value become zero; the zero-argument version affects all bits, the two-argument version affects the bits between the 2<sup><var>from</var></sup> and 2<sup><var>to</var></sup> places (inclusive), the one-argument version affects the bit at the 2<sup><var>i</var></sup> place<br>
|
||||
<strong>Rationale:</strong> specific-bit(s) assignment, unsetting
|
||||
|
||||
<dt><code>void set( std::size_t from, std::size_t to );</code><br>
|
||||
<code>void set( std::size_t i );</code>
|
||||
<dd>
|
||||
<strong>Effects:</strong> changes the internal state so some set of the bits of the represented value become one; the two-argument version affects the bits between the 2<sup><var>from</var></sup> and 2<sup><var>to</var></sup> places (inclusive), the one-argument version affects the bit at the 2<sup><var>i</var></sup> place<br>
|
||||
<strong>Rationale:</strong> specific-bit(s) assignment, setting
|
||||
|
||||
<dt><code>void flip( std::size_t from, std::size_t to );</code><br>
|
||||
<code>void flip( std::size_t i );</code>
|
||||
<dd>
|
||||
<strong>Effects:</strong> changes the internal state so some set of the bits of the represented value become inverted (zeroes become ones, ones become zeroes); the two-argument version affects the bits between the 2<sup><var>from</var></sup> and 2<sup><var>to</var></sup> places (inclusive), the one-argument version affects the bit at the 2<sup><var>i</var></sup> place<br>
|
||||
<strong>Rationale:</strong> specific-bit(s) assignment, inverting
|
||||
|
||||
<dt><code>void bit_assign( std::size_t from, std::size_t to, bool value );</code><br>
|
||||
<code>void bit_assign( std::size_t i, bool value );</code>
|
||||
<dd>
|
||||
<strong>Effects:</strong> changes the internal state so some set of the bits of the represented value become <var>value</var>; the three-argument version affects the bits between the 2<sup><var>from</var></sup> and 2<sup><var>to</var></sup> places (inclusive), the two-argument version affects the bit at the 2<sup><var>i</var></sup> place<br>
|
||||
<strong>Rationale:</strong> specific-bit(s) assignment, user-defined constant value
|
||||
|
||||
<dt><code>void bits_assign( std::size_t from, std::size_t to, big_whole const &values );</code>
|
||||
<dd>
|
||||
<strong>Precondition:</strong> <code>from <= to</code><br>
|
||||
<strong>Effects:</strong> changes the internal state so the set of bits between the 2<sup><var>from</var></sup> and 2<sup><var>to</var></sup> places (inclusive) of the represented value become (the lowest <var>to</var> - <var>from</var> + 1 bits of) <var>values</var>; in other words, <code>*this ^= (((*this / 2<sup><var>from</var></sup>) ^ <var>values</var>) * 2<sup><var>from</var></sup>) % 2<sup><var>to</var> + 1</sup></code><br>
|
||||
<strong>Rationale:</strong> specific-bit(s) assignment, user-defined specific values
|
||||
|
||||
<dt><code>void not_self();</code>
|
||||
<dd>
|
||||
<strong>Effects:</strong> changes the internal state so a value of zero becomes one and any nonzero value becomes zero<br>
|
||||
<strong>Rationale:</strong> doing <code>x = !x</code> without the copying
|
||||
|
||||
<dt><code>void same_self();</code>
|
||||
<dd>
|
||||
<strong>Effects:</strong> none (may secretly optimize storage....)<br>
|
||||
<strong>Rationale:</strong> doing <code>x = +x</code> without the copying
|
||||
|
||||
<dt><code>void negate_self();</code>
|
||||
<dd>
|
||||
<strong>Effects:</strong> changes the internal value to its additive inverse<br>
|
||||
<strong>Throws:</strong> <code>std::range_error</code> if the inverse cannot be represented<br>
|
||||
<strong>Note:</strong> since this type can only store nonnegative values, all stored positive values will throw; the sole representable nonpositive value, zero, is the only one that does not throw (but it transforms to itself)<br>
|
||||
<strong>Rationale:</strong> doing <code>x = -x</code> without the copying
|
||||
</dl>
|
||||
|
||||
<h4><a name="c_bw_ops">Operators</a></h4>
|
||||
|
||||
<dl>
|
||||
<dt><code>big_whole & operator =( big_whole const &rhs );</code>
|
||||
<dd>
|
||||
<strong>Effects:</strong> calls <code>this->assign( <var>rhs</var> )</code><br>
|
||||
<strong>Returns:</strong> <code>*this</code><br>
|
||||
<strong>Rationale:</strong> standard copy-assignment operation
|
||||
|
||||
<dt><code>operator <em>bool_type</em>() const;</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> if <code>this->any()</code>, then some non-zero/non-null/true value, otherwise a zero/null/false value<br>
|
||||
<strong>Note:</strong> <code><em>bool_type</em></code> is an unspecified built-in type that supports Boolean semantics and should have a minimum of common non-Boolean semantics (this probably excludes <code>bool</code> since that type [mistakenly?] fully participates in integral and/or numeric operations)<br>
|
||||
<strong>Rationale:</strong> Boolean (output) conversion
|
||||
|
||||
<dt><code>big_whole & operator ++();</code>
|
||||
<dd>
|
||||
<strong>Effects:</strong> increases the internal value by one<br>
|
||||
<strong>Returns:</strong> <code>*this</code><br>
|
||||
<strong>Rationale:</strong> pre-increment
|
||||
|
||||
<dt><code>big_whole & operator --();</code>
|
||||
<dd>
|
||||
<strong>Effects:</strong> decreases the internal value by one<br>
|
||||
<strong>Returns:</strong> <code>*this</code><br>
|
||||
<strong>Throws:</strong> <code>std::range_error</code> if the internal value is currently zero (because the next lower value, -1, cannot be represented by this type)<br>
|
||||
<strong>Rationale:</strong> pre-decrement
|
||||
</dl>
|
||||
|
||||
<h3><a name="c_nm_funcs">Non-Member Functions & Operators</a></h3>
|
||||
|
||||
<blockquote><pre>
|
||||
void
|
||||
boost::math::swap( boost::math::big_whole &a, boost::math::big_whole &b );
|
||||
</pre></blockquote>
|
||||
|
||||
<p><strong>Effects:</strong> calls <code><var>a</var>.swap( <var>b</var> )</code></p>
|
||||
|
||||
<p><strong>Postconditions:</strong> <var>a</var> has the state that <var>b</var> had before the function call; <var>b</var> has the state <var>a</var> had before the function call</p>
|
||||
|
||||
<p><strong>Rationale:</strong> exchanges the state of two objects; can use in standard(-like) algorithms with ADL</p>
|
||||
|
||||
<blockquote><pre>
|
||||
boost::math::big_whole
|
||||
boost::math::and_not( boost::math::big_whole const &a, boost::math::big_whole const &b );
|
||||
</pre></blockquote>
|
||||
|
||||
<p><strong>Returns:</strong> an object with a set of bits such that a particular bit is set only if the corresponding bit in <var>a</var> is set and the corresponding bit in <var>b</var> is <em>un</em>set</p>
|
||||
|
||||
<p><strong>Note:</strong> <code>friend</code>ly with <code>big_whole</code></p>
|
||||
|
||||
<p><strong>Rationale:</strong> a method to compute <code><var>a</var> & ~<var>b</var></code> without the need for the bitwise-complement operator (<code>big_whole</code> cannot have that operator because it gives a result approaching infinity for any input)</p>
|
||||
|
||||
<blockquote><pre>
|
||||
boost::math::big_whole
|
||||
boost::math::abs( boost::math::big_whole const &w );
|
||||
</pre></blockquote>
|
||||
|
||||
<p><strong>Returns:</strong> the absolute value of <var>w</var></p>
|
||||
|
||||
<p><strong>Note:</strong> since <code>big_whole</code> only supports nonnegative values, this function always returns a copy of <var>w</var></p>
|
||||
|
||||
<p><strong>Rationale:</strong> finding the absolute value with a function profile used in the standard</p>
|
||||
|
||||
<blockquote><pre>
|
||||
short
|
||||
boost::math::sgn( boost::math::big_whole const &w );
|
||||
</pre></blockquote>
|
||||
|
||||
<p><strong>Returns:</strong> -1, 0, or +1 depending on <var>w</var> being negative, zero, or positive, respectively</p>
|
||||
|
||||
<p><strong>Note:</strong> since <code>big_whole</code> only supports nonnegative values, this function only returns zero or one</p>
|
||||
|
||||
<p><strong>Rationale:</strong> finding the sign of a number</p>
|
||||
|
||||
<h4><a name="c_nm_ops">Operators</a></h4>
|
||||
|
||||
<dl>
|
||||
<dt><code>boost::math::big_whole boost::math::operator !( boost::math::big_whole const &w );</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> 1 if <var>w</var> represents zero, 0 otherwise<br>
|
||||
<strong>Note:</strong> calls <code>big_whole::not_self()</code>
|
||||
|
||||
<dt><code>boost::math::big_whole boost::math::operator +( boost::math::big_whole const &w );</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> <var>w</var><br>
|
||||
<strong>Note:</strong> calls <code>big_whole::same_self()</code>
|
||||
|
||||
<dt><code>boost::math::big_whole boost::math::operator -( boost::math::big_whole const &w );</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> the additive inverse of <var>w</var>, if it is representable<br>
|
||||
<strong>Throws:</strong> <code>std::range_error</code> if the inverse cannot be represented (which is true for any nonzero value since <code>big_whole</code> can only store nonnegative values)<br>
|
||||
<strong>Note:</strong> calls <code>big_whole::negate_self()</code>
|
||||
|
||||
<dt><code>boost::math::big_whole boost::math::operator ++( boost::math::big_whole &w, int );</code><br>
|
||||
<code>boost::math::big_whole boost::math::operator --( boost::math::big_whole &w, int );</code>
|
||||
<dd>
|
||||
<strong>Effects:</strong> for operator <code><var>$$</var></code>, calls <code><var>w</var>.operator <var>$$</var>()</code><br>
|
||||
<strong>Returns:</strong> a copy of <var>w</var> before the change
|
||||
|
||||
<dt><code>bool boost::math::operator ==( boost::math::big_whole const &lhs, boost::math::big_whole const &rhs );</code><br>
|
||||
<code>bool boost::math::operator !=( boost::math::big_whole const &lhs, boost::math::big_whole const &rhs );</code><br>
|
||||
<code>bool boost::math::operator <( boost::math::big_whole const &lhs, boost::math::big_whole const &rhs );</code><br>
|
||||
<code>bool boost::math::operator >( boost::math::big_whole const &lhs, boost::math::big_whole const &rhs );</code><br>
|
||||
<code>bool boost::math::operator <=( boost::math::big_whole const &lhs, boost::math::big_whole const &rhs );</code><br>
|
||||
<code>bool boost::math::operator >=( boost::math::big_whole const &lhs, boost::math::big_whole const &rhs );</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> whether the given relation applies to <var>lhs</var> and <var>rhs</var><br>
|
||||
<strong>Note:</strong> calls <code>big_whole::compare()</code>
|
||||
|
||||
<dt><code>boost::math::big_whole boost::math::operator &( boost::math::big_whole const &lhs, boost::math::big_whole const &rhs );</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> an object produced by a bitwise-AND combination of the bits in <var>lhs</var> and <var>rhs</var> (a bit in the result is set if both the corresponding bits in <var>lhs</var> and <var>rhs</var> are set, otherwise the bit is unset)<br>
|
||||
<strong>Note:</strong> <code>friend</code>ly with <code>big_whole</code>
|
||||
|
||||
<dt><code>boost::math::big_whole boost::math::operator |( boost::math::big_whole const &lhs, boost::math::big_whole const &rhs );</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> an object produced by a bitwise-OR combination of the bits in <var>lhs</var> and <var>rhs</var> (a bit in the result is set if at least one of the corresponding bits in <var>lhs</var> or <var>rhs</var> is set, otherwise the bit is unset)<br>
|
||||
<strong>Note:</strong> <code>friend</code>ly with <code>big_whole</code>
|
||||
|
||||
<dt><code>boost::math::big_whole boost::math::operator ^( boost::math::big_whole const &lhs, boost::math::big_whole const &rhs );</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> an object produced by a bitwise-XOR combination of the bits in <var>lhs</var> and <var>rhs</var> (a bit in the result is set if the corresponding bits in <var>lhs</var> and <var>rhs</var> differ, otherwise the bit is unset)<br>
|
||||
<strong>Note:</strong> <code>friend</code>ly with <code>big_whole</code>
|
||||
|
||||
<dt><code>boost::math::big_whole boost::math::operator >>( boost::math::big_whole const &value, boost::math::big_whole const &shift );</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> floor( <var>value</var> / 2<sup><var>shift</var></sup> )<br>
|
||||
<strong>Throws:</strong> <code>std::length_error</code> if <var>shift</var> cannot be completely represented by a <code>std::size_t</code> object<br>
|
||||
<strong>Note:</strong> <code>friend</code>ly with <code>big_whole</code>
|
||||
|
||||
<dt><code>boost::math::big_whole boost::math::operator <<( boost::math::big_whole const &value, boost::math::big_whole const &shift );</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> <var>value</var> * 2<sup><var>shift</var></sup><br>
|
||||
<strong>Throws:</strong> <code>std::length_error</code> if <var>shift</var> cannot be completely represented by a <code>std::size_t</code> object; <code>std::overflow_error</code> if any of the set bits in the returned object would have a bit-place index beyond <code>std::size_t</code>'s maximum value<br>
|
||||
<strong>Note:</strong> <code>friend</code>ly with <code>big_whole</code>
|
||||
|
||||
<dt><code>boost::math::big_whole boost::math::operator +( boost::math::big_whole const &augend, boost::math::big_whole const &addend );</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> the sum of <var>augend</var> and <var>addend</var><br>
|
||||
<strong>Note:</strong> <code>friend</code>ly with <code>big_whole</code>
|
||||
|
||||
<dt><code>boost::math::big_whole boost::math::operator -( boost::math::big_whole const &minuend, boost::math::big_whole const &subtrahend );</code>
|
||||
<dd>
|
||||
<strong>Returns:</strong> the difference between <var>minuend</var> and <var>subtrahend</var><br>
|
||||
<strong>Throws:</strong> <code>std::range_error</code> if the difference cannot be represented, <i>i.e.</i> the <var>minuend</var> is less than the <var>subtrahend</var><br>
|
||||
<strong>Note:</strong> <code>friend</code>ly with <code>big_whole</code>
|
||||
|
||||
<dt><code>boost::math::big_whole & boost::math::operator &=( boost::math::big_whole &lhs, boost::math::big_whole const &rhs );</code><br>
|
||||
<code>boost::math::big_whole & boost::math::operator |=( boost::math::big_whole &lhs, boost::math::big_whole const &rhs );</code><br>
|
||||
<code>boost::math::big_whole & boost::math::operator ^=( boost::math::big_whole &lhs, boost::math::big_whole const &rhs );</code><br>
|
||||
<code>boost::math::big_whole & boost::math::operator >>=( boost::math::big_whole &lhs, boost::math::big_whole const &rhs );</code><br>
|
||||
<code>boost::math::big_whole & boost::math::operator <<=( boost::math::big_whole &lhs, boost::math::big_whole const &rhs );</code><br>
|
||||
<code>boost::math::big_whole & boost::math::operator +=( boost::math::big_whole &lhs, boost::math::big_whole const &rhs );</code><br>
|
||||
<code>boost::math::big_whole & boost::math::operator -=( boost::math::big_whole &lhs, boost::math::big_whole const &rhs );</code>
|
||||
<dd>
|
||||
<strong>Effects:</strong> for <code>operator <var>$$</var>=</code>, calls <code><var>lhs</var> = <var>lhs</var> <var>$$</var> <var>rhs</var></code><br>
|
||||
<strong>Returns:</strong> <var>lhs</var>
|
||||
</dl>
|
||||
|
||||
<h3><a name="c_limits">Numeric Limits</a></h3>
|
||||
|
||||
<p>A <code>std::numeric_limits< boost::math::big_whole ></code> specialization is provided, with the appropiate entries filled.</p>
|
||||
|
||||
<h2><a name="additional">Additional Routines</a></h2>
|
||||
|
||||
<p>The <cite><a href="../../../boost/math/big_whole.hpp">boost/math/big_whole.hpp</a></cite> header includes the core header and contains the declarations for routines that work with unlimited-length nonnegative integers but are not needed for pure computation contexts (like the input and output routines).</p>
|
||||
|
||||
<h3><a name="a_header">Header Synopsis</a></h3>
|
||||
|
||||
<blockquote><pre>
|
||||
#include <iosfwd> <i>// for std::basic_ostream and std::basic_istream (declarations)</i>
|
||||
#include <string> <i>// for std::basic_string</i>
|
||||
#include <boost/math/big_whole_core.hpp> <i>// for boost::math::big_whole</i>
|
||||
|
||||
namespace boost
|
||||
{
|
||||
namespace math
|
||||
{
|
||||
|
||||
template < typename Ch, class Tr, class Al >
|
||||
std::basic_string<Ch, Tr, Al> bigwhole_to_bitstring( big_whole const &w, Ch zero_char, Ch one_char );
|
||||
template < typename Ch, class Tr, class Al >
|
||||
void copy_bigwhole_to_bitstring( std::basic_string<Ch, Tr, Al> &s, big_whole const &w, Ch zero_char, Ch one_char );
|
||||
|
||||
template < typename Ch, class Tr >
|
||||
std::basic_ostream<Ch, Tr> & operator <<( std::basic_ostream<Ch, Tr> &os, big_whole const &w );
|
||||
|
||||
template < typename Ch, class Tr >
|
||||
std::basic_istream<Ch, Tr> & operator >>( std::basic_istream<Ch, Tr> &is, big_whole &w );
|
||||
|
||||
}
|
||||
}
|
||||
</pre></blockquote>
|
||||
|
||||
<h3><a name="a_bit_conv">Bit-String Conversion Functions</a></h3>
|
||||
|
||||
<blockquote><pre>
|
||||
template < typename Ch, class Tr, class Al >
|
||||
std::basic_string<Ch, Tr, Al>
|
||||
boost::math::bigwhole_to_bitstring( boost::math::big_whole const &w, Ch zero_char, Ch one_char );
|
||||
</pre></blockquote>
|
||||
|
||||
<p><strong>Returns:</strong> a minimal-length string for the base-2 representation of <var>w</var>, where <var>zero_char</var> and <var>one_char</var> are used to represent the unset and set bits, respectively</p>
|
||||
|
||||
<p><strong>Rationale:</strong> provides a base-2 representation of a <code>big_whole</code> object which is suitable for text processing</p>
|
||||
|
||||
<blockquote><pre>
|
||||
template < typename Ch, class Tr, class Al >
|
||||
void
|
||||
boost::math::copy_bigwhole_to_bitstring
|
||||
(
|
||||
std::basic_string<Ch, Tr, Al> &s,
|
||||
boost::math::big_whole const &w,
|
||||
Ch zero_char,
|
||||
Ch one_char
|
||||
);
|
||||
</pre></blockquote>
|
||||
|
||||
<p><strong>Effects:</strong> assigns to <var>s</var> the result of <code>bigwhole_to_bitstring</code> using <var>w</var>, <var>zero_char</var>, and <var>one_char</var> as parameters</p>
|
||||
|
||||
<p><strong>Rationale:</strong> same as <code>bigwhole_to_bitstring</code>, but without the need to explicitly specify the template parameters</p>
|
||||
|
||||
<h3><a name="a_io_ops">Input & Output Operators</a></h3>
|
||||
|
||||
<blockquote><pre>
|
||||
template < typename Ch, class Tr >
|
||||
std::basic_ostream<Ch, Tr> &
|
||||
boost::math::operator <<( std::basic_ostream<Ch, Tr> &os, boost::math::big_whole const &w );
|
||||
</pre></blockquote>
|
||||
|
||||
<p><strong>Effects:</strong> writes characters, forming a string representation of the nonnegative integer <var>w</var>, to <var>os</var>; should use the standard numeric I/O options</p>
|
||||
|
||||
<p><strong>Returns:</strong> <var>os</var></p>
|
||||
|
||||
<p><strong>Rationale:</strong> enables <code>big_whole</code> objects to be written by streaming</p>
|
||||
|
||||
<blockquote><pre>
|
||||
template < typename Ch, class Tr >
|
||||
std::basic_istream<Ch, Tr> &
|
||||
boost::math::operator >>( std::basic_istream<Ch, Tr> &is, boost::math::big_whole &w );
|
||||
</pre></blockquote>
|
||||
|
||||
<p><strong>Effects:</strong> reads characters, hopefully forming a string representation of a nonnegative integer, from <var>is</var>, saving any successful result in <var>w</var>; should use the standard numeric I/O options</p>
|
||||
|
||||
<p><strong>Returns:</strong> <var>is</var></p>
|
||||
|
||||
<p><strong>Rationale:</strong> enables <code>big_whole</code> objects to be read by streaming</p>
|
||||
|
||||
<h2><a name="refer">References</a></h2>
|
||||
|
||||
<ul>
|
||||
<li>The arbitrary-length whole-number library core routine header: <cite><a href="../../../boost/math/big_whole_core.hpp">boost/math/big_whole_core.hpp</a></cite></li>
|
||||
<li>The arbitrary-length whole-number library extra routine header: <cite><a href="../../../boost/math/big_whole.hpp">boost/math/big_whole.hpp</a></cite></li>
|
||||
<li>Some test code: <cite><a href="../test/big_whole_test.cpp">big_whole_test.cpp</a></cite></li>
|
||||
</ul>
|
||||
|
||||
<h2><a name="credits">Credits</a></h2>
|
||||
|
||||
<h3><a name="contributors">Contributors</a></h3>
|
||||
|
||||
<dl>
|
||||
<dt><a href="../../../people/daryle_walker.html">Daryle Walker</a>
|
||||
<dd>Started the library.
|
||||
</dl>
|
||||
|
||||
<h3><a name="history">History</a></h3>
|
||||
|
||||
<dl>
|
||||
<dt>30 Jan 2004, Daryle Walker
|
||||
<dd>Initial version
|
||||
</dl>
|
||||
|
||||
<hr>
|
||||
|
||||
<p>Revised: 16 February 2004</p>
|
||||
|
||||
<p>Copyright 2004 Daryle Walker. Use, modification, and distribution are subject to the Boost Software License, Version 1.0. (See accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or a copy at <<a href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</a>>.)</p>
|
||||
</body>
|
||||
</html>
|
||||
3
doc/boost-build.jam
Normal file
@@ -0,0 +1,3 @@
|
||||
|
||||
boost-build ../../../../develop/boost/tools/build/v2 ;
|
||||
|
||||
66
doc/concepts.qbk
Normal file
@@ -0,0 +1,66 @@
|
||||
[section Using With NTL]
|
||||
|
||||
The special functions and tools in this library can be used with NTL::RR and
|
||||
to a lesser extent with NTL::quad_float. In order to do so you will need to
|
||||
apply the following patch to NTL: libs/math/tools/ntl.diff
|
||||
This patch adds trivial converting constructors to NTL::RR and NTL::quad_float,
|
||||
and forces conversions to RR to proceed via `long double` rather than `double`.
|
||||
The latter change is essential to accurately measure relative errors between
|
||||
high precision calculations (using NTL::RR) and fixed precision calculations
|
||||
(using `long double`). These occur, if for example, you are generating additional
|
||||
__lanczos's.
|
||||
|
||||
You will also need to include NTL via the header `<boost/math/tools/ntl.hpp>`
|
||||
and include that header /before/ you include any of the special function headers.
|
||||
Rationale: the header `<boost/math/tools/ntl.hpp>` includes some traits classes
|
||||
and boilerplate code (mostly runtime substitutes for numeric_limits) that are
|
||||
required by the special functions. Unfortunately, some of the stricter compilers
|
||||
require these definitions to be seen before the templates that will use them are
|
||||
parsed.
|
||||
|
||||
Finally there is a high precision __lanczos suitable for use with NTL::RR, when
|
||||
used at 1000-bit precision in libs/math/tools/ntl_rr_lanczos.hpp. The approximation
|
||||
has a theoretical precision of > 90 decimal digits, and an experimental precision
|
||||
of > 100 decimal digits. To use that approximation, just include that header, before
|
||||
any of the special function headers (if you don't use it, you'll get a slower, but
|
||||
fully generic implementation for all of the gamma-like functions).
|
||||
|
||||
[endsect]
|
||||
|
||||
[section Using With Boost.Interval]
|
||||
|
||||
There are currently problems comparing two intervals that make it hard to use
|
||||
Boost.Interval with this library. It should be just about possible to make it
|
||||
work "as is", but this needs more investigation, and a simple, easy to use solution.
|
||||
|
||||
[endsect]
|
||||
|
||||
[section Conceptual Requirements]
|
||||
|
||||
TODO.
|
||||
|
||||
See boost/math/concepts/real_concept.hpp for the current concept-architype
|
||||
test case.
|
||||
|
||||
Basically requires:
|
||||
|
||||
* The usual arithmetic operations.
|
||||
* The usual comparison operations.
|
||||
* The usual math functions (those in <cmath>).
|
||||
* Either `std::numeric_limits` support (the easy way), or a small number
|
||||
helper functions that provide the same functionality at runtime
|
||||
rather than compile time (see boost/math/tools/precision.hpp).
|
||||
* Promotion from the builtin floating point types to T, and the function
|
||||
`real_cast` that converts from T to a narrower floating point type
|
||||
(see boost/math/tools/real_cast.hpp).
|
||||
|
||||
For efficient and accurate results, a __lanczos is also highly desireable.
|
||||
You may be able to adapt an existing approximation from
|
||||
boost/math/special_functions/lanczos.hpp: you will need change
|
||||
static_cast's to lexical_cast's, and the constants to /strings/
|
||||
(in order to ensure the coefficients aren't truncated
|
||||
to long double) and then specialise lanczos_traits for type T. Otherwise
|
||||
you may have to hack libs/math/tools/lanczos_generator.cpp to find a suitable
|
||||
approximation for your type T.
|
||||
|
||||
[endsect]
|
||||
517
doc/equations/beta.xml
Normal file
@@ -0,0 +1,517 @@
|
||||
<?xml version='1.0'?>
|
||||
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN'
|
||||
'http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd'
|
||||
[<!ENTITY mathml 'http://www.w3.org/1998/Math/MathML'>]>
|
||||
<html xmlns='http://www.w3.org/1999/xhtml'>
|
||||
<head>
|
||||
<!-- MathML created with MathCast Equation Editor version 0.83 -->
|
||||
</head>
|
||||
<body>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mi>b</mi>
|
||||
<mi>e</mi>
|
||||
<mi>t</mi>
|
||||
<mi>a</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>,</mo>
|
||||
<mi>b</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mi>Γ</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>Γ</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>b</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mi>Γ</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>+</mo>
|
||||
<mi>b</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mi>b</mi>
|
||||
<mi>e</mi>
|
||||
<mi>t</mi>
|
||||
<mi>a</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>,</mo>
|
||||
<mi>b</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>+</mo>
|
||||
<mi>g</mi>
|
||||
<mo>−</mo>
|
||||
<mn>0.5</mn>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>+</mo>
|
||||
<mi>b</mi>
|
||||
<mo>+</mo>
|
||||
<mi>g</mi>
|
||||
<mo>−</mo>
|
||||
<mn>0.5</mn>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>−</mo>
|
||||
<mn>0.5</mn>
|
||||
</mrow>
|
||||
</msup>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mi>b</mi>
|
||||
<mo>+</mo>
|
||||
<mi>g</mi>
|
||||
<mo>−</mo>
|
||||
<mn>0.5</mn>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>+</mo>
|
||||
<mi>b</mi>
|
||||
<mo>+</mo>
|
||||
<mi>g</mi>
|
||||
<mo>−</mo>
|
||||
<mn>0.5</mn>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>b</mi>
|
||||
</msup>
|
||||
<msqrt>
|
||||
<mrow>
|
||||
<mfrac>
|
||||
<mi>e</mi>
|
||||
<mrow>
|
||||
<mi>b</mi>
|
||||
<mo>+</mo>
|
||||
<mi>g</mi>
|
||||
<mo>−</mo>
|
||||
<mn>0.5</mn>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</msqrt>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mi>L</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>L</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>b</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mi>L</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>c</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mi>b</mi>
|
||||
<mi>e</mi>
|
||||
<mi>t</mi>
|
||||
<mi>a</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>,</mo>
|
||||
<mi>b</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>+</mo>
|
||||
<mi>g</mi>
|
||||
<mo>−</mo>
|
||||
<mn>0.5</mn>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>+</mo>
|
||||
<mi>b</mi>
|
||||
<mo>+</mo>
|
||||
<mi>g</mi>
|
||||
<mo>−</mo>
|
||||
<mn>0.5</mn>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>−</mo>
|
||||
<mi>b</mi>
|
||||
<mo>−</mo>
|
||||
<mn>0.5</mn>
|
||||
</mrow>
|
||||
</msup>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>+</mo>
|
||||
<mi>g</mi>
|
||||
<mo>−</mo>
|
||||
<mn>0.5</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>b</mi>
|
||||
<mo>+</mo>
|
||||
<mi>g</mi>
|
||||
<mo>−</mo>
|
||||
<mn>0.5</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>+</mo>
|
||||
<mi>b</mi>
|
||||
<mo>+</mo>
|
||||
<mi>g</mi>
|
||||
<mo>−</mo>
|
||||
<mn>0.5</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mn>2</mn>
|
||||
</msup>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>b</mi>
|
||||
</msup>
|
||||
<msqrt>
|
||||
<mrow>
|
||||
<mfrac>
|
||||
<mi>e</mi>
|
||||
<mrow>
|
||||
<mi>b</mi>
|
||||
<mo>+</mo>
|
||||
<mi>g</mi>
|
||||
<mo>−</mo>
|
||||
<mn>0.5</mn>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</msqrt>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mi>L</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>L</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>b</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mi>L</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>c</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mi>b</mi>
|
||||
<mi>e</mi>
|
||||
<mi>t</mi>
|
||||
<mi>a</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>,</mo>
|
||||
<mi>b</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<mfrac>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>+</mo>
|
||||
<mi>b</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>b</mi>
|
||||
</mfrac>
|
||||
<mi>b</mi>
|
||||
<mi>e</mi>
|
||||
<mi>t</mi>
|
||||
<mi>a</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>,</mo>
|
||||
<mi>b</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mi>b</mi>
|
||||
<mi>e</mi>
|
||||
<mi>t</mi>
|
||||
<mi>a</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>,</mo>
|
||||
<mi>b</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>+</mo>
|
||||
<mi>b</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>+</mo>
|
||||
<mi>b</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mi>b</mi>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
<mi>b</mi>
|
||||
<mi>e</mi>
|
||||
<mi>t</mi>
|
||||
<mi>a</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1,</mn>
|
||||
<mi>b</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mi>i</mi>
|
||||
<mi>f</mi>
|
||||
<mspace width="1em"/>
|
||||
<mi>a</mi>
|
||||
<mo>≫</mo>
|
||||
<mi>b</mi>
|
||||
<mspace width="1em"/>
|
||||
<mi>a</mi>
|
||||
<mi>n</mi>
|
||||
<mi>d</mi>
|
||||
<mspace width="1em"/>
|
||||
<mi>a</mi>
|
||||
<mo>+</mo>
|
||||
<mi>b</mi>
|
||||
<mo>=</mo>
|
||||
<mi>a</mi>
|
||||
<mspace width="1em"/>
|
||||
<mspace width="1em"/>
|
||||
<mi>t</mi>
|
||||
<mi>h</mi>
|
||||
<mi>e</mi>
|
||||
<mi>n</mi>
|
||||
<mo>:</mo>
|
||||
<mspace width="1em"/>
|
||||
<mspace width="1em"/>
|
||||
<mi>b</mi>
|
||||
<mi>e</mi>
|
||||
<mi>t</mi>
|
||||
<mi>a</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>,</mo>
|
||||
<mi>b</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<mi>Γ</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>b</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mi>i</mi>
|
||||
<mi>f</mi>
|
||||
<mspace width="1em"/>
|
||||
<mi>a</mi>
|
||||
<mo>=</mo>
|
||||
<mn>1</mn>
|
||||
<mspace width="1em"/>
|
||||
<mspace width="1em"/>
|
||||
<mi>t</mi>
|
||||
<mi>h</mi>
|
||||
<mi>e</mi>
|
||||
<mi>n</mi>
|
||||
<mo>:</mo>
|
||||
<mspace width="1em"/>
|
||||
<mspace width="1em"/>
|
||||
<mi>b</mi>
|
||||
<mi>e</mi>
|
||||
<mi>t</mi>
|
||||
<mi>a</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>,</mo>
|
||||
<mi>b</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<mfrac>
|
||||
<mn>1</mn>
|
||||
<mi>b</mi>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<msup>
|
||||
<mi>e</mi>
|
||||
<mrow>
|
||||
<mi>l</mi>
|
||||
<mi>c</mi>
|
||||
<mo>−</mo>
|
||||
<mi>l</mi>
|
||||
<mi>a</mi>
|
||||
<mo>−</mo>
|
||||
<mi>l</mi>
|
||||
<mi>b</mi>
|
||||
</mrow>
|
||||
</msup>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mi>l</mi>
|
||||
<mi>a</mi>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mi>l</mi>
|
||||
<mi>c</mi>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>a</mi>
|
||||
</msup>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mi>l</mi>
|
||||
<mi>b</mi>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mi>l</mi>
|
||||
<mi>c</mi>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>b</mi>
|
||||
</msup>
|
||||
</mrow>
|
||||
</math>
|
||||
</body>
|
||||
</html>
|
||||
BIN
doc/equations/beta1.png
Normal file
|
After Width: | Height: | Size: 537 B |
BIN
doc/equations/beta2.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
doc/equations/beta3.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
doc/equations/beta4.png
Normal file
|
After Width: | Height: | Size: 560 B |
BIN
doc/equations/beta5.png
Normal file
|
After Width: | Height: | Size: 667 B |
BIN
doc/equations/beta6.png
Normal file
|
After Width: | Height: | Size: 631 B |
BIN
doc/equations/beta7.png
Normal file
|
After Width: | Height: | Size: 512 B |
BIN
doc/equations/beta8.png
Normal file
|
After Width: | Height: | Size: 477 B |
72
doc/equations/erf.xml
Normal file
@@ -0,0 +1,72 @@
|
||||
<?xml version='1.0'?>
|
||||
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN'
|
||||
'http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd'
|
||||
[<!ENTITY mathml 'http://www.w3.org/1998/Math/MathML'>]>
|
||||
<html xmlns='http://www.w3.org/1999/xhtml'>
|
||||
<head>
|
||||
<!-- MathML created with MathCast Equation Editor version 0.83 -->
|
||||
</head>
|
||||
<body>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mtext>erf</mtext>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<mfrac>
|
||||
<mn>2</mn>
|
||||
<mrow>
|
||||
<msqrt>
|
||||
<mi>π</mi>
|
||||
</msqrt>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
<munderover>
|
||||
<mo>∫</mo>
|
||||
<mrow>
|
||||
<mn>0</mn>
|
||||
</mrow>
|
||||
<mi>z</mi>
|
||||
</munderover>
|
||||
<msup>
|
||||
<mi>e</mi>
|
||||
<mrow>
|
||||
<mo>−</mo>
|
||||
<msup>
|
||||
<mi>t</mi>
|
||||
<mn>2</mn>
|
||||
</msup>
|
||||
</mrow>
|
||||
</msup>
|
||||
<mi>d</mi>
|
||||
<mi>t</mi>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mtext>erfc</mtext>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<mn>1</mn>
|
||||
<mo>−</mo>
|
||||
<mtext>erf</mtext>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</math>
|
||||
</body>
|
||||
</html>
|
||||
BIN
doc/equations/erf1.png
Normal file
|
After Width: | Height: | Size: 531 B |
BIN
doc/equations/erf2.png
Normal file
|
After Width: | Height: | Size: 332 B |
41
doc/equations/error.xml
Normal file
@@ -0,0 +1,41 @@
|
||||
<?xml version='1.0'?>
|
||||
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN'
|
||||
'http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd'
|
||||
[<!ENTITY mathml 'http://www.w3.org/1998/Math/MathML'>]>
|
||||
<html xmlns='http://www.w3.org/1999/xhtml'>
|
||||
<head>
|
||||
<!-- MathML created with MathCast Equation Editor version 0.83 -->
|
||||
</head>
|
||||
<body>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mi>max</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mo>|</mo>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>−</mo>
|
||||
<mi>v</mi>
|
||||
</mrow>
|
||||
<mi>a</mi>
|
||||
</mfrac>
|
||||
<mo>|</mo>
|
||||
<mo>,</mo>
|
||||
<mo>|</mo>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>−</mo>
|
||||
<mi>v</mi>
|
||||
</mrow>
|
||||
<mi>v</mi>
|
||||
</mfrac>
|
||||
<mo>|</mo>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</math>
|
||||
</body>
|
||||
</html>
|
||||
BIN
doc/equations/error1.png
Normal file
|
After Width: | Height: | Size: 452 B |
BIN
doc/equations/fraction1.png
Normal file
|
After Width: | Height: | Size: 563 B |
BIN
doc/equations/fraction2.png
Normal file
|
After Width: | Height: | Size: 517 B |
BIN
doc/equations/fraction3.png
Normal file
|
After Width: | Height: | Size: 518 B |
BIN
doc/equations/fraction4.png
Normal file
|
After Width: | Height: | Size: 602 B |
BIN
doc/equations/gamm1.png
Normal file
|
After Width: | Height: | Size: 588 B |
BIN
doc/equations/gamm2.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
doc/equations/gamm3.png
Normal file
|
After Width: | Height: | Size: 352 B |
BIN
doc/equations/gamm4.png
Normal file
|
After Width: | Height: | Size: 356 B |
BIN
doc/equations/gamm5.png
Normal file
|
After Width: | Height: | Size: 446 B |
299
doc/equations/gamma.xml
Normal file
@@ -0,0 +1,299 @@
|
||||
<?xml version='1.0'?>
|
||||
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN'
|
||||
'http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd'
|
||||
[<!ENTITY mathml 'http://www.w3.org/1998/Math/MathML'>]>
|
||||
<html xmlns='http://www.w3.org/1999/xhtml'>
|
||||
<head>
|
||||
<!-- MathML created with MathCast Equation Editor version 0.83 -->
|
||||
</head>
|
||||
<body>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mi>g</mi>
|
||||
<mi>a</mi>
|
||||
<mi>m</mi>
|
||||
<mi>m</mi>
|
||||
<mi>a</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<mi>Γ</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<munderover>
|
||||
<mo>∫</mo>
|
||||
<mrow>
|
||||
<mn>0</mn>
|
||||
</mrow>
|
||||
<mi>∞</mi>
|
||||
</munderover>
|
||||
<msup>
|
||||
<mi>t</mi>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</msup>
|
||||
<msup>
|
||||
<mi>e</mi>
|
||||
<mrow>
|
||||
<mo>−</mo>
|
||||
<mi>t</mi>
|
||||
</mrow>
|
||||
</msup>
|
||||
<mi>d</mi>
|
||||
<mi>t</mi>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mi>Γ</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<msup>
|
||||
<mi>l</mi>
|
||||
<mi>a</mi>
|
||||
</msup>
|
||||
<msup>
|
||||
<mi>e</mi>
|
||||
<mrow>
|
||||
<mo>−</mo>
|
||||
<mi>l</mi>
|
||||
</mrow>
|
||||
</msup>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<munderover>
|
||||
<mo>∑</mo>
|
||||
<mrow>
|
||||
<mn>0</mn>
|
||||
</mrow>
|
||||
<mi>∞</mi>
|
||||
</munderover>
|
||||
<mrow>
|
||||
<mfrac>
|
||||
<msup>
|
||||
<mi>l</mi>
|
||||
<mi>n</mi>
|
||||
</msup>
|
||||
<msup>
|
||||
<mi>a</mi>
|
||||
<mrow>
|
||||
<mover>
|
||||
<mi>n</mi>
|
||||
<mo>−</mo>
|
||||
</mover>
|
||||
</mrow>
|
||||
</msup>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
<mo>+</mo>
|
||||
<mfrac>
|
||||
<mn>1</mn>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>−</mo>
|
||||
<mfrac>
|
||||
<msub>
|
||||
<mi>c</mi>
|
||||
<mn>1</mn>
|
||||
</msub>
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>d</mi>
|
||||
<mn>1</mn>
|
||||
</msub>
|
||||
<mo>+</mo>
|
||||
<mfrac>
|
||||
<msub>
|
||||
<mi>c</mi>
|
||||
<mn>2</mn>
|
||||
</msub>
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>d</mi>
|
||||
<mn>2</mn>
|
||||
</msub>
|
||||
<mo>+</mo>
|
||||
<mfrac>
|
||||
<msub>
|
||||
<mi>c</mi>
|
||||
<mn>3</mn>
|
||||
</msub>
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>d</mi>
|
||||
<mn>3</mn>
|
||||
</msub>
|
||||
<mo>+</mo>
|
||||
<mo>…</mo>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>;</mo>
|
||||
<msub>
|
||||
<mi>c</mi>
|
||||
<mi>k</mi>
|
||||
</msub>
|
||||
<mo>=</mo>
|
||||
<mo>−</mo>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>+</mo>
|
||||
<mi>k</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>∧</mo>
|
||||
<msub>
|
||||
<mi>d</mi>
|
||||
<mi>k</mi>
|
||||
</msub>
|
||||
<mo>=</mo>
|
||||
<mi>a</mi>
|
||||
<mo>+</mo>
|
||||
<mi>k</mi>
|
||||
<mo>+</mo>
|
||||
<mi>l</mi>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>c</mi>
|
||||
<mi>k</mi>
|
||||
</msub>
|
||||
<mo>=</mo>
|
||||
<mo>−</mo>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>+</mo>
|
||||
<mi>k</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>,</mo>
|
||||
<msub>
|
||||
<mi>d</mi>
|
||||
<mi>k</mi>
|
||||
</msub>
|
||||
<mo>=</mo>
|
||||
<mi>a</mi>
|
||||
<mo>+</mo>
|
||||
<mi>k</mi>
|
||||
<mo>+</mo>
|
||||
<mi>l</mi>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mi>Γ</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mi>Γ</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
<mi>z</mi>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<munder>
|
||||
<mi>lim</mi>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
<mo>→</mo>
|
||||
<mn>0</mn>
|
||||
</mrow>
|
||||
</munder>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>Γ</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<mfrac>
|
||||
<mn>1</mn>
|
||||
<mi>z</mi>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mi>Γ</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mo>−</mo>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<mo>−</mo>
|
||||
<mfrac>
|
||||
<mi>π</mi>
|
||||
<mrow>
|
||||
<mi>Γ</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>sin</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>π</mi>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
</body>
|
||||
</html>
|
||||
244
doc/equations/ibeta.xml
Normal file
@@ -0,0 +1,244 @@
|
||||
<?xml version='1.0'?>
|
||||
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN'
|
||||
'http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd'
|
||||
[<!ENTITY mathml 'http://www.w3.org/1998/Math/MathML'>]>
|
||||
<html xmlns='http://www.w3.org/1999/xhtml'>
|
||||
<head>
|
||||
<!-- MathML created with MathCast Equation Editor version 0.83 -->
|
||||
</head>
|
||||
<body>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mtext>beta</mtext>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>,</mo>
|
||||
<mi>b</mi>
|
||||
<mo>,</mo>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msub>
|
||||
<mi>B</mi>
|
||||
<mi>x</mi>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>,</mo>
|
||||
<mi>b</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msubsup>
|
||||
<mo>∫</mo>
|
||||
<mrow>
|
||||
<mn>0</mn>
|
||||
</mrow>
|
||||
<mi>x</mi>
|
||||
</msubsup>
|
||||
<msup>
|
||||
<mi>t</mi>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</msup>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mn>1</mn>
|
||||
<mo>−</mo>
|
||||
<mi>t</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mrow>
|
||||
<mi>b</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</msup>
|
||||
<mi>d</mi>
|
||||
<mi>t</mi>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mtext>betac</mtext>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>,</mo>
|
||||
<mi>b</mi>
|
||||
<mo>,</mo>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<mn>1</mn>
|
||||
<mo>−</mo>
|
||||
<msub>
|
||||
<mi>B</mi>
|
||||
<mi>x</mi>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>,</mo>
|
||||
<mi>b</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msub>
|
||||
<mi>B</mi>
|
||||
<mrow>
|
||||
<mn>1</mn>
|
||||
<mo>−</mo>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>b</mi>
|
||||
<mo>,</mo>
|
||||
<mi>a</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mtext>ibeta</mtext>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>,</mo>
|
||||
<mi>b</mi>
|
||||
<mo>,</mo>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msub>
|
||||
<mi>I</mi>
|
||||
<mi>x</mi>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>,</mo>
|
||||
<mi>b</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<mfrac>
|
||||
<mn>1</mn>
|
||||
<mrow>
|
||||
<mtext>beta</mtext>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>,</mo>
|
||||
<mi>b</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
<msubsup>
|
||||
<mo>∫</mo>
|
||||
<mrow>
|
||||
<mn>0</mn>
|
||||
</mrow>
|
||||
<mi>x</mi>
|
||||
</msubsup>
|
||||
<msup>
|
||||
<mi>t</mi>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</msup>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mn>1</mn>
|
||||
<mo>−</mo>
|
||||
<mi>t</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mrow>
|
||||
<mi>b</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</msup>
|
||||
<mi>d</mi>
|
||||
<mi>t</mi>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mtext>ibetac</mtext>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>,</mo>
|
||||
<mi>b</mi>
|
||||
<mo>,</mo>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<mn>1</mn>
|
||||
<mo>−</mo>
|
||||
<msub>
|
||||
<mi>I</mi>
|
||||
<mi>x</mi>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>a</mi>
|
||||
<mo>,</mo>
|
||||
<mi>b</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msub>
|
||||
<mi>I</mi>
|
||||
<mrow>
|
||||
<mn>1</mn>
|
||||
<mo>−</mo>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>b</mi>
|
||||
<mo>,</mo>
|
||||
<mi>a</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</math>
|
||||
</body>
|
||||
</html>
|
||||
BIN
doc/equations/ibeta1.png
Normal file
|
After Width: | Height: | Size: 697 B |
BIN
doc/equations/ibeta2.png
Normal file
|
After Width: | Height: | Size: 532 B |
BIN
doc/equations/ibeta3.png
Normal file
|
After Width: | Height: | Size: 788 B |
BIN
doc/equations/ibeta4.png
Normal file
|
After Width: | Height: | Size: 536 B |
1076
doc/equations/igamma.xml
Normal file
BIN
doc/equations/igamma1.png
Normal file
|
After Width: | Height: | Size: 666 B |
BIN
doc/equations/igamma10.png
Normal file
|
After Width: | Height: | Size: 686 B |
BIN
doc/equations/igamma11.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
doc/equations/igamma11b.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
doc/equations/igamma12.png
Normal file
|
After Width: | Height: | Size: 795 B |
BIN
doc/equations/igamma13.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
doc/equations/igamma2.png
Normal file
|
After Width: | Height: | Size: 698 B |
BIN
doc/equations/igamma3.png
Normal file
|
After Width: | Height: | Size: 884 B |
BIN
doc/equations/igamma4.png
Normal file
|
After Width: | Height: | Size: 854 B |
BIN
doc/equations/igamma5.png
Normal file
|
After Width: | Height: | Size: 361 B |
BIN
doc/equations/igamma6.png
Normal file
|
After Width: | Height: | Size: 392 B |
BIN
doc/equations/igamma7.png
Normal file
|
After Width: | Height: | Size: 618 B |
BIN
doc/equations/igamma8.png
Normal file
|
After Width: | Height: | Size: 966 B |
BIN
doc/equations/igamma9.png
Normal file
|
After Width: | Height: | Size: 984 B |
797
doc/equations/lanczos.xml
Normal file
@@ -0,0 +1,797 @@
|
||||
<?xml version='1.0'?>
|
||||
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN'
|
||||
'http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd'
|
||||
[<!ENTITY mathml 'http://www.w3.org/1998/Math/MathML'>]>
|
||||
<html xmlns='http://www.w3.org/1999/xhtml'>
|
||||
<head>
|
||||
<!-- MathML created with MathCast Equation Editor version 0.83 -->
|
||||
</head>
|
||||
<body>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mi>Γ</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msqrt>
|
||||
<mrow>
|
||||
<mn>2</mn>
|
||||
<mi>π</mi>
|
||||
</mrow>
|
||||
</msqrt>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
<mo>+</mo>
|
||||
<mi>g</mi>
|
||||
<mo>+</mo>
|
||||
<mn>0.5</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
<mo>+</mo>
|
||||
<mn>0.5</mn>
|
||||
</mrow>
|
||||
</msup>
|
||||
<msup>
|
||||
<mi>e</mi>
|
||||
<mrow>
|
||||
<mo>−</mo>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
<mo>+</mo>
|
||||
<mi>g</mi>
|
||||
<mo>+</mo>
|
||||
<mn>0.5</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</msup>
|
||||
<msub>
|
||||
<mi>S</mi>
|
||||
<mi>g</mi>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>S</mi>
|
||||
<mi>g</mi>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<mo>[</mo>
|
||||
<mfrac>
|
||||
<mn>1</mn>
|
||||
<mn>2</mn>
|
||||
</mfrac>
|
||||
<msub>
|
||||
<mi>a</mi>
|
||||
<mn>0</mn>
|
||||
</msub>
|
||||
<mo>+</mo>
|
||||
<msub>
|
||||
<mi>a</mi>
|
||||
<mn>1</mn>
|
||||
</msub>
|
||||
<mfrac>
|
||||
<mi>z</mi>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
<mo>+</mo>
|
||||
<msub>
|
||||
<mi>a</mi>
|
||||
<mn>2</mn>
|
||||
</msub>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
<mo>+</mo>
|
||||
<mn>2</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
<mo>+</mo>
|
||||
<mo>…</mo>
|
||||
<mo>]</mo>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>a</mi>
|
||||
<mi>k</mi>
|
||||
</msub>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>k</mi>
|
||||
</msup>
|
||||
<msqrt>
|
||||
<mrow>
|
||||
<mfrac>
|
||||
<mn>2</mn>
|
||||
<mi>π</mi>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</msqrt>
|
||||
<msup>
|
||||
<mi>e</mi>
|
||||
<mi>g</mi>
|
||||
</msup>
|
||||
<mi>k</mi>
|
||||
<munderover>
|
||||
<mo>∑</mo>
|
||||
<mrow>
|
||||
<mi>j</mi>
|
||||
<mo>=</mo>
|
||||
<mn>0</mn>
|
||||
</mrow>
|
||||
<mi>k</mi>
|
||||
</munderover>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>j</mi>
|
||||
</msup>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>k</mi>
|
||||
<mo>+</mo>
|
||||
<mi>j</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>!</mo>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>k</mi>
|
||||
<mo>−</mo>
|
||||
<mi>j</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>!</mo>
|
||||
<mi>j</mi>
|
||||
<mo>!</mo>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mfrac>
|
||||
<mi>e</mi>
|
||||
<mrow>
|
||||
<mi>j</mi>
|
||||
<mo>+</mo>
|
||||
<mi>g</mi>
|
||||
<mo>+</mo>
|
||||
<mfrac>
|
||||
<mn>1</mn>
|
||||
<mn>2</mn>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mrow>
|
||||
<mi>j</mi>
|
||||
<mo>+</mo>
|
||||
<mfrac>
|
||||
<mn>1</mn>
|
||||
<mn>2</mn>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</msup>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mi>Γ</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<mfrac>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
<mo>+</mo>
|
||||
<mi>g</mi>
|
||||
<mo>−</mo>
|
||||
<mn>0.5</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
<mo>−</mo>
|
||||
<mn>0.5</mn>
|
||||
</mrow>
|
||||
</msup>
|
||||
<msup>
|
||||
<mi>e</mi>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
<mo>+</mo>
|
||||
<mi>g</mi>
|
||||
<mo>−</mo>
|
||||
<mn>0.5</mn>
|
||||
</mrow>
|
||||
</msup>
|
||||
</mfrac>
|
||||
<msub>
|
||||
<mi>L</mi>
|
||||
<mi>g</mi>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>;</mo>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>L</mi>
|
||||
<mi>g</mi>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<msub>
|
||||
<mi>C</mi>
|
||||
<mn>0</mn>
|
||||
</msub>
|
||||
<mo>+</mo>
|
||||
<munderover>
|
||||
<mo>∑</mo>
|
||||
<mrow>
|
||||
<mi>k</mi>
|
||||
<mo>=</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mi>N</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</munderover>
|
||||
<mfrac>
|
||||
<msub>
|
||||
<mi>C</mi>
|
||||
<mi>N</mi>
|
||||
</msub>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
<mo>+</mo>
|
||||
<mi>k</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>D</mi>
|
||||
<mrow>
|
||||
<mi>i</mi>
|
||||
<mi>j</mi>
|
||||
</mrow>
|
||||
</msub>
|
||||
<mo>=</mo>
|
||||
<mo>{</mo>
|
||||
<mtable>
|
||||
<mtr>
|
||||
<mtd>
|
||||
<mn>0</mn>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mi>i</mi>
|
||||
<mi>f</mi>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mi>i</mi>
|
||||
<mo>≠</mo>
|
||||
<mi>j</mi>
|
||||
</mtd>
|
||||
</mtr>
|
||||
<mtr>
|
||||
<mtd>
|
||||
<mn>1</mn>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mi>i</mi>
|
||||
<mi>f</mi>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mi>i</mi>
|
||||
<mo>=</mo>
|
||||
<mi>j</mi>
|
||||
<mo>=</mo>
|
||||
<mn>0</mn>
|
||||
</mtd>
|
||||
</mtr>
|
||||
<mtr>
|
||||
<mtd>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mi>i</mi>
|
||||
<mi>f</mi>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mi>i</mi>
|
||||
<mo>=</mo>
|
||||
<mi>j</mi>
|
||||
<mo>=</mo>
|
||||
<mn>1</mn>
|
||||
</mtd>
|
||||
</mtr>
|
||||
<mtr>
|
||||
<mtd>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>D</mi>
|
||||
<mrow>
|
||||
<mi>i</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1,</mn>
|
||||
<mi>i</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</msub>
|
||||
<mn>2</mn>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mn>2</mn>
|
||||
<mi>i</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mi>i</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mspace width="1em"/>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mi>o</mi>
|
||||
<mi>t</mi>
|
||||
<mi>h</mi>
|
||||
<mi>e</mi>
|
||||
<mi>r</mi>
|
||||
<mi>w</mi>
|
||||
<mi>i</mi>
|
||||
<mi>s</mi>
|
||||
<mi>e</mi>
|
||||
</mtd>
|
||||
</mtr>
|
||||
</mtable>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>B</mi>
|
||||
<mrow>
|
||||
<mi>i</mi>
|
||||
<mo>,</mo>
|
||||
<mi>j</mi>
|
||||
</mrow>
|
||||
</msub>
|
||||
<mo>=</mo>
|
||||
<mo>{</mo>
|
||||
<mtable>
|
||||
<mtr>
|
||||
<mtd>
|
||||
<mn>1</mn>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mi>i</mi>
|
||||
<mi>f</mi>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mi>i</mi>
|
||||
<mo>=</mo>
|
||||
<mn>0</mn>
|
||||
</mtd>
|
||||
</mtr>
|
||||
<mtr>
|
||||
<mtd>
|
||||
<mo>−</mo>
|
||||
<msup>
|
||||
<mn>1</mn>
|
||||
<mrow>
|
||||
<mi>j</mi>
|
||||
<mo>−</mo>
|
||||
<mi>i</mi>
|
||||
</mrow>
|
||||
</msup>
|
||||
<mi>X</mi>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mi>i</mi>
|
||||
<mi>f</mi>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mi>i</mi>
|
||||
<mo>></mo>
|
||||
<mn>0</mn>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mi>j</mi>
|
||||
<mo>≥</mo>
|
||||
<mi>i</mi>
|
||||
</mtd>
|
||||
</mtr>
|
||||
<mtr>
|
||||
<mtd>
|
||||
<mn>0</mn>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mspace width="1em"/>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mi>o</mi>
|
||||
<mi>t</mi>
|
||||
<mi>h</mi>
|
||||
<mi>e</mi>
|
||||
<mi>r</mi>
|
||||
<mi>w</mi>
|
||||
<mi>i</mi>
|
||||
<mi>s</mi>
|
||||
<mi>e</mi>
|
||||
</mtd>
|
||||
</mtr>
|
||||
</mtable>
|
||||
<mspace width="1em"/>
|
||||
<mspace width="1em"/>
|
||||
<mo>;</mo>
|
||||
<mspace width="1em"/>
|
||||
<mspace width="1em"/>
|
||||
<mi>X</mi>
|
||||
<mo>=</mo>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mtable>
|
||||
<mtr>
|
||||
<mtd>
|
||||
<mi>i</mi>
|
||||
<mo>+</mo>
|
||||
<mi>j</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mtd>
|
||||
</mtr>
|
||||
<mtr>
|
||||
<mtd>
|
||||
<mi>j</mi>
|
||||
<mo>−</mo>
|
||||
<mi>i</mi>
|
||||
</mtd>
|
||||
</mtr>
|
||||
</mtable>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>C</mi>
|
||||
<mrow>
|
||||
<mi>i</mi>
|
||||
<mo>,</mo>
|
||||
<mi>j</mi>
|
||||
</mrow>
|
||||
</msub>
|
||||
<mo>=</mo>
|
||||
<mo>{</mo>
|
||||
<mtable>
|
||||
<mtr>
|
||||
<mtd>
|
||||
<mfrac>
|
||||
<mn>1</mn>
|
||||
<mn>2</mn>
|
||||
</mfrac>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mi>i</mi>
|
||||
<mi>f</mi>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mi>i</mi>
|
||||
<mo>=</mo>
|
||||
<mi>j</mi>
|
||||
<mo>=</mo>
|
||||
<mn>0</mn>
|
||||
</mtd>
|
||||
</mtr>
|
||||
<mtr>
|
||||
<mtd>
|
||||
<mn>0</mn>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mi>i</mi>
|
||||
<mi>f</mi>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mi>j</mi>
|
||||
<mo>></mo>
|
||||
<mi>i</mi>
|
||||
</mtd>
|
||||
</mtr>
|
||||
<mtr>
|
||||
<mtd>
|
||||
<mo>−</mo>
|
||||
<msup>
|
||||
<mn>1</mn>
|
||||
<mrow>
|
||||
<mi>i</mi>
|
||||
<mo>−</mo>
|
||||
<mi>j</mi>
|
||||
</mrow>
|
||||
</msup>
|
||||
<mi>S</mi>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mspace width="1em"/>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mi>o</mi>
|
||||
<mi>t</mi>
|
||||
<mi>h</mi>
|
||||
<mi>e</mi>
|
||||
<mi>r</mi>
|
||||
<mi>w</mi>
|
||||
<mi>i</mi>
|
||||
<mi>s</mi>
|
||||
<mi>e</mi>
|
||||
</mtd>
|
||||
</mtr>
|
||||
</mtable>
|
||||
<mspace width="1em"/>
|
||||
<mspace width="1em"/>
|
||||
<mo>;</mo>
|
||||
<mspace width="1em"/>
|
||||
<mspace width="1em"/>
|
||||
<mi>S</mi>
|
||||
<mo>=</mo>
|
||||
<mrow>
|
||||
<munderover>
|
||||
<mo>∑</mo>
|
||||
<mrow>
|
||||
<mi>k</mi>
|
||||
<mo>=</mo>
|
||||
<mn>0</mn>
|
||||
</mrow>
|
||||
<mi>i</mi>
|
||||
</munderover>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mtable>
|
||||
<mtr>
|
||||
<mtd>
|
||||
<mn>2</mn>
|
||||
<mi>i</mi>
|
||||
</mtd>
|
||||
</mtr>
|
||||
<mtr>
|
||||
<mtd>
|
||||
<mn>2</mn>
|
||||
<mi>k</mi>
|
||||
</mtd>
|
||||
</mtr>
|
||||
</mtable>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mtable>
|
||||
<mtr>
|
||||
<mtd>
|
||||
<mi>k</mi>
|
||||
</mtd>
|
||||
</mtr>
|
||||
<mtr>
|
||||
<mtd>
|
||||
<mi>k</mi>
|
||||
<mo>+</mo>
|
||||
<mi>j</mi>
|
||||
<mo>−</mo>
|
||||
<mi>i</mi>
|
||||
</mtd>
|
||||
</mtr>
|
||||
</mtable>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>F</mi>
|
||||
<mi>i</mi>
|
||||
</msub>
|
||||
<mo>=</mo>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mn>2</mn>
|
||||
<mi>i</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>!</mo>
|
||||
<msup>
|
||||
<mi>e</mi>
|
||||
<mrow>
|
||||
<mi>i</mi>
|
||||
<mo>+</mo>
|
||||
<mi>g</mi>
|
||||
<mo>+</mo>
|
||||
<mn>0.5</mn>
|
||||
</mrow>
|
||||
</msup>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mi>i</mi>
|
||||
<mo>!</mo>
|
||||
<msup>
|
||||
<mn>2</mn>
|
||||
<mrow>
|
||||
<mn>2</mn>
|
||||
<mi>i</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</msup>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>i</mi>
|
||||
<mo>+</mo>
|
||||
<mi>g</mi>
|
||||
<mo>+</mo>
|
||||
<mn>0.5</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mrow>
|
||||
<mi>i</mi>
|
||||
<mo>+</mo>
|
||||
<mn>0.5</mn>
|
||||
</mrow>
|
||||
</msup>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mi>Γ</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>=</mo>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
<mo>+</mo>
|
||||
<mi>g</mi>
|
||||
<mo>−</mo>
|
||||
<mn>0.5</mn>
|
||||
</mrow>
|
||||
<mi>e</mi>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
<mo>−</mo>
|
||||
<mn>0.5</mn>
|
||||
</mrow>
|
||||
</msup>
|
||||
<msub>
|
||||
<mi>L</mi>
|
||||
<mrow>
|
||||
<mi>g</mi>
|
||||
<mo>,</mo>
|
||||
<mi>e</mi>
|
||||
</mrow>
|
||||
</msub>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mo>;</mo>
|
||||
</mrow>
|
||||
</math>
|
||||
</body>
|
||||
</html>
|
||||
BIN
doc/equations/lanczos0.png
Normal file
|
After Width: | Height: | Size: 615 B |
BIN
doc/equations/lanczos0a.png
Normal file
|
After Width: | Height: | Size: 722 B |
BIN
doc/equations/lanczos0b.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
doc/equations/lanczos1.emf
Normal file
BIN
doc/equations/lanczos1.png
Normal file
|
After Width: | Height: | Size: 562 B |
BIN
doc/equations/lanczos2.png
Normal file
|
After Width: | Height: | Size: 608 B |
BIN
doc/equations/lanczos3.png
Normal file
|
After Width: | Height: | Size: 1023 B |
BIN
doc/equations/lanczos4.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
doc/equations/lanczos5.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
doc/equations/lanczos6.png
Normal file
|
After Width: | Height: | Size: 605 B |
BIN
doc/equations/lanczos7.png
Normal file
|
After Width: | Height: | Size: 555 B |
BIN
doc/equations/lgamm1.png
Normal file
|
After Width: | Height: | Size: 403 B |
BIN
doc/equations/lgamm2.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
doc/equations/lgamm3.png
Normal file
|
After Width: | Height: | Size: 570 B |
BIN
doc/equations/lgamm4.png
Normal file
|
After Width: | Height: | Size: 702 B |
BIN
doc/equations/lgamm5.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
doc/equations/lgamm6.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
doc/equations/lgamma.xml
Normal file
BIN
doc/equations/log1pseries.png
Normal file
|
After Width: | Height: | Size: 634 B |
200
doc/equations/roots.xml
Normal file
@@ -0,0 +1,200 @@
|
||||
<?xml version='1.0'?>
|
||||
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN'
|
||||
'http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd'
|
||||
[<!ENTITY mathml 'http://www.w3.org/1998/Math/MathML'>]>
|
||||
<html xmlns='http://www.w3.org/1999/xhtml'>
|
||||
<head>
|
||||
<!-- MathML created with MathCast Equation Editor version 0.83 -->
|
||||
</head>
|
||||
<body>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>x</mi>
|
||||
<mrow>
|
||||
<mi>N</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</msub>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msub>
|
||||
<mi>x</mi>
|
||||
<mi>N</mi>
|
||||
</msub>
|
||||
<mo>−</mo>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mi>f</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mi>f</mi>
|
||||
<mo>′</mo>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>x</mi>
|
||||
<mrow>
|
||||
<mi>N</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</msub>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msub>
|
||||
<mi>x</mi>
|
||||
<mi>N</mi>
|
||||
</msub>
|
||||
<mo>−</mo>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mn>2</mn>
|
||||
<mi>f</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>f</mi>
|
||||
<mo>′</mo>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mn>2</mn>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>f</mi>
|
||||
<mo>′</mo>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mn>2</mn>
|
||||
</msup>
|
||||
<mo>−</mo>
|
||||
<mi>f</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mi>f</mi>
|
||||
<mo>″</mo>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>x</mi>
|
||||
<mrow>
|
||||
<mi>N</mi>
|
||||
<mo>+</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</msub>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<msub>
|
||||
<mi>x</mi>
|
||||
<mi>N</mi>
|
||||
</msub>
|
||||
<mo>−</mo>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mi>f</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mi>f</mi>
|
||||
<mo>′</mo>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
<mo>−</mo>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<mi>f</mi>
|
||||
<mo>″</mo>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>f</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mn>2</mn>
|
||||
</msup>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mn>2</mn>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>f</mi>
|
||||
<mo>′</mo>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mn>3</mn>
|
||||
</msup>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
</body>
|
||||
</html>
|
||||
BIN
doc/equations/roots1.png
Normal file
|
After Width: | Height: | Size: 589 B |
BIN
doc/equations/roots2.png
Normal file
|
After Width: | Height: | Size: 933 B |
BIN
doc/equations/roots3.png
Normal file
|
After Width: | Height: | Size: 963 B |
BIN
doc/equations/roots4.png
Normal file
|
After Width: | Height: | Size: 874 B |
336
doc/equations/tools.xml
Normal file
@@ -0,0 +1,336 @@
|
||||
<?xml version='1.0'?>
|
||||
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN'
|
||||
'http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd'
|
||||
[<!ENTITY mathml 'http://www.w3.org/1998/Math/MathML'>]>
|
||||
<html xmlns='http://www.w3.org/1999/xhtml'>
|
||||
<head>
|
||||
<!-- MathML created with MathCast Equation Editor version 0.83 -->
|
||||
</head>
|
||||
<body>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mi>log</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mn>1</mn>
|
||||
<mo>+</mo>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<munderover>
|
||||
<mo>∑</mo>
|
||||
<mrow>
|
||||
<mi>k</mi>
|
||||
<mo>=</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
<mi>∞</mi>
|
||||
</munderover>
|
||||
<mfrac>
|
||||
<mrow>
|
||||
<msup>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mrow>
|
||||
<mi>k</mi>
|
||||
<mo>−</mo>
|
||||
<mn>1</mn>
|
||||
</mrow>
|
||||
</msup>
|
||||
<msup>
|
||||
<mi>z</mi>
|
||||
<mi>k</mi>
|
||||
</msup>
|
||||
</mrow>
|
||||
<mi>k</mi>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>b</mi>
|
||||
<mn>0</mn>
|
||||
</msub>
|
||||
<mo>+</mo>
|
||||
<mfrac>
|
||||
<msub>
|
||||
<mi>a</mi>
|
||||
<mn>1</mn>
|
||||
</msub>
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>b</mi>
|
||||
<mn>1</mn>
|
||||
</msub>
|
||||
<mo>+</mo>
|
||||
<mfrac>
|
||||
<msub>
|
||||
<mi>a</mi>
|
||||
<mn>2</mn>
|
||||
</msub>
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>b</mi>
|
||||
<mn>2</mn>
|
||||
</msub>
|
||||
<mo>+</mo>
|
||||
<mfrac>
|
||||
<msub>
|
||||
<mi>a</mi>
|
||||
<mn>3</mn>
|
||||
</msub>
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>b</mi>
|
||||
<mn>3</mn>
|
||||
</msub>
|
||||
<mo>+</mo>
|
||||
<mfrac>
|
||||
<msub>
|
||||
<mi>a</mi>
|
||||
<mn>4</mn>
|
||||
</msub>
|
||||
<msub>
|
||||
<mi>b</mi>
|
||||
<mn>4</mn>
|
||||
</msub>
|
||||
</mfrac>
|
||||
<mo>+</mo>
|
||||
<mo>…</mo>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mfrac>
|
||||
<msub>
|
||||
<mi>a</mi>
|
||||
<mn>1</mn>
|
||||
</msub>
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>b</mi>
|
||||
<mn>1</mn>
|
||||
</msub>
|
||||
<mo>+</mo>
|
||||
<mfrac>
|
||||
<msub>
|
||||
<mi>a</mi>
|
||||
<mn>2</mn>
|
||||
</msub>
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>b</mi>
|
||||
<mn>2</mn>
|
||||
</msub>
|
||||
<mo>+</mo>
|
||||
<mfrac>
|
||||
<msub>
|
||||
<mi>a</mi>
|
||||
<mn>3</mn>
|
||||
</msub>
|
||||
<mrow>
|
||||
<msub>
|
||||
<mi>b</mi>
|
||||
<mn>3</mn>
|
||||
</msub>
|
||||
<mo>+</mo>
|
||||
<mfrac>
|
||||
<msub>
|
||||
<mi>a</mi>
|
||||
<mn>4</mn>
|
||||
</msub>
|
||||
<msub>
|
||||
<mi>b</mi>
|
||||
<mn>4</mn>
|
||||
</msub>
|
||||
</mfrac>
|
||||
<mo>+</mo>
|
||||
<mo>…</mo>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mtext>Golden Ratio</mtext>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<mfrac>
|
||||
<mn>1</mn>
|
||||
<mrow>
|
||||
<mn>1</mn>
|
||||
<mo>+</mo>
|
||||
<mfrac>
|
||||
<mn>1</mn>
|
||||
<mrow>
|
||||
<mn>1</mn>
|
||||
<mo>+</mo>
|
||||
<mfrac>
|
||||
<mn>1</mn>
|
||||
<mrow>
|
||||
<mn>1</mn>
|
||||
<mo>+</mo>
|
||||
<mfrac>
|
||||
<mn>1</mn>
|
||||
<mrow>
|
||||
<mn>1</mn>
|
||||
<mo>+</mo>
|
||||
<mo>…</mo>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mi>tan</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>z</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
<mspace width="1em"/>
|
||||
<mo>=</mo>
|
||||
<mspace width="1em"/>
|
||||
<mfrac>
|
||||
<mi>z</mi>
|
||||
<mrow>
|
||||
<mn>1</mn>
|
||||
<mo>−</mo>
|
||||
<mfrac>
|
||||
<msup>
|
||||
<mi>z</mi>
|
||||
<mn>2</mn>
|
||||
</msup>
|
||||
<mrow>
|
||||
<mn>3</mn>
|
||||
<mo>−</mo>
|
||||
<mfrac>
|
||||
<msup>
|
||||
<mi>z</mi>
|
||||
<mn>2</mn>
|
||||
</msup>
|
||||
<mrow>
|
||||
<mn>5</mn>
|
||||
<mo>−</mo>
|
||||
<mfrac>
|
||||
<msup>
|
||||
<mi>z</mi>
|
||||
<mn>2</mn>
|
||||
</msup>
|
||||
<mrow>
|
||||
<mn>7</mn>
|
||||
<mo>−</mo>
|
||||
<mfrac>
|
||||
<msup>
|
||||
<mi>z</mi>
|
||||
<mn>2</mn>
|
||||
</msup>
|
||||
<mrow>
|
||||
<mn>9</mn>
|
||||
<mo>−</mo>
|
||||
<mo>…</mo>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</mfrac>
|
||||
</mrow>
|
||||
</math>
|
||||
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
||||
<mrow>
|
||||
<mtable>
|
||||
<mtr>
|
||||
<mtd>
|
||||
<mi>f</mi>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mo>=</mo>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<msup>
|
||||
<mi>x</mi>
|
||||
<mn>3</mn>
|
||||
</msup>
|
||||
<mo>−</mo>
|
||||
<mi>a</mi>
|
||||
</mtd>
|
||||
</mtr>
|
||||
<mtr>
|
||||
<mtd>
|
||||
<mi>f</mi>
|
||||
<mo>′</mo>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mo>=</mo>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mn>3</mn>
|
||||
<msup>
|
||||
<mi>x</mi>
|
||||
<mn>2</mn>
|
||||
</msup>
|
||||
</mtd>
|
||||
</mtr>
|
||||
<mtr>
|
||||
<mtd>
|
||||
<mi>f</mi>
|
||||
<mo>″</mo>
|
||||
<mfenced>
|
||||
<mrow>
|
||||
<mi>x</mi>
|
||||
</mrow>
|
||||
</mfenced>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mo>=</mo>
|
||||
</mtd>
|
||||
<mtd>
|
||||
<mn>6</mn>
|
||||
<mi>x</mi>
|
||||
</mtd>
|
||||
</mtr>
|
||||
</mtable>
|
||||
</mrow>
|
||||
</math>
|
||||
</body>
|
||||
</html>
|
||||
132
doc/erf.qbk
Normal file
@@ -0,0 +1,132 @@
|
||||
[section The Error Functions]
|
||||
|
||||
[caution __caution ]
|
||||
|
||||
[h4 Synopsis]
|
||||
|
||||
``
|
||||
#include <boost/math/special_functions/erf.hpp>
|
||||
``
|
||||
|
||||
namespace boost{ namespace math{
|
||||
|
||||
template <class T>
|
||||
T erf(T z);
|
||||
|
||||
template <class T>
|
||||
T erfc(T z);
|
||||
|
||||
}} // namespaces
|
||||
|
||||
[h4 Description]
|
||||
|
||||
template <class T>
|
||||
T erf(T z);
|
||||
|
||||
Returns the error function of z:
|
||||
|
||||
[$../equations/erf1.png]
|
||||
|
||||
[$../graphs/erf1.png]
|
||||
|
||||
template <class T>
|
||||
T erfc(T z);
|
||||
|
||||
Returns the complement of the error function of z:
|
||||
|
||||
[$../equations/erf2.png]
|
||||
|
||||
[$../graphs/erf2.png]
|
||||
|
||||
[h4 Accuracy]
|
||||
|
||||
[table Errors In the Function erf(z)
|
||||
[[Mantissa Size] [Platform and Compiler] [z < 0.5] [0.5 < z < 8] [z > 8]]
|
||||
[[53] [Win32, Visual C++ 8] [Peek=0 Mean=0\n\n GSL Peek=2.0 Mean=0.3 \n\nCephes Peek=1.1 Mean=0.7] [Peek=0.9 Mean=0.09 \n\nGSL Peek=2.3 Mean=0.3 \n\nCephes Peek=1.3 Mean=0.2] [Peek=0 Mean=0\n\nGSL Peek=0 Mean=0 \n\nCephes Peek=0 Mean=0]]
|
||||
[[64] [RedHat Linux IA32, gcc-3.3] [Peek=0.7 Mean=0.07\n\n Native Peek=0.9 Mean=0.2] [Peek=0.9 Mean=0.2\n\n Native Peek=0.9 Mean=0.07] [Peek=0 Mean=0\n\n Native Peek=0 Mean=0]]
|
||||
[[64] [Redhat Linux IA64, gcc-3.4.4] [Peek=0.7 Mean=0.07\n\n Native Peek=0 Mean=0] [Peek=0.9 Mean=0.1\n\n Native Peek=0.5 Mean=0.03] [Peek=0 Mean=0\n\n Native Peek=0 Mean=0]]
|
||||
[[113] [HPUX IA64, aCC A.06.06] [Peek=0.8 Mean=0.1\n\n Native Peek=0.9 Mean=0.2] [Peek=0.9 Mean=0.1\n\n Native Peek=0.5 Mean=0.02] [Peek=0 Mean=0\n\n Native Peek=0 Mean=0]]
|
||||
]
|
||||
|
||||
[table Errors In the Function erfc(z)
|
||||
[[Mantissa Size] [Platform and Compiler] [z < 0.5] [0.5 < z < 8] [z > 8]]
|
||||
[[53] [Win32, Visual C++ 8] [Peek=0.7 Mean=0.06 \n\nGSL Peek=1.0 Mean=0.4 \n\nCephes Peek=0.7 Mean=0.06] [Peek=0.99 Mean=0.3\n\nGSL Peek=2.6 Mean=0.6 \n\nCephes Peek=3.6 Mean=0.7] [Peek=1.0 Mean=0.2\n\nGSL Peek=3.9 Mean=0.4 \n\nCephes Peek=2.7 Mean=0.4]]
|
||||
[[64] [RedHat Linux IA32, gcc-3.3] [Peek=0 Mean=0\n\n Native Peek=0 Mean=0] [Peek=1.4 Mean=0.3\n\n Native Peek=1.3 Mean=0.3] [Peek=1.6 Mean=0.4\n\n Native Peek=1.3 Mean=0.4]]
|
||||
[[64] [Redhat Linux IA64, gcc-3.4.4] [Peek=0 Mean=0\n\n Native Peek=0 Mean=0] [Peek=1.4 Mean=0.3\n\n Native Peek=0 Mean=0] [Peek=1.5 Mean=0.4\n\n Native Peek=0 Mean=0] ]
|
||||
[[113] [HPUX IA64, aCC A.06.06] [Peek=0 Mean=0\n\n Native Peek=0 Mean=0] [Peek=1.5 Mean=0.3\n\n Native Peek=0.9 Mean=0.08] [Peek=1.6 Mean=0.4\n\n Native Peek=0.9 Mean=0.1]]
|
||||
]
|
||||
|
||||
[h4 Testing]
|
||||
|
||||
The tests for these functions come in two parts: basic sanity checks uses
|
||||
spot values calculated using Mathworld's online calculator, while accuracy
|
||||
checks use high-precision test values calculated at 1000-bit precision with
|
||||
NTL::RR and this implementation. Note that the generic and type-specific
|
||||
versions of these functions use differing implementations internally, so this
|
||||
gives us reasonably independent test data. Using our test data to test other
|
||||
known "good" implementations also provides an additional sanity check.
|
||||
|
||||
One
|
||||
should note that our tests rely on decimal to binary conversion of floating
|
||||
point numbers, and assume that the result will be correctly rounded. In practice
|
||||
it appears that in a few very rare cases the test data may be incorrect in the last bit:
|
||||
this depends upon the compiler and standard library used, and means that the
|
||||
relative errors quoted above have to treated somewhat circumspectly. Using
|
||||
binary or hexadecimal coded test data would remove this issue (or at least
|
||||
confirm whether it is actually an issue or not), but would make the test data
|
||||
unportable, so is not used at present.
|
||||
|
||||
[h4 Implementation]
|
||||
|
||||
All versions of these functions first use the usual reflection formulas
|
||||
to make their arguments positive:
|
||||
|
||||
erf(-z) = 1 - erf(z);
|
||||
|
||||
erfc(-z) = 2 - erfc(z); // prefered when -z < -0.5
|
||||
|
||||
erfc(-z) = 1 + erf(z); // prefered when -0.5 <= -z < 0
|
||||
|
||||
The generic versions of these functions are implemented in terms of
|
||||
the incomplete gamma function.
|
||||
|
||||
When the mantissa size is recognised (currently for 53, 64 and 113-bit reals,
|
||||
plus single precision handled via promotion to double)
|
||||
then a series of rational approximations are used.
|
||||
|
||||
For `z <= 0.5` then a rational approximation to erf is used, based on the
|
||||
observation that:
|
||||
|
||||
erf(z)/z ~ 1.12....
|
||||
|
||||
Therefore erf is calculated using:
|
||||
|
||||
erf(z) = z * (1.125F + R(z));
|
||||
|
||||
Where the rational approximation R(z) is optimised for absolute error: as
|
||||
long as it's absolute error is small enough compared to 1.125 then any
|
||||
roundoff error incured during the computation of R(z) will effectively
|
||||
dissappear from the result. As a result the error for erf and erfc in this
|
||||
region is very low: the last bit is incorrect in only a very small number of
|
||||
cases.
|
||||
|
||||
For `z > 0.5` we observe that over a small interval [a, b) then:
|
||||
|
||||
erfc(z) * exp(z*z) * z ~ c
|
||||
|
||||
for some constant c.
|
||||
|
||||
Therefore for `z > 0.5` we calculate erfc using:
|
||||
|
||||
erfc(z) = exp(-z*z) * (c + R(z)) / z;
|
||||
|
||||
Again R(z) is optimised for absolute error, and the constant `c` is
|
||||
the average of `erfc(z) * exp(z*z) * z` taken at the endpoints of the range.
|
||||
Once again as long as the absolute error in R(z) is small
|
||||
compared to `c` then `c + R(z)` will be correctly rounded, and the error
|
||||
in the result will depend only on the accuracy of the exp function. In practice
|
||||
in all but a very small number of cases the error is confined to the last bit
|
||||
of the result.
|
||||
|
||||
[endsect]
|
||||
|
||||
70
doc/erf_inv.qbk
Normal file
@@ -0,0 +1,70 @@
|
||||
[section The Error Function Inverses]
|
||||
|
||||
[caution __caution ]
|
||||
|
||||
[h4 Synopsis]
|
||||
|
||||
``
|
||||
#include <boost/math/special_functions/erf.hpp>
|
||||
``
|
||||
|
||||
namespace boost{ namespace math{
|
||||
|
||||
template <class T>
|
||||
T erf_inv(T p);
|
||||
|
||||
template <class T>
|
||||
T erfc_inv(T p);
|
||||
|
||||
}} // namespaces
|
||||
|
||||
[h4 Description]
|
||||
|
||||
template <class T>
|
||||
T erf_inv(T z);
|
||||
|
||||
Returns the inverse error function of z, that is a value x such that:
|
||||
|
||||
p = erf(x);
|
||||
|
||||
[$../graphs/erf_inv1.png]
|
||||
|
||||
template <class T>
|
||||
T erfc_inv(T z);
|
||||
|
||||
Returns the inverse of the complement of the error function of z, that is a
|
||||
value x such that:
|
||||
|
||||
p = erfc(x);
|
||||
|
||||
[$../graphs/erf_inv2.png]
|
||||
|
||||
[h4 Accuracy]
|
||||
|
||||
These functions are deliberately "detuned" to be not too accurate in order to avoid
|
||||
undue iterations during their calculation. The relative error in these functions
|
||||
will be similar for all types T at around 3 to 15 epsilon.
|
||||
|
||||
[h4 Testing]
|
||||
|
||||
There are two sets of tests:
|
||||
|
||||
* Basic sanity checks attempt to "round-trip" from
|
||||
/x/ to /p/ and back again. These tests have quite
|
||||
generous tolerances: in general both the error functions and their
|
||||
inverses change so rapidly in some places, that round tripping to more than a couple
|
||||
of significant digits isn't possible. This is especially true when
|
||||
/p/ is very near one: in this case there isn't enough
|
||||
"information content" in the input to the inverse function to get
|
||||
back where you started.
|
||||
* Accuracy checks using high precision test values. These measure
|
||||
the accuracy of the result, given /exact/ input values.
|
||||
|
||||
[h4 Implementation]
|
||||
|
||||
These functions use a rational approximation to calculate an initial
|
||||
approximation to the result, then clean up the value using Halley iteration.
|
||||
No more than 3 iterations are required in practice.
|
||||
|
||||
[endsect]
|
||||
|
||||
58
doc/error.qbk
Normal file
@@ -0,0 +1,58 @@
|
||||
[section Relative Error]
|
||||
|
||||
[caution __caution ]
|
||||
|
||||
Given an actual value /a/ and a found value /v/ the relative error can be
|
||||
calculated from:
|
||||
|
||||
[$../equations/error1.png]
|
||||
|
||||
Special care needs to be taken when one value is zero: we could either take the
|
||||
absolute error in this case (but that's cheating as the absolute error is likely
|
||||
to be very small), or we could assign a value of either 1 or infinity to the
|
||||
relative error in this special case. In the test cases for the special functions
|
||||
in this library, everything below a threshold is regarded as "effectively zero",
|
||||
otherwise the relative error is assigned the value of 1 if only one of the terms
|
||||
is zero. The threshold is currently set at `std::numeric_limits<>::min()`, in other words all
|
||||
denormalised numbers are regarded as a zero.
|
||||
|
||||
All the test programs calculate /quantised relative error/ whereas the graphs
|
||||
in this manual are produced with the /actual error/. The difference is as
|
||||
follows: in the test programs the test data is rounded to the target type
|
||||
under test when
|
||||
the program is compiled, the error observed will then be a whole number of
|
||||
/units in the last place/ either rounded up from the actual error, or rounded
|
||||
down (possibly to zero). In contrast the /true error/ is obtained by extending
|
||||
the precision of the calculated value, and then comparing to the actual value:
|
||||
in this case the calculated error may be some fraction of /units in the last place/.
|
||||
|
||||
Note that throughout this manual and the test programs the relative error is
|
||||
usually quoted in units of epsilon. However, remember that /units in the last place/
|
||||
more accurately reflect the number of contaminated digits, and that relative
|
||||
error can /"wobble"/ by a factor of 2 compared to /units in the last place/.
|
||||
In other words: two implementations of the same function, whose
|
||||
maximum relative errors differ by a factor of 2, can actually be accurate
|
||||
to the same number of binary digits. You have been warned!
|
||||
|
||||
[#zero_error][h4 The Impossibility of Zero Error]
|
||||
|
||||
For many of the functions in this library, it's assumed that the error is
|
||||
"effectively zero" if the computation can be done with a number of guard
|
||||
digits. However it should be remembered that if the result is a
|
||||
/transcendental number/
|
||||
then as a point of principle we can never be sure that the result is accurate
|
||||
to more than 1ulp. This is an example of /the table makers dilemma/: consider what
|
||||
happens if the first guard digit is a one, and the remaining guard digits are all zero.
|
||||
Do we have a tie or not? Since the only thing we can tell about a transcendental number
|
||||
is that it's digits have no particular pattern, we can never tell if we have a tie,
|
||||
no matter how many guard digits we have. Therefore we can never be completely sure
|
||||
that the result has been rounded in the right direction. Of course transcendental
|
||||
numbers that just happen to be a tie - for however many guard digits we have - are
|
||||
extremely rare, and get rarer the more guard digits we have, but even so....
|
||||
|
||||
Refer to the classic text
|
||||
[@http://docs.sun.com/source/806-3568/ncg_goldberg.html What Every Computer Scientist Should Know About Floating-Point Arithmetic]
|
||||
for more information.
|
||||
|
||||
[endsect]
|
||||
|
||||
89
doc/fpclassify.qbk
Normal file
@@ -0,0 +1,89 @@
|
||||
[section Floating Point Classification: Infinities and NaN's]
|
||||
|
||||
[h4 Synopsis]
|
||||
|
||||
#define FP_ZERO /* implementation specific value */
|
||||
#define FP_NORMAL /* implementation specific value */
|
||||
#define FP_INFINITE /* implementation specific value */
|
||||
#define FP_NAN /* implementation specific value */
|
||||
#define FP_SUBNORMAL /* implementation specific value */
|
||||
|
||||
template <class T>
|
||||
int fpclassify(T t);
|
||||
|
||||
template <class T>
|
||||
bool isfinite(T z);
|
||||
|
||||
template <class T>
|
||||
bool isinf(T t);
|
||||
|
||||
template <class T>
|
||||
bool isnan(T t);
|
||||
|
||||
template <class T>
|
||||
bool isnormal(T t);
|
||||
|
||||
[h4 Description]
|
||||
|
||||
These functions provide the same functionality as the macros with the same
|
||||
name in C99, indeed if the C99 macros are available, then these functions
|
||||
are implemented in terms of them, otherwise they rely on std::numeric_limits<>
|
||||
to function.
|
||||
|
||||
Note that the definition of these functions ['does not suppress the definition
|
||||
of these names as macros by math.h] on those platforms that already provide
|
||||
these as macros. That mean that the following have differing meanings:
|
||||
|
||||
using namespace boost::math;
|
||||
|
||||
// This might call a global macro if defined,
|
||||
// might not work if the type of z is unsupported
|
||||
// by the std lib:
|
||||
isnan(z);
|
||||
//
|
||||
// This calls the boost version, works for any type
|
||||
// that has numeric_limits support :
|
||||
(isnan)(z);
|
||||
//
|
||||
// As above but with namespace qualification.
|
||||
(boost::math::isnan)(z);
|
||||
//
|
||||
// This will cause a compiler error is isnan is a native macro:
|
||||
boost::math::isnan(z);
|
||||
|
||||
Detailed descriptions for each of these functions follows:
|
||||
|
||||
template <class T>
|
||||
int fpclassify(T t);
|
||||
|
||||
Returns an integer value that classifies the value /t/:
|
||||
|
||||
[table
|
||||
[[FP_ZERO] [If /t/ is zero.]]
|
||||
[[FP_NORMAL] [If /t/ is a non-zero, non-denormalised finite value.]]
|
||||
[[FP_INFINITE] [If /t/ is plus or minus infinity.]]
|
||||
[[FP_NAN] [If /t/ is a NaN.]]
|
||||
[[FP_SUBNORMAL] [If /t/ is a denormalised number.]]
|
||||
]
|
||||
|
||||
template <class T>
|
||||
bool isfinite(T z);
|
||||
|
||||
Returns true only if /z/ is not an infinity or a NaN.
|
||||
|
||||
template <class T>
|
||||
bool isinf(T t);
|
||||
|
||||
Returns true only if /z/ is plus or minus infinity.
|
||||
|
||||
template <class T>
|
||||
bool isnan(T t);
|
||||
|
||||
Returns true only if /z/ is a NaN.
|
||||
|
||||
template <class T>
|
||||
bool isnormal(T t);
|
||||
|
||||
Returns true only if /z/ is a normal number (not zero, infinite, NaN, or denomalised).
|
||||
|
||||
[endsect]
|
||||
147
doc/fraction.qbk
Normal file
@@ -0,0 +1,147 @@
|
||||
[section Continued Fraction Evaluation]
|
||||
|
||||
[caution __caution ]
|
||||
|
||||
[h4 Synopsis]
|
||||
|
||||
``
|
||||
#include <boost/math/tools/fraction.hpp>
|
||||
``
|
||||
|
||||
namespace boost{ namespace math{ namespace tools{
|
||||
|
||||
template <class Gen>
|
||||
typename detail::fraction_traits<Gen>::result_type
|
||||
continued_fraction_b(Gen& g, int bits);
|
||||
|
||||
template <class Gen>
|
||||
typename detail::fraction_traits<Gen>::result_type
|
||||
continued_fraction_b(Gen& g, int bits, boost::uintmax_t& max_terms);
|
||||
|
||||
template <class Gen>
|
||||
typename detail::fraction_traits<Gen>::result_type
|
||||
continued_fraction_a(Gen& g, int bits);
|
||||
|
||||
template <class Gen>
|
||||
typename detail::fraction_traits<Gen>::result_type
|
||||
continued_fraction_a(Gen& g, int bits, boost::uintmax_t& max_terms);
|
||||
|
||||
}}} // namespaces
|
||||
|
||||
[h4 Description]
|
||||
|
||||
These functions all evaluate the continued fraction described by the /generator/
|
||||
type argument. The functions with an "_a" suffix evaluate the fraction:
|
||||
|
||||
[$../equations/fraction2.png]
|
||||
|
||||
and those with a "_b" suffix evaluate the fraction:
|
||||
|
||||
[$../equations/fraction1.png]
|
||||
|
||||
This latter form is somewhat more natural in that it corresponds with the usual
|
||||
definition of a continued fraction, but note that the first /a/ value returned by
|
||||
the generator is discarded. Further, often the first /a/ and /b/ values in a
|
||||
continued fraction have different defining equations to the remaining terms, which
|
||||
may make the "_a" suffixed form more appropriate.
|
||||
|
||||
The generator type should be a function object which supports the following
|
||||
operations:
|
||||
|
||||
[table
|
||||
[[Expression] [Description]]
|
||||
[[Gen::result_type] [The type that is the result of invoking operator().
|
||||
This can be either an arithmetic type, or a std::pair<> of arithmetic types.]]
|
||||
[[g()] [Returns an object of type Gen::result_type.\n
|
||||
Each time this operator is called then the next pair of /a/ and /b/
|
||||
values is returned. Or, if result_type is an arithmetic type,
|
||||
then the next /b/ value is returned and all the /a/ values
|
||||
are assumed to 1.]]
|
||||
]
|
||||
|
||||
In all the continued fraction evaluation functions the /bits/ parameter is the
|
||||
number of bits precision desired in the result, evaluation of the fraction will
|
||||
continue until the last term evaluated leaves the first /bits/ bits in the result
|
||||
unchanged.
|
||||
|
||||
If the optional /max_terms/ parameter is specified then no more than /max_terms/
|
||||
calls to the generator will be made, and on output,
|
||||
/max_terms/ will be set to actual number of
|
||||
calls made. This facility is particularly useful when profiling a continued
|
||||
fraction for convergence.
|
||||
|
||||
[h4 Implementation]
|
||||
|
||||
Internally these algorithms all use the modified Lentz algorithm: refer to
|
||||
Numeric Recipes, chapter 5 for more information, also
|
||||
Lentz, W.J. 1976, Applied Optics, vol. 15, pp. 668-671.
|
||||
|
||||
[h4 Examples]
|
||||
|
||||
The golden ratio can be computed from the simplest continued fraction of all:
|
||||
|
||||
[$../equations/fraction3.png]
|
||||
|
||||
We begin by defining a generator function:
|
||||
|
||||
template <class T>
|
||||
struct golden_ratio_fraction
|
||||
{
|
||||
typedef T result_type;
|
||||
|
||||
result_type operator()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
};
|
||||
|
||||
The golden ration can then be computed to double precision using:
|
||||
|
||||
continued_fraction_a(
|
||||
golden_ratio_fraction<double>(),
|
||||
std::numeric_limits<double>::digits);
|
||||
|
||||
It's more usual though to have to define both the /a/'s and the /b/'s
|
||||
when evaluating special functions by continued fractions, for example
|
||||
the tan function is defined by:
|
||||
|
||||
[$../equations/fraction4.png]
|
||||
|
||||
So it's generator object would look like:
|
||||
|
||||
template <class T>
|
||||
struct tan_fraction
|
||||
{
|
||||
private:
|
||||
T a, b;
|
||||
public:
|
||||
tan_fraction(T v)
|
||||
: a(-v*v), b(-1)
|
||||
{}
|
||||
|
||||
typedef std::pair<T,T> result_type;
|
||||
|
||||
std::pair<T,T> operator()()
|
||||
{
|
||||
b += 2;
|
||||
return std::make_pair(a, b);
|
||||
}
|
||||
};
|
||||
|
||||
Notice that if the continuant is subtracted from the /b/ terms,
|
||||
as is the case here, then all the /a/ terms returned by the generator
|
||||
will be negative. The tangent function can now be evaluated using:
|
||||
|
||||
template <class T>
|
||||
T tan(T a)
|
||||
{
|
||||
tan_fraction<T> fract(a);
|
||||
return a / continued_fraction_b(fract, std::numeric_limits<T>::digits);
|
||||
}
|
||||
|
||||
Notice that this time we're using the "_b" suffixed version to evaluate
|
||||
the fraction: we're removing the leading /a/ term during fraction evaluation
|
||||
as it's different from all the others.
|
||||
|
||||
[endsect]
|
||||
|
||||
BIN
doc/graphs/beta-small.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
5345
doc/graphs/beta-small.rgd
Normal file
BIN
doc/graphs/beta.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
4459
doc/graphs/beta.rgd
Normal file
545
doc/graphs/erf.rgd
Normal file
@@ -0,0 +1,545 @@
|
||||
[RJS Graph Data File]
|
||||
|
||||
[Header]
|
||||
Version=3
|
||||
Revision=1
|
||||
[End Header]
|
||||
|
||||
[Data]
|
||||
Row 1 Col 1="-5"
|
||||
Row 1 Col 2="-1"
|
||||
Row 2 Col 1="-4.9"
|
||||
Row 2 Col 2="-1"
|
||||
Row 3 Col 1="-4.8"
|
||||
Row 3 Col 2="-1"
|
||||
Row 4 Col 1="-4.7"
|
||||
Row 4 Col 2="-1"
|
||||
Row 5 Col 1="-4.6"
|
||||
Row 5 Col 2="-1"
|
||||
Row 6 Col 1="-4.5"
|
||||
Row 6 Col 2="-1"
|
||||
Row 7 Col 1="-4.4"
|
||||
Row 7 Col 2="-1"
|
||||
Row 8 Col 1="-4.3"
|
||||
Row 8 Col 2="-1"
|
||||
Row 9 Col 1="-4.2"
|
||||
Row 9 Col 2="-1"
|
||||
Row 10 Col 1="-4.1"
|
||||
Row 10 Col 2="-1"
|
||||
Row 11 Col 1="-4"
|
||||
Row 11 Col 2="-1"
|
||||
Row 12 Col 1="-3.9"
|
||||
Row 12 Col 2="-1"
|
||||
Row 13 Col 1="-3.8"
|
||||
Row 13 Col 2="-1"
|
||||
Row 14 Col 1="-3.7"
|
||||
Row 14 Col 2="-1"
|
||||
Row 15 Col 1="-3.6"
|
||||
Row 15 Col 2="-1"
|
||||
Row 16 Col 1="-3.5"
|
||||
Row 16 Col 2="-0.999999"
|
||||
Row 17 Col 1="-3.4"
|
||||
Row 17 Col 2="-0.999998"
|
||||
Row 18 Col 1="-3.3"
|
||||
Row 18 Col 2="-0.999997"
|
||||
Row 19 Col 1="-3.2"
|
||||
Row 19 Col 2="-0.999994"
|
||||
Row 20 Col 1="-3.1"
|
||||
Row 20 Col 2="-0.999988"
|
||||
Row 21 Col 1="-3"
|
||||
Row 21 Col 2="-0.999978"
|
||||
Row 22 Col 1="-2.9"
|
||||
Row 22 Col 2="-0.999959"
|
||||
Row 23 Col 1="-2.8"
|
||||
Row 23 Col 2="-0.999925"
|
||||
Row 24 Col 1="-2.7"
|
||||
Row 24 Col 2="-0.999866"
|
||||
Row 25 Col 1="-2.6"
|
||||
Row 25 Col 2="-0.999764"
|
||||
Row 26 Col 1="-2.5"
|
||||
Row 26 Col 2="-0.999593"
|
||||
Row 27 Col 1="-2.4"
|
||||
Row 27 Col 2="-0.999311"
|
||||
Row 28 Col 1="-2.3"
|
||||
Row 28 Col 2="-0.998857"
|
||||
Row 29 Col 1="-2.2"
|
||||
Row 29 Col 2="-0.998137"
|
||||
Row 30 Col 1="-2.1"
|
||||
Row 30 Col 2="-0.997021"
|
||||
Row 31 Col 1="-2"
|
||||
Row 31 Col 2="-0.995322"
|
||||
Row 32 Col 1="-1.9"
|
||||
Row 32 Col 2="-0.99279"
|
||||
Row 33 Col 1="-1.8"
|
||||
Row 33 Col 2="-0.98909"
|
||||
Row 34 Col 1="-1.7"
|
||||
Row 34 Col 2="-0.98379"
|
||||
Row 35 Col 1="-1.6"
|
||||
Row 35 Col 2="-0.976348"
|
||||
Row 36 Col 1="-1.5"
|
||||
Row 36 Col 2="-0.966105"
|
||||
Row 37 Col 1="-1.4"
|
||||
Row 37 Col 2="-0.952285"
|
||||
Row 38 Col 1="-1.3"
|
||||
Row 38 Col 2="-0.934008"
|
||||
Row 39 Col 1="-1.2"
|
||||
Row 39 Col 2="-0.910314"
|
||||
Row 40 Col 1="-1.1"
|
||||
Row 40 Col 2="-0.880205"
|
||||
Row 41 Col 1="-1"
|
||||
Row 41 Col 2="-0.842701"
|
||||
Row 42 Col 1="-0.9"
|
||||
Row 42 Col 2="-0.796908"
|
||||
Row 43 Col 1="-0.8"
|
||||
Row 43 Col 2="-0.742101"
|
||||
Row 44 Col 1="-0.7"
|
||||
Row 44 Col 2="-0.677801"
|
||||
Row 45 Col 1="-0.6"
|
||||
Row 45 Col 2="-0.603856"
|
||||
Row 46 Col 1="-0.5"
|
||||
Row 46 Col 2="-0.5205"
|
||||
Row 47 Col 1="-0.4"
|
||||
Row 47 Col 2="-0.428392"
|
||||
Row 48 Col 1="-0.3"
|
||||
Row 48 Col 2="-0.328627"
|
||||
Row 49 Col 1="-0.2"
|
||||
Row 49 Col 2="-0.222703"
|
||||
Row 50 Col 1="-0.0999999"
|
||||
Row 50 Col 2="-0.112463"
|
||||
Row 51 Col 1="0.0000000745058"
|
||||
Row 51 Col 2="0.0000000840708"
|
||||
Row 52 Col 1="0.1"
|
||||
Row 52 Col 2="0.112463"
|
||||
Row 53 Col 1="0.2"
|
||||
Row 53 Col 2="0.222703"
|
||||
Row 54 Col 1="0.3"
|
||||
Row 54 Col 2="0.328627"
|
||||
Row 55 Col 1="0.4"
|
||||
Row 55 Col 2="0.428392"
|
||||
Row 56 Col 1="0.5"
|
||||
Row 56 Col 2="0.5205"
|
||||
Row 57 Col 1="0.6"
|
||||
Row 57 Col 2="0.603856"
|
||||
Row 58 Col 1="0.7"
|
||||
Row 58 Col 2="0.677801"
|
||||
Row 59 Col 1="0.8"
|
||||
Row 59 Col 2="0.742101"
|
||||
Row 60 Col 1="0.9"
|
||||
Row 60 Col 2="0.796908"
|
||||
Row 61 Col 1="1"
|
||||
Row 61 Col 2="0.842701"
|
||||
Row 62 Col 1="1.1"
|
||||
Row 62 Col 2="0.880205"
|
||||
Row 63 Col 1="1.2"
|
||||
Row 63 Col 2="0.910314"
|
||||
Row 64 Col 1="1.3"
|
||||
Row 64 Col 2="0.934008"
|
||||
Row 65 Col 1="1.4"
|
||||
Row 65 Col 2="0.952285"
|
||||
Row 66 Col 1="1.5"
|
||||
Row 66 Col 2="0.966105"
|
||||
Row 67 Col 1="1.6"
|
||||
Row 67 Col 2="0.976348"
|
||||
Row 68 Col 1="1.7"
|
||||
Row 68 Col 2="0.98379"
|
||||
Row 69 Col 1="1.8"
|
||||
Row 69 Col 2="0.989091"
|
||||
Row 70 Col 1="1.9"
|
||||
Row 70 Col 2="0.99279"
|
||||
Row 71 Col 1="2"
|
||||
Row 71 Col 2="0.995322"
|
||||
Row 72 Col 1="2.1"
|
||||
Row 72 Col 2="0.997021"
|
||||
Row 73 Col 1="2.2"
|
||||
Row 73 Col 2="0.998137"
|
||||
Row 74 Col 1="2.3"
|
||||
Row 74 Col 2="0.998857"
|
||||
Row 75 Col 1="2.4"
|
||||
Row 75 Col 2="0.999311"
|
||||
Row 76 Col 1="2.5"
|
||||
Row 76 Col 2="0.999593"
|
||||
Row 77 Col 1="2.6"
|
||||
Row 77 Col 2="0.999764"
|
||||
Row 78 Col 1="2.7"
|
||||
Row 78 Col 2="0.999866"
|
||||
Row 79 Col 1="2.8"
|
||||
Row 79 Col 2="0.999925"
|
||||
Row 80 Col 1="2.9"
|
||||
Row 80 Col 2="0.999959"
|
||||
Row 81 Col 1="3"
|
||||
Row 81 Col 2="0.999978"
|
||||
Row 82 Col 1="3.1"
|
||||
Row 82 Col 2="0.999988"
|
||||
Row 83 Col 1="3.2"
|
||||
Row 83 Col 2="0.999994"
|
||||
Row 84 Col 1="3.3"
|
||||
Row 84 Col 2="0.999997"
|
||||
Row 85 Col 1="3.4"
|
||||
Row 85 Col 2="0.999998"
|
||||
Row 86 Col 1="3.5"
|
||||
Row 86 Col 2="0.999999"
|
||||
Row 87 Col 1="3.6"
|
||||
Row 87 Col 2="1"
|
||||
Row 88 Col 1="3.7"
|
||||
Row 88 Col 2="1"
|
||||
Row 89 Col 1="3.8"
|
||||
Row 89 Col 2="1"
|
||||
Row 90 Col 1="3.9"
|
||||
Row 90 Col 2="1"
|
||||
Row 91 Col 1="4"
|
||||
Row 91 Col 2="1"
|
||||
Row 92 Col 1="4.1"
|
||||
Row 92 Col 2="1"
|
||||
Row 93 Col 1="4.2"
|
||||
Row 93 Col 2="1"
|
||||
Row 94 Col 1="4.3"
|
||||
Row 94 Col 2="1"
|
||||
Row 95 Col 1="4.4"
|
||||
Row 95 Col 2="1"
|
||||
Row 96 Col 1="4.5"
|
||||
Row 96 Col 2="1"
|
||||
Row 97 Col 1="4.6"
|
||||
Row 97 Col 2="1"
|
||||
Row 98 Col 1="4.7"
|
||||
Row 98 Col 2="1"
|
||||
Row 99 Col 1="4.8"
|
||||
Row 99 Col 2="1"
|
||||
Row 100 Col 1="4.9"
|
||||
Row 100 Col 2="1"
|
||||
[End Data]
|
||||
|
||||
[Titles]
|
||||
Title="The Error Function"
|
||||
Heading=""
|
||||
XAxisTitle="z"
|
||||
YAxisTitle="erf(z)"
|
||||
[End Titles]
|
||||
|
||||
[Title Options]
|
||||
Title="00000000000000000024Arial"
|
||||
Heading="00000000000000000016Arial"
|
||||
YAxisTitle="00000000000000014.25Arial"
|
||||
XAxisTitle="00000000000000014.25Arial"
|
||||
YAxisVertical="1"
|
||||
[End Title Options]
|
||||
|
||||
[Background]
|
||||
Graph Background=16777215
|
||||
Page Colour=16777215
|
||||
Print Graph Background=1
|
||||
Print Page Colour=0
|
||||
[End Background]
|
||||
|
||||
[Axis]
|
||||
XMin=-3
|
||||
XMax=3
|
||||
YMin=0
|
||||
YMax=10
|
||||
MaxMinOptions="111100"
|
||||
Axis Style=1
|
||||
Logarithmic X Axis=0
|
||||
Logarithmic Y Axis=0
|
||||
Border Style=0
|
||||
[End Axis]
|
||||
|
||||
[Data Lines]
|
||||
Options="117000000000000000016777216611000000000000000016777216611000000000000000016777216611000000000000000016777216611000000000000000016777216611000000000000000016777216"
|
||||
[End Data Lines]
|
||||
|
||||
[Data Markers]
|
||||
Size 1=5
|
||||
Size 2=5
|
||||
Size 3=5
|
||||
Size 4=5
|
||||
Size 5=5
|
||||
Size 6=5
|
||||
[End Data Markers]
|
||||
|
||||
[Data Labels]
|
||||
Options="000100"
|
||||
Primary Font="00000000000000000010Arial"
|
||||
Secondary Font="00000000000000000010Arial"
|
||||
Spacing X Primary=1
|
||||
Spacing Y Primary=1
|
||||
Spacing X Secondary=1
|
||||
Spacing Y Secondary=1
|
||||
Spacing Adjustment=1
|
||||
[End Data Labels]
|
||||
|
||||
[Axis Markers]
|
||||
Options 1=1
|
||||
Spacing 1=1
|
||||
Colour 1="00000000"
|
||||
Options 2=1
|
||||
Spacing 2=1
|
||||
Colour 2="00000000"
|
||||
Options 3=0
|
||||
Spacing 3=1
|
||||
Colour 3="00000000"
|
||||
Options 4=0
|
||||
Spacing 4=1
|
||||
Colour 4="00000000"
|
||||
Style=1
|
||||
[End Axis Markers]
|
||||
|
||||
[Gridlines]
|
||||
Options="100000"
|
||||
Spacing X Primary=1
|
||||
Spacing Y Primary=1
|
||||
Spacing X Secondary=1
|
||||
Spacing Y Secondary=1
|
||||
Colour 1="00000000"
|
||||
Colour 2="00000000"
|
||||
Colour 3="14671839"
|
||||
Colour 4="14671839"
|
||||
[End Gridlines]
|
||||
|
||||
[Legend]
|
||||
X Position=22
|
||||
Y Position=10
|
||||
Style=2
|
||||
Font="00000000000000000010Arial"
|
||||
[End Legend]
|
||||
|
||||
[Best Fit Line 1]
|
||||
Options1="0100000000"
|
||||
Options2="0100000000"
|
||||
Options3="0100000000"
|
||||
Options4="0100000000"
|
||||
Options5="0100000000"
|
||||
Options6="0100000000"
|
||||
Options7="0100000000"
|
||||
Options8="0100000000"
|
||||
Options9="0100000000"
|
||||
[End Best Fit Line 1]
|
||||
|
||||
[Best Fit Line 2]
|
||||
Options1="0100000000"
|
||||
Options2="0100000000"
|
||||
Options3="0100000000"
|
||||
Options4="0100000000"
|
||||
Options5="0100000000"
|
||||
Options6="0100000000"
|
||||
Options7="0100000000"
|
||||
Options8="0100000000"
|
||||
Options9="0100000000"
|
||||
[End Best Fit Line 2]
|
||||
|
||||
[Best Fit Line 3]
|
||||
Options1="0100000000"
|
||||
Options2="0100000000"
|
||||
Options3="0100000000"
|
||||
Options4="0100000000"
|
||||
Options5="0100000000"
|
||||
Options6="0100000000"
|
||||
Options7="0100000000"
|
||||
Options8="0100000000"
|
||||
Options9="0100000000"
|
||||
[End Best Fit Line 3]
|
||||
|
||||
[Best Fit Line 4]
|
||||
Options1="0100000000"
|
||||
Options2="0100000000"
|
||||
Options3="0100000000"
|
||||
Options4="0100000000"
|
||||
Options5="0100000000"
|
||||
Options6="0100000000"
|
||||
Options7="0100000000"
|
||||
Options8="0100000000"
|
||||
Options9="0100000000"
|
||||
[End Best Fit Line 4]
|
||||
|
||||
[Best Fit Line 5]
|
||||
Options1="0100000000"
|
||||
Options2="0100000000"
|
||||
Options3="0100000000"
|
||||
Options4="0100000000"
|
||||
Options5="0100000000"
|
||||
Options6="0100000000"
|
||||
Options7="0100000000"
|
||||
Options8="0100000000"
|
||||
Options9="0100000000"
|
||||
[End Best Fit Line 5]
|
||||
|
||||
[Best Fit Line 6]
|
||||
Options1="0100000000"
|
||||
Options2="0100000000"
|
||||
Options3="0100000000"
|
||||
Options4="0100000000"
|
||||
Options5="0100000000"
|
||||
Options6="0100000000"
|
||||
Options7="0100000000"
|
||||
Options8="0100000000"
|
||||
Options9="0100000000"
|
||||
[End Best Fit Line 6]
|
||||
|
||||
[Best Fit Data 1]
|
||||
Options1=0
|
||||
Options2=0
|
||||
Options3=0
|
||||
Options4=0
|
||||
Options5=0
|
||||
Options6=0
|
||||
X Position=5
|
||||
Y Position=5
|
||||
Style=1
|
||||
Font="00000000000000000010Arial"
|
||||
Correlation Coefficient=0
|
||||
Accuracy=8
|
||||
SF Or DP=0
|
||||
Display Accuracy=0
|
||||
Display Trailing Zeros=0
|
||||
[End Best Fit Data 1]
|
||||
|
||||
[Best Fit Data 2]
|
||||
Options1=0
|
||||
Options2=0
|
||||
Options3=0
|
||||
Options4=0
|
||||
Options5=0
|
||||
Options6=0
|
||||
X Position=8
|
||||
Y Position=5
|
||||
Style=1
|
||||
Font="00000000000000000010Arial"
|
||||
Correlation Coefficient=0
|
||||
Accuracy=8
|
||||
SF Or DP=0
|
||||
Display Accuracy=0
|
||||
Display Trailing Zeros=0
|
||||
[End Best Fit Data 2]
|
||||
|
||||
[Best Fit Data 3]
|
||||
Options1=0
|
||||
Options2=0
|
||||
Options3=0
|
||||
Options4=0
|
||||
Options5=0
|
||||
Options6=0
|
||||
X Position=11
|
||||
Y Position=5
|
||||
Style=1
|
||||
Font="00000000000000000010Arial"
|
||||
Correlation Coefficient=0
|
||||
Accuracy=8
|
||||
SF Or DP=0
|
||||
Display Accuracy=0
|
||||
Display Trailing Zeros=0
|
||||
[End Best Fit Data 3]
|
||||
|
||||
[Best Fit Data 4]
|
||||
Options1=0
|
||||
Options2=0
|
||||
Options3=0
|
||||
Options4=0
|
||||
Options5=0
|
||||
Options6=0
|
||||
X Position=14
|
||||
Y Position=5
|
||||
Style=1
|
||||
Font="00000000000000000010Arial"
|
||||
Correlation Coefficient=0
|
||||
Accuracy=8
|
||||
SF Or DP=0
|
||||
Display Accuracy=0
|
||||
Display Trailing Zeros=0
|
||||
[End Best Fit Data 4]
|
||||
|
||||
[Best Fit Data 5]
|
||||
Options1=0
|
||||
Options2=0
|
||||
Options3=0
|
||||
Options4=0
|
||||
Options5=0
|
||||
Options6=0
|
||||
X Position=17
|
||||
Y Position=5
|
||||
Style=1
|
||||
Font="00000000000000000010Arial"
|
||||
Correlation Coefficient=0
|
||||
Accuracy=8
|
||||
SF Or DP=0
|
||||
Display Accuracy=0
|
||||
Display Trailing Zeros=0
|
||||
[End Best Fit Data 5]
|
||||
|
||||
[Best Fit Data 6]
|
||||
Options1=0
|
||||
Options2=0
|
||||
Options3=0
|
||||
Options4=0
|
||||
Options5=0
|
||||
Options6=0
|
||||
X Position=20
|
||||
Y Position=5
|
||||
Style=1
|
||||
Font="00000000000000000010Arial"
|
||||
Correlation Coefficient=0
|
||||
Accuracy=8
|
||||
SF Or DP=0
|
||||
Display Accuracy=0
|
||||
Display Trailing Zeros=0
|
||||
[End Best Fit Data 6]
|
||||
|
||||
[Equations]
|
||||
Equation 1=""
|
||||
Equation 2=""
|
||||
Equation 3=""
|
||||
Equation 4=""
|
||||
Equation 5=""
|
||||
Equation 6=""
|
||||
Equation 7=""
|
||||
Equation 8=""
|
||||
Equation 9=""
|
||||
Equation 10=""
|
||||
Equation 11=""
|
||||
Equation 12=""
|
||||
Angle Measurement=0
|
||||
[End Equations]
|
||||
|
||||
[Equation Options]
|
||||
Equation 1="0100000000"
|
||||
Equation 2="0100000000"
|
||||
Equation 3="0100000000"
|
||||
Equation 4="0100000000"
|
||||
Equation 5="0100000000"
|
||||
Equation 6="0100000000"
|
||||
Equation 7="0100000000"
|
||||
Equation 8="0100000000"
|
||||
Equation 9="0100000000"
|
||||
Equation 10="0100000000"
|
||||
Equation 11="0100000000"
|
||||
Equation 12="0100000000"
|
||||
[End Equation Options]
|
||||
|
||||
[Print Setup & Margins]
|
||||
Paper Size=9
|
||||
Orientation=2
|
||||
Left=2.5
|
||||
Right=2.5
|
||||
Top=2.5
|
||||
Bottom=2.5
|
||||
[End Print Setup & Margins]
|
||||
|
||||
[Datasheet]
|
||||
Column Width 1=1500
|
||||
Column Width 2=1500
|
||||
Column Width 3=1500
|
||||
Column Width 4=1500
|
||||
Column Width 5=1500
|
||||
Column Width 6=1500
|
||||
Column Width 7=1500
|
||||
Data Titles 1="Y1 Data"
|
||||
Data Titles 2="Y2 Data"
|
||||
Data Titles 3="Y3 Data"
|
||||
Data Titles 4="Y4 Data"
|
||||
Data Titles 5="Y5 Data"
|
||||
Data Titles 6="Y6 Data"
|
||||
[End Datasheet]
|
||||
|
||||
[Other Graph Options]
|
||||
Zoom Factor=1
|
||||
Auto Redraw=1
|
||||
[End Other Graph Options]
|
||||
|
||||
[End]
|
||||
BIN
doc/graphs/erf1.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
doc/graphs/erf2.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
545
doc/graphs/erfc.rgd
Normal file
@@ -0,0 +1,545 @@
|
||||
[RJS Graph Data File]
|
||||
|
||||
[Header]
|
||||
Version=3
|
||||
Revision=1
|
||||
[End Header]
|
||||
|
||||
[Data]
|
||||
Row 1 Col 1="-5"
|
||||
Row 1 Col 3="2"
|
||||
Row 2 Col 1="-4.9"
|
||||
Row 2 Col 3="2"
|
||||
Row 3 Col 1="-4.8"
|
||||
Row 3 Col 3="2"
|
||||
Row 4 Col 1="-4.7"
|
||||
Row 4 Col 3="2"
|
||||
Row 5 Col 1="-4.6"
|
||||
Row 5 Col 3="2"
|
||||
Row 6 Col 1="-4.5"
|
||||
Row 6 Col 3="2"
|
||||
Row 7 Col 1="-4.4"
|
||||
Row 7 Col 3="2"
|
||||
Row 8 Col 1="-4.3"
|
||||
Row 8 Col 3="2"
|
||||
Row 9 Col 1="-4.2"
|
||||
Row 9 Col 3="2"
|
||||
Row 10 Col 1="-4.1"
|
||||
Row 10 Col 3="2"
|
||||
Row 11 Col 1="-4"
|
||||
Row 11 Col 3="2"
|
||||
Row 12 Col 1="-3.9"
|
||||
Row 12 Col 3="2"
|
||||
Row 13 Col 1="-3.8"
|
||||
Row 13 Col 3="2"
|
||||
Row 14 Col 1="-3.7"
|
||||
Row 14 Col 3="2"
|
||||
Row 15 Col 1="-3.6"
|
||||
Row 15 Col 3="2"
|
||||
Row 16 Col 1="-3.5"
|
||||
Row 16 Col 3="2"
|
||||
Row 17 Col 1="-3.4"
|
||||
Row 17 Col 3="2"
|
||||
Row 18 Col 1="-3.3"
|
||||
Row 18 Col 3="2"
|
||||
Row 19 Col 1="-3.2"
|
||||
Row 19 Col 3="1.99999"
|
||||
Row 20 Col 1="-3.1"
|
||||
Row 20 Col 3="1.99999"
|
||||
Row 21 Col 1="-3"
|
||||
Row 21 Col 3="1.99998"
|
||||
Row 22 Col 1="-2.9"
|
||||
Row 22 Col 3="1.99996"
|
||||
Row 23 Col 1="-2.8"
|
||||
Row 23 Col 3="1.99992"
|
||||
Row 24 Col 1="-2.7"
|
||||
Row 24 Col 3="1.99987"
|
||||
Row 25 Col 1="-2.6"
|
||||
Row 25 Col 3="1.99976"
|
||||
Row 26 Col 1="-2.5"
|
||||
Row 26 Col 3="1.99959"
|
||||
Row 27 Col 1="-2.4"
|
||||
Row 27 Col 3="1.99931"
|
||||
Row 28 Col 1="-2.3"
|
||||
Row 28 Col 3="1.99886"
|
||||
Row 29 Col 1="-2.2"
|
||||
Row 29 Col 3="1.99814"
|
||||
Row 30 Col 1="-2.1"
|
||||
Row 30 Col 3="1.99702"
|
||||
Row 31 Col 1="-2"
|
||||
Row 31 Col 3="1.99532"
|
||||
Row 32 Col 1="-1.9"
|
||||
Row 32 Col 3="1.99279"
|
||||
Row 33 Col 1="-1.8"
|
||||
Row 33 Col 3="1.98909"
|
||||
Row 34 Col 1="-1.7"
|
||||
Row 34 Col 3="1.98379"
|
||||
Row 35 Col 1="-1.6"
|
||||
Row 35 Col 3="1.97635"
|
||||
Row 36 Col 1="-1.5"
|
||||
Row 36 Col 3="1.96611"
|
||||
Row 37 Col 1="-1.4"
|
||||
Row 37 Col 3="1.95229"
|
||||
Row 38 Col 1="-1.3"
|
||||
Row 38 Col 3="1.93401"
|
||||
Row 39 Col 1="-1.2"
|
||||
Row 39 Col 3="1.91031"
|
||||
Row 40 Col 1="-1.1"
|
||||
Row 40 Col 3="1.88021"
|
||||
Row 41 Col 1="-1"
|
||||
Row 41 Col 3="1.8427"
|
||||
Row 42 Col 1="-0.9"
|
||||
Row 42 Col 3="1.79691"
|
||||
Row 43 Col 1="-0.8"
|
||||
Row 43 Col 3="1.7421"
|
||||
Row 44 Col 1="-0.7"
|
||||
Row 44 Col 3="1.6778"
|
||||
Row 45 Col 1="-0.6"
|
||||
Row 45 Col 3="1.60386"
|
||||
Row 46 Col 1="-0.5"
|
||||
Row 46 Col 3="1.5205"
|
||||
Row 47 Col 1="-0.4"
|
||||
Row 47 Col 3="1.42839"
|
||||
Row 48 Col 1="-0.3"
|
||||
Row 48 Col 3="1.32863"
|
||||
Row 49 Col 1="-0.2"
|
||||
Row 49 Col 3="1.2227"
|
||||
Row 50 Col 1="-0.0999999"
|
||||
Row 50 Col 3="1.11246"
|
||||
Row 51 Col 1="0.0000000745058"
|
||||
Row 51 Col 3="1"
|
||||
Row 52 Col 1="0.1"
|
||||
Row 52 Col 3="0.887537"
|
||||
Row 53 Col 1="0.2"
|
||||
Row 53 Col 3="0.777297"
|
||||
Row 54 Col 1="0.3"
|
||||
Row 54 Col 3="0.671373"
|
||||
Row 55 Col 1="0.4"
|
||||
Row 55 Col 3="0.571608"
|
||||
Row 56 Col 1="0.5"
|
||||
Row 56 Col 3="0.4795"
|
||||
Row 57 Col 1="0.6"
|
||||
Row 57 Col 3="0.396144"
|
||||
Row 58 Col 1="0.7"
|
||||
Row 58 Col 3="0.322199"
|
||||
Row 59 Col 1="0.8"
|
||||
Row 59 Col 3="0.257899"
|
||||
Row 60 Col 1="0.9"
|
||||
Row 60 Col 3="0.203092"
|
||||
Row 61 Col 1="1"
|
||||
Row 61 Col 3="0.157299"
|
||||
Row 62 Col 1="1.1"
|
||||
Row 62 Col 3="0.119795"
|
||||
Row 63 Col 1="1.2"
|
||||
Row 63 Col 3="0.089686"
|
||||
Row 64 Col 1="1.3"
|
||||
Row 64 Col 3="0.065992"
|
||||
Row 65 Col 1="1.4"
|
||||
Row 65 Col 3="0.0477149"
|
||||
Row 66 Col 1="1.5"
|
||||
Row 66 Col 3="0.0338948"
|
||||
Row 67 Col 1="1.6"
|
||||
Row 67 Col 3="0.0236516"
|
||||
Row 68 Col 1="1.7"
|
||||
Row 68 Col 3="0.0162095"
|
||||
Row 69 Col 1="1.8"
|
||||
Row 69 Col 3="0.0109095"
|
||||
Row 70 Col 1="1.9"
|
||||
Row 70 Col 3="0.00720957"
|
||||
Row 71 Col 1="2"
|
||||
Row 71 Col 3="0.00467773"
|
||||
Row 72 Col 1="2.1"
|
||||
Row 72 Col 3="0.00297946"
|
||||
Row 73 Col 1="2.2"
|
||||
Row 73 Col 3="0.00186285"
|
||||
Row 74 Col 1="2.3"
|
||||
Row 74 Col 3="0.00114318"
|
||||
Row 75 Col 1="2.4"
|
||||
Row 75 Col 3="0.000688514"
|
||||
Row 76 Col 1="2.5"
|
||||
Row 76 Col 3="0.000406952"
|
||||
Row 77 Col 1="2.6"
|
||||
Row 77 Col 3="0.000236034"
|
||||
Row 78 Col 1="2.7"
|
||||
Row 78 Col 3="0.000134333"
|
||||
Row 79 Col 1="2.8"
|
||||
Row 79 Col 3="0.0000750131"
|
||||
Row 80 Col 1="2.9"
|
||||
Row 80 Col 3="0.0000410979"
|
||||
Row 81 Col 1="3"
|
||||
Row 81 Col 3="0.0000220905"
|
||||
Row 82 Col 1="3.1"
|
||||
Row 82 Col 3="0.0000116486"
|
||||
Row 83 Col 1="3.2"
|
||||
Row 83 Col 3="0.00000602576"
|
||||
Row 84 Col 1="3.3"
|
||||
Row 84 Col 3="0.00000305771"
|
||||
Row 85 Col 1="3.4"
|
||||
Row 85 Col 3="0.00000152199"
|
||||
Row 86 Col 1="3.5"
|
||||
Row 86 Col 3="0.000000743097"
|
||||
Row 87 Col 1="3.6"
|
||||
Row 87 Col 3="0.000000355863"
|
||||
Row 88 Col 1="3.7"
|
||||
Row 88 Col 3="0.000000167151"
|
||||
Row 89 Col 1="3.8"
|
||||
Row 89 Col 3="0.0000000770038"
|
||||
Row 90 Col 1="3.9"
|
||||
Row 90 Col 3="0.0000000347922"
|
||||
Row 91 Col 1="4"
|
||||
Row 91 Col 3="0.0000000154173"
|
||||
Row 92 Col 1="4.1"
|
||||
Row 92 Col 3="0.00000000670003"
|
||||
Row 93 Col 1="4.2"
|
||||
Row 93 Col 3="0.00000000285549"
|
||||
Row 94 Col 1="4.3"
|
||||
Row 94 Col 3="0.00000000119347"
|
||||
Row 95 Col 1="4.4"
|
||||
Row 95 Col 3="0.000000000489171"
|
||||
Row 96 Col 1="4.5"
|
||||
Row 96 Col 3="0.000000000196616"
|
||||
Row 97 Col 1="4.6"
|
||||
Row 97 Col 3="7.74957E-11"
|
||||
Row 98 Col 1="4.7"
|
||||
Row 98 Col 3="2.99525E-11"
|
||||
Row 99 Col 1="4.8"
|
||||
Row 99 Col 3="1.13521E-11"
|
||||
Row 100 Col 1="4.9"
|
||||
Row 100 Col 3="4.21893E-12"
|
||||
[End Data]
|
||||
|
||||
[Titles]
|
||||
Title="The Complementary Error Function"
|
||||
Heading=""
|
||||
XAxisTitle="z"
|
||||
YAxisTitle="erfc(z)"
|
||||
[End Titles]
|
||||
|
||||
[Title Options]
|
||||
Title="00000000000000000024Arial"
|
||||
Heading="00000000000000000016Arial"
|
||||
YAxisTitle="00000000000000014.25Arial"
|
||||
XAxisTitle="00000000000000014.25Arial"
|
||||
YAxisVertical="1"
|
||||
[End Title Options]
|
||||
|
||||
[Background]
|
||||
Graph Background=16777215
|
||||
Page Colour=16777215
|
||||
Print Graph Background=1
|
||||
Print Page Colour=0
|
||||
[End Background]
|
||||
|
||||
[Axis]
|
||||
XMin=-3
|
||||
XMax=3
|
||||
YMin=0
|
||||
YMax=10
|
||||
MaxMinOptions="111100"
|
||||
Axis Style=1
|
||||
Logarithmic X Axis=0
|
||||
Logarithmic Y Axis=0
|
||||
Border Style=0
|
||||
[End Axis]
|
||||
|
||||
[Data Lines]
|
||||
Options="611000000000000000016777216117000000000000000016777216611000000000000000016777216611000000000000000016777216611000000000000000016777216611000000000000000016777216"
|
||||
[End Data Lines]
|
||||
|
||||
[Data Markers]
|
||||
Size 1=5
|
||||
Size 2=5
|
||||
Size 3=5
|
||||
Size 4=5
|
||||
Size 5=5
|
||||
Size 6=5
|
||||
[End Data Markers]
|
||||
|
||||
[Data Labels]
|
||||
Options="000100"
|
||||
Primary Font="00000000000000000010Arial"
|
||||
Secondary Font="00000000000000000010Arial"
|
||||
Spacing X Primary=1
|
||||
Spacing Y Primary=1
|
||||
Spacing X Secondary=1
|
||||
Spacing Y Secondary=1
|
||||
Spacing Adjustment=1
|
||||
[End Data Labels]
|
||||
|
||||
[Axis Markers]
|
||||
Options 1=1
|
||||
Spacing 1=1
|
||||
Colour 1="00000000"
|
||||
Options 2=1
|
||||
Spacing 2=1
|
||||
Colour 2="00000000"
|
||||
Options 3=0
|
||||
Spacing 3=1
|
||||
Colour 3="00000000"
|
||||
Options 4=0
|
||||
Spacing 4=1
|
||||
Colour 4="00000000"
|
||||
Style=1
|
||||
[End Axis Markers]
|
||||
|
||||
[Gridlines]
|
||||
Options="100000"
|
||||
Spacing X Primary=1
|
||||
Spacing Y Primary=1
|
||||
Spacing X Secondary=1
|
||||
Spacing Y Secondary=1
|
||||
Colour 1="00000000"
|
||||
Colour 2="00000000"
|
||||
Colour 3="14671839"
|
||||
Colour 4="14671839"
|
||||
[End Gridlines]
|
||||
|
||||
[Legend]
|
||||
X Position=22
|
||||
Y Position=10
|
||||
Style=2
|
||||
Font="00000000000000000010Arial"
|
||||
[End Legend]
|
||||
|
||||
[Best Fit Line 1]
|
||||
Options1="0100000000"
|
||||
Options2="0100000000"
|
||||
Options3="0100000000"
|
||||
Options4="0100000000"
|
||||
Options5="0100000000"
|
||||
Options6="0100000000"
|
||||
Options7="0100000000"
|
||||
Options8="0100000000"
|
||||
Options9="0100000000"
|
||||
[End Best Fit Line 1]
|
||||
|
||||
[Best Fit Line 2]
|
||||
Options1="0100000000"
|
||||
Options2="0100000000"
|
||||
Options3="0100000000"
|
||||
Options4="0100000000"
|
||||
Options5="0100000000"
|
||||
Options6="0100000000"
|
||||
Options7="0100000000"
|
||||
Options8="0100000000"
|
||||
Options9="0100000000"
|
||||
[End Best Fit Line 2]
|
||||
|
||||
[Best Fit Line 3]
|
||||
Options1="0100000000"
|
||||
Options2="0100000000"
|
||||
Options3="0100000000"
|
||||
Options4="0100000000"
|
||||
Options5="0100000000"
|
||||
Options6="0100000000"
|
||||
Options7="0100000000"
|
||||
Options8="0100000000"
|
||||
Options9="0100000000"
|
||||
[End Best Fit Line 3]
|
||||
|
||||
[Best Fit Line 4]
|
||||
Options1="0100000000"
|
||||
Options2="0100000000"
|
||||
Options3="0100000000"
|
||||
Options4="0100000000"
|
||||
Options5="0100000000"
|
||||
Options6="0100000000"
|
||||
Options7="0100000000"
|
||||
Options8="0100000000"
|
||||
Options9="0100000000"
|
||||
[End Best Fit Line 4]
|
||||
|
||||
[Best Fit Line 5]
|
||||
Options1="0100000000"
|
||||
Options2="0100000000"
|
||||
Options3="0100000000"
|
||||
Options4="0100000000"
|
||||
Options5="0100000000"
|
||||
Options6="0100000000"
|
||||
Options7="0100000000"
|
||||
Options8="0100000000"
|
||||
Options9="0100000000"
|
||||
[End Best Fit Line 5]
|
||||
|
||||
[Best Fit Line 6]
|
||||
Options1="0100000000"
|
||||
Options2="0100000000"
|
||||
Options3="0100000000"
|
||||
Options4="0100000000"
|
||||
Options5="0100000000"
|
||||
Options6="0100000000"
|
||||
Options7="0100000000"
|
||||
Options8="0100000000"
|
||||
Options9="0100000000"
|
||||
[End Best Fit Line 6]
|
||||
|
||||
[Best Fit Data 1]
|
||||
Options1=0
|
||||
Options2=0
|
||||
Options3=0
|
||||
Options4=0
|
||||
Options5=0
|
||||
Options6=0
|
||||
X Position=5
|
||||
Y Position=5
|
||||
Style=1
|
||||
Font="00000000000000000010Arial"
|
||||
Correlation Coefficient=0
|
||||
Accuracy=8
|
||||
SF Or DP=0
|
||||
Display Accuracy=0
|
||||
Display Trailing Zeros=0
|
||||
[End Best Fit Data 1]
|
||||
|
||||
[Best Fit Data 2]
|
||||
Options1=0
|
||||
Options2=0
|
||||
Options3=0
|
||||
Options4=0
|
||||
Options5=0
|
||||
Options6=0
|
||||
X Position=8
|
||||
Y Position=5
|
||||
Style=1
|
||||
Font="00000000000000000010Arial"
|
||||
Correlation Coefficient=0
|
||||
Accuracy=8
|
||||
SF Or DP=0
|
||||
Display Accuracy=0
|
||||
Display Trailing Zeros=0
|
||||
[End Best Fit Data 2]
|
||||
|
||||
[Best Fit Data 3]
|
||||
Options1=0
|
||||
Options2=0
|
||||
Options3=0
|
||||
Options4=0
|
||||
Options5=0
|
||||
Options6=0
|
||||
X Position=11
|
||||
Y Position=5
|
||||
Style=1
|
||||
Font="00000000000000000010Arial"
|
||||
Correlation Coefficient=0
|
||||
Accuracy=8
|
||||
SF Or DP=0
|
||||
Display Accuracy=0
|
||||
Display Trailing Zeros=0
|
||||
[End Best Fit Data 3]
|
||||
|
||||
[Best Fit Data 4]
|
||||
Options1=0
|
||||
Options2=0
|
||||
Options3=0
|
||||
Options4=0
|
||||
Options5=0
|
||||
Options6=0
|
||||
X Position=14
|
||||
Y Position=5
|
||||
Style=1
|
||||
Font="00000000000000000010Arial"
|
||||
Correlation Coefficient=0
|
||||
Accuracy=8
|
||||
SF Or DP=0
|
||||
Display Accuracy=0
|
||||
Display Trailing Zeros=0
|
||||
[End Best Fit Data 4]
|
||||
|
||||
[Best Fit Data 5]
|
||||
Options1=0
|
||||
Options2=0
|
||||
Options3=0
|
||||
Options4=0
|
||||
Options5=0
|
||||
Options6=0
|
||||
X Position=17
|
||||
Y Position=5
|
||||
Style=1
|
||||
Font="00000000000000000010Arial"
|
||||
Correlation Coefficient=0
|
||||
Accuracy=8
|
||||
SF Or DP=0
|
||||
Display Accuracy=0
|
||||
Display Trailing Zeros=0
|
||||
[End Best Fit Data 5]
|
||||
|
||||
[Best Fit Data 6]
|
||||
Options1=0
|
||||
Options2=0
|
||||
Options3=0
|
||||
Options4=0
|
||||
Options5=0
|
||||
Options6=0
|
||||
X Position=20
|
||||
Y Position=5
|
||||
Style=1
|
||||
Font="00000000000000000010Arial"
|
||||
Correlation Coefficient=0
|
||||
Accuracy=8
|
||||
SF Or DP=0
|
||||
Display Accuracy=0
|
||||
Display Trailing Zeros=0
|
||||
[End Best Fit Data 6]
|
||||
|
||||
[Equations]
|
||||
Equation 1=""
|
||||
Equation 2=""
|
||||
Equation 3=""
|
||||
Equation 4=""
|
||||
Equation 5=""
|
||||
Equation 6=""
|
||||
Equation 7=""
|
||||
Equation 8=""
|
||||
Equation 9=""
|
||||
Equation 10=""
|
||||
Equation 11=""
|
||||
Equation 12=""
|
||||
Angle Measurement=0
|
||||
[End Equations]
|
||||
|
||||
[Equation Options]
|
||||
Equation 1="0100000000"
|
||||
Equation 2="0100000000"
|
||||
Equation 3="0100000000"
|
||||
Equation 4="0100000000"
|
||||
Equation 5="0100000000"
|
||||
Equation 6="0100000000"
|
||||
Equation 7="0100000000"
|
||||
Equation 8="0100000000"
|
||||
Equation 9="0100000000"
|
||||
Equation 10="0100000000"
|
||||
Equation 11="0100000000"
|
||||
Equation 12="0100000000"
|
||||
[End Equation Options]
|
||||
|
||||
[Print Setup & Margins]
|
||||
Paper Size=9
|
||||
Orientation=2
|
||||
Left=2.5
|
||||
Right=2.5
|
||||
Top=2.5
|
||||
Bottom=2.5
|
||||
[End Print Setup & Margins]
|
||||
|
||||
[Datasheet]
|
||||
Column Width 1=1500
|
||||
Column Width 2=1500
|
||||
Column Width 3=1500
|
||||
Column Width 4=1500
|
||||
Column Width 5=1500
|
||||
Column Width 6=1500
|
||||
Column Width 7=1500
|
||||
Data Titles 1="Y1 Data"
|
||||
Data Titles 2="Y2 Data"
|
||||
Data Titles 3="Y3 Data"
|
||||
Data Titles 4="Y4 Data"
|
||||
Data Titles 5="Y5 Data"
|
||||
Data Titles 6="Y6 Data"
|
||||
[End Datasheet]
|
||||
|
||||
[Other Graph Options]
|
||||
Zoom Factor=1
|
||||
Auto Redraw=1
|
||||
[End Other Graph Options]
|
||||
|
||||
[End]
|
||||
BIN
doc/graphs/gamma.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
2545
doc/graphs/gamma.rgd
Normal file
2845
doc/graphs/gamma_P.rgd
Normal file
2845
doc/graphs/gamma_Q.rgd
Normal file
BIN
doc/graphs/gamma_p.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
doc/graphs/gamma_q.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
doc/graphs/lgamma-errors.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
861
doc/graphs/lgamma-errors.rgd
Normal file
@@ -0,0 +1,861 @@
|
||||
[RJS Graph Data File]
|
||||
|
||||
[Header]
|
||||
Version=3
|
||||
Revision=1
|
||||
[End Header]
|
||||
|
||||
[Data]
|
||||
Row 1 Col 1="0.573658"
|
||||
Row 1 Col 2="1.06179"
|
||||
Row 2 Col 1="0.936799"
|
||||
Row 2 Col 2="0.087223"
|
||||
Row 3 Col 1="0.966649"
|
||||
Row 3 Col 2="1.17713"
|
||||
Row 4 Col 1="1.6287"
|
||||
Row 4 Col 2="0.128814"
|
||||
Row 5 Col 1="2.3903"
|
||||
Row 5 Col 2="0.563205"
|
||||
Row 6 Col 1="2.71769"
|
||||
Row 6 Col 2="0.910891"
|
||||
Row 7 Col 1="3.09053"
|
||||
Row 7 Col 2="0.397122"
|
||||
Row 8 Col 1="3.31395"
|
||||
Row 8 Col 2="1.7688"
|
||||
Row 9 Col 1="3.5646"
|
||||
Row 9 Col 2="0.161767"
|
||||
Row 10 Col 1="3.69998"
|
||||
Row 10 Col 2="0.49558"
|
||||
Row 11 Col 1="5.85376"
|
||||
Row 11 Col 2="0.420313"
|
||||
Row 12 Col 1="6.37625"
|
||||
Row 12 Col 2="0.295316"
|
||||
Row 13 Col 1="6.66338"
|
||||
Row 13 Col 2="0.081716"
|
||||
Row 14 Col 1="6.87312"
|
||||
Row 14 Col 2="0.223833"
|
||||
Row 15 Col 1="6.89887"
|
||||
Row 15 Col 2="0.044851"
|
||||
Row 16 Col 1="7.15198"
|
||||
Row 16 Col 2="0.326014"
|
||||
Row 17 Col 1="7.29789"
|
||||
Row 17 Col 2="0.392902"
|
||||
Row 18 Col 1="8.10382"
|
||||
Row 18 Col 2="0.206294"
|
||||
Row 19 Col 1="8.4204"
|
||||
Row 19 Col 2="0.185776"
|
||||
Row 20 Col 1="8.61433"
|
||||
Row 20 Col 2="0.509063"
|
||||
Row 21 Col 1="9.02146"
|
||||
Row 21 Col 2="0.157917"
|
||||
Row 22 Col 1="9.24382"
|
||||
Row 22 Col 2="0.185161"
|
||||
Row 23 Col 1="9.59838"
|
||||
Row 23 Col 2="0.158553"
|
||||
Row 24 Col 1="9.94039"
|
||||
Row 24 Col 2="0.218269"
|
||||
Row 25 Col 1="10.2528"
|
||||
Row 25 Col 2="0.353454"
|
||||
Row 26 Col 1="10.64"
|
||||
Row 26 Col 2="0.188359"
|
||||
Row 27 Col 1="10.7995"
|
||||
Row 27 Col 2="0.128287"
|
||||
Row 28 Col 1="11.9653"
|
||||
Row 28 Col 2="0.293258"
|
||||
Row 29 Col 1="13.5284"
|
||||
Row 29 Col 2="0.233092"
|
||||
Row 30 Col 1="15.1801"
|
||||
Row 30 Col 2="0.0988051"
|
||||
Row 31 Col 1="15.2026"
|
||||
Row 31 Col 2="0.0927671"
|
||||
Row 32 Col 1="15.5206"
|
||||
Row 32 Col 2="0.0810414"
|
||||
Row 33 Col 1="15.6443"
|
||||
Row 33 Col 2="0.0480217"
|
||||
Row 34 Col 1="16.2343"
|
||||
Row 34 Col 2="0.040413"
|
||||
Row 35 Col 1="16.7734"
|
||||
Row 35 Col 2="0.0771824"
|
||||
Row 36 Col 1="16.8963"
|
||||
Row 36 Col 2="0.223413"
|
||||
Row 37 Col 1="17.1123"
|
||||
Row 37 Col 2="0.118707"
|
||||
Row 38 Col 1="17.9737"
|
||||
Row 38 Col 2="0.479824"
|
||||
Row 39 Col 1="19.0801"
|
||||
Row 39 Col 2="0.0531117"
|
||||
Row 40 Col 1="19.2999"
|
||||
Row 40 Col 2="0.301643"
|
||||
Row 41 Col 1="19.4354"
|
||||
Row 41 Col 2="0.421435"
|
||||
Row 42 Col 1="19.5171"
|
||||
Row 42 Col 2="0.0421818"
|
||||
Row 43 Col 1="20.1567"
|
||||
Row 43 Col 2="0.400188"
|
||||
Row 44 Col 1="21.3395"
|
||||
Row 44 Col 2="0.26028"
|
||||
Row 45 Col 1="21.6213"
|
||||
Row 45 Col 2="0.0930471"
|
||||
Row 46 Col 1="21.9813"
|
||||
Row 46 Col 2="0.282799"
|
||||
Row 47 Col 1="22.2327"
|
||||
Row 47 Col 2="0.134362"
|
||||
Row 48 Col 1="22.2494"
|
||||
Row 48 Col 2="0.033424"
|
||||
Row 49 Col 1="22.5018"
|
||||
Row 49 Col 2="0.196203"
|
||||
Row 50 Col 1="22.6474"
|
||||
Row 50 Col 2="0.0320561"
|
||||
Row 51 Col 1="23.4924"
|
||||
Row 51 Col 2="0.0263858"
|
||||
Row 52 Col 1="23.8083"
|
||||
Row 52 Col 2="0.159562"
|
||||
Row 53 Col 1="23.9182"
|
||||
Row 53 Col 2="0.0256019"
|
||||
Row 54 Col 1="24.6726"
|
||||
Row 54 Col 2="0.134197"
|
||||
Row 55 Col 1="25.0453"
|
||||
Row 55 Col 2="0.191212"
|
||||
Row 56 Col 1="25.1881"
|
||||
Row 56 Col 2="0.286848"
|
||||
Row 57 Col 1="25.4061"
|
||||
Row 57 Col 2="0.0800683"
|
||||
Row 58 Col 1="25.978"
|
||||
Row 58 Col 2="0.00380955"
|
||||
Row 59 Col 1="25.9899"
|
||||
Row 59 Col 2="0.220575"
|
||||
Row 60 Col 1="26.4033"
|
||||
Row 60 Col 2="0.288751"
|
||||
Row 61 Col 1="26.6079"
|
||||
Row 61 Col 2="0.257547"
|
||||
Row 62 Col 1="26.7559"
|
||||
Row 62 Col 2="0.015267"
|
||||
Row 63 Col 1="27.104"
|
||||
Row 63 Col 2="0.124461"
|
||||
Row 64 Col 1="27.2223"
|
||||
Row 64 Col 2="0.140792"
|
||||
Row 65 Col 1="27.6089"
|
||||
Row 65 Col 2="0.146549"
|
||||
Row 66 Col 1="27.7335"
|
||||
Row 66 Col 2="0.120615"
|
||||
Row 67 Col 1="28.0374"
|
||||
Row 67 Col 2="0.24716"
|
||||
Row 68 Col 1="28.3858"
|
||||
Row 68 Col 2="0.455321"
|
||||
Row 69 Col 1="28.9995"
|
||||
Row 69 Col 2="0.463621"
|
||||
Row 70 Col 1="29.1163"
|
||||
Row 70 Col 2="0.00778465"
|
||||
Row 71 Col 1="29.5743"
|
||||
Row 71 Col 2="0.415616"
|
||||
Row 72 Col 1="29.8313"
|
||||
Row 72 Col 2="0.387994"
|
||||
Row 73 Col 1="29.8673"
|
||||
Row 73 Col 2="0.359266"
|
||||
Row 74 Col 1="30.4841"
|
||||
Row 74 Col 2="0.11361"
|
||||
Row 75 Col 1="30.8961"
|
||||
Row 75 Col 2="0.22163"
|
||||
Row 76 Col 1="31.531"
|
||||
Row 76 Col 2="0.310734"
|
||||
Row 77 Col 1="31.6199"
|
||||
Row 77 Col 2="0.268465"
|
||||
Row 78 Col 1="32.4448"
|
||||
Row 78 Col 2="0.354224"
|
||||
Row 79 Col 1="32.4741"
|
||||
Row 79 Col 2="0.0234717"
|
||||
Row 80 Col 1="32.5307"
|
||||
Row 80 Col 2="0.14024"
|
||||
Row 81 Col 1="32.5828"
|
||||
Row 81 Col 2="0.161276"
|
||||
Row 82 Col 1="33.1381"
|
||||
Row 82 Col 2="0.20756"
|
||||
Row 83 Col 1="33.5195"
|
||||
Row 83 Col 2="0.185495"
|
||||
Row 84 Col 1="33.8063"
|
||||
Row 84 Col 2="0.055221"
|
||||
Row 85 Col 1="34.1499"
|
||||
Row 85 Col 2="0.0584111"
|
||||
Row 86 Col 1="34.2456"
|
||||
Row 86 Col 2="0.0929564"
|
||||
Row 87 Col 1="34.7813"
|
||||
Row 87 Col 2="0.283671"
|
||||
Row 88 Col 1="36.3228"
|
||||
Row 88 Col 2="0.201649"
|
||||
Row 89 Col 1="36.3776"
|
||||
Row 89 Col 2="0.321063"
|
||||
Row 90 Col 1="36.7104"
|
||||
Row 90 Col 2="0.0483707"
|
||||
Row 91 Col 1="36.7897"
|
||||
Row 91 Col 2="0.183286"
|
||||
Row 92 Col 1="36.9714"
|
||||
Row 92 Col 2="0.279589"
|
||||
Row 93 Col 1="37.3827"
|
||||
Row 93 Col 2="0.301593"
|
||||
Row 94 Col 1="37.6845"
|
||||
Row 94 Col 2="0.116046"
|
||||
Row 95 Col 1="37.7991"
|
||||
Row 95 Col 2="0.338908"
|
||||
Row 96 Col 1="38.9071"
|
||||
Row 96 Col 2="0.0219319"
|
||||
Row 97 Col 1="38.9609"
|
||||
Row 97 Col 2="0.0536227"
|
||||
Row 98 Col 1="39.3271"
|
||||
Row 98 Col 2="0.232647"
|
||||
Row 99 Col 1="39.9182"
|
||||
Row 99 Col 2="0.229211"
|
||||
Row 100 Col 1="39.9826"
|
||||
Row 100 Col 2="0.175173"
|
||||
Row 101 Col 1="41.5564"
|
||||
Row 101 Col 2="0.125688"
|
||||
Row 102 Col 1="41.6215"
|
||||
Row 102 Col 2="0.191173"
|
||||
Row 103 Col 1="42.0497"
|
||||
Row 103 Col 2="0.0926172"
|
||||
Row 104 Col 1="42.0683"
|
||||
Row 104 Col 2="0.0358085"
|
||||
Row 105 Col 1="42.3927"
|
||||
Row 105 Col 2="0.069999"
|
||||
Row 106 Col 1="42.7624"
|
||||
Row 106 Col 2="0.0675815"
|
||||
Row 107 Col 1="43.4554"
|
||||
Row 107 Col 2="0.0337531"
|
||||
Row 108 Col 1="44.2146"
|
||||
Row 108 Col 2="0.0192197"
|
||||
Row 109 Col 1="44.3571"
|
||||
Row 109 Col 2="0.231524"
|
||||
Row 110 Col 1="44.6918"
|
||||
Row 110 Col 2="0.0840526"
|
||||
Row 111 Col 1="44.7701"
|
||||
Row 111 Col 2="0.160911"
|
||||
Row 112 Col 1="45.1921"
|
||||
Row 112 Col 2="0.187088"
|
||||
Row 113 Col 1="45.5406"
|
||||
Row 113 Col 2="0.130933"
|
||||
Row 114 Col 1="45.8031"
|
||||
Row 114 Col 2="0.342276"
|
||||
Row 115 Col 1="46.0389"
|
||||
Row 115 Col 2="0.377617"
|
||||
Row 116 Col 1="46.1053"
|
||||
Row 116 Col 2="0.292506"
|
||||
Row 117 Col 1="46.9636"
|
||||
Row 117 Col 2="0.4589"
|
||||
Row 118 Col 1="47.4643"
|
||||
Row 118 Col 2="0.236163"
|
||||
Row 119 Col 1="47.9081"
|
||||
Row 119 Col 2="0.376537"
|
||||
Row 120 Col 1="47.9908"
|
||||
Row 120 Col 2="0.450429"
|
||||
Row 121 Col 1="47.9981"
|
||||
Row 121 Col 2="0.454063"
|
||||
Row 122 Col 1="48.0228"
|
||||
Row 122 Col 2="0.178327"
|
||||
Row 123 Col 1="48.3458"
|
||||
Row 123 Col 2="0.247015"
|
||||
Row 124 Col 1="48.7126"
|
||||
Row 124 Col 2="0.320847"
|
||||
Row 125 Col 1="48.8352"
|
||||
Row 125 Col 2="0.422674"
|
||||
Row 126 Col 1="49.577"
|
||||
Row 126 Col 2="0.19531"
|
||||
Row 127 Col 1="50.2243"
|
||||
Row 127 Col 2="0.304229"
|
||||
Row 128 Col 1="50.5987"
|
||||
Row 128 Col 2="0.172321"
|
||||
Row 129 Col 1="50.8639"
|
||||
Row 129 Col 2="0.406702"
|
||||
Row 130 Col 1="51.0265"
|
||||
Row 130 Col 2="0.0224364"
|
||||
Row 131 Col 1="51.5091"
|
||||
Row 131 Col 2="0.07219"
|
||||
Row 132 Col 1="51.6204"
|
||||
Row 132 Col 2="0.384749"
|
||||
Row 133 Col 1="51.6666"
|
||||
Row 133 Col 2="0.244284"
|
||||
Row 134 Col 1="51.9815"
|
||||
Row 134 Col 2="0.0423492"
|
||||
Row 135 Col 1="52.4497"
|
||||
Row 135 Col 2="0.118127"
|
||||
Row 136 Col 1="52.5038"
|
||||
Row 136 Col 2="0.264395"
|
||||
Row 137 Col 1="52.6016"
|
||||
Row 137 Col 2="0.218379"
|
||||
Row 138 Col 1="52.7679"
|
||||
Row 138 Col 2="0.344669"
|
||||
Row 139 Col 1="53.1915"
|
||||
Row 139 Col 2="0.132533"
|
||||
Row 140 Col 1="54.5579"
|
||||
Row 140 Col 2="0.11858"
|
||||
Row 141 Col 1="55.2123"
|
||||
Row 141 Col 2="0.306625"
|
||||
Row 142 Col 1="55.3918"
|
||||
Row 142 Col 2="0.272723"
|
||||
Row 143 Col 1="55.7069"
|
||||
Row 143 Col 2="0.186475"
|
||||
Row 144 Col 1="56.3326"
|
||||
Row 144 Col 2="0.154419"
|
||||
Row 145 Col 1="56.5418"
|
||||
Row 145 Col 2="0.239766"
|
||||
Row 146 Col 1="57.1749"
|
||||
Row 146 Col 2="0.226001"
|
||||
Row 147 Col 1="57.5681"
|
||||
Row 147 Col 2="0.194197"
|
||||
Row 148 Col 1="59.2712"
|
||||
Row 148 Col 2="0.000307107"
|
||||
Row 149 Col 1="59.3422"
|
||||
Row 149 Col 2="0.342057"
|
||||
Row 150 Col 1="59.4129"
|
||||
Row 150 Col 2="0.173638"
|
||||
Row 151 Col 1="59.9733"
|
||||
Row 151 Col 2="0.299951"
|
||||
Row 152 Col 1="60.2563"
|
||||
Row 152 Col 2="0.301622"
|
||||
Row 153 Col 1="60.3724"
|
||||
Row 153 Col 2="0.201645"
|
||||
Row 154 Col 1="60.3896"
|
||||
Row 154 Col 2="0.044565"
|
||||
Row 155 Col 1="60.7298"
|
||||
Row 155 Col 2="0.334822"
|
||||
Row 156 Col 1="61.2768"
|
||||
Row 156 Col 2="0.248754"
|
||||
Row 157 Col 1="61.6403"
|
||||
Row 157 Col 2="0.160511"
|
||||
Row 158 Col 1="62.2273"
|
||||
Row 158 Col 2="0.119294"
|
||||
Row 159 Col 1="62.2499"
|
||||
Row 159 Col 2="0.205075"
|
||||
Row 160 Col 1="62.5085"
|
||||
Row 160 Col 2="0.100179"
|
||||
Row 161 Col 1="63.3169"
|
||||
Row 161 Col 2="0.211769"
|
||||
Row 162 Col 1="63.4267"
|
||||
Row 162 Col 2="0.0530162"
|
||||
Row 163 Col 1="63.7625"
|
||||
Row 163 Col 2="0.262992"
|
||||
Row 164 Col 1="64.5089"
|
||||
Row 164 Col 2="0.178713"
|
||||
Row 165 Col 1="64.9995"
|
||||
Row 165 Col 2="0.220863"
|
||||
Row 166 Col 1="66.4963"
|
||||
Row 166 Col 2="0.16069"
|
||||
Row 167 Col 1="67.4312"
|
||||
Row 167 Col 2="0.114761"
|
||||
Row 168 Col 1="67.5505"
|
||||
Row 168 Col 2="0.153904"
|
||||
Row 169 Col 1="68.0505"
|
||||
Row 169 Col 2="0.101985"
|
||||
Row 170 Col 1="68.0837"
|
||||
Row 170 Col 2="0.171501"
|
||||
Row 171 Col 1="68.7745"
|
||||
Row 171 Col 2="0.181391"
|
||||
Row 172 Col 1="68.7925"
|
||||
Row 172 Col 2="0.268341"
|
||||
Row 173 Col 1="68.8721"
|
||||
Row 173 Col 2="0.14794"
|
||||
Row 174 Col 1="69.2532"
|
||||
Row 174 Col 2="0.0695778"
|
||||
Row 175 Col 1="70.0033"
|
||||
Row 175 Col 2="0.166476"
|
||||
Row 176 Col 1="70.1519"
|
||||
Row 176 Col 2="0.119376"
|
||||
Row 177 Col 1="70.197"
|
||||
Row 177 Col 2="0.252533"
|
||||
Row 178 Col 1="70.3384"
|
||||
Row 178 Col 2="0.0321113"
|
||||
Row 179 Col 1="70.559"
|
||||
Row 179 Col 2="0.26156"
|
||||
Row 180 Col 1="70.6382"
|
||||
Row 180 Col 2="0.0101029"
|
||||
Row 181 Col 1="70.9341"
|
||||
Row 181 Col 2="0.248346"
|
||||
Row 182 Col 1="71.2755"
|
||||
Row 182 Col 2="0.110266"
|
||||
Row 183 Col 1="72.1785"
|
||||
Row 183 Col 2="0.14937"
|
||||
Row 184 Col 1="72.2652"
|
||||
Row 184 Col 2="0.0346589"
|
||||
Row 185 Col 1="72.6437"
|
||||
Row 185 Col 2="0.0329968"
|
||||
Row 186 Col 1="73.7032"
|
||||
Row 186 Col 2="0.251412"
|
||||
Row 187 Col 1="73.8557"
|
||||
Row 187 Col 2="0.113831"
|
||||
Row 188 Col 1="75.7063"
|
||||
Row 188 Col 2="0.110486"
|
||||
Row 189 Col 1="75.7281"
|
||||
Row 189 Col 2="0.0187061"
|
||||
Row 190 Col 1="75.89"
|
||||
Row 190 Col 2="0.143127"
|
||||
Row 191 Col 1="76.0954"
|
||||
Row 191 Col 2="0.0302385"
|
||||
Row 192 Col 1="76.3179"
|
||||
Row 192 Col 2="0.0933785"
|
||||
Row 193 Col 1="76.4728"
|
||||
Row 193 Col 2="0.235934"
|
||||
Row 194 Col 1="77.1482"
|
||||
Row 194 Col 2="0.379216"
|
||||
Row 195 Col 1="77.4653"
|
||||
Row 195 Col 2="0.050798"
|
||||
Row 196 Col 1="77.7201"
|
||||
Row 196 Col 2="0.19563"
|
||||
Row 197 Col 1="77.7291"
|
||||
Row 197 Col 2="0.398262"
|
||||
Row 198 Col 1="77.9539"
|
||||
Row 198 Col 2="0.288536"
|
||||
Row 199 Col 1="78.4515"
|
||||
Row 199 Col 2="0.0357685"
|
||||
Row 200 Col 1="78.4702"
|
||||
Row 200 Col 2="0.172303"
|
||||
Row 201 Col 1="78.724"
|
||||
Row 201 Col 2="0.158785"
|
||||
Row 202 Col 1="78.9877"
|
||||
Row 202 Col 2="0.315181"
|
||||
Row 203 Col 1="79.7537"
|
||||
Row 203 Col 2="0.451458"
|
||||
Row 204 Col 1="79.9625"
|
||||
Row 204 Col 2="0.106829"
|
||||
Row 205 Col 1="80.3676"
|
||||
Row 205 Col 2="0.0483834"
|
||||
Row 206 Col 1="80.7884"
|
||||
Row 206 Col 2="0.0457137"
|
||||
Row 207 Col 1="80.8477"
|
||||
Row 207 Col 2="0.393377"
|
||||
Row 208 Col 1="81.0022"
|
||||
Row 208 Col 2="0.00199631"
|
||||
Row 209 Col 1="81.7499"
|
||||
Row 209 Col 2="0.0410965"
|
||||
Row 210 Col 1="81.7521"
|
||||
Row 210 Col 2="0.0662272"
|
||||
Row 211 Col 1="82.5392"
|
||||
Row 211 Col 2="0.427823"
|
||||
Row 212 Col 1="83.4592"
|
||||
Row 212 Col 2="0.157679"
|
||||
Row 213 Col 1="84.0438"
|
||||
Row 213 Col 2="0.3317"
|
||||
Row 214 Col 1="84.358"
|
||||
Row 214 Col 2="0.0834512"
|
||||
Row 215 Col 1="84.4233"
|
||||
Row 215 Col 2="0.367495"
|
||||
Row 216 Col 1="84.6388"
|
||||
Row 216 Col 2="0.435108"
|
||||
Row 217 Col 1="84.8391"
|
||||
Row 217 Col 2="0.211916"
|
||||
Row 218 Col 1="86.0472"
|
||||
Row 218 Col 2="0.0749485"
|
||||
Row 219 Col 1="86.2885"
|
||||
Row 219 Col 2="0.212192"
|
||||
Row 220 Col 1="87.0548"
|
||||
Row 220 Col 2="0.385465"
|
||||
Row 221 Col 1="87.1454"
|
||||
Row 221 Col 2="0.0129429"
|
||||
Row 222 Col 1="87.1774"
|
||||
Row 222 Col 2="0.155138"
|
||||
Row 223 Col 1="87.2291"
|
||||
Row 223 Col 2="0.224448"
|
||||
Row 224 Col 1="87.739"
|
||||
Row 224 Col 2="0.277629"
|
||||
Row 225 Col 1="87.7545"
|
||||
Row 225 Col 2="0.302834"
|
||||
Row 226 Col 1="87.7796"
|
||||
Row 226 Col 2="0.00100196"
|
||||
Row 227 Col 1="88.2503"
|
||||
Row 227 Col 2="0.265075"
|
||||
Row 228 Col 1="88.5412"
|
||||
Row 228 Col 2="0.356072"
|
||||
Row 229 Col 1="89.1228"
|
||||
Row 229 Col 2="0.0324637"
|
||||
Row 230 Col 1="89.3623"
|
||||
Row 230 Col 2="0.176288"
|
||||
Row 231 Col 1="89.5224"
|
||||
Row 231 Col 2="0.176766"
|
||||
Row 232 Col 1="89.9167"
|
||||
Row 232 Col 2="0.303121"
|
||||
Row 233 Col 1="90.1138"
|
||||
Row 233 Col 2="0.109479"
|
||||
Row 234 Col 1="90.1902"
|
||||
Row 234 Col 2="0.112221"
|
||||
Row 235 Col 1="91.212"
|
||||
Row 235 Col 2="0.332107"
|
||||
Row 236 Col 1="91.6032"
|
||||
Row 236 Col 2="0.33158"
|
||||
Row 237 Col 1="91.7048"
|
||||
Row 237 Col 2="0.162844"
|
||||
Row 238 Col 1="91.7752"
|
||||
Row 238 Col 2="0.367326"
|
||||
Row 239 Col 1="92.5002"
|
||||
Row 239 Col 2="0.185224"
|
||||
Row 240 Col 1="93.8834"
|
||||
Row 240 Col 2="0.24186"
|
||||
Row 241 Col 1="94.19"
|
||||
Row 241 Col 2="0.165762"
|
||||
Row 242 Col 1="94.3966"
|
||||
Row 242 Col 2="0.3373"
|
||||
Row 243 Col 1="94.6083"
|
||||
Row 243 Col 2="0.241734"
|
||||
Row 244 Col 1="94.663"
|
||||
Row 244 Col 2="0.280881"
|
||||
Row 245 Col 1="94.957"
|
||||
Row 245 Col 2="0.376938"
|
||||
Row 246 Col 1="95.3328"
|
||||
Row 246 Col 2="0.258449"
|
||||
Row 247 Col 1="97.0803"
|
||||
Row 247 Col 2="0.0446931"
|
||||
Row 248 Col 1="97.3635"
|
||||
Row 248 Col 2="0.265776"
|
||||
Row 249 Col 1="97.5189"
|
||||
Row 249 Col 2="0.0702773"
|
||||
Row 250 Col 1="97.7269"
|
||||
Row 250 Col 2="0.0498009"
|
||||
Row 251 Col 1="97.7287"
|
||||
Row 251 Col 2="0.119658"
|
||||
Row 252 Col 1="97.8556"
|
||||
Row 252 Col 2="0.267283"
|
||||
Row 253 Col 1="97.958"
|
||||
Row 253 Col 2="0.32148"
|
||||
Row 254 Col 1="98.0654"
|
||||
Row 254 Col 2="0.0780807"
|
||||
Row 255 Col 1="98.1229"
|
||||
Row 255 Col 2="0.092767"
|
||||
Row 256 Col 1="98.1779"
|
||||
Row 256 Col 2="0.0262787"
|
||||
Row 257 Col 1="98.4935"
|
||||
Row 257 Col 2="0.273011"
|
||||
Row 258 Col 1="98.6704"
|
||||
Row 258 Col 2="0.279605"
|
||||
[End Data]
|
||||
|
||||
[Titles]
|
||||
Title="Errors in the lgamma Function"
|
||||
Heading=""
|
||||
XAxisTitle="z"
|
||||
YAxisTitle="Error / Epsilon"
|
||||
[End Titles]
|
||||
|
||||
[Title Options]
|
||||
Title="00000000000000000024Arial"
|
||||
Heading="00000000000000000016Arial"
|
||||
YAxisTitle="00000000000000014.25Arial"
|
||||
XAxisTitle="00000000000000014.25Arial"
|
||||
YAxisVertical="1"
|
||||
[End Title Options]
|
||||
|
||||
[Background]
|
||||
Graph Background=16777215
|
||||
Page Colour=16777215
|
||||
Print Graph Background=1
|
||||
Print Page Colour=0
|
||||
[End Background]
|
||||
|
||||
[Axis]
|
||||
XMin=0
|
||||
XMax=10
|
||||
YMin=0
|
||||
YMax=10
|
||||
MaxMinOptions="000000"
|
||||
Axis Style=1
|
||||
Logarithmic X Axis=0
|
||||
Logarithmic Y Axis=0
|
||||
Border Style=0
|
||||
[End Axis]
|
||||
|
||||
[Data Lines]
|
||||
Options="61D000000000842163116777216611000000000000000016777216611000000000000000016777216611000000000000000016777216611000000000000000016777216611000000000000000016777216"
|
||||
[End Data Lines]
|
||||
|
||||
[Data Markers]
|
||||
Size 1=2
|
||||
Size 2=5
|
||||
Size 3=5
|
||||
Size 4=5
|
||||
Size 5=5
|
||||
Size 6=5
|
||||
[End Data Markers]
|
||||
|
||||
[Data Labels]
|
||||
Options="000100"
|
||||
Primary Font="00000000000000000010Arial"
|
||||
Secondary Font="00000000000000000010Arial"
|
||||
Spacing X Primary=10
|
||||
Spacing Y Primary=1
|
||||
Spacing X Secondary=1
|
||||
Spacing Y Secondary=1
|
||||
Spacing Adjustment=1
|
||||
[End Data Labels]
|
||||
|
||||
[Axis Markers]
|
||||
Options 1=1
|
||||
Spacing 1=10
|
||||
Colour 1="00000000"
|
||||
Options 2=1
|
||||
Spacing 2=1
|
||||
Colour 2="00000000"
|
||||
Options 3=0
|
||||
Spacing 3=1
|
||||
Colour 3="00000000"
|
||||
Options 4=0
|
||||
Spacing 4=1
|
||||
Colour 4="00000000"
|
||||
Style=1
|
||||
[End Axis Markers]
|
||||
|
||||
[Gridlines]
|
||||
Options="010011"
|
||||
Spacing X Primary=10
|
||||
Spacing Y Primary=1
|
||||
Spacing X Secondary=1
|
||||
Spacing Y Secondary=1
|
||||
Colour 1="00000000"
|
||||
Colour 2="00000000"
|
||||
Colour 3="14671839"
|
||||
Colour 4="14671839"
|
||||
[End Gridlines]
|
||||
|
||||
[Legend]
|
||||
X Position=22
|
||||
Y Position=10
|
||||
Style=2
|
||||
Font="00000000000000000010Arial"
|
||||
[End Legend]
|
||||
|
||||
[Best Fit Line 1]
|
||||
Options1="0100000000"
|
||||
Options2="0100000000"
|
||||
Options3="0100000000"
|
||||
Options4="0100000000"
|
||||
Options5="0100000000"
|
||||
Options6="0100000000"
|
||||
Options7="0100000000"
|
||||
Options8="0100000000"
|
||||
Options9="0100000000"
|
||||
[End Best Fit Line 1]
|
||||
|
||||
[Best Fit Line 2]
|
||||
Options1="0100000000"
|
||||
Options2="0100000000"
|
||||
Options3="0100000000"
|
||||
Options4="0100000000"
|
||||
Options5="0100000000"
|
||||
Options6="0100000000"
|
||||
Options7="0100000000"
|
||||
Options8="0100000000"
|
||||
Options9="0100000000"
|
||||
[End Best Fit Line 2]
|
||||
|
||||
[Best Fit Line 3]
|
||||
Options1="0100000000"
|
||||
Options2="0100000000"
|
||||
Options3="0100000000"
|
||||
Options4="0100000000"
|
||||
Options5="0100000000"
|
||||
Options6="0100000000"
|
||||
Options7="0100000000"
|
||||
Options8="0100000000"
|
||||
Options9="0100000000"
|
||||
[End Best Fit Line 3]
|
||||
|
||||
[Best Fit Line 4]
|
||||
Options1="0100000000"
|
||||
Options2="0100000000"
|
||||
Options3="0100000000"
|
||||
Options4="0100000000"
|
||||
Options5="0100000000"
|
||||
Options6="0100000000"
|
||||
Options7="0100000000"
|
||||
Options8="0100000000"
|
||||
Options9="0100000000"
|
||||
[End Best Fit Line 4]
|
||||
|
||||
[Best Fit Line 5]
|
||||
Options1="0100000000"
|
||||
Options2="0100000000"
|
||||
Options3="0100000000"
|
||||
Options4="0100000000"
|
||||
Options5="0100000000"
|
||||
Options6="0100000000"
|
||||
Options7="0100000000"
|
||||
Options8="0100000000"
|
||||
Options9="0100000000"
|
||||
[End Best Fit Line 5]
|
||||
|
||||
[Best Fit Line 6]
|
||||
Options1="0100000000"
|
||||
Options2="0100000000"
|
||||
Options3="0100000000"
|
||||
Options4="0100000000"
|
||||
Options5="0100000000"
|
||||
Options6="0100000000"
|
||||
Options7="0100000000"
|
||||
Options8="0100000000"
|
||||
Options9="0100000000"
|
||||
[End Best Fit Line 6]
|
||||
|
||||
[Best Fit Data 1]
|
||||
Options1=0
|
||||
Options2=0
|
||||
Options3=0
|
||||
Options4=0
|
||||
Options5=0
|
||||
Options6=0
|
||||
X Position=5
|
||||
Y Position=5
|
||||
Style=1
|
||||
Font="00000000000000000010Arial"
|
||||
Correlation Coefficient=0
|
||||
Accuracy=8
|
||||
SF Or DP=0
|
||||
Display Accuracy=0
|
||||
Display Trailing Zeros=0
|
||||
[End Best Fit Data 1]
|
||||
|
||||
[Best Fit Data 2]
|
||||
Options1=0
|
||||
Options2=0
|
||||
Options3=0
|
||||
Options4=0
|
||||
Options5=0
|
||||
Options6=0
|
||||
X Position=8
|
||||
Y Position=5
|
||||
Style=1
|
||||
Font="00000000000000000010Arial"
|
||||
Correlation Coefficient=0
|
||||
Accuracy=8
|
||||
SF Or DP=0
|
||||
Display Accuracy=0
|
||||
Display Trailing Zeros=0
|
||||
[End Best Fit Data 2]
|
||||
|
||||
[Best Fit Data 3]
|
||||
Options1=0
|
||||
Options2=0
|
||||
Options3=0
|
||||
Options4=0
|
||||
Options5=0
|
||||
Options6=0
|
||||
X Position=11
|
||||
Y Position=5
|
||||
Style=1
|
||||
Font="00000000000000000010Arial"
|
||||
Correlation Coefficient=0
|
||||
Accuracy=8
|
||||
SF Or DP=0
|
||||
Display Accuracy=0
|
||||
Display Trailing Zeros=0
|
||||
[End Best Fit Data 3]
|
||||
|
||||
[Best Fit Data 4]
|
||||
Options1=0
|
||||
Options2=0
|
||||
Options3=0
|
||||
Options4=0
|
||||
Options5=0
|
||||
Options6=0
|
||||
X Position=14
|
||||
Y Position=5
|
||||
Style=1
|
||||
Font="00000000000000000010Arial"
|
||||
Correlation Coefficient=0
|
||||
Accuracy=8
|
||||
SF Or DP=0
|
||||
Display Accuracy=0
|
||||
Display Trailing Zeros=0
|
||||
[End Best Fit Data 4]
|
||||
|
||||
[Best Fit Data 5]
|
||||
Options1=0
|
||||
Options2=0
|
||||
Options3=0
|
||||
Options4=0
|
||||
Options5=0
|
||||
Options6=0
|
||||
X Position=17
|
||||
Y Position=5
|
||||
Style=1
|
||||
Font="00000000000000000010Arial"
|
||||
Correlation Coefficient=0
|
||||
Accuracy=8
|
||||
SF Or DP=0
|
||||
Display Accuracy=0
|
||||
Display Trailing Zeros=0
|
||||
[End Best Fit Data 5]
|
||||
|
||||
[Best Fit Data 6]
|
||||
Options1=0
|
||||
Options2=0
|
||||
Options3=0
|
||||
Options4=0
|
||||
Options5=0
|
||||
Options6=0
|
||||
X Position=20
|
||||
Y Position=5
|
||||
Style=1
|
||||
Font="00000000000000000010Arial"
|
||||
Correlation Coefficient=0
|
||||
Accuracy=8
|
||||
SF Or DP=0
|
||||
Display Accuracy=0
|
||||
Display Trailing Zeros=0
|
||||
[End Best Fit Data 6]
|
||||
|
||||
[Equations]
|
||||
Equation 1=""
|
||||
Equation 2=""
|
||||
Equation 3=""
|
||||
Equation 4=""
|
||||
Equation 5=""
|
||||
Equation 6=""
|
||||
Equation 7=""
|
||||
Equation 8=""
|
||||
Equation 9=""
|
||||
Equation 10=""
|
||||
Equation 11=""
|
||||
Equation 12=""
|
||||
Angle Measurement=0
|
||||
[End Equations]
|
||||
|
||||
[Equation Options]
|
||||
Equation 1="0100000000"
|
||||
Equation 2="0100000000"
|
||||
Equation 3="0100000000"
|
||||
Equation 4="0100000000"
|
||||
Equation 5="0100000000"
|
||||
Equation 6="0100000000"
|
||||
Equation 7="0100000000"
|
||||
Equation 8="0100000000"
|
||||
Equation 9="0100000000"
|
||||
Equation 10="0100000000"
|
||||
Equation 11="0100000000"
|
||||
Equation 12="0100000000"
|
||||
[End Equation Options]
|
||||
|
||||
[Print Setup & Margins]
|
||||
Paper Size=9
|
||||
Orientation=2
|
||||
Left=2.5
|
||||
Right=2.5
|
||||
Top=2.5
|
||||
Bottom=2.5
|
||||
[End Print Setup & Margins]
|
||||
|
||||
[Datasheet]
|
||||
Column Width 1=1500
|
||||
Column Width 2=1500
|
||||
Column Width 3=1500
|
||||
Column Width 4=1500
|
||||
Column Width 5=1500
|
||||
Column Width 6=1500
|
||||
Column Width 7=1500
|
||||
Data Titles 1="Y1 Data"
|
||||
Data Titles 2="Y2 Data"
|
||||
Data Titles 3="Y3 Data"
|
||||
Data Titles 4="Y4 Data"
|
||||
Data Titles 5="Y5 Data"
|
||||
Data Titles 6="Y6 Data"
|
||||
[End Datasheet]
|
||||
|
||||
[Other Graph Options]
|
||||
Zoom Factor=1
|
||||
Auto Redraw=1
|
||||
[End Other Graph Options]
|
||||
|
||||
[End]
|
||||
BIN
doc/graphs/lgamma.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |