code: def gpd_loglikelihood_scale_and_shape(scale, shape, price_data):
      n = len(price_data)
      result = -1 * float_info.max
      if scale != 0:
          param_factor = shape / scale
          if shape != 0 and param_factor >= 0 and scale >= 0:
              result = (-n * np.log(scale)) - (
                  ((1 / shape) + 1)
                  * (np.log((shape / scale * price_data) + 1)).sum()
              )
      return result
  
imports: from __future__ import division
  import math
  import pandas
  import numpy
  from math import pow
  from scipy import stats, optimize
  from six import iteritems
  from sys import float_info
  from .utils import nanmean, nanstd, nanmin, up, down, roll, rolling_window
  from .periods import ANNUALIZATION_FACTORS, APPROX_BDAYS_PER_YEAR
  from .periods import DAILY, WEEKLY, MONTHLY, QUARTERLY, YEARLY
label_desc: Use image node_id 42 for calling a global function with example usage: gpd_loglikelihood_scale_and_shape(scale, shape, price_data) and returns: result