code: def real_compute(self, signal, estimator, name):
      self.mName = name
      if self.mDebug:
          self.check_not_nan(signal.values, "signal")
          self.check_not_nan(estimator.values, "estimator")
  
      signal_std = np.std(signal)
      estimator_std = np.std(estimator)
  
      self.compute_MAPE_SMAPE_MASE(signal, estimator)
  
      myerror = estimator.values - signal.values
      abs_error = abs(myerror)
      self.mErrorMean = np.mean(myerror)
      self.mErrorStdDev = np.std(myerror)
  
      self.mL1 = np.mean(abs_error)
      self.mL2 = np.sqrt(np.mean(abs_error**2))
      self.mCount = signal.shape[0]
      self.mR2 = self.compute_R2(signal, estimator)
  
      self.mPearsonR = self.compute_pearson_r(signal, estimator)
  
file_path: atspy/atspy/TS/Perf.py
imports: import pandas
  import numpy
  from .None import Utils
label_desc: Use image node_id 8 for calling the cPerf obj's underlying member method code with example usage: obj.real_compute(signal, estimator, name) without return types