|
@@ -36,14 +36,19 @@ def encode_latex_string(value):
|
|
|
return '{%s}' % value.replace('_', '\\_')
|
|
|
|
|
|
|
|
|
-def assemble_latex_chart(optimization_levels, color_defs, test_names, data):
|
|
|
+def assemble_latex_chart(optimization_levels,
|
|
|
+ color_defs,
|
|
|
+ test_names,
|
|
|
+ data,
|
|
|
+ embed=False):
|
|
|
"""Assembles a LaTeX chart from the given components."""
|
|
|
lines = []
|
|
|
- lines.append(LATEX_HEADER)
|
|
|
- for color_name, (red, green, blue) in color_defs:
|
|
|
- lines.append(r'\definecolor{%s}{HTML}{%02X%02X%02X}' %
|
|
|
- (color_name, red, green, blue))
|
|
|
- lines.append(LATEX_DOCUMENT_HEADER)
|
|
|
+ if not embed:
|
|
|
+ lines.append(LATEX_HEADER)
|
|
|
+ for color_name, (red, green, blue) in color_defs:
|
|
|
+ lines.append(r'\definecolor{%s}{HTML}{%02X%02X%02X}' %
|
|
|
+ (color_name, red, green, blue))
|
|
|
+ lines.append(LATEX_DOCUMENT_HEADER)
|
|
|
lines.append(r"""
|
|
|
\begin{axis}[
|
|
|
width = 0.85*\textwidth,
|
|
@@ -77,11 +82,12 @@ def assemble_latex_chart(optimization_levels, color_defs, test_names, data):
|
|
|
','.join(map(encode_latex_string, optimization_levels)))
|
|
|
lines.append(r"""
|
|
|
\end{axis}""")
|
|
|
- lines.append(LATEX_DOCUMENT_FOOTER)
|
|
|
+ if not embed:
|
|
|
+ lines.append(LATEX_DOCUMENT_FOOTER)
|
|
|
return '\n'.join(lines)
|
|
|
|
|
|
|
|
|
-def create_latex_chart(perf_data, sorted_opt_levels=None):
|
|
|
+def create_latex_chart(perf_data, sorted_opt_levels=None, embed=False):
|
|
|
"""Creates a LaTeX chart for the given performance data."""
|
|
|
if sorted_opt_levels is None:
|
|
|
sorted_opt_levels = sort_by_runtime(perf_data)
|
|
@@ -102,7 +108,8 @@ def create_latex_chart(perf_data, sorted_opt_levels=None):
|
|
|
if name not in test_names:
|
|
|
test_names.append(name)
|
|
|
|
|
|
- return assemble_latex_chart(opt_levels, color_defs, test_names, data)
|
|
|
+ return assemble_latex_chart(opt_levels, color_defs, test_names, data,
|
|
|
+ embed)
|
|
|
|
|
|
|
|
|
def get_mean_runtimes(perf_data):
|
|
@@ -228,6 +235,13 @@ def main():
|
|
|
const=True,
|
|
|
help="Produce bars that are relative to some baseline.",
|
|
|
default=False)
|
|
|
+ arg_parser.add_argument(
|
|
|
+ '-e',
|
|
|
+ '--embed',
|
|
|
+ action='store_const',
|
|
|
+ const=True,
|
|
|
+ help="Don't include a LaTeX document header and footer.",
|
|
|
+ default=False)
|
|
|
|
|
|
args = arg_parser.parse_args()
|
|
|
|
|
@@ -261,7 +275,7 @@ def main():
|
|
|
perf_data_dict = get_relative_measurements(perf_data_dict,
|
|
|
baseline_opt_level)
|
|
|
|
|
|
- print(create_latex_chart(perf_data_dict, sorted_opt_levels))
|
|
|
+ print(create_latex_chart(perf_data_dict, sorted_opt_levels, args.embed))
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|