Last active
September 11, 2020 17:37
-
-
Save koen-lee/a9ddf7348fd2beb91dcb1406cd628035 to your computer and use it in GitHub Desktop.
Attempt at simplification for https://ericlippert.com/2020/09/10/life-part-34/#comments
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private static Quad UnmemoizedStep(Quad q) | |
{ | |
Debug.Assert(q.Level >= 2); | |
Quad r; | |
if (q.IsEmpty) | |
r = Empty(q.Level - 1); | |
else if (q.Level == 2) | |
r = StepBaseCase(q); | |
else | |
{ | |
Quad q9nw = q.NW.Center; | |
Quad q9n = q.N.Center; | |
Quad q9ne = q.NE.Center; | |
Quad q9w = q.W.Center; | |
Quad q9c = q.Center.Center; | |
Quad q9e = q.E.Center; | |
Quad q9sw = q.SW.Center; | |
Quad q9s = q.S.Center; | |
Quad q9se = q.SE.Center; | |
Quad q4nw = Make(q9nw, q9n, q9c, q9w); | |
Quad q4ne = Make(q9n, q9ne, q9e, q9c); | |
Quad q4se = Make(q9c, q9e, q9se, q9s); | |
Quad q4sw = Make(q9w, q9c, q9s, q9sw); | |
Quad rnw = Step(q4nw); | |
Quad rne = Step(q4ne); | |
Quad rse = Step(q4se); | |
Quad rsw = Step(q4sw); | |
r = Make(rnw, rne, rse, rsw); | |
} | |
Debug.Assert(q.Level == r.Level + 1); | |
return r; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment