A forum post from an embedded contractor looking back at a 1993 job: a “real-time GPS-driven moving map display” running on a 25MHz 486-SX with 32MB of RAM, a 1024x768 display, software in ROM, and no math co-processor. This was about five years before anyone had seen a consumer GPS from Garmin or Magellan.
The constraint was the whole design problem:
- The 486-SX shipped without an FPU
- Every GIS library he could find leaned on floating-point trig
- The target was a moving map redrawn every two seconds
The unlock came from a Dr. Dobb’s Journal article about a library called Hipparchus, from a company named Geodesy. It used Voronoi cells and reduced almost all of the computation to 8- and 16-bit integer arithmetic, with one or two single-precision operations left over. According to the author it actually had higher resolution than extended-precision floating point. He prototyped from the article’s code, the client bought a license, and the result reportedly ran about twice as fast as the first consumer units while driving a colour 1024x768 display every two seconds.
None of that is a micro-optimisation. The win came from changing the numeric representation and the coordinate scheme, not from tuning the code he already had — the kind of decision that makes the rest of the work possible rather than shaving a percentage off it.
The second half of the story is about ownership. The client ran into financial trouble and he handed everything over. Someone else came asking for the same work, and he could not take it: as a contractor he did not own the IP. He notes that Phoenix Technologies shipped a clean-room BIOS for PC clone vendors without being sued, and that Apple v. Franklin settled in favour of clean-room reimplementation in 1989 — none of which he knew in 1993. Knowing it, he says, he would simply have started over from the specifications.
Worth reading as an engineering-judgment story rather than a citable result. No code, no benchmarks, one person’s recollection of a project from three decades ago — but the two lessons hold up: pick the representation before you optimise the algorithm, and know who owns the knowledge you produce.