Fun math fact: in most cases, cos(x / 2) is not the same as (cos x) / 2
@joshjers.drilian.com
I've been programming for way too long Also sometimes I write or perform music Mostly I talk about random bullshit (he/him) https://drilian.com/ https://cathoderetro.com/ https://procyongame.com/ https://www.youtube.com/@Drilian
Fun math fact: in most cases, cos(x / 2) is not the same as (cos x) / 2
Whoa I don't think it would actually happen
an LLM is a compiler in the same way that a slot machine is an ATM
It was a barren wasteland where you couldn't even ask a computer for an inaccurate summary of something
Also now I'm ableist for *checks notes* hating LLMs
Apparently calling out LLMs as "very bad, actually" is gatekeeping tools for neurodivergent folks now
Sorry you chose bad tools that are a scourge on the planet and society, but go off, I guess
it is always 300% worse than however bad I think it's going to be
For me, it wasn't any one thing in particular. My (Lutheran) church was ... well, not *liberal* probably, but at least chill enough that it didn't touch on any of the politics would have quickly pushed me away.
But as I hit my mid-teens, things about the doctrine stopped making any sense to me.
"our games bite [derogatory]"
yes ... ha ha ha *yes*!
what I'm hearing is "get ready to use IRC again" which, hell yeah
<_<
(it's me, I'm sickos.jpg)
Reiterating here that my comment has nothing to do with whether or not people need or want assistive technologies/treatments/whatever, it has everything to do with what *AI* is
Assistive technologies are great! LLMs are not that!
I love daylight savings *time* but the changeover can suck it
(I'm one of those "my body wants to sleep from 5 to noon so daylight savings time is strictly better for me personally because it means extra daylight" people)
Counterpoint: AI is a fucking sham technology built on plagiarism and awful for the environment and being used to collect data about people, and can fuck off. It's not an assistive tool.
You do better.
Counterpoint: AI is a fucking sham technology built on plagiarism and awful for the environment and being used to collect data about people, and can fuck off. It's not an assistive tool.
You do better.
*simple function could be implemented in 3 lines of standard javascript at most
Modern web dev is like:
Want to do this basic thing? Just use our API and call this one simple function*!
*simple function requires 450 files worth of dependencies.
yep, hence why I don't care about those sizes ๐
Yep, that's about right then. I think it starts to fall out of L1 cache at 128k size, and then once it hits 512 it can't fit nicely in the 8-way L2 either
The good news is that it still scales better than the 3rd party ones I'm testing against, it's just that it's worse - only on arm - at those sizes than my previous implementation
I also don't personally care about sizes that large since this is mostly for realtime audio, so it's just a curiosity ๐
While it can work in contiguous blocks, some passes require 16 of them at once, and I'd be willing to bet on the pi 5 that up around 128-512k that's where suddenly the addresses get to the point where all of them map the the same 4- or 8- associative sets and that's why it falls off
Yeah the nice thing about the self-sorting version (at least, as I've designed it - no idea if this is a standard thing) is that it not only eliminates the initial (or final) bit reverse pass, but it always gets to work in contiguous blocks
I actually think I figured out what's going on...
The thing that makes just recursing into smaller chunks tricky is that I'm doing a self sorting FFT, which changes the memory access patterns in a way that is harder (for me) to reason about - it's more spread out in general
Thanks!
I understand the basics - in my case the perf cliff happens at about a 256k FFT, which probably means my blocking structure finally hits the limits of cache associativity or something, I'm just not exactly sure why
Yeah I needed effectively an array of arrays (sub arrays of varying lengths) which is where it fell apart ๐ซ
I couldn't figure out a great way to do that with any sort of nesting that didn't require writing a ton of boilerplate
If I ever get my hands on c++26 reflection I have some ideas though ๐
In the meantime I'm pretty liberal with "= delete" on copy construct/assign
But for custom math types, SIMD wrappers, etc, it's necessary for code readability to be able to overload even assignment
My main gripe is that C++ makes it too easy to copy most things where a copy is expensive, but there's no world for me in which disallowing a custom assignment is the correct solution.
I'd rather have an explicit "yes I want to do a copy here" operation (like "a = copy(b)" or something)
I hope he's okay that looked dangerous ๐ฌ