code: def target_distribution(self, samples, funcs, func_params):
      curr_likelihood = self.likelihood(samples, funcs, func_params)
      curr_prior = self.prior(samples, funcs, func_params)
      ret = np.ones(CurveModel.NUM_INSTANCE)
      for i in range(CurveModel.NUM_INSTANCE):
          ret[i] = curr_likelihood[i] * curr_prior[i]
      return ret
  
imports: import scipy
  import logging
  import numpy
  import time
  from scipy import optimize
label_desc: Use image node_id 10 for calling the CurveModel obj's underlying member method code with example usage: obj.target_distribution(samples, funcs, func_params) and returns: ret