On the chessprogramming wiki site for tapered evaluation, there is the following code snippet for how engines calculate phase:
eval = ((opening * (256 - phase)) + (endgame * phase)) / 256
PawnPhase = 0
KnightPhase = 1
BishopPhase = 1
RookPhase = 2
QueenPhase = 4
TotalPhase = PawnPhase*16 + KnightPhase*4 + BishopPhase*4 + RookPhase*4 + QueenPhase*2
phase = TotalPhase
phase -= wp * PawnPhase // Where wp is the number of white pawns currently on the board
phase -= wn * Knight // White knights
...
phase -= br * RookPhase
phase -= bq * QueenPhase
phase = (phase * 256 + (TotalPhase / 2)) / TotalPhase
I understand most of the phase evaluation function, but my question is, why are piece phase values scored the way they are? I can see how since pawns are technically not pieces, so pawnPhase has a score of 0, but what is the reasoning behind the other phase values?