Source code for openest.generate.latextools

functions_count = 0
functions_vars = ['f', 'g', 'h']

variables_count = 0
variables_vars = ['x', 'y', 'z']

"""
Return a representation of this call.
"""
[docs]def call(func, units, description=None, *args): if len(args) == 0: funcvar = get_function() yield ("Equation", funcvar + "()", units) yield (funcvar + "()", description, units) return latex = latex_function(func, args) if latex: yield ("Equation", latex, units) return if len(args) == 1: latex = latex_function(func, *args) funcvar = get_function() yield ("Equation", "%s(%s)" % (funcvar, args[0]), units) yield (funcvar + r"(\cdot)", description, units) elif len(args) == 2: funcvar = get_function() yield ("Equation", "%s(%s, %s)" % (funcvar, args[0], args[1]), units) yield (funcvar + r"(\cdot)", description, units)
[docs]def latex_function(func, *args): if len(args) == 1: interp = interpret1(func) if interp == 'identity': return args[0] if len(args) == 2: interp = interpret2(func) if interp == '/': return r"\frac{%s}{%s}" % args elif interp == '-': return r"%s - %s" % args elif interp == '*': return r"\left(%s\right) \left(%s\right)" % args
[docs]def english_function(func, *args): if len(args) == 1: interp = interpret1(func) if interp == 'identity': return args[0] if len(args) == 2: interp = interpret2(func) if interp == '/': return r"%s / %s" % args elif interp == '-': return r"%s - %s" % args elif interp == '*': return r"%s x %s" % args
[docs]def interpret1(func): """ Try to determine the processing of `func`. """ try: if func('sillystring') == 'sillystring': return "identity" except: return "unknown"
[docs]def interpret2(func): """ Try to determine the processing of `func`. """ try: if func(555., 111.) == 5.: return '/' if func(555., 111.) == 444.: return '-' if func(555., 111.) == 555. * 111.: return '*' except: return "unknown"
[docs]def get_function(): global functions_count funcvar = functions_vars[functions_count] functions_count += 1 return funcvar