fork(4) download
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. float f(float n) {
  5. n = 1.0f / n;
  6. long i;
  7. float x, y;
  8.  
  9. x = n * 0.5f;
  10. y = n;
  11. i = *(long *)&y;
  12. i = 0x5f3759df - (i >> 1);
  13. y = *(float *)&i;
  14. y = y * (1.5f - (x * y * y));
  15.  
  16. return y;
  17. }
  18.  
  19. int main(void) {
  20. int n = 4, x[] = {4, 64, 10000, 2};
  21. float r, s, d;
  22.  
  23. for (int i = 0; i < n; i++) {
  24. r = f(x[i]);
  25. s = sqrtf(x[i]);
  26. d = fabsf((fabsf(r) - s) / s) * 100.0f;
  27. printf("%d\t%f\t%f\t%f\n", x[i], r, s, d);
  28. }
  29.  
  30. return 0;
  31. }
Success #stdin #stdout 0s 2156KB
stdin
Standard input is empty
stdout
4	1.996614	2.000000	0.169283
64	7.986457	8.000000	0.169283
10000	99.840172	100.000000	0.159828
2	1.413860	1.414214	0.024995