The Aggregator class triggers the execution of a rank aggregation algorithm on a collection (array) of InputLists. Typically, the output of the aggregation process is a single MergedList object.
Implementation files
The Aggregator class is defined in the src/Aggregator.h header file; its member functions are implemented in src/Aggregator.cpp.
Technical Details
The input_lists member stores the input lists to be aggregated. Technically, it is an array (i.e. double pointer) of InputList objects. The allocated size of this array is equal to num_alloc_lists, whereas the real number of non-null input lists is num_lists. Naturally, it must always hold that num_alloc_lists ≥ num_lists.
The rank aggregation process takes places inside a Query object. For this reason, a Query object contains a pointer to a single Aggregator object (see the block diagram).
The aggregate() member function is responsible for executing the rank aggregation procedure. It accepts an InputParams object that stores the selected rank aggregation method, the hyper-parameter values and the execution parameters and returns a single MergedList.
The following interactive block diagram depicts the functionality of the Aggregator class inside the entire architecture of FLAGR.
