Reimplementation time! Today I’ll dig into a dynamic time warping implementation using Zig. Its been a language on my radar for awhile now, initially from its usage by TigerBeetle and more recently Ghostty. The new year is as good a time as any to take something new for a spin. So time to get started.
Estimated Shortest Path with F#
Read Time: 14 minutesCalculating the shortest path between two nodes in large graphs can be a time-consuming process. One approach to solving this is to calculate an estimated path. There are many situations where the exact path isn’t necessary; an estimated path is good enough. This is the case especially if the performance benefits of estimating are high enough. I’ll look at implementing the algorithm from A Sublinear Algorithm for Approximate Shortest Paths in Large Networks in F#. It offers a hefty performance boost at the cost of some preprocessing; well worth the time.
Estimating Distinct Element Counts with F#
Read Time: 10 minutesPerforming estimated counting of distinct elements in large datasets is a common task. While there are straightforward approaches, they can be memory-intensive and slow for massive datasets. Today I’m going to take a look at the F0 Estimator introduced in the paper Distinct Elements in Streams: An Algorithm for the (Text) Book∗. As often, this will be an implementation in F#.