code: def _density(self, logd, dur, slope):
          
          if self.sklearn_kde:
              #TODO: fix preprocessing
              pts = np.array([(logd - self.mean_logdepth)/self.std_logdepth,
                              (dur - self.mean_dur)/self.std_dur,
                              (slope - self.mean_slope)/self.std_slope])
              return self.kde.score_samples(pts)
          else:
              return self.kde(np.array([logd, dur, slope]))
docs: Evaluate KDE at given points.
  
          Prepares data according to whether sklearn or scipy
          KDE in use.
  
          :param log, dur, slope:
              Trapezoidal shape parameters.