def maximizeStochastic_list(targetFn, gradientFn, x, y, theta0, alpha0=0.01):
    # Only change from above, uses minimizeStochastic_list instead of minimizeStochastic
    return minimizeStochastic_list(negate(targetFn), negateAll(gradientFn), x,
                                   y, theta0, alpha0)
def maximizeStochastic_list(targetFn, gradientFn, x, y, theta0, alpha0=0.01):
    # Only change from above, uses minimizeStochastic_list instead of minimizeStochastic
    return minimizeStochastic_list(negate(targetFn), negateAll(gradientFn), x, y, theta0, alpha0)
def maximizeStochastic(targetFn, gradientFn, x, y, theta0, alpha0=0.01):
    return minimizeStochastic(negate(targetFn), negateAll(gradientFn), x, y,
                              theta0, alpha0)
def maximizeStochastic(targetFn, gradientFn, x, y, theta0, alpha0=0.01):
    return minimizeStochastic(negate(targetFn), negateAll(gradientFn), x, y, theta0, alpha0)