Paper shelf
Papers
A small reference shelf of texts that come up repeatedly in conversations about Ubigraph-era tooling, generic programming in C++, and the patterns that shaped scientific computing libraries of that period.
Why these papers sit on the same shelf
The papers on this shelf are not about graph visualisation directly. They are about the toolchain that surrounded Ubigraph-era work. Scientific computing in C++ was going through a period where template metaprogramming, expression templates, and active libraries were being seriously developed, and the papers here are touchstones for that period.
If you came in expecting a graph theory reading list, the right place to start is the Ubigraph pillar, which covers the topic itself. This shelf is about the engineering vocabulary the toolchain inherited.
There are three companion pages, each with a link to the exact historical PDF route on this site. The PDFs are kept at their original paths on purpose, so old links continue to resolve.
The shelf
- Blitz arrays - companion note for /ubigraph/content/Papers/pdf/BlitzArrays.pdf
- C++ templates as a Turing-complete language - companion note for /ubigraph/content/Papers/pdf/CppTuring.pdf
- Veldhuizen thesis - companion note for /ubigraph/content/Papers/pdf/VeldhuizenThesis.pdf
What the shelf is, and what it is not
This is not a critical reading guide. Each companion page summarises what the paper is about, why it tends to be cited in the kind of work that produced tools like Ubigraph, and what to keep in mind when you read it now.
Where the original PDF has been verified, the paper is served at its historical path. Where the original PDF is not available in verified form, the path is occupied by a careful wrapper PDF that explains what is on the page and points you back to the companion HTML note. The wrapper is not the paper. It is a placeholder so that a familiar URL still resolves, and it stays in place until a verified replacement can be put down at the same path.
Why these particular papers
A reasonable question. The Ubigraph-era ecosystem leaned heavily on C++ generic programming. Several patterns made the kind of high-performance, configurable libraries common in scientific work possible, and the papers here introduced or formalised those patterns.
The short version:
- Expression templates made it possible to write numerical code that looks like vector and array math and compiles to tight loops.
- The Turing-completeness result for C++ templates gave practitioners formal cover to lean on the type system as a small programming language.
- Active libraries, in the Veldhuizen sense, were a serious proposal for letting libraries participate in compilation in ways that helped both performance and ergonomics.
Together they explain how a body of C++ code from that era can look hard to read at first and be quite carefully engineered underneath.
A note on web rendering of mathematical material
If you follow the companion notes and then look at any modern rendering of similar material, you will run into another shift. The web today renders vector mathematics and diagrams with a different set of tools than the era these papers come from. The current reference for how that works in the browser is the MDN entry on Scalable Vector Graphics, and it is worth a glance if you want to see how diagrams in current technical documentation are built up.
That is a small bridge between the engineering vocabulary on this shelf and the way graph drawing reaches a current reader. The papers here belong to a print-and-PDF tradition. The demos on this site belong, increasingly, to a web tradition.
How to use the shelf
The companion notes are short and try to do four things:
- Say what the paper is, in plain terms.
- Say what it is best known for.
- Say where it sits in the Ubigraph-era toolchain.
- Point at the exact historical PDF route.
The notes do not summarise the proofs or reconstruct the arguments. They are written to help you decide whether a particular paper is worth your time and to give you the right vocabulary to read it.
What we will not do here
- We will not present a wrapper PDF as the original paper.
- We will not attribute claims to authors beyond what is visibly supported.
- We will not invent dates, citation counts, or follow-up history.
- We will not add bibliographic detail we cannot verify.
That is a small set of constraints, but it is important. The companion notes are useful precisely because they are honest about what they know.
Next steps
- Open the Blitz arrays companion note for expression templates in numerical C++.
- Open the C++ templates as a Turing-complete language companion note for the formal result.
- Open the Veldhuizen thesis companion note for active libraries and generic programming.
- Return to the Ubigraph pillar if you need the wider context.
If you want a less formal route into the same material, the C++ template papers and graph tools lab note discusses how these references intersect with graph visualisation work in practice.
Research feed
Updates when new references, demo notes, or graph visualisation findings are added to the lab.