Skip to content

Instantly share code, notes, and snippets.

@koen-lee
Last active September 11, 2020 17:37
Show Gist options
  • Save koen-lee/a9ddf7348fd2beb91dcb1406cd628035 to your computer and use it in GitHub Desktop.
Save koen-lee/a9ddf7348fd2beb91dcb1406cd628035 to your computer and use it in GitHub Desktop.
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