docs: def _perturbation(self):
          """
          Returns Gaussian perturbation
          """
          if self.P>1:
              scales = []
              for term_i in range(self.n_terms):
                  _scales = SP.randn(self.diag[term_i].shape[0])
                  if self.offset[term_i]>0:
                      _scales  = SP.concatenate((_scales,SP.zeros(1)))
                  scales.append(_scales)
              scales = SP.concatenate(scales)
          else:
              scales = SP.randn(self.vd.getNumberScales())
          return scales