[math-fun] Julian has constructed a spacefill dense with sextuple points
using a 25-way conditional. ClearAll[piecewiserecursivefractal]; piecewiserecursivefractal[x_, f_, which_, iters_, fns_] := piecewiserecursivefractal[x, g_, which, iters, fns] = ((piecewiserecursivefractal[x, h_, which, iters, fns] := Block[{y}, y /. Solve[f[y] == h[y], y]]); Union @@ ((fns[[#]] /@piecewiserecursivefractal[iters[[#]][x], Composition[f, fns[[#]]], which, iters, fns]) & /@which[x])); (I cannot praise this function enough.) In[363]:= trifil25[t_] := piecewiserecursivefractal[t, Identity, Piecewise[{{{1}, #1 == 0}, {{Ceiling[25*#1]}, Inequality[0, Less, #1, LessEqual, 1]}}, {}] & , {25*#1 + 0 & , -25*#1 + 2 & , 25*#1 - 2 & , 25*#1 - 3 & , 25*#1 - 4 & , 25*#1 - 5 & , 25*#1 - 6 & , 25*#1 - 7 & , 25*#1 - 8 & , -25*#1 + 10 & , -25*#1 + 11 & , 25*#1 - 11 & , -25*#1 + 13 & , -25*#1 + 14 & , 25*#1 - 14 & , -25*#1 + 16 & , 25*#1 - 16 & , -25*#1 + 18 & , 25*#1 - 18 & , 25*#1 - 19 & , -25*#1 + 21 & , -25*#1 + 22 & , 25*#1 - 22 & , -25*#1 + 24 & , 25*#1 - 24 & }, {#1/5 & , (1/10)*(3 + I*Sqrt[3] + (-1 - I*Sqrt[3])* #1) & , (1/10)*(3 + I*Sqrt[3] + #1 - I*Sqrt[3]*#1) & , (2 + #1)/5 & , (1/10)*(6 + #1 + I*Sqrt[3]*#1) & , (1/10)*(7 + I*Sqrt[3] + I*(I + Sqrt[3])*#1) & , (1/5)*(3 + I*Sqrt[3] - #1) & , (1/10)*(4 + 2*I*Sqrt[3] + (-1 - I*Sqrt[3])*#1) & , (1/10)*(3 + I*Sqrt[3] - 2*#1) & , (-(1/10))*I*(-I + Sqrt[3])*(-2 + #1) & , (1/5)*(2 + I*Sqrt[3] - #1) & , (1/5)*(2 + I*Sqrt[3] + #1) & , (1/10)*(5 + 3*I*Sqrt[3] + #1 - I*Sqrt[3]*#1) & , (1/10)*(4 + 2*I*Sqrt[3] + #1 + I*Sqrt[3]*#1) & , (1/10)*(4 + 2*I*Sqrt[3] + I*(I + Sqrt[3])*#1) & , (-(1/10))*I*(-I + Sqrt[3])*(-4 + #1) & , (1/5)*(2 + 2*I*Sqrt[3] + #1) & , (1/10)*(5 + 3*I*Sqrt[3] + #1 + I*Sqrt[3]*#1) & , (1/10)*(5 + 3*I*Sqrt[3] + 2*#1) & , (1/10)*(7 + 3*I*Sqrt[3] + (-1 - I*Sqrt[3])*#1) & , (1/5)*(4 + I*Sqrt[3] - #1) & , (1/10)*(9 + I*Sqrt[3] + I*(I + Sqrt[3])*#1) & , (1/10)*(9 + I*Sqrt[3] - 2*#1) & , (1/10)*(8 + I*(I + Sqrt[3])*#1) & , (4 + #1)/5 & }][[1]] E.g., In[361]:= trifil25[2/25 + 2/75] // ComplexExpand Out[361]= {1/2 + (I Sqrt[3])/10} In[367]:= Graphics[{Hue@#, Line[ReIm@{trifil25@#, trifil25[# + 5^-5]}]} & /@ Range[0, 1 - 5^-5, 5^-5]] gosper.org/trifil25.png (Those little white hexagons are sextuple points.) The inverse fractal, constructed more or less automatically: In[380]:= untrifil25[t_] := piecewiserecursivefractal[t, Identity, If[0 <= Re[#1] <= 1 && 0 <= Im[#1] <= Sqrt[3]/2, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25}, {}] &, {ComplexExpand[5 #1] &, ComplexExpand[1/4 (6 - 2 I Sqrt[3] - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (-4 I Sqrt[3] + 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[-2 + 5 #1] &, ComplexExpand[1/4 (-6 + 6 I Sqrt[3] + 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (4 + 8 I Sqrt[3] - 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[3 + I Sqrt[3] - 5 #1] &, ComplexExpand[1/4 (10 - 2 I Sqrt[3] - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[1/2 (3 + I Sqrt[3] - 10 #1)] &, ComplexExpand[1/4 (8 - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[2 + I Sqrt[3] - 5 #1] &, ComplexExpand[-2 - I Sqrt[3] + 5 #1] &, ComplexExpand[1/4 (4 - 8 I Sqrt[3] + 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (-10 + 2 I Sqrt[3] + 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (-2 + 6 I Sqrt[3] - 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (16 - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[-2 - 2 I Sqrt[3] + 5 #1] &, ComplexExpand[1/4 (-14 + 2 I Sqrt[3] + 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/2 (-3 I Sqrt[3] + 5 (-1 + 2 #1))] &, ComplexExpand[1/4 (16 - 4 I Sqrt[3] - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[4 + I Sqrt[3] - 5 #1] &, ComplexExpand[1/4 (6 + 10 I Sqrt[3] - 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/2 (9 + I Sqrt[3] - 10 #1)] &, ComplexExpand[1/4 (8 + 8 I Sqrt[3] - 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[-4 + 5 #1] &}, {#1/25 &, (2 - #1)/25 &, (2 + #1)/ 25 &, (3 + #1)/25 &, (4 + #1)/25 &, (5 + #1)/25 &, (6 + #1)/ 25 &, (7 + #1)/25 &, (8 + #1)/25 &, (10 - #1)/25 &, (11 - #1)/ 25 &, (11 + #1)/25 &, (13 - #1)/25 &, (14 - #1)/25 &, (14 + #1)/ 25 &, (16 - #1)/25 &, (16 + #1)/25 &, (18 - #1)/25 &, (18 + #1)/ 25 &, (19 + #1)/25 &, (21 - #1)/25 &, (22 - #1)/25 &, (22 + #1)/ 25 &, (24 - #1)/25 &, (24 + #1)/25 &}] Here it finds the preimages of the simplest sextuple point: In[381]:= untrifil25[1/2 + I Sqrt[3]/10] Out[381]= {8/75, 11/75, 14/75, 17/75, 4/15, 23/75} --rwg
For similar curves (that exist for orders that are odd squares) on the (3.6.3.6)-grid see http://jjj.de/3frac/p6/all-r25-b-curve-decompositions.pdf (last two pages) and http://jjj.de/3frac/p6/all-r25-b-tiles.pdf (last four pages). Sextuple and triple points are easy to see in these. I cannot decode the Mathca, does you curve live on the (3.6.3.6)-grid as well (morally it should)? Best regards, jj * Bill Gosper <billgosper@gmail.com> [Aug 22. 2016 08:17]:
using a 25-way conditional. ClearAll[piecewiserecursivefractal]; piecewiserecursivefractal[x_, f_, which_, iters_, fns_] := piecewiserecursivefractal[x, g_, which, iters, fns] = ((piecewiserecursivefractal[x, h_, which, iters, fns] := Block[{y}, y /. Solve[f[y] == h[y], y]]); Union @@ ((fns[[#]] /@piecewiserecursivefractal[iters[[#]][x], Composition[f, fns[[#]]], which, iters, fns]) & /@which[x]));
(I cannot praise this function enough.)
In[363]:= trifil25[t_] := piecewiserecursivefractal[t, Identity, Piecewise[{{{1}, #1 == 0}, {{Ceiling[25*#1]}, Inequality[0, Less, #1, LessEqual, 1]}}, {}] & , {25*#1 + 0 & , -25*#1 + 2 & , 25*#1 - 2 & , 25*#1 - 3 & , 25*#1 - 4 & , 25*#1 - 5 & , 25*#1 - 6 & , 25*#1 - 7 & , 25*#1 - 8 & , -25*#1 + 10 & , -25*#1 + 11 & , 25*#1 - 11 & , -25*#1 + 13 & , -25*#1 + 14 & , 25*#1 - 14 & , -25*#1 + 16 & , 25*#1 - 16 & , -25*#1 + 18 & , 25*#1 - 18 & , 25*#1 - 19 & , -25*#1 + 21 & , -25*#1 + 22 & , 25*#1 - 22 & , -25*#1 + 24 & , 25*#1 - 24 & }, {#1/5 & , (1/10)*(3 + I*Sqrt[3] + (-1 - I*Sqrt[3])* #1) & , (1/10)*(3 + I*Sqrt[3] + #1 - I*Sqrt[3]*#1) & , (2 + #1)/5 & , (1/10)*(6 + #1 + I*Sqrt[3]*#1) & , (1/10)*(7 + I*Sqrt[3] + I*(I + Sqrt[3])*#1) & , (1/5)*(3 + I*Sqrt[3] - #1) & , (1/10)*(4 + 2*I*Sqrt[3] + (-1 - I*Sqrt[3])*#1) & , (1/10)*(3 + I*Sqrt[3] - 2*#1) & , (-(1/10))*I*(-I + Sqrt[3])*(-2 + #1) & , (1/5)*(2 + I*Sqrt[3] - #1) & , (1/5)*(2 + I*Sqrt[3] + #1) & , (1/10)*(5 + 3*I*Sqrt[3] + #1 - I*Sqrt[3]*#1) & , (1/10)*(4 + 2*I*Sqrt[3] + #1 + I*Sqrt[3]*#1) & , (1/10)*(4 + 2*I*Sqrt[3] + I*(I + Sqrt[3])*#1) & , (-(1/10))*I*(-I + Sqrt[3])*(-4 + #1) & , (1/5)*(2 + 2*I*Sqrt[3] + #1) & , (1/10)*(5 + 3*I*Sqrt[3] + #1 + I*Sqrt[3]*#1) & , (1/10)*(5 + 3*I*Sqrt[3] + 2*#1) & , (1/10)*(7 + 3*I*Sqrt[3] + (-1 - I*Sqrt[3])*#1) & , (1/5)*(4 + I*Sqrt[3] - #1) & , (1/10)*(9 + I*Sqrt[3] + I*(I + Sqrt[3])*#1) & , (1/10)*(9 + I*Sqrt[3] - 2*#1) & , (1/10)*(8 + I*(I + Sqrt[3])*#1) & , (4 + #1)/5 & }][[1]] E.g., In[361]:= trifil25[2/25 + 2/75] // ComplexExpand
Out[361]= {1/2 + (I Sqrt[3])/10}
In[367]:= Graphics[{Hue@#, Line[ReIm@{trifil25@#, trifil25[# + 5^-5]}]} & /@ Range[0, 1 - 5^-5, 5^-5]] gosper.org/trifil25.png (Those little white hexagons are sextuple points.)
The inverse fractal, constructed more or less automatically: In[380]:= untrifil25[t_] := piecewiserecursivefractal[t, Identity, If[0 <= Re[#1] <= 1 && 0 <= Im[#1] <= Sqrt[3]/2, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25}, {}] &, {ComplexExpand[5 #1] &, ComplexExpand[1/4 (6 - 2 I Sqrt[3] - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (-4 I Sqrt[3] + 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[-2 + 5 #1] &, ComplexExpand[1/4 (-6 + 6 I Sqrt[3] + 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (4 + 8 I Sqrt[3] - 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[3 + I Sqrt[3] - 5 #1] &, ComplexExpand[1/4 (10 - 2 I Sqrt[3] - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[1/2 (3 + I Sqrt[3] - 10 #1)] &, ComplexExpand[1/4 (8 - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[2 + I Sqrt[3] - 5 #1] &, ComplexExpand[-2 - I Sqrt[3] + 5 #1] &, ComplexExpand[1/4 (4 - 8 I Sqrt[3] + 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (-10 + 2 I Sqrt[3] + 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (-2 + 6 I Sqrt[3] - 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (16 - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[-2 - 2 I Sqrt[3] + 5 #1] &, ComplexExpand[1/4 (-14 + 2 I Sqrt[3] + 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/2 (-3 I Sqrt[3] + 5 (-1 + 2 #1))] &, ComplexExpand[1/4 (16 - 4 I Sqrt[3] - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[4 + I Sqrt[3] - 5 #1] &, ComplexExpand[1/4 (6 + 10 I Sqrt[3] - 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/2 (9 + I Sqrt[3] - 10 #1)] &, ComplexExpand[1/4 (8 + 8 I Sqrt[3] - 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[-4 + 5 #1] &}, {#1/25 &, (2 - #1)/25 &, (2 + #1)/ 25 &, (3 + #1)/25 &, (4 + #1)/25 &, (5 + #1)/25 &, (6 + #1)/ 25 &, (7 + #1)/25 &, (8 + #1)/25 &, (10 - #1)/25 &, (11 - #1)/ 25 &, (11 + #1)/25 &, (13 - #1)/25 &, (14 - #1)/25 &, (14 + #1)/ 25 &, (16 - #1)/25 &, (16 + #1)/25 &, (18 - #1)/25 &, (18 + #1)/ 25 &, (19 + #1)/25 &, (21 - #1)/25 &, (22 - #1)/25 &, (22 + #1)/ 25 &, (24 - #1)/25 &, (24 + #1)/25 &}]
Here it finds the preimages of the simplest sextuple point:
In[381]:= untrifil25[1/2 + I Sqrt[3]/10]
Out[381]= {8/75, 11/75, 14/75, 17/75, 4/15, 23/75} --rwg _______________________________________________ math-fun mailing list math-fun@mailman.xmission.com https://mailman.xmission.com/cgi-bin/mailman/listinfo/math-fun
Mulling over what it might mean to say that a spacefilling curve lives on a grid, I came up with a nonstandard topology to put on R^2. The basic open sets are open line segments. This is a finer topology than the standard one. What mappings from [0,1] into R^2 are continuous in this topology? Piecewise-polygonal ones; what else? Does this topology have any uses? But this doesn't address the question that started me down this line of thought, namely: what might it mean to say that a spacefilling curve lives on a grid, or prefers certain directions? The approximating polygonal curves may use only certain directions, but how does this property manifest itself with regard to the limit-object? Jim Propp On Mon, Aug 22, 2016 at 3:26 AM, Joerg Arndt <arndt@jjj.de> wrote:
For similar curves (that exist for orders that are odd squares) on the (3.6.3.6)-grid see http://jjj.de/3frac/p6/all-r25-b-curve-decompositions.pdf (last two pages) and http://jjj.de/3frac/p6/all-r25-b-tiles.pdf (last four pages).
Sextuple and triple points are easy to see in these.
I cannot decode the Mathca, does you curve live on the (3.6.3.6)-grid as well (morally it should)?
Best regards, jj
* Bill Gosper <billgosper@gmail.com> [Aug 22. 2016 08:17]:
using a 25-way conditional. ClearAll[piecewiserecursivefractal]; piecewiserecursivefractal[x_, f_, which_, iters_, fns_] := piecewiserecursivefractal[x, g_, which, iters, fns] = ((piecewiserecursivefractal[x, h_, which, iters, fns] := Block[{y}, y /. Solve[f[y] == h[y], y]]); Union @@ ((fns[[#]] /@piecewiserecursivefractal[iters[[#]][x], Composition[f, fns[[#]]], which, iters, fns]) & /@which[x]));
(I cannot praise this function enough.)
In[363]:= trifil25[t_] := piecewiserecursivefractal[t, Identity, Piecewise[{{{1}, #1 == 0}, {{Ceiling[25*#1]}, Inequality[0, Less, #1, LessEqual, 1]}}, {}] & , {25*#1 + 0 & , -25*#1 + 2 & , 25*#1 - 2 & , 25*#1 - 3 & , 25*#1 - 4 & , 25*#1 - 5 & , 25*#1 - 6 & , 25*#1 - 7 & , 25*#1 - 8 & , -25*#1 + 10 & , -25*#1 + 11 & , 25*#1 - 11 & , -25*#1 + 13 & , -25*#1 + 14 & , 25*#1 - 14 & , -25*#1 + 16 & , 25*#1 - 16 & , -25*#1 + 18 & , 25*#1 - 18 & , 25*#1 - 19 & , -25*#1 + 21 & , -25*#1 + 22 & , 25*#1 - 22 & , -25*#1 + 24 & , 25*#1 - 24 & }, {#1/5 & , (1/10)*(3 + I*Sqrt[3] + (-1 - I*Sqrt[3])* #1) & , (1/10)*(3 + I*Sqrt[3] + #1 - I*Sqrt[3]*#1) & , (2 + #1)/5 & , (1/10)*(6 + #1 + I*Sqrt[3]*#1) & , (1/10)*(7 + I*Sqrt[3] + I*(I + Sqrt[3])*#1) & , (1/5)*(3 + I*Sqrt[3] - #1) & , (1/10)*(4 + 2*I*Sqrt[3] + (-1 - I*Sqrt[3])*#1) & , (1/10)*(3 + I*Sqrt[3] - 2*#1) & , (-(1/10))*I*(-I + Sqrt[3])*(-2 + #1) & , (1/5)*(2 + I*Sqrt[3] - #1) & , (1/5)*(2 + I*Sqrt[3] + #1) & , (1/10)*(5 + 3*I*Sqrt[3] + #1 - I*Sqrt[3]*#1) & , (1/10)*(4 + 2*I*Sqrt[3] + #1 + I*Sqrt[3]*#1) & , (1/10)*(4 + 2*I*Sqrt[3] + I*(I + Sqrt[3])*#1) & , (-(1/10))*I*(-I + Sqrt[3])*(-4 + #1) & , (1/5)*(2 + 2*I*Sqrt[3] + #1) & , (1/10)*(5 + 3*I*Sqrt[3] + #1 + I*Sqrt[3]*#1) & , (1/10)*(5 + 3*I*Sqrt[3] + 2*#1) & , (1/10)*(7 + 3*I*Sqrt[3] + (-1 - I*Sqrt[3])*#1) & , (1/5)*(4 + I*Sqrt[3] - #1) & , (1/10)*(9 + I*Sqrt[3] + I*(I + Sqrt[3])*#1) & , (1/10)*(9 + I*Sqrt[3] - 2*#1) & , (1/10)*(8 + I*(I + Sqrt[3])*#1) & , (4 + #1)/5 & }][[1]] E.g., In[361]:= trifil25[2/25 + 2/75] // ComplexExpand
Out[361]= {1/2 + (I Sqrt[3])/10}
In[367]:= Graphics[{Hue@#, Line[ReIm@{trifil25@#, trifil25[# + 5^-5]}]} & /@ Range[0, 1 - 5^-5, 5^-5]] gosper.org/trifil25.png (Those little white hexagons are sextuple points.)
The inverse fractal, constructed more or less automatically: In[380]:= untrifil25[t_] := piecewiserecursivefractal[t, Identity, If[0 <= Re[#1] <= 1 && 0 <= Im[#1] <= Sqrt[3]/2, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25}, {}] &, {ComplexExpand[5 #1] &, ComplexExpand[1/4 (6 - 2 I Sqrt[3] - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (-4 I Sqrt[3] + 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[-2 + 5 #1] &, ComplexExpand[1/4 (-6 + 6 I Sqrt[3] + 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (4 + 8 I Sqrt[3] - 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[3 + I Sqrt[3] - 5 #1] &, ComplexExpand[1/4 (10 - 2 I Sqrt[3] - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[1/2 (3 + I Sqrt[3] - 10 #1)] &, ComplexExpand[1/4 (8 - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[2 + I Sqrt[3] - 5 #1] &, ComplexExpand[-2 - I Sqrt[3] + 5 #1] &, ComplexExpand[1/4 (4 - 8 I Sqrt[3] + 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (-10 + 2 I Sqrt[3] + 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (-2 + 6 I Sqrt[3] - 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (16 - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[-2 - 2 I Sqrt[3] + 5 #1] &, ComplexExpand[1/4 (-14 + 2 I Sqrt[3] + 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/2 (-3 I Sqrt[3] + 5 (-1 + 2 #1))] &, ComplexExpand[1/4 (16 - 4 I Sqrt[3] - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[4 + I Sqrt[3] - 5 #1] &, ComplexExpand[1/4 (6 + 10 I Sqrt[3] - 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/2 (9 + I Sqrt[3] - 10 #1)] &, ComplexExpand[1/4 (8 + 8 I Sqrt[3] - 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[-4 + 5 #1] &}, {#1/25 &, (2 - #1)/25 &, (2 + #1)/ 25 &, (3 + #1)/25 &, (4 + #1)/25 &, (5 + #1)/25 &, (6 + #1)/ 25 &, (7 + #1)/25 &, (8 + #1)/25 &, (10 - #1)/25 &, (11 - #1)/ 25 &, (11 + #1)/25 &, (13 - #1)/25 &, (14 - #1)/25 &, (14 + #1)/ 25 &, (16 - #1)/25 &, (16 + #1)/25 &, (18 - #1)/25 &, (18 + #1)/ 25 &, (19 + #1)/25 &, (21 - #1)/25 &, (22 - #1)/25 &, (22 + #1)/ 25 &, (24 - #1)/25 &, (24 + #1)/25 &}]
Here it finds the preimages of the simplest sextuple point:
In[381]:= untrifil25[1/2 + I Sqrt[3]/10]
Out[381]= {8/75, 11/75, 14/75, 17/75, 4/15, 23/75} --rwg _______________________________________________ math-fun mailing list math-fun@mailman.xmission.com https://mailman.xmission.com/cgi-bin/mailman/listinfo/math-fun
_______________________________________________ math-fun mailing list math-fun@mailman.xmission.com https://mailman.xmission.com/cgi-bin/mailman/listinfo/math-fun
I misunderstood what game you all were playing, so my question was a bit off base. Joerg and Bill et al. are looking at ways to fill all of a discrete plane; I was thinking more about Peano curves and the like, which fill a finite portion of a continuous plane. Jim On Monday, August 22, 2016, James Propp <jamespropp@gmail.com> wrote:
Mulling over what it might mean to say that a spacefilling curve lives on a grid, I came up with a nonstandard topology to put on R^2.
The basic open sets are open line segments. This is a finer topology than the standard one. What mappings from [0,1] into R^2 are continuous in this topology? Piecewise-polygonal ones; what else? Does this topology have any uses?
But this doesn't address the question that started me down this line of thought, namely: what might it mean to say that a spacefilling curve lives on a grid, or prefers certain directions? The approximating polygonal curves may use only certain directions, but how does this property manifest itself with regard to the limit-object?
Jim Propp
On Mon, Aug 22, 2016 at 3:26 AM, Joerg Arndt <arndt@jjj.de <javascript:_e(%7B%7D,'cvml','arndt@jjj.de');>> wrote:
For similar curves (that exist for orders that are odd squares) on the (3.6.3.6)-grid see http://jjj.de/3frac/p6/all-r25-b-curve-decompositions.pdf (last two pages) and http://jjj.de/3frac/p6/all-r25-b-tiles.pdf (last four pages).
Sextuple and triple points are easy to see in these.
I cannot decode the Mathca, does you curve live on the (3.6.3.6)-grid as well (morally it should)?
Best regards, jj
* Bill Gosper <billgosper@gmail.com <javascript:_e(%7B%7D,'cvml','billgosper@gmail.com');>> [Aug 22. 2016 08:17]:
using a 25-way conditional. ClearAll[piecewiserecursivefractal]; piecewiserecursivefractal[x_, f_, which_, iters_, fns_] := piecewiserecursivefractal[x, g_, which, iters, fns] = ((piecewiserecursivefractal[x, h_, which, iters, fns] := Block[{y}, y /. Solve[f[y] == h[y], y]]); Union @@ ((fns[[#]] /@piecewiserecursivefractal[iters[[#]][x], Composition[f, fns[[#]]], which, iters, fns]) & /@which[x]));
(I cannot praise this function enough.)
In[363]:= trifil25[t_] := piecewiserecursivefractal[t, Identity, Piecewise[{{{1}, #1 == 0}, {{Ceiling[25*#1]}, Inequality[0, Less, #1, LessEqual, 1]}}, {}] & , {25*#1 + 0 & , -25*#1 + 2 & , 25*#1 - 2 & , 25*#1 - 3 & , 25*#1 - 4 & , 25*#1 - 5 & , 25*#1 - 6 & , 25*#1 - 7 & , 25*#1 - 8 & , -25*#1 + 10 & , -25*#1 + 11 & , 25*#1 - 11 & , -25*#1 + 13 & , -25*#1 + 14 & , 25*#1 - 14 & , -25*#1 + 16 & , 25*#1 - 16 & , -25*#1 + 18 & , 25*#1 - 18 & , 25*#1 - 19 & , -25*#1 + 21 & , -25*#1 + 22 & , 25*#1 - 22 & , -25*#1 + 24 & , 25*#1 - 24 & }, {#1/5 & , (1/10)*(3 + I*Sqrt[3] + (-1 - I*Sqrt[3])* #1) & , (1/10)*(3 + I*Sqrt[3] + #1 - I*Sqrt[3]*#1) & , (2 + #1)/5 & , (1/10)*(6 + #1 + I*Sqrt[3]*#1) & , (1/10)*(7 + I*Sqrt[3] + I*(I + Sqrt[3])*#1) & , (1/5)*(3 + I*Sqrt[3] - #1) & , (1/10)*(4 + 2*I*Sqrt[3] + (-1 - I*Sqrt[3])*#1) & , (1/10)*(3 + I*Sqrt[3] - 2*#1) & , (-(1/10))*I*(-I + Sqrt[3])*(-2 + #1) & , (1/5)*(2 + I*Sqrt[3] - #1) & , (1/5)*(2 + I*Sqrt[3] + #1) & , (1/10)*(5 + 3*I*Sqrt[3] + #1 - I*Sqrt[3]*#1) & , (1/10)*(4 + 2*I*Sqrt[3] + #1 + I*Sqrt[3]*#1) & , (1/10)*(4 + 2*I*Sqrt[3] + I*(I + Sqrt[3])*#1) & , (-(1/10))*I*(-I + Sqrt[3])*(-4 + #1) & , (1/5)*(2 + 2*I*Sqrt[3] + #1) & , (1/10)*(5 + 3*I*Sqrt[3] + #1 + I*Sqrt[3]*#1) & , (1/10)*(5 + 3*I*Sqrt[3] + 2*#1) & , (1/10)*(7 + 3*I*Sqrt[3] + (-1 - I*Sqrt[3])*#1) & , (1/5)*(4 + I*Sqrt[3] - #1) & , (1/10)*(9 + I*Sqrt[3] + I*(I + Sqrt[3])*#1) & , (1/10)*(9 + I*Sqrt[3] - 2*#1) & , (1/10)*(8 + I*(I + Sqrt[3])*#1) & , (4 + #1)/5 & }][[1]] E.g., In[361]:= trifil25[2/25 + 2/75] // ComplexExpand
Out[361]= {1/2 + (I Sqrt[3])/10}
In[367]:= Graphics[{Hue@#, Line[ReIm@{trifil25@#, trifil25[# + 5^-5]}]} & /@ Range[0, 1 - 5^-5, 5^-5]] gosper.org/trifil25.png (Those little white hexagons are sextuple points.)
The inverse fractal, constructed more or less automatically: In[380]:= untrifil25[t_] := piecewiserecursivefractal[t, Identity, If[0 <= Re[#1] <= 1 && 0 <= Im[#1] <= Sqrt[3]/2, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25}, {}] &, {ComplexExpand[5 #1] &, ComplexExpand[1/4 (6 - 2 I Sqrt[3] - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (-4 I Sqrt[3] + 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[-2 + 5 #1] &, ComplexExpand[1/4 (-6 + 6 I Sqrt[3] + 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (4 + 8 I Sqrt[3] - 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[3 + I Sqrt[3] - 5 #1] &, ComplexExpand[1/4 (10 - 2 I Sqrt[3] - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[1/2 (3 + I Sqrt[3] - 10 #1)] &, ComplexExpand[1/4 (8 - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[2 + I Sqrt[3] - 5 #1] &, ComplexExpand[-2 - I Sqrt[3] + 5 #1] &, ComplexExpand[1/4 (4 - 8 I Sqrt[3] + 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (-10 + 2 I Sqrt[3] + 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (-2 + 6 I Sqrt[3] - 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (16 - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[-2 - 2 I Sqrt[3] + 5 #1] &, ComplexExpand[1/4 (-14 + 2 I Sqrt[3] + 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/2 (-3 I Sqrt[3] + 5 (-1 + 2 #1))] &, ComplexExpand[1/4 (16 - 4 I Sqrt[3] - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[4 + I Sqrt[3] - 5 #1] &, ComplexExpand[1/4 (6 + 10 I Sqrt[3] - 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/2 (9 + I Sqrt[3] - 10 #1)] &, ComplexExpand[1/4 (8 + 8 I Sqrt[3] - 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[-4 + 5 #1] &}, {#1/25 &, (2 - #1)/25 &, (2 + #1)/ 25 &, (3 + #1)/25 &, (4 + #1)/25 &, (5 + #1)/25 &, (6 + #1)/ 25 &, (7 + #1)/25 &, (8 + #1)/25 &, (10 - #1)/25 &, (11 - #1)/ 25 &, (11 + #1)/25 &, (13 - #1)/25 &, (14 - #1)/25 &, (14 + #1)/ 25 &, (16 - #1)/25 &, (16 + #1)/25 &, (18 - #1)/25 &, (18 + #1)/ 25 &, (19 + #1)/25 &, (21 - #1)/25 &, (22 - #1)/25 &, (22 + #1)/ 25 &, (24 - #1)/25 &, (24 + #1)/25 &}]
Here it finds the preimages of the simplest sextuple point:
In[381]:= untrifil25[1/2 + I Sqrt[3]/10]
Out[381]= {8/75, 11/75, 14/75, 17/75, 4/15, 23/75} --rwg _______________________________________________ math-fun mailing list math-fun@mailman.xmission.com <javascript:_e(%7B%7D,'cvml','math-fun@mailman.xmission.com');> https://mailman.xmission.com/cgi-bin/mailman/listinfo/math-fun
_______________________________________________ math-fun mailing list math-fun@mailman.xmission.com <javascript:_e(%7B%7D,'cvml','math-fun@mailman.xmission.com');> https://mailman.xmission.com/cgi-bin/mailman/listinfo/math-fun
Both are (as far as I see) two ways to look at any such curve: When you fix the grid the curve will fill arbitrarily large portions of the grid. When you fix the distance between start and end points then the curve fills some part of R^2. Best regards, jj * James Propp <jamespropp@gmail.com> [Aug 23. 2016 08:22]:
I misunderstood what game you all were playing, so my question was a bit off base.
Joerg and Bill et al. are looking at ways to fill all of a discrete plane; I was thinking more about Peano curves and the like, which fill a finite portion of a continuous plane.
Jim
[...]
Of perhaps only anatomical interest, here is Julian's Fourierization <http://gosper.org/trifou25.png>. --rwg On Sun, Aug 21, 2016 at 6:05 PM, Bill Gosper <billgosper@gmail.com> wrote:
using a 25-way conditional. ClearAll[piecewiserecursivefractal]; piecewiserecursivefractal[x_, f_, which_, iters_, fns_] := piecewiserecursivefractal[x, g_, which, iters, fns] = ((piecewiserecursivefractal[x, h_, which, iters, fns] := Block[{y}, y /. Solve[f[y] == h[y], y]]); Union @@ ((fns[[#]] /@piecewiserecursivefractal[iters[[#]][x], Composition[f, fns[[#]]], which, iters, fns]) & /@which[x]));
(I cannot praise this function enough.)
In[363]:= trifil25[t_] := piecewiserecursivefractal[t, Identity, Piecewise[{{{1}, #1 == 0}, {{Ceiling[25*#1]}, Inequality[0, Less, #1, LessEqual, 1]}}, {}] & , {25*#1 + 0 & , -25*#1 + 2 & , 25*#1 - 2 & , 25*#1 - 3 & , 25*#1 - 4 & , 25*#1 - 5 & , 25*#1 - 6 & , 25*#1 - 7 & , 25*#1 - 8 & , -25*#1 + 10 & , -25*#1 + 11 & , 25*#1 - 11 & , -25*#1 + 13 & , -25*#1 + 14 & , 25*#1 - 14 & , -25*#1 + 16 & , 25*#1 - 16 & , -25*#1 + 18 & , 25*#1 - 18 & , 25*#1 - 19 & , -25*#1 + 21 & , -25*#1 + 22 & , 25*#1 - 22 & , -25*#1 + 24 & , 25*#1 - 24 & }, {#1/5 & , (1/10)*(3 + I*Sqrt[3] + (-1 - I*Sqrt[3])* #1) & , (1/10)*(3 + I*Sqrt[3] + #1 - I*Sqrt[3]*#1) & , (2 + #1)/5 & , (1/10)*(6 + #1 + I*Sqrt[3]*#1) & , (1/10)*(7 + I*Sqrt[3] + I*(I + Sqrt[3])*#1) & , (1/5)*(3 + I*Sqrt[3] - #1) & , (1/10)*(4 + 2*I*Sqrt[3] + (-1 - I*Sqrt[3])*#1) & , (1/10)*(3 + I*Sqrt[3] - 2*#1) & , (-(1/10))*I*(-I + Sqrt[3])*(-2 + #1) & , (1/5)*(2 + I*Sqrt[3] - #1) & , (1/5)*(2 + I*Sqrt[3] + #1) & , (1/10)*(5 + 3*I*Sqrt[3] + #1 - I*Sqrt[3]*#1) & , (1/10)*(4 + 2*I*Sqrt[3] + #1 + I*Sqrt[3]*#1) & , (1/10)*(4 + 2*I*Sqrt[3] + I*(I + Sqrt[3])*#1) & , (-(1/10))*I*(-I + Sqrt[3])*(-4 + #1) & , (1/5)*(2 + 2*I*Sqrt[3] + #1) & , (1/10)*(5 + 3*I*Sqrt[3] + #1 + I*Sqrt[3]*#1) & , (1/10)*(5 + 3*I*Sqrt[3] + 2*#1) & , (1/10)*(7 + 3*I*Sqrt[3] + (-1 - I*Sqrt[3])*#1) & , (1/5)*(4 + I*Sqrt[3] - #1) & , (1/10)*(9 + I*Sqrt[3] + I*(I + Sqrt[3])*#1) & , (1/10)*(9 + I*Sqrt[3] - 2*#1) & , (1/10)*(8 + I*(I + Sqrt[3])*#1) & , (4 + #1)/5 & }][[1]] E.g., In[361]:= trifil25[2/25 + 2/75] // ComplexExpand
Out[361]= {1/2 + (I Sqrt[3])/10}
In[367]:= Graphics[{Hue@#, Line[ReIm@{trifil25@#, trifil25[# + 5^-5]}]} & /@ Range[0, 1 - 5^-5, 5^-5]] gosper.org/trifil25.png (Those little white hexagons are sextuple points.)
The inverse fractal, constructed more or less automatically: In[380]:= untrifil25[t_] := piecewiserecursivefractal[t, Identity, If[0 <= Re[#1] <= 1 && 0 <= Im[#1] <= Sqrt[3]/2, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25}, {}] &, {ComplexExpand[5 #1] &, ComplexExpand[1/4 (6 - 2 I Sqrt[3] - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (-4 I Sqrt[3] + 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[-2 + 5 #1] &, ComplexExpand[1/4 (-6 + 6 I Sqrt[3] + 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (4 + 8 I Sqrt[3] - 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[3 + I Sqrt[3] - 5 #1] &, ComplexExpand[1/4 (10 - 2 I Sqrt[3] - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[1/2 (3 + I Sqrt[3] - 10 #1)] &, ComplexExpand[1/4 (8 - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[2 + I Sqrt[3] - 5 #1] &, ComplexExpand[-2 - I Sqrt[3] + 5 #1] &, ComplexExpand[1/4 (4 - 8 I Sqrt[3] + 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (-10 + 2 I Sqrt[3] + 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (-2 + 6 I Sqrt[3] - 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/4 (16 - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[-2 - 2 I Sqrt[3] + 5 #1] &, ComplexExpand[1/4 (-14 + 2 I Sqrt[3] + 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/2 (-3 I Sqrt[3] + 5 (-1 + 2 #1))] &, ComplexExpand[1/4 (16 - 4 I Sqrt[3] - 10 #1 + 10 I Sqrt[3] #1)] &, ComplexExpand[4 + I Sqrt[3] - 5 #1] &, ComplexExpand[1/4 (6 + 10 I Sqrt[3] - 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[1/2 (9 + I Sqrt[3] - 10 #1)] &, ComplexExpand[1/4 (8 + 8 I Sqrt[3] - 10 #1 - 10 I Sqrt[3] #1)] &, ComplexExpand[-4 + 5 #1] &}, {#1/25 &, (2 - #1)/25 &, (2 + #1)/ 25 &, (3 + #1)/25 &, (4 + #1)/25 &, (5 + #1)/25 &, (6 + #1)/ 25 &, (7 + #1)/25 &, (8 + #1)/25 &, (10 - #1)/25 &, (11 - #1)/ 25 &, (11 + #1)/25 &, (13 - #1)/25 &, (14 - #1)/25 &, (14 + #1)/ 25 &, (16 - #1)/25 &, (16 + #1)/25 &, (18 - #1)/25 &, (18 + #1)/ 25 &, (19 + #1)/25 &, (21 - #1)/25 &, (22 - #1)/25 &, (22 + #1)/ 25 &, (24 - #1)/25 &, (24 + #1)/25 &}]
Here it finds the preimages of the simplest sextuple point:
In[381]:= untrifil25[1/2 + I Sqrt[3]/10]
Out[381]= {8/75, 11/75, 14/75, 17/75, 4/15, 23/75} --rwg
participants (3)
-
Bill Gosper -
James Propp -
Joerg Arndt