local function k(k,K,V,H)local b=bit.rshift(H,7)local r=bit.rshift(V,7)+bit.lshift(bit.band(H,127),1)local t=(k+bit.lshift(K,8))+bit.lshift(bit.band(V,127),16)local N=1 if r==0 then if t==0 then return b*0 else N=0 r=1 end elseif r==127 then if t==0 then return b*(1/0)else return b*(0/0)end end return(-1^b*2^(r-127))*(1+N/8388608.0)end
-- float rd_flt_basic(byte f1..8)
-- @f1..4 - The 4 bytes composing a little endian float
local function rd_flt_basic(f1, f2, f3, f4)
	local sign = bit.rshift(f4, 7)
	local exp = bit.rshift(f3, 7) + bit.lshift(bit.band(f4, 0x7F), 1)
	local frac = f1 + bit.lshift(f2, 8) + bit.lshift(bit.band(f3, 0x7F), 16)
	local normal = 1

	if exp == 0 then
		if frac == 0 then
			return sign * 0
		else
			normal = 0
			exp = 1
		end
	elseif exp == 0x7F then
		if frac == 0 then
			return sign * (1 / 0)
		else
			return sign * (0 / 0)
		end
	end

	return (-1) ^ sign * 2 ^ (exp - 127) * (1 + normal / 2 ^ 23)
end
