code: def computePerf(self):
      if self.mOptions.mDebug:
          self.check_not_nan(
              self.mTrendFrame[self.mOutName + "_residue"],
              self.mOutName + "_residue",
          )
      # self.mTrendFrame.to_csv(self.mOutName + '_residue' + ".csv");
  
      self.mTrendFitPerf = tsperf.cPerf()
      self.mTrendForecastPerf = tsperf.cPerf()
      (lFrameFit, lFrameForecast, lFrameTest) = self.mSplit.cutFrame(
          self.mTrendFrame
      )
      self.mTrendFitPerf.compute(
          lFrameFit[self.mSignal],
          lFrameFit[self.mOutName],
          self.mOutName,
      )
      self.mTrendForecastPerf.compute(
          lFrameForecast[self.mSignal],
          lFrameForecast[self.mOutName],
          self.mOutName,
      )
  
imports: import pandas
  import numpy
  from .None import Time
  from .None import Perf
  from .None import Plots
  from .None import Utils
  import sklearn
  import sklearn.preprocessing
  import sklearn.linear_model
  from sklearn.feature_selection import RFE
  from sklearn.linear_model import LinearRegression
label_desc: Use image node_id 3 for calling the cAbstractTrend obj's underlying member method code with example usage: obj.computePerf() without return types