ez:=proc(): print(` N(x), RSP(n), OS1(x), ItN(x,N) , Ell(n,N), Ell3D(n,N) ` ): end: N:=proc(x) local i: sqrt(add(x[i]^2,i=1..nops(x))):end: RSP:=proc(n) local x,i,ra,x0: ra:=rand(1..10^10): x:=[seq(ra(),i=1..n)]: x0:=convert(x,`+`)/n: x:=[seq(x[i]-x0,i=1..n)]: x:=x/evalf(N(x)): end: #One step in the Van Loan operation OS1:=proc(x) local i,z: z:=[seq((x[i]+x[i+1])/2,i=1..nops(x)-1), (x[nops(x)]+x[1])/2]: z:=z/evalf(N(z)): end: ItN:=proc(x,N) local z,i: z:=x: for i from 1 to N do z:=OS1(z): od: z: end: Ell:=proc(n,N) local x,y,i: x:=RSP(n): y:=RSP(n): x:=ItN(x,N): y:=ItN(y,N): [seq([x[i],y[i]],i=1..n), [x[1],y[1]]]: end: Ell3D:=proc(n,N) local x,y,z,i: x:=RSP(n): y:=RSP(n): z:=RSP(n): x:=ItN(x,N): y:=ItN(y,N): z:=ItN(z,N): [seq([x[i],y[i],z[i]],i=1..n), [x[1],y[1],z[1]]]: end: