Imported Upstream version 1.64.0
[platform/upstream/boost.git] / libs / math / doc / html / math_toolkit / sf_gamma / digamma.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>Digamma</title>
5 <link rel="stylesheet" href="../../math.css" type="text/css">
6 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7 <link rel="home" href="../../index.html" title="Math Toolkit 2.5.2">
8 <link rel="up" href="../sf_gamma.html" title="Gamma Functions">
9 <link rel="prev" href="lgamma.html" title="Log Gamma">
10 <link rel="next" href="trigamma.html" title="Trigamma">
11 </head>
12 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13 <table cellpadding="2" width="100%"><tr>
14 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
15 <td align="center"><a href="../../../../../../index.html">Home</a></td>
16 <td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
17 <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18 <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19 <td align="center"><a href="../../../../../../more/index.htm">More</a></td>
20 </tr></table>
21 <hr>
22 <div class="spirit-nav">
23 <a accesskey="p" href="lgamma.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_gamma.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="trigamma.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
24 </div>
25 <div class="section">
26 <div class="titlepage"><div><div><h3 class="title">
27 <a name="math_toolkit.sf_gamma.digamma"></a><a class="link" href="digamma.html" title="Digamma">Digamma</a>
28 </h3></div></div></div>
29 <h5>
30 <a name="math_toolkit.sf_gamma.digamma.h0"></a>
31         <span class="phrase"><a name="math_toolkit.sf_gamma.digamma.synopsis"></a></span><a class="link" href="digamma.html#math_toolkit.sf_gamma.digamma.synopsis">Synopsis</a>
32       </h5>
33 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">digamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
34 </pre>
35 <pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
36
37 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
38 <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">digamma</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
39
40 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter&#160;15.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
41 <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">digamma</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter&#160;15.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&amp;);</span>
42
43 <span class="special">}}</span> <span class="comment">// namespaces</span>
44 </pre>
45 <h5>
46 <a name="math_toolkit.sf_gamma.digamma.h1"></a>
47         <span class="phrase"><a name="math_toolkit.sf_gamma.digamma.description"></a></span><a class="link" href="digamma.html#math_toolkit.sf_gamma.digamma.description">Description</a>
48       </h5>
49 <p>
50         Returns the digamma or psi function of <span class="emphasis"><em>x</em></span>. Digamma is
51         defined as the logarithmic derivative of the gamma function:
52       </p>
53 <p>
54         <span class="inlinemediaobject"><img src="../../../equations/digamma1.svg"></span>
55       </p>
56 <p>
57         <span class="inlinemediaobject"><img src="../../../graphs/digamma.svg" align="middle"></span>
58       </p>
59 <p>
60         The final <a class="link" href="../../policy.html" title="Chapter&#160;15.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a> argument is optional and can
61         be used to control the behaviour of the function: how it handles errors,
62         what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter&#160;15.&#160;Policies: Controlling Precision, Error Handling etc">policy
63         documentation for more details</a>.
64       </p>
65 <p>
66         The return type of this function is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
67         type calculation rules</em></span></a>: the result is of type <code class="computeroutput"><span class="keyword">double</span></code> when T is an integer type, and type
68         T otherwise.
69       </p>
70 <h5>
71 <a name="math_toolkit.sf_gamma.digamma.h2"></a>
72         <span class="phrase"><a name="math_toolkit.sf_gamma.digamma.accuracy"></a></span><a class="link" href="digamma.html#math_toolkit.sf_gamma.digamma.accuracy">Accuracy</a>
73       </h5>
74 <p>
75         The following table shows the peak errors (in units of epsilon) found on
76         various platforms with various floating point types. Unless otherwise specified
77         any floating point type that is narrower than the one shown will have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively zero error</a>.
78       </p>
79 <div class="table">
80 <a name="math_toolkit.sf_gamma.digamma.table_digamma"></a><p class="title"><b>Table&#160;6.4.&#160;Error rates for digamma</b></p>
81 <div class="table-contents"><table class="table" summary="Error rates for digamma">
82 <colgroup>
83 <col>
84 <col>
85 <col>
86 <col>
87 <col>
88 </colgroup>
89 <thead><tr>
90 <th>
91               </th>
92 <th>
93                 <p>
94                   Microsoft Visual C++ version 12.0<br> Win32<br> double
95                 </p>
96               </th>
97 <th>
98                 <p>
99                   GNU C++ version 5.1.0<br> linux<br> double
100                 </p>
101               </th>
102 <th>
103                 <p>
104                   GNU C++ version 5.1.0<br> linux<br> long double
105                 </p>
106               </th>
107 <th>
108                 <p>
109                   Sun compiler version 0x5130<br> Sun Solaris<br> long double
110                 </p>
111               </th>
112 </tr></thead>
113 <tbody>
114 <tr>
115 <td>
116                 <p>
117                   Digamma Function: Large Values
118                 </p>
119               </td>
120 <td>
121                 <p>
122                   <span class="blue">Max = 0.98&#949; (Mean = 0.369&#949;)</span>
123                 </p>
124               </td>
125 <td>
126                 <p>
127                   <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
128                   1.16:</em></span> Max = 1.84&#949; (Mean = 0.71&#949;))<br> (<span class="emphasis"><em>Rmath
129                   3.0.2:</em></span> Max = 1.18&#949; (Mean = 0.331&#949;))<br> (<span class="emphasis"><em>Cephes:</em></span>
130                   Max = 0.919&#949; (Mean = 0.394&#949;))
131                 </p>
132               </td>
133 <td>
134                 <p>
135                   <span class="blue">Max = 1.39&#949; (Mean = 0.413&#949;)</span>
136                 </p>
137               </td>
138 <td>
139                 <p>
140                   <span class="blue">Max = 1.39&#949; (Mean = 0.413&#949;)</span>
141                 </p>
142               </td>
143 </tr>
144 <tr>
145 <td>
146                 <p>
147                   Digamma Function: Near the Positive Root
148                 </p>
149               </td>
150 <td>
151                 <p>
152                   <span class="blue">Max = 0.997&#949; (Mean = 0.527&#949;)</span>
153                 </p>
154               </td>
155 <td>
156                 <p>
157                   <span class="blue">Max = 0.891&#949; (Mean = 0.0995&#949;)</span><br>
158                   <br> (<span class="emphasis"><em>GSL 1.16:</em></span> Max = 135&#949; (Mean = 11.9&#949;))<br>
159                   (<span class="emphasis"><em>Rmath 3.0.2:</em></span> Max = 2.02e+03&#949; (Mean = 256&#949;))<br>
160                   (<span class="emphasis"><em>Cephes:</em></span> Max = 1.42e+04&#949; (Mean = 1.14e+03&#949;))
161                 </p>
162               </td>
163 <td>
164                 <p>
165                   <span class="blue">Max = 1.37&#949; (Mean = 0.477&#949;)</span>
166                 </p>
167               </td>
168 <td>
169                 <p>
170                   <span class="blue">Max = 1.31&#949; (Mean = 0.451&#949;)</span>
171                 </p>
172               </td>
173 </tr>
174 <tr>
175 <td>
176                 <p>
177                   Digamma Function: Near Zero
178                 </p>
179               </td>
180 <td>
181                 <p>
182                   <span class="blue">Max = 0.953&#949; (Mean = 0.337&#949;)</span>
183                 </p>
184               </td>
185 <td>
186                 <p>
187                   <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
188                   1.16:</em></span> Max = 0.953&#949; (Mean = 0.348&#949;))<br> (<span class="emphasis"><em>Rmath
189                   3.0.2:</em></span> Max = 1.17&#949; (Mean = 0.564&#949;))<br> (<span class="emphasis"><em>Cephes:</em></span>
190                   Max = 3.5&#949; (Mean = 1.04&#949;))
191                 </p>
192               </td>
193 <td>
194                 <p>
195                   <span class="blue">Max = 0.984&#949; (Mean = 0.361&#949;)</span>
196                 </p>
197               </td>
198 <td>
199                 <p>
200                   <span class="blue">Max = 0.984&#949; (Mean = 0.361&#949;)</span>
201                 </p>
202               </td>
203 </tr>
204 <tr>
205 <td>
206                 <p>
207                   Digamma Function: Negative Values
208                 </p>
209               </td>
210 <td>
211                 <p>
212                   <span class="blue">Max = 214&#949; (Mean = 16.1&#949;)</span>
213                 </p>
214               </td>
215 <td>
216                 <p>
217                   <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
218                   1.16:</em></span> Max = 4.56e+04&#949; (Mean = 3.91e+03&#949;))<br> (<span class="emphasis"><em>Rmath
219                   3.0.2:</em></span> Max = 4.6e+04&#949; (Mean = 3.94e+03&#949;))<br> (<span class="emphasis"><em>Cephes:</em></span>
220                   Max = 214&#949; (Mean = 16.4&#949;))
221                 </p>
222               </td>
223 <td>
224                 <p>
225                   <span class="blue">Max = 180&#949; (Mean = 13&#949;)</span>
226                 </p>
227               </td>
228 <td>
229                 <p>
230                   <span class="blue">Max = 180&#949; (Mean = 13&#949;)</span>
231                 </p>
232               </td>
233 </tr>
234 <tr>
235 <td>
236                 <p>
237                   Digamma Function: Values near 0
238                 </p>
239               </td>
240 <td>
241                 <p>
242                   <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span>
243                 </p>
244               </td>
245 <td>
246                 <p>
247                   <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
248                   1.16:</em></span> Max = 0.866&#949; (Mean = 0.387&#949;))<br> (<span class="emphasis"><em>Rmath
249                   3.0.2:</em></span> Max = 3.58e+05&#949; (Mean = 1.6e+05&#949;))<br> (<span class="emphasis"><em>Cephes:</em></span>
250                   Max = 0.5&#949; (Mean = 0.224&#949;))
251                 </p>
252               </td>
253 <td>
254                 <p>
255                   <span class="blue">Max = 1&#949; (Mean = 0.592&#949;)</span>
256                 </p>
257               </td>
258 <td>
259                 <p>
260                   <span class="blue">Max = 1&#949; (Mean = 0.592&#949;)</span>
261                 </p>
262               </td>
263 </tr>
264 <tr>
265 <td>
266                 <p>
267                   Digamma Function: Integer arguments
268                 </p>
269               </td>
270 <td>
271                 <p>
272                   <span class="blue">Max = 0.992&#949; (Mean = 0.452&#949;)</span>
273                 </p>
274               </td>
275 <td>
276                 <p>
277                   <span class="blue">Max = 0.992&#949; (Mean = 0.215&#949;)</span><br> <br>
278                   (<span class="emphasis"><em>GSL 1.16:</em></span> Max = 1.18&#949; (Mean = 0.607&#949;))<br>
279                   (<span class="emphasis"><em>Rmath 3.0.2:</em></span> Max = 4.33&#949; (Mean = 0.982&#949;))<br>
280                   (<span class="emphasis"><em>Cephes:</em></span> Max = 0.992&#949; (Mean = 0.383&#949;))
281                 </p>
282               </td>
283 <td>
284                 <p>
285                   <span class="blue">Max = 0.888&#949; (Mean = 0.403&#949;)</span>
286                 </p>
287               </td>
288 <td>
289                 <p>
290                   <span class="blue">Max = 0.888&#949; (Mean = 0.403&#949;)</span>
291                 </p>
292               </td>
293 </tr>
294 <tr>
295 <td>
296                 <p>
297                   Digamma Function: Half integer arguments
298                 </p>
299               </td>
300 <td>
301                 <p>
302                   <span class="blue">Max = 0.78&#949; (Mean = 0.314&#949;)</span>
303                 </p>
304               </td>
305 <td>
306                 <p>
307                   <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
308                   1.16:</em></span> Max = 1.09&#949; (Mean = 0.531&#949;))<br> (<span class="emphasis"><em>Rmath
309                   3.0.2:</em></span> Max = 46.2&#949; (Mean = 7.24&#949;))<br> (<span class="emphasis"><em>Cephes:</em></span>
310                   Max = 8.56&#949; (Mean = 1.44&#949;))
311                 </p>
312               </td>
313 <td>
314                 <p>
315                   <span class="blue">Max = 0.906&#949; (Mean = 0.409&#949;)</span>
316                 </p>
317               </td>
318 <td>
319                 <p>
320                   <span class="blue">Max = 0.906&#949; (Mean = 0.409&#949;)</span>
321                 </p>
322               </td>
323 </tr>
324 </tbody>
325 </table></div>
326 </div>
327 <br class="table-break"><p>
328         As shown above, error rates for positive arguments are generally very low.
329         For negative arguments there are an infinite number of irrational roots:
330         relative errors very close to these can be arbitrarily large, although absolute
331         error will remain very low.
332       </p>
333 <h5>
334 <a name="math_toolkit.sf_gamma.digamma.h3"></a>
335         <span class="phrase"><a name="math_toolkit.sf_gamma.digamma.testing"></a></span><a class="link" href="digamma.html#math_toolkit.sf_gamma.digamma.testing">Testing</a>
336       </h5>
337 <p>
338         There are two sets of tests: spot values are computed using the online calculator
339         at functions.wolfram.com, while random test values are generated using the
340         high-precision reference implementation (a differentiated <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos
341         approximation</a> see below).
342       </p>
343 <h5>
344 <a name="math_toolkit.sf_gamma.digamma.h4"></a>
345         <span class="phrase"><a name="math_toolkit.sf_gamma.digamma.implementation"></a></span><a class="link" href="digamma.html#math_toolkit.sf_gamma.digamma.implementation">Implementation</a>
346       </h5>
347 <p>
348         The implementation is divided up into the following domains:
349       </p>
350 <p>
351         For Negative arguments the reflection formula:
352       </p>
353 <pre class="programlisting"><span class="identifier">digamma</span><span class="special">(</span><span class="number">1</span><span class="special">-</span><span class="identifier">x</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">digamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">pi</span><span class="special">/</span><span class="identifier">tan</span><span class="special">(</span><span class="identifier">pi</span><span class="special">*</span><span class="identifier">x</span><span class="special">);</span>
354 </pre>
355 <p>
356         is used to make <span class="emphasis"><em>x</em></span> positive.
357       </p>
358 <p>
359         For arguments in the range [0,1] the recurrence relation:
360       </p>
361 <pre class="programlisting"><span class="identifier">digamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">digamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">+</span><span class="number">1</span><span class="special">)</span> <span class="special">-</span> <span class="number">1</span><span class="special">/</span><span class="identifier">x</span>
362 </pre>
363 <p>
364         is used to shift the evaluation to [1,2].
365       </p>
366 <p>
367         For arguments in the range [1,2] a rational approximation <a class="link" href="../sf_implementation.html#math_toolkit.sf_implementation.rational_approximations_used">devised
368         by JM</a> is used (see below).
369       </p>
370 <p>
371         For arguments in the range [2,BIG] the recurrence relation:
372       </p>
373 <pre class="programlisting"><span class="identifier">digamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">+</span><span class="number">1</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">digamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">+</span> <span class="number">1</span><span class="special">/</span><span class="identifier">x</span><span class="special">;</span>
374 </pre>
375 <p>
376         is used to shift the evaluation to the range [1,2].
377       </p>
378 <p>
379         For arguments &gt; BIG the asymptotic expansion:
380       </p>
381 <p>
382         <span class="inlinemediaobject"><img src="../../../equations/digamma2.svg"></span>
383       </p>
384 <p>
385         can be used. However, this expansion is divergent after a few terms: exactly
386         how many terms depends on the size of <span class="emphasis"><em>x</em></span>. Therefore the
387         value of <span class="emphasis"><em>BIG</em></span> must be chosen so that the series can be
388         truncated at a term that is too small to have any effect on the result when
389         evaluated at <span class="emphasis"><em>BIG</em></span>. Choosing BIG=10 for up to 80-bit reals,
390         and BIG=20 for 128-bit reals allows the series to truncated after a suitably
391         small number of terms and evaluated as a polynomial in <code class="computeroutput"><span class="number">1</span><span class="special">/(</span><span class="identifier">x</span><span class="special">*</span><span class="identifier">x</span><span class="special">)</span></code>.
392       </p>
393 <p>
394         The arbitrary precision version of this function uses recurrence relations
395         until x &gt; BIG, and then evaluation via the asymptotic expansion above.
396         As special cases integer and half integer arguments are handled via:
397       </p>
398 <p>
399         <span class="inlinemediaobject"><img src="../../../equations/digamma4.svg"></span>
400       </p>
401 <p>
402         <span class="inlinemediaobject"><img src="../../../equations/digamma5.svg"></span>
403       </p>
404 <p>
405         The rational approximation <a class="link" href="../sf_implementation.html#math_toolkit.sf_implementation.rational_approximations_used">devised
406         by JM</a> in the range [1,2] is derived as follows.
407       </p>
408 <p>
409         First a high precision approximation to digamma was constructed using a 60-term
410         differentiated <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos approximation</a>,
411         the form used is:
412       </p>
413 <p>
414         <span class="inlinemediaobject"><img src="../../../equations/digamma3.svg"></span>
415       </p>
416 <p>
417         Where P(x) and Q(x) are the polynomials from the rational form of the Lanczos
418         sum, and P'(x) and Q'(x) are their first derivatives. The Lanzos part of
419         this approximation has a theoretical precision of ~100 decimal digits. However,
420         cancellation in the above sum will reduce that to around <code class="computeroutput"><span class="number">99</span><span class="special">-(</span><span class="number">1</span><span class="special">/</span><span class="identifier">y</span><span class="special">)</span></code> digits
421         if <span class="emphasis"><em>y</em></span> is the result. This approximation was used to calculate
422         the positive root of digamma, and was found to agree with the value used
423         by Cody to 25 digits (See Math. Comp. 27, 123-127 (1973) by Cody, Strecok
424         and Thacher) and with the value used by Morris to 35 digits (See TOMS Algorithm
425         708).
426       </p>
427 <p>
428         Likewise a few spot tests agreed with values calculated using functions.wolfram.com
429         to &gt;40 digits. That's sufficiently precise to insure that the approximation
430         below is accurate to double precision. Achieving 128-bit long double precision
431         requires that the location of the root is known to ~70 digits, and it's not
432         clear whether the value calculated by this method meets that requirement:
433         the difficulty lies in independently verifying the value obtained.
434       </p>
435 <p>
436         The rational approximation <a class="link" href="../sf_implementation.html#math_toolkit.sf_implementation.rational_approximations_used">devised
437         by JM</a> was optimised for absolute error using the form:
438       </p>
439 <pre class="programlisting"><span class="identifier">digamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">x</span> <span class="special">-</span> <span class="identifier">X0</span><span class="special">)(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">x</span> <span class="special">-</span> <span class="number">1</span><span class="special">));</span>
440 </pre>
441 <p>
442         Where X0 is the positive root of digamma, Y is a constant, and R(x - 1) is
443         the rational approximation. Note that since X0 is irrational, we need twice
444         as many digits in X0 as in x in order to avoid cancellation error during
445         the subtraction (this assumes that <span class="emphasis"><em>x</em></span> is an exact value,
446         if it's not then all bets are off). That means that even when x is the value
447         of the root rounded to the nearest representable value, the result of digamma(x)
448         <span class="emphasis"><em><span class="bold"><strong>will not be zero</strong></span></em></span>.
449       </p>
450 </div>
451 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
452 <td align="left"></td>
453 <td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012-2014 Nikhar Agrawal,
454       Anton Bikineev, Paul A. Bristow, Marco Guazzone, Christopher Kormanyos, Hubert
455       Holin, Bruno Lalande, John Maddock, Jeremy Murphy, Johan R&#229;de, Gautam Sewani,
456       Benjamin Sobotta, Thijs van den Berg, Daryle Walker and Xiaogang Zhang<p>
457         Distributed under the Boost Software License, Version 1.0. (See accompanying
458         file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
459       </p>
460 </div></td>
461 </tr></table>
462 <hr>
463 <div class="spirit-nav">
464 <a accesskey="p" href="lgamma.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_gamma.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="trigamma.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
465 </div>
466 </body>
467 </html>