A plan for a Scheme program to represent an n-complex, without boundary, embedded in an n+1 dimensional Euclidean space. This complex would bound a multiset of points (winding number wise).

The plan would be to compute volume of intersections of such multisets. This amounts to the integral over the n+1 space of the product of the winding numbers of two multisets. I don’t know yet whether I will set n=2 or not. n=2 is the case of practical interest.

First construct an array of vertices in n+1 dimension Euclidean space. Each list is a n+1 tuple of real numbers. Whether vertex is a list or array of numbers is a postponed design decision.

Second create a list of faces, which are n-simplexes which together bound the multiset. Each face is specified by a list of n+1 indexes into the vertex array. These are oriented and thus invariant under even permutations.

Next verify incidence orientation for entire complex; we demand an oriented boundary for the multiset. (No holes for the volume to leak out.) This can be done by sorting each index list and the putting sorted list into one of two lists depending on sort parity. The two resulting lists of lists will be identical iff the complex is boundaryless. Note we have not used the vertex coordinates yet, only indexes thereof; we have thus processed only the abstract complex so far. This code does this now.

Compute ‘volume’ of multiset.

Compute the winding number product integral for multisets. This code achieves this for n=1 and is now part of several applications.

Except for the last step his is all trivial at least when n=1. For n=2 geometric intuition will serve. For n>2 we may have to learn some math. For verifying orientation and boundarylessness I can’t see that anything is necessary beyond verifying that each face (n-simplex) touches just one other face on each of its n+1 ‘edges’ and accounting for orientation there. This is near where my intuition fails, however. I think this is valid because our complex is composed of simplexes and simplexes are trivially valid complexes.

Here is a collection of more abstract ideas. Here I struggle with terminology I find on the web for similar ideas. I have found no references to winding numbers beyond 2-D. We need the analog of this for n>2.


In an n-space we have a hedron bounded by (n−1)-plexes. A 0-plex (vertex) of one hedron may lie in the other hedron, an n-complex. A 1-plex (segment or edge) may pierce an (n−1)-plex at a point. In general a k-plex of one hedron may (or may not) intersect a (n−k)-plex of the other hedron at a point. I think knowing these points and perhaps their bcc coordinates might be sufficient to compute our answer. These ideas seem to complement the ides here.