Embedded Artistry Framework
Embedded Systems C++ Framework
Macros | Functions | Variables
b_tgamma.c File Reference
#include "cdefs-compat.h"
#include <openlibm_math.h>
#include "mathimpl.h"
Include dependency graph for b_tgamma.c:

Macros

#define LEFT   -.3955078125 /* left boundary for rat. approx */
 
#define x0   .461632144968362356785 /* xmin - 1 */
 
#define a0_hi   0.88560319441088874992
 
#define a0_lo   -.00000000000000004996427036469019695
 
#define P0   6.21389571821820863029017800727e-01
 
#define P1   2.65757198651533466104979197553e-01
 
#define P2   5.53859446429917461063308081748e-03
 
#define P3   1.38456698304096573887145282811e-03
 
#define P4   2.40659950032711365819348969808e-03
 
#define Q0   1.45019531250000000000000000000e+00
 
#define Q1   1.06258521948016171343454061571e+00
 
#define Q2   -2.07474561943859936441469926649e-01
 
#define Q3   -1.46734131782005422506287573015e-01
 
#define Q4   3.07878176156175520361557573779e-02
 
#define Q5   5.12449347980666221336054633184e-03
 
#define Q6   -1.76012741431666995019222898833e-03
 
#define Q7   9.35021023573788935372153030556e-05
 
#define Q8   6.13275507472443958924745652239e-06
 
#define lns2pi_hi   0.418945312500000
 
#define lns2pi_lo   -.000006779295327258219670263595
 
#define Pa0   8.33333333333333148296162562474e-02
 
#define Pa1   -2.77777777774548123579378966497e-03
 
#define Pa2   7.93650778754435631476282786423e-04
 
#define Pa3   -5.95235082566672847950717262222e-04
 
#define Pa4   8.41428560346653702135821806252e-04
 
#define Pa5   -1.89773526463879200348872089421e-03
 
#define Pa6   5.69394463439411649408050664078e-03
 
#define Pa7   -1.44705562421428915453880392761e-02
 

Functions

static double neg_gam (double)
 
static double small_gam (double)
 
static double smaller_gam (double)
 
static struct Double large_gam (double)
 
static struct Double ratfun_gam (double, double)
 
OLM_DLLEXPORT double tgamma (double x)
 

Variables

static const double zero = 0.
 
static const double one = 1.0
 
static const double tiny = 1e-300
 

Macro Definition Documentation

◆ a0_hi

#define a0_hi   0.88560319441088874992

◆ a0_lo

#define a0_lo   -.00000000000000004996427036469019695

◆ LEFT

#define LEFT   -.3955078125 /* left boundary for rat. approx */

◆ lns2pi_hi

#define lns2pi_hi   0.418945312500000

◆ lns2pi_lo

#define lns2pi_lo   -.000006779295327258219670263595

◆ P0

#define P0   6.21389571821820863029017800727e-01

◆ P1

#define P1   2.65757198651533466104979197553e-01

◆ P2

#define P2   5.53859446429917461063308081748e-03

◆ P3

#define P3   1.38456698304096573887145282811e-03

◆ P4

#define P4   2.40659950032711365819348969808e-03

◆ Pa0

#define Pa0   8.33333333333333148296162562474e-02

◆ Pa1

#define Pa1   -2.77777777774548123579378966497e-03

◆ Pa2

#define Pa2   7.93650778754435631476282786423e-04

◆ Pa3

#define Pa3   -5.95235082566672847950717262222e-04

◆ Pa4

#define Pa4   8.41428560346653702135821806252e-04

◆ Pa5

#define Pa5   -1.89773526463879200348872089421e-03

◆ Pa6

#define Pa6   5.69394463439411649408050664078e-03

◆ Pa7

#define Pa7   -1.44705562421428915453880392761e-02

◆ Q0

#define Q0   1.45019531250000000000000000000e+00

◆ Q1

#define Q1   1.06258521948016171343454061571e+00

◆ Q2

#define Q2   -2.07474561943859936441469926649e-01

◆ Q3

#define Q3   -1.46734131782005422506287573015e-01

◆ Q4

#define Q4   3.07878176156175520361557573779e-02

◆ Q5

#define Q5   5.12449347980666221336054633184e-03

◆ Q6

#define Q6   -1.76012741431666995019222898833e-03

◆ Q7

#define Q7   9.35021023573788935372153030556e-05

◆ Q8

#define Q8   6.13275507472443958924745652239e-06

◆ x0

#define x0   .461632144968362356785 /* xmin - 1 */

Function Documentation

◆ large_gam()

static struct Double large_gam ( double  x)
static

Referenced by neg_gam(), and tgamma().

◆ neg_gam()

static double neg_gam ( double  x)
static

◆ ratfun_gam()

static struct Double ratfun_gam ( double  z,
double  c 
)
static

Referenced by small_gam(), and smaller_gam().

◆ small_gam()

static double small_gam ( double  x)
static

References Double::a, Double::b, LEFT, one, r, ratfun_gam(), t, TRUNC, and x0.

Referenced by tgamma().

◆ smaller_gam()

static double smaller_gam ( double  x)
static

References Double::a, Double::b, LEFT, one, r, ratfun_gam(), t, TRUNC, and x0.

Referenced by tgamma().

◆ tgamma()

OLM_DLLEXPORT double tgamma ( double  x)

References __exp__D(), isfinite, isgreater, isgreaterequal, large_gam(), LEFT, neg_gam(), one, small_gam(), smaller_gam(), tiny, u, x0, and zero.

Referenced by neg_gam(), tgamma_test(), and tgammaf().

Here is the caller graph for this function:

Variable Documentation

◆ one

const double one = 1.0
static

◆ tiny

const double tiny = 1e-300
static

Referenced by neg_gam(), and tgamma().

◆ zero

const double zero = 0.
static

Referenced by _writeMemory(), neg_gam(), and tgamma().