ccgsl 2.7.2
C++wrappersforGnuScientificLibrary
sf_gamma.hpp
Go to the documentation of this file.
1/*
2 * $Id: sf_gamma.hpp 9 2010-06-13 14:02:43Z jdl3 $
3 * Copyright (C) 2010, 2020 John D Lamb
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or (at
8 * your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18 */
19
20#ifndef CCGSL_SF_GAMMA_HPP
21#define CCGSL_SF_GAMMA_HPP
22
23#include<gsl/gsl_sf_gamma.h>
24#include"mode.hpp"
25#include"sf_result.hpp"
26
27namespace gsl {
28 namespace sf {
39 inline int lngamma_e( double x, result& result ){
40 return gsl_sf_lngamma_e( x, &result ); }
50 inline double lngamma( double const x ){ return gsl_sf_lngamma( x ); }
51#ifndef DOXYGEN_SKIP
62 inline int lngamma_sgn_e( double x, result& result_lg, double* sgn ){
63 return gsl_sf_lngamma_sgn_e( x, &result_lg, sgn ); }
64#endif // DOXYGEN_SKIP
75 inline int lngamma_sgn_e( double x, result& result_lg, double& sgn ){
76 return gsl_sf_lngamma_sgn_e( x, &result_lg, &sgn ); }
85 inline int gamma_e( double const x, result& result ){
86 return gsl_sf_gamma_e( x, &result ); }
94 inline double gamma( double const x ){ return gsl_sf_gamma( x ); }
104 inline int gammastar_e( double const x, result& result ){
105 return gsl_sf_gammastar_e( x, &result ); }
114 inline double gammastar( double const x ){ return gsl_sf_gammastar( x ); }
123 inline int gammainv_e( double const x, result& result ){
124 return gsl_sf_gammainv_e( x, &result ); }
132 inline double gammainv( double const x ){ return gsl_sf_gammainv( x ); }
151 inline int lngamma_complex_e( double zr, double zi, result& lnr, result& arg ){
152 return gsl_sf_lngamma_complex_e( zr, zi, &lnr, &arg ); }
163 inline int taylorcoeff_e( int const n, double const x, result& result ){
164 return gsl_sf_taylorcoeff_e( n, x, &result ); }
174 inline double taylorcoeff( int const n, double const x ){
175 return gsl_sf_taylorcoeff( n, x ); }
183 inline int fact_e( unsigned int const n, result& result ){
184 return gsl_sf_fact_e( n, &result ); }
191 inline double fact( unsigned int const n ){ return gsl_sf_fact( n ); }
199 inline int doublefact_e( unsigned int const n, result& result ){
200 return gsl_sf_doublefact_e( n, &result ); }
207 inline double doublefact( unsigned int const n ){ return gsl_sf_doublefact( n ); }
216 inline int lnfact_e( unsigned int const n, result& result ){
217 return gsl_sf_lnfact_e( n, &result ); }
225 inline double lnfact( unsigned int const n ){ return gsl_sf_lnfact( n ); }
233 inline int lndoublefact_e( unsigned int const n, result& result ){
234 return gsl_sf_lndoublefact_e( n, &result ); }
241 inline double lndoublefact( unsigned int const n ){
242 return gsl_sf_lndoublefact( n ); }
251 inline int lnchoose_e( unsigned int n, unsigned int m, result& result ){
252 return gsl_sf_lnchoose_e( n, m, &result ); }
260 inline double lnchoose( unsigned int n, unsigned int m ){
261 return gsl_sf_lnchoose( n, m ); }
270 inline int choose_e( unsigned int n, unsigned int m, result& result ){
271 return gsl_sf_choose_e( n, m, &result ); }
279 inline double choose( unsigned int n, unsigned int m ){ return gsl_sf_choose( n, m ); }
292 inline int lnpoch_e( double const a, double const x, result& result ){
293 return gsl_sf_lnpoch_e( a, x, &result ); }
305 inline double lnpoch( double const a, double const x ){
306 return gsl_sf_lnpoch( a, x ); }
307#ifndef DOXYGEN_SKIP
322 inline int lnpoch_sgn_e( double const a, double const x, result& result, double* sgn ){
323 return gsl_sf_lnpoch_sgn_e( a, x, &result, sgn ); }
324#endif // DOXYGEN_SKIP
339 inline int lnpoch_sgn_e( double const a, double const x, result& result, double& sgn ){
340 return gsl_sf_lnpoch_sgn_e( a, x, &result, &sgn ); }
352 inline int poch_e( double const a, double const x, result& result ){
353 return gsl_sf_poch_e( a, x, &result ); }
364 inline double poch( double const a, double const x ){ return gsl_sf_poch( a, x ); }
375 inline int pochrel_e( double const a, double const x, result& result ){
376 return gsl_sf_pochrel_e( a, x, &result ); }
386 inline double pochrel( double const a, double const x ){ return gsl_sf_pochrel( a, x ); }
401 inline int gamma_inc_Q_e( double const a, double const x, result& result ){
402 return gsl_sf_gamma_inc_Q_e( a, x, &result ); }
416 inline double gamma_inc_Q( double const a, double const x ){
417 return gsl_sf_gamma_inc_Q( a, x ); }
430 inline int gamma_inc_P_e( double const a, double const x, result& result ){
431 return gsl_sf_gamma_inc_P_e( a, x, &result ); }
443 inline double gamma_inc_P( double const a, double const x ){
444 return gsl_sf_gamma_inc_P( a, x ); }
458 inline int gamma_inc_e( double const a, double const x, result& result ){
459 return gsl_sf_gamma_inc_e( a, x, &result ); }
472 inline double gamma_inc( double const a, double const x ){
473 return gsl_sf_gamma_inc( a, x ); }
485 inline int lnbeta_e( double const a, double const b, result& result ){
486 return gsl_sf_lnbeta_e( a, b, &result ); }
497 inline double lnbeta( double const a, double const b ){
498 return gsl_sf_lnbeta( a, b ); }
499#ifndef DOXYGEN_SKIP
512 inline int lnbeta_sgn_e( double const x, double const y, result& result, double* sgn ){
513 return gsl_sf_lnbeta_sgn_e( x, y, &result, sgn ); }
514#endif // DOXYGEN_SKIP
527 inline int lnbeta_sgn_e( double const x, double const y, result& result, double& sgn ){
528 return gsl_sf_lnbeta_sgn_e( x, y, &result, &sgn ); }
540 inline int beta_e( double const a, double const b, result& result ){
541 return gsl_sf_beta_e( a, b, &result ); }
552 inline double beta( double const a, double const b ){ return gsl_sf_beta( a, b ); }
565 inline int beta_inc_e( double const a, double const b, double const x, result& result ){
566 return gsl_sf_beta_inc_e( a, b, x, &result ); }
578 inline double beta_inc( double const a, double const b, double const x ){
579 return gsl_sf_beta_inc( a, b, x ); }
584 double const GAMMA_XMAX = GSL_SF_GAMMA_XMAX;
588 double const FACT_NMAX = GSL_SF_FACT_NMAX;
592 double const DOUBLEFACT_NMAX = GSL_SF_DOUBLEFACT_NMAX;
593 }
594}
595
596#endif
double arg(complex const &z)
C++ version of gsl_complex_arg().
Definition: complex.hpp:792
size_t n(workspace const &w)
C++ version of gsl_rstat_n().
Definition: rstat.hpp:299
double b(int order, double qq)
C++ version of gsl_sf_mathieu_b().
Definition: sf_mathieu.hpp:298
double a(int order, double qq)
C++ version of gsl_sf_mathieu_a().
Definition: sf_mathieu.hpp:272
double const GAMMA_XMAX
The maximum x such that gamma(x) is not considered an overflow.
Definition: sf_gamma.hpp:584
int gammastar_e(double const x, result &result)
C++ version of gsl_sf_gammastar_e().
Definition: sf_gamma.hpp:104
double lndoublefact(unsigned int const n)
C++ version of gsl_sf_lndoublefact().
Definition: sf_gamma.hpp:241
int lngamma_e(double x, result &result)
C++ version of gsl_sf_lngamma_e().
Definition: sf_gamma.hpp:39
double const FACT_NMAX
The maximum n such that fact(n) does not give an overflow.
Definition: sf_gamma.hpp:588
double gammainv(double const x)
C++ version of gsl_sf_gammainv().
Definition: sf_gamma.hpp:132
int lnpoch_sgn_e(double const a, double const x, result &result, double &sgn)
C++ version of gsl_sf_lnpoch_sgn_e().
Definition: sf_gamma.hpp:339
int lnpoch_e(double const a, double const x, result &result)
C++ version of gsl_sf_lnpoch_e().
Definition: sf_gamma.hpp:292
double gamma_inc_P(double const a, double const x)
C++ version of gsl_sf_gamma_inc_P().
Definition: sf_gamma.hpp:443
double pochrel(double const a, double const x)
C++ version of gsl_sf_pochrel().
Definition: sf_gamma.hpp:386
int pochrel_e(double const a, double const x, result &result)
C++ version of gsl_sf_pochrel_e().
Definition: sf_gamma.hpp:375
double beta(double const a, double const b)
C++ version of gsl_sf_beta().
Definition: sf_gamma.hpp:552
double poch(double const a, double const x)
C++ version of gsl_sf_poch().
Definition: sf_gamma.hpp:364
int choose_e(unsigned int n, unsigned int m, result &result)
C++ version of gsl_sf_choose_e().
Definition: sf_gamma.hpp:270
int lngamma_sgn_e(double x, result &result_lg, double &sgn)
C++ version of gsl_sf_lngamma_sgn_e().
Definition: sf_gamma.hpp:75
double lnbeta(double const a, double const b)
C++ version of gsl_sf_lnbeta().
Definition: sf_gamma.hpp:497
double const DOUBLEFACT_NMAX
The maximum n such that doublefact(n) does not give an overflow.
Definition: sf_gamma.hpp:592
int gamma_inc_P_e(double const a, double const x, result &result)
C++ version of gsl_sf_gamma_inc_P_e().
Definition: sf_gamma.hpp:430
double lnchoose(unsigned int n, unsigned int m)
C++ version of gsl_sf_lnchoose().
Definition: sf_gamma.hpp:260
double fact(unsigned int const n)
C++ version of gsl_sf_fact().
Definition: sf_gamma.hpp:191
double beta_inc(double const a, double const b, double const x)
C++ version of gsl_sf_beta_inc().
Definition: sf_gamma.hpp:578
int beta_inc_e(double const a, double const b, double const x, result &result)
C++ version of gsl_sf_beta_inc_e().
Definition: sf_gamma.hpp:565
double lngamma(double const x)
C++ version of gsl_sf_lngamma().
Definition: sf_gamma.hpp:50
int lnbeta_sgn_e(double const x, double const y, result &result, double &sgn)
C++ version of gsl_sf_lnbeta_sgn_e().
Definition: sf_gamma.hpp:527
double lnfact(unsigned int const n)
C++ version of gsl_sf_lnfact().
Definition: sf_gamma.hpp:225
double choose(unsigned int n, unsigned int m)
C++ version of gsl_sf_choose().
Definition: sf_gamma.hpp:279
int lndoublefact_e(unsigned int const n, result &result)
C++ version of gsl_sf_lndoublefact_e().
Definition: sf_gamma.hpp:233
double lnpoch(double const a, double const x)
C++ version of gsl_sf_lnpoch().
Definition: sf_gamma.hpp:305
int lnfact_e(unsigned int const n, result &result)
C++ version of gsl_sf_lnfact_e().
Definition: sf_gamma.hpp:216
double gammastar(double const x)
C++ version of gsl_sf_gammastar().
Definition: sf_gamma.hpp:114
double doublefact(unsigned int const n)
C++ version of gsl_sf_doublefact().
Definition: sf_gamma.hpp:207
int beta_e(double const a, double const b, result &result)
C++ version of gsl_sf_beta_e().
Definition: sf_gamma.hpp:540
int lnbeta_e(double const a, double const b, result &result)
C++ version of gsl_sf_lnbeta_e().
Definition: sf_gamma.hpp:485
int doublefact_e(unsigned int const n, result &result)
C++ version of gsl_sf_doublefact_e().
Definition: sf_gamma.hpp:199
int gamma_inc_Q_e(double const a, double const x, result &result)
C++ version of gsl_sf_gamma_inc_Q_e().
Definition: sf_gamma.hpp:401
int lngamma_complex_e(double zr, double zi, result &lnr, result &arg)
C++ version of gsl_sf_lngamma_complex_e().
Definition: sf_gamma.hpp:151
double gamma(double const x)
C++ version of gsl_sf_gamma().
Definition: sf_gamma.hpp:94
int taylorcoeff_e(int const n, double const x, result &result)
C++ version of gsl_sf_taylorcoeff_e().
Definition: sf_gamma.hpp:163
double taylorcoeff(int const n, double const x)
C++ version of gsl_sf_taylorcoeff().
Definition: sf_gamma.hpp:174
int poch_e(double const a, double const x, result &result)
C++ version of gsl_sf_poch_e().
Definition: sf_gamma.hpp:352
int lnchoose_e(unsigned int n, unsigned int m, result &result)
C++ version of gsl_sf_lnchoose_e().
Definition: sf_gamma.hpp:251
int gammainv_e(double const x, result &result)
C++ version of gsl_sf_gammainv_e().
Definition: sf_gamma.hpp:123
double gamma_inc_Q(double const a, double const x)
C++ version of gsl_sf_gamma_inc_Q().
Definition: sf_gamma.hpp:416
double gamma_inc(double const a, double const x)
C++ version of gsl_sf_gamma_inc().
Definition: sf_gamma.hpp:472
int gamma_e(double const x, result &result)
C++ version of gsl_sf_gamma_e().
Definition: sf_gamma.hpp:85
int fact_e(unsigned int const n, result &result)
C++ version of gsl_sf_fact_e().
Definition: sf_gamma.hpp:183
gsl_sf_result result
Typedef for gsl_sf_result.
Definition: sf_result.hpp:30
int gamma_inc_e(double const a, double const x, result &result)
C++ version of gsl_sf_gamma_inc_e().
Definition: sf_gamma.hpp:458
The gsl package creates an interface to the GNU Scientific Library for C++.
Definition: blas.hpp:34