text: """
  Calculate the construction and insurance costs
  """
  
  from numba import jit
  
  
  @jit
  def calc_insurance_premium(exposed_value_euro: float, flood_prob: float,) -> float:
      """
      The insurance premium in a particular year is just the product
      of the flood probability and the exposed value. This is reasonable for
      a self-insuring entity, such as a government, and includes zero
      risk premium -- a strong simplification!
      """
      return flood_prob * exposed_value_euro
  
  
  @jit
  def calc_construction_cost(
      levee_height_cm: float,
      height_increase_cm: float,
      construction_quadratic: float,
      construction_linear: float,
      construction_fixed: float,
  ) -> float:
      """
      Implement the quadratic cost function
      """
  
      # shorthand
      a = construction_quadratic
      b = construction_linear
      c = construction_fixed
  
      # calculation
      if height_increase_cm == 0.0:
          cost_millions = 0.0
  
      elif height_increase_cm > 0.0:
          new_height = levee_height_cm + height_increase_cm
          cost_millions = a * (new_height ** 2) + b * height_increase_cm + c
  
      else:
          raise ValueError("height increase must be non-negative")
  
      # convert from million euros to euros
      cost_euro = cost_millions * 1e6
  
      return cost_euro
  