-ffast-math
làm được nhiều hơn là chỉ phá vỡ sự tuân thủ nghiêm ngặt của IEEE.
Tất nhiên, trước hết, nó phá vỡ sự tuân thủ nghiêm ngặt của IEEE, cho phép ví dụ sắp xếp lại các hướng dẫn cho một cái gì đó giống nhau về mặt toán học (lý tưởng) nhưng không hoàn toàn giống nhau ở điểm nổi.
Thứ hai, nó vô hiệu hóa cài đặt errno
sau các hàm toán học một lệnh, có nghĩa là tránh ghi vào biến cục bộ của luồng (điều này có thể tạo ra sự khác biệt 100% cho các hàm đó trên một số kiến trúc).
Thứ ba, nó đưa ra giả định rằng tất cả toán học là hữu hạn , điều đó có nghĩa là không có kiểm tra nào đối với NaN (hoặc không) được thực hiện tại nơi chúng sẽ có tác động bất lợi. Nó chỉ đơn giản là giả định rằng điều này sẽ không xảy ra.
Thứ tư, nó cho phép xấp xỉ đối ứng cho căn bậc hai và căn bậc hai.
Hơn nữa, nó vô hiệu hóa số 0 đã ký (mã giả định số 0 đã ký không tồn tại, ngay cả khi mục tiêu hỗ trợ nó) và làm tròn toán học, cho phép trong số những thứ khác liên tục gấp lại trong thời gian biên dịch.
Cuối cùng, nó tạo mã giả định rằng không có sự cố ngắt phần cứng nào có thể xảy ra do toán học báo hiệu / bẫy (nghĩa là, nếu những điều này không thể bị vô hiệu hóa trên kiến trúc đích và do đó sẽ xảy ra , chúng sẽ không được xử lý).