code: def get_ip_Minv_B(self):
          '''Returns the inner product that is implicitly used with the positive
          definite preconditioner ``M``.'''
          if not isinstance(self.M, utils.IdentityLinearOperator):
              if isinstance(self.Minv, utils.IdentityLinearOperator):
                  raise utils.ArgumentError(
                      'Minv has to be provided for the evaluation of the inner '
                      'product that is implicitly defined by M.')
              if isinstance(self.ip_B, utils.LinearOperator):
                  return self.Minv*self.ip_B
              else:
                  return lambda x, y: self.ip_B(x, self.Minv*y)
          return self.ip_f get_ip_Minv_B(self):
          '''Returns the inner product that is implicitly used with the positive
          definite preconditioner ``M``.'''
          if not isinstance(self.M, utils.IdentityLinearOperator):
              if isinstance(self.Minv, utils.IdentityLinearOperator):
                  raise utils.ArgumentError(
                      'Minv has to be provided for the evaluation of the inner '
                      'product that is implicitly defined by M.')
              if isinstance(self.ip_B, utils.LinearOperator):
                  return self.Minv*self.ip_B
              else:
                  return lambda x, y: self.ip_B(x, self.Minv*y)
          return self.ip_B
docs: Returns the inner product that is implicitly used with the positive
          definite preconditioner ``M``.