#include <stdio.h>
#include <complex.h>
#define M y*=1.5-n*y*y/2
i;_Complex float f(float m){float y,n;n=m>0?m:-m;y=n;i=0x5f3759df-*(int*)&y/2;y=*(float*)&i;M;M;M;return m>0?y*n:y*n*I;}
int main (int argc, char **argv) {
int i;
_Complex float result;
float testcases[] = { 0, 4, 7, 5.0625, -15, -9 };
for (i = 0; i < sizeof(testcases) / sizeof(testcases[0]); i++) {
result = f(testcases[i]);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojaW5jbHVkZSA8Y29tcGxleC5oPgojZGVmaW5lIE0geSo9MS41LW4qeSp5LzIKaTtfQ29tcGxleCBmbG9hdCBmKGZsb2F0IG0pe2Zsb2F0IHksbjtuPW0+MD9tOi1tO3k9bjtpPTB4NWYzNzU5ZGYtKihpbnQqKSZ5LzI7eT0qKGZsb2F0KikmaTtNO007TTtyZXR1cm4gbT4wP3kqbjp5Km4qSTt9CgoKaW50IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikgewogICAgaW50IGk7CiAgICBfQ29tcGxleCBmbG9hdCByZXN1bHQ7CiAgICBmbG9hdCB0ZXN0Y2FzZXNbXSA9IHsgMCwgNCwgNywgNS4wNjI1LCAtMTUsIC05IH07CgogICAgZm9yIChpID0gMDsgaSA8IHNpemVvZih0ZXN0Y2FzZXMpIC8gc2l6ZW9mKHRlc3RjYXNlc1swXSk7IGkrKykgewogICAgICByZXN1bHQgPSBmKHRlc3RjYXNlc1tpXSk7CiAgICAgIHByaW50ZigiJWYgKyAlZmlcbiIsIGNyZWFsKHJlc3VsdCksIGNpbWFnKHJlc3VsdCkpOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==