Source code for ruspy.test.regression_sim_tests.regression_aux
import numba
import numpy as np
[docs]def discount_utility(df, disc_fac):
v = 0.0
for i in df.index.levels[0]:
v += np.sum(
np.multiply(
disc_fac ** df.loc[(i, slice(None))].index,
df.loc[(i, slice(None)), "utilities"],
)
)
return v / len(df.index.levels[0])
[docs]@numba.jit(nopython=True)
def disc_ut_loop(utilities, disc_fac):
num_buses, num_periods = utilities.shape
v = 0.0
for i in range(num_periods):
v += (disc_fac**i) * np.sum(utilities[:, i])
return v / num_buses