find_distances_features.pl
Takes a cleaned set of BMR-ready feature vectors (That is, just the vectors, no comments or blank lines) and computes the dot product and Euclidean distance between each distinct pair of vectors. Output is written to a .pair_data file, and includes whether the two docs are written by the same author, their doc and author ids, and the calculated values.
This script can handle arbirarily large number of vectors, which in turn contain arbitrarily large numbers of features, memory permitting, though it is not exactly speedly on large datasets.
find_distances_class.pl
Same as above, except that it expects vectors of class probabilities (formatted like the output of the -r switch of BMRclassify) rather than feature vectors.
calculate_roc.cpp
C++ source code for a program which accepts a list of .pair_data files output from either of the above Perl scripts and returns the area under the ROC curve produced by sorting the pairs descending by dot product and ascending by Euclidean distance.
The program uses merge sort on a linked list to deal with the data, and is known to work on data sets with more than 2.7 million sets of vector pair data.