T tmp;
void qprop_t(const FermionActionArray<T>& me,	     multi1d<T>& psi, 	     const multi1d<LatticeColorMatrix>& u, 	     const multi1d<T>& chi, 	     enum InvType invType,	     const Real& RsdCG, 	     int MaxCG, int& ncg_had){  START_CODE("FermionActionArray::qprop");  int n_count;    /* Construct the linear operator */  /* This allocates field for the appropriate action */  const LinearOperator< multi1d<T> >* A = me.linOp(u);  T tmp;  switch(invType)  {  case CG_INVERTER:     /* chi_1 = M_dag(u) * chi_1 */    tmp = (*A)(chi, MINUS);        /* psi = (M^dag * M)^(-1) chi */    InvCG2 (*A, tmp, psi, RsdCG, MaxCG, n_count);    break;  #if 0  case MR_INVERTER:    /* psi = M^(-1) chi */    InvMR (*A, chi, psi, MRover, RsdCG, MaxCG, n_count);    break;  case BICG_INVERTER:    /* psi = M^(-1) chi */    InvBiCG (*A, chi, psi, RsdCG, MaxCG, n_count);    break;#endif    default:    QDP_error_exit("Unknown inverter type", invType);  }    if ( n_count == MaxCG )    QDP_error_exit("no convergence in the inverter", n_count);    ncg_had = n_count;    // Call the virtual destructor of A  delete A;  END_CODE("FermionActionArray::qprop");}