     }
   }
 
+  
+  /* --------------------------------------------------------------------------*/
+  /** 
+   * @Synopsis  Computes a reference solution for joining the left and right sets of columns
+   * 
+   * @Param print Option to print the solution for debug
+   * @Param sort Option to sort the solution. This is necessary for comparison against the gdf solution
+   * 
+   * @Returns A vector of 'result_type' where result_type is a structure with a left_index, right_index
+   * where left_columns[left_index] == right_columns[right_index]
+   */
+  /* ----------------------------------------------------------------------------*/
   std::vector<result_type> compute_reference_solution(bool print = false, bool sort = true)
   {
 

    return result;
  }

  void compute_gdf_result(std::vector<result_type> & gdf_result, bool print = false, bool sort = true)
  {


  LEFT
};

// TODO Can probably just replace this with a std::pair
// Each element of the result will be an index into the left and right columns where
// left_columns[left_index] == right_columns[right_index]
struct result_type 
