nt approximate_sin3(unsigned x) { unsigned s=-int(x>>31); x+=x; x=x>>16; x*=x^0xffff; // x=x*(2-x) x+=x; // optional return x^s; }