diff options
-rwxr-xr-x | bin/analyze-archive.py | 30 | ||||
-rwxr-xr-x | bin/analyze-kconfig.py | 18 | ||||
-rw-r--r-- | lib/cli.py | 22 |
3 files changed, 44 insertions, 26 deletions
diff --git a/bin/analyze-archive.py b/bin/analyze-archive.py index bd523c8..0835c90 100755 --- a/bin/analyze-archive.py +++ b/bin/analyze-archive.py @@ -345,28 +345,6 @@ def plot_traces(preprocessed_data, sot_name): ) -def print_analyticinfo(prefix, info): - empty = "" - print(f"{prefix}: {info.model_function}") - print(f"{empty:{len(prefix)}s} {info.model_args}") - - -def print_splitinfo(param_names, info, prefix=""): - if type(info) is SplitFunction: - for k, v in info.child.items(): - if info.param_index < len(param_names): - param_name = param_names[info.param_index] - else: - param_name = f"arg{info.param_index - len(param_names)}" - print_splitinfo(param_names, v, f"{prefix} {param_name}={k}") - elif type(info) is AnalyticFunction: - print_analyticinfo(prefix, info) - elif type(info) is StaticFunction: - print(f"{prefix}: {info.value}") - else: - print(f"{prefix}: UNKNOWN") - - if __name__ == "__main__": ignored_trace_indexes = [] @@ -917,9 +895,9 @@ if __name__ == "__main__": for attribute in model.attributes(state): info = param_info(state, attribute) if type(info) is AnalyticFunction: - print_analyticinfo(f"{state:10s} {attribute:15s}", info) + dfatool.cli.print_analyticinfo(f"{state:10s} {attribute:15s}", info) elif type(info) is SplitFunction: - print_splitinfo( + dfatool.cli.print_splitinfo( model.parameters, info, f"{state:10s} {attribute:15s}" ) elif type(info) is SubstateFunction: @@ -928,9 +906,9 @@ if __name__ == "__main__": for attribute in model.attributes(trans): info = param_info(trans, attribute) if type(info) is AnalyticFunction: - print_analyticinfo(f"{trans:10s} {attribute:15s}", info) + dfatool.cli.print_analyticinfo(f"{trans:10s} {attribute:15s}", info) elif type(info) is SplitFunction: - print_splitinfo( + dfatool.cli.print_splitinfo( model.parameters, info, f"{trans:10s} {attribute:15s}" ) elif type(info) is SubstateFunction: diff --git a/bin/analyze-kconfig.py b/bin/analyze-kconfig.py index 1db43da..be52752 100755 --- a/bin/analyze-kconfig.py +++ b/bin/analyze-kconfig.py @@ -263,6 +263,24 @@ def main(): else: lut_quality = None + if "static" in args.show_model or "all" in args.show_model: + print("--- static model ---") + for name in model.names: + for attribute in model.attributes(name): + dfatool.cli.print_static(model, static_model, name, attribute) + + if "param" in args.show_model or "all" in args.show_model: + print("--- param model ---") + for name in model.names: + for attribute in model.attributes(name): + info = param_info(name, attribute) + if type(info) is dfatool.cli.AnalyticFunction: + dfatool.cli.print_analyticinfo(f"{name:20s} {attribute:15s}", info) + elif type(info) is dfatool.cli.SplitFunction: + dfatool.cli.print_splitinfo( + model.parameters, info, f"{name:20s} {attribute:15s}" + ) + if "table" in args.show_quality or "all" in args.show_quality: dfatool.cli.model_quality_table( ["static", "parameterized", "LUT"], @@ -33,6 +33,28 @@ def print_static(model, static_model, name, attribute): ) +def print_analyticinfo(prefix, info): + empty = "" + print(f"{prefix}: {info.model_function}") + print(f"{empty:{len(prefix)}s} {info.model_args}") + + +def print_splitinfo(param_names, info, prefix=""): + if type(info) is SplitFunction: + for k, v in info.child.items(): + if info.param_index < len(param_names): + param_name = param_names[info.param_index] + else: + param_name = f"arg{info.param_index - len(param_names)}" + print_splitinfo(param_names, v, f"{prefix} {param_name}={k}") + elif type(info) is AnalyticFunction: + print_analyticinfo(prefix, info) + elif type(info) is StaticFunction: + print(f"{prefix}: {info.value}") + else: + print(f"{prefix}: UNKNOWN") + + def format_quality_measures(result): if "smape" in result: return "{:6.2f}% / {:9.0f}".format(result["smape"], result["mae"]) |