+ KNNKMaterialKey = z[W][KNIGHT][1] ^ z[W][KNIGHT][2];
+ KKNNMaterialKey = z[B][KNIGHT][1] ^ z[B][KNIGHT][2];
+
+ add(z[W][PAWN][1], &EvaluateKPK);
+ add(z[B][PAWN][1], &EvaluateKKP);
+
+ add(z[W][BISHOP][1] ^ z[W][KNIGHT][1], &EvaluateKBNK);
+ add(z[B][BISHOP][1] ^ z[B][KNIGHT][1], &EvaluateKKBN);
+ add(z[W][ROOK][1] ^ z[B][PAWN][1], &EvaluateKRKP);
+ add(z[W][PAWN][1] ^ z[B][ROOK][1], &EvaluateKPKR);
+ add(z[W][ROOK][1] ^ z[B][BISHOP][1], &EvaluateKRKB);
+ add(z[W][BISHOP][1] ^ z[B][ROOK][1], &EvaluateKBKR);
+ add(z[W][ROOK][1] ^ z[B][KNIGHT][1], &EvaluateKRKN);
+ add(z[W][KNIGHT][1] ^ z[B][ROOK][1], &EvaluateKNKR);
+ add(z[W][QUEEN][1] ^ z[B][ROOK][1], &EvaluateKQKR);
+ add(z[W][ROOK][1] ^ z[B][QUEEN][1], &EvaluateKRKQ);
+
+ add(z[W][KNIGHT][1] ^ z[W][PAWN][1], W, &ScaleKNPK);
+ add(z[B][KNIGHT][1] ^ z[B][PAWN][1], B, &ScaleKKNP);
+
+ add(z[W][ROOK][1] ^ z[W][PAWN][1] ^ z[B][ROOK][1] , W, &ScaleKRPKR);
+ add(z[W][ROOK][1] ^ z[B][ROOK][1] ^ z[B][PAWN][1] , B, &ScaleKRKRP);
+ add(z[W][BISHOP][1] ^ z[W][PAWN][1] ^ z[B][BISHOP][1], W, &ScaleKBPKB);
+ add(z[W][BISHOP][1] ^ z[B][BISHOP][1] ^ z[B][PAWN][1] , B, &ScaleKBKBP);
+ add(z[W][BISHOP][1] ^ z[W][PAWN][1] ^ z[B][KNIGHT][1], W, &ScaleKBPKN);
+ add(z[W][KNIGHT][1] ^ z[B][BISHOP][1] ^ z[B][PAWN][1] , B, &ScaleKNKBP);
+
+ add(z[W][ROOK][1] ^ z[W][PAWN][1] ^ z[W][PAWN][2] ^ z[B][ROOK][1] ^ z[B][PAWN][1], W, &ScaleKRPPKRP);
+ add(z[W][ROOK][1] ^ z[W][PAWN][1] ^ z[B][ROOK][1] ^ z[B][PAWN][1] ^ z[B][PAWN][2], B, &ScaleKRPKRPP);