def wrap_function(self, func):
        def f(*args, **kwds):
            self.enable_by_count()
            try:
                result = func(*args, **kwds)
            finally:
                self.disable_by_count()
            return result
        return f
compute discount for a node (function of discount_param, time of split and time of split of parent)
dataset/ETHPy150Open certik/line_profiler/kernprof.py/ContextualProfile.wrap_function--crossover with--dataset/ETHPy150Open balajiln/mondrianforest/src/mondrianforest.py/MondrianTree.get_discount_node_id