In the function project_gradient, the change between betaNew and betaOld is calculated as
https://github.com/osorensen/hdme/blob/8153dd9f549fb9007a4b6757723045790dec808d/R/project_gradient.R#L13
I think this trades off changes along one coordinate against changes in another coordinate, such that the iteration may stop while some coordinates are still changing.
I could imagine that one would want instead
diff <- sum((betaNew - betaOld)^2)
or
diff <- sum(abs(betaNew - betaOld))
In the function project_gradient, the change between betaNew and betaOld is calculated as https://github.com/osorensen/hdme/blob/8153dd9f549fb9007a4b6757723045790dec808d/R/project_gradient.R#L13 I think this trades off changes along one coordinate against changes in another coordinate, such that the iteration may stop while some coordinates are still changing. I could imagine that one would want instead
diff <- sum((betaNew - betaOld)^2)
ordiff <- sum(abs(betaNew - betaOld))