code wiki / _hdl_build / _pe_f64gamma_test.nx

_pe_f64gamma_test.nx source

↩ module page · 16 lines · 936 B

1// GENERATED invariant KATs for the Builder-authored gamma (GAMMA_STIRLING). 2import "_pe_f64gamma.nx" 3func gt_ulp(a: i64, b: i64) -> i64 { if a >= b { return a - b } return b - a } 4func main() -> i64 { 5 var bad: i64 = 0 6 if nx_f64_gamma(0x7FF8000000000000) != NX_F64_NAN_RAW { bad = bad + 1 } 7 if nx_f64_gamma(0xBFF0000000000000) != NX_F64_NAN_RAW { bad = bad + 1 } 8 if nx_f64_gamma(0x3FD0000000000000) != NX_F64_NAN_RAW { bad = bad + 1 } 9 if gt_ulp(nx_f64_gamma(0x4000000000000000), 0x3FF0000000000000) > 2 { bad = bad + 1 } 10 if gt_ulp(nx_f64_gamma(0x4008000000000000), 0x4000000000000000) > 2 { bad = bad + 1 } 11 if gt_ulp(nx_f64_gamma(0x4010000000000000), 0x4018000000000000) > 2 { bad = bad + 1 } 12 if gt_ulp(nx_f64_gamma(0x4014000000000000), 0x4038000000000000) > 2 { bad = bad + 1 } 13 if gt_ulp(nx_f64_gamma(0x4018000000000000), 0x405E000000000000) > 2 { bad = bad + 1 } 14 sys_exit(bad) 15 return bad 16}