def double(f, *args, **kwargs): return 2. * ed.traceable(f)(*args, **kwargs)
def set_xy(f, *args, **kwargs): if kwargs.get("name") == "x": kwargs["value"] = 1. if kwargs.get("name") == "y": kwargs["value"] = 0.42 return ed.traceable(f)(*args, **kwargs)
def trivial_tracer(fn, *args, **kwargs): # A tracer that does nothing. return ed.traceable(fn)(*args, **kwargs)