ext/cvode/source/cvspgmr.c
static int CVSpgmrPSolve(void *cvode_mem, N_Vector r, N_Vector z, int lr)
{
  CVodeMem   cv_mem;
  CVSpgmrMem cvspgmr_mem;
  int ier;

  cv_mem = (CVodeMem) cvode_mem;
  cvspgmr_mem = (CVSpgmrMem)lmem;

  ier = psolve(N, tn, ycur, fcur, ytemp, gamma, ewt, delta, &nfe, r,
	        lr, P_data, z);
  /* This call is counted in nps within the CVSpgmrSolve routine */

  return(ier);     
}
/*************** CVSpgmrPSolve ***************************************

 This routine interfaces between the generic SpgmrSolve routine and
 the user's psolve routine.  It passes to psolve all required state 
 information from cvode_mem.  Its return value is the same as that
 returned by psolve. Note that the generic SPGMR solver guarantees
 that CVSpgmrPSolve will not be called in the case in which
 preconditioning is not done. This is the only case in which the
 user's psolve routine is allowed to be NULL.

**********************************************************************/
CVSpgmrPSolve
This routine interfaces between the generic SpgmrSolve routine and
the user's psolve routine.  It passes to psolve all required state
information from cvode_mem.  Its return value is the same as that
returned by psolve. Note that the generic SPGMR solver guarantees
that CVSpgmrPSolve will not be called in the case in which
preconditioning is not done. This is the only case in which the
user's psolve routine is allowed to be NULL.
CVSpgmrPSolve This routine interfaces between the generic SpgmrSolve routine and the user ' s psolve routine . It passes to psolve all required state information from cvode_mem . Its return value is the same as that returned by psolve . Note that the generic SPGMR solver guarantees that CVSpgmrPSolve will not be called in the case in which preconditioning is not done . This is the only case in which the user ' s psolve routine is allowed to be NULL .
static int CVSpgmrPSolve(void *cvode_mem, N_Vector r, N_Vector z, int lr)
{
  CVodeMem   cv_mem;
  CVSpgmrMem cvspgmr_mem;
  int ier;
  cv_mem = (CVodeMem) cvode_mem;
  cvspgmr_mem = (CVSpgmrMem)lmem;
  ier = psolve(N, tn, ycur, fcur, ytemp, gamma, ewt, delta, &nfe, r,
	        lr, P_data, z);
  return(ier);     
}
static int CVSpgmrPSolve ( void * cvode_mem , N_Vector r , N_Vector z , int lr ) { CVodeMem cv_mem ; CVSpgmrMem cvspgmr_mem ; int ier ; cv_mem = ( CVodeMem ) cvode_mem ; cvspgmr_mem = ( CVSpgmrMem ) lmem ; ier = psolve ( N , tn , ycur , fcur , ytemp , gamma , ewt , delta , & nfe , r , lr , P_data , z ) ; return ( ier ) ; }
CVSpgmrPSolve 
This routine interfaces between the generic SpgmrSolve routine and
the user's psolve routine.
CVSpgmrPSolve This routine interfaces between the generic SpgmrSolve routine and the user ' s psolve routine .
/* This call is counted in nps within the CVSpgmrSolve routine */