<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def power_coefficient_curve(wind_speed, power_coefficient_curve_wind_speeds, power_coefficient_curve_values, rotor_diameter, density):
 r""" Calculates the turbine power output using a power coefficient curve. This function is carried out when the parameter `power_output_model` of an instance of the :class:`~.modelchain.ModelChain` class is 'power_coefficient_curve'. Parameters wind_speed : pandas.Series or numpy.array Wind speed at hub height in m/s. power_coefficient_curve_wind_speeds : pandas.Series or numpy.array Wind speeds in m/s for which the power coefficients are provided in `power_coefficient_curve_values`. power_coefficient_curve_values : pandas.Series or numpy.array Power coefficients corresponding to wind speeds in `power_coefficient_curve_wind_speeds`. rotor_diameter : float Rotor diameter in m. density : pandas.Series or numpy.array Density of air at hub height in kg/m³. Returns ------- pandas.Series or numpy.array Electrical power output of the wind turbine in W. Data type depends on type of `wind_speed`. Notes ----- The following equation is used if the parameter `density_corr` is False [1]_, [2]_: .. math:: P=\frac{1}{8}\cdot\rho_{hub}\cdot d_{rotor}^{2} \cdot\pi\cdot v_{wind}^{3}\cdot cp\left(v_{wind}\right) with: P: power [W], :math:`\rho`: density [kg/m³], d: diameter [m], v: wind speed [m/s], cp: power coefficient It is assumed that the power output for wind speeds above the maximum and below the minimum wind speed given in the power coefficient curve is zero. References .. [1] Gasch, R., Twele, J.: "Windkraftanlagen". 6. Auflage, Wiesbaden, Vieweg + Teubner, 2010, pages 35ff, 208 .. [2] Hau, E.: "Windkraftanlagen - Grundlagen, Technik, Einsatz, Wirtschaftlichkeit". 4. Auflage, Springer-Verlag, 2008, p. 542 """

    power_coefficient_time_series = np.interp(
        wind_speed, power_coefficient_curve_wind_speeds,
        power_coefficient_curve_values, left=0, right=0)
    power_output = (1 / 8 * density * rotor_diameter ** 2 * np.pi *
                    np.power(wind_speed, 3) *
                    power_coefficient_time_series)
    # Power_output as pd.Series if wind_speed is pd.Series (else: np.array)
    if isinstance(wind_speed, pd.Series):
        power_output = pd.Series(data=power_output, index=wind_speed.index,
                                 name='feedin_power_plant')
    else:
        power_output = np.array(power_output)
    return power_output