2025-01-21

Generating Voronoi Diagrams using Fortune’s Algorithm

Fortune's Algorithm generates Voronoi diagrams using a sweepline approach and beachline data structure, processing site and circle events to build cell boundaries in O(nlogn) time, though simpler O(n^2) implementations may be more practical for smaller diagrams.

Original archive.is archive.ph web.archive.org

Log in to get one-click access to archived versions of this article.

read comments on news aggregators:

Related articles

Why fastDOOM is fast

A detailed exploration of fastDOOM, a highly optimized version of DOOM achieving up to 48% better performance through 3,042 commits of incremental improvements. Victor Nieto's project demonstrates remarkable optimization across different CPU architectures and video modes, with particular attention to Mode Y versus Mode 13h implementations.

3,200% CPU Utilization

An in-depth analysis of a critical Java performance issue where unprotected concurrent TreeMap modifications led to 3,200% CPU utilization. The investigation revealed how thread interleaving can create infinite loops in red-black trees, with experiments across multiple programming languages demonstrating similar vulnerabilities.

Markov Chains explained visually

Markov chains are mathematical systems that model transitions between different states with associated probabilities, represented through transition matrices or diagrams. The concept finds practical applications in various fields, from weather prediction to Google's PageRank algorithm, with the ability to simulate real-world phenomena by incorporating probabilistic state transitions.

Postgres as a Graph Database: (Ab)using pgRouting

pgRouting, a Postgres extension typically used for geospatial routing, offers versatile graph functionality beyond GIS applications. The extension can handle task scheduling, resource allocation in distributed systems, and power recommendation engines, making it a lightweight alternative to specialized graph databases.

Why We Designed TigerBeetle's Docs from Scratch | TigerBeetle Blog

TigerBeetle rebuilt their documentation site from scratch, moving away from Docusaurus to achieve better performance, simplicity, and integration with their zero-dependency philosophy. The new implementation uses Zig and Pandoc, resulting in a 10x reduction in footprint while maintaining functionality and adding features like integrated search and offline capabilities.

Sublinear Time Algorithms

Sublinear time algorithms represent a paradigm shift in computational efficiency, allowing processing of extremely large datasets by reading only a fraction of the input. While exact deterministic sublinear algorithms exist for some problems, most solutions require randomization and approximation techniques, with applications spanning optimization, property testing, and distribution analysis.

Relaxed Radix Balanced Trees | Peter Horne-Khan

An in-depth exploration of Relaxed Radix Balanced (RRB) Trees explains their implementation for immutable vectors, focusing on efficient merging operations. The data structure combines radix search with size tables to maintain balanced trees while allowing flexible node sizes, offering improved performance over traditional Persistent Vectors.

0+0 > 0: C++ thread-local storage performance

An in-depth analysis of thread-local storage (TLS) performance in C++, examining how different implementations and contexts affect access speed. Core findings show that TLS access is fastest in executables without constructors, while shared libraries and constructors significantly degrade performance due to complex initialization and addressing mechanisms.