about summary refs log tree commit diff
path: root/manual
diff options
context:
space:
mode:
Diffstat (limited to 'manual')
-rw-r--r--manual/arith.texi17
-rwxr-xr-xmanual/libm-err-tab.pl2
2 files changed, 18 insertions, 1 deletions
diff --git a/manual/arith.texi b/manual/arith.texi
index 58f35781bb..a13c46f0ec 100644
--- a/manual/arith.texi
+++ b/manual/arith.texi
@@ -361,6 +361,23 @@ You should therefore use the specific macros whenever possible.
 
 @comment math.h
 @comment ISO
+@deftypefn {Macro} int iscanonical (@emph{float-type} @var{x})
+@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
+In some floating-point formats, some values have canonical (preferred)
+and noncanonical encodings (for IEEE interchange binary formats, all
+encodings are canonical).  This macro returns a nonzero value if
+@var{x} has a canonical encoding.  It is from TS 18661-1:2014.
+
+Note that some formats have multiple encodings of a value which are
+all equally canonical; @code{iscanonical} returns a nonzero value for
+all such encodings.  Also, formats may have encodings that do not
+correspond to any valid value of the type.  In ISO C terms these are
+@dfn{trap representations}; in @theglibc{}, @code{iscanonical} returns
+zero for such encodings.
+@end deftypefn
+
+@comment math.h
+@comment ISO
 @deftypefn {Macro} int isfinite (@emph{float-type} @var{x})
 @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
 This macro returns a nonzero value if @var{x} is finite: not plus or
diff --git a/manual/libm-err-tab.pl b/manual/libm-err-tab.pl
index 2386772b85..b36ef94325 100755
--- a/manual/libm-err-tab.pl
+++ b/manual/libm-err-tab.pl
@@ -77,7 +77,7 @@ use vars qw (%results @all_floats %suffices @all_functions);
     "nextup", "pow", "remainder", "remquo", "rint", "round", "scalb",
     "scalbn", "sin", "sincos", "sinh", "sqrt", "tan", "tanh", "tgamma",
     "trunc", "y0", "y1", "yn" );
-# fpclassify, isnormal, isfinite, isinf, isnan, issignaling,
+# fpclassify, iscanonical, isnormal, isfinite, isinf, isnan, issignaling,
 # issubnormal, iszero, signbit, isgreater, isgreaterequal, isless,
 # islessequal, islessgreater, isunordered are not tabulated.