One of implementations that I found of Centripetal Catmull-Rom spline was using a simple, yet hard for me to grasp, equation to calculate a tangent at vertex (?). Below I state my understanding of the problem, so feel free to skip the next 2 paragraphs, if you understand the splines domain.
Given three control points $c_0$, $c_1$ and $c_2$ and two knot distances $k_0$ and $k_1$ (describing distance between $c_0$<->$c_1$ and $c_1$<->$c_2$) we need to calculate the tangent at $c_1$ so that we can use it for spline formula.
Standard (Catmull-Rom's) way of calculating tangent at $c_1$ is just $(c_2 - c_0)/(k_0 + k_1)$ which ends up (using the CR's assumption of knot distances being of distance 1) as $(c_2 - c_0)/2$.
In centripetal version, knots are not always of length 1, so different way of calculating them needs to be used. The original (proposed by authors) method is based on using lengthy formula.
What I've found is that in order to calculate the tangent/slope we use following formula: $t_1 = \frac{c_1 - c_0}{k_0} + \frac{c_2 - c_1}{k_1} - \frac{c_2 - c_0}{k_0 + k_1}$. This forumula seems very intuitive (almost like vector addition) but I couldn't really grasp why does it work and what's the proof of it (that said tangent at vertex seems unintuitive enough).
The formula you posted seems like just a combination of all the 3 finite difference schemes: backward difference, forward difference and central difference. Since each scheme has its own drawback in terms making good estimate of the true tangent, combining them in this way probably can give you the best result.