@@ -1452,28 +1452,30 @@ describes the various floating point semantic modes and the corresponding option
1452
1452
"fhonor-infinities", "{on, off}"
1453
1453
"fsigned-zeros", "{on, off}"
1454
1454
"freciprocal-math", "{on, off}"
1455
- "allow_approximate_fns ", "{on, off}"
1455
+ "fallow-approximate-fns ", "{on, off}"
1456
1456
"fassociative-math", "{on, off}"
1457
+ "fcomplex-arithmetic", "{basic, improved, full, promoted}"
1457
1458
1458
1459
This table describes the option settings that correspond to the three
1459
1460
floating point semantic models: precise (the default), strict, and fast.
1460
1461
1461
1462
1462
1463
.. csv-table :: Floating Point Models
1463
- :header: "Mode", "Precise", "Strict", "Fast"
1464
- :widths: 25, 15, 15, 15
1465
-
1466
- "except_behavior", "ignore", "strict", "ignore"
1467
- "fenv_access", "off", "on", "off"
1468
- "rounding_mode", "tonearest", "dynamic", "tonearest"
1469
- "contract", "on", "off", "fast"
1470
- "support_math_errno", "on", "on", "off"
1471
- "no_honor_nans", "off", "off", "on"
1472
- "no_honor_infinities", "off", "off", "on"
1473
- "no_signed_zeros", "off", "off", "on"
1474
- "allow_reciprocal", "off", "off", "on"
1475
- "allow_approximate_fns", "off", "off", "on"
1476
- "allow_reassociation", "off", "off", "on"
1464
+ :header: "Mode", "Precise", "Strict", "Fast", "Aggressive"
1465
+ :widths: 25, 25, 25, 25, 25
1466
+
1467
+ "except_behavior", "ignore", "strict", "ignore", "ignore"
1468
+ "fenv_access", "off", "on", "off", "off"
1469
+ "rounding_mode", "tonearest", "dynamic", "tonearest", "tonearest"
1470
+ "contract", "on", "off", "fast", "fast"
1471
+ "support_math_errno", "on", "on", "off", "off"
1472
+ "no_honor_nans", "off", "off", "off", "on"
1473
+ "no_honor_infinities", "off", "off", "off", "on"
1474
+ "no_signed_zeros", "off", "off", "on", "on"
1475
+ "allow_reciprocal", "off", "off", "on", "on"
1476
+ "allow_approximate_fns", "off", "off", "on", "on"
1477
+ "allow_reassociation", "off", "off", "on", "on"
1478
+ "complex_arithmetic", "full", "full", "promoted", "basic"
1477
1479
1478
1480
The ``-ffp-model `` option does not modify the ``fdenormal-fp-math ``
1479
1481
setting, but it does have an impact on whether ``crtfastmath.o `` is
@@ -1492,9 +1494,9 @@ for more details.
1492
1494
* Floating-point math obeys regular algebraic rules for real numbers (e.g.
1493
1495
``+ `` and ``* `` are associative, ``x/y == x * (1/y) ``, and
1494
1496
``(a + b) * c == a * c + b * c ``),
1495
- * Operands to floating-point operations are not equal to `` NaN `` and
1496
- `` Inf ``, and
1497
- * ``+0 `` and ``-0 `` are interchangeable.
1497
+ * No `` NaN `` or infinite values will be operands or results of
1498
+ floating-point operations,
1499
+ * ``+0 `` and ``-0 `` may be treated as interchangeable.
1498
1500
1499
1501
``-ffast-math `` also defines the ``__FAST_MATH__ `` preprocessor
1500
1502
macro. Some math libraries recognize this macro and change their behavior.
@@ -1753,7 +1755,7 @@ for more details.
1753
1755
Specify floating point behavior. ``-ffp-model `` is an umbrella
1754
1756
option that encompasses functionality provided by other, single
1755
1757
purpose, floating point options. Valid values are: ``precise ``, ``strict ``,
1756
- and ``fast ``.
1758
+ `` fast ``, and ``aggressive ``.
1757
1759
Details:
1758
1760
1759
1761
* ``precise `` Disables optimizations that are not value-safe on
@@ -1766,7 +1768,10 @@ for more details.
1766
1768
``STDC FENV_ACCESS ``: by default ``FENV_ACCESS `` is disabled. This option
1767
1769
setting behaves as though ``#pragma STDC FENV_ACCESS ON `` appeared at the
1768
1770
top of the source file.
1769
- * ``fast `` Behaves identically to specifying both ``-ffast-math `` and
1771
+ * ``fast `` Behaves identically to specifying ``-funsafe-math-optimizations ``,
1772
+ ``-fno-math-errno `` and ``-fcomplex-arithmetic=promoted ``
1773
+ ``ffp-contract=fast ``
1774
+ * ``aggressive `` Behaves identically to specifying both ``-ffast-math `` and
1770
1775
``ffp-contract=fast ``
1771
1776
1772
1777
Note: If your command line specifies multiple instances
0 commit comments