fork download
  1. #include <stdio.h>
  2.  
  3.  
  4. float min_float(){
  5. float a=1,d=0.5,b;
  6. while (1){
  7. b=a*(1-d);
  8. printf("%e = %e*(1-%e)\n",b,a,d);
  9. if (b==a)
  10. return b;
  11. if (b==0)
  12. d*=0.5;
  13. else
  14. a=b;
  15. }
  16. return b;
  17. }
  18.  
  19. double min_double(){
  20. double a=1,d=0.5,b;
  21. while (1){
  22. b=a*(1-d);
  23. // printf("%e = %e*(1-%e)\n",b,a,d);
  24. if (b==a)
  25. return b;
  26. if (b==0)
  27. d*=0.5;
  28. else
  29. a=b;
  30. }
  31. return b;
  32. }
  33.  
  34. long double min_extended(){
  35. long double a=1,d=0.5,b;
  36. while (1){
  37. b=a*(1-d);
  38. // printf("%Le = %Le*(1-%Le)\n",b,a,d);
  39. if (b==a)
  40. return b;
  41. if (b==0)
  42. d*=0.5;
  43. else
  44. a=b;
  45. }
  46. return b;
  47. }
  48.  
  49. int main()
  50.  
  51. {
  52.  
  53. printf("float: %e \n",min_float());
  54. printf("double: %e \n",min_double());
  55. printf("long double: %Le \n",min_extended());
  56. return 0;
  57. }
  58.  
Success #stdin #stdout 0s 4548KB
stdin
Standard input is empty
stdout
5.000000e-01 = 1.000000e+00*(1-5.000000e-01)
2.500000e-01 = 5.000000e-01*(1-5.000000e-01)
1.250000e-01 = 2.500000e-01*(1-5.000000e-01)
6.250000e-02 = 1.250000e-01*(1-5.000000e-01)
3.125000e-02 = 6.250000e-02*(1-5.000000e-01)
1.562500e-02 = 3.125000e-02*(1-5.000000e-01)
7.812500e-03 = 1.562500e-02*(1-5.000000e-01)
3.906250e-03 = 7.812500e-03*(1-5.000000e-01)
1.953125e-03 = 3.906250e-03*(1-5.000000e-01)
9.765625e-04 = 1.953125e-03*(1-5.000000e-01)
4.882812e-04 = 9.765625e-04*(1-5.000000e-01)
2.441406e-04 = 4.882812e-04*(1-5.000000e-01)
1.220703e-04 = 2.441406e-04*(1-5.000000e-01)
6.103516e-05 = 1.220703e-04*(1-5.000000e-01)
3.051758e-05 = 6.103516e-05*(1-5.000000e-01)
1.525879e-05 = 3.051758e-05*(1-5.000000e-01)
7.629395e-06 = 1.525879e-05*(1-5.000000e-01)
3.814697e-06 = 7.629395e-06*(1-5.000000e-01)
1.907349e-06 = 3.814697e-06*(1-5.000000e-01)
9.536743e-07 = 1.907349e-06*(1-5.000000e-01)
4.768372e-07 = 9.536743e-07*(1-5.000000e-01)
2.384186e-07 = 4.768372e-07*(1-5.000000e-01)
1.192093e-07 = 2.384186e-07*(1-5.000000e-01)
5.960464e-08 = 1.192093e-07*(1-5.000000e-01)
2.980232e-08 = 5.960464e-08*(1-5.000000e-01)
1.490116e-08 = 2.980232e-08*(1-5.000000e-01)
7.450581e-09 = 1.490116e-08*(1-5.000000e-01)
3.725290e-09 = 7.450581e-09*(1-5.000000e-01)
1.862645e-09 = 3.725290e-09*(1-5.000000e-01)
9.313226e-10 = 1.862645e-09*(1-5.000000e-01)
4.656613e-10 = 9.313226e-10*(1-5.000000e-01)
2.328306e-10 = 4.656613e-10*(1-5.000000e-01)
1.164153e-10 = 2.328306e-10*(1-5.000000e-01)
5.820766e-11 = 1.164153e-10*(1-5.000000e-01)
2.910383e-11 = 5.820766e-11*(1-5.000000e-01)
1.455192e-11 = 2.910383e-11*(1-5.000000e-01)
7.275958e-12 = 1.455192e-11*(1-5.000000e-01)
3.637979e-12 = 7.275958e-12*(1-5.000000e-01)
1.818989e-12 = 3.637979e-12*(1-5.000000e-01)
9.094947e-13 = 1.818989e-12*(1-5.000000e-01)
4.547474e-13 = 9.094947e-13*(1-5.000000e-01)
2.273737e-13 = 4.547474e-13*(1-5.000000e-01)
1.136868e-13 = 2.273737e-13*(1-5.000000e-01)
5.684342e-14 = 1.136868e-13*(1-5.000000e-01)
2.842171e-14 = 5.684342e-14*(1-5.000000e-01)
1.421085e-14 = 2.842171e-14*(1-5.000000e-01)
7.105427e-15 = 1.421085e-14*(1-5.000000e-01)
3.552714e-15 = 7.105427e-15*(1-5.000000e-01)
1.776357e-15 = 3.552714e-15*(1-5.000000e-01)
8.881784e-16 = 1.776357e-15*(1-5.000000e-01)
4.440892e-16 = 8.881784e-16*(1-5.000000e-01)
2.220446e-16 = 4.440892e-16*(1-5.000000e-01)
1.110223e-16 = 2.220446e-16*(1-5.000000e-01)
5.551115e-17 = 1.110223e-16*(1-5.000000e-01)
2.775558e-17 = 5.551115e-17*(1-5.000000e-01)
1.387779e-17 = 2.775558e-17*(1-5.000000e-01)
6.938894e-18 = 1.387779e-17*(1-5.000000e-01)
3.469447e-18 = 6.938894e-18*(1-5.000000e-01)
1.734723e-18 = 3.469447e-18*(1-5.000000e-01)
8.673617e-19 = 1.734723e-18*(1-5.000000e-01)
4.336809e-19 = 8.673617e-19*(1-5.000000e-01)
2.168404e-19 = 4.336809e-19*(1-5.000000e-01)
1.084202e-19 = 2.168404e-19*(1-5.000000e-01)
5.421011e-20 = 1.084202e-19*(1-5.000000e-01)
2.710505e-20 = 5.421011e-20*(1-5.000000e-01)
1.355253e-20 = 2.710505e-20*(1-5.000000e-01)
6.776264e-21 = 1.355253e-20*(1-5.000000e-01)
3.388132e-21 = 6.776264e-21*(1-5.000000e-01)
1.694066e-21 = 3.388132e-21*(1-5.000000e-01)
8.470329e-22 = 1.694066e-21*(1-5.000000e-01)
4.235165e-22 = 8.470329e-22*(1-5.000000e-01)
2.117582e-22 = 4.235165e-22*(1-5.000000e-01)
1.058791e-22 = 2.117582e-22*(1-5.000000e-01)
5.293956e-23 = 1.058791e-22*(1-5.000000e-01)
2.646978e-23 = 5.293956e-23*(1-5.000000e-01)
1.323489e-23 = 2.646978e-23*(1-5.000000e-01)
6.617445e-24 = 1.323489e-23*(1-5.000000e-01)
3.308722e-24 = 6.617445e-24*(1-5.000000e-01)
1.654361e-24 = 3.308722e-24*(1-5.000000e-01)
8.271806e-25 = 1.654361e-24*(1-5.000000e-01)
4.135903e-25 = 8.271806e-25*(1-5.000000e-01)
2.067952e-25 = 4.135903e-25*(1-5.000000e-01)
1.033976e-25 = 2.067952e-25*(1-5.000000e-01)
5.169879e-26 = 1.033976e-25*(1-5.000000e-01)
2.584939e-26 = 5.169879e-26*(1-5.000000e-01)
1.292470e-26 = 2.584939e-26*(1-5.000000e-01)
6.462349e-27 = 1.292470e-26*(1-5.000000e-01)
3.231174e-27 = 6.462349e-27*(1-5.000000e-01)
1.615587e-27 = 3.231174e-27*(1-5.000000e-01)
8.077936e-28 = 1.615587e-27*(1-5.000000e-01)
4.038968e-28 = 8.077936e-28*(1-5.000000e-01)
2.019484e-28 = 4.038968e-28*(1-5.000000e-01)
1.009742e-28 = 2.019484e-28*(1-5.000000e-01)
5.048710e-29 = 1.009742e-28*(1-5.000000e-01)
2.524355e-29 = 5.048710e-29*(1-5.000000e-01)
1.262177e-29 = 2.524355e-29*(1-5.000000e-01)
6.310887e-30 = 1.262177e-29*(1-5.000000e-01)
3.155444e-30 = 6.310887e-30*(1-5.000000e-01)
1.577722e-30 = 3.155444e-30*(1-5.000000e-01)
7.888609e-31 = 1.577722e-30*(1-5.000000e-01)
3.944305e-31 = 7.888609e-31*(1-5.000000e-01)
1.972152e-31 = 3.944305e-31*(1-5.000000e-01)
9.860761e-32 = 1.972152e-31*(1-5.000000e-01)
4.930381e-32 = 9.860761e-32*(1-5.000000e-01)
2.465190e-32 = 4.930381e-32*(1-5.000000e-01)
1.232595e-32 = 2.465190e-32*(1-5.000000e-01)
6.162976e-33 = 1.232595e-32*(1-5.000000e-01)
3.081488e-33 = 6.162976e-33*(1-5.000000e-01)
1.540744e-33 = 3.081488e-33*(1-5.000000e-01)
7.703720e-34 = 1.540744e-33*(1-5.000000e-01)
3.851860e-34 = 7.703720e-34*(1-5.000000e-01)
1.925930e-34 = 3.851860e-34*(1-5.000000e-01)
9.629650e-35 = 1.925930e-34*(1-5.000000e-01)
4.814825e-35 = 9.629650e-35*(1-5.000000e-01)
2.407412e-35 = 4.814825e-35*(1-5.000000e-01)
1.203706e-35 = 2.407412e-35*(1-5.000000e-01)
6.018531e-36 = 1.203706e-35*(1-5.000000e-01)
3.009266e-36 = 6.018531e-36*(1-5.000000e-01)
1.504633e-36 = 3.009266e-36*(1-5.000000e-01)
7.523164e-37 = 1.504633e-36*(1-5.000000e-01)
3.761582e-37 = 7.523164e-37*(1-5.000000e-01)
1.880791e-37 = 3.761582e-37*(1-5.000000e-01)
9.403955e-38 = 1.880791e-37*(1-5.000000e-01)
4.701977e-38 = 9.403955e-38*(1-5.000000e-01)
2.350989e-38 = 4.701977e-38*(1-5.000000e-01)
1.175494e-38 = 2.350989e-38*(1-5.000000e-01)
5.877472e-39 = 1.175494e-38*(1-5.000000e-01)
2.938736e-39 = 5.877472e-39*(1-5.000000e-01)
1.469368e-39 = 2.938736e-39*(1-5.000000e-01)
7.346840e-40 = 1.469368e-39*(1-5.000000e-01)
3.673420e-40 = 7.346840e-40*(1-5.000000e-01)
1.836710e-40 = 3.673420e-40*(1-5.000000e-01)
9.183550e-41 = 1.836710e-40*(1-5.000000e-01)
4.591775e-41 = 9.183550e-41*(1-5.000000e-01)
2.295887e-41 = 4.591775e-41*(1-5.000000e-01)
1.147944e-41 = 2.295887e-41*(1-5.000000e-01)
5.739719e-42 = 1.147944e-41*(1-5.000000e-01)
2.869859e-42 = 5.739719e-42*(1-5.000000e-01)
1.434930e-42 = 2.869859e-42*(1-5.000000e-01)
7.174648e-43 = 1.434930e-42*(1-5.000000e-01)
3.587324e-43 = 7.174648e-43*(1-5.000000e-01)
1.793662e-43 = 3.587324e-43*(1-5.000000e-01)
8.968310e-44 = 1.793662e-43*(1-5.000000e-01)
4.484155e-44 = 8.968310e-44*(1-5.000000e-01)
2.242078e-44 = 4.484155e-44*(1-5.000000e-01)
1.121039e-44 = 2.242078e-44*(1-5.000000e-01)
5.605194e-45 = 1.121039e-44*(1-5.000000e-01)
2.802597e-45 = 5.605194e-45*(1-5.000000e-01)
1.401298e-45 = 2.802597e-45*(1-5.000000e-01)
0.000000e+00 = 1.401298e-45*(1-5.000000e-01)
1.401298e-45 = 1.401298e-45*(1-2.500000e-01)
float: 1.401298e-45 
double: 4.940656e-324 
long double: 3.645200e-4951