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.1.4