def step(exp):
    """ The step function
        
        Increments dynamic['value'] as needed, using the appropriate value from dynamic['steps']
        
        You can create your own custom step function in your gustav experiment 
        script by creating the function, then specifying it:

        def step(exp):
            exp.var.dynamic['value'] += exp.var.dynamic['cur_step'] * exp.var.dynamic['steps'][exp.var.dynamic['n_reversals']]
            exp.var.dynamic['value'] = max(exp.var.dynamic['value'], exp.var.dynamic['val_floor'])
            exp.var.dynamic['value'] = min(exp.var.dynamic['value'], exp.var.dynamic['val_ceil'])
        exp.var.dynamic['step'] = step
    """
    exp.var.dynamic['value'] += exp.var.dynamic['cur_step'] * exp.var.dynamic[
        'steps'][exp.var.dynamic['n_reversals']]
    exp.var.dynamic['value'] = max(exp.var.dynamic['value'], exp.var.
        dynamic['val_floor'])
    exp.var.dynamic['value'] = min(exp.var.dynamic['value'], exp.var.
        dynamic['val_ceil'])
