code wiki / _hdl_build / _pe_f64erf_test.nx

_pe_f64erf_test.nx source

↩ module page · 22 lines · 1237 B

1// GENERATED invariant KATs for the Builder-authored erf (ERF_TAYLOR). 2import "_pe_f64erf.nx" 3func main() -> i64 { 4 var bad: i64 = 0 5 if nx_f64_erf(0x7FF8000000000000) != NX_F64_NAN_RAW { bad = bad + 1 } 6 if nx_f64_erf(0) != 0 { bad = bad + 1 } 7 if nx_f64_erf(0x8000000000000000) != 0x8000000000000000 { bad = bad + 1 } 8 if nx_f64_erf(0x7FF0000000000000) != 4607182418800017408 { bad = bad + 1 } 9 if nx_f64_erf(0xFFF0000000000000) != (4607182418800017408 | (1 << 63)) { bad = bad + 1 } 10 if nx_f64_erf(0x4020000000000000) != 4607182418800017408 { bad = bad + 1 } 11 if nx_f64_erf(0x4000000000000000) != NX_F64_NAN_RAW { bad = bad + 1 } 12 if nx_f64_erf(4610560118520545280) == NX_F64_NAN_RAW { bad = bad + 1 } 13 let h: i64 = nx_f64_erf(0x3FE0000000000000) 14 if nx_f64_erf(0xBFE0000000000000) != (h | (1 << 63)) { bad = bad + 1 } 15 let o: i64 = nx_f64_erf(0x3FF0000000000000) 16 if nx_f64_erf(0xBFF0000000000000) != (o | (1 << 63)) { bad = bad + 1 } 17 if (h & 0x7FFFFFFFFFFFFFFF) >= 4607182418800017408 { bad = bad + 1 } 18 if (o & 0x7FFFFFFFFFFFFFFF) >= 4607182418800017408 { bad = bad + 1 } 19 if (o & 0x7FFFFFFFFFFFFFFF) <= (h & 0x7FFFFFFFFFFFFFFF) { bad = bad + 1 } 20 sys_exit(bad) 21 return bad 22}