diff options
Diffstat (limited to 'libs/math/doc/sf/trigamma.qbk')
-rw-r--r-- | libs/math/doc/sf/trigamma.qbk | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/libs/math/doc/sf/trigamma.qbk b/libs/math/doc/sf/trigamma.qbk new file mode 100644 index 000000000..827c8fb52 --- /dev/null +++ b/libs/math/doc/sf/trigamma.qbk @@ -0,0 +1,84 @@ +[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_pomotion_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 +[[Significand Size] [Platform and Compiler] [Random Values] ] +[[53] [Win32 Visual C++ 12] [Peak=1.0 Mean=0.4] ] +[[64] [Win64 Mingw GCC] [Peak=1.4 Mean=0.4] ] +[[113] [Win64 Mingw GCC __float128] [Peak=1.0 Mean=0.5] ] +] + +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). +] + |