It sounds like you want to use the 'm' command, which sets a max length for the search. Setting an 'm' value will cause the search to back up whenever the specified max length is reached. Note that the 'm' command should not be used if you are trying to prove that no spaceships exist at a certain width.Goldtiger997 wrote:How can zfind be modified so that when the depth limit is reached, it prints out the partial it already has as usual, but then continues the search for more spaceships?
zfind discussion
Re: zfind discussion
-Matthias Merzenich
- Goldtiger997
- Posts: 764
- Joined: June 21st, 2016, 8:00 am
Re: zfind discussion
Thanks, I tried it and it's close but not quite what I want. I was thinking of something that works just like the m parameter, but prints out what it has at the max length before backing up.Sokwe wrote:It sounds like you want to use the 'm' command, which sets a max length for the search. Setting an 'm' value will cause the search to back up whenever the specified max length is reached. Note that the 'm' command should not be used if you are trying to prove that no spaceships exist at a certain width.Goldtiger997 wrote:How can zfind be modified so that when the depth limit is reached, it prints out the partial it already has as usual, but then continues the search for more spaceships?
Re: zfind discussion
In zfind 2.0, line 474 should readGoldtiger997 wrote:Thanks, I tried it and it's close but not quite what I want. I was thinking of something that works just like the m parameter, but prints out what it has at the max length before backing up.
Code: Select all
if(sp[P_MAX_LENGTH] && currRow > sp[P_MAX_LENGTH] + 2 * period - 1 && pRows[currRow] != 0) continue;
Code: Select all
if(sp[P_MAX_LENGTH] && currRow > sp[P_MAX_LENGTH] + 2 * period - 1 && pRows[currRow] != 0){
buffPattern(currRow);
printPattern();
continue;
}
-Matthias Merzenich
-
- Posts: 2200
- Joined: August 5th, 2016, 10:27 am
- Location: 拆哪!I repeat, CHINA! (a.k.a. 种花家)
- Contact:
Re: zfind discussion
So does that mean that there will be an official width-extended zfind programme release sometime?wildmyron wrote: I think this is working as expected. You can see from the "Known spaceships by width" table at http://www.conwaylife.com/wiki/User:Codeholic/Sandbox that there is no even symmetric ship below width 18, so if you take a partial from a width 12 search (w6 in zfind) it is not surprising that there is no completion for it at widths up to 18 (w9 in zfind)
熠熠种花 - Glimmering Garden
Harvest Moon
2-engine p45 gliderless HWSS gun
Small p2070 glider gun
Forgive me if I withhold my enthusiasm.
Harvest Moon
2-engine p45 gliderless HWSS gun
Small p2070 glider gun
Forgive me if I withhold my enthusiasm.
Re: zfind discussion
I do not plan to do this any time soon. If someone else wants to make these modifications, they should feel free to do so.GUYTU6J wrote:So does that mean that there will be an official width-extended zfind programme release sometime?
-Matthias Merzenich
Re: zfind discussion
TIP: Pressing down after initiating a search gives you a little 'ding' and a flashing icon when it finishes (on windows at least). This is useful for longer searches.
Re: zfind discussion
Request:
A diagonal and knightship search feature for nt rules.
A "gfind" option, which searches from c/2 to c/7, u, v, g, then a up to a specified width, for example:
Will search for all c/2 to c/7 ships at symmetries u, v, g, and a (change speed if one is found at that symmetry) up to width 7.
A way to search for backends rather than frontends
k=0 searches
A diagonal and knightship search feature for nt rules.
A "gfind" option, which searches from c/2 to c/7, u, v, g, then a up to a specified width, for example:
Code: Select all
./zfind g7
A way to search for backends rather than frontends
k=0 searches
Re: zfind discussion
See here. Same limitations for diagonal and knightship searces as zfind.Saka wrote:Request:
A diagonal and knightship search feature for nt rules.
The 5S project (Smallest Spaceships Supporting Specific Speeds) is now maintained by AforAmpere. The latest collection is hosted on GitHub and contains well over 1,000,000 spaceships.
Semi-active here - recovering from a severe case of LWTDS.
Semi-active here - recovering from a severe case of LWTDS.
-
- Posts: 2200
- Joined: August 5th, 2016, 10:27 am
- Location: 拆哪!I repeat, CHINA! (a.k.a. 种花家)
- Contact:
Re: zfind discussion
Is /d command designed for this case?If yes,where can I see those dump files?If no,how to save the outputs before they are gone in the command prompt?Sokwe wrote:For long searches, you should redirect the output to a file.GUYTU6J wrote:It's a pity that many partials in the middle of the output file is lost because my command prompt doesn't show enough.
熠熠种花 - Glimmering Garden
Harvest Moon
2-engine p45 gliderless HWSS gun
Small p2070 glider gun
Forgive me if I withhold my enthusiasm.
Harvest Moon
2-engine p45 gliderless HWSS gun
Small p2070 glider gun
Forgive me if I withhold my enthusiasm.
Re: zfind discussion
No, /d is not designed for this. Use redirection instead:GUYTU6J wrote:Is /d command designed for this case? If yes,where can I see those dump files? If no,how to save the outputs before they are gone in the command prompt?Sokwe wrote:For long searches, you should redirect the output to a file.GUYTU6J wrote:It's a pity that many partials in the middle of the output file is lost because my command prompt doesn't show enough.
Code: Select all
zfind [options] > file.txt
The dump files produced by the /d option will also be saved to the current working directory.
One disadvantage of the redirection operator is that the output is no longer displayed on the screen. As you have MinGW installed you could use the 'tee' command provided by MinGW (may need to be installed). This will show the output on-screen and save it to file. Use a pipe ( '|' character) to send output from zfind to the tee command instead of redirection.
Code: Select all
zfind [options] | tee file.txt
The 5S project (Smallest Spaceships Supporting Specific Speeds) is now maintained by AforAmpere. The latest collection is hosted on GitHub and contains well over 1,000,000 spaceships.
Semi-active here - recovering from a severe case of LWTDS.
Semi-active here - recovering from a severe case of LWTDS.
- praosylen
- Posts: 2449
- Joined: September 13th, 2014, 5:36 pm
- Location: Pembina University, Home of the Gliders
- Contact:
Re: zfind discussion
A minor note: zfind gives and exits on my Mac when compiled with clang and extending a partial at width 10. Does not happen at width 9 or when not extending a partial. It occurred while trying to find loafer tagalongs. I recompiled using gcc and it works fine.
Code: Select all
Abort trap: 6
former username: A for Awesome
praosylen#5847 (Discord)
The only decision I made was made
of flowers, to jump universes to one of springtime in
a land of former winter, where no invisible walls stood,
or could stand for more than a few hours at most...
praosylen#5847 (Discord)
The only decision I made was made
of flowers, to jump universes to one of springtime in
a land of former winter, where no invisible walls stood,
or could stand for more than a few hours at most...
Re: zfind discussion
Well, I guess zfind doesn't like trap music. What does that mean, anyway? Trap?A for awesome wrote:A minor note: zfind givesand exits on my Mac when compiled with clang and extending a partial at width 10. Does not happen at width 9 or when not extending a partial. It occurred while trying to find loafer tagalongs. I recompiled using gcc and it works fine.Code: Select all
Abort trap: 6
-
- Posts: 549
- Joined: April 9th, 2013, 11:03 pm
Re: zfind discussion
Just a quick question - I had a few modifications I wanted to try implementing, but the comment on the MAX_WIDTH line makes me wonder - Aside from the assumption that there is enough memory (when there will almost definitely not be) to construct the required, are there any assumptions in the code about the maximum allowable width that will cause width 11 search attempts to error regardless of how much memory is actually available?
- praosylen
- Posts: 2449
- Joined: September 13th, 2014, 5:36 pm
- Location: Pembina University, Home of the Gliders
- Contact:
Re: zfind discussion
I'm pretty sure it's because of the use of 32-bit integers in the lookup table to store the bits of three separate rows; with a width-11 search, this would take up 33 bits, unfortunately. I had wondered the same thing myself, as a hypothetical question about running a width-11 or 12 search hooked up to a couple hundred gigabytes of advanced memristor-based RAM analogue.Sphenocorona wrote:Just a quick question - I had a few modifications I wanted to try implementing, but the comment on the MAX_WIDTH line makes me wonder - Aside from the assumption that there is enough memory (when there will almost definitely not be) to construct the required, are there any assumptions in the code about the maximum allowable width that will cause width 11 search attempts to error regardless of how much memory is actually available?
former username: A for Awesome
praosylen#5847 (Discord)
The only decision I made was made
of flowers, to jump universes to one of springtime in
a land of former winter, where no invisible walls stood,
or could stand for more than a few hours at most...
praosylen#5847 (Discord)
The only decision I made was made
of flowers, to jump universes to one of springtime in
a land of former winter, where no invisible walls stood,
or could stand for more than a few hours at most...
-
- Posts: 549
- Joined: April 9th, 2013, 11:03 pm
Re: zfind discussion
Okay, good to know. I'm unfortunately still not sure how I'm going to implement the honestly fairly simple idea I had, since it will require rewriting the structure of the lookup table itself and the way the code is written makes it difficult for me to understand how it works well enough to recreate it with a mildly different structuring. For example, I don't fully understand why there are lookup tables returning three rows at a time rather than, say, just the result for the middle row. Understanding that might help me to figure out how to best implement the ideas I had in mind.
- praosylen
- Posts: 2449
- Joined: September 13th, 2014, 5:36 pm
- Location: Pembina University, Home of the Gliders
- Contact:
Re: zfind discussion
I may not be remembering properly. All I remember is that there are multiple cases where a 32-bit integer has to store w*3 bits, which fails for w>10.Sphenocorona wrote:Okay, good to know. I'm unfortunately still not sure how I'm going to implement the honestly fairly simple idea I had, since it will require rewriting the structure of the lookup table itself and the way the code is written makes it difficult for me to understand how it works well enough to recreate it with a mildly different structuring. For example, I don't fully understand why there are lookup tables returning three rows at a time rather than, say, just the result for the middle row. Understanding that might help me to figure out how to best implement the ideas I had in mind.
former username: A for Awesome
praosylen#5847 (Discord)
The only decision I made was made
of flowers, to jump universes to one of springtime in
a land of former winter, where no invisible walls stood,
or could stand for more than a few hours at most...
praosylen#5847 (Discord)
The only decision I made was made
of flowers, to jump universes to one of springtime in
a land of former winter, where no invisible walls stood,
or could stand for more than a few hours at most...
Re: zfind discussion
This is correct. When zfind tries to find the next row in the spaceship sequence, it uses two tables: gInd and gRows. gInd takes as input three known rows from the current search state and outputs an index for the array gRows. gRows stores the rows which are viable extensions given the three rows input to gInd. The array gRows contains every row that can be achieved from evolving a stack of 3 rows while still staying within the specified width. For width n, this is 2^(3n)-2^(3n-3) rows, and when width=11 this is greater than 2^32. That is, when width>10, gRows has more than 2^32 entries, so the indices stored in gInd must be able to store values bigger than 32 bits.A for awesome wrote:All I remember is that there are multiple cases where a 32-bit integer has to store w*3 bits, which fails for w>10.
If you have a machine with enough memory, you should be able to modify the program to work at width 11 by changing some of the malloc statements and declaring gInd and pInd as uint64_t* (and probably pRemain as well). Unfortunately, many of the malloc statements have the 32-bit assumption hard-coded. I think the following modifications for zfind 2.0 should be sufficient as long as you aren't using the dump state parameter (but you probably are if you're doing a width-11 search):
- Lines 70-71 read
Replace these with
Code: Select all
uint32_t *gInd, *pInd; uint32_t *pRemain;
Code: Select all
uint64_t *gInd, *pInd; uint64_t *pRemain;
- Line 211 reads
Replace with
Code: Select all
gInd = malloc(((long long)4 << (width * 3)) + 4);
Code: Select all
gInd = malloc(((long long)sizeof(*gInd) << (width * 3)) + sizeof(*gInd));
- Lines 655-656 read
Replace these with
Code: Select all
pInd = malloc(sp[P_DEPTH_LIMIT] * 4); pRemain = malloc(sp[P_DEPTH_LIMIT] * 4);
Code: Select all
pInd = malloc(sp[P_DEPTH_LIMIT] * sizeof(*pInd)); pRemain = malloc(sp[P_DEPTH_LIMIT] * sizeof(*pRemain));
407, 408, 596, 597, 603, and 604.
You will need to create a new function that loads larger (probably unsigned long long) integers to replace loadUL() in lines 603 and 604. I don't intend to do all this right now (I'm extremely busy marathoning Samurai Jack), but I will fix these issues the next time I update zfind.
-Matthias Merzenich
-
- Posts: 549
- Joined: April 9th, 2013, 11:03 pm
Re: zfind discussion
I'm curious about the way gInd and gRows are handled are utilized in particular, as some of the ideas I've got pertain to modifying them specifically. I had made a file with zfind-s source since I figured the lack of unnecessary code would help make it quicker and easier to implement changes to the core components.
Re: zfind discussion
I will reuse some of the language I used in an earlier post. I will use line numbers from zfind-s for reference.
zfind works similarly to gfind, so understanding gfind is helpful. zfind uses the ideas in sections 4 and 6 of David Eppstein's "Searching for Spaceships" article.
To find a new row, zfind takes 3 known rows, A, B, and Y, and looks for a row X so that evolve(A,B,X)=Y. That is,
It does this by using two lookup tables. The first table (gRows) actually gives the rows X that we are looking for (stored as unsigned 16-bit integers). The second table (gInd) gives indices into the first table (stored as unsigned 32-bit integers). The input for the second lookup table is the three rows A, B, and Y.
More precisely, let ABY be the bitwise concatenation of the integers representing rows A, B, and Y. Then gInd[ABY] gives the index in the array gRows of the first row X such that evolve(A,B,X)=Y. Now, any other row X' satisfying evolve(A,B,X')=Y has index gInd[ABY]+i in the array gRows, where gInd[ABY]+i < gInd[ABY+1]. That is, gRows[gInd[ABY]+i] gives a row X' such that evolve(A,B,X')=Y whenever gInd[ABY]+i < gInd[ABY+1] and i >= 0.
gInd and gRows are calculated inside the function makeTables(). Lines 145-152 (of zfind-s) are where the construction of gInd begins. The for loop runs through every combination of three rows, A, B, X and calculates Y:=evolve(A,B,X). It then increments gInd[ABY]. At the end of this loop, gInd[ABY] gives the number of rows X such that evolve(A,B,X)=Y.
The next for loop (line 154) simply replaces the original value of gInd[ABY] with the cumulative sum of the original gInd[n] values for all n <= ABY.
The last for loop (lines 157-164) constructs gRows and finishes the construction of gInd. It again loops through every combination of three rows, A, B, X and calculates Y:=evolve(A,B,X). The program then reduces gInd[ABY] by 1 and places the row X in the array gRows at index gInd[ABY] (that is, gRows[gInd[ABY]]:=X).
In the end, gInd[ABY] is the index in gRows of the first row X satisfying evolve(A,B,X)=Y.
zfind works similarly to gfind, so understanding gfind is helpful. zfind uses the ideas in sections 4 and 6 of David Eppstein's "Searching for Spaceships" article.
To find a new row, zfind takes 3 known rows, A, B, and Y, and looks for a row X so that evolve(A,B,X)=Y. That is,
Code: Select all
AAAAAAAA
BBBBBBBB -> YYYYYYYY
XXXXXXXX
More precisely, let ABY be the bitwise concatenation of the integers representing rows A, B, and Y. Then gInd[ABY] gives the index in the array gRows of the first row X such that evolve(A,B,X)=Y. Now, any other row X' satisfying evolve(A,B,X')=Y has index gInd[ABY]+i in the array gRows, where gInd[ABY]+i < gInd[ABY+1]. That is, gRows[gInd[ABY]+i] gives a row X' such that evolve(A,B,X')=Y whenever gInd[ABY]+i < gInd[ABY+1] and i >= 0.
gInd and gRows are calculated inside the function makeTables(). Lines 145-152 (of zfind-s) are where the construction of gInd begins. The for loop runs through every combination of three rows, A, B, X and calculates Y:=evolve(A,B,X). It then increments gInd[ABY]. At the end of this loop, gInd[ABY] gives the number of rows X such that evolve(A,B,X)=Y.
The next for loop (line 154) simply replaces the original value of gInd[ABY] with the cumulative sum of the original gInd[n] values for all n <= ABY.
The last for loop (lines 157-164) constructs gRows and finishes the construction of gInd. It again loops through every combination of three rows, A, B, X and calculates Y:=evolve(A,B,X). The program then reduces gInd[ABY] by 1 and places the row X in the array gRows at index gInd[ABY] (that is, gRows[gInd[ABY]]:=X).
In the end, gInd[ABY] is the index in gRows of the first row X satisfying evolve(A,B,X)=Y.
-Matthias Merzenich
Re: zfind discussion
Currently learning how to use zfind, here are some uninteresting c/2 partials. I cant go any higher than a width of 10 without a "Segmentation fault (core dumped)" error
EDIT: Some other random stuff I found that is almost certaintly known:
Code: Select all
x = 84, y = 8, rule = B3/S23
6b2o20b2o16bo8bo13bo8bo$2bob2o2b2obo12bob2o2b2obo11b3ob4ob3o11b3ob4ob
3o$b2o8b2o10b2o8b2o9b2o3b4o3b2o9b2o3b4o3b2o$bobobo2bobobo9b2obobo2bobo
b2o7b2o2bobo2bobo2b2o7b2o2bobo2bobo2b2o$3o3b2o3b3o7b2ob2ob4ob2ob2o7bo
3bo4bo3bo9bo3bo4bo3bo$43bobo10bobo7b2o12b2o$42bo3bo8bo3bo4b2obobo8bobo
b2o$64bo5b2o4b2o5bo!
EDIT: Some other random stuff I found that is almost certaintly known:
Code: Select all
x = 474, y = 741, rule = B3/S23
398bo6bo$398bo6bo$397bobo4bobo2$352bo4bo$350b10o38bo6bo$350bo8bo37b3ob
2ob3o$353b4o40b3ob2ob3o$350b2o6b2o37bobo4bobo$349bobo6bobo38bo4bo$354b
2o42b2o4b2o$350b4o2b4o39bo4bo$350b3o4b3o38bo6bo$353bo2bo38b4o6b4o$349b
o3bo2bo3bo36bo8bo$349bo10bo34bobo3b2o3bobo$349b4o4b4o34bobo2bo2bo2bobo
$349bobo6bobo35b2o3b2o3b2o$348b2ob8ob2o$399b2o2b2o$397bo2bo2bo2bo25$
354b2o$352bo4bo$352bo4bo$352bo4bo2$354b2o$353b4o$351b2o4b2o$352bo4bo$
352bo4bo$353bo2bo$6b2o344b2o2b2o$4bo4bo340bob2o2b2obo$3bo6bo338bo3bo2b
o3bo$2bo8bo336bo4bo2bo4bo$2b2ob4ob2o337bo2bo4bo2bo$349b2ob2o2b2ob2o$
352b2o2b2o$4b2o2b2o$4b2o2b2o341b2o4b2o$350bo8bo$6b2o342bo8bo$5b4o340bo
2bo4bo2bo$4b2o2b2o340b4o2b4o$4bo4bo343bo2bo$6b2o343bo6bo$4bo4bo342b6o$
4bo4bo339bobo6bobo$348bo2bobo2bobo2bo$4bo4bo339b5o2b5o$3bo6bo338bo4b2o
4bo105b2o$2bo8bo341bo2bo105b2obo2bob2o$2b2ob4ob2o450b2o6b2o$462bobo4bo
bo$464b2o2b2o$4b2o2b2o453b2ob2ob2o$4b2o2b2o455bo2bo$463bo6bo$6b2o455bo
6bo$5b4o$4b2o2b2o453b8o$4bo4bo452b2o6b2o$6b2o$4bo4bo456b2o$4bo4bo455bo
2bo$466b2o$4bo4bo455b4o$3bo6bo450b2obo4bob2o$2bo8bo449b2o8b2o$2b2ob4ob
2o448bo2bo6bo2bo$465b4o$464b2o2b2o$4b2o2b2o455b4o$4b2o2b2o455bo2bo2$6b
2o458b2o$5b4o453bob2o2b2obo$4b2o2b2o451b2ob6ob2o$4bo4bo450bo2bobo2bobo
2bo$6b2o453bo3bo2bo3bo$4bo4bo455bo2bo$4bo4bo455b4o2$4bo4bo456b2o$3bo6b
o$2bo8bo453bo2bo$2b2ob4ob2o449b3ob4ob3o$460bo12bo$461b2o3b2o3b2o$4b2o
2b2o455b4o$4b2o2b2o454bo4bo2$6b2o457bo2bo$5b4o457b2o$4b2o2b2o455b4o$4b
o4bo451b2obo4bob2o$6b2o453b2o8b2o$4bo4bo450bo2bo6bo2bo$4bo4bo455b4o$
464b2o2b2o$4bo4bo455b4o$3bo6bo454bo2bo$2bo8bo$2b2ob4ob2o454b2o$462bob
2o2b2obo$461b2ob6ob2o$4b2o2b2o450bo2bobo2bobo2bo$4b2o2b2o451bo3bo2bo3b
o$465bo2bo$6b2o457b4o$5b4o$4b2o2b2o456b2o$4bo4bo$6b2o457bo2bo$4bo4bo
451b3ob4ob3o$4bo4bo450bo12bo$461b2o3b2o3b2o$4bo4bo455b4o$3bo6bo453bo4b
o$2bo8bo$2b2ob4ob2o453bo2bo$466b2o$465b4o$4b2o2b2o451b2obo4bob2o$4b2o
2b2o451b2o8b2o$460bo2bo6bo2bo$6b2o457b4o$5b4o455b2o2b2o$4b2o2b2o455b4o
$4bo4bo455bo2bo$6b2o$4bo4bo456b2o$4bo4bo452bob2o2b2obo$461b2ob6ob2o$4b
o4bo450bo2bobo2bobo2bo$3bo6bo450bo3bo2bo3bo$2bo8bo453bo2bo$2b2ob4ob2o
453b4o2$466b2o$4b2o2b2o$4b2o2b2o455bo2bo$461b3ob4ob3o$6b2o452bo12bo$5b
4o452b2o3b2o3b2o$4b2o2b2o455b4o$4bo4bo454bo4bo$6b2o$4bo4bo455bo2bo$4bo
4bo456b2o$465b4o$4bo4bo451b2obo4bob2o$3bo6bo450b2o8b2o$2bo8bo448bo2bo
6bo2bo$2b2ob4ob2o453b4o$464b2o2b2o$465b4o$4b2o2b2o455bo2bo$4b2o2b2o$
466b2o$6b2o454bob2o2b2obo$5b4o452b2ob6ob2o$4b2o2b2o450bo2bobo2bobo2bo$
4bo4bo451bo3bo2bo3bo$6b2o457bo2bo$4bo4bo455b4o$4bo4bo$466b2o$4bo4bo$3b
o6bo454bo2bo$2bo8bo449b3ob4ob3o$2b2ob4ob2o448bo12bo$461b2o3b2o3b2o$
465b4o$4b2o2b2o454bo4bo$4b2o2b2o$465bo2bo$6b2o458b2o$5b4o456b4o$4b2o2b
2o451b2obo4bob2o$4bo4bo451b2o8b2o$6b2o452bo2bo6bo2bo$4bo4bo455b4o$4bo
4bo454b2o2b2o$465b4o$4bo4bo455bo2bo$3bo6bo$2bo8bo454b2o$2b2ob4ob2o450b
ob2o2b2obo$461b2ob6ob2o$460bo2bobo2bobo2bo$4b2o2b2o451bo3bo2bo3bo$4b2o
2b2o455bo2bo$465b4o$6b2o$5b4o457b2o$4b2o2b2o$4bo4bo455bo2bo$6b2o453b3o
b4ob3o$4bo4bo450bo12bo$4bo4bo451b2o3b2o3b2o$465b4o$4bo4bo454bo4bo$3bo
6bo$2bo8bo453bo2bo$2b2ob4ob2o454b2o$465b4o$461b2obo4bob2o$4b2o2b2o451b
2o8b2o$4b2o2b2o450bo2bo6bo2bo$465b4o$6b2o456b2o2b2o$5b4o456b4o$4b2o2b
2o455bo2bo$4bo4bo$6b2o458b2o$4bo4bo452bob2o2b2obo$4bo4bo451b2ob6ob2o$
460bo2bobo2bobo2bo$4bo4bo451bo3bo2bo3bo$3bo6bo454bo2bo$2bo8bo453b4o$2b
2ob4ob2o$466b2o2$4b2o2b2o455bo2bo$4b2o2b2o451b3ob4ob3o$460bo12bo$6b2o
453b2o3b2o3b2o$5b4o456b4o$4b2o2b2o454bo4bo$4bo4bo$6b2o457bo2bo$4bo4bo
456b2o$4bo4bo455b4o$461b2obo4bob2o$4bo4bo451b2o8b2o$3bo6bo449bo2bo6bo
2bo$2bo8bo453b4o$2b2ob4ob2o452b2o2b2o$465b4o$465bo2bo$4b2o2b2o$4b2o2b
2o456b2o$462bob2o2b2obo$6b2o453b2ob6ob2o$5b4o451bo2bobo2bobo2bo$4b2o2b
2o451bo3bo2bo3bo$4bo4bo455bo2bo$6b2o457b4o$4bo4bo$4bo4bo456b2o2$4bo4bo
455bo2bo$3bo6bo450b3ob4ob3o$2bo8bo448bo12bo$2b2ob4ob2o449b2o3b2o3b2o$
465b4o$464bo4bo$4b2o2b2o$4b2o2b2o455bo2bo$466b2o$6b2o457b4o$5b4o452b2o
bo4bob2o$4b2o2b2o451b2o8b2o$4bo4bo450bo2bo6bo2bo$6b2o457b4o$4bo4bo454b
2o2b2o$4bo4bo455b4o$465bo2bo$4bo4bo$3bo6bo455b2o$2bo8bo450bob2o2b2obo$
2b2ob4ob2o449b2ob6ob2o$460bo2bobo2bobo2bo$461bo3bo2bo3bo$4b2o2b2o455bo
2bo$4b2o2b2o455b4o2$6b2o458b2o$5b4o$4b2o2b2o455bo2bo$4bo4bo451b3ob4ob
3o$6b2o452bo12bo$4bo4bo451b2o3b2o3b2o$4bo4bo455b4o$464bo4bo$4bo4bo$3bo
6bo454bo2bo$2bo8bo454b2o$2b2ob4ob2o453b4o$461b2obo4bob2o$461b2o8b2o$4b
2o2b2o450bo2bo6bo2bo$4b2o2b2o455b4o$464b2o2b2o$6b2o457b4o$5b4o456bo2bo
$4b2o2b2o$4bo4bo456b2o$6b2o454bob2o2b2obo$4bo4bo451b2ob6ob2o$4bo4bo
450bo2bobo2bobo2bo$461bo3bo2bo3bo$4bo4bo455bo2bo$3bo6bo454b4o$2bo8bo$
2b2ob4ob2o454b2o2$465bo2bo$4b2o2b2o451b3ob4ob3o$4b2o2b2o450bo12bo$461b
2o3b2o3b2o$6b2o457b4o$5b4o455bo4bo$4b2o2b2o$4bo4bo455bo2bo$6b2o458b2o$
4bo4bo455b4o$4bo4bo451b2obo4bob2o$461b2o8b2o$4bo4bo450bo2bo6bo2bo$3bo
6bo454b4o$2bo8bo452b2o2b2o$2b2ob4ob2o453b4o$465bo2bo2$4b2o2b2o456b2o$
4b2o2b2o452bob2o2b2obo$461b2ob6ob2o$6b2o452bo2bobo2bobo2bo$5b4o452bo3b
o2bo3bo$4b2o2b2o455bo2bo$4bo4bo455b4o$6b2o$4bo4bo456b2o$4bo4bo$465bo2b
o$4bo4bo451b3ob4ob3o$3bo6bo449bo12bo$2bo8bo449b2o3b2o3b2o$2b2ob4ob2o
453b4o$464bo4bo2$4b2o2b2o455bo2bo$3bob4obo455b2o$3bo6bo454b4o$bo10bo
448b2obo4bob2o$o12bo447b2o8b2o$o12bo446bo2bo6bo2bo$2b2o6b2o453b4o$b3o
6b3o451b2o2b2o$2b2o6b2o453b4o$465bo2bo$bobo6bobo$2b3ob2ob3o454b2o$3bob
4obo451bob2o2b2obo$4b2o2b2o451b2ob6ob2o$3o3b2o3b3o446bo2bobo2bobo2bo$
3o8b3o447bo3bo2bo3bo$2b2ob4ob2o453bo2bo$3bob4obo454b4o$b3ob4ob3o$6b2o
458b2o$4bo4bo$465bo2bo$461b3ob4ob3o$460bo12bo$461b2o3b2o3b2o$465b4o$
464bo4bo2$465bo2bo$466b2o$465b4o$461b2obo4bob2o$461b2o8b2o$460bo2bo6bo
2bo$465b4o$464b2o2b2o$465b4o$465bo2bo2$466b2o$462bob2o2b2obo$461b2ob6o
b2o$460bo2bobo2bobo2bo$461bo3bo2bo3bo$465bo2bo$465b4o2$466b2o2$465bo2b
o$461b3ob4ob3o$460bo12bo$461b2o3b2o3b2o$465b4o$464bo4bo2$465bo2bo$466b
2o$465b4o$461b2obo4bob2o$461b2o8b2o$460bo2bo6bo2bo$465b4o$464b2o2b2o$
465b4o$465bo2bo2$466b2o$462bob2o2b2obo$461b2ob6ob2o$460bo2bobo2bobo2bo
$461bo3bo2bo3bo$465bo2bo$465b4o2$466b2o2$465bo2bo$461b3ob4ob3o$460bo
12bo$461b2o3b2o3b2o$465b4o$464bo4bo2$465bo2bo$466b2o$465b4o$461b2obo4b
ob2o$461b2o8b2o$460bo2bo6bo2bo$465b4o$464b2o2b2o$465b4o$465bo2bo2$466b
2o$462bob2o2b2obo$461b2ob6ob2o$460bo2bobo2bobo2bo$461bo3bo2bo3bo$465bo
2bo$465b4o2$466b2o2$465bo2bo$461b3ob4ob3o$460bo12bo$461b2o3b2o3b2o$
465b4o$464bo4bo2$465bo2bo$466b2o$465b4o$461b2obo4bob2o$461b2o8b2o$460b
o2bo6bo2bo$465b4o$464b2o2b2o$465b4o$465bo2bo2$466b2o$462bob2o2b2obo$
461b2ob6ob2o$460bo2bobo2bobo2bo$461bo3bo2bo3bo$465bo2bo$465b4o2$466b2o
2$465bo2bo$461b3ob4ob3o$460bo12bo$461b2o3b2o3b2o$465b4o$464bo4bo2$465b
o2bo$466b2o$465b4o$461b2obo4bob2o$461b2o8b2o$460bo2bo6bo2bo$465b4o$
464b2o2b2o$465b4o$465bo2bo2$466b2o$462bob2o2b2obo$461b2ob6ob2o$460bo2b
obo2bobo2bo$461bo3bo2bo3bo$465bo2bo$465b4o2$466b2o2$465bo2bo$461b3ob4o
b3o$460bo12bo$461b2o3b2o3b2o$465b4o$464bo4bo2$465bo2bo$466b2o$465b4o$
461b2obo4bob2o$461b2o8b2o$460bo2bo6bo2bo$465b4o$464b2o2b2o$465b4o$465b
o2bo2$466b2o$462bob2o2b2obo$461b2ob6ob2o$460bo2bobo2bobo2bo$461bo3bo2b
o3bo$465bo2bo$465b4o2$466b2o2$465bo2bo$461b3ob4ob3o$460bo12bo$461b2o3b
2o3b2o$465b4o$464bo4bo2$465bo2bo$466b2o$465b4o$461b2obo4bob2o$461b2o8b
2o$460bo2bo6bo2bo$465b4o$464b2o2b2o$465b4o$465bo2bo2$466b2o$462bob2o2b
2obo$461b2ob6ob2o$460bo2bobo2bobo2bo$461bo3bo2bo3bo$465bo2bo$465b4o2$
466b2o2$465bo2bo$461b3ob4ob3o$460bo12bo$461b2o3b2o3b2o$465b4o$464bo4bo
2$465bo2bo$466b2o$465b4o$461b2obo4bob2o$461b2o8b2o$460bo2bo6bo2bo$465b
4o$464b2o2b2o$465b4o$465bo2bo2$466b2o$462bob2o2b2obo$461b2ob6ob2o$460b
o2bobo2bobo2bo$461bo3bo2bo3bo$465bo2bo$465b4o2$466b2o2$465bo2bo$461b3o
b4ob3o$460bo12bo$461b2o3b2o3b2o$465b4o$464bo4bo2$465bo2bo$466b2o$465b
4o$461b2obo4bob2o$461b2o8b2o$460bo2bo6bo2bo$465b4o$464b2o2b2o$465b4o$
465bo2bo2$466b2o$462bob2o2b2obo$461b2ob6ob2o$460bo2bobo2bobo2bo$461bo
3bo2bo3bo$465bo2bo$465b4o2$466b2o2$465bo2bo$461b3ob4ob3o$460bo12bo$
461b2o3b2o3b2o$465b4o$464bo4bo2$465bo2bo$466b2o$465b4o$461b2obo4bob2o$
461b2o8b2o$460bo2bo6bo2bo$465b4o$464b2o2b2o$465b4o$465bo2bo2$466b2o$
462bob2o2b2obo$461b2ob6ob2o$460bo2bobo2bobo2bo$461bo3bo2bo3bo$465bo2bo
$465b4o2$466b2o2$465bo2bo$461b3ob4ob3o$460bo12bo$461b2o3b2o3b2o$465b4o
$464bo4bo2$465bo2bo$466b2o$465b4o$461b2obo4bob2o$461b2o8b2o$460bo2bo6b
o2bo$465b4o$464b2o2b2o$465b4o$465bo2bo2$466b2o$462bob2o2b2obo$461b2ob
6ob2o$460bo2bobo2bobo2bo$461bo3bo2bo3bo$465bo2bo$465b4o2$466b2o2$465bo
2bo$461b3ob4ob3o$460bo12bo$461b2o3b2o3b2o$465b4o$464bo4bo2$465bo2bo$
466b2o$465b4o$461b2obo4bob2o$461b2o8b2o$460bo2bo6bo2bo$465b4o$464b2o2b
2o$465b4o$465bo2bo2$466b2o$462bob2o2b2obo$461b2ob6ob2o$460bo2bobo2bobo
2bo$461bo3bo2bo3bo$465bo2bo$465b4o2$466b2o$462b3ob2ob3o$461bo3bo2bo3bo
$462bo2bo2bo2bo$466b2o$465bo2bo$461b2o3b2o3b2o$461b2ob2o2b2ob2o$460bo
3bob2obo3bo$464bo4bo$466b2o2$464b2o2b2o$463bob4obo$461bobo6bobo$460b2o
bobo2bobob2o$460b3ob2o2b2ob3o!
Help wanted: How can we accurately notate any 1D replicator?
Re: zfind discussion
There are multiple reasons why width 11 doesn't work. For now, zfind is restricted to width 10 or below. For this reason, zfind is not good for finding low-period ships. You should probably us gfind for periods below 5.muzik wrote:I cant go any higher than a width of 10 without a "Segmentation fault (core dumped)" error
-Matthias Merzenich
Re: zfind discussion
I assume you mean periods higher than 5?Sokwe wrote:zfind is not good for finding low-period ships. You should probably us gfind for periods below 5.
Help wanted: How can we accurately notate any 1D replicator?
Re: zfind discussion
No, I mean that gfind should be used for periods lower than (and probably equal to) 5, and that zfind should be used for periods higher than 5.muzik wrote:I assume you mean periods higher than 5?Sokwe wrote:zfind is not good for finding low-period ships. You should probably us gfind for periods below 5.
-Matthias Merzenich
Re: zfind discussion
ah, right, I misread gfind as zfind.
Help wanted: How can we accurately notate any 1D replicator?
Re: zfind discussion
Okay, tried compiling this on my new computer, followed the same steps as before, but then this keeps happening:
Rule is B2-c/2cin
Code: Select all
$ gcc ntzfind.c -O3 -o ntzfind
In file included from ntzfind.c:7:0:
step.c: In function ‘stepcell’:
step.c:2:264: error: expected expression before ‘)’ token
return (~o&((0x0)|(~(a^b^c^d^e^f^g^h)&(a|b|c|d|e|f|g|h)&~(((a|b|c)&(d|e|f)&(g|h))|(a&b&c)|(d&e&f)|((a|b|c)&(d|e|f)&(~(a^b^c)|~(d^e^f)))|(g&h&(a|b|c|d|e|f)))&~(~(a|c|e|g)&(b^f)))))|(o&((0x0)|(0x0|(~(a|c|e|g)&(b^f)&~(b^d^f^h))|(~(b|d|f|h)&~((a^e)|(c^g))&(a^c))|())));
^