class pt {double x,y,z} flow distance(double dx,dy,dz) into double distance { distance = sqrt(dx*dx + dy*dy + dz*dz); } flow normalize(array of pt a) into array of pt normalized { normalized = (); for (i in 0 til a.size) { pt p = a[i]; double len = distance(p.x,p.y,p.z); pt norm; if (len > 0) { double scale = 1/len; norm = (p.x*scale, p.y*scale, p.z*scale); } else norm = (0,0,0); normalized.append(norm); } } to makeRandomArrayOfPt(int size) into array of pt array { array[size] of pt a; for (i in 0 til size) { double scale = random()*10; a[i] = (scale*random(), scale*random(), scale*random()); } array = a; } to makeRandomArrayArray(int size) into array of array of pt aa { aa = (); for (i in 0 til size) aa.append(makeRandomArrayOfPt(random()*1000)); } array of array of pt aa = makeRandomArrayArray(100); for (i in 0 til 10) { para(a in aa) do // for (a in aa) { array of pt norm = normalize(a); } } print("Looks ok");