From 98385c99a6d0b5d8df600dde98d8f10e51c8a99e Mon Sep 17 00:00:00 2001 From: TheRealGioviok <425gioviok@gmail.com> Date: Tue, 30 Dec 2025 18:40:50 +0100 Subject: [PATCH 1/4] tentative --- src/eval_constants.hpp | 197 ++++++++++++++++++++--------------------- src/evaluation.cpp | 5 ++ 2 files changed, 99 insertions(+), 103 deletions(-) diff --git a/src/eval_constants.hpp b/src/eval_constants.hpp index f588247d..4d52ced9 100644 --- a/src/eval_constants.hpp +++ b/src/eval_constants.hpp @@ -5,172 +5,163 @@ namespace Clockwork { // clang-format off -inline const PParam PAWN_MAT = S(301, 307); -inline const PParam KNIGHT_MAT = S(916, 615); -inline const PParam BISHOP_MAT = S(835, 526); -inline const PParam ROOK_MAT = S(1359, 1179); -inline const PParam QUEEN_MAT = S(2765, 1705); +inline const PParam PAWN_MAT = S(180, 158); +inline const PParam KNIGHT_MAT = S(549, 327); +inline const PParam BISHOP_MAT = S(517, 281); +inline const PParam ROOK_MAT = S(572, 420); +inline const PParam QUEEN_MAT = S(1165, 578); inline const PParam TEMPO_VAL = S(65, 13); -inline const PParam BISHOP_PAIR_VAL = S(84, 168); -inline const PParam ROOK_OPEN_VAL = S(111, -29); -inline const PParam ROOK_SEMIOPEN_VAL = S(40, 17); +inline const PParam BISHOP_PAIR_VAL = S(82, 165); +inline const PParam ROOK_OPEN_VAL = S(107, -24); +inline const PParam ROOK_SEMIOPEN_VAL = S(43, 18); -inline const PParam DOUBLED_PAWN_VAL = S(-40, -75); +inline const PParam DOUBLED_PAWN_VAL = S(-40, -74); -inline const PParam POTENTIAL_CHECKER_VAL = S(-67, -10); -inline const PParam OUTPOST_KNIGHT_VAL = S(53, 36); -inline const PParam OUTPOST_BISHOP_VAL = S(61, 28); +inline const PParam POTENTIAL_CHECKER_VAL = S(-67, -9); +inline const PParam OUTPOST_KNIGHT_VAL = S(47, 38); +inline const PParam OUTPOST_BISHOP_VAL = S(54, 30); -inline const PParam PAWN_PUSH_THREAT_KNIGHT = S(52, 3); -inline const PParam PAWN_PUSH_THREAT_BISHOP = S(59, -26); -inline const PParam PAWN_PUSH_THREAT_ROOK = S(34, 34); -inline const PParam PAWN_PUSH_THREAT_QUEEN = S(69, -58); +inline const PParam PAWN_PUSH_THREAT_KNIGHT = S(51, 1); +inline const PParam PAWN_PUSH_THREAT_BISHOP = S(57, -26); +inline const PParam PAWN_PUSH_THREAT_ROOK = S(36, 34); +inline const PParam PAWN_PUSH_THREAT_QUEEN = S(69, -59); inline const std::array PAWN_PHALANX = { - S(26, 15), S(62, 32), S(77, 69), S(188, 146), S(497, 246), S(721, 709) + S(25, 15), S(61, 33), S(77, 69), S(189, 146), S(504, 242), S(748, 701), }; inline const std::array DEFENDED_PAWN = { - S(73, 38), S(64, 33), S(75, 66), S(178, 115), S(632, -29) + S(73, 38), S(64, 33), S(76, 65), S(178, 115), S(633, -27), }; inline const std::array PASSED_PAWN = { - S(-84, -98), S(-82, -75), S(-57, 5), S(24, 73), S(102, 197), S(316, 281) + S(-83, -98), S(-81, -75), S(-58, 6), S(24, 73), S(102, 195), S(316, 279), }; inline const std::array DEFENDED_PASSED_PUSH = { - S(44, -36), S(33, -1), S(27, 24), S(20, 77), S(112, 126), S(217, 224) + S(42, -34), S(33, -1), S(26, 24), S(19, 77), S(112, 125), S(219, 223), }; inline const std::array BLOCKED_PASSED_PAWN = { - S(5, -33), S(-1, 5), S(-6, -20), S(-7, -41), S(-22, -87), S(-265, -111) + S(7, -34), S(1, 4), S(-3, -22), S(-5, -41), S(-21, -88), S(-269, -109), }; inline const std::array FRIENDLY_KING_PASSED_PAWN_DISTANCE = { - S(0, 0), S(1, 113), S(-9, 88), S(-3, 33), S(-1, 8), S(11, 9), S(47, 7), S(21, -9) + S(0, 0), S(1, 114), S(-8, 88), S(-2, 32), S(-2, 9), S(11, 9), S(48, 7), S(22, -9), }; inline const std::array ENEMY_KING_PASSED_PAWN_DISTANCE = { - S(0, 0), S(-280, -12), S(-32, 25), S(-10, 48), S(32, 62), S(38, 84), S(51, 90), S(17, 92) + S(0, 0), S(-280, -11), S(-33, 26), S(-10, 48), S(32, 61), S(38, 83), S(52, 89), S(19, 91), }; inline const std::array KNIGHT_MOBILITY = { - S(-234, -218), S(-125, -59), S(-69, -1), S(-29, 31), S(18, 40), S(47, 75), S(88, 65), S(126, 65), - S(175, 4) + S(-5, -57), S(103, 102), S(159, 160), S(200, 192), S(246, 202), S(275, 236), S(314, 227), S(351, 228), S(400, 166), }; inline const std::array BISHOP_MOBILITY = { - S(-251, -289), S(-178, -101), S(-107, -43), S(-71, 0), S(-44, 36), S(-21, 55), S(-7, 69), S(14, 73), - S(33, 81), S(52, 72), S(76, 59), S(137, 16), S(147, 12), S(216, -36) + S(-26, -164), S(48, 21), S(117, 80), S(153, 123), S(178, 159), S(199, 178), S(209, 192), S(227, 197), S(242, 206), S(257, 198), S(279, 186), S(338, 142), S(342, 140), S(409, 91), }; inline const std::array ROOK_MOBILITY = { - S(-279, -358), S(-165, -63), S(-108, -18), S(-70, -13), S(-43, 8), S(-28, 34), S(-10, 48), S(8, 51), - S(25, 61), S(41, 69), S(61, 69), S(76, 72), S(91, 74), S(119, 53), S(277, -87) + S(254, 94), S(204, 262), S(233, 281), S(251, 286), S(264, 297), S(271, 310), S(278, 318), S(289, 318), S(298, 321), S(307, 325), S(321, 323), S(329, 323), S(339, 322), S(363, 299), S(463, 208), }; inline const std::array QUEEN_MOBILITY = { - S(-833, -482), S(-295, -631), S(-193, -534), S(-140, -337), S(-131, -131), S(-100, 7), S(-95, 108), S(-69, 129), - S(-61, 178), S(-50, 200), S(-39, 229), S(-30, 232), S(-9, 219), S(-7, 238), S(-1, 236), S(11, 226), - S(26, 206), S(23, 214), S(39, 181), S(68, 143), S(80, 123), S(134, 49), S(144, 42), S(258, -89), - S(356, -174), S(439, -263), S(125, -86), S(343, -233) + S(476, 166), S(548, 220), S(595, 249), S(621, 361), S(631, 428), S(649, 466), S(653, 510), S(665, 509), S(669, 532), S(676, 540), S(678, 557), S(685, 556), S(699, 540), S(699, 554), S(704, 546), S(710, 539), S(719, 528), S(713, 536), S(719, 517), S(739, 492), S(744, 482), S(778, 432), S(789, 426), S(863, 340), S(935, 281), S(927, 260), S(639, 421), S(810, 308), }; inline const std::array KING_MOBILITY = { - S(516, -126), S(185, -152), S(51, -46), S(6, 2), S(-45, 15), S(-106, 40), S(-155, 78), S(-206, 100), - S(-246, 85) + S(604, -172), S(266, -192), S(132, -87), S(87, -38), S(35, -26), S(-26, -0), S(-75, 37), S(-128, 60), S(-168, 45), }; inline const std::array KNIGHT_KING_RING = { - S(269, 228), S(357, 199), S(424, 158) + S(261, 225), S(353, 196), S(424, 155), }; inline const std::array BISHOP_KING_RING = { - S(478, 377), S(295, 239), S(164, 74) + S(467, 372), S(288, 235), S(159, 72), }; inline const std::array ROOK_KING_RING = { - S(425, 395), S(536, 393), S(560, 409), S(645, 461), S(767, 434) + S(348, 319), S(462, 315), S(489, 330), S(576, 382), S(700, 351), }; inline const std::array QUEEN_KING_RING = { - S(1124, 911), S(777, 741), S(457, 560), S(201, 319), S(81, 12), S(-51, -326) + S(906, 745), S(616, 611), S(351, 470), S(147, 271), S(77, 8), S(-2, -289), }; inline const std::array PT_INNER_RING_ATTACKS = { - S(-113, 60), S(-1, 0), S(-224, -129), S(42, 43), S(-307, -189) + S(-113, 60), S(1, -0), S(-221, -128), S(44, 42), S(-250, -150), }; inline const std::array PT_OUTER_RING_ATTACKS = { - S(-26, 23), S(-23, 21), S(-23, 15), S(-15, 9), S(-21, -11) + S(-26, 22), S(-22, 20), S(-20, 14), S(-15, 9), S(-22, -10), }; -inline const PParam PAWN_THREAT_KNIGHT = S(247, 58); -inline const PParam PAWN_THREAT_BISHOP = S(232, 122); -inline const PParam PAWN_THREAT_ROOK = S(209, 84); -inline const PParam PAWN_THREAT_QUEEN = S(189, -39); +inline const PParam PAWN_THREAT_KNIGHT = S(249, 57); +inline const PParam PAWN_THREAT_BISHOP = S(226, 123); +inline const PParam PAWN_THREAT_ROOK = S(212, 82); +inline const PParam PAWN_THREAT_QUEEN = S(190, -39); -inline const PParam KNIGHT_THREAT_BISHOP = S(121, 69); -inline const PParam KNIGHT_THREAT_ROOK = S(257, 13); -inline const PParam KNIGHT_THREAT_QUEEN = S(166, -56); +inline const PParam KNIGHT_THREAT_BISHOP = S(117, 69); +inline const PParam KNIGHT_THREAT_ROOK = S(258, 14); +inline const PParam KNIGHT_THREAT_QUEEN = S(166, -52); -inline const PParam BISHOP_THREAT_KNIGHT = S(121, 38); -inline const PParam BISHOP_THREAT_ROOK = S(248, 66); -inline const PParam BISHOP_THREAT_QUEEN = S(199, 51); +inline const PParam BISHOP_THREAT_KNIGHT = S(121, 36); +inline const PParam BISHOP_THREAT_ROOK = S(253, 66); +inline const PParam BISHOP_THREAT_QUEEN = S(198, 57); inline const std::array BISHOP_PAWNS = { - S(1, -17), S(-4, -5), S(-4, -16), S(-9, -23), S(-16, -29), S(-22, -34), S(-25, -43), S(-29, -48), - S(-39, -52) + S(1, -17), S(-4, -5), S(-3, -16), S(-9, -23), S(-15, -29), S(-21, -34), S(-24, -43), S(-28, -47), S(-40, -50), }; inline const std::array PAWN_PSQT = { - S(185, 136), S(126, 199), S(191, 162), S(166, 103), S(218, 36), S(177, 93), S(93, 128), S(168, 98), - S(36, 29), S(109, 75), S(87, 19), S(52, -11), S(45, -44), S(12, -8), S(-10, 24), S(-55, 34), - S(-16, -8), S(-11, 10), S(4, -33), S(-9, -42), S(-23, -49), S(-56, -39), S(-91, -4), S(-104, 9), - S(-31, -56), S(-15, -26), S(-12, -49), S(-32, -48), S(-59, -54), S(-76, -47), S(-123, -9), S(-143, -18), - S(-38, -81), S(25, -74), S(-29, -29), S(-42, -31), S(-75, -33), S(-107, -36), S(-127, -24), S(-145, -36), - S(-37, -72), S(88, -65), S(37, -26), S(-5, -10), S(-41, -20), S(-70, -28), S(-91, -12), S(-128, -18) + S(307, 282), S(248, 346), S(314, 309), S(287, 250), S(339, 184), S(299, 241), S(214, 276), S(290, 246), // + S(157, 178), S(229, 223), S(209, 168), S(172, 138), S(166, 105), S(133, 141), S(111, 172), S(66, 183), // + S(106, 140), S(111, 158), S(126, 115), S(113, 107), S(98, 100), S(65, 110), S(31, 144), S(17, 158), // + S(92, 92), S(107, 122), S(112, 99), S(91, 100), S(63, 94), S(47, 101), S(-2, 140), S(-19, 130), // + S(83, 67), S(147, 74), S(94, 119), S(80, 118), S(46, 116), S(15, 112), S(-4, 124), S(-24, 112), // + S(84, 77), S(211, 83), S(160, 122), S(118, 139), S(82, 128), S(53, 119), S(32, 135), S(-7, 130), // }; inline const std::array KNIGHT_PSQT = { - S(-433, -145), S(-401, 80), S(-499, 264), S(-89, 43), S(-159, 39), S(-265, 7), S(-594, 122), S(-501, -80), - S(-26, 8), S(37, -5), S(126, -42), S(126, -10), S(117, 0), S(52, -11), S(23, 1), S(-14, -38), - S(59, -44), S(101, 6), S(155, 20), S(133, 37), S(99, 39), S(57, 43), S(49, -5), S(-31, 5), - S(96, 8), S(99, 18), S(113, 45), S(89, 77), S(108, 69), S(79, 53), S(70, 11), S(43, -11), - S(90, -5), S(133, -18), S(110, 29), S(104, 44), S(83, 54), S(83, 38), S(72, 0), S(42, -14), - S(26, -28), S(60, -38), S(44, 3), S(66, 28), S(70, 24), S(18, 17), S(21, -33), S(-21, -40), - S(30, -35), S(55, -53), S(40, -38), S(42, -13), S(24, -8), S(0, -46), S(11, -46), S(-35, -109), - S(-24, -64), S(11, -1), S(35, -40), S(51, -43), S(40, -33), S(-9, -51), S(-19, -24), S(-76, -85) + S(-299, -13), S(-269, 210), S(-364, 385), S(39, 173), S(-29, 168), S(-133, 135), S(-461, 253), S(-366, 51), // + S(102, 136), S(160, 126), S(236, 90), S(236, 121), S(224, 132), S(163, 121), S(146, 131), S(111, 93), // + S(183, 87), S(216, 131), S(253, 155), S(230, 171), S(196, 174), S(149, 178), S(156, 126), S(93, 135), // + S(231, 135), S(230, 145), S(237, 173), S(216, 203), S(231, 198), S(202, 181), S(198, 139), S(178, 117), // + S(230, 120), S(269, 108), S(243, 153), S(235, 169), S(215, 179), S(214, 163), S(205, 126), S(180, 113), // + S(167, 99), S(200, 87), S(182, 128), S(205, 151), S(207, 148), S(157, 139), S(159, 92), S(121, 85), // + S(173, 92), S(198, 74), S(182, 86), S(183, 112), S(165, 116), S(141, 78), S(153, 78), S(107, 15), // + S(120, 62), S(155, 124), S(180, 85), S(194, 82), S(183, 92), S(134, 73), S(122, 101), S(68, 41), // }; inline const std::array BISHOP_PSQT = { - S(-164, 57), S(-178, 51), S(-407, 90), S(-319, 79), S(-264, 90), S(-428, 125), S(-211, 109), S(-141, 71), - S(4, -34), S(-30, 31), S(-27, 10), S(-70, 42), S(-88, 47), S(-34, 34), S(-20, 15), S(-41, 6), - S(42, -5), S(79, -5), S(100, 17), S(52, 29), S(31, 19), S(36, 19), S(61, 3), S(10, -18), - S(38, -30), S(45, 2), S(77, 6), S(62, 46), S(88, 39), S(29, 21), S(26, -9), S(-6, -8), - S(41, -48), S(60, -27), S(63, 2), S(72, 18), S(60, 28), S(21, 26), S(-6, -4), S(-5, -44), - S(50, -41), S(97, -40), S(111, -23), S(60, 13), S(51, 3), S(51, -2), S(61, -22), S(12, -24), - S(42, -91), S(117, -77), S(82, -58), S(57, -35), S(38, -26), S(40, -47), S(35, -42), S(34, -87), - S(44, -71), S(34, -25), S(44, -18), S(55, -49), S(66, -57), S(61, -12), S(50, -43), S(28, -49) + S(-67, 186), S(-81, 174), S(-312, 216), S(-226, 205), S(-172, 216), S(-333, 251), S(-114, 231), S(-43, 198), // + S(94, 93), S(54, 158), S(48, 139), S(7, 173), S(-15, 179), S(38, 165), S(63, 141), S(49, 134), // + S(133, 121), S(161, 123), S(176, 145), S(124, 159), S(101, 150), S(109, 149), S(142, 131), S(97, 110), // + S(130, 96), S(137, 126), S(162, 134), S(147, 172), S(174, 165), S(112, 150), S(115, 117), S(83, 119), // + S(135, 77), S(153, 99), S(158, 127), S(166, 144), S(153, 154), S(116, 149), S(83, 122), S(89, 80), // + S(144, 85), S(193, 86), S(207, 102), S(159, 138), S(149, 127), S(147, 123), S(157, 102), S(105, 102), // + S(140, 35), S(218, 48), S(183, 67), S(157, 90), S(138, 99), S(139, 77), S(135, 82), S(131, 39), // + S(144, 55), S(133, 101), S(143, 108), S(155, 75), S(167, 67), S(160, 112), S(149, 82), S(127, 76), // }; inline const std::array ROOK_PSQT = { - S(106, 8), S(163, 7), S(86, 43), S(143, 5), S(123, 6), S(66, 29), S(82, 24), S(100, 24), - S(0, 64), S(78, 42), S(144, 27), S(93, 49), S(115, 36), S(78, 36), S(-3, 70), S(-13, 76), - S(-8, 45), S(114, 8), S(155, -2), S(144, 0), S(120, -3), S(63, 30), S(71, 27), S(-25, 76), - S(-38, 35), S(37, 33), S(82, 19), S(89, -3), S(68, 11), S(21, 37), S(-7, 47), S(-63, 54), - S(-84, -12), S(-8, -6), S(-29, 12), S(-30, 4), S(-32, 2), S(-43, 30), S(-77, 29), S(-94, 22), - S(-109, -40), S(-47, -44), S(-43, -22), S(-59, -29), S(-45, -44), S(-77, 2), S(-82, -20), S(-123, -9), - S(-181, -26), S(-75, -87), S(-50, -66), S(-45, -64), S(-47, -66), S(-63, -49), S(-78, -70), S(-116, -49), - S(-139, -31), S(-113, -20), S(-49, -59), S(-23, -72), S(-39, -58), S(-52, -42), S(-70, -45), S(-88, -26) + S(397, 265), S(458, 261), S(380, 297), S(434, 261), S(415, 264), S(353, 289), S(371, 283), S(389, 282), // + S(299, 316), S(378, 295), S(443, 282), S(391, 303), S(412, 292), S(374, 293), S(291, 326), S(281, 331), // + S(290, 296), S(413, 262), S(453, 252), S(443, 255), S(418, 254), S(359, 287), S(368, 282), S(270, 330), // + S(262, 286), S(339, 286), S(383, 273), S(388, 253), S(366, 268), S(320, 292), S(292, 301), S(235, 306), // + S(219, 238), S(292, 247), S(274, 266), S(273, 257), S(270, 256), S(258, 285), S(223, 283), S(207, 273), // + S(189, 212), S(250, 210), S(256, 232), S(241, 224), S(255, 210), S(222, 256), S(213, 235), S(174, 244), // + S(113, 228), S(221, 166), S(247, 186), S(253, 189), S(251, 186), S(234, 204), S(217, 185), S(179, 206), // + S(155, 217), S(181, 230), S(246, 191), S(273, 178), S(257, 193), S(243, 209), S(224, 207), S(205, 224), // }; inline const std::array QUEEN_PSQT = { - S(19, 19), S(70, -20), S(77, -14), S(-29, 118), S(18, 41), S(-14, 64), S(20, -19), S(-56, 50), - S(-1, 88), S(-37, 165), S(-57, 192), S(-176, 235), S(-152, 206), S(-102, 174), S(-64, 80), S(-42, 73), - S(-36, 101), S(41, 105), S(-39, 178), S(-48, 186), S(-96, 177), S(-90, 161), S(-13, 42), S(-49, 40), - S(34, 15), S(32, 73), S(-13, 126), S(-11, 159), S(-34, 165), S(-46, 117), S(14, 17), S(17, -40), - S(11, 15), S(36, 20), S(11, 64), S(-11, 107), S(-10, 98), S(-11, 56), S(8, -8), S(15, -51), - S(18, -97), S(47, -55), S(51, 16), S(20, 2), S(21, -17), S(30, 0), S(34, -59), S(10, -71), - S(8, -201), S(52, -270), S(55, -183), S(69, -125), S(51, -113), S(55, -146), S(20, -79), S(19, -107), - S(-37, -133), S(24, -360), S(31, -372), S(52, -255), S(62, -191), S(57, -239), S(47, -209), S(-6, -137) + S(498, 411), S(551, 372), S(548, 389), S(443, 519), S(486, 445), S(456, 466), S(495, 378), S(420, 448), // + S(477, 488), S(451, 555), S(434, 581), S(308, 631), S(330, 604), S(385, 566), S(420, 475), S(436, 473), // + S(437, 506), S(518, 505), S(438, 580), S(433, 586), S(384, 577), S(388, 562), S(466, 441), S(424, 446), // + S(499, 425), S(502, 480), S(458, 531), S(453, 569), S(432, 573), S(424, 521), S(482, 423), S(485, 365), // + S(477, 423), S(492, 435), S(468, 479), S(444, 521), S(446, 512), S(445, 470), S(466, 405), S(475, 362), // + S(473, 319), S(498, 362), S(501, 434), S(468, 421), S(468, 401), S(478, 418), S(483, 361), S(463, 346), // + S(452, 219), S(494, 155), S(497, 242), S(512, 296), S(494, 309), S(497, 279), S(463, 344), S(465, 313), // + S(406, 263), S(465, 59), S(471, 53), S(492, 168), S(502, 233), S(498, 186), S(488, 212), S(437, 274), // }; inline const std::array KING_PSQT = { - S(-651, -130), S(-65, 85), S(-51, 70), S(-173, 33), S(-2, -9), S(-2, -9), S(-2, -9), S(-2, -9), - S(62, -68), S(62, 119), S(148, 75), S(162, -2), S(-2, -9), S(-2, -9), S(-2, -9), S(-2, -9), - S(-35, 72), S(178, 66), S(222, 44), S(172, 5), S(-2, -9), S(-2, -9), S(-2, -9), S(-2, -9), - S(-287, 84), S(158, 18), S(100, 19), S(66, 11), S(-2, -9), S(-2, -9), S(-2, -9), S(-2, -9), - S(-278, 55), S(79, -9), S(103, -12), S(28, 17), S(-2, -9), S(-2, -9), S(-2, -9), S(-2, -9), - S(-168, 30), S(154, -46), S(111, -21), S(84, -2), S(-2, -9), S(-2, -9), S(-2, -9), S(-2, -9), - S(-10, -35), S(179, -69), S(128, -41), S(61, -7), S(-2, -9), S(-2, -9), S(-2, -9), S(-2, -9), - S(-210, -22), S(-25, -30), S(-108, -1), S(-127, -2), S(-2, -9), S(-2, -9), S(-2, -9), S(-2, -9) -}; - -// Epoch duration: 8.05849s -// Epoch duration: 6.87929s + S(-654, -117), S(-73, 97), S(-51, 81), S(-176, 41), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // + S(58, -53), S(73, 125), S(154, 83), S(165, 4), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // + S(-39, 84), S(186, 76), S(228, 55), S(177, 16), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // + S(-290, 96), S(160, 29), S(103, 29), S(69, 22), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // + S(-280, 65), S(81, 0), S(107, -2), S(28, 28), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // + S(-167, 40), S(156, -36), S(113, -11), S(84, 8), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // + S(-9, -26), S(181, -60), S(131, -32), S(63, 3), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // + S(-209, -13), S(-23, -21), S(-105, 6), S(-123, 4), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // +}; + +// Epoch duration: 8.9505s // clang-format on } // namespace Clockwork diff --git a/src/evaluation.cpp b/src/evaluation.cpp index d259d5d5..39e71e25 100644 --- a/src/evaluation.cpp +++ b/src/evaluation.cpp @@ -193,6 +193,7 @@ PScore evaluate_pieces(const Position& pos) { : Bitboard::rank_mask(5) | Bitboard::rank_mask(6); Bitboard own_early_pawns = own_pawns & early_ranks; Bitboard bb = (blocked_pawns | own_early_pawns) | pos.attacked_by(opp, PieceType::Pawn); + Bitboard bb2 = bb; Bitboard opp_king_ring = king_ring_table[pos.king_sq(opp).raw]; for (PieceId id : pos.get_piece_mask(color, PieceType::Knight)) { eval += KNIGHT_MOBILITY[pos.mobility_of(color, id, ~bb)]; @@ -210,12 +211,16 @@ PScore evaluate_pieces(const Position& pos) { * (!pos.is_square_attacked_by(sq, color, PieceType::Pawn) + (blocked_pawns & Bitboard::central_files()).ipopcount()); } + bb2 |= pos.attacked_by(opp, PieceType::Knight) | pos.attacked_by(opp, PieceType::Bishop); for (PieceId id : pos.get_piece_mask(color, PieceType::Rook)) { eval += ROOK_MOBILITY[pos.mobility_of(color, id, ~bb)]; + eval += ROOK_MOBILITY[pos.mobility_of(color, id, ~bb2)]; eval += ROOK_KING_RING[pos.mobility_of(color, id, opp_king_ring)]; } + bb2 |= pos.attacked_by(opp, PieceType::Rook); for (PieceId id : pos.get_piece_mask(color, PieceType::Queen)) { eval += QUEEN_MOBILITY[pos.mobility_of(color, id, ~bb)]; + eval += QUEEN_MOBILITY[pos.mobility_of(color, id, ~bb2)]; eval += QUEEN_KING_RING[pos.mobility_of(color, id, opp_king_ring)]; } eval += KING_MOBILITY[pos.mobility_of(color, PieceId::king(), ~bb)]; From 22415f1e2841d18241bf502abc44f9e30290a36b Mon Sep 17 00:00:00 2001 From: TheRealGioviok <425gioviok@gmail.com> Date: Tue, 30 Dec 2025 18:41:28 +0100 Subject: [PATCH 2/4] tentative2 --- src/eval_constants.hpp | 84 +++++++++++++++++++++--------------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/src/eval_constants.hpp b/src/eval_constants.hpp index 4d52ced9..3330c522 100644 --- a/src/eval_constants.hpp +++ b/src/eval_constants.hpp @@ -5,20 +5,20 @@ namespace Clockwork { // clang-format off -inline const PParam PAWN_MAT = S(180, 158); +inline const PParam PAWN_MAT = S(179, 158); inline const PParam KNIGHT_MAT = S(549, 327); inline const PParam BISHOP_MAT = S(517, 281); inline const PParam ROOK_MAT = S(572, 420); -inline const PParam QUEEN_MAT = S(1165, 578); +inline const PParam QUEEN_MAT = S(1165, 579); inline const PParam TEMPO_VAL = S(65, 13); -inline const PParam BISHOP_PAIR_VAL = S(82, 165); +inline const PParam BISHOP_PAIR_VAL = S(83, 165); inline const PParam ROOK_OPEN_VAL = S(107, -24); inline const PParam ROOK_SEMIOPEN_VAL = S(43, 18); inline const PParam DOUBLED_PAWN_VAL = S(-40, -74); -inline const PParam POTENTIAL_CHECKER_VAL = S(-67, -9); +inline const PParam POTENTIAL_CHECKER_VAL = S(-67, -10); inline const PParam OUTPOST_KNIGHT_VAL = S(47, 38); inline const PParam OUTPOST_BISHOP_VAL = S(54, 30); @@ -40,11 +40,11 @@ inline const std::array DEFENDED_PASSED_PUSH = { S(42, -34), S(33, -1), S(26, 24), S(19, 77), S(112, 125), S(219, 223), }; inline const std::array BLOCKED_PASSED_PAWN = { - S(7, -34), S(1, 4), S(-3, -22), S(-5, -41), S(-21, -88), S(-269, -109), + S(7, -34), S(1, 4), S(-3, -22), S(-5, -41), S(-21, -88), S(-268, -108), }; inline const std::array FRIENDLY_KING_PASSED_PAWN_DISTANCE = { - S(0, 0), S(1, 114), S(-8, 88), S(-2, 32), S(-2, 9), S(11, 9), S(48, 7), S(22, -9), + S(0, 0), S(1, 114), S(-8, 88), S(-3, 32), S(-2, 9), S(11, 9), S(47, 7), S(22, -9), }; inline const std::array ENEMY_KING_PASSED_PAWN_DISTANCE = { S(0, 0), S(-280, -11), S(-33, 26), S(-10, 48), S(32, 61), S(38, 83), S(52, 89), S(19, 91), @@ -57,23 +57,23 @@ inline const std::array BISHOP_MOBILITY = { S(-26, -164), S(48, 21), S(117, 80), S(153, 123), S(178, 159), S(199, 178), S(209, 192), S(227, 197), S(242, 206), S(257, 198), S(279, 186), S(338, 142), S(342, 140), S(409, 91), }; inline const std::array ROOK_MOBILITY = { - S(254, 94), S(204, 262), S(233, 281), S(251, 286), S(264, 297), S(271, 310), S(278, 318), S(289, 318), S(298, 321), S(307, 325), S(321, 323), S(329, 323), S(339, 322), S(363, 299), S(463, 208), + S(254, 94), S(204, 262), S(233, 280), S(251, 286), S(264, 297), S(271, 310), S(278, 318), S(289, 318), S(298, 321), S(307, 325), S(321, 323), S(329, 323), S(339, 321), S(363, 299), S(463, 209), }; inline const std::array QUEEN_MOBILITY = { - S(476, 166), S(548, 220), S(595, 249), S(621, 361), S(631, 428), S(649, 466), S(653, 510), S(665, 509), S(669, 532), S(676, 540), S(678, 557), S(685, 556), S(699, 540), S(699, 554), S(704, 546), S(710, 539), S(719, 528), S(713, 536), S(719, 517), S(739, 492), S(744, 482), S(778, 432), S(789, 426), S(863, 340), S(935, 281), S(927, 260), S(639, 421), S(810, 308), + S(476, 166), S(548, 220), S(595, 249), S(621, 361), S(631, 429), S(649, 466), S(653, 510), S(665, 509), S(669, 532), S(675, 540), S(678, 557), S(685, 556), S(699, 540), S(699, 554), S(704, 546), S(710, 539), S(719, 528), S(713, 536), S(719, 517), S(739, 492), S(744, 482), S(778, 432), S(789, 426), S(863, 340), S(935, 281), S(927, 260), S(639, 421), S(811, 308), }; inline const std::array KING_MOBILITY = { - S(604, -172), S(266, -192), S(132, -87), S(87, -38), S(35, -26), S(-26, -0), S(-75, 37), S(-128, 60), S(-168, 45), + S(604, -172), S(266, -192), S(132, -87), S(87, -38), S(35, -25), S(-26, -0), S(-76, 37), S(-128, 60), S(-168, 45), }; inline const std::array KNIGHT_KING_RING = { - S(261, 225), S(353, 196), S(424, 155), + S(260, 225), S(353, 196), S(424, 155), }; inline const std::array BISHOP_KING_RING = { S(467, 372), S(288, 235), S(159, 72), }; inline const std::array ROOK_KING_RING = { - S(348, 319), S(462, 315), S(489, 330), S(576, 382), S(700, 351), + S(348, 319), S(462, 315), S(490, 330), S(576, 382), S(700, 351), }; inline const std::array QUEEN_KING_RING = { S(906, 745), S(616, 611), S(351, 470), S(147, 271), S(77, 8), S(-2, -289), @@ -100,68 +100,68 @@ inline const PParam BISHOP_THREAT_ROOK = S(253, 66); inline const PParam BISHOP_THREAT_QUEEN = S(198, 57); inline const std::array BISHOP_PAWNS = { - S(1, -17), S(-4, -5), S(-3, -16), S(-9, -23), S(-15, -29), S(-21, -34), S(-24, -43), S(-28, -47), S(-40, -50), + S(1, -17), S(-4, -5), S(-4, -16), S(-9, -23), S(-15, -29), S(-21, -34), S(-24, -43), S(-28, -48), S(-40, -50), }; inline const std::array PAWN_PSQT = { S(307, 282), S(248, 346), S(314, 309), S(287, 250), S(339, 184), S(299, 241), S(214, 276), S(290, 246), // - S(157, 178), S(229, 223), S(209, 168), S(172, 138), S(166, 105), S(133, 141), S(111, 172), S(66, 183), // + S(157, 178), S(229, 223), S(209, 168), S(173, 138), S(165, 105), S(133, 141), S(110, 172), S(66, 183), // S(106, 140), S(111, 158), S(126, 115), S(113, 107), S(98, 100), S(65, 110), S(31, 144), S(17, 158), // - S(92, 92), S(107, 122), S(112, 99), S(91, 100), S(63, 94), S(47, 101), S(-2, 140), S(-19, 130), // - S(83, 67), S(147, 74), S(94, 119), S(80, 118), S(46, 116), S(15, 112), S(-4, 124), S(-24, 112), // - S(84, 77), S(211, 83), S(160, 122), S(118, 139), S(82, 128), S(53, 119), S(32, 135), S(-7, 130), // + S(92, 92), S(107, 122), S(111, 98), S(91, 100), S(63, 94), S(47, 101), S(-1, 140), S(-19, 130), // + S(83, 67), S(147, 74), S(94, 119), S(80, 118), S(46, 116), S(15, 112), S(-5, 124), S(-24, 112), // + S(84, 77), S(211, 83), S(160, 122), S(118, 139), S(82, 128), S(53, 120), S(32, 135), S(-7, 130), // }; inline const std::array KNIGHT_PSQT = { - S(-299, -13), S(-269, 210), S(-364, 385), S(39, 173), S(-29, 168), S(-133, 135), S(-461, 253), S(-366, 51), // + S(-299, -13), S(-269, 210), S(-364, 385), S(39, 173), S(-29, 167), S(-133, 135), S(-461, 253), S(-366, 51), // S(102, 136), S(160, 126), S(236, 90), S(236, 121), S(224, 132), S(163, 121), S(146, 131), S(111, 93), // - S(183, 87), S(216, 131), S(253, 155), S(230, 171), S(196, 174), S(149, 178), S(156, 126), S(93, 135), // - S(231, 135), S(230, 145), S(237, 173), S(216, 203), S(231, 198), S(202, 181), S(198, 139), S(178, 117), // - S(230, 120), S(269, 108), S(243, 153), S(235, 169), S(215, 179), S(214, 163), S(205, 126), S(180, 113), // - S(167, 99), S(200, 87), S(182, 128), S(205, 151), S(207, 148), S(157, 139), S(159, 92), S(121, 85), // + S(183, 87), S(216, 131), S(254, 155), S(230, 171), S(196, 174), S(149, 178), S(156, 126), S(93, 135), // + S(231, 135), S(230, 145), S(237, 173), S(216, 203), S(231, 198), S(202, 182), S(198, 139), S(178, 117), // + S(230, 120), S(269, 108), S(243, 153), S(235, 169), S(215, 178), S(214, 163), S(205, 126), S(180, 113), // + S(167, 99), S(200, 87), S(182, 128), S(204, 151), S(207, 148), S(157, 139), S(159, 92), S(121, 85), // S(173, 92), S(198, 74), S(182, 86), S(183, 112), S(165, 116), S(141, 78), S(153, 78), S(107, 15), // - S(120, 62), S(155, 124), S(180, 85), S(194, 82), S(183, 92), S(134, 73), S(122, 101), S(68, 41), // + S(120, 62), S(154, 124), S(180, 85), S(195, 82), S(183, 92), S(134, 73), S(122, 101), S(68, 41), // }; inline const std::array BISHOP_PSQT = { S(-67, 186), S(-81, 174), S(-312, 216), S(-226, 205), S(-172, 216), S(-333, 251), S(-114, 231), S(-43, 198), // - S(94, 93), S(54, 158), S(48, 139), S(7, 173), S(-15, 179), S(38, 165), S(63, 141), S(49, 134), // - S(133, 121), S(161, 123), S(176, 145), S(124, 159), S(101, 150), S(109, 149), S(142, 131), S(97, 110), // + S(94, 93), S(53, 158), S(48, 139), S(7, 173), S(-15, 179), S(38, 165), S(63, 141), S(49, 134), // + S(133, 121), S(161, 123), S(177, 145), S(124, 159), S(101, 149), S(109, 149), S(142, 131), S(97, 110), // S(130, 96), S(137, 126), S(162, 134), S(147, 172), S(174, 165), S(112, 150), S(115, 117), S(83, 119), // - S(135, 77), S(153, 99), S(158, 127), S(166, 144), S(153, 154), S(116, 149), S(83, 122), S(89, 80), // - S(144, 85), S(193, 86), S(207, 102), S(159, 138), S(149, 127), S(147, 123), S(157, 102), S(105, 102), // - S(140, 35), S(218, 48), S(183, 67), S(157, 90), S(138, 99), S(139, 77), S(135, 82), S(131, 39), // - S(144, 55), S(133, 101), S(143, 108), S(155, 75), S(167, 67), S(160, 112), S(149, 82), S(127, 76), // + S(135, 77), S(153, 99), S(158, 127), S(166, 144), S(153, 153), S(116, 149), S(83, 122), S(89, 80), // + S(144, 85), S(193, 86), S(207, 102), S(158, 138), S(149, 127), S(147, 123), S(157, 102), S(105, 102), // + S(140, 35), S(218, 48), S(183, 67), S(157, 91), S(138, 99), S(139, 77), S(135, 82), S(131, 39), // + S(144, 55), S(133, 102), S(143, 108), S(156, 75), S(167, 67), S(160, 112), S(148, 82), S(127, 76), // }; inline const std::array ROOK_PSQT = { - S(397, 265), S(458, 261), S(380, 297), S(434, 261), S(415, 264), S(353, 289), S(371, 283), S(389, 282), // - S(299, 316), S(378, 295), S(443, 282), S(391, 303), S(412, 292), S(374, 293), S(291, 326), S(281, 331), // - S(290, 296), S(413, 262), S(453, 252), S(443, 255), S(418, 254), S(359, 287), S(368, 282), S(270, 330), // + S(397, 265), S(458, 261), S(380, 297), S(434, 261), S(415, 265), S(353, 289), S(371, 283), S(389, 282), // + S(299, 317), S(378, 295), S(443, 282), S(391, 303), S(412, 292), S(374, 293), S(291, 326), S(281, 331), // + S(290, 296), S(413, 261), S(453, 252), S(443, 255), S(418, 254), S(359, 286), S(368, 282), S(270, 330), // S(262, 286), S(339, 286), S(383, 273), S(388, 253), S(366, 268), S(320, 292), S(292, 301), S(235, 306), // - S(219, 238), S(292, 247), S(274, 266), S(273, 257), S(270, 256), S(258, 285), S(223, 283), S(207, 273), // - S(189, 212), S(250, 210), S(256, 232), S(241, 224), S(255, 210), S(222, 256), S(213, 235), S(174, 244), // + S(219, 238), S(292, 247), S(273, 266), S(274, 257), S(270, 256), S(258, 285), S(223, 283), S(207, 273), // + S(189, 212), S(250, 210), S(256, 231), S(241, 224), S(255, 210), S(222, 256), S(213, 235), S(174, 244), // S(113, 228), S(221, 166), S(247, 186), S(253, 189), S(251, 186), S(234, 204), S(217, 185), S(179, 206), // S(155, 217), S(181, 230), S(246, 191), S(273, 178), S(257, 193), S(243, 209), S(224, 207), S(205, 224), // }; inline const std::array QUEEN_PSQT = { S(498, 411), S(551, 372), S(548, 389), S(443, 519), S(486, 445), S(456, 466), S(495, 378), S(420, 448), // - S(477, 488), S(451, 555), S(434, 581), S(308, 631), S(330, 604), S(385, 566), S(420, 475), S(436, 473), // - S(437, 506), S(518, 505), S(438, 580), S(433, 586), S(384, 577), S(388, 562), S(466, 441), S(424, 446), // - S(499, 425), S(502, 480), S(458, 531), S(453, 569), S(432, 573), S(424, 521), S(482, 423), S(485, 365), // + S(477, 488), S(451, 555), S(433, 581), S(308, 631), S(330, 604), S(385, 566), S(420, 475), S(436, 473), // + S(437, 506), S(518, 505), S(437, 580), S(433, 586), S(384, 577), S(388, 562), S(466, 441), S(424, 446), // + S(499, 426), S(502, 480), S(458, 531), S(453, 569), S(432, 573), S(424, 521), S(481, 423), S(485, 365), // S(477, 423), S(492, 435), S(468, 479), S(444, 521), S(446, 512), S(445, 470), S(466, 405), S(475, 362), // S(473, 319), S(498, 362), S(501, 434), S(468, 421), S(468, 401), S(478, 418), S(483, 361), S(463, 346), // - S(452, 219), S(494, 155), S(497, 242), S(512, 296), S(494, 309), S(497, 279), S(463, 344), S(465, 313), // + S(452, 219), S(494, 155), S(497, 242), S(512, 296), S(494, 309), S(497, 280), S(463, 344), S(466, 313), // S(406, 263), S(465, 59), S(471, 53), S(492, 168), S(502, 233), S(498, 186), S(488, 212), S(437, 274), // }; inline const std::array KING_PSQT = { - S(-654, -117), S(-73, 97), S(-51, 81), S(-176, 41), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // + S(-654, -116), S(-73, 97), S(-51, 81), S(-176, 41), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // S(58, -53), S(73, 125), S(154, 83), S(165, 4), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // S(-39, 84), S(186, 76), S(228, 55), S(177, 16), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // - S(-290, 96), S(160, 29), S(103, 29), S(69, 22), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // + S(-290, 96), S(160, 28), S(103, 29), S(69, 22), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // S(-280, 65), S(81, 0), S(107, -2), S(28, 28), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // S(-167, 40), S(156, -36), S(113, -11), S(84, 8), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // - S(-9, -26), S(181, -60), S(131, -32), S(63, 3), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // - S(-209, -13), S(-23, -21), S(-105, 6), S(-123, 4), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // + S(-9, -26), S(181, -60), S(131, -32), S(63, 2), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // + S(-209, -13), S(-23, -21), S(-105, 6), S(-123, 5), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // }; -// Epoch duration: 8.9505s +// Epoch duration: 8.81387s // clang-format on } // namespace Clockwork From 2f0b3d195823a34267348e457819fe92cb71575b Mon Sep 17 00:00:00 2001 From: TheRealGioviok <425gioviok@gmail.com> Date: Tue, 30 Dec 2025 18:42:49 +0100 Subject: [PATCH 3/4] tentative3 --- src/eval_constants.hpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/eval_constants.hpp b/src/eval_constants.hpp index 3330c522..e4efb2d2 100644 --- a/src/eval_constants.hpp +++ b/src/eval_constants.hpp @@ -5,7 +5,7 @@ namespace Clockwork { // clang-format off -inline const PParam PAWN_MAT = S(179, 158); +inline const PParam PAWN_MAT = S(180, 158); inline const PParam KNIGHT_MAT = S(549, 327); inline const PParam BISHOP_MAT = S(517, 281); inline const PParam ROOK_MAT = S(572, 420); @@ -18,7 +18,7 @@ inline const PParam ROOK_SEMIOPEN_VAL = S(43, 18); inline const PParam DOUBLED_PAWN_VAL = S(-40, -74); -inline const PParam POTENTIAL_CHECKER_VAL = S(-67, -10); +inline const PParam POTENTIAL_CHECKER_VAL = S(-67, -9); inline const PParam OUTPOST_KNIGHT_VAL = S(47, 38); inline const PParam OUTPOST_BISHOP_VAL = S(54, 30); @@ -96,11 +96,11 @@ inline const PParam KNIGHT_THREAT_ROOK = S(258, 14); inline const PParam KNIGHT_THREAT_QUEEN = S(166, -52); inline const PParam BISHOP_THREAT_KNIGHT = S(121, 36); -inline const PParam BISHOP_THREAT_ROOK = S(253, 66); +inline const PParam BISHOP_THREAT_ROOK = S(252, 66); inline const PParam BISHOP_THREAT_QUEEN = S(198, 57); inline const std::array BISHOP_PAWNS = { - S(1, -17), S(-4, -5), S(-4, -16), S(-9, -23), S(-15, -29), S(-21, -34), S(-24, -43), S(-28, -48), S(-40, -50), + S(1, -17), S(-4, -5), S(-4, -17), S(-9, -23), S(-15, -29), S(-21, -34), S(-24, -43), S(-28, -48), S(-40, -50), }; inline const std::array PAWN_PSQT = { @@ -117,13 +117,13 @@ inline const std::array KNIGHT_PSQT = { S(183, 87), S(216, 131), S(254, 155), S(230, 171), S(196, 174), S(149, 178), S(156, 126), S(93, 135), // S(231, 135), S(230, 145), S(237, 173), S(216, 203), S(231, 198), S(202, 182), S(198, 139), S(178, 117), // S(230, 120), S(269, 108), S(243, 153), S(235, 169), S(215, 178), S(214, 163), S(205, 126), S(180, 113), // - S(167, 99), S(200, 87), S(182, 128), S(204, 151), S(207, 148), S(157, 139), S(159, 92), S(121, 85), // + S(167, 99), S(200, 87), S(182, 128), S(204, 151), S(207, 148), S(157, 139), S(159, 92), S(120, 85), // S(173, 92), S(198, 74), S(182, 86), S(183, 112), S(165, 116), S(141, 78), S(153, 78), S(107, 15), // S(120, 62), S(154, 124), S(180, 85), S(195, 82), S(183, 92), S(134, 73), S(122, 101), S(68, 41), // }; inline const std::array BISHOP_PSQT = { S(-67, 186), S(-81, 174), S(-312, 216), S(-226, 205), S(-172, 216), S(-333, 251), S(-114, 231), S(-43, 198), // - S(94, 93), S(53, 158), S(48, 139), S(7, 173), S(-15, 179), S(38, 165), S(63, 141), S(49, 134), // + S(94, 93), S(53, 158), S(48, 139), S(7, 173), S(-15, 179), S(38, 164), S(63, 141), S(49, 134), // S(133, 121), S(161, 123), S(177, 145), S(124, 159), S(101, 149), S(109, 149), S(142, 131), S(97, 110), // S(130, 96), S(137, 126), S(162, 134), S(147, 172), S(174, 165), S(112, 150), S(115, 117), S(83, 119), // S(135, 77), S(153, 99), S(158, 127), S(166, 144), S(153, 153), S(116, 149), S(83, 122), S(89, 80), // @@ -132,7 +132,7 @@ inline const std::array BISHOP_PSQT = { S(144, 55), S(133, 102), S(143, 108), S(156, 75), S(167, 67), S(160, 112), S(148, 82), S(127, 76), // }; inline const std::array ROOK_PSQT = { - S(397, 265), S(458, 261), S(380, 297), S(434, 261), S(415, 265), S(353, 289), S(371, 283), S(389, 282), // + S(397, 265), S(458, 261), S(380, 297), S(434, 261), S(415, 264), S(353, 289), S(371, 283), S(389, 282), // S(299, 317), S(378, 295), S(443, 282), S(391, 303), S(412, 292), S(374, 293), S(291, 326), S(281, 331), // S(290, 296), S(413, 261), S(453, 252), S(443, 255), S(418, 254), S(359, 286), S(368, 282), S(270, 330), // S(262, 286), S(339, 286), S(383, 273), S(388, 253), S(366, 268), S(320, 292), S(292, 301), S(235, 306), // @@ -144,11 +144,11 @@ inline const std::array ROOK_PSQT = { inline const std::array QUEEN_PSQT = { S(498, 411), S(551, 372), S(548, 389), S(443, 519), S(486, 445), S(456, 466), S(495, 378), S(420, 448), // S(477, 488), S(451, 555), S(433, 581), S(308, 631), S(330, 604), S(385, 566), S(420, 475), S(436, 473), // - S(437, 506), S(518, 505), S(437, 580), S(433, 586), S(384, 577), S(388, 562), S(466, 441), S(424, 446), // - S(499, 426), S(502, 480), S(458, 531), S(453, 569), S(432, 573), S(424, 521), S(481, 423), S(485, 365), // + S(437, 506), S(518, 505), S(437, 579), S(433, 586), S(384, 577), S(388, 562), S(466, 441), S(424, 446), // + S(499, 426), S(502, 480), S(458, 531), S(453, 569), S(432, 573), S(424, 521), S(482, 423), S(485, 365), // S(477, 423), S(492, 435), S(468, 479), S(444, 521), S(446, 512), S(445, 470), S(466, 405), S(475, 362), // S(473, 319), S(498, 362), S(501, 434), S(468, 421), S(468, 401), S(478, 418), S(483, 361), S(463, 346), // - S(452, 219), S(494, 155), S(497, 242), S(512, 296), S(494, 309), S(497, 280), S(463, 344), S(466, 313), // + S(452, 219), S(494, 155), S(497, 242), S(512, 296), S(494, 309), S(497, 279), S(463, 344), S(466, 313), // S(406, 263), S(465, 59), S(471, 53), S(492, 168), S(502, 233), S(498, 186), S(488, 212), S(437, 274), // }; inline const std::array KING_PSQT = { @@ -159,9 +159,9 @@ inline const std::array KING_PSQT = { S(-280, 65), S(81, 0), S(107, -2), S(28, 28), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // S(-167, 40), S(156, -36), S(113, -11), S(84, 8), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // S(-9, -26), S(181, -60), S(131, -32), S(63, 2), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // - S(-209, -13), S(-23, -21), S(-105, 6), S(-123, 5), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // + S(-209, -13), S(-23, -21), S(-105, 7), S(-123, 5), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // }; -// Epoch duration: 8.81387s +// Epoch duration: 8.68854s // clang-format on } // namespace Clockwork From 0791a517977291ef44862762c287091f0e3eef06 Mon Sep 17 00:00:00 2001 From: TheRealGioviok <425gioviok@gmail.com> Date: Tue, 30 Dec 2025 18:49:07 +0100 Subject: [PATCH 4/4] Bench: 13398527 --- src/evaluation.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/evaluation.cpp b/src/evaluation.cpp index 39e71e25..296f2866 100644 --- a/src/evaluation.cpp +++ b/src/evaluation.cpp @@ -192,7 +192,7 @@ PScore evaluate_pieces(const Position& pos) { ? Bitboard::rank_mask(1) | Bitboard::rank_mask(2) : Bitboard::rank_mask(5) | Bitboard::rank_mask(6); Bitboard own_early_pawns = own_pawns & early_ranks; - Bitboard bb = (blocked_pawns | own_early_pawns) | pos.attacked_by(opp, PieceType::Pawn); + Bitboard bb = (blocked_pawns | own_early_pawns) | pos.attacked_by(opp, PieceType::Pawn); Bitboard bb2 = bb; Bitboard opp_king_ring = king_ring_table[pos.king_sq(opp).raw]; for (PieceId id : pos.get_piece_mask(color, PieceType::Knight)) {