They appear quite naturally in the fermion-qubit mappings we looked at and I worked the data structure out at the time and only then found out about Fenwick’s work.
So I guess I also agree with the title :)
They appear quite naturally in the fermion-qubit mappings we looked at and I worked the data structure out at the time and only then found out about Fenwick’s work.
So I guess I also agree with the title :)
That said, as far as I remember, I did not know about Ryabko. So while it might have been a misatribution, it's far from a clear one.
Did he publish it btw.? If so, do you have a reference?
Or, in english, if you have a bunch of graph nodes and edges, and lay them out in straight lines horizontally and vertically in some fashion, with lines between them representing the edges, fenwick trees tell you how many of the lines that you draw run into each other [2].
This is normally an expensive thing to compute (the alternative is to use a standard line intersection calculation for every edge or something like this). However, it turns out fenwick trees directly encode and give you the answer.
So this is what ELK and Dagre and friends use to compute the number of edges that cross between layers as they do layout.
[1] see "Simple and Efficient Bilayer Cross Counting"
[2] In general, the graph is more visually pleasing to most people if you minimize the number of lines that cross. So most layout algorithms spend time rearranging the nodes to minimize edge crossings. It's NP-hard to make it optimal, so heuristics are used.