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}