docs: def _operate(self, other, operation, inplace=True):
          """
          Gives the ContinuousFactor operation (product or divide) with
          the other factor.
  
          Parameters
          ----------
          other: ContinuousFactor
              The ContinuousFactor to be multiplied.
  
          operation: String
              'product' for multiplication operation and 'divide' for
              division operation.
  
          inplace: boolean
              If inplace=True it will modify the factor itself, else would return
              a new factor.
  
          Returns
          -------
          ContinuousFactor or None:
                          if inplace=True (default) returns None
                          if inplace=False returns a new `DiscreteFactor` instance.
  
          """
          if not isinstance(other, ContinuousFactor):
              raise TypeError("ContinuousFactor objects can only be multiplied ",
                              "or divided with another ContinuousFactor object. ",
                              "Got {other_type}, expected: ContinuousFactor.".format(
                                  other_type=type(other)))
  
          phi = self if inplace else self.copy()
          phi.distribution = phi.distribution._operate(
              other=other.distribution, operation=operation, inplace=False)
  
          if not inplace:
              return phi