<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/source/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in cmath</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>b9a2658a3e8bd13b0f9e7a8a440832a95b377216 - [libc++][C++03] Use `__cxx03/` headers in C++03 mode (#109002)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/cmath#b9a2658a3e8bd13b0f9e7a8a440832a95b377216</link>
        <description>[libc++][C++03] Use `__cxx03/` headers in C++03 mode (#109002)This patch implements the forwarding to frozen C++03 headers asdiscussed inhttps://discourse.llvm.org/t/rfc-freezing-c-03-headers-in-libc. In theRFC, we initially proposed selecting the right headers from the Clangdriver, however consensus seemed to steer towards handling this in thelibrary itself. This patch implements that direction.At a high level, the changes basically amount to making each publicheader look like this:```// inside &lt;vector&gt;#ifdef _LIBCPP_CXX03_LANG#  include &lt;__cxx03/vector&gt;#else  // normal &lt;vector&gt; content#endif```In most cases, public headers are simple umbrella headers so there isn&apos;tmuch code in the #else branch. In other cases, the #else branch containsthe actual implementation of the header.

            List of files:
            /llvm-project/libcxx/include/cmath</description>
        <pubDate>Sat, 21 Dec 2024 12:01:48 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>c166a9c713ec86b86f1f178a5133bc128fd0a610 - [libc++] Add #if 0 block to all the top-level headers (#119234)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/cmath#c166a9c713ec86b86f1f178a5133bc128fd0a610</link>
        <description>[libc++] Add #if 0 block to all the top-level headers (#119234)Including The frozen C++03 headers results in a lot of formattingchanges in the main headers, so this splits these changes into aseparate commit instead.This is part ofhttps://discourse.llvm.org/t/rfc-freezing-c-03-headers-in-libc.

            List of files:
            /llvm-project/libcxx/include/cmath</description>
        <pubDate>Tue, 10 Dec 2024 15:02:12 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>a705e8cb5b071b3bf6d1d55629f18f6b7b9699ac - [libc++][NFC] Remove __constexpr_is{nan,finite} (#106205)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/cmath#a705e8cb5b071b3bf6d1d55629f18f6b7b9699ac</link>
        <description>[libc++][NFC] Remove __constexpr_is{nan,finite} (#106205)They&apos;re never used in `constexpr` functions, so we can simply use`std::isnan` and `std::isfinite` instead.

            List of files:
            /llvm-project/libcxx/include/cmath</description>
        <pubDate>Thu, 29 Aug 2024 15:05:56 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>72825fde03aab3ce9eba2635b872144d1fb6b6b2 - [libc++][math] Fix undue overflowing of `std::hypot(x,y,z)` (#100820)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/cmath#72825fde03aab3ce9eba2635b872144d1fb6b6b2</link>
        <description>[libc++][math] Fix undue overflowing of `std::hypot(x,y,z)` (#100820)This is in relation to mr #93350. It was merged to main, but revertedbecause of failing sanitizer builds on PowerPC.The fix includes replacing the hard-coded threshold constants (e.g.`__overflow_threshold`) for different floating-point sizes by a generalcomputation using `std::ldexp`. Thus, it should now work for all architectures.This has the drawback of not being `constexpr` anymore as `std::ldexp`is not implemented as `constexpr` (even though the standard mandates itfor C++23).Closes #92782

            List of files:
            /llvm-project/libcxx/include/cmath</description>
        <pubDate>Mon, 05 Aug 2024 20:08:47 +0000</pubDate>
        <dc:creator>PaulXiCao &lt;paulxicao7@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>1031335f2ee1879737576fde3a3425ce0046e773 - Revert &quot;[libc++][math] Fix undue overflowing of `std::hypot(x,y,z)` (#93350)&quot;</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/cmath#1031335f2ee1879737576fde3a3425ce0046e773</link>
        <description>Revert &quot;[libc++][math] Fix undue overflowing of `std::hypot(x,y,z)` (#93350)&quot;This reverts commit 9628777479a970db5d0c2d0b456dac6633864760.More details in https://github.com/llvm/llvm-project/pull/93350, butthis broke the PowerPC sanitizer bots.

            List of files:
            /llvm-project/libcxx/include/cmath</description>
        <pubDate>Wed, 24 Jul 2024 10:58:24 +0000</pubDate>
        <dc:creator>Mitch Phillips &lt;mitchp@google.com&gt;</dc:creator>
    </item>
<item>
        <title>9628777479a970db5d0c2d0b456dac6633864760 - [libc++][math] Fix undue overflowing of `std::hypot(x,y,z)` (#93350)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/cmath#9628777479a970db5d0c2d0b456dac6633864760</link>
        <description>[libc++][math] Fix undue overflowing of `std::hypot(x,y,z)` (#93350)The 3-dimentionsional `std::hypot(x,y,z)` was sub-optimally implemented.This lead to possible over-/underflows in (intermediate) results whichcan be circumvented by this proposed change.The idea is to to scale the arguments (see linked issue for fulldiscussion).Tests have been added for problematic over- and underflows.Closes #92782

            List of files:
            /llvm-project/libcxx/include/cmath</description>
        <pubDate>Tue, 23 Jul 2024 15:11:44 +0000</pubDate>
        <dc:creator>PaulXiCao &lt;paulxicao7@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>af0d731b12983a649e07f25037ee0e16a68ca470 - [libc++][math] Mathematical Special Functions: Hermite Polynomial (#89982)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/cmath#af0d731b12983a649e07f25037ee0e16a68ca470</link>
        <description>[libc++][math] Mathematical Special Functions: Hermite Polynomial (#89982)Implementing the Hermite polynomials which are part of C++17&apos;smathematical special functions. The goal is to get early feedback whichwill make implementing the other functions easier. Integration offunctions in chunks (e.g. `std::hermite` at first, then `std::laguerre`,etc.) might make sense as well (also see note on boost.math below).I started out from this abandoned merge request:https://reviews.llvm.org/D58876 .The C++23 standard defines them in-terms of `/* floating-point type */`arguments. I have not looked into that.Note, there is still an ongoing discussion on discourse whetherimporting boost.math is an option.

            List of files:
            /llvm-project/libcxx/include/cmath</description>
        <pubDate>Sat, 20 Jul 2024 15:50:05 +0000</pubDate>
        <dc:creator>PaulXiCao &lt;paul.luckner@rwth-aachen.de&gt;</dc:creator>
    </item>
<item>
        <title>5aacf93a8968b1ae83382ed0ce6de8279b0cd753 - [libc++] Use _Complex for multiplication and division of complex floating point types (#83575)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/cmath#5aacf93a8968b1ae83382ed0ce6de8279b0cd753</link>
        <description>[libc++] Use _Complex for multiplication and division of complex floating point types (#83575)This significantly simplifies the implementation and improves thecodegen. The only downside is that the accuracy can be marginally worse,but that is up to the compiler to decide with this change, which meansit can be controlled by compiler flags.Differential Revision: https://reviews.llvm.org/D155312

            List of files:
            /llvm-project/libcxx/include/cmath</description>
        <pubDate>Fri, 05 Jul 2024 09:25:59 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>e2c2ffbe7a1b5d9e32a2ce64279475b50c4cba5b - [libc++][NFC] Run clang-format on libcxx/include again (#95874)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/cmath#e2c2ffbe7a1b5d9e32a2ce64279475b50c4cba5b</link>
        <description>[libc++][NFC] Run clang-format on libcxx/include again (#95874)As time went by, a few files have become mis-formatted w.r.t.clang-format. This was made worse by the fact that formatting was notbeing enforced in extensionless headers. This commit simply brings allof libcxx/include in-line with clang-format again.We might have to do this from time to time as we update our clang-formatversion, but frankly this is really low effort now that we&apos;ve formattedeverything once.

            List of files:
            /llvm-project/libcxx/include/cmath</description>
        <pubDate>Tue, 18 Jun 2024 13:13:45 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>6b4b29f85900995b2a3b817548be4a534d46763b - [libc++][NFC] Remove unnecessary parens in static_asserts (#95605)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/cmath#6b4b29f85900995b2a3b817548be4a534d46763b</link>
        <description>[libc++][NFC] Remove unnecessary parens in static_asserts (#95605)These were required a long time ago due to `static_assert` not actuallybeing available in C++03. Now `static_assert` is simply mapped to`_Static_assert` in C++03, making the additional parens unnecessary.

            List of files:
            /llvm-project/libcxx/include/cmath</description>
        <pubDate>Tue, 18 Jun 2024 08:45:30 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>37dca605c9bd41732da010ee97ed15ad9585a37d - [libc++] Clean up includes of &lt;__assert&gt; (#80091)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/cmath#37dca605c9bd41732da010ee97ed15ad9585a37d</link>
        <description>[libc++] Clean up includes of &lt;__assert&gt; (#80091)Originally, we used __libcpp_verbose_abort to handle assertion failures.That function was declared from all public headers. Since we don&apos;t usethat mechanism anymore, we don&apos;t need to declare __libcpp_verbose_abortfrom all public headers, and we can clean up a lot of unnecessaryincludes.This patch also moves the definition of the various assertion categoriesto the &lt;__assert&gt; header, since we now rely on regular IWYU for theseassertion macros.rdar://105510916

            List of files:
            /llvm-project/libcxx/include/cmath</description>
        <pubDate>Thu, 29 Feb 2024 15:12:22 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>9783f28cbb155e4a8d49c12e1c60ce14dcfaf0c7 - [libc++] Format the code base (#74334)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/cmath#9783f28cbb155e4a8d49c12e1c60ce14dcfaf0c7</link>
        <description>[libc++] Format the code base (#74334)This patch runs clang-format on all of libcxx/include and libcxx/src, inaccordance with the RFC discussed at [1]. Follow-up patches will formatthe benchmarks, the test suite and remaining parts of the code. I&apos;msplitting this one into its own patch so the diff is a bit easier toreview.This patch was generated with:   find libcxx/include libcxx/src -type f \      | grep -v &apos;module.modulemap.in&apos; \      | grep -v &apos;CMakeLists.txt&apos; \      | grep -v &apos;README.txt&apos; \      | grep -v &apos;libcxx.imp&apos; \      | grep -v &apos;__config_site.in&apos; \      | xargs clang-format -iA Git merge driver is available in libcxx/utils/clang-format-merge-driver.shto help resolve merge and rebase issues across these formatting changes.[1]: https://discourse.llvm.org/t/rfc-clang-formatting-all-of-libc-once-and-for-all

            List of files:
            /llvm-project/libcxx/include/cmath</description>
        <pubDate>Mon, 18 Dec 2023 19:01:33 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>b81c69415e47bcf59801cb751eed08a6d1cb23f1 - [libc++][NFC] Add a few explicit &apos;inline&apos; keywords, mostly in &lt;chrono&gt; (#75234)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/cmath#b81c69415e47bcf59801cb751eed08a6d1cb23f1</link>
        <description>[libc++][NFC] Add a few explicit &apos;inline&apos; keywords, mostly in &lt;chrono&gt; (#75234)Even though constexpr implicitly makes functions inline, we try not torely on this implicit effect in the code base. We are mostly consistentabout using `inline` on non-template free-functions to make it clearthat we don&apos;t have an ODR violation.This patch simply fixes a few places where we didn&apos;t explicitly useinline on non-template free functions, presumably because they wereconstexpr.Fixes #75227

            List of files:
            /llvm-project/libcxx/include/cmath</description>
        <pubDate>Wed, 13 Dec 2023 15:17:27 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>4c198542226223f6a5c5511a1f89b37d15ee10b9 - [libc++] Rename _LIBCPP_INLINE_VISIBILITY to _LIBCPP_HIDE_FROM_ABI (#74095)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/cmath#4c198542226223f6a5c5511a1f89b37d15ee10b9</link>
        <description>[libc++] Rename _LIBCPP_INLINE_VISIBILITY to _LIBCPP_HIDE_FROM_ABI (#74095)In preparation for running clang-format on the whole code base, we arealso removing mentions of the legacy _LIBCPP_INLINE_VISIBILITY macro infavor of the newer _LIBCPP_HIDE_FROM_ABI.We&apos;re still leaving the definition of _LIBCPP_INLINE_VISIBILITY to avoidcreating needless breakage in case some older patches are checked-inwith mentions of the old macro. After we branch for LLVM 18, we can doanother pass to clean up remaining uses of the macro that might havegotten introduced by mistake (if any) and remove the macro itself at thesame time. This is just a minor convenience to smooth out the transitionas much as possible.Seehttps://discourse.llvm.org/t/rfc-clang-formatting-all-of-libc-once-and-for-allfor the clang-format proposal.

            List of files:
            /llvm-project/libcxx/include/cmath</description>
        <pubDate>Mon, 04 Dec 2023 15:25:14 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>9f3e3efd98a29eb8df9e3ad43a573c9141d1ace2 - [libc++][NFC] Refactor __enable_if return types to defaulted template parameters</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/cmath#9f3e3efd98a29eb8df9e3ad43a573c9141d1ace2</link>
        <description>[libc++][NFC] Refactor __enable_if return types to defaulted template parametersThis brings most of the enable_ifs in libc++ to the same style. It also has the nice side-effect of reducing the size of names of these symbols, since the depedent return type is shorter.Reviewed By: #libc, ldionneSpies: ldionne, libcxx-commitsDifferential Revision: https://reviews.llvm.org/D157787

            List of files:
            /llvm-project/libcxx/include/cmath</description>
        <pubDate>Sat, 02 Sep 2023 00:52:02 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>475bd19ee8e42e68635b9770d5725461b7300914 - [libc++][NFC] Refactor return type enable_ifs to defaulted template arguments</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/cmath#475bd19ee8e42e68635b9770d5725461b7300914</link>
        <description>[libc++][NFC] Refactor return type enable_ifs to defaulted template argumentsThis brings most of the enable_ifs in libc++ to the same style. It also has the nice side-effect of reducing the size of names of these symbols, since the depedent return type is shorter.Reviewed By: #libc, ldionneSpies: ldionne, libcxx-commitsDifferential Revision: https://reviews.llvm.org/D157736

            List of files:
            /llvm-project/libcxx/include/cmath</description>
        <pubDate>Tue, 15 Aug 2023 19:19:05 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>6553608acac4e54bdbeae2eeacc5ba6bcefec05b - [libc++] Granulaize math.h and move the functions to std::__math</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/cmath#6553608acac4e54bdbeae2eeacc5ba6bcefec05b</link>
        <description>[libc++] Granulaize math.h and move the functions to std::__mathReviewed By: #libc, MordanteSpies: Mordante, arichardson, libcxx-commitsDifferential Revision: https://reviews.llvm.org/D155258

            List of files:
            /llvm-project/libcxx/include/cmath</description>
        <pubDate>Tue, 01 Aug 2023 00:19:05 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>4f15267d3dd797a15901fe9352f0d5fa121b9095 - [libc++][NFC] Replace _LIBCPP_STD_VER &gt; x with _LIBCPP_STD_VER &gt;= x</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/cmath#4f15267d3dd797a15901fe9352f0d5fa121b9095</link>
        <description>[libc++][NFC] Replace _LIBCPP_STD_VER &gt; x with _LIBCPP_STD_VER &gt;= xThis change is almost fully mechanical. The only interesting change is in `generate_feature_test_macro_components.py` to generate `_LIBCPP_STD_VER &gt;=` instead. To avoid churn in the git-blame this commit should be added to the `.git-blame-ignore-revs` once committed.Reviewed By: ldionne, var-const, #libcSpies: jloser, libcxx-commits, arichardson, arphaman, wenleiDifferential Revision: https://reviews.llvm.org/D143962

            List of files:
            /llvm-project/libcxx/include/cmath</description>
        <pubDate>Mon, 13 Feb 2023 23:56:09 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>bab1a14cccd4a7d7f04b28ab8e545fcdf408a18e - [libc++] Add missing include promote.h in &lt;cmath&gt;</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/cmath#bab1a14cccd4a7d7f04b28ab8e545fcdf408a18e</link>
        <description>[libc++] Add missing include promote.h in &lt;cmath&gt;As a fly-by, also remove a superfluous &lt;cstddef&gt; include in promote.h.Differential Revision: https://reviews.llvm.org/D142657

            List of files:
            /llvm-project/libcxx/include/cmath</description>
        <pubDate>Thu, 26 Jan 2023 19:46:53 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>5d9ef6ec3f13e9ca865b25c3e068f2846ff71fa1 - [libc++][NFC] Fix endif comments in cmath</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/cmath#5d9ef6ec3f13e9ca865b25c3e068f2846ff71fa1</link>
        <description>[libc++][NFC] Fix endif comments in cmath

            List of files:
            /llvm-project/libcxx/include/cmath</description>
        <pubDate>Thu, 12 Jan 2023 01:47:41 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
</channel>
</rss>
