Update to my Index of Coincidence "Modern Computer" testing.
Brute-forced Enigma rotor settings in C, Rust, Swift, and Metal on an M4.
Single-threaded, Rust and Swift both land within 6-9% of C when you disable bounds checking. Leave the safety on, and there's a performance gap. Turns out billions of array lookups add up.
The Metal GPU completed the entire 5.9 million-candidate search in 27 milliseconds. 67x faster than single-threaded C and 2.5 days faster than my beloved Commodore 64.
Made a WordPerfect for DOS Typora theme.
IBM VGA fonts, yummy.
I know, I'm weird.
The only upgrades I did over the original are to add a second line so you can see the Y register, and it can display all 32 bits of binary without scrolling (wider "LCD")
I wrote more than 200 tests, because the last thing a calculator app needs is to get the math wrong.
Submitted it to the app store (free). Now we wait for approval.
Over Christmas, I spent a lot of time with my beloved (and quirky) HP-16C. I decided I wanted to take it everywhere, but doing a phone calculator app seemed daunting. I've been plugging away at it for 3 months now as one of my many side projects.
I'm ready to call it a usable version 1.0. I'm sure there are bugs, but I'll work those out as I use it more.
I let a Commodore 64 run for three and a half days straight. 87 billion instructions, 303 billion clock cycles, 5.9 million candidate settings tested. It cracked an Enigma message in German without knowing a single character of the plaintext.
New post: Breaking Enigma with Index of Coincidence on a Commodore 64
https://imapenguin.com/2026/03/breaking-enigma-with-index-of-coincidence-on-a-commodore-64/