chiark
/
gitweb
/
~ian
/
moebius2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
exploit symmetry
[moebius2.git]
/
mgraph.h
diff --git
a/mgraph.h
b/mgraph.h
index e3079787033836ff8845816f94c5825a9a51afb5..8636b91bff06efdcbdfcf275123874f514eb9402 100644
(file)
--- a/
mgraph.h
+++ b/
mgraph.h
@@
-4,34
+4,38
@@
/*
* Vertices in strip are numbered as follows:
*
/*
* Vertices in strip are numbered as follows:
*
- * |
+ * :axis of symmetry
+ * | :
+ * | :
* ___ X-2 ___ X-1 ___| 0 ___ 1 ___ 2 ___ 3 ___ 4 __
* ___ X-2 ___ X-1 ___| 0 ___ 1 ___ 2 ___ 3 ___ 4 __
- * Y-1 Y-1 |0
0 0 0 0
- * / \ / \ /
\ / \ / \ / \ /
\
- * / \ / \ /|
\ / \ / \ / \ / \
+ * Y-1 Y-1 |0
:
0 0 0 0
+ * / \ / \ /
:\ / \ / \ / \ / !!
\
+ * / \ / \ /|
:
\ / \ / \ / \ / \
* X-3 ___ X-2 ___ X-1|___ 0 ___ 1 ___ 2 ___ 3 ___ 4
* X-3 ___ X-2 ___ X-1|___ 0 ___ 1 ___ 2 ___ 3 ___ 4
- * Y-2 Y-2 Y-2|
1 1 1 1 1
- * \ / \ / \|
/ \ / \ / \ / \ /
- * \ / \ / \
/ \ / \ / \ / \ /
+ * Y-2 Y-2 Y-2|
:
1 1 1 1 1
+ * \ / \ / \|
:
/ \ / \ / \ / \ /
+ * \ / \ / \
:
/ \ / \ / \ / \ /
* ___ X-2 ___ X-1 ___| 0 ___ 1 ___ 2 ___ 3 __ 4 ___
* ___ X-2 ___ X-1 ___| 0 ___ 1 ___ 2 ___ 3 __ 4 ___
- * Y-3 Y-3 |2
2 2 2 2
- * / \ / \ /
\ / \ / \ / \ / \
- * / \ / \ /|
\ / \ / \ / \ / \
+ * Y-3 Y-3 |2
:
2 2 2 2
+ * / \ / \ /
:
\ / \ / \ / \ / \
+ * / \ / \ /|
:
\ / \ / \ / \ / \
* X-3 ___ X-2 ___ X-1|___ 0 ___ 1 ___ 2 ___ 3 ___ 4
* X-3 ___ X-2 ___ X-1|___ 0 ___ 1 ___ 2 ___ 3 ___ 4
- * Y-4 Y-4 Y-4|
3 3 3 3 3
- * |
- * . . . . .|
. . . . . . . . . .
- * |
+ * Y-4 Y-4 Y-4|
:
3 3 3 3 3
+ * |
:
+ * . . . . .|
:
. . . . . . . . . .
+ * |
:
* ___ X-2 ___ X-1 ___| 0 ___ 1 ___ 2 ___ 3 ___ 4 ___
* 2 2 |Y-3 Y-3 Y-3 Y-3 Y-3
* ___ X-2 ___ X-1 ___| 0 ___ 1 ___ 2 ___ 3 ___ 4 ___
* 2 2 |Y-3 Y-3 Y-3 Y-3 Y-3
- * / \ / \ /
\ / \ / \ / \ / \
- * / \ / \ /|
\ / \ / \ / \ / \
+ * / \ / \ /
:
\ / \ / \ / \ / \
+ * / \ / \ /|
:
\ / \ / \ / \ / \
* __ X-2 ___ X-1|___ 0 ___ 1 ___ 2 ___ 3 ___ 3 ___ 4
* __ X-2 ___ X-1|___ 0 ___ 1 ___ 2 ___ 3 ___ 3 ___ 4
- * 1 1 |
Y-2 Y-2 Y-2 Y-2 Y-2 Y-2
- * / \ / \ / \|
/ \ / \ / \ / \ /
- * / \ / \ / \
/ \ / \ / \ / \ /
+ * 1 1 |
:
Y-2 Y-2 Y-2 Y-2 Y-2 Y-2
+ * / \ / \ / \|
:
/ \ / \ / \ / \ /
+ * / \ / \ / \
:
/ \ / \ / \ / \ /
* -3 ___ X-2 ___ X-1 ___| 0 ___ 1 ___ 2 ___ 3 ___ 4 ___
* 0 0 0 |Y-1 Y-1 Y-1 Y-1 Y-1
* -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
* |
* ^ join, where there is
* a discontinuity in numbering
@@
-55,6
+59,9
@@
* 3 1 0
* / \
* 4/ 5\
* 3 1 0
* / \
* 4/ 5\
+ *
+ * vertex number: 0000 | y | x
+ * YBITS XBITS
*/
#ifndef MGRAPH_H
*/
#ifndef MGRAPH_H
@@
-62,23
+69,17
@@
#include "common.h"
#include "common.h"
-#define XBITS
6 /*3*/
+#define XBITS
4
#define X (1<<XBITS)
#define YBITS 4
#define Y ((1<<YBITS) - 1)
#define X (1<<XBITS)
#define YBITS 4
#define Y ((1<<YBITS) - 1)
-/* vertex number: 0000 | y | x
- * YBITS XBITS
- */
-
#define N (X*Y)
#define XMASK (X-1)
#define YSHIFT XBITS
#define Y1 (1 << YSHIFT)
#define YMASK (Y << YSHIFT)
#define N (X*Y)
#define XMASK (X-1)
#define YSHIFT XBITS
#define Y1 (1 << YSHIFT)
#define YMASK (Y << YSHIFT)
-#define DIM (N*D3)
-
#define V6 6
#define FOR_VERTEX(v) \
#define V6 6
#define FOR_VERTEX(v) \
@@
-112,5
+113,6
@@
extern int edge_end2(unsigned v1, int e);
for ((vx)=0; (v)= (vy)<<YSHIFT | (vx), (vx)<X; (vx)++)
typedef double Vertices[N][D3];
for ((vx)=0; (v)= (vy)<<YSHIFT | (vx), (vx)<X; (vx)++)
typedef double Vertices[N][D3];
+struct Vertices { Vertices a; };
#endif /*MGRAPH_H*/
#endif /*MGRAPH_H*/