2012-04-13 39 views
5

Tất cả thông tin tôi có thể tìm thấy trong tài liệu và web chỉ dành cho toán học là "Cho phép tối ưu hóa cho số học dấu phẩy động giả định rằng đối số và kết quả không phải là NaN hoặc + -Infs". Điều này dường như không đến với tôi. Có ai biết chính xác những gì những tối ưu hóa đó không? Cảm ơnTối ưu hóa được hỗ trợ bởi chỉ-có-toán-chỉ là gì?

+0

Có lẽ 'x == x' sẽ được tối ưu hóa thành true. – Mysticial

+1

http://gcc.gnu.org/wiki/FloatingPointMath – janneb

Trả lời

8

Rất nhiều những điều nhỏ nhặt có thể được tối ưu hóa theo giả định rằng, giống như:

  • x == x ->1
  • x * 1 ->x
  • x >= y ->!(x < y) và tương tự.
  • x/x ->1 nếu trình biên dịch có thể chứng minh x != 0.
  • nó có thể cho phép trình biên dịch sử dụng hướng dẫn tối đa/phần cứng cho các biểu thức như x > y ? x : y.
  • ... nhiều hơn nữa

Bạn thường thấy giả thiết này cùng với các giả định như "dấu hiệu của sự không không quan trọng", sau đó cho phép những thứ như:

  • x - x ->0
  • 0/x ->0
  • x * 0 ->0
Các vấn đề liên quan