local m, e = math.frexp(1);
assert(m == 0.5 and e == 1, "frexp(1)");
local m, e = math.frexp(0);
assert(m == 0 and e == 0, "frexp(0)");
local m, e = math.frexp(3);
assert(m == 0.75 and e == 2, "frexp(3)");
local m, e = math.frexp(-1);
assert(m == -0.5 and e == 1, "frexp(1)");