sclass G22FindSimilarMasksTask { // Image we are looking up settable Image2B queryImage; // optional - which primary mask holder is tasked with the search settable IG22MasksHolder mainMasksHolder; // where the found masks go (probability = similarity) settable new ProbabilisticList outList; // probabilistic stack & scheduler settable new PStack pstack; // how many full mask comparisons were made int comparisons; class FoundMask { settable IG22Mask mask; settable double similarity; settable int candidateNumber; settable long stepCount; } IProbabilisticScheduler scheduler() { ret pstack.scheduler(); } void foundMask(IG22Mask mask, double similarity) { long stepCount = scheduler().stepCount(); print("Found mask with similarity " + formatDouble3X(similarity) + " in step " + stepCount); outList.at(similarity, new FoundMask().+mask.+similarity .candidateNumber(comparisons).+stepCount); } }