Game Theoretical Computations

def infinite_sum(contstant, delta):
    output = (1-delta)**-1
    output *= contstant
    return output

def finite_sum(constant, delta, n):
    top = constant * (1- delta**n)
    bottom = 1 - delta
    output = top / bottom
    return output

#
def inf_colluding_payoff(cc_payoff, delta):
    output = infinite_sum(cc_payoff, delta)
    return output 

#
def fin_colluding_payoff(cc_payoff, delta, T):
    output = finite_sum(cc_payoff, delta, T)
    return output

#
def inf_defecting_payoff(dc_payoff, dd_payoff, delta):
    output = dc_payoff + delta*infinite_sum(dd_payoff, delta)
    return output

#
def fin_defecting_payoff(dc_payoff, dd_payoff, delta, T):
    output = dc_payoff + delta * finite_sum(dd_payoff, delta, T)
    return output