From: Greg von Winckel on
Can anyone provide some information about how the implementation of GMRES in Matlab uses preconditioners? I am testing an initial-boundary value problem solver where I have a differential operator A and a preconditioning integral operator M with functions that apply these matrices to given vectors. I thought GMRES solves the system MAx=Mb when provided A(y) and M(y), but it takes substantially longer if I give a handle to a function which applies MA(y) than if I give handles to functions which apply M(y) and A(y) independently.

I have tested my algorithms to ensure that M(A(y))=M(A(y))=A(M(y)) for all y.

Thanks,

Greg