diff --git a/Grid/qcd/action/fermion/implementation/CayleyFermion5DImplementation.h b/Grid/qcd/action/fermion/implementation/CayleyFermion5DImplementation.h index c3e0f821..323a6e01 100644 --- a/Grid/qcd/action/fermion/implementation/CayleyFermion5DImplementation.h +++ b/Grid/qcd/action/fermion/implementation/CayleyFermion5DImplementation.h @@ -880,7 +880,7 @@ void CayleyFermion5D::SeqConservedCurrent(PropagatorField &q_in, } std::vector G_s(Ls,1.0); - Integer sign = 1; // sign flip for vector/tadpole + RealD sign = 1.0; // sign flip for vector/tadpole if ( curr_type == Current::Axial ) { for(int s=0;s::SeqConservedCurrent(PropagatorField &q_in, auto b=this->_b; auto c=this->_c; if ( b == 1 && c == 0 ) { - sign = -1; + sign = -1.0; } else { std::cerr << "Error: Tadpole implementation currently unavailable for non-Shamir actions." << std::endl; @@ -919,7 +919,7 @@ void CayleyFermion5D::SeqConservedCurrent(PropagatorField &q_in, tmp = Cshift(tmp,mu,1); Impl::multLinkField(Utmp,this->Umu,tmp,mu); - tmp = sign*G_s[s]*( Utmp*ph - gmu*Utmp*ph ); // Forward hop + tmp = G_s[s]*( Utmp*ph - gmu*Utmp*ph ); // Forward hop tmp = where((lcoor>=tmin),tmp,zz); // Mask the time L_Q = where((lcoor<=tmax),tmp,zz); // Position of current complicated @@ -933,7 +933,7 @@ void CayleyFermion5D::SeqConservedCurrent(PropagatorField &q_in, tmp = tmp *ph; tmp = Cshift(tmp,mu,-1); Impl::multLinkField(Utmp,this->Umu,tmp,mu+Nd); // Adjoint link - tmp = -G_s[s]*( Utmp + gmu*Utmp ); + tmp = -1*sign*G_s[s]*( Utmp + gmu*Utmp ); tmp = where((lcoor>=tmin+tshift),tmp,zz); // Mask the time L_Q += where((lcoor<=tmax+tshift),tmp,zz); // Position of current complicated