code: def read_file(filename):
      
      dtype = np.dtype([('same_cell', np.int32),
                        ('N1', np.int),
                        ('N2', np.int),
                        ('time', np.float)
                        ])
      if pd is not None:
          timings = pd.read_csv(filename, header=None,
                                engine="c",
                                dtype={'same_cell': np.int32,
                                       'N1': np.int,
                                       'N2': np.int,
                                       'time': np.float},
                                index_col=None,
                                names=['same_cell', 'N1', 'N2', 'time'],
                                delim_whitespace=True)
      else:
          timings = np.loadtxt(filename, dtype=dtype)
      return timings
docs: Reads in the file I created manually (by recompiling and adding timers)
      
      Not used any more but left for historical reasons (the first 'speedup'
      plots were generated with this function)