import.stl.sort; import.stl.padding; import.stl.process_bar; var mess=func(vec) { srand(); var s=size(vec); for(var i=s-1;i>=0;i-=1) { var r=int(rand()*i); (vec[r],vec[i])=(vec[i],vec[r]); } } var project=func(n) { # get(s) :- color(_, s, _). var ts=maketimestamp(); var bar=process_bar.high_resolution_bar(40); var color=[]; setsize(color,n); var last_step=0; ts.stamp(); for(var i=0;i1/500) { last_step=i; print(" ",bar.bar((i+1)/n)~" \r"); } } print(" ",bar.bar(1)~" ",rightpad(str(ts.elapsedMSec()/1000),5)," s | "); mess(color); ts.stamp(); var cnt=0; foreach(var c;color) { var data=c[2]; cnt+=1; } println(rightpad(str(cnt),7)," in ",ts.elapsedMSec()/1000," s"); } var select=func(n) { # get(s) :- color(_, _, x), message(x, s). var ts=maketimestamp(); var bar=process_bar.high_resolution_bar(40); var color=[]; var message=[]; setsize(color,n); setsize(message,n); var last_step=0; ts.stamp(); for(var i=0;i1/500) { last_step=i; print(" ",bar.bar((i+1)/n)~" \r"); } } print(" ",bar.bar(1)~" ",rightpad(str(ts.elapsedMSec()/1000),5)," s | "); mess(color); mess(message); ts.stamp(); sort(color,func(a,b){return a[2]res) { left=mid+1; } else { right=mid-1; } } } println(rightpad(str(cnt),7)," in ",ts.elapsedMSec()/1000," s"); } println("project"); for(var i=10;i<1e6;i*=10) { project(i); } println("select"); for(var i=100;i<1e7;i*=10) { select(i); }