-ffast-math
केवल IEEE अनुपालन को तोड़ने से बहुत अधिक है।
सबसे पहले, निश्चित रूप से, यह टूटता है सख्त IEEE अनुपालन , उदाहरण के लिए कुछ को निर्देशों का पुन: व्यवस्थित करने की अनुमति देता है जो गणितीय रूप से समान (आदर्श) है लेकिन फ्लोटिंग बिंदु में बिल्कुल समान नहीं है।
दूसरा, यह एकल-अनुदेश गणित कार्यों के बाद सेटिंग को अक्षम करता हैerrno
, जिसका अर्थ है कि थ्रेड-लोकल वेरिएबल पर लिखने से बचें (यह कुछ आर्किटेक्चर पर उन कार्यों के लिए 100% अंतर कर सकता है)।
तीसरा, यह धारणा बनाता है कि सभी गणित परिमित हैं , जिसका अर्थ है कि NaN (या शून्य) के लिए कोई जांच उस स्थान पर नहीं की जाती है जहां उनके हानिकारक प्रभाव होंगे। यह माना जाता है कि ऐसा नहीं होने जा रहा है।
चौथा, यह विभाजन और पारस्परिक वर्गमूल के लिए पारस्परिक सन्निकटन को सक्षम बनाता है ।
इसके अलावा, यह हस्ताक्षरित शून्य को निष्क्रिय करता है (कोड मानता है कि हस्ताक्षरित शून्य मौजूद नहीं है, भले ही लक्ष्य इसका समर्थन करता है) और गणित को गोल कर रहा है, जो संकलन-समय पर लगातार अन्य चीजों के बीच सक्षम बनाता है।
अंतिम, यह कोड उत्पन्न करता है जो यह संकेत देता है कि सिग्नलिंग / ट्रैपिंग गणित के कारण कोई हार्डवेयर व्यवधान उत्पन्न नहीं हो सकता है (अर्थात, यदि इन्हें लक्ष्य आर्किटेक्चर पर अक्षम नहीं किया जा सकता है और परिणामस्वरूप होता है , तो इन्हें संभाला नहीं जाएगा)।