BEGIN { srand(); OFS=","; generate() } function generate(a,b,c,d, recall,\ bd, bdMin, bdMax, \ acc, accMin, accMax, \ prec, precMin,precMax, \ n) { bdMin = 0.03; bdMax = 0.2; accMin = 0.7; accMax = 1.0; precMin = 0.3; precMax = 0.5; while (n <= 1000 ) { a=rand(); b=rand(); c=rand(); d=rand(); bd = b + d; acc = (a+d)/(a+b+c+d); prec = d/(c+d); recall = d/(b+d); if ( bd >= bdMin && bd <= bdMax && acc >= accMin && acc <= accMax && prec >= precMin && prec <= precMax ) { n++; print prec,recall | "sort -n -t, +0"; } } }