🔴 👁 - The MAGA-Cult explained:
👨👦👩👧👧, C++ committee numerics chair, SIMD specialist, CS PhD, Dipl.-Phys, high energy physics, former KDE core developer, FLOSS user & supporter,🏃♂️🚴♂️🏋️♂️
I probably am not the only one that certainly will never travel to the US again as long as the @GOP is in power there.
The speed at which they destroy the foundations of US strength is mindboggling.
@DanielaKEngert not recoveryroad cycling but recovery roadcycling 😄
My bike must have missed me. It drove really fast through the 26–54 km/h wind. 😅
@mbr @somebody I believe that writing sqrt(a²-b²) is a bug unless there is a precondition that a and b are far enough apart or at the very least a guard against value-changing optimizations (such as FMA contraction or excess precision). So my mental model prefers a NaN, which may be easier to track down, over a -0 that hides the "bug".
But thank you. That was helpful to understand how this was motivated, even if I disagree with it.
And we just renamed it again. Who would have thought that we can name something 'vec' when we already have 'vector' 😅.
It'll be std::simd::vec<T, N> and std::simd::mask<T, N> in C++26.
Also vec and mask are (read-only) ranges now (range-based for works) and we got permutations, gather & scatter, compress & expand as well as mask conversions to and from bitset and unsigned. 🥳
Lot's of implementation and optimization work ahead for me now.
@somebody @mbr My mental model for -0 is a value in the range (-denorm_min, 0) and +0 in [0, denorm_min). Because -0 can only be the result of underflow. Exact zero results are always +0.
I still don't understand why you want very small negative numbers to be preserved under sqrt when all other negative numbers are not.
And of course the inconsistency still doesn't make any sense.
Why did IEEE specify sqrt(-0) to be -0?! That's … surprising when applied to the interpretation of -0 in the context of complex numbers:
sqrt(complex{-0,+0}) is complex{+0,+0}.
And also pow(-0, 0.5) is +0.
If anything sqrt(-0) should be NaN, but why -0?
@Methylzero @diehlpk @hpcnotes I've been asking that question since 2009, when I started doing #SIMD. It's not just GPUs where this makes a difference. FP32 is significantly more efficient on CPUs since a long time.
@Methylzero @diehlpk @hpcnotes IMHO it is not great engineering to say FP32 doesn't work but FP64 does, and since it's available that's the solution. Whenever I read code that uses FP64 there is no mention as to why something else isn't sufficient. Is it because of range, precision, or just because "I was told to default to FP64"? That's impossible to see from your typical C++ code. Would fixed-point have been a solution? Or FP32 after renormalization? Or https://en.wikipedia.org/wiki/Quadruple-precision_floating-point_format#Double-double_arithmetic using FP32?
Bitte die Aufmerksamkeit auf die wirklich relevanten Dinge lenken, und sich nicht von Pseudo-Wichtigem ablenken lassen.
Prof. Maja Göpel auf der Re:Publica 2025.
@remi `pipx install cppman && cppman -c`
This is especially useful on a Laptop when travelling. I use my own vim-cppman plugin for access to documentation while coding.
@dermojo Yes, but what if the namespace groups all functions, traits, concepts, and related types centered around one "name-giving" type. E.g. boost::histogram::histogram<...>, or my (obvious) candidate std::simd::simd<T> ? Would a good design invent a new name for the namespace? Or is that more noise than help?
Excellent, excellent post: we must run governments--from local to federal--like households where everyone cares about everyone else (even when we don't fucking like them that much--we don't have to love or even like everyone we live in community with)
"Jonathan talks to us about libstdc++ (GCC's standard library implementation), of which he is the lead maintainer, and tackles some tough questions like ABI compatibility - and how GCC and libstdc++ approach it." https://cppcast.com/libstdcpp/ @gnutools
@akademy @akademy@lemmy.kde.social It's been a while. "the place". Akademy was the meeting after Kastle? Ludwigsburg, right?
There's resistance against using the same name in a namespace and a type inside that namespace. Why? What is the actual problem with this code? Is the 'foo::foo' looking too much like a constructor definition (in that context)? Isn't it great how the call to 'bar' has a clear relation to 'foo'?
Why is it considered bad practice that shouldn't pass code review?
If you aren’t using AI, you run a very real risk of falling behind in the race to produce voluminous mediocrity while slowly forgetting how to do your own job.
The YouTuber duo from #PeriodicVideos visited our target lab and had Bettina Lommel @zurkine show them the targets we shoot at with the particle accelerators. Find out which target is the most valuable 👉
https://www.youtube.com/watch?v=l85eip4zeew