@x l.16 extern Graph *board(); /* moves on generalized chessboards */ extern Graph *simplex(); /* generalized triangular configurations */ extern Graph *subsets(); /* patterns of subset intersection */ extern Graph *perms(); /* permutations of a multiset */ extern Graph *parts(); /* partitions of an integer */ extern Graph *binary(); /* binary trees */ @# extern Graph *complement(); /* the complement of a graph */ extern Graph *gunion(); /* the union of two graphs */ extern Graph *intersection(); /* the intersection of two graphs */ extern Graph *lines(); /* the line graph of a graph */ extern Graph *product(); /* the product of two graphs */ extern Graph *induced(); /* a graph induced from another */ @y extern Graph *board(long,long,long,long,long,long,long); /* moves on generalized chessboards */ extern Graph *simplex(unsigned long,long,long,long,long,long,long); /* generalized triangular configurations */ extern Graph *subsets(unsigned long,long,long,long,long,long,unsigned long,long); /* patterns of subset intersection */ extern Graph *perms(long,long,long,long,long,unsigned long,long); /* permutations of a multiset */ extern Graph *parts(unsigned long,unsigned long,unsigned long,long); /* partitions of an integer */ extern Graph *binary(unsigned long,unsigned long,long); /* binary trees */ @# extern Graph *complement(Graph *,long,long,long); /* the complement of a graph */ extern Graph *gunion(Graph *,Graph *,long,long); /* the union of two graphs */ extern Graph *intersection(Graph *,Graph *,long,long); /* the intersection of two graphs */ extern Graph *lines(Graph *,long); /* the line graph of a graph */ extern Graph *product(Graph *,Graph *,long,long); /* the product of two graphs */ extern Graph *induced(Graph *,char *,long,long,long); /* a graph induced from another */ @z @x l.176 Graph *board(n1,n2,n3,n4,piece,wrap,directed) long n1,n2,n3,n4; /* size of board desired */ long piece; /* type of moves desired */ long wrap; /* mask for coordinate positions that wrap around */ long directed; /* should the graph be directed? */ @y Graph *board(@t\1\1@> long n1,long n2,long n3,long n4, /* size of board desired */ long piece, /* type of moves desired */ long wrap, /* mask for coordinate positions that wrap around */ long directed@t\2\2@>) /* should the graph be directed? */ @z @x l.493 Graph *simplex(n,n0,n1,n2,n3,n4,directed) unsigned long n; /* the constant sum of all coordinates */ long n0,n1,n2,n3,n4; /* constraints on coordinates */ long directed; /* should the graph be directed? */ @y Graph *simplex(@t\1\1@> unsigned long n, /* the constant sum of all coordinates */ long n0,long n1,long n2,long n3,long n4, /* constraints on coordinates */ long directed@t\2\2@>) /* should the graph be directed? */ @z @x l.732 Graph *subsets(n,n0,n1,n2,n3,n4,size_bits,directed) unsigned long n; /* the number of elements in the multiset */ long n0,n1,n2,n3,n4; /* multiplicities of elements */ unsigned long size_bits; /* intersection sizes that trigger arcs */ long directed; /* should the graph be directed? */ @y Graph *subsets(@t\1\1@> unsigned long n, /* the number of elements in the multiset */ long n0,long n1,long n2,long n3,long n4, /* multiplicities of elements */ unsigned long size_bits, /* intersection sizes that trigger arcs */ long directed@t\2\2@>) /* should the graph be directed? */ @z @x l.886 Graph *perms(n0,n1,n2,n3,n4,max_inv,directed) long n0,n1,n2,n3,n4; /* composition of the multiset */ unsigned long max_inv; /* maximum number of inversions */ long directed; /* should the graph be directed? */ @y Graph *perms(@t\1\1@> long n0,long n1,long n2,long n3,long n4, /* composition of the multiset */ unsigned long max_inv, /* maximum number of inversions */ long directed@t\2\2@>) /* should the graph be directed? */ @z @x l.1037 static char *short_imap="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\ abcdefghijklmnopqrstuvwxyz_^~&@@,;.:?!%#$+-*/|<=>()[]{}`'"; @y static char *short_imap= "0123456789"@| "ABCDEFGHIJKLMNOPQRSTUVWXYZ"@| "abcdefghijklmnopqrstuvwxyz"@| "_^~&@@,;.:?!%#$+-*/|<=>()[]{}`'"; @z @x l.1098 Graph *parts(n,max_parts,max_size,directed) unsigned long n; /* the number being partitioned */ unsigned long max_parts; /* maximum number of parts */ unsigned long max_size; /* maximum size of each part */ long directed; /* should the graph be directed? */ @y Graph *parts(@t\1\1@> unsigned long n, /* the number being partitioned */ unsigned long max_parts, /* maximum number of parts */ unsigned long max_size, /* maximum size of each part */ long directed@t\2\2@>) /* should the graph be directed? */ @z @x l.1290 Graph *binary(n,max_height,directed) unsigned long n; /* the number of internal nodes */ unsigned long max_height; /* maximum height of a leaf */ long directed; /* should the graph be directed? */ @y Graph *binary(@t\1\1@> unsigned long n, /* the number of internal nodes */ unsigned long max_height, /* maximum height of a leaf */ long directed@t\2\2@>) /* should the graph be directed? */ @z @x l.1545 Graph *complement(g,copy,self,directed) Graph *g; /* graph to be complemented */ long copy; /* should we double-complement? */ long self; /* should we produce self-loops? */ long directed; /* should the graph be directed? */ @y Graph *complement(@t\1\1@> Graph *g, /* graph to be complemented */ long copy, /* should we double-complement? */ long self, /* should we produce self-loops? */ long directed@t\2\2@>) /* should the graph be directed? */ @z @x l.1642 Graph *gunion(g,gg,multi,directed) Graph *g,*gg; /* graphs to be united */ long multi; /* should we reproduce multiple arcs? */ long directed; /* should the graph be directed? */ @y Graph *gunion(@t\1\1@> Graph *g,Graph *gg, /* graphs to be united */ long multi, /* should we reproduce multiple arcs? */ long directed@t\2\2@>) /* should the graph be directed? */ @z @x l.1723 Graph *intersection(g,gg,multi,directed) Graph *g,*gg; /* graphs to be intersected */ long multi; /* should we reproduce multiple arcs? */ long directed; /* should the graph be directed? */ @y Graph *intersection(@t\1\1@> Graph *g,Graph *gg, /* graphs to be intersected */ long multi, /* should we reproduce multiple arcs? */ long directed@t\2\2@>) /* should the graph be directed? */ @z @x l.1836 Graph *lines(g,directed) Graph *g; /* graph whose lines will become vertices */ long directed; /* should the graph be directed? */ @y Graph *lines(@t\1\1@> Graph *g, /* graph whose lines will become vertices */ long directed@t\2\2@>) /* should the graph be directed? */ @z @x l.2010 Graph *product(g,gg,type,directed) Graph *g,*gg; /* graphs to be multiplied */ long type; /* |cartesian|, |direct|, or |strong| */ long directed; /* should the graph be directed? */ @y Graph *product(@t\1\1@> Graph *g,Graph *gg, /* graphs to be multiplied */ long type, /* |cartesian|, |direct|, or |strong| */ long directed@t\2\2@>) /* should the graph be directed? */ @z @x l.2170 Graph *bi_complete(n1,n2,directed) unsigned long n1; /* size of first part */ unsigned long n2; /* size of second part */ long directed; /* should all arcs go from first part to second? */ @y Graph *bi_complete(@t\1\1@> unsigned long n1, /* size of first part */ unsigned long n2, /* size of second part */ long directed@t\2\2@>) /* should all arcs go from first part to second? */ @z @x l.2223 Graph *wheel(n,n1,directed) unsigned long n; /* size of the rim */ unsigned long n1; /* number of center points */ long directed; /* should all arcs go from center to rim and around? */ @y Graph *wheel(@t\1\1@> unsigned long n, /* size of the rim */ unsigned long n1, /* number of center points */ long directed@t\2\2@>) /* should all arcs go from center to rim and around? */ @z @x l.2244 extern Graph *bi_complete(); extern Graph *wheel(); /* standard applications of |induced| */ @y extern Graph *bi_complete(unsigned long,unsigned long,long); extern Graph *wheel(unsigned long,unsigned long,long); /* standard applications of |induced| */ @z @x l.2248 Graph *induced(g,description,self,multi,directed) Graph *g; /* graph marked for induction in its |ind| fields */ char *description; /* string to be mentioned in |new_graph->id| */ long self; /* should self-loops be permitted? */ long multi; /* should multiple arcs be permitted? */ long directed; /* should the graph be directed? */ @y Graph *induced(@t\1\1@> Graph *g, /* graph marked for induction in its |ind| fields */ char *description, /* string to be mentioned in |new_graph->id| */ long self, /* should self-loops be permitted? */ long multi, /* should multiple arcs be permitted? */ long directed@t\2\2@>) /* should the graph be directed? */ @z