def render_graphs(self, output_port, cfgs, baseline, title="Module Graphs"):
     print(latex.subsection(title), file=output_port)
     for cfg in cfgs:
         mean = self.stats_of_config(cfg)["mean"]
         diff, txt = latex.difference(mean, baseline)
         g = self.graph_config(
             cfg,
             title="Config %s: %s %s than baseline" % (cfg, diff, txt),
             output="%s-graph-%s.png" % (self.project_name, cfg),
         )
         print(latex.figure(g), file=output_port)
 def render_overall(self, output_port, *labeled_preds):
     labels = [k for (k,v) in labeled_preds]
     preds  = [v for (k,v) in labeled_preds]
     results = [self.stats_of_predicate(p) for p in preds]
     baseline = (labels[0], results[0])
     print(latex.subsection("Overall Runtimes"), file=output_port)
     print(latex.list([" ".join(["Average"
                                 ,"\\textbf{%s}" % tag
                                 ,"runtime"
                                 ,str(row["mean"])
                                 ,"(%s times %s than %s)" % (latex.difference(row["mean"], baseline[1]["mean"])[0], latex.difference(row["mean"], baseline[1]["mean"])[1], baseline[0])
                                 ,latex.list(["Median: %s" % row["median"]
                                              ,"Min: %s" % row["min"]
                                              ,"Max: %s" % row["max"]
                                              ,"95\\%% confidence: %s\\textendash~%s" % (row["ci"][0], row["ci"][1])])])
                        for (tag, row) in zip(labels, results)]), file=output_port)