031. Fallatio logicum

Istnieje generalny problem z teoriami mówiącymi że logika jest pan-universalna (czyli prawdziwa w każdym świecie), czy universalna —- prawdziwa w tym świecie, problem ten jest taki że są fałszywe. Są sytuacje w których A nie równa się A. (mam na myśli operacje zmiennoprzecinkowe C++

[29.16] Why is floating point so inaccurate?
Because floating point arithmetic is different from real number arithmetic. Bottom line: Never use == to compare two floating point numbers. Here's a simple example: double x = 1.0 / 10.0; double y = x * 10.0; if (y != 1.0) std::cout «; "surprise: " « " != 1\n"; The above "surprise" message will appear on some (but not all) compilers/machines. But even if your particular compiler/machine doesn't cause the above "surprise" message (and if you write me telling me whether it does, you'll show you've missed the whole point of this FAQ), floating point will surprise you at some point. So read this FAQ and you'll know what to do. Furhter readnig: http://www.parashift.com/c++-faq-lite/newbie.html#faq-29.14

Albo inaczej:

[29.14] Is !(a < b) logically the same as a >= b?

No!

Despite what your grade school math teacher taught you, these equivalences don't always work in software, especially with floating point expressions or user-defined types.

Example: if a is a floating point NaN, then both a < b and a >= b will be false. That means !(a < b) will be true and a >= b will be false.

Ogólnie w C++ logika czasem zawodzi. I wiecie co? Da się z tym żyć, nie otwierają się piekielne czelucie a jak napiszę program:

    if(sin(10 * PI)!=sin(0)){std::cout << "I am a Pope";}

I mi się pojawi że jestem tym papierzem to wiecie co? Nie będę nim i tak. Logika nic w rzeczywistości sankcjonuje.
A jak ktoś powie że C/C++ jest sprzeczny (z tej racji) to mu powiem że pierdoli bo teraz czyta ten tekst przy pomocy przynajmniej kilku warstw sprzecznego oprogramowania. I życzyłbym Idealizmowi by był sprzeczny w ten sposób.

Bottom line: Logika nie jest absolutna. Logika jest partykularna.

Wszystkie prawa zastrzeżone. Chcesz wykorzystać te materiały? Daj mi znać (mail, komentarz na forum, prywatna wiadomość) -- na pewno się zgodzę.