You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It looks like you are discarding the residuals of all vertices every round, as opposed to only resetting residuals that are greater than the activation threshold. As a consequence, a vertex that takes more than one round to accumulate enough residual error to become active again, stays inactive, and the algorithm converges in less iterations than it should.
Maybe something like:
struct PR_Vertex_Reset {
double* nghSum;
PR_Vertex_Reset(double* _nghSum) :
nghSum(_nghSum) {}
inline bool operator () (uintE i) {
if (nghSum[i] > epsilon2) nghSum[i] = 0.0; //reset only if we crossed threshold
return 1;
}
};
Please let me know if I am misunderstanding something here.
The text was updated successfully, but these errors were encountered:
It looks like you are discarding the residuals of all vertices every round, as opposed to only resetting residuals that are greater than the activation threshold. As a consequence, a vertex that takes more than one round to accumulate enough residual error to become active again, stays inactive, and the algorithm converges in less iterations than it should.
Maybe something like:
Please let me know if I am misunderstanding something here.
The text was updated successfully, but these errors were encountered: