To embed a brane in the linking space we first embed it in a home vector space with just enough dimensions. We take the icosohedron to represent S2 and endow its vertices with coordinates in R3. Routine g3 in g3.c does this. One extra dimension suffices for each of our cases. A Klein bottle would require 2 extra dimensions but we stick to oriented branes.
Suppose we place an image of Sm centered at the origin and an image of Sn at (1, 0, 0, ...) in Rk space. Recall that k=m+n+1. The m+1 coordinates of points on Sm become the first m+1 components of the points in the image and the rest of those k coordinates are 0. Of the n+1 coordinates of Sn, the first is incremented by 1 and becomes the first coordinate in Rk. The other n coordinates become the last n coordinates of the image of Sn in Rk and the other coordinates of points in the image of Sn are 0. This is the simplest linking of Sm and Sn. We shall need to test less simple mutual orientations of the branes.
This formulation fails to capture the orientation and boundaryness for 0-branes. I could decree alternating orientations for the array c but that would add otherwise unneeded hair to the code.
Routine ob takes a d-by-k matrix and post multiplies it by the vc-by-d array of vertex coordinates to embed the brane in the k space. Argument vo is a vector offset to the embedding. Then the k dimensional coordinates of the centroids of the simplexes are computed and placed in an array of centroids, access to which is passed to ob as parameter cen.
Routine di performs the integral numerically. Its argument, dc, is the amount that the 2nd brane is offset in the host space. For currently defined branes an offset of 1 causes simple linking and 3 leaves branes unlinked.
D is the determinant of the theory. It is filled in by rows from each brane.
vog generates such a vector offset.
0-brane and 1-brane dc= 1.0 calc = 6.283334891, theory = 6.283185307 0-brane and 1-brane dc= 3.0 calc = -0.000542771, theory = 0.000000000 1-brane and 1-brane dc= 1.0 calc = -12.566503628, theory = 12.566370614 1-brane and 1-brane dc= 3.0 calc = 0.000156182, theory = 0.000000000 1-brane and 2-brane dc= 1.0 calc = -19.731063564, theory = 19.739208802 1-brane and 2-brane dc= 3.0 calc = -0.003278915, theory = 0.000000000 2-brane and 2-brane dc= 1.0 calc = -26.845032778, theory = 26.318945070 2-brane and 2-brane dc= 3.0 calc = -0.005318088, theory = 0.000000000 1-brane and 2-brane dc= 1.0 calc = -19.754757507, theory = 19.739208802 1-brane and 2-brane dc= 3.0 calc = -0.000109265, theory = 0.000000000 2-brane and 2-brane dc= 1.0 calc = -26.113799444, theory = 26.318945070 2-brane and 2-brane dc= 3.0 calc = 0.000423140, theory = 0.000000000 3-brane and 1-brane dc= 1.0 calc = 26.338628710, theory = 26.318945070 3-brane and 1-brane dc= 3.0 calc = 0.000034420, theory = 0.000000000 2-brane and 3-brane dc= 1.0 calc = 31.149650639, theory = 31.006276680 2-brane and 3-brane dc= 3.0 calc = 0.000133819, theory = 0.000000000