@@ -1452,28 +1452,30 @@ describes the various floating point semantic modes and the corresponding option
14521452 "fhonor-infinities", "{on, off}"
14531453 "fsigned-zeros", "{on, off}"
14541454 "freciprocal-math", "{on, off}"
1455- "allow_approximate_fns ", "{on, off}"
1455+ "fallow-approximate-fns ", "{on, off}"
14561456 "fassociative-math", "{on, off}"
1457+ "fcomplex-arithmetic", "{basic, improved, full, promoted}"
14571458
14581459This table describes the option settings that correspond to the three
14591460floating point semantic models: precise (the default), strict, and fast.
14601461
14611462
14621463.. 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"
14771479
14781480The ``-ffp-model `` option does not modify the ``fdenormal-fp-math ``
14791481setting, but it does have an impact on whether ``crtfastmath.o `` is
@@ -1492,9 +1494,9 @@ for more details.
14921494 * Floating-point math obeys regular algebraic rules for real numbers (e.g.
14931495 ``+ `` and ``* `` are associative, ``x/y == x * (1/y) ``, and
14941496 ``(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.
14981500
14991501 ``-ffast-math `` also defines the ``__FAST_MATH__ `` preprocessor
15001502 macro. Some math libraries recognize this macro and change their behavior.
@@ -1753,7 +1755,7 @@ for more details.
17531755 Specify floating point behavior. ``-ffp-model `` is an umbrella
17541756 option that encompasses functionality provided by other, single
17551757 purpose, floating point options. Valid values are: ``precise ``, ``strict ``,
1756- and ``fast ``.
1758+ `` fast ``, and ``aggressive ``.
17571759 Details:
17581760
17591761 * ``precise `` Disables optimizations that are not value-safe on
@@ -1766,7 +1768,10 @@ for more details.
17661768 ``STDC FENV_ACCESS ``: by default ``FENV_ACCESS `` is disabled. This option
17671769 setting behaves as though ``#pragma STDC FENV_ACCESS ON `` appeared at the
17681770 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
17701775 ``ffp-contract=fast ``
17711776
17721777 Note: If your command line specifies multiple instances
0 commit comments