|
Uni20
Asynchronous tensor and runtime library.
|
Immutable reusable right-half-plane log-Gamma and real-shift log-ratio context. More...
#include <complex_log_gamma.hpp>
Public Types | |
| using | complex_type = complex< R > |
Public Member Functions | |
| log_gamma_context (log_gamma_options options={}) | |
| Construct at the fixed scalar's native precision. | |
| log_gamma_context (Precision p, log_gamma_options options={}) | |
| Prepare coefficients at explicit finite precision p. | |
| log_gamma_result< R > | log_gamma_ratio_right (complex_type const &input, R const &shift) const |
| Evaluate log Gamma(z+h)-log Gamma(z), h real and both real parts positive. | |
| log_gamma_result< R > | log_gamma_right (complex_type const &input) const |
| Evaluate analytic log Gamma(z) on finite Re(z)>0. | |
| Precision | precision () const |
| Requested output precision. | |
Immutable reusable right-half-plane log-Gamma and real-shift log-ratio context.
The branch is analytic for finite Re(z)>0 and real on the positive axis, not the principal logarithm of Gamma(z). MPFR uses 64 guard bits; fixed types retain native arithmetic. No ambient precision or exponent range is changed. Inputs must be exact or have the context's precision. Concurrent calls own their scratch and share coefficients.
| std::invalid_argument | for invalid precision, domain or term budget; std::runtime_error if the recurrence/series budget is exhausted; std::overflow_error for unrepresentable arithmetic or diagnostics. |
| using uni20::log_gamma_context< R >::complex_type = complex<R> |
|
inlineexplicit |
Construct at the fixed scalar's native precision.
|
inlineexplicit |
Prepare coefficients at explicit finite precision p.
|
inline |
Evaluate log Gamma(z+h)-log Gamma(z), h real and both real parts positive.
Forms paired differences before rounding, retaining a small shift even when z+h rounds back to z. Does not subtract two log-Gamma results. A zero shift returns exact zero at the output precision.
|
inline |
Evaluate analytic log Gamma(z) on finite Re(z)>0.
|
inline |
Requested output precision.