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_B
Returns the inner product that is implicitly used with the positive
        definite preconditioner ``M``.