Source code for PDSim.misc.error_bar
from __future__ import print_function
from math import log10, isnan
[docs]
def error_ascii_bar(val, tol, N=50, min_p=-5, max_p=2):
assert log10(tol) > min_p
base_string = list("||" + "." * N + "||")
if isnan(val):
return " XXX VAL is NAN XXX "
# Add the bar for the tolerance
i = int(N * (log10(tol) - min_p) / (max_p - min_p) + 1)
base_string[i] = "|"
# Add the value
i = int(N * (log10(val) - min_p) / (max_p - min_p) + 1)
# Constrain the value so that it is definitely in range
i = max(1, i)
i = min(i, len(base_string) - 2)
base_string[i] = "@"
base_string = "".join(base_string)
return base_string
if __name__ == "__main__":
print(error_ascii_bar(1, 1e-3))
print(error_ascii_bar(0.5, 1e-3))
print(error_ascii_bar(0.1, 1e-3))
print(error_ascii_bar(0.0011, 1e-3))
print(error_ascii_bar(1e-10, 1e-3))
print(error_ascii_bar(1e10, 1e-3))