pub fn lgammaf(a: f32) -> f32 {
    let (da, db) = gammafk(a);
    let y = da + logk2f(db.abs());
    let r = y.0 + y.1;
    if a.is_infinite() || (a <= 0. && a.is_integer()) || (a.is_finite() && r.is_nan()) {
        f32::INFINITY
    } else {
        r
    }
}
/// Log gamma function
///
/// The error bound of the returned value is 1.0 ULP if the argument is positive.
/// If the argument is larger than 4e+36, it may return infinity instead of the correct value.
/// The error bound is `max(1 ULP and 1e-8)`, if the argument is negative.
Log gamma function
The error bound of the returned value is 1.0 ULP if the argument is positive.
If the argument is larger than 4e+36, it may return infinity instead of the correct value.
The error bound is `max(1 ULP and 1e-8)`, if the argument is negative.
Log gamma function The error bound of the returned value is 1 . 0 ULP if the argument is positive . If the argument is larger than 4e + 36 it may return infinity instead of the correct value . The error bound is ` max ( 1 ULP and 1e - 8 ) ` if the argument is negative .
pub fn lgammaf(a: f32) -> f32 {
    let (da, db) = gammafk(a);
    let y = da + logk2f(db.abs());
    let r = y.0 + y.1;
    if a.is_infinite() || (a <= 0. && a.is_integer()) || (a.is_finite() && r.is_nan()) {
        f32::INFINITY
    } else {
        r
    }
}
pub fn lgammaf ( a : f32 ) -> f32 { let ( da , db ) = gammafk ( a ) ; let y = da + logk2f ( db . abs ( ) ) ; let r = y . 0 + y . 1 ; if a . is_infinite ( ) || ( a <= 0. && a . is_integer ( ) ) || ( a . is_finite ( ) && r . is_nan ( ) ) { f32 :: INFINITY } else { r } }
Log gamma function
The error bound of the returned value is 1.0 ULP if the argument is positive.
Log gamma function The error bound of the returned value is 1 . 0 ULP if the argument is positive .
a
f32
a
f32