function m = display_cost( impl_name, rec_list )

  if nargin < 2
    error( [ mfilename ' needs 2 input arguments.' ] );
  end

  disp( [ '  &  \multicolumn{2}{c|}{' impl_name '} \\' ] );

  if ismember( impl_name, { 'FULL', 'FAST' } )
    disp( 'Recording & input & SCG  & Total \\' );
  elseif ismember( impl_name, { 'FASTTDE' } )
    disp( 'Recording & input & TDE  & Total \\' );
  else
    disp( 'Recording & input & ?  & Total cputime \\' );
  end

  m = [];

  for a = 1:numel( rec_list )
    
    stat_rt_factor = [ NaN NaN ];
    stat_filename = fullfile( 'DATA', [ impl_name '_detect_locate_wrapper-' rec_list{ a } '-result.mat' ] );
    d = dir( stat_filename );
    if numel( d ) == 1

      if d.bytes > 10

	load( stat_filename, 'result' );

	vinput  = result.list.total_step_clock( 1 );  % Indeed we neglect the FFT-GCCPHAT time which is very small (on the order of 0.003 real time factor)
	
	if isfield( result.list, 'total_scg_clock' )
	  v = result.list.total_scg_clock;
	elseif isfield( result.list, 'total_fasttde_clock' )
	  v = result.list.total_fasttde_clock;
	else
	  v = NaN;
	end

	stat_rt_factor = [ vinput   v   result.list.total_clock ] / result.list.duration;
	
      end
      
    end
    
    disp( [ result.list.name sprintf( ' &  %5.2f ', [ stat_rt_factor ] ) ' \\'] );
    
    m = [ m; stat_rt_factor ];

  end
  