CpM Formula
I was reading the page about CpM (here: https://pokemongo.gamepress.gg/cp-multiplier), and I was curious where all those constants came from (I know they came from GameMaster, but how were they derived?), so I played a little with the provided formulas and I found that I can derive all the listed constants from just 5 numbers (which are CpM values for levels 1, 10, 20, 30, 40). I'm not sure if this is new, but I haven't seen the formula posted anywhere (I searched), so I'm posting it here. Maybe someone finds it useful.
Here are the CpMs for levels 1, 10, 20, 30, 40 (from the article):
CpM_1 = 0.094
CpM_10 = 0.42250001
CpM_20 = 0.59740001
CpM_30 = 0.7317
CpM_40 = 0.79030001
CpM for any other level, including half levels can be computed using this formula:
(CpM_n^2 - CpM_1^2) / (level_n - level_1) = (CpM_2^2 - CpM_1^2) / (level_2 - level_1)
... where:
CpM_n = constant we are looking for (CpM for given level n)
CpM_1 = CpM for nearest lower level (one of 1, 10, 20, 30)
CpM_2 = CpM for nearest higher level (one of 10, 20, 30, 40)
level_n = level of CpM we are looking for
level_1 = nearest lower level
level_2 = nearest higher level
So for example to compute CpM for level 16, the formula looks like this:
(CpM_16^2 - CpM_10^2) / (16 - 10) = (CpM_20^2 - CpM_10^2) / (20 - 10)
(CpM_16^2 - 0.42250001^2) / (16 - 10) = (0.59740001^2 - 0.42250001^2) / (20 - 10)
CpM_16 =~ 0.5343543 (which matches the value from GM)
The right side of the formula is also equivalent to CPMStep/2 (variable from the linked article).
The only unknown thing left is where do those 5 constants come from.