For those of you that landed on this answer from searching, as of this date there is an experimental implementation of this algorithm in the glm library: https://glm.g-truc.net/0.9.4/api/a00179.html, you'll need to us the GLM_ENABLE_EXPERIMENTAL define in your project to access it and include the appropriate header, see link above.