From 75f6e09e2939bec1d72e4d71c8847f85ec3b4e5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20C=C3=A0ceres?= Date: Thu, 18 Dec 2025 17:15:58 +0100 Subject: [PATCH 1/3] LR changes --- src/evaltune_main.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/evaltune_main.cpp b/src/evaltune_main.cpp index 44a5ec3b..efa4f707 100644 --- a/src/evaltune_main.cpp +++ b/src/evaltune_main.cpp @@ -335,8 +335,8 @@ int main() { std::cout << "// Epoch duration: " << time::cast(end - start).count() << "s\n"; - if (epoch > 5) { - optim.set_lr(optim.get_lr() * 0.91); + if (epoch % 41 == 40) { + optim.set_lr(optim.get_lr() * 0.75); } } From a0f2d21826bafa9800b87aca7e0a909437eb4a27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20C=C3=A0ceres?= Date: Thu, 18 Dec 2025 17:21:19 +0100 Subject: [PATCH 2/3] Add tuned values, 1k epoch Bench: 11846154 --- src/eval_constants.hpp | 185 +++++++++++++++++++++-------------------- 1 file changed, 93 insertions(+), 92 deletions(-) diff --git a/src/eval_constants.hpp b/src/eval_constants.hpp index 81728fa2..071630ff 100644 --- a/src/eval_constants.hpp +++ b/src/eval_constants.hpp @@ -5,155 +5,156 @@ namespace Clockwork { // clang-format off -inline const PParam PAWN_MAT = S(291,312); -inline const PParam KNIGHT_MAT = S(1137,913); -inline const PParam BISHOP_MAT = S(1226,947); -inline const PParam ROOK_MAT = S(1712,1682); -inline const PParam QUEEN_MAT = S(3665,2886); -inline const PParam TEMPO_VAL = S(59,15); +inline const PParam PAWN_MAT = S(186, 166); +inline const PParam KNIGHT_MAT = S(766, 543); +inline const PParam BISHOP_MAT = S(823, 544); +inline const PParam ROOK_MAT = S(782, 712); +inline const PParam QUEEN_MAT = S(1781, 1181); +inline const PParam TEMPO_VAL = S(59, 15); -inline const PParam BISHOP_PAIR_VAL = S(80,178); -inline const PParam ROOK_OPEN_VAL = S(104,-29); -inline const PParam ROOK_SEMIOPEN_VAL = S(39,13); +inline const PParam BISHOP_PAIR_VAL = S(80, 178); +inline const PParam ROOK_OPEN_VAL = S(104, -29); +inline const PParam ROOK_SEMIOPEN_VAL = S(39, 13); -inline const PParam DOUBLED_PAWN_VAL = S(-37,-78); +inline const PParam DOUBLED_PAWN_VAL = S(-37, -78); -inline const PParam POTENTIAL_CHECKER_VAL = S(-75,-3); -inline const PParam OUTPOST_KNIGHT_VAL = S(7,51); -inline const PParam OUTPOST_BISHOP_VAL = S(29,27); +inline const PParam POTENTIAL_CHECKER_VAL = S(-75, -3); +inline const PParam OUTPOST_KNIGHT_VAL = S(7, 51); +inline const PParam OUTPOST_BISHOP_VAL = S(29, 27); -inline const PParam PAWN_PUSH_THREAT_KNIGHT = S(54,18); -inline const PParam PAWN_PUSH_THREAT_BISHOP = S(56,-14); -inline const PParam PAWN_PUSH_THREAT_ROOK = S(33,33); -inline const PParam PAWN_PUSH_THREAT_QUEEN = S(55,-53); +inline const PParam PAWN_PUSH_THREAT_KNIGHT = S(54, 17); +inline const PParam PAWN_PUSH_THREAT_BISHOP = S(56, -14); +inline const PParam PAWN_PUSH_THREAT_ROOK = S(33, 33); +inline const PParam PAWN_PUSH_THREAT_QUEEN = S(55, -53); inline const std::array PAWN_PHALANX = { - S(20,20), S(63,31), S(74,70), S(190,140), S(561,241), S(925,1154), + S(20, 20), S(63, 31), S(74, 70), S(190, 140), S(561, 241), S(925, 1149), }; inline const std::array DEFENDED_PAWN = { - S(64,43), S(61,31), S(67,57), S(147,120), S(688,-90), + S(64, 43), S(61, 31), S(67, 57), S(147, 120), S(688, -90), }; inline const std::array PASSED_PAWN = { - S(-71,-104), S(-61,-85), S(-35,-9), S(20,70), S(42,211), S(307,314), + S(-68, -98), S(-58, -80), S(-32, -4), S(22, 76), S(45, 217), S(288, 305), }; inline const std::array DEFENDED_PASSED_PUSH = { - S(50,-44), S(36,-6), S(21,27), S(23,76), S(92,152), S(144,296), + S(50, -44), S(36, -6), S(21, 27), S(24, 76), S(92, 152), S(144, 296), }; inline const std::array BLOCKED_PASSED_PAWN = { - S(15,-46), S(4,3), S(1,-27), S(7,-47), S(5,-96), S(-192,-145), + S(15, -46), S(4, 3), S(0, -27), S(7, -47), S(5, -96), S(-191, -145), }; inline const std::array FRIENDLY_KING_PASSED_PAWN_DISTANCE = { - CS(0,0), S(13,101), S(-22,89), S(-14,38), S(-1,8), S(9,13), S(39,10), S(18,-1), + S(0, 0), S(13, 101), S(-22, 88), S(-14, 37), S(-0, 8), S(9, 12), S(39, 10), S(18, -2), }; inline const std::array ENEMY_KING_PASSED_PAWN_DISTANCE = { - CS(0,0), S(-185,-49), S(32,-3), S(-11,46), S(12,76), S(17,101), S(37,100), S(-12,120), + S(0, 0), S(-187, -54), S(29, -8), S(-13, 41), S(10, 71), S(15, 96), S(35, 96), S(-15, 115), }; inline const std::array KNIGHT_MOBILITY = { - S(-227,-224), S(-120,-61), S(-63,-8), S(-19,25), S(28,40), S(54,78), S(91,75), S(125,77), S(171,20), + S(11, -7), S(119, 155), S(176, 208), S(219, 241), S(266, 256), S(292, 294), S(329, 291), S(363, 293), S(409, 236), }; inline const std::array BISHOP_MOBILITY = { - S(-236,-283), S(-162,-99), S(-87,-37), S(-51,13), S(-20,44), S(-2,65), S(17,80), S(37,86), S(56,90), S(70,86), S(96,74), S(161,28), S(191,6), S(251,-28), + S(33, -62), S(107, 122), S(182, 184), S(218, 234), S(249, 265), S(267, 286), S(286, 301), S(305, 307), S(325, 311), S(339, 307), S(364, 295), S(429, 249), S(459, 227), S(520, 193), }; inline const std::array ROOK_MOBILITY = { - S(-306,-230), S(-152,-82), S(-100,-18), S(-68,-8), S(-41,15), S(-26,37), S(-8,49), S(11,55), S(28,67), S(46,76), S(64,78), S(77,80), S(98,83), S(109,69), S(255,-58), + S(151, 276), S(304, 423), S(356, 487), S(389, 497), S(415, 520), S(430, 542), S(448, 554), S(467, 560), S(484, 572), S(502, 581), S(521, 583), S(533, 585), S(554, 588), S(565, 574), S(711, 447), }; inline const std::array QUEEN_MOBILITY = { - S(-966,-877), S(-255,-659), S(-159,-521), S(-104,-314), S(-95,-106), S(-57,-1), S(-53,109), S(-28,123), S(-23,177), S(-11,203), S(-2,228), S(4,243), S(22,235), S(33,247), S(40,241), S(53,237), S(60,228), S(59,235), S(85,191), S(107,154), S(122,135), S(165,70), S(178,61), S(338,-112), S(372,-155), S(616,-312), S(485,-255), S(857,-453), + S(36, 22), S(824, 224), S(921, 357), S(975, 566), S(984, 774), S(1022, 878), S(1027, 989), S(1051, 1002), S(1056, 1058), S(1068, 1084), S(1077, 1108), S(1083, 1123), S(1102, 1115), S(1112, 1127), S(1119, 1121), S(1132, 1117), S(1139, 1108), S(1138, 1115), S(1164, 1071), S(1187, 1034), S(1201, 1015), S(1245, 949), S(1257, 941), S(1417, 767), S(1452, 724), S(1695, 568), S(1567, 623), S(1970, 407), }; inline const std::array KING_MOBILITY = { - S(448,-4), S(99,-121), S(-5,-32), S(-20,6), S(-48,10), S(-82,15), S(-61,17), S(-70,11), S(-71,-38), + S(492, -2), S(144, -118), S(39, -28), S(25, 10), S(-3, 13), S(-38, 19), S(-16, 20), S(-25, 14), S(-26, -35), }; inline const std::array KNIGHT_KING_RING = { - CS(0,0), S(88,-32), S(158,-79), + S(0, 0), S(88, -33), S(158, -79), }; inline const std::array BISHOP_KING_RING = { - CS(0,0), S(36,-7), S(136,-45), + S(0, 0), S(36, -7), S(136, -45), }; inline const std::array ROOK_KING_RING = { - CS(0,0), S(68,-50), S(53,-65), S(104,-64), S(162,-130), + S(0, 0), S(68, -50), S(53, -65), S(104, -64), S(161, -130), }; inline const std::array QUEEN_KING_RING = { - CS(0,0), S(-39,27), S(-56,38), S(-1,-9), S(162,-98), S(357,-238), + S(0, 0), S(-39, 27), S(-57, 38), S(-1, -9), S(161, -97), S(357, -238), }; -inline const PParam PAWN_THREAT_KNIGHT = S(240,58); -inline const PParam PAWN_THREAT_BISHOP = S(208,102); -inline const PParam PAWN_THREAT_ROOK = S(199,56); -inline const PParam PAWN_THREAT_QUEEN = S(179,-64); +inline const PParam PAWN_THREAT_KNIGHT = S(240, 58); +inline const PParam PAWN_THREAT_BISHOP = S(208, 102); +inline const PParam PAWN_THREAT_ROOK = S(199, 56); +inline const PParam PAWN_THREAT_QUEEN = S(179, -63); -inline const PParam KNIGHT_THREAT_BISHOP = S(106,73); -inline const PParam KNIGHT_THREAT_ROOK = S(244,5); -inline const PParam KNIGHT_THREAT_QUEEN = S(156,-68); +inline const PParam KNIGHT_THREAT_BISHOP = S(106, 73); +inline const PParam KNIGHT_THREAT_ROOK = S(244, 5); +inline const PParam KNIGHT_THREAT_QUEEN = S(156, -69); -inline const PParam BISHOP_THREAT_KNIGHT = S(111,35); -inline const PParam BISHOP_THREAT_ROOK = S(244,55); -inline const PParam BISHOP_THREAT_QUEEN = S(192,49); +inline const PParam BISHOP_THREAT_KNIGHT = S(111, 35); +inline const PParam BISHOP_THREAT_ROOK = S(244, 55); +inline const PParam BISHOP_THREAT_QUEEN = S(192, 49); inline const std::array BISHOP_PAWNS = { - S(-1,-11), S(-3,-5), S(-3,-15), S(-8,-26), S(-14,-31), S(-19,-38), S(-21,-45), S(-27,-40), S(-37,-44), + S(-1, -11), S(-3, -5), S(-3, -15), S(-8, -26), S(-14, -31), S(-19, -38), S(-21, -45), S(-27, -40), S(-37, -44), }; inline const std::array PAWN_PSQT = { - S(110,161), S(101,208), S(170,174), S(233,55), S(178,50), S(164,115), S(58,138), S(117,114), // - S(81,46), S(194,73), S(170,16), S(172,-42), S(125,-58), S(69,-10), S(30,37), S(-21,41), // - S(-0,13), S(20,17), S(37,-27), S(24,-41), S(6,-45), S(-36,-39), S(-77,8), S(-103,30), // - S(-26,-35), S(-8,-7), S(-12,-40), S(-30,-37), S(-56,-46), S(-76,-38), S(-128,12), S(-147,-0), // - S(-29,-65), S(35,-62), S(-14,-18), S(-45,-16), S(-66,-25), S(-105,-27), S(-125,-13), S(-149,-19), // - S(-19,-58), S(112,-54), S(67,-18), S(9,0), S(-28,-12), S(-64,-17), S(-91,6), S(-128,-6), // + S(237, 322), S(228, 369), S(297, 335), S(360, 216), S(305, 211), S(291, 276), S(185, 299), S(245, 275), // + S(186, 191), S(299, 219), S(275, 162), S(277, 104), S(230, 88), S(174, 136), S(135, 183), S(84, 187), // + S(105, 159), S(125, 163), S(142, 119), S(129, 104), S(112, 100), S(69, 107), S(28, 154), S(2, 176), // + S(79, 111), S(97, 139), S(93, 106), S(75, 109), S(49, 100), S(29, 108), S(-23, 157), S(-41, 146), // + S(77, 81), S(140, 84), S(91, 128), S(60, 130), S(39, 121), S(-0, 119), S(-19, 133), S(-44, 127), // + S(87, 88), S(217, 92), S(172, 128), S(114, 146), S(77, 134), S(41, 129), S(15, 152), S(-23, 140), // }; inline const std::array KNIGHT_PSQT = { - S(-403,-162), S(-355,58), S(-465,233), S(-127,64), S(-258,90), S(-342,96), S(-576,83), S(-547,-20), // - S(-1,-6), S(65,6), S(166,-61), S(112,5), S(114,12), S(51,-14), S(-9,7), S(-28,-39), // - S(55,-32), S(98,13), S(189,4), S(141,27), S(140,17), S(59,25), S(48,-0), S(-48,7), // - S(110,2), S(100,24), S(130,29), S(108,57), S(117,44), S(84,37), S(59,-5), S(34,2), // - S(99,-18), S(125,-21), S(119,5), S(91,22), S(82,30), S(79,25), S(52,-3), S(38,-58), // - S(11,-27), S(42,-39), S(37,-18), S(48,25), S(54,22), S(-3,0), S(2,-39), S(-38,-45), // - S(13,-12), S(34,-40), S(18,-34), S(18,-15), S(5,-21), S(-23,-42), S(-12,-56), S(-69,-124), // - S(-36,-63), S(2,-20), S(20,-43), S(29,-36), S(21,-28), S(-27,-59), S(-39,-35), S(-88,-87), // + S(-269, -8), S(-221, 211), S(-330, 386), S(5, 219), S(-124, 243), S(-208, 250), S(-443, 237), S(-414, 133), // + S(131, 148), S(197, 161), S(299, 93), S(245, 159), S(247, 166), S(184, 141), S(124, 161), S(105, 115), // + S(188, 121), S(231, 167), S(322, 158), S(274, 181), S(272, 171), S(192, 179), S(181, 154), S(85, 162), // + S(243, 156), S(233, 178), S(263, 183), S(241, 211), S(250, 198), S(217, 191), S(192, 149), S(167, 155), // + S(232, 136), S(258, 133), S(251, 159), S(224, 176), S(215, 184), S(212, 179), S(185, 151), S(171, 96), // + S(144, 127), S(175, 115), S(169, 136), S(180, 179), S(187, 176), S(130, 154), S(135, 115), S(95, 109), // + S(146, 142), S(167, 114), S(151, 120), S(151, 139), S(138, 133), S(110, 112), S(121, 99), S(64, 30), // + S(97, 91), S(135, 134), S(153, 111), S(161, 118), S(154, 125), S(106, 95), S(94, 119), S(44, 67), // }; inline const std::array BISHOP_PSQT = { - S(-162,84), S(-183,64), S(-426,92), S(-305,105), S(-256,108), S(-425,134), S(-166,111), S(-118,87), // - S(10,-28), S(-8,47), S(12,29), S(-9,34), S(-34,49), S(4,40), S(-19,30), S(-53,33), // - S(40,29), S(86,19), S(163,26), S(93,26), S(68,29), S(43,41), S(101,13), S(-0,30), // - S(57,-16), S(70,16), S(105,18), S(103,43), S(110,43), S(48,41), S(37,18), S(-11,25), // - S(58,-44), S(65,-6), S(72,10), S(72,34), S(64,50), S(24,41), S(8,4), S(4,-38), // - S(70,-35), S(110,-21), S(115,-7), S(55,33), S(37,39), S(39,34), S(67,-10), S(35,-32), // - S(57,-70), S(107,-46), S(77,-34), S(49,-4), S(40,-19), S(41,-30), S(23,-15), S(43,-79), // - S(53,-51), S(39,-5), S(44,2), S(55,-32), S(63,-43), S(60,-1), S(52,-29), S(34,-32), // + S(-29, 267), S(-50, 248), S(-292, 275), S(-171, 288), S(-122, 291), S(-290, 317), S(-33, 294), S(16, 270), // + S(143, 154), S(125, 230), S(145, 212), S(125, 217), S(100, 232), S(137, 223), S(115, 213), S(80, 216), // + S(174, 212), S(219, 201), S(297, 209), S(227, 208), S(201, 212), S(176, 224), S(235, 196), S(133, 213), // + S(190, 167), S(203, 198), S(238, 201), S(237, 226), S(243, 226), S(181, 224), S(170, 201), S(122, 208), // + S(191, 139), S(199, 176), S(206, 193), S(206, 217), S(198, 233), S(158, 224), S(142, 187), S(137, 144), // + S(204, 148), S(243, 161), S(248, 175), S(189, 216), S(171, 222), S(172, 217), S(200, 173), S(168, 151), // + S(191, 113), S(240, 137), S(211, 149), S(183, 179), S(174, 164), S(175, 153), S(157, 168), S(176, 104), // + S(186, 132), S(173, 178), S(178, 185), S(188, 151), S(197, 140), S(194, 182), S(185, 154), S(168, 151), // }; inline const std::array ROOK_PSQT = { - S(106,12), S(171,10), S(100,41), S(100,35), S(108,24), S(56,37), S(64,40), S(72,45), // - S(14,70), S(101,45), S(176,22), S(101,66), S(117,53), S(64,63), S(4,81), S(-5,87), // - S(3,47), S(151,6), S(181,-0), S(182,-4), S(136,6), S(61,47), S(79,34), S(-41,85), // - S(-28,41), S(48,34), S(80,25), S(102,-11), S(70,13), S(9,61), S(-9,60), S(-80,68), // - S(-93,-8), S(-11,-3), S(-26,14), S(-43,15), S(-48,12), S(-66,52), S(-96,48), S(-115,38), // - S(-116,-29), S(-41,-55), S(-47,-25), S(-66,-24), S(-50,-43), S(-99,12), S(-102,-6), S(-124,-9), // - S(-178,-18), S(-78,-78), S(-54,-63), S(-49,-61), S(-56,-56), S(-75,-40), S(-96,-62), S(-127,-46), // - S(-143,-17), S(-112,-11), S(-59,-47), S(-34,-64), S(-47,-49), S(-60,-37), S(-76,-46), S(-93,-29), // + S(578, 477), S(644, 476), S(573, 506), S(573, 501), S(581, 489), S(529, 502), S(536, 506), S(544, 510), // + S(487, 535), S(574, 510), S(648, 488), S(573, 531), S(589, 518), S(537, 528), S(477, 546), S(468, 552), // + S(475, 512), S(624, 471), S(654, 465), S(654, 461), S(609, 471), S(534, 512), S(551, 500), S(432, 550), // + S(444, 506), S(521, 499), S(552, 490), S(575, 454), S(543, 478), S(481, 526), S(463, 525), S(393, 533), // + S(380, 457), S(461, 462), S(446, 479), S(430, 480), S(424, 477), S(407, 517), S(377, 514), S(358, 503), // + S(356, 437), S(431, 410), S(426, 440), S(406, 441), S(423, 423), S(373, 477), S(371, 459), S(348, 456), // + S(294, 448), S(395, 388), S(419, 402), S(423, 405), S(416, 409), S(397, 426), S(377, 403), S(345, 420), // + S(329, 449), S(360, 454), S(414, 418), S(439, 401), S(425, 416), S(412, 428), S(397, 420), S(379, 436), // }; inline const std::array QUEEN_PSQT = { - S(38,43), S(77,8), S(81,14), S(-38,143), S(33,62), S(-23,89), S(42,4), S(-22,29), // - S(24,81), S(-49,176), S(-53,231), S(-141,263), S(-113,209), S(-123,207), S(-74,113), S(-39,53), // - S(-18,113), S(72,109), S(12,186), S(-5,197), S(-46,179), S(-78,178), S(-7,72), S(-42,45), // - S(50,26), S(54,95), S(18,130), S(6,195), S(-16,180), S(-25,114), S(13,20), S(-1,-12), // - S(15,53), S(50,15), S(24,85), S(-16,142), S(-29,129), S(-22,86), S(-11,8), S(-9,-42), // - S(25,-105), S(50,-62), S(51,7), S(-3,34), S(9,-9), S(12,-4), S(23,-74), S(-1,-68), // - S(10,-212), S(44,-311), S(31,-175), S(48,-103), S(22,-83), S(39,-154), S(13,-92), S(-5,-90), // - S(-46,-132), S(15,-382), S(12,-369), S(39,-275), S(41,-193), S(45,-238), S(32,-198), S(-22,-122), // + S(841, 869), S(881, 835), S(885, 840), S(765, 970), S(836, 888), S(780, 916), S(846, 831), S(782, 855), // + S(828, 908), S(755, 1002), S(751, 1057), S(662, 1089), S(691, 1035), S(680, 1034), S(729, 939), S(765, 879), // + S(786, 940), S(876, 936), S(815, 1013), S(799, 1023), S(758, 1006), S(725, 1004), S(796, 899), S(762, 871), // + S(854, 853), S(858, 921), S(821, 957), S(810, 1022), S(787, 1007), S(778, 941), S(816, 847), S(803, 815), // + S(819, 880), S(853, 841), S(827, 911), S(787, 969), S(775, 956), S(781, 913), S(793, 834), S(795, 785), // + S(829, 721), S(853, 765), S(854, 834), S(801, 861), S(812, 818), S(816, 823), S(826, 752), S(803, 759), // + S(814, 615), S(847, 515), S(835, 651), S(851, 724), S(825, 744), S(842, 672), S(816, 735), S(799, 737), // + S(758, 695), S(819, 445), S(815, 457), S(842, 552), S(845, 634), S(848, 589), S(835, 628), S(781, 705), // }; inline const std::array KING_PSQT = { - S(-136,-382), S(93,-23), S(-65,29), S(-173,53), S(20,-11), S(20,-11), S(20,-11), S(20,-11), // - S(190,-116), S(5,142), S(22,127), S(127,58), S(20,-11), S(20,-11), S(20,-11), S(20,-11), // - S(-37,55), S(66,134), S(106,102), S(91,57), S(20,-11), S(20,-11), S(20,-11), S(20,-11), // - S(-257,79), S(31,94), S(24,91), S(-30,76), S(20,-11), S(20,-11), S(20,-11), S(20,-11), // - S(-230,36), S(-47,67), S(-30,72), S(-113,108), S(20,-11), S(20,-11), S(20,-11), S(20,-11), // - S(-136,6), S(56,9), S(-34,60), S(-78,86), S(20,-11), S(20,-11), S(20,-11), S(20,-11), // - S(80,-85), S(134,-45), S(45,2), S(-37,46), S(20,-11), S(20,-11), S(20,-11), S(20,-11), // - S(-44,-114), S(87,-104), S(-14,-68), S(-31,-67), S(20,-11), S(20,-11), S(20,-11), S(20,-11), // -}; -// Epoch duration: 61.8411s + S(-161, -367), S(74, -10), S(-84, 43), S(-194, 68), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // + S(169, -102), S(-15, 155), S(1, 141), S(105, 71), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // + S(-58, 69), S(46, 147), S(85, 116), S(70, 71), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // + S(-278, 93), S(11, 108), S(3, 105), S(-51, 90), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // + S(-251, 50), S(-68, 81), S(-51, 86), S(-134, 122), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // + S(-156, 20), S(36, 23), S(-55, 74), S(-98, 99), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // + S(59, -71), S(113, -31), S(25, 16), S(-57, 59), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // + S(-64, -100), S(66, -90), S(-35, -54), S(-52, -53), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // +}; + +// Epoch duration: 3.39711 // clang-format on } // namespace Clockwork From 05683a21189de6c170a79b53485b6dec90ad854a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20C=C3=A0ceres?= Date: Thu, 18 Dec 2025 17:22:36 +0100 Subject: [PATCH 3/3] Apply meaner Bench: 11846154 --- src/eval_constants.hpp | 144 ++++++++++++++++++++++------------------- 1 file changed, 76 insertions(+), 68 deletions(-) diff --git a/src/eval_constants.hpp b/src/eval_constants.hpp index 071630ff..64894e6b 100644 --- a/src/eval_constants.hpp +++ b/src/eval_constants.hpp @@ -5,11 +5,11 @@ namespace Clockwork { // clang-format off -inline const PParam PAWN_MAT = S(186, 166); -inline const PParam KNIGHT_MAT = S(766, 543); -inline const PParam BISHOP_MAT = S(823, 544); -inline const PParam ROOK_MAT = S(782, 712); -inline const PParam QUEEN_MAT = S(1781, 1181); +inline const PParam PAWN_MAT = S(309, 324); +inline const PParam KNIGHT_MAT = S(1135, 912); +inline const PParam BISHOP_MAT = S(1260, 972); +inline const PParam ROOK_MAT = S(1707, 1704); +inline const PParam QUEEN_MAT = S(3730, 2874); inline const PParam TEMPO_VAL = S(59, 15); inline const PParam BISHOP_PAIR_VAL = S(80, 178); @@ -28,55 +28,62 @@ inline const PParam PAWN_PUSH_THREAT_ROOK = S(33, 33); inline const PParam PAWN_PUSH_THREAT_QUEEN = S(55, -53); inline const std::array PAWN_PHALANX = { - S(20, 20), S(63, 31), S(74, 70), S(190, 140), S(561, 241), S(925, 1149), + S(20, 20), S(63, 31), S(74, 70), S(190, 140), S(561, 241), S(925, 1149) }; inline const std::array DEFENDED_PAWN = { - S(64, 43), S(61, 31), S(67, 57), S(147, 120), S(688, -90), + S(64, 43), S(61, 31), S(67, 57), S(147, 120), S(688, -90) }; inline const std::array PASSED_PAWN = { - S(-68, -98), S(-58, -80), S(-32, -4), S(22, 76), S(45, 217), S(288, 305), + S(-68, -98), S(-58, -80), S(-32, -4), S(22, 76), S(45, 217), S(288, 305) }; inline const std::array DEFENDED_PASSED_PUSH = { - S(50, -44), S(36, -6), S(21, 27), S(24, 76), S(92, 152), S(144, 296), + S(50, -44), S(36, -6), S(21, 27), S(24, 76), S(92, 152), S(144, 296) }; inline const std::array BLOCKED_PASSED_PAWN = { - S(15, -46), S(4, 3), S(0, -27), S(7, -47), S(5, -96), S(-191, -145), + S(15, -46), S(4, 3), S(0, -27), S(7, -47), S(5, -96), S(-191, -145) }; inline const std::array FRIENDLY_KING_PASSED_PAWN_DISTANCE = { - S(0, 0), S(13, 101), S(-22, 88), S(-14, 37), S(-0, 8), S(9, 12), S(39, 10), S(18, -2), + S(0, 0), S(13, 101), S(-22, 88), S(-14, 37), S(0, 8), S(9, 12), S(39, 10), S(18, -2) }; inline const std::array ENEMY_KING_PASSED_PAWN_DISTANCE = { - S(0, 0), S(-187, -54), S(29, -8), S(-13, 41), S(10, 71), S(15, 96), S(35, 96), S(-15, 115), + S(0, 0), S(-187, -54), S(29, -8), S(-13, 41), S(10, 71), S(15, 96), S(35, 96), S(-15, 115) }; inline const std::array KNIGHT_MOBILITY = { - S(11, -7), S(119, 155), S(176, 208), S(219, 241), S(266, 256), S(292, 294), S(329, 291), S(363, 293), S(409, 236), + S(-232, -226), S(-124, -64), S(-67, -11), S(-24, 22), S(23, 37), S(49, 75), S(86, 72), S(120, 74), + S(166, 17) }; inline const std::array BISHOP_MOBILITY = { - S(33, -62), S(107, 122), S(182, 184), S(218, 234), S(249, 265), S(267, 286), S(286, 301), S(305, 307), S(325, 311), S(339, 307), S(364, 295), S(429, 249), S(459, 227), S(520, 193), + S(-259, -292), S(-185, -108), S(-110, -46), S(-74, 4), S(-43, 35), S(-25, 56), S(-6, 71), S(13, 77), + S(33, 81), S(47, 77), S(72, 65), S(137, 19), S(167, -3), S(228, -37) }; inline const std::array ROOK_MOBILITY = { - S(151, 276), S(304, 423), S(356, 487), S(389, 497), S(415, 520), S(430, 542), S(448, 554), S(467, 560), S(484, 572), S(502, 581), S(521, 583), S(533, 585), S(554, 588), S(565, 574), S(711, 447), + S(-304, -243), S(-151, -96), S(-99, -32), S(-66, -22), S(-40, 1), S(-25, 23), S(-7, 35), S(12, 41), + S(29, 53), S(47, 62), S(66, 64), S(78, 66), S(99, 69), S(110, 55), S(256, -72) }; inline const std::array QUEEN_MOBILITY = { - S(36, 22), S(824, 224), S(921, 357), S(975, 566), S(984, 774), S(1022, 878), S(1027, 989), S(1051, 1002), S(1056, 1058), S(1068, 1084), S(1077, 1108), S(1083, 1123), S(1102, 1115), S(1112, 1127), S(1119, 1121), S(1132, 1117), S(1139, 1108), S(1138, 1115), S(1164, 1071), S(1187, 1034), S(1201, 1015), S(1245, 949), S(1257, 941), S(1417, 767), S(1452, 724), S(1695, 568), S(1567, 623), S(1970, 407), + S(-1108, -835), S(-320, -633), S(-223, -500), S(-169, -291), S(-160, -83), S(-122, 21), S(-117, 132), S(-93, 145), + S(-88, 201), S(-76, 227), S(-67, 251), S(-61, 266), S(-42, 258), S(-32, 270), S(-25, 264), S(-12, 260), + S(-5, 251), S(-6, 258), S(20, 214), S(43, 177), S(57, 158), S(101, 92), S(113, 84), S(273, -90), + S(308, -133), S(551, -289), S(423, -234), S(826, -450) }; inline const std::array KING_MOBILITY = { - S(492, -2), S(144, -118), S(39, -28), S(25, 10), S(-3, 13), S(-38, 19), S(-16, 20), S(-25, 14), S(-26, -35), + S(426, 10), S(78, -106), S(-27, -16), S(-41, 22), S(-69, 25), S(-104, 31), S(-82, 32), S(-91, 26), + S(-92, -23) }; inline const std::array KNIGHT_KING_RING = { - S(0, 0), S(88, -33), S(158, -79), + S(0, 0), S(88, -33), S(158, -79) }; inline const std::array BISHOP_KING_RING = { - S(0, 0), S(36, -7), S(136, -45), + S(0, 0), S(36, -7), S(136, -45) }; inline const std::array ROOK_KING_RING = { - S(0, 0), S(68, -50), S(53, -65), S(104, -64), S(161, -130), + S(0, 0), S(68, -50), S(53, -65), S(104, -64), S(161, -130) }; inline const std::array QUEEN_KING_RING = { - S(0, 0), S(-39, 27), S(-57, 38), S(-1, -9), S(161, -97), S(357, -238), + S(0, 0), S(-39, 27), S(-57, 38), S(-1, -9), S(161, -97), S(357, -238) }; inline const PParam PAWN_THREAT_KNIGHT = S(240, 58); @@ -93,66 +100,67 @@ inline const PParam BISHOP_THREAT_ROOK = S(244, 55); inline const PParam BISHOP_THREAT_QUEEN = S(192, 49); inline const std::array BISHOP_PAWNS = { - S(-1, -11), S(-3, -5), S(-3, -15), S(-8, -26), S(-14, -31), S(-19, -38), S(-21, -45), S(-27, -40), S(-37, -44), + S(-1, -11), S(-3, -5), S(-3, -15), S(-8, -26), S(-14, -31), S(-19, -38), S(-21, -45), S(-27, -40), + S(-37, -44) }; inline const std::array PAWN_PSQT = { - S(237, 322), S(228, 369), S(297, 335), S(360, 216), S(305, 211), S(291, 276), S(185, 299), S(245, 275), // - S(186, 191), S(299, 219), S(275, 162), S(277, 104), S(230, 88), S(174, 136), S(135, 183), S(84, 187), // - S(105, 159), S(125, 163), S(142, 119), S(129, 104), S(112, 100), S(69, 107), S(28, 154), S(2, 176), // - S(79, 111), S(97, 139), S(93, 106), S(75, 109), S(49, 100), S(29, 108), S(-23, 157), S(-41, 146), // - S(77, 81), S(140, 84), S(91, 128), S(60, 130), S(39, 121), S(-0, 119), S(-19, 133), S(-44, 127), // - S(87, 88), S(217, 92), S(172, 128), S(114, 146), S(77, 134), S(41, 129), S(15, 152), S(-23, 140), // + S(114, 164), S(105, 211), S(174, 177), S(237, 58), S(182, 53), S(168, 118), S(62, 141), S(122, 117), + S(63, 33), S(176, 61), S(152, 4), S(154, -54), S(107, -70), S(51, -22), S(12, 25), S(-39, 29), + S(-18, 1), S(2, 5), S(19, -39), S(6, -54), S(-11, -58), S(-54, -51), S(-95, -4), S(-121, 18), + S(-44, -47), S(-26, -19), S(-30, -52), S(-48, -49), S(-74, -58), S(-94, -50), S(-146, -1), S(-164, -12), + S(-46, -77), S(17, -74), S(-32, -30), S(-63, -28), S(-84, -37), S(-123, -39), S(-142, -25), S(-167, -31), + S(-36, -70), S(94, -66), S(49, -30), S(-9, -12), S(-46, -24), S(-82, -29), S(-108, -6), S(-146, -18) }; inline const std::array KNIGHT_PSQT = { - S(-269, -8), S(-221, 211), S(-330, 386), S(5, 219), S(-124, 243), S(-208, 250), S(-443, 237), S(-414, 133), // - S(131, 148), S(197, 161), S(299, 93), S(245, 159), S(247, 166), S(184, 141), S(124, 161), S(105, 115), // - S(188, 121), S(231, 167), S(322, 158), S(274, 181), S(272, 171), S(192, 179), S(181, 154), S(85, 162), // - S(243, 156), S(233, 178), S(263, 183), S(241, 211), S(250, 198), S(217, 191), S(192, 149), S(167, 155), // - S(232, 136), S(258, 133), S(251, 159), S(224, 176), S(215, 184), S(212, 179), S(185, 151), S(171, 96), // - S(144, 127), S(175, 115), S(169, 136), S(180, 179), S(187, 176), S(130, 154), S(135, 115), S(95, 109), // - S(146, 142), S(167, 114), S(151, 120), S(151, 139), S(138, 133), S(110, 112), S(121, 99), S(64, 30), // - S(97, 91), S(135, 134), S(153, 111), S(161, 118), S(154, 125), S(106, 95), S(94, 119), S(44, 67), // + S(-395, -158), S(-347, 61), S(-456, 236), S(-121, 69), S(-250, 93), S(-334, 100), S(-569, 87), S(-540, -17), + S(5, -2), S(71, 11), S(173, -57), S(119, 9), S(121, 16), S(58, -9), S(-2, 11), S(-21, -35), + S(62, -29), S(105, 17), S(196, 8), S(148, 31), S(146, 21), S(66, 29), S(55, 4), S(-41, 12), + S(117, 6), S(107, 28), S(137, 33), S(115, 61), S(124, 48), S(91, 41), S(66, -1), S(41, 5), + S(106, -14), S(132, -17), S(125, 9), S(98, 26), S(89, 34), S(86, 29), S(59, 1), S(45, -54), + S(18, -23), S(49, -35), S(43, -14), S(54, 29), S(61, 26), S(4, 4), S(9, -35), S(-31, -41), + S(20, -8), S(41, -36), S(25, -30), S(25, -11), S(12, -17), S(-16, -38), S(-5, -51), S(-62, -120), + S(-29, -59), S(9, -16), S(27, -39), S(35, -32), S(28, -25), S(-20, -55), S(-32, -31), S(-82, -83) }; inline const std::array BISHOP_PSQT = { - S(-29, 267), S(-50, 248), S(-292, 275), S(-171, 288), S(-122, 291), S(-290, 317), S(-33, 294), S(16, 270), // - S(143, 154), S(125, 230), S(145, 212), S(125, 217), S(100, 232), S(137, 223), S(115, 213), S(80, 216), // - S(174, 212), S(219, 201), S(297, 209), S(227, 208), S(201, 212), S(176, 224), S(235, 196), S(133, 213), // - S(190, 167), S(203, 198), S(238, 201), S(237, 226), S(243, 226), S(181, 224), S(170, 201), S(122, 208), // - S(191, 139), S(199, 176), S(206, 193), S(206, 217), S(198, 233), S(158, 224), S(142, 187), S(137, 144), // - S(204, 148), S(243, 161), S(248, 175), S(189, 216), S(171, 222), S(172, 217), S(200, 173), S(168, 151), // - S(191, 113), S(240, 137), S(211, 149), S(183, 179), S(174, 164), S(175, 153), S(157, 168), S(176, 104), // - S(186, 132), S(173, 178), S(178, 185), S(188, 151), S(197, 140), S(194, 182), S(185, 154), S(168, 151), // + S(-174, 69), S(-195, 50), S(-437, 77), S(-316, 90), S(-267, 93), S(-435, 119), S(-178, 96), S(-129, 72), + S(-2, -44), S(-20, 32), S(0, 14), S(-20, 19), S(-45, 34), S(-8, 25), S(-30, 15), S(-65, 18), + S(29, 14), S(74, 3), S(152, 11), S(82, 10), S(56, 14), S(31, 26), S(90, -2), S(-12, 15), + S(45, -31), S(58, 0), S(93, 3), S(92, 28), S(98, 28), S(36, 26), S(25, 3), S(-23, 10), + S(46, -59), S(54, -22), S(61, -5), S(61, 19), S(53, 35), S(13, 26), S(-3, -11), S(-8, -54), + S(59, -50), S(98, -37), S(103, -23), S(44, 18), S(26, 24), S(27, 19), S(55, -25), S(23, -47), + S(46, -85), S(95, -61), S(66, -49), S(38, -19), S(29, -34), S(30, -45), S(12, -30), S(31, -94), + S(41, -66), S(28, -20), S(33, -13), S(43, -47), S(52, -58), S(49, -16), S(40, -44), S(23, -47) }; inline const std::array ROOK_PSQT = { - S(578, 477), S(644, 476), S(573, 506), S(573, 501), S(581, 489), S(529, 502), S(536, 506), S(544, 510), // - S(487, 535), S(574, 510), S(648, 488), S(573, 531), S(589, 518), S(537, 528), S(477, 546), S(468, 552), // - S(475, 512), S(624, 471), S(654, 465), S(654, 461), S(609, 471), S(534, 512), S(551, 500), S(432, 550), // - S(444, 506), S(521, 499), S(552, 490), S(575, 454), S(543, 478), S(481, 526), S(463, 525), S(393, 533), // - S(380, 457), S(461, 462), S(446, 479), S(430, 480), S(424, 477), S(407, 517), S(377, 514), S(358, 503), // - S(356, 437), S(431, 410), S(426, 440), S(406, 441), S(423, 423), S(373, 477), S(371, 459), S(348, 456), // - S(294, 448), S(395, 388), S(419, 402), S(423, 405), S(416, 409), S(397, 426), S(377, 403), S(345, 420), // - S(329, 449), S(360, 454), S(414, 418), S(439, 401), S(425, 416), S(412, 428), S(397, 420), S(379, 436), // + S(108, 4), S(174, 3), S(103, 33), S(103, 28), S(111, 16), S(59, 29), S(66, 33), S(74, 37), + S(17, 62), S(104, 37), S(178, 15), S(103, 58), S(119, 45), S(67, 55), S(7, 73), S(-2, 79), + S(5, 39), S(154, -2), S(184, -8), S(184, -12), S(139, -2), S(64, 39), S(81, 27), S(-38, 77), + S(-26, 33), S(51, 26), S(82, 17), S(105, -19), S(73, 5), S(11, 53), S(-7, 52), S(-77, 60), + S(-90, -16), S(-9, -11), S(-24, 6), S(-40, 7), S(-46, 4), S(-63, 44), S(-93, 41), S(-112, 30), + S(-114, -36), S(-39, -63), S(-44, -33), S(-64, -32), S(-47, -50), S(-97, 4), S(-99, -14), S(-122, -17), + S(-176, -25), S(-75, -85), S(-51, -71), S(-47, -68), S(-54, -64), S(-73, -47), S(-93, -70), S(-125, -53), + S(-141, -24), S(-110, -19), S(-56, -55), S(-31, -72), S(-45, -57), S(-58, -45), S(-73, -53), S(-91, -37) }; inline const std::array QUEEN_PSQT = { - S(841, 869), S(881, 835), S(885, 840), S(765, 970), S(836, 888), S(780, 916), S(846, 831), S(782, 855), // - S(828, 908), S(755, 1002), S(751, 1057), S(662, 1089), S(691, 1035), S(680, 1034), S(729, 939), S(765, 879), // - S(786, 940), S(876, 936), S(815, 1013), S(799, 1023), S(758, 1006), S(725, 1004), S(796, 899), S(762, 871), // - S(854, 853), S(858, 921), S(821, 957), S(810, 1022), S(787, 1007), S(778, 941), S(816, 847), S(803, 815), // - S(819, 880), S(853, 841), S(827, 911), S(787, 969), S(775, 956), S(781, 913), S(793, 834), S(795, 785), // - S(829, 721), S(853, 765), S(854, 834), S(801, 861), S(812, 818), S(816, 823), S(826, 752), S(803, 759), // - S(814, 615), S(847, 515), S(835, 651), S(851, 724), S(825, 744), S(842, 672), S(816, 735), S(799, 737), // - S(758, 695), S(819, 445), S(815, 457), S(842, 552), S(845, 634), S(848, 589), S(835, 628), S(781, 705), // + S(36, 33), S(76, -1), S(80, 4), S(-40, 134), S(31, 52), S(-25, 80), S(41, -5), S(-23, 19), + S(23, 72), S(-50, 166), S(-54, 221), S(-143, 253), S(-114, 199), S(-125, 198), S(-76, 103), S(-40, 43), + S(-19, 104), S(71, 100), S(10, 177), S(-6, 187), S(-47, 170), S(-80, 168), S(-9, 63), S(-43, 35), + S(49, 17), S(53, 85), S(16, 121), S(5, 186), S(-18, 171), S(-27, 105), S(11, 11), S(-2, -21), + S(14, 44), S(48, 5), S(22, 75), S(-18, 133), S(-30, 120), S(-24, 77), S(-12, -2), S(-10, -51), + S(24, -115), S(48, -71), S(49, -2), S(-4, 25), S(7, -18), S(11, -13), S(21, -84), S(-2, -77), + S(9, -221), S(42, -321), S(30, -185), S(46, -112), S(20, -92), S(37, -164), S(11, -101), S(-6, -99), + S(-47, -141), S(14, -391), S(10, -379), S(37, -284), S(40, -202), S(43, -247), S(30, -208), S(-24, -131) }; inline const std::array KING_PSQT = { - S(-161, -367), S(74, -10), S(-84, 43), S(-194, 68), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // - S(169, -102), S(-15, 155), S(1, 141), S(105, 71), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // - S(-58, 69), S(46, 147), S(85, 116), S(70, 71), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // - S(-278, 93), S(11, 108), S(3, 105), S(-51, 90), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // - S(-251, 50), S(-68, 81), S(-51, 86), S(-134, 122), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // - S(-156, 20), S(36, 23), S(-55, 74), S(-98, 99), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // - S(59, -71), S(113, -31), S(25, 16), S(-57, 59), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // - S(-64, -100), S(66, -90), S(-35, -54), S(-52, -53), S(0, 0), S(0, 0), S(0, 0), S(0, 0), // + S(-145, -383), S(90, -26), S(-68, 27), S(-178, 52), S(16, -16), S(16, -16), S(16, -16), S(16, -16), + S(185, -118), S(1, 139), S(17, 125), S(121, 55), S(16, -16), S(16, -16), S(16, -16), S(16, -16), + S(-42, 53), S(62, 131), S(101, 100), S(86, 55), S(16, -16), S(16, -16), S(16, -16), S(16, -16), + S(-262, 77), S(27, 92), S(19, 89), S(-35, 74), S(16, -16), S(16, -16), S(16, -16), S(16, -16), + S(-235, 34), S(-52, 65), S(-35, 70), S(-118, 106), S(16, -16), S(16, -16), S(16, -16), S(16, -16), + S(-140, 4), S(52, 7), S(-39, 58), S(-82, 83), S(16, -16), S(16, -16), S(16, -16), S(16, -16), + S(75, -87), S(129, -47), S(41, 0), S(-41, 43), S(16, -16), S(16, -16), S(16, -16), S(16, -16), + S(-48, -116), S(82, -106), S(-19, -70), S(-36, -69), S(16, -16), S(16, -16), S(16, -16), S(16, -16) }; // Epoch duration: 3.39711