  Yao graphs are geometric spanners that connect each point of a given point
set to its nearest neighbor in each of $k$ cones drawn around it. Yao graphs
were introduced to construct minimum spanning trees in $d$ dimensional spaces.
Moreover, they are used for instance in topology control in wireless networks.
An optimal \Onlogn time algorithm to construct Yao graphs for given point set
has been proposed in the literature but -- to the best of our knowledge --
never been implemented. Instead, algorithms with a quadratic complexity are
used in popular packages to construct these graphs. In this paper we present
the first implementation of the optimal Yao graph algorithm. We develop and
tune the data structures required to achieve the O(n log n) bound and detail
algorithmic adaptions necessary to take the original algorithm from theory to
practice. We propose a priority queue data structure that separates static and
dynamic events and might be of independent interest for other sweepline
algorithms. Additionally, we propose a new Yao graph algorithm based on a
uniform grid data structure that performs well for medium-sized inputs. We
evaluate our implementations on a wide variety synthetic and real-world
datasets and show that our implementation outperforms current publicly
available implementations by at least an order of magnitude.
