1 /* $OpenBSD: lgamma.c,v 1.2 2011/07/09 03:33:07 martynas Exp $ */ 2 3 /* 4 * Written by Martynas Venckus. Public domain 5 */ 6 7 #include <assert.h> 8 #include <math.h> 9 10 int 11 main(int argc, char *argv[]) 12 { 13 assert(isnan(lgamma(NAN))); 14 assert(isnan(lgammaf(NAN))); 15 16 signgam = 0; 17 assert(lgamma(-HUGE_VAL) == HUGE_VAL && signgam == 1); 18 signgam = 0; 19 assert(lgammaf(-HUGE_VALF) == HUGE_VALF && signgam == 1); 20 signgam = 0; 21 assert(lgammal(-HUGE_VALL) == HUGE_VALL && signgam == 1); 22 23 signgam = 0; 24 assert(lgamma(HUGE_VAL) == HUGE_VAL && signgam == 1); 25 signgam = 0; 26 assert(lgammaf(HUGE_VALF) == HUGE_VALF && signgam == 1); 27 signgam = 0; 28 assert(lgammal(HUGE_VALL) == HUGE_VALL && signgam == 1); 29 30 signgam = 0; 31 assert(lgamma(-0.0) == HUGE_VAL && signgam == -1); 32 signgam = 0; 33 assert(lgammaf(-0.0F) == HUGE_VALF && signgam == -1); 34 signgam = 0; 35 assert(lgammal(-0.0L) == HUGE_VALL && signgam == -1); 36 37 signgam = 0; 38 assert(lgamma(0.0) == HUGE_VAL && signgam == 1); 39 signgam = 0; 40 assert(lgammaf(0.0F) == HUGE_VALF && signgam == 1); 41 signgam = 0; 42 assert(lgammal(0.0L) == HUGE_VALL && signgam == 1); 43 44 signgam = 0; 45 assert(lgamma(1.0) == 0.0 && signgam == 1); 46 signgam = 0; 47 assert(lgammaf(1.0F) == 0.0F && signgam == 1); 48 signgam = 0; 49 assert(lgammal(1.0L) == 0.0L && signgam == 1); 50 51 signgam = 0; 52 assert(lgamma(3.0) == M_LN2 && signgam == 1); 53 signgam = 0; 54 assert(lgammaf(3.0F) == (float)M_LN2 && signgam == 1); 55 signgam = 0; 56 assert(lgammal(3.0L) == 0.6931471805599453094172321214581766L && 57 signgam == 1); 58 59 return (0); 60 } 61