mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-07 17:46:04 -05:00
80 lines
1.9 KiB
Plaintext
80 lines
1.9 KiB
Plaintext
[section:trigamma Trigamma]
|
|
|
|
[h4 Synopsis]
|
|
|
|
``
|
|
#include <boost/math/special_functions/trigamma.hpp>
|
|
``
|
|
|
|
namespace boost{ namespace math{
|
|
|
|
template <class T>
|
|
``__sf_result`` trigamma(T z);
|
|
|
|
template <class T, class ``__Policy``>
|
|
``__sf_result`` trigamma(T z, const ``__Policy``&);
|
|
|
|
}} // namespaces
|
|
|
|
[h4 Description]
|
|
|
|
Returns the trigamma function of /x/. Trigamma is defined as the
|
|
derivative of the digamma function:
|
|
|
|
[equation trigamma1]
|
|
|
|
[graph trigamma]
|
|
|
|
[optional_policy]
|
|
|
|
The return type of this function is computed using the __arg_promotion_rules:
|
|
the result is of type `double` when T is an integer type, and type T otherwise.
|
|
|
|
[h4 Accuracy]
|
|
|
|
The following table shows the peak errors (in units of epsilon)
|
|
found on various platforms with various floating point types.
|
|
Unless otherwise specified any floating point type that is narrower
|
|
than the one shown will have __zero_error.
|
|
|
|
[table_trigamma]
|
|
|
|
As shown above, error rates are generally very low for built in types.
|
|
For multiprecision types, error rates are typically in the order of a
|
|
few epsilon.
|
|
|
|
[h4 Testing]
|
|
|
|
Testing is against Mathematica generated spot values to 35 digit precision.
|
|
|
|
[h4 Implementation]
|
|
|
|
The arbitrary precision version of this function simply calls __polygamma.
|
|
|
|
For built in fixed precision types, negative arguments are first made positive via:
|
|
|
|
[equation trigamma2]
|
|
|
|
Then arguments in the range \[0, 1) are shifted to >= 1 via:
|
|
|
|
[equation trigamma3]
|
|
|
|
Then evaluation is via one of a number of rational approximations, for small x these are
|
|
of the form:
|
|
|
|
[equation trigamma4]
|
|
|
|
and for large x of the form:
|
|
|
|
[equation trigamma5]
|
|
|
|
[endsect][/section:digamma The Trigamma Function]
|
|
|
|
[/
|
|
Copyright 2014 John Maddock and Paul A. Bristow.
|
|
Distributed under 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).
|
|
]
|
|
|