code: def lal(self):
          
          lal_data = None
          if self._epoch is None:
              ep = _lal.LIGOTimeGPS(0,0)
          else:
              ep = self._epoch
  
          if self._data.dtype == _numpy.float32:
              lal_data = _lal.CreateREAL4TimeSeries("",ep,0,self.delta_t,_lal.SecondUnit,len(self))
          elif self._data.dtype == _numpy.float64:
              lal_data = _lal.CreateREAL8TimeSeries("",ep,0,self.delta_t,_lal.SecondUnit,len(self))
          elif self._data.dtype == _numpy.complex64:
              lal_data = _lal.CreateCOMPLEX8TimeSeries("",ep,0,self.delta_t,_lal.SecondUnit,len(self))
          elif self._data.dtype == _numpy.complex128:
              lal_data = _lal.CreateCOMPLEX16TimeSeries("",ep,0,self.delta_t,_lal.SecondUnit,len(self))
  
          lal_data.data.data[:] = self.numpy()
  
          return lal_data
docs: Produces a LAL time series object equivalent to self.
  
          Returns
          -------
          lal_data : {lal.*TimeSeries}
              LAL time series object containing the same data as self.
              The actual type depends on the sample's dtype.  If the epoch of
              self is 'None', the epoch of the returned LAL object will be
              LIGOTimeGPS(0,0); otherwise, the same as that of self.
  
          Raises
          ------
          TypeError
              If time series is stored in GPU memory.