// adapted from the rintf() function from musl-1.1.16#include"libm.h"floatnearbyintf(floatx){union{floatf;uint32_ti;}u={x};inte=u.i>>23&0xff;ints=u.i>>31;float_ty;if(e>=0x7f+23)returnx;if(s)y=x-0x1p23f+0x1p23f;elsey=x+0x1p23f-0x1p23f;if(y==0)returns?-0.0f:0.0f;returny;}