{"id":3532,"date":"2018-06-13T11:28:32","date_gmt":"2018-06-13T10:28:32","guid":{"rendered":"http:\/\/roboblog.fatal-fury.de\/?p=3532"},"modified":"2018-06-13T11:28:32","modified_gmt":"2018-06-13T10:28:32","slug":"c-guns-nachste-darstellbare-gleitkommazahl-stdnextafter","status":"publish","type":"post","link":"http:\/\/roboblog.fatal-fury.de\/?p=3532","title":{"rendered":"C++ Guns: n\u00e4chste darstellbare Gleitkommazahl : std::nextafter"},"content":{"rendered":"<p><a href=\"http:\/\/en.cppreference.com\/w\/cpp\/numeric\/math\/nextafter\">std::nextafter(Arithmetic from, Arithmetic to)<\/a><\/p>\n<blockquote><p>Returns the next representable value of from in the direction of to. <\/p><\/blockquote>\n<p>Die n\u00e4chste Zahl nach 1.0f ist dann 1.0000001192092895508. Hab das mal f\u00fcr eine Reihe von Zahlen mir ausgeben lassen. Und nicht nur die n\u00e4chste Zahl, sondern bis zu 1000 n\u00e4chst Zahlen.<\/p>\n<p><a href=\"http:\/\/roboblog.fatal-fury.de\/wp-content\/uploads\/2018\/06\/nextafter.png\" rel=\"attachment wp-att-3535\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/roboblog.fatal-fury.de\/wp-content\/uploads\/2018\/06\/nextafter.png\" alt=\"nextafter\" width=\"640\" height=\"480\" class=\"alignnone size-full wp-image-3535\" srcset=\"http:\/\/roboblog.fatal-fury.de\/wp-content\/uploads\/2018\/06\/nextafter.png 640w, http:\/\/roboblog.fatal-fury.de\/wp-content\/uploads\/2018\/06\/nextafter-300x225.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>Hier das Programm f\u00fcr C++:<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\ndouble nextafter2(double x, int anzahl) {\r\n    for(int i=0; i &lt; anzahl; i++) {\r\n        x = std::nextafter(x, x+x);\r\n    }\r\n    return x;\r\n}\r\n\r\nvoid blah(int i) {\r\n    std::cout &lt;&lt; i &lt;&lt; &quot;     &quot;;\r\n    std::cout &lt;&lt; nextafter2(0.001, i)- 0.001 &lt;&lt; &quot; &quot;;\r\n    std::cout &lt;&lt; nextafter2(0.01, i)  - 0.01 &lt;&lt; &quot; &quot;;\r\n    std::cout &lt;&lt; nextafter2(0.1, i)    - 0.1 &lt;&lt; &quot; &quot;;\r\n    std::cout &lt;&lt; nextafter2(1, i)        - 1 &lt;&lt; &quot; &quot;;\r\n    std::cout &lt;&lt; nextafter2(10, i)      - 10 &lt;&lt; &quot; &quot;;\r\n    std::cout &lt;&lt; nextafter2(100, i)    - 100 &lt;&lt; &quot; &quot;;\r\n    std::cout &lt;&lt; nextafter2(1000, i)  - 1000 &lt;&lt; &quot;\\n&quot;;\r\n}\r\n\r\n    std::cout &lt;&lt; &quot;anzahl   0.001       0.01       0.1       1.0       10      100       1000\\n&quot;;\r\n    blah(1);\r\n    blah(10);\r\n    blah(100);\r\n    blah(1000);\r\n<\/pre>\n<p>Und hier das Programm f\u00fcr gnuplot<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nset title &quot;std::nextafter&quot;\r\nset format y &quot;%E&quot;\r\nset key left\r\nset key autotitle columnhead\r\nset ylabel &quot;relativ next&quot;\r\nset xlabel &quot;ith next number&quot;\r\nset logscale xy\r\nplot for &#x5B;col=2:8] &quot;nextnumber&quot; using 1:col  w linespoint\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>std::nextafter(Arithmetic from, Arithmetic to) Returns the next representable value of from in the direction of to. Die n\u00e4chste Zahl nach 1.0f ist dann 1.0000001192092895508. Hab das mal f\u00fcr eine Reihe von Zahlen mir ausgeben lassen. Und nicht nur die n\u00e4chste Zahl, sondern bis zu 1000 n\u00e4chst Zahlen. Hier das Programm f\u00fcr C++: double nextafter2(double x, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[17],"class_list":["post-3532","post","type-post","status-publish","format-standard","hentry","category-allgemein","tag-cpp"],"_links":{"self":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts\/3532","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3532"}],"version-history":[{"count":4,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts\/3532\/revisions"}],"predecessor-version":[{"id":3537,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts\/3532\/revisions\/3537"}],"wp:attachment":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3532"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3532"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3532"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}