pub fn tgammaf(a: f32) -> f32 {
    let (da, db) = gammafk(a);
    let y = expk2f(da) * db;
    let mut r = y.0 + y.1;
    r = if ((a == f32::NEG_INFINITY) || ((a < 0.) && a.is_integer()))
        || (a.is_finite() && (a < 0.) && r.is_nan())
    {
        f32::NAN
    } else {
        r
    };
    if ((a == f32::INFINITY) || a.is_finite())
        && (a >= -f32::MIN_POSITIVE)
        && ((a == 0.) || (a > 36.) || r.is_nan())
    {
        mulsignf(f32::INFINITY, a)
    } else {
        r
    }
}
/// Gamma function
///
/// The error bound of the returned value is 1.0 ULP.
Gamma function
The error bound of the returned value is 1.0 ULP.
Gamma function The error bound of the returned value is 1 . 0 ULP .
pub fn tgammaf(a: f32) -> f32 {
    let (da, db) = gammafk(a);
    let y = expk2f(da) * db;
    let mut r = y.0 + y.1;
    r = if ((a == f32::NEG_INFINITY) || ((a < 0.) && a.is_integer()))
        || (a.is_finite() && (a < 0.) && r.is_nan())
    {
        f32::NAN
    } else {
        r
    };
    if ((a == f32::INFINITY) || a.is_finite())
        && (a >= -f32::MIN_POSITIVE)
        && ((a == 0.) || (a > 36.) || r.is_nan())
    {
        mulsignf(f32::INFINITY, a)
    } else {
        r
    }
}
pub fn tgammaf ( a : f32 ) -> f32 { let ( da , db ) = gammafk ( a ) ; let y = expk2f ( da ) * db ; let mut r = y . 0 + y . 1 ; r = if ( ( a == f32 :: NEG_INFINITY ) || ( ( a < 0. ) && a . is_integer ( ) ) ) || ( a . is_finite ( ) && ( a < 0. ) && r . is_nan ( ) ) { f32 :: NAN } else { r } ; if ( ( a == f32 :: INFINITY ) || a . is_finite ( ) ) && ( a >= - f32 :: MIN_POSITIVE ) && ( ( a == 0. ) || ( a > 36. ) || r . is_nan ( ) ) { mulsignf ( f32 :: INFINITY , a ) } else { r } }
Gamma function
The error bound of the returned value is 1.0 ULP.
Gamma function The error bound of the returned value is 1 . 0 ULP .
a
f32
a
f32