This sure brings back memories.
I remember figuring all this out as a self-taught teenager (pre-internet) with some books, a whole lot of time, and only a high-school level understanding of trigonometry. I built different versions - first in Pascal, then C, then Assembly.
Figuring out the algorithm was hard, but one of the optimizations I was most proud of was inventing (or so I thought) lookup tables to get around the slow floating point multiplication of my 16MHz 80286 CPU. I also remember "inventing" (ha!) the old bit shift + add technique.
There was something immensely satisfying about squeezing every last drop of performance out of a machine.
Nothing ever came of it. It was more or less a demo, but man did it make me feel like I accomplished something magical. I'd give anything to have a look at that source code today, but this post is the next best thing. So thanks for sharing. This made my day.
> I remember figuring all this out as a self-taught teenager (pre-internet) with some books, a whole lot of time […] but man did it make me feel like I accomplished something magical.
As a parent with kids in college, high school, and middle school, I lament (worry about?) how many obstacles youth now have reaching this dynamic. That thread of curiosity, discovery, struggle, and sense of accomplishment (or just learnings) is so profoundly formative. I’ve had mixed success creating space for it across my kids, but I sure miss the “pointless” threads I followed b/c of empty time when I was a kid.