code: def computePerf(self):
      if self.mOptions.mDebug:
          self.check_not_nan(
              self.mCycleFrame[self.getCycleResidueName()],
              self.getCycleResidueName(),
          )
      # self.mCycleFrame.to_csv(self.getCycleResidueName() + ".csv");
      self.mCycleFitPerf = tsperf.cPerf()
      self.mCycleForecastPerf = tsperf.cPerf()
      # self.mCycleFrame[[self.mTrend_residue_name, self.getCycleName()]].to_csv(self.getCycleName() + ".csv");
      (lFrameFit, lFrameForecast, lFrameTest) = self.mSplit.cutFrame(
          self.mCycleFrame
      )
  
      self.mCycleFitPerf.compute(
          lFrameFit[self.mTrend_residue_name],
          lFrameFit[self.getCycleName()],
          self.getCycleName(),
      )
      self.mCycleForecastPerf.compute(
          lFrameForecast[self.mTrend_residue_name],
          lFrameForecast[self.getCycleName()],
          self.getCycleName(),
      )
  
imports: import pandas
  import numpy
  from .None import Time
  from .None import Perf
  from .None import Plots
  from .None import Utils
  import time
label_desc: Use image node_id 5 for calling the cAbstractCycle obj's underlying member method code with example usage: obj.computePerf() without return types