def __call__(self, x_prec, do_gradient=False):
if do_gradient:<EOL><INDENT>f, g = self.fun(self.undo(x_prec), do_gradient=True)<EOL>return f, self.undo(g)<EOL><DEDENT>else:<EOL><INDENT>return self.fun(self.undo(x_prec))<EOL><DEDENT>
The actual wrapper around the function call.

           Arguments:
            | ``x_prec``  --  the unknowns in preconditioned coordinates
            | ``do_gradient``  --  if True, the gradient is also computed and
                                   transformed to preconditioned coordinates

           Note that this implementation assumes that the preconditioner is a
           linear transformation.