From b462f455cbaa1d716ff6d7b83ae4e1092ba3092a Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Tue, 1 Jan 2008 20:30:26 +0000 Subject: [PATCH] comments etc. fixed up for new topology --- Makefile | 2 +- mgraph.h | 29 ++++++++++++----------------- primer.c | 4 +++- 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index bec227e..c40fb32 100644 --- a/Makefile +++ b/Makefile @@ -25,7 +25,7 @@ initial: generator primer sgtatham/z.typescript ./$^ -o$@ clean: - rm -f *.o $(TARGETS) *.new *.tmp + rm -f *.o $(TARGETS) *.new *.tmp *.rej *.orig rm -f initial rm -f *.d diff --git a/mgraph.h b/mgraph.h index de26852..22f5d92 100644 --- a/mgraph.h +++ b/mgraph.h @@ -33,33 +33,28 @@ * -3 ___ X-2 ___ X-1 ___| 0 ___ 1 ___ 2 ___ 3 ___ 4 ___ * 0 0 0 |Y-1 Y-1 Y-1 Y-1 Y-1 * | + * ^ join, where there is + * a discontinuity in numbering + * * Node x,y for - * 0 <= x < X x = distance along - * 0 <= y < Y y = distance across + * 0 <= x < X = 2^XBITS x = distance along + * 0 <= y < Y = 2^YBITS-1 y = distance across * * Vertices are in reading order from diagram above ie x varies fastest. * - * Y must be even. The actual location opposite (0,0) is (X-(Y-1)/2,0), - * and likewise opposite (0,Y-1) is ((Y-1)/2,0). - * * Note that though presentation above is equilateral triangles, this * is not the case. It's actually a square lattice with half of the * diagonals added. We can't straighten it out because at the join * the diagonals point the other way! * - * We label edges as follows: Or in the square view: - * - * \2 /1 2 1 - * \ / | / - * ___ 0 __ |/ - * 3 1 0 3--*--0 - * / \ /| - * 4/ 5\ / | - * 4 5 + * We label edges as follows: * - * (This makes the numbering - * discontinuity, at the join, - * vertical and thus tractable.) + * \2 /1 + * \ / + * ___ 0 __ + * 3 1 0 + * / \ + * 4/ 5\ */ #ifndef MGRAPH_H diff --git a/primer.c b/primer.c index 3d9244a..f023b10 100644 --- a/primer.c +++ b/primer.c @@ -21,7 +21,9 @@ int main(int argc, const char **argv) { double u= y * 1.0 / (Y-1); /* SGT's u runs 0..1 across the strip */ /* SGT's v runs 0..pi along the strip, where the join is at 0==pi. - * So that corresponds to 0..X (since 0==X in our scheme). */ + * So that corresponds to 0..X (since 0==X in our scheme). + * Vertices with odd y coordinate are halfway to the next x coordinate. + */ double v= (x*2 + (y&1)) * M_PI / (X*2); K printf("print %c%c( %-*.*g, %-*.*g); # %03x %2d %2d\n", -- 2.30.2