1parametric 2 size :: scale_picker = 1; 3in let 4log_spiral[s,g] = make_shape { 5 dist[x,y,z,t] = 6 let r = mag[x,y]; 7 t = phase[x,y]; 8 in if (r == 0) 9 0 10 else 11 let n = (log(r/s)/g - t) / tau; 12 upper_r = s * e^(g*(t+tau*ceil n)); 13 lower_r = s * e^(g*(t+tau*floor n)); 14 in (min[abs(upper_r-r), abs(r-lower_r)] - r*abs g) 15 / 1.24; /* empirical Lipschitz compensation factor for g=.2 */ 16 is_2d = true; 17}; 18in 19log_spiral[1,0.2] 20>> scale size 21