def __init__(self, expr,
                 deepcopy_inputs=False,
                 max_program_len=None,
                 memo_gc=True):
        self.expr = pyll.as_apply(expr)
        if deepcopy_inputs not in (0, 1, False, True):
            # -- I've been calling rec_eval(expr, memo) by accident a few times
            #    this error would have been appreciated.
            #
            # TODO: Good candidate for Py3K keyword-only argument
            raise ValueError('deepcopy_inputs should be bool', deepcopy_inputs)
        self.deepcopy_inputs = deepcopy_inputs
        if max_program_len is None:
            self.max_program_len = pyll.base.DEFAULT_MAX_PROGRAM_LEN
        else:
            self.max_program_len = max_program_len
        self.memo_gc = memo_gc
Perform the logarithm using a specified base
dataset/ETHPy150Open hyperopt/hyperopt/hyperopt/algobase.py/ExprEvaluator.__init__--crossover with--dataset/ETHPy150Open cloudera/ibis/ibis/expr/api.py/log