<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/glibc.git/math/math.h, branch azanella/aarch64-split-stack</title>
<subtitle>sourceware.org: git/glibc.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glibc.git/'/>
<entry>
<title>Improve math_errhandling</title>
<updated>2018-01-03T13:14:10+00:00</updated>
<author>
<name>Wilco Dijkstra</name>
<email>wdijkstr@arm.com</email>
</author>
<published>2018-01-03T13:14:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glibc.git/commit/?id=3c7d03129498e7426855b5d4cdd5b7109ecc2172'/>
<id>3c7d03129498e7426855b5d4cdd5b7109ecc2172</id>
<content type='text'>
Currently math_errhandling is always set to MATH_ERRNO | MATH_ERREXCEPT
even if -fno-math-errno is used.  It is not defined at all when fast-math
is used.  Set it to 0 with fast-math - this is noncomforming but more
useful than not define math_errhandling at all. Also take __NO_MATH_ERRNO__
into account and update comment.

	* math/math.h (math_errhandling): Set to 0 with __FAST_MATH__.
	Add __NO_MATH_ERRNO__ check.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently math_errhandling is always set to MATH_ERRNO | MATH_ERREXCEPT
even if -fno-math-errno is used.  It is not defined at all when fast-math
is used.  Set it to 0 with fast-math - this is noncomforming but more
useful than not define math_errhandling at all. Also take __NO_MATH_ERRNO__
into account and update comment.

	* math/math.h (math_errhandling): Set to 0 with __FAST_MATH__.
	Add __NO_MATH_ERRNO__ check.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update copyright dates with scripts/update-copyrights.</title>
<updated>2018-01-01T00:32:25+00:00</updated>
<author>
<name>Joseph Myers</name>
<email>joseph@codesourcery.com</email>
</author>
<published>2018-01-01T00:32:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glibc.git/commit/?id=688903eb3ef01301d239ab753d309d45720610a7'/>
<id>688903eb3ef01301d239ab753d309d45720610a7</id>
<content type='text'>
	* All files with FSF copyright notices: Update copyright dates
	using scripts/update-copyrights.
	* locale/programs/charmap-kw.h: Regenerated.
	* locale/programs/locfile-kw.h: Likewise.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	* All files with FSF copyright notices: Update copyright dates
	using scripts/update-copyrights.
	* locale/programs/charmap-kw.h: Regenerated.
	* locale/programs/locfile-kw.h: Likewise.
</pre>
</div>
</content>
</entry>
<entry>
<title>Provide a C++ version of iseqsig (bug 22377)</title>
<updated>2017-12-20T01:26:59+00:00</updated>
<author>
<name>Gabriel F. T. Gomes</name>
<email>gabriel@inconstante.eti.br</email>
</author>
<published>2017-11-03T12:44:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glibc.git/commit/?id=c85e54ac6cef0faed7b7ffc722f52523dec59bf5'/>
<id>c85e54ac6cef0faed7b7ffc722f52523dec59bf5</id>
<content type='text'>
In C++ mode, __MATH_TG cannot be used for defining iseqsig, because
__MATH_TG relies on __builtin_types_compatible_p, which is a C-only
builtin.  This is true when float128 is provided as an ABI-distinct type
from long double.

Moreover, the comparison macros from ISO C take two floating-point
arguments, which need not have the same type.  Choosing what underlying
function to call requires evaluating the formats of the arguments, then
selecting which is wider.  The macro __MATH_EVAL_FMT2 provides this
information, however, only the type of the macro expansion is relevant
(actually evaluating the expression would be incorrect).

This patch provides a C++ version of iseqsig, in which only the type of
__MATH_EVAL_FMT2 (__typeof or decltype) is used as a template parameter
for __iseqsig_type.  This function calls the appropriate underlying
function.

Tested for powerpc64le and x86_64.

	[BZ #22377]
	* math/Makefile [C++] (tests): Add test for iseqsig.
	* math/math.h [C++] (iseqsig): New implementation, which does
	not rely on __MATH_TG/__builtin_types_compatible_p.
	* math/test-math-iseqsig.cc: New file.
	* sysdeps/powerpc/powerpc64le/Makefile
	(CFLAGS-test-math-iseqsig.cc): New variable.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In C++ mode, __MATH_TG cannot be used for defining iseqsig, because
__MATH_TG relies on __builtin_types_compatible_p, which is a C-only
builtin.  This is true when float128 is provided as an ABI-distinct type
from long double.

Moreover, the comparison macros from ISO C take two floating-point
arguments, which need not have the same type.  Choosing what underlying
function to call requires evaluating the formats of the arguments, then
selecting which is wider.  The macro __MATH_EVAL_FMT2 provides this
information, however, only the type of the macro expansion is relevant
(actually evaluating the expression would be incorrect).

This patch provides a C++ version of iseqsig, in which only the type of
__MATH_EVAL_FMT2 (__typeof or decltype) is used as a template parameter
for __iseqsig_type.  This function calls the appropriate underlying
function.

Tested for powerpc64le and x86_64.

	[BZ #22377]
	* math/Makefile [C++] (tests): Add test for iseqsig.
	* math/math.h [C++] (iseqsig): New implementation, which does
	not rely on __MATH_TG/__builtin_types_compatible_p.
	* math/test-math-iseqsig.cc: New file.
	* sysdeps/powerpc/powerpc64le/Makefile
	(CFLAGS-test-math-iseqsig.cc): New variable.
</pre>
</div>
</content>
</entry>
<entry>
<title>Handle more _FloatN, _FloatNx types in __MATH_TG.</title>
<updated>2017-11-03T23:50:00+00:00</updated>
<author>
<name>Joseph Myers</name>
<email>joseph@codesourcery.com</email>
</author>
<published>2017-11-03T23:50:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glibc.git/commit/?id=4ca70e1a2bb266756692ebfd0a757a960bc8796c'/>
<id>4ca70e1a2bb266756692ebfd0a757a960bc8796c</id>
<content type='text'>
Continuing the preparation for additional _FloatN / _FloatNx type
support, this patch prepares __MATH_TG to handle more such types.

Various unhandled cases, which do not correspond to any current glibc
configuration, have explicit #errors added.  _Float32 and _Float64x
are then handled appropriately in the _Generic case, which is the only
one, other than the cases where use of sizeof is sufficient, where
they should ever be explicit types at the language level instead of
typedefs.  There is no need to handle _Float64 or _Float32x explicitly
there because the default case calling a double function is correct
for those types.

Tested for x86_64.

	* math/math.h [__HAVE_DISTINCT_FLOAT16
	|| __HAVE_DISTINCT_FLOAT32 || __HAVE_DISTINCT_FLOAT64
	|| __HAVE_DISTINCT_FLOAT32X || __HAVE_DISTINCT_FLOAT64X
	|| __HAVE_DISTINCT_FLOAT128X]: Use #error.
	[__NO_LONG_DOUBLE_MATH &amp;&amp; __HAVE_DISTINCT_FLOAT128]: Likewise.
	[__HAVE_DISTINCT_FLOAT128 &amp;&amp; !__HAVE_GENERIC_SELECTION
	&amp;&amp; __HAVE_FLOATN_NOT_TYPEDEF]: Likewise.
	[__HAVE_DISTINCT_FLOAT128 &amp;&amp; __HAVE_GENERIC_SELECTION]
	(__MATH_TG_F32): New macro.
	[__HAVE_DISTINCT_FLOAT128 &amp;&amp; __HAVE_GENERIC_SELECTION]
	(__MATH_TG_F64X): Likewise.
	[__HAVE_DISTINCT_FLOAT128 &amp;&amp; __HAVE_GENERIC_SELECTION]
	(__MATH_TG): Use __MATH_TG_F32 and __MATH_TG_F64X.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Continuing the preparation for additional _FloatN / _FloatNx type
support, this patch prepares __MATH_TG to handle more such types.

Various unhandled cases, which do not correspond to any current glibc
configuration, have explicit #errors added.  _Float32 and _Float64x
are then handled appropriately in the _Generic case, which is the only
one, other than the cases where use of sizeof is sufficient, where
they should ever be explicit types at the language level instead of
typedefs.  There is no need to handle _Float64 or _Float32x explicitly
there because the default case calling a double function is correct
for those types.

Tested for x86_64.

	* math/math.h [__HAVE_DISTINCT_FLOAT16
	|| __HAVE_DISTINCT_FLOAT32 || __HAVE_DISTINCT_FLOAT64
	|| __HAVE_DISTINCT_FLOAT32X || __HAVE_DISTINCT_FLOAT64X
	|| __HAVE_DISTINCT_FLOAT128X]: Use #error.
	[__NO_LONG_DOUBLE_MATH &amp;&amp; __HAVE_DISTINCT_FLOAT128]: Likewise.
	[__HAVE_DISTINCT_FLOAT128 &amp;&amp; !__HAVE_GENERIC_SELECTION
	&amp;&amp; __HAVE_FLOATN_NOT_TYPEDEF]: Likewise.
	[__HAVE_DISTINCT_FLOAT128 &amp;&amp; __HAVE_GENERIC_SELECTION]
	(__MATH_TG_F32): New macro.
	[__HAVE_DISTINCT_FLOAT128 &amp;&amp; __HAVE_GENERIC_SELECTION]
	(__MATH_TG_F64X): Likewise.
	[__HAVE_DISTINCT_FLOAT128 &amp;&amp; __HAVE_GENERIC_SELECTION]
	(__MATH_TG): Use __MATH_TG_F32 and __MATH_TG_F64X.
</pre>
</div>
</content>
</entry>
<entry>
<title>Adjust __MATH_EVAL_FMT2 definition to handle _Float16 better.</title>
<updated>2017-10-31T16:01:51+00:00</updated>
<author>
<name>Joseph Myers</name>
<email>joseph@codesourcery.com</email>
</author>
<published>2017-10-31T16:01:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glibc.git/commit/?id=540af6e2f172a016719d3970433b9f6aeb0097f6'/>
<id>540af6e2f172a016719d3970433b9f6aeb0097f6</id>
<content type='text'>
Continuing the preparation for additional _FloatN / _FloatNx type
support, this patch adds an additional case in the definition of
__MATH_EVAL_FMT2, as used in defining iseqsig: when
__FLT_EVAL_METHOD__ is 0 or 32, it adds 0.0f to the arguments, so that
the correct function would be selected in the case of _Float16
arguments with excess precision (were glibc to support _Float16, which
of course __MATH_TG and other facilities do not at present - and
_Float16 support is not part of what this patch series is aiming for,
but this particular fix is simple so is included anyway).

Tested for x86_64.

	* math/math.h
	[__FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == 32]
	(__MATH_EVAL_FMT2): Define to add 0.0f.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Continuing the preparation for additional _FloatN / _FloatNx type
support, this patch adds an additional case in the definition of
__MATH_EVAL_FMT2, as used in defining iseqsig: when
__FLT_EVAL_METHOD__ is 0 or 32, it adds 0.0f to the arguments, so that
the correct function would be selected in the case of _Float16
arguments with excess precision (were glibc to support _Float16, which
of course __MATH_TG and other facilities do not at present - and
_Float16 support is not part of what this patch series is aiming for,
but this particular fix is simple so is included anyway).

Tested for x86_64.

	* math/math.h
	[__FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == 32]
	(__MATH_EVAL_FMT2): Define to add 0.0f.
</pre>
</div>
</content>
</entry>
<entry>
<title>Include bits/math-finite.h for more _FloatN, _FloatNx types.</title>
<updated>2017-10-30T22:15:40+00:00</updated>
<author>
<name>Joseph Myers</name>
<email>joseph@codesourcery.com</email>
</author>
<published>2017-10-30T22:15:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glibc.git/commit/?id=b61afe8c813e80aa7766c325023743fef4464807'/>
<id>b61afe8c813e80aa7766c325023743fef4464807</id>
<content type='text'>
Continuing the preparation for additional _FloatN / _FloatNx type
support, this patch extends the includes of &lt;bits/math-finite.h&gt; to
cover all such types, under conditions analogous to those for
_Float128.

Tested for x86_64.

	* math/math.h [__HAVE_DISTINCT_FLOAT16 || (__HAVE_FLOAT16 &amp;&amp; !_LIBC)]:
	Include &lt;bits/math-finite.h&gt; with appropriate macros defined and
	undefined.
	[__HAVE_DISTINCT_FLOAT32 || (__HAVE_FLOAT32 &amp;&amp; !_LIBC)]: Likewise.
	[__HAVE_DISTINCT_FLOAT64 || (__HAVE_FLOAT64 &amp;&amp; !_LIBC)]: Likewise.
	[__HAVE_DISTINCT_FLOAT32X || (__HAVE_FLOAT32X &amp;&amp; !_LIBC)]: Likewise.
	[__HAVE_DISTINCT_FLOAT64X || (__HAVE_FLOAT64X &amp;&amp; !_LIBC)]: Likewise.
	[__HAVE_DISTINCT_FLOAT128X || (__HAVE_FLOAT128X &amp;&amp; !_LIBC)]: Likewise.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Continuing the preparation for additional _FloatN / _FloatNx type
support, this patch extends the includes of &lt;bits/math-finite.h&gt; to
cover all such types, under conditions analogous to those for
_Float128.

Tested for x86_64.

	* math/math.h [__HAVE_DISTINCT_FLOAT16 || (__HAVE_FLOAT16 &amp;&amp; !_LIBC)]:
	Include &lt;bits/math-finite.h&gt; with appropriate macros defined and
	undefined.
	[__HAVE_DISTINCT_FLOAT32 || (__HAVE_FLOAT32 &amp;&amp; !_LIBC)]: Likewise.
	[__HAVE_DISTINCT_FLOAT64 || (__HAVE_FLOAT64 &amp;&amp; !_LIBC)]: Likewise.
	[__HAVE_DISTINCT_FLOAT32X || (__HAVE_FLOAT32X &amp;&amp; !_LIBC)]: Likewise.
	[__HAVE_DISTINCT_FLOAT64X || (__HAVE_FLOAT64X &amp;&amp; !_LIBC)]: Likewise.
	[__HAVE_DISTINCT_FLOAT128X || (__HAVE_FLOAT128X &amp;&amp; !_LIBC)]: Likewise.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove _Mlong_double_ etc. macros.</title>
<updated>2017-10-30T20:58:51+00:00</updated>
<author>
<name>Joseph Myers</name>
<email>joseph@codesourcery.com</email>
</author>
<published>2017-10-30T20:58:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glibc.git/commit/?id=eda162dd8a7d2ca0b1900aa57a78b9586800b4ec'/>
<id>eda162dd8a7d2ca0b1900aa57a78b9586800b4ec</id>
<content type='text'>
math.h has a macro _Mlong_double_ for the type to use when declaring
long double functions, and similar macros for other types.
math/Makefile uses -D_Mlong_double_=double in the case of long double
having the same ABI as double.

This originates with:

Mon Jul  8 13:37:40 1996  Roland McGrath  &lt;roland@delasyd.gnu.ai.mit.edu&gt;

        * math/math.h (_Mfloat_, _Mlong_double_): New macros, defined iff not
        already defined to float, long double.  Use those macros for _Mdouble_
        defns when including mathcalls.h.
        * math/Makefile [$(long-double-fcts) != yes] (CPPFLAGS): Append
        -D_Mlong_double_=double.

However, math.h stopped declaring long double functions in the case of
long double having the same ABI as double (and thus probably stopped
actually needing the Makefile definition of _Mlong_double_) with:

1998-11-05  Ulrich Drepper  &lt;drepper@cygnus.com&gt;

        * math/math.h: Unconditionally include bits/mathdef.h.  Declare
        long double functions only if __NO_LONG_DOUBLE_MATH is not
        defined.
        * sysdeps/generic/bits/mathdef.h: Define only if __USE_ISOC9X.
        Define __NO_LONG_DOUBLE_MATH.
        * sysdeps/m68k/fpu/bits/mathdef.h: Define only if __USE_ISOC9X.
        * sysdeps/i386/fpu/bits/mathdef.h: Likewise.

The declarations were since restored for compiling user code, but
remain absent when _LIBC is defined, which is sufficient to avoid
problems declaring function aliases of incompatible types.  Thus the
indirection through the _Mlong_double_ macro is not needed (probably
since that 1998 patch), and this patch removes _Mlong_double_ and
associated macros for other types, leaving only the macro _Mdouble_
which is actually used as the type for which a given inclusion of
&lt;bits/mathcalls.h&gt; should declared functions.

Tested for x86_64, and tested with build-many-glibcs.py that installed
stripped shared libraries are unchanged by this patch.

	* math/math.h [!_Mfloat_] (_Mfloat_): Do not define.
	[!_Mlong_double_] (_Mlong_double_): Likewise.
	[!_Mfloat16_] (_Mfloat16_): Likewise.
	[!_Mfloat32_] (_Mfloat32_): Likewise.
	[!_Mfloat64_] (_Mfloat64_): Likewise.
	[!_Mfloat128_] (_Mfloat128_): Likewise.
	[!_Mfloat32x_] (_Mfloat32x_): Likewise.
	[!_Mfloat64x_] (_Mfloat64x_): Likewise.
	[!_Mfloat128x_] (_Mfloat128x_): Likewise.
	(_Mdouble_): Define without indirection through those macros.
	* math/complex.h [!_Mfloat_] (_Mfloat_): Do not define.
	[!_Mfloat128_] (_Mfloat128_): Likewise.
	[_Mlong_double_] (_Mlong_double_): Likewise.
	(_Mdouble_): Define without indirection through those macros.
	* math/Makefile [$(long-double-fcts) != yes] (math-CPPFLAGS): Do
	not add -D_Mlong_double_=double.
	* include/math.h [_ISOMAC] (_Mlong_double_): Do not undefine.
	* math/test-signgam-finite-c99.c (_Mlong_double_): Likewise.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
math.h has a macro _Mlong_double_ for the type to use when declaring
long double functions, and similar macros for other types.
math/Makefile uses -D_Mlong_double_=double in the case of long double
having the same ABI as double.

This originates with:

Mon Jul  8 13:37:40 1996  Roland McGrath  &lt;roland@delasyd.gnu.ai.mit.edu&gt;

        * math/math.h (_Mfloat_, _Mlong_double_): New macros, defined iff not
        already defined to float, long double.  Use those macros for _Mdouble_
        defns when including mathcalls.h.
        * math/Makefile [$(long-double-fcts) != yes] (CPPFLAGS): Append
        -D_Mlong_double_=double.

However, math.h stopped declaring long double functions in the case of
long double having the same ABI as double (and thus probably stopped
actually needing the Makefile definition of _Mlong_double_) with:

1998-11-05  Ulrich Drepper  &lt;drepper@cygnus.com&gt;

        * math/math.h: Unconditionally include bits/mathdef.h.  Declare
        long double functions only if __NO_LONG_DOUBLE_MATH is not
        defined.
        * sysdeps/generic/bits/mathdef.h: Define only if __USE_ISOC9X.
        Define __NO_LONG_DOUBLE_MATH.
        * sysdeps/m68k/fpu/bits/mathdef.h: Define only if __USE_ISOC9X.
        * sysdeps/i386/fpu/bits/mathdef.h: Likewise.

The declarations were since restored for compiling user code, but
remain absent when _LIBC is defined, which is sufficient to avoid
problems declaring function aliases of incompatible types.  Thus the
indirection through the _Mlong_double_ macro is not needed (probably
since that 1998 patch), and this patch removes _Mlong_double_ and
associated macros for other types, leaving only the macro _Mdouble_
which is actually used as the type for which a given inclusion of
&lt;bits/mathcalls.h&gt; should declared functions.

Tested for x86_64, and tested with build-many-glibcs.py that installed
stripped shared libraries are unchanged by this patch.

	* math/math.h [!_Mfloat_] (_Mfloat_): Do not define.
	[!_Mlong_double_] (_Mlong_double_): Likewise.
	[!_Mfloat16_] (_Mfloat16_): Likewise.
	[!_Mfloat32_] (_Mfloat32_): Likewise.
	[!_Mfloat64_] (_Mfloat64_): Likewise.
	[!_Mfloat128_] (_Mfloat128_): Likewise.
	[!_Mfloat32x_] (_Mfloat32x_): Likewise.
	[!_Mfloat64x_] (_Mfloat64x_): Likewise.
	[!_Mfloat128x_] (_Mfloat128x_): Likewise.
	(_Mdouble_): Define without indirection through those macros.
	* math/complex.h [!_Mfloat_] (_Mfloat_): Do not define.
	[!_Mfloat128_] (_Mfloat128_): Likewise.
	[_Mlong_double_] (_Mlong_double_): Likewise.
	(_Mdouble_): Define without indirection through those macros.
	* math/Makefile [$(long-double-fcts) != yes] (math-CPPFLAGS): Do
	not add -D_Mlong_double_=double.
	* include/math.h [_ISOMAC] (_Mlong_double_): Do not undefine.
	* math/test-signgam-finite-c99.c (_Mlong_double_): Likewise.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add _FloatN, _FloatNx M_* constants.</title>
<updated>2017-10-30T16:42:28+00:00</updated>
<author>
<name>Joseph Myers</name>
<email>joseph@codesourcery.com</email>
</author>
<published>2017-10-30T16:42:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glibc.git/commit/?id=ce12269fac8cb873df1a8785e4a6cde870855590'/>
<id>ce12269fac8cb873df1a8785e4a6cde870855590</id>
<content type='text'>
Continuing the preparation for additional _FloatN / _FloatNx type
support, this patch adds M_* constants for such types.  The decimal
expansions used are all the same as used for _Float128; there's no
need to reduce the precision used.  In the case of _Float128x, #error
is used because the constants would need additional precision, but how
much is needed would depend on the actual _Float128x format used, so
it's not possible to add header support simply as part of code that
handles all _FloatN / _FloatNx types similarly.

Tested for x86_64.

	* math/math.h [__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_Ef16): New macro.
	[__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_LOG2Ef16): Likewise.
	[__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_LOG10Ef16): Likewise.
	[__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_LN2f16): Likewise.
	[__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_LN10f16): Likewise.
	[__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_PIf16): Likewise.
	[__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_PI_2f16): Likewise.
	[__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_PI_4f16): Likewise.
	[__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_1_PIf16): Likewise.
	[__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_2_PIf16): Likewise.
	[__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_2_SQRTPIf16): Likewise.
	[__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_SQRT2f16): Likewise.
	[__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_SQRT1_2f16): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_Ef32): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_LOG2Ef32): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_LOG10Ef32): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_LN2f32): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_LN10f32): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_PIf32): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_PI_2f32): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_PI_4f32): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_1_PIf32): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_2_PIf32): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_2_SQRTPIf32): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_SQRT2f32): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_SQRT1_2f32): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_Ef64): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_LOG2Ef64): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_LOG10Ef64): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_LN2f64): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_LN10f64): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_PIf64): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_PI_2f64): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_PI_4f64): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_1_PIf64): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_2_PIf64): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_2_SQRTPIf64): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_SQRT2f64): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_SQRT1_2f64): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_Ef32x): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_LOG2Ef32x): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_LOG10Ef32x): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_LN2f32x): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_LN10f32x): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_PIf32x): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_PI_2f32x): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_PI_4f32x): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_1_PIf32x): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_2_PIf32x): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_2_SQRTPIf32x): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_SQRT2f32x): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_SQRT1_2f32x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_Ef64x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_LOG2Ef64x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_LOG10Ef64x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_LN2f64x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_LN10f64x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_PIf64x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_PI_2f64x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_PI_4f64x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_1_PIf64x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_2_PIf64x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_2_SQRTPIf64x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_SQRT2f64x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_SQRT1_2f64x): Likewise.
	[__HAVE_FLOAT128X &amp;&amp; __USE_GNU]: Use #error.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Continuing the preparation for additional _FloatN / _FloatNx type
support, this patch adds M_* constants for such types.  The decimal
expansions used are all the same as used for _Float128; there's no
need to reduce the precision used.  In the case of _Float128x, #error
is used because the constants would need additional precision, but how
much is needed would depend on the actual _Float128x format used, so
it's not possible to add header support simply as part of code that
handles all _FloatN / _FloatNx types similarly.

Tested for x86_64.

	* math/math.h [__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_Ef16): New macro.
	[__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_LOG2Ef16): Likewise.
	[__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_LOG10Ef16): Likewise.
	[__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_LN2f16): Likewise.
	[__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_LN10f16): Likewise.
	[__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_PIf16): Likewise.
	[__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_PI_2f16): Likewise.
	[__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_PI_4f16): Likewise.
	[__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_1_PIf16): Likewise.
	[__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_2_PIf16): Likewise.
	[__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_2_SQRTPIf16): Likewise.
	[__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_SQRT2f16): Likewise.
	[__HAVE_FLOAT16 &amp;&amp; __USE_GNU] (M_SQRT1_2f16): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_Ef32): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_LOG2Ef32): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_LOG10Ef32): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_LN2f32): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_LN10f32): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_PIf32): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_PI_2f32): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_PI_4f32): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_1_PIf32): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_2_PIf32): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_2_SQRTPIf32): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_SQRT2f32): Likewise.
	[__HAVE_FLOAT32 &amp;&amp; __USE_GNU] (M_SQRT1_2f32): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_Ef64): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_LOG2Ef64): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_LOG10Ef64): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_LN2f64): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_LN10f64): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_PIf64): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_PI_2f64): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_PI_4f64): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_1_PIf64): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_2_PIf64): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_2_SQRTPIf64): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_SQRT2f64): Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __USE_GNU] (M_SQRT1_2f64): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_Ef32x): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_LOG2Ef32x): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_LOG10Ef32x): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_LN2f32x): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_LN10f32x): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_PIf32x): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_PI_2f32x): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_PI_4f32x): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_1_PIf32x): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_2_PIf32x): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_2_SQRTPIf32x): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_SQRT2f32x): Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __USE_GNU] (M_SQRT1_2f32x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_Ef64x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_LOG2Ef64x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_LOG10Ef64x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_LN2f64x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_LN10f64x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_PIf64x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_PI_2f64x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_PI_4f64x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_1_PIf64x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_2_PIf64x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_2_SQRTPIf64x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_SQRT2f64x): Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __USE_GNU] (M_SQRT1_2f64x): Likewise.
	[__HAVE_FLOAT128X &amp;&amp; __USE_GNU]: Use #error.
</pre>
</div>
</content>
</entry>
<entry>
<title>Include bits/mathcalls.h for more _FloatN, _FloatNx types.</title>
<updated>2017-10-27T22:43:46+00:00</updated>
<author>
<name>Joseph Myers</name>
<email>joseph@codesourcery.com</email>
</author>
<published>2017-10-27T22:43:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glibc.git/commit/?id=7e9d70736b98950522549e63d5bb7f81ff9eb93b'/>
<id>7e9d70736b98950522549e63d5bb7f81ff9eb93b</id>
<content type='text'>
Continuing the preparation for additional _FloatN / _FloatNx type
support, this patch arranges for &lt;bits/mathcalls.h&gt; and
&lt;bits/mathcalls-helper-functions.h&gt; to be included for each such type
under conditions and with macros defined corresponding to those
already present for _Float128.

Tested for x86_64.

	* math/math.h [__HAVE_DISTINCT_FLOAT16 || (__HAVE_FLOAT16 &amp;&amp; !_LIBC)]:
	Include &lt;bits/mathcalls-helper-functions.h&gt; and &lt;bits/mathcalls.h&gt;
	with appropriate macros defined and undefined.
	[__HAVE_DISTINCT_FLOAT32 || (__HAVE_FLOAT32 &amp;&amp; !_LIBC)]: Likewise.
	[__HAVE_DISTINCT_FLOAT64 || (__HAVE_FLOAT64 &amp;&amp; !_LIBC)]: Likewise.
	[__HAVE_DISTINCT_FLOAT32X || (__HAVE_FLOAT32X &amp;&amp; !_LIBC)]: Likewise.
	[__HAVE_DISTINCT_FLOAT64X || (__HAVE_FLOAT64X &amp;&amp; !_LIBC)]: Likewise.
	[__HAVE_DISTINCT_FLOAT128X || (__HAVE_FLOAT128X &amp;&amp; !_LIBC)]: Likewise.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Continuing the preparation for additional _FloatN / _FloatNx type
support, this patch arranges for &lt;bits/mathcalls.h&gt; and
&lt;bits/mathcalls-helper-functions.h&gt; to be included for each such type
under conditions and with macros defined corresponding to those
already present for _Float128.

Tested for x86_64.

	* math/math.h [__HAVE_DISTINCT_FLOAT16 || (__HAVE_FLOAT16 &amp;&amp; !_LIBC)]:
	Include &lt;bits/mathcalls-helper-functions.h&gt; and &lt;bits/mathcalls.h&gt;
	with appropriate macros defined and undefined.
	[__HAVE_DISTINCT_FLOAT32 || (__HAVE_FLOAT32 &amp;&amp; !_LIBC)]: Likewise.
	[__HAVE_DISTINCT_FLOAT64 || (__HAVE_FLOAT64 &amp;&amp; !_LIBC)]: Likewise.
	[__HAVE_DISTINCT_FLOAT32X || (__HAVE_FLOAT32X &amp;&amp; !_LIBC)]: Likewise.
	[__HAVE_DISTINCT_FLOAT64X || (__HAVE_FLOAT64X &amp;&amp; !_LIBC)]: Likewise.
	[__HAVE_DISTINCT_FLOAT128X || (__HAVE_FLOAT128X &amp;&amp; !_LIBC)]: Likewise.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add SNAN macros for more _FloatN, _FloatNx types.</title>
<updated>2017-10-26T23:34:55+00:00</updated>
<author>
<name>Joseph Myers</name>
<email>joseph@codesourcery.com</email>
</author>
<published>2017-10-26T23:34:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glibc.git/commit/?id=ecc7da5bb897f17ef470fc928ab2b7132e3fa069'/>
<id>ecc7da5bb897f17ef470fc928ab2b7132e3fa069</id>
<content type='text'>
This patch continues the preparation for additional _FloatN / _FloatNx
type support by adding appropriately conditional definitions of SNAN*
macros, corresponding to the SNANF128 definition already present.

Tested for x86_64.

	* math/math.h [__HAVE_FLOAT16 &amp;&amp; __GLIBC_USE
	(IEC_60559_TYPES_EXT)] (SNANF16): New macro.
	[__HAVE_FLOAT32 &amp;&amp; __GLIBC_USE (IEC_60559_TYPES_EXT)] (SNANF32):
	Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __GLIBC_USE (IEC_60559_TYPES_EXT)] (SNANF64):
	Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __GLIBC_USE (IEC_60559_TYPES_EXT)] (SNANF32X):
	Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __GLIBC_USE (IEC_60559_TYPES_EXT)] (SNANF64X):
	Likewise.
	[__HAVE_FLOAT128X &amp;&amp; __GLIBC_USE (IEC_60559_TYPES_EXT)]
	(SNANF128X): Likewise.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch continues the preparation for additional _FloatN / _FloatNx
type support by adding appropriately conditional definitions of SNAN*
macros, corresponding to the SNANF128 definition already present.

Tested for x86_64.

	* math/math.h [__HAVE_FLOAT16 &amp;&amp; __GLIBC_USE
	(IEC_60559_TYPES_EXT)] (SNANF16): New macro.
	[__HAVE_FLOAT32 &amp;&amp; __GLIBC_USE (IEC_60559_TYPES_EXT)] (SNANF32):
	Likewise.
	[__HAVE_FLOAT64 &amp;&amp; __GLIBC_USE (IEC_60559_TYPES_EXT)] (SNANF64):
	Likewise.
	[__HAVE_FLOAT32X &amp;&amp; __GLIBC_USE (IEC_60559_TYPES_EXT)] (SNANF32X):
	Likewise.
	[__HAVE_FLOAT64X &amp;&amp; __GLIBC_USE (IEC_60559_TYPES_EXT)] (SNANF64X):
	Likewise.
	[__HAVE_FLOAT128X &amp;&amp; __GLIBC_USE (IEC_60559_TYPES_EXT)]
	(SNANF128X): Likewise.
</pre>
</div>
</content>
</entry>
</feed>
