diff --git a/src/evaluation/mobility.rs b/src/evaluation/mobility.rs index 8e07e091..171fcd83 100644 --- a/src/evaluation/mobility.rs +++ b/src/evaluation/mobility.rs @@ -19,6 +19,10 @@ pub struct MobilityData { #[derive(Default)] pub struct EvalAux { pub king_area_threats: i8, + pub knight_threats: u64, + pub bishop_threats: u64, + pub rook_threats: u64, + pub queen_threats: u64, } pub struct PieceMobility { diff --git a/src/evaluation/params.rs b/src/evaluation/params.rs index 43e199ae..adcba14e 100644 --- a/src/evaluation/params.rs +++ b/src/evaluation/params.rs @@ -1,22 +1,26 @@ // ------------------------------------------------------------------------- // -// Generated at 23-12-2024 19:19:23 UTC (e = 0.067721, k = 0.0077, r = 0.70) // +// Generated at 28-12-2024 13:59:28 UTC (e = 0.067562, k = 0.0077, r = 0.70) // // ------------------------------------------------------------------------- // use super::*; pub const TEMPO: i16 = 15; -pub const BISHOP_PAIR: PackedEval = s!(21, 55); -pub const PAWNS_ATTACKING_PIECES: PackedEval = s!(42, 40); -pub const ROOK_OPEN_FILE: PackedEval = s!(24, -3); -pub const ROOK_SEMI_OPEN_FILE: PackedEval = s!(9, 14); -pub const MOBILITY_INNER: [PackedEval; 6] = [s!(0, 0), s!(11, 2), s!(10, 12), s!(7, 2), s!(4, 7), s!(0, 0)]; -pub const MOBILITY_OUTER: [PackedEval; 6] = [s!(0, 0), s!(3, 0), s!(3, 0), s!(3, 0), s!(2, 0), s!(0, 0)]; +pub const BISHOP_PAIR: PackedEval = s!(20, 55); +pub const PAWNS_ATTACKING_PIECES: PackedEval = s!(42, 43); +pub const ROOK_OPEN_FILE: PackedEval = s!(24, -4); +pub const ROOK_SEMI_OPEN_FILE: PackedEval = s!(9, 15); +pub const MOBILITY_INNER: [PackedEval; 6] = [s!(0, 0), s!(11, 2), s!(10, 12), s!(7, 2), s!(4, 5), s!(0, 0)]; +pub const MOBILITY_OUTER: [PackedEval; 6] = [s!(0, 0), s!(3, 0), s!(2, 0), s!(3, 1), s!(2, 0), s!(0, 0)]; pub const DOUBLED_PAWN: [PackedEval; 8] = [s!(-1, -8), s!(-15, -20), s!(-25, -41), s!(-54, -49), s!(-22, -39), s!(0, 0), s!(0, 0), s!(0, 0)]; -pub const ISOLATED_PAWN: [PackedEval; 8] = [s!(-0, -9), s!(-13, -20), s!(-23, -31), s!(-34, -39), s!(-37, -56), s!(0, 0), s!(0, 0), s!(0, 0)]; -pub const CHAINED_PAWN: [PackedEval; 8] = [s!(1, 1), s!(11, 8), s!(19, 18), s!(26, 32), s!(32, 49), s!(39, 62), s!(43, 42), s!(0, 0)]; -pub const PASSED_PAWN: [PackedEval; 8] = [s!(10, -33), s!(15, 16), s!(19, 55), s!(31, 59), s!(42, 51), s!(22, 41), s!(25, 14), s!(37, 26)]; -pub const BACKWARD_PAWN_OPEN_FILE: [PackedEval; 8] = [s!(36, 21), s!(23, 10), s!(10, 0), s!(-6, 9), s!(15, 43), s!(0, 0), s!(0, 0), s!(0, 0)]; -pub const BACKWARD_PAWN_CLOSED_FILE: [PackedEval; 8] = [s!(21, 19), s!(17, 16), s!(16, 7), s!(13, 6), s!(14, 41), s!(0, 0), s!(0, 0), s!(0, 0)]; -pub const PAWN_SHIELD: [PackedEval; 8] = [s!(1, 14), s!(13, 18), s!(21, 20), s!(22, 20), s!(66, 13), s!(20, 21), s!(0, 0), s!(0, 0)]; -pub const PAWN_SHIELD_OPEN_FILE: [PackedEval; 8] = [s!(-22, -21), s!(-22, -19), s!(-27, -20), s!(-33, -26), s!(0, 0), s!(0, 0), s!(0, 0), s!(0, 0)]; -pub const KING_AREA_THREATS: [PackedEval; 8] = [s!(-55, 44), s!(-57, 39), s!(-50, 37), s!(-33, 34), s!(-1, 17), s!(43, 0), s!(89, -21), s!(170, -60)]; +pub const ISOLATED_PAWN: [PackedEval; 8] = [s!(-1, -9), s!(-13, -20), s!(-24, -31), s!(-33, -39), s!(-37, -56), s!(0, 0), s!(0, 0), s!(0, 0)]; +pub const CHAINED_PAWN: [PackedEval; 8] = [s!(0, 1), s!(10, 8), s!(19, 18), s!(26, 32), s!(32, 49), s!(40, 62), s!(44, 42), s!(0, 0)]; +pub const PASSED_PAWN: [PackedEval; 8] = [s!(11, -33), s!(16, 17), s!(19, 55), s!(30, 59), s!(41, 50), s!(22, 41), s!(25, 14), s!(37, 26)]; +pub const BACKWARD_PAWN_OPEN_FILE: [PackedEval; 8] = [s!(36, 21), s!(23, 11), s!(10, 0), s!(-6, 8), s!(15, 43), s!(0, 0), s!(0, 0), s!(0, 0)]; +pub const BACKWARD_PAWN_CLOSED_FILE: [PackedEval; 8] = [s!(21, 19), s!(17, 16), s!(16, 8), s!(14, 5), s!(14, 41), s!(0, 0), s!(0, 0), s!(0, 0)]; +pub const PAWN_SHIELD: [PackedEval; 8] = [s!(3, 15), s!(14, 19), s!(20, 20), s!(20, 19), s!(65, 12), s!(20, 21), s!(0, 0), s!(0, 0)]; +pub const PAWN_SHIELD_OPEN_FILE: [PackedEval; 8] = [s!(-25, -21), s!(-24, -18), s!(-26, -20), s!(-29, -27), s!(0, 0), s!(0, 0), s!(0, 0), s!(0, 0)]; +pub const KING_AREA_THREATS: [PackedEval; 8] = [s!(-53, 42), s!(-55, 37), s!(-48, 36), s!(-32, 33), s!(0, 16), s!(41, 1), s!(86, -20), s!(166, -56)]; +pub const KNIGHT_SAFE_CHECKS: [PackedEval; 8] = [s!(-118, 50), s!(-75, 46), s!(-34, 37), s!(-40, 35), s!(7, 14), s!(0, 0), s!(0, 0), s!(0, 0)]; +pub const BISHOP_SAFE_CHECKS: [PackedEval; 8] = [s!(-88, 37), s!(-85, 54), s!(-54, 46), s!(0, 0), s!(0, 0), s!(0, 0), s!(0, 0), s!(0, 0)]; +pub const ROOK_SAFE_CHECKS: [PackedEval; 8] = [s!(-118, 41), s!(-70, 32), s!(-48, 30), s!(-32, 57), s!(17, 34), s!(0, 0), s!(0, 0), s!(0, 0)]; +pub const QUEEN_SAFE_CHECKS: [PackedEval; 8] = [s!(-110, 29), s!(-104, 62), s!(-81, 60), s!(-39, 37), s!(34, 5), s!(82, -5), s!(131, -20), s!(202, -69)]; diff --git a/src/evaluation/pst/bishop.rs b/src/evaluation/pst/bishop.rs index 434c312c..b0988ee6 100644 --- a/src/evaluation/pst/bishop.rs +++ b/src/evaluation/pst/bishop.rs @@ -1,5 +1,5 @@ // ------------------------------------------------------------------------- // -// Generated at 23-12-2024 19:19:23 UTC (e = 0.067721, k = 0.0077, r = 0.70) // +// Generated at 28-12-2024 13:59:28 UTC (e = 0.067562, k = 0.0077, r = 0.70) // // ------------------------------------------------------------------------- // use super::*; @@ -10,83 +10,83 @@ pub const BISHOP_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = [ [ s!( 285, 301), s!( 347, 288), s!( 291, 316), s!( 303, 324), s!( 302, 330), s!( 316, 312), s!( 331, 292), s!( 333, 290), - s!( 294, 287), s!( 318, 302), s!( 360, 307), s!( 342, 296), s!( 369, 292), s!( 330, 298), s!( 319, 316), s!( 280, 296), - s!( 330, 296), s!( 346, 318), s!( 355, 305), s!( 392, 302), s!( 365, 305), s!( 422, 308), s!( 363, 319), s!( 358, 313), - s!( 334, 301), s!( 349, 299), s!( 372, 300), s!( 382, 297), s!( 404, 286), s!( 385, 312), s!( 361, 322), s!( 340, 310), - s!( 324, 295), s!( 338, 291), s!( 356, 304), s!( 374, 297), s!( 369, 293), s!( 368, 314), s!( 350, 305), s!( 362, 296), - s!( 326, 292), s!( 344, 290), s!( 359, 306), s!( 357, 302), s!( 363, 324), s!( 372, 307), s!( 369, 299), s!( 374, 287), - s!( 343, 274), s!( 335, 267), s!( 354, 273), s!( 345, 294), s!( 336, 292), s!( 370, 276), s!( 379, 279), s!( 375, 262), - s!( 306, 270), s!( 347, 270), s!( 352, 237), s!( 339, 284), s!( 358, 287), s!( 354, 275), s!( 364, 244), s!( 332, 250), + s!( 294, 287), s!( 318, 302), s!( 359, 307), s!( 342, 296), s!( 369, 292), s!( 330, 298), s!( 319, 316), s!( 280, 296), + s!( 330, 296), s!( 346, 318), s!( 355, 305), s!( 391, 301), s!( 365, 305), s!( 421, 308), s!( 363, 319), s!( 359, 313), + s!( 334, 301), s!( 350, 299), s!( 372, 300), s!( 382, 297), s!( 403, 285), s!( 385, 312), s!( 362, 322), s!( 340, 310), + s!( 324, 295), s!( 339, 291), s!( 357, 305), s!( 374, 297), s!( 369, 293), s!( 368, 314), s!( 350, 305), s!( 362, 296), + s!( 327, 292), s!( 345, 291), s!( 359, 306), s!( 357, 302), s!( 363, 324), s!( 372, 307), s!( 368, 298), s!( 373, 287), + s!( 343, 274), s!( 335, 267), s!( 354, 273), s!( 346, 294), s!( 336, 292), s!( 370, 276), s!( 378, 277), s!( 374, 262), + s!( 306, 270), s!( 347, 270), s!( 352, 238), s!( 339, 284), s!( 357, 287), s!( 354, 275), s!( 363, 243), s!( 332, 250), ], [ - s!( 306, 303), s!( 314, 305), s!( 306, 322), s!( 301, 329), s!( 315, 339), s!( 281, 327), s!( 336, 336), s!( 305, 291), - s!( 286, 306), s!( 336, 306), s!( 332, 309), s!( 343, 313), s!( 344, 307), s!( 304, 341), s!( 282, 323), s!( 278, 302), - s!( 343, 318), s!( 355, 323), s!( 367, 320), s!( 378, 306), s!( 375, 315), s!( 404, 324), s!( 352, 343), s!( 336, 336), - s!( 325, 313), s!( 351, 324), s!( 355, 329), s!( 375, 318), s!( 369, 306), s!( 361, 334), s!( 341, 331), s!( 337, 328), - s!( 350, 300), s!( 336, 314), s!( 353, 331), s!( 354, 322), s!( 372, 302), s!( 349, 331), s!( 351, 315), s!( 356, 288), - s!( 328, 310), s!( 351, 313), s!( 350, 320), s!( 353, 323), s!( 353, 340), s!( 376, 316), s!( 362, 305), s!( 374, 293), - s!( 349, 298), s!( 336, 295), s!( 356, 293), s!( 334, 315), s!( 350, 309), s!( 370, 295), s!( 394, 290), s!( 364, 240), - s!( 319, 269), s!( 350, 274), s!( 334, 296), s!( 352, 300), s!( 343, 300), s!( 374, 289), s!( 360, 277), s!( 377, 244), + s!( 305, 303), s!( 314, 305), s!( 306, 322), s!( 301, 329), s!( 315, 339), s!( 281, 327), s!( 335, 336), s!( 305, 291), + s!( 285, 306), s!( 336, 306), s!( 332, 309), s!( 343, 313), s!( 344, 308), s!( 304, 341), s!( 282, 323), s!( 279, 302), + s!( 343, 319), s!( 354, 323), s!( 367, 320), s!( 378, 307), s!( 376, 315), s!( 405, 324), s!( 353, 343), s!( 336, 336), + s!( 326, 314), s!( 351, 324), s!( 355, 329), s!( 375, 318), s!( 369, 307), s!( 362, 334), s!( 342, 331), s!( 338, 328), + s!( 350, 301), s!( 337, 314), s!( 354, 332), s!( 354, 322), s!( 372, 302), s!( 349, 331), s!( 351, 315), s!( 356, 289), + s!( 328, 311), s!( 351, 314), s!( 351, 321), s!( 354, 323), s!( 353, 340), s!( 376, 315), s!( 363, 305), s!( 374, 294), + s!( 349, 298), s!( 336, 295), s!( 356, 294), s!( 334, 315), s!( 350, 309), s!( 368, 295), s!( 393, 289), s!( 364, 240), + s!( 319, 269), s!( 350, 275), s!( 334, 296), s!( 351, 300), s!( 342, 300), s!( 373, 287), s!( 360, 277), s!( 376, 244), ], [ s!( 288, 300), s!( 332, 311), s!( 300, 331), s!( 309, 334), s!( 292, 336), s!( 312, 318), s!( 330, 321), s!( 318, 275), s!( 288, 301), s!( 338, 314), s!( 357, 322), s!( 334, 321), s!( 349, 313), s!( 331, 320), s!( 314, 330), s!( 295, 302), s!( 329, 317), s!( 374, 317), s!( 376, 321), s!( 397, 310), s!( 387, 318), s!( 443, 320), s!( 407, 316), s!( 362, 326), - s!( 335, 316), s!( 382, 311), s!( 369, 326), s!( 407, 303), s!( 391, 304), s!( 391, 318), s!( 377, 319), s!( 364, 319), - s!( 367, 313), s!( 353, 313), s!( 385, 314), s!( 400, 304), s!( 408, 289), s!( 380, 319), s!( 362, 308), s!( 384, 296), - s!( 328, 313), s!( 385, 302), s!( 377, 320), s!( 384, 318), s!( 377, 324), s!( 417, 301), s!( 391, 297), s!( 364, 290), - s!( 370, 275), s!( 353, 295), s!( 370, 304), s!( 364, 313), s!( 376, 299), s!( 382, 305), s!( 384, 293), s!( 356, 270), - s!( 311, 299), s!( 360, 292), s!( 352, 293), s!( 341, 316), s!( 340, 315), s!( 357, 306), s!( 332, 295), s!( 335, 281), + s!( 335, 316), s!( 382, 311), s!( 369, 326), s!( 407, 303), s!( 391, 305), s!( 391, 318), s!( 377, 319), s!( 364, 319), + s!( 367, 313), s!( 353, 313), s!( 384, 314), s!( 400, 304), s!( 408, 289), s!( 380, 319), s!( 362, 308), s!( 384, 296), + s!( 328, 313), s!( 385, 302), s!( 377, 320), s!( 383, 318), s!( 377, 323), s!( 415, 301), s!( 390, 297), s!( 365, 290), + s!( 370, 275), s!( 353, 295), s!( 370, 304), s!( 364, 313), s!( 374, 299), s!( 382, 305), s!( 383, 293), s!( 356, 270), + s!( 311, 299), s!( 360, 292), s!( 352, 293), s!( 341, 316), s!( 340, 315), s!( 358, 306), s!( 332, 295), s!( 335, 281), ], [ s!( 272, 308), s!( 308, 316), s!( 278, 331), s!( 303, 333), s!( 277, 345), s!( 302, 331), s!( 331, 294), s!( 298, 288), - s!( 287, 300), s!( 322, 318), s!( 310, 337), s!( 321, 339), s!( 327, 329), s!( 287, 337), s!( 318, 320), s!( 274, 300), - s!( 342, 308), s!( 369, 328), s!( 348, 332), s!( 361, 327), s!( 349, 333), s!( 381, 336), s!( 357, 335), s!( 329, 334), - s!( 332, 325), s!( 346, 323), s!( 325, 341), s!( 353, 317), s!( 347, 321), s!( 358, 329), s!( 339, 327), s!( 339, 312), - s!( 340, 316), s!( 316, 324), s!( 350, 333), s!( 354, 322), s!( 357, 311), s!( 345, 333), s!( 350, 317), s!( 356, 293), - s!( 324, 318), s!( 353, 323), s!( 357, 336), s!( 354, 331), s!( 355, 339), s!( 371, 325), s!( 356, 305), s!( 346, 309), - s!( 351, 303), s!( 341, 308), s!( 360, 314), s!( 341, 319), s!( 353, 311), s!( 369, 298), s!( 369, 293), s!( 357, 272), - s!( 323, 300), s!( 351, 302), s!( 323, 299), s!( 323, 326), s!( 336, 320), s!( 331, 292), s!( 335, 288), s!( 302, 301), + s!( 287, 300), s!( 322, 318), s!( 310, 336), s!( 321, 339), s!( 327, 329), s!( 287, 337), s!( 317, 320), s!( 274, 300), + s!( 342, 308), s!( 369, 328), s!( 348, 332), s!( 361, 327), s!( 349, 333), s!( 381, 336), s!( 357, 335), s!( 330, 334), + s!( 332, 324), s!( 346, 323), s!( 326, 341), s!( 354, 318), s!( 347, 321), s!( 359, 329), s!( 339, 327), s!( 340, 312), + s!( 340, 316), s!( 316, 324), s!( 350, 333), s!( 355, 322), s!( 357, 311), s!( 345, 333), s!( 350, 317), s!( 356, 293), + s!( 324, 318), s!( 353, 323), s!( 356, 335), s!( 354, 330), s!( 355, 338), s!( 372, 325), s!( 356, 305), s!( 346, 309), + s!( 351, 303), s!( 341, 308), s!( 360, 314), s!( 340, 319), s!( 353, 310), s!( 369, 298), s!( 370, 293), s!( 356, 272), + s!( 323, 301), s!( 350, 302), s!( 324, 300), s!( 323, 326), s!( 336, 320), s!( 331, 292), s!( 335, 288), s!( 302, 301), ], [ s!( 287, 299), s!( 338, 298), s!( 294, 333), s!( 311, 336), s!( 292, 345), s!( 318, 334), s!( 336, 305), s!( 318, 290), s!( 303, 294), s!( 331, 323), s!( 321, 331), s!( 333, 335), s!( 355, 323), s!( 353, 328), s!( 333, 321), s!( 287, 316), - s!( 348, 325), s!( 372, 328), s!( 407, 326), s!( 379, 329), s!( 396, 322), s!( 425, 326), s!( 355, 328), s!( 389, 307), + s!( 348, 325), s!( 372, 328), s!( 407, 326), s!( 379, 328), s!( 396, 322), s!( 425, 326), s!( 355, 328), s!( 389, 307), s!( 334, 326), s!( 377, 318), s!( 394, 330), s!( 382, 317), s!( 394, 313), s!( 395, 318), s!( 374, 320), s!( 355, 320), - s!( 371, 320), s!( 349, 318), s!( 393, 313), s!( 407, 304), s!( 380, 307), s!( 388, 316), s!( 384, 315), s!( 363, 298), - s!( 359, 314), s!( 376, 315), s!( 410, 315), s!( 403, 318), s!( 384, 331), s!( 393, 314), s!( 355, 303), s!( 347, 307), - s!( 374, 291), s!( 354, 289), s!( 360, 315), s!( 382, 305), s!( 366, 318), s!( 373, 302), s!( 339, 314), s!( 355, 276), + s!( 371, 320), s!( 349, 318), s!( 393, 313), s!( 407, 304), s!( 381, 307), s!( 388, 316), s!( 384, 315), s!( 363, 298), + s!( 359, 314), s!( 376, 315), s!( 410, 314), s!( 401, 317), s!( 384, 331), s!( 393, 314), s!( 355, 303), s!( 347, 307), + s!( 374, 291), s!( 355, 290), s!( 360, 315), s!( 382, 305), s!( 366, 318), s!( 373, 302), s!( 339, 314), s!( 355, 276), s!( 323, 294), s!( 376, 308), s!( 334, 313), s!( 348, 333), s!( 344, 309), s!( 346, 301), s!( 351, 296), s!( 318, 291), ], [ s!( 303, 305), s!( 357, 320), s!( 293, 316), s!( 302, 320), s!( 294, 326), s!( 307, 319), s!( 340, 308), s!( 310, 260), s!( 301, 305), s!( 319, 328), s!( 326, 329), s!( 333, 329), s!( 336, 321), s!( 342, 326), s!( 333, 302), s!( 302, 299), s!( 325, 339), s!( 374, 327), s!( 363, 336), s!( 385, 315), s!( 392, 318), s!( 404, 323), s!( 361, 326), s!( 379, 301), - s!( 349, 329), s!( 347, 335), s!( 357, 337), s!( 359, 326), s!( 389, 298), s!( 377, 320), s!( 363, 317), s!( 341, 316), - s!( 363, 313), s!( 358, 324), s!( 356, 333), s!( 397, 301), s!( 364, 300), s!( 363, 326), s!( 361, 312), s!( 365, 303), - s!( 362, 307), s!( 373, 311), s!( 385, 319), s!( 369, 325), s!( 374, 326), s!( 362, 328), s!( 360, 309), s!( 344, 315), - s!( 363, 288), s!( 406, 281), s!( 400, 297), s!( 368, 313), s!( 347, 316), s!( 368, 294), s!( 344, 313), s!( 339, 301), - s!( 342, 284), s!( 341, 304), s!( 373, 310), s!( 339, 319), s!( 369, 304), s!( 349, 294), s!( 347, 294), s!( 299, 295), + s!( 349, 329), s!( 348, 335), s!( 358, 337), s!( 359, 326), s!( 389, 298), s!( 377, 320), s!( 363, 317), s!( 341, 316), + s!( 363, 313), s!( 359, 324), s!( 356, 332), s!( 397, 302), s!( 365, 301), s!( 363, 326), s!( 361, 312), s!( 365, 303), + s!( 362, 307), s!( 372, 311), s!( 385, 319), s!( 369, 325), s!( 373, 326), s!( 362, 328), s!( 360, 309), s!( 344, 315), + s!( 363, 288), s!( 404, 281), s!( 399, 297), s!( 367, 312), s!( 347, 316), s!( 368, 294), s!( 344, 313), s!( 339, 301), + s!( 342, 284), s!( 341, 304), s!( 373, 310), s!( 339, 319), s!( 369, 304), s!( 348, 295), s!( 347, 294), s!( 299, 295), ], [ s!( 294, 313), s!( 344, 309), s!( 286, 318), s!( 313, 327), s!( 292, 332), s!( 308, 306), s!( 325, 275), s!( 326, 281), s!( 288, 298), s!( 320, 336), s!( 351, 312), s!( 335, 300), s!( 354, 316), s!( 359, 304), s!( 347, 297), s!( 292, 304), - s!( 316, 337), s!( 363, 327), s!( 369, 343), s!( 387, 315), s!( 380, 303), s!( 413, 303), s!( 363, 325), s!( 384, 294), - s!( 361, 320), s!( 354, 333), s!( 386, 323), s!( 389, 314), s!( 404, 292), s!( 388, 309), s!( 365, 319), s!( 338, 317), - s!( 351, 317), s!( 367, 306), s!( 358, 333), s!( 391, 304), s!( 372, 309), s!( 362, 328), s!( 362, 305), s!( 358, 303), + s!( 316, 337), s!( 363, 327), s!( 369, 342), s!( 387, 315), s!( 380, 303), s!( 413, 303), s!( 363, 325), s!( 384, 294), + s!( 361, 320), s!( 355, 333), s!( 386, 323), s!( 389, 314), s!( 404, 292), s!( 388, 309), s!( 365, 319), s!( 338, 317), + s!( 351, 317), s!( 367, 306), s!( 359, 333), s!( 391, 304), s!( 372, 309), s!( 362, 328), s!( 362, 305), s!( 358, 303), s!( 363, 288), s!( 377, 312), s!( 379, 322), s!( 372, 325), s!( 367, 335), s!( 350, 332), s!( 361, 294), s!( 331, 299), - s!( 363, 258), s!( 409, 289), s!( 392, 283), s!( 362, 307), s!( 340, 319), s!( 340, 299), s!( 324, 306), s!( 319, 305), - s!( 344, 271), s!( 361, 282), s!( 383, 288), s!( 336, 306), s!( 367, 293), s!( 342, 281), s!( 345, 291), s!( 336, 278), + s!( 363, 258), s!( 408, 289), s!( 392, 283), s!( 362, 307), s!( 340, 319), s!( 340, 299), s!( 324, 306), s!( 319, 305), + s!( 344, 271), s!( 361, 282), s!( 383, 288), s!( 336, 306), s!( 367, 293), s!( 342, 282), s!( 345, 291), s!( 336, 278), ], [ s!( 296, 294), s!( 343, 291), s!( 299, 315), s!( 307, 317), s!( 301, 338), s!( 308, 306), s!( 333, 296), s!( 321, 277), - s!( 295, 294), s!( 345, 319), s!( 335, 316), s!( 328, 303), s!( 366, 322), s!( 367, 319), s!( 316, 289), s!( 284, 292), + s!( 295, 294), s!( 345, 319), s!( 335, 316), s!( 328, 303), s!( 366, 321), s!( 367, 319), s!( 316, 289), s!( 284, 292), s!( 336, 327), s!( 351, 310), s!( 386, 316), s!( 387, 298), s!( 381, 296), s!( 426, 301), s!( 370, 306), s!( 356, 311), s!( 350, 324), s!( 371, 321), s!( 392, 312), s!( 441, 287), s!( 398, 277), s!( 383, 303), s!( 354, 309), s!( 356, 311), s!( 379, 304), s!( 370, 297), s!( 399, 307), s!( 411, 288), s!( 383, 287), s!( 369, 306), s!( 372, 288), s!( 318, 302), - s!( 389, 309), s!( 386, 299), s!( 389, 316), s!( 375, 311), s!( 367, 311), s!( 340, 316), s!( 346, 297), s!( 334, 289), - s!( 356, 271), s!( 404, 292), s!( 386, 292), s!( 351, 290), s!( 352, 299), s!( 330, 293), s!( 308, 300), s!( 343, 274), - s!( 322, 276), s!( 362, 267), s!( 361, 297), s!( 371, 299), s!( 350, 286), s!( 338, 274), s!( 339, 297), s!( 326, 282), + s!( 389, 309), s!( 386, 299), s!( 389, 316), s!( 375, 311), s!( 368, 311), s!( 340, 316), s!( 346, 297), s!( 334, 289), + s!( 356, 271), s!( 403, 292), s!( 386, 292), s!( 351, 290), s!( 352, 299), s!( 330, 293), s!( 308, 300), s!( 343, 274), + s!( 322, 276), s!( 362, 267), s!( 361, 297), s!( 370, 299), s!( 349, 286), s!( 338, 274), s!( 339, 297), s!( 326, 282), ], [ s!( 289, 289), s!( 341, 273), s!( 286, 301), s!( 308, 318), s!( 299, 314), s!( 306, 304), s!( 331, 292), s!( 321, 277), @@ -112,7 +112,7 @@ pub const BISHOP_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( 295, 285), s!( 338, 292), s!( 298, 321), s!( 308, 321), s!( 295, 329), s!( 313, 307), s!( 334, 319), s!( 324, 280), s!( 294, 292), s!( 335, 289), s!( 356, 309), s!( 333, 314), s!( 359, 325), s!( 341, 324), s!( 322, 321), s!( 282, 306), s!( 324, 312), s!( 369, 305), s!( 377, 305), s!( 393, 299), s!( 384, 302), s!( 444, 308), s!( 401, 318), s!( 359, 318), - s!( 331, 322), s!( 382, 312), s!( 365, 325), s!( 405, 299), s!( 397, 295), s!( 397, 285), s!( 375, 319), s!( 375, 313), + s!( 331, 322), s!( 382, 312), s!( 365, 325), s!( 405, 299), s!( 397, 295), s!( 397, 286), s!( 375, 319), s!( 375, 313), s!( 365, 300), s!( 363, 316), s!( 391, 308), s!( 404, 297), s!( 403, 300), s!( 375, 301), s!( 358, 322), s!( 381, 299), s!( 335, 314), s!( 380, 298), s!( 388, 306), s!( 380, 306), s!( 376, 312), s!( 411, 300), s!( 378, 302), s!( 363, 295), s!( 389, 302), s!( 362, 289), s!( 367, 296), s!( 360, 302), s!( 361, 291), s!( 371, 299), s!( 376, 282), s!( 359, 277), @@ -143,7 +143,7 @@ pub const BISHOP_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( 290, 297), s!( 332, 323), s!( 327, 308), s!( 336, 320), s!( 343, 299), s!( 357, 302), s!( 328, 280), s!( 314, 293), s!( 315, 319), s!( 375, 328), s!( 375, 352), s!( 389, 306), s!( 391, 302), s!( 411, 309), s!( 380, 319), s!( 389, 293), s!( 346, 329), s!( 356, 347), s!( 350, 336), s!( 391, 326), s!( 385, 288), s!( 388, 307), s!( 367, 312), s!( 341, 315), - s!( 360, 304), s!( 354, 333), s!( 362, 329), s!( 391, 307), s!( 375, 304), s!( 367, 306), s!( 373, 305), s!( 357, 299), + s!( 360, 304), s!( 354, 333), s!( 362, 330), s!( 391, 307), s!( 375, 304), s!( 367, 306), s!( 373, 305), s!( 357, 299), s!( 373, 300), s!( 384, 302), s!( 391, 308), s!( 381, 317), s!( 371, 318), s!( 360, 321), s!( 357, 316), s!( 344, 316), s!( 360, 279), s!( 398, 278), s!( 408, 276), s!( 372, 298), s!( 342, 295), s!( 363, 279), s!( 339, 315), s!( 316, 307), s!( 326, 295), s!( 336, 289), s!( 378, 285), s!( 348, 323), s!( 365, 309), s!( 347, 296), s!( 346, 307), s!( 315, 305), @@ -152,7 +152,7 @@ pub const BISHOP_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( 295, 303), s!( 344, 302), s!( 283, 301), s!( 312, 320), s!( 291, 307), s!( 307, 297), s!( 328, 277), s!( 323, 277), s!( 279, 295), s!( 334, 329), s!( 354, 324), s!( 336, 301), s!( 355, 308), s!( 366, 287), s!( 334, 274), s!( 294, 296), s!( 318, 333), s!( 365, 330), s!( 366, 332), s!( 386, 313), s!( 384, 276), s!( 416, 286), s!( 376, 308), s!( 382, 305), - s!( 342, 308), s!( 374, 336), s!( 377, 322), s!( 400, 300), s!( 400, 275), s!( 395, 286), s!( 360, 307), s!( 344, 305), + s!( 342, 308), s!( 374, 336), s!( 377, 323), s!( 400, 300), s!( 400, 275), s!( 395, 286), s!( 360, 307), s!( 344, 305), s!( 364, 311), s!( 364, 315), s!( 371, 296), s!( 392, 282), s!( 378, 295), s!( 348, 314), s!( 357, 307), s!( 351, 293), s!( 367, 290), s!( 382, 307), s!( 382, 294), s!( 379, 301), s!( 359, 310), s!( 350, 317), s!( 348, 300), s!( 340, 304), s!( 351, 260), s!( 407, 264), s!( 399, 275), s!( 363, 301), s!( 341, 316), s!( 339, 303), s!( 323, 299), s!( 316, 282), @@ -172,73 +172,73 @@ pub const BISHOP_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = [ [ s!( 2, 8), s!( -4, 6), s!( 8, 10), s!( -1, -4), s!( 13, 8), s!( 15, 3), s!( 13, 20), s!( -2, 1), - s!( 7, 13), s!( -23, 2), s!( -3, 2), s!( 14, -6), s!( -6, -6), s!( 4, 16), s!( -18, -7), s!( -20, 14), - s!( -19, 6), s!( -13, 5), s!( -26, 16), s!( -10, -11), s!( -34, 28), s!( 8, 20), s!( -9, 21), s!( -10, 30), - s!( -3, 6), s!( -8, -5), s!( -11, -9), s!( -16, 14), s!( 12, 8), s!( -8, 3), s!( 5, -8), s!( -13, 11), - s!( -13, 4), s!( -5, -13), s!( -10, 11), s!( 26, -5), s!( -8, 16), s!( -3, -23), s!( 1, -4), s!( -12, 5), - s!( -0, -17), s!( -5, 14), s!( 2, 17), s!( 3, 23), s!( -2, -3), s!( -9, 4), s!( -6, -2), s!( -13, 3), - s!( -12, 3), s!( -2, -15), s!( -6, 2), s!( -6, -4), s!( -5, -1), s!( -11, -9), s!( -16, 4), s!( -10, -19), - s!( -5, -26), s!( -0, -0), s!( -5, -34), s!( 1, -4), s!( -4, -9), s!( -8, -12), s!( -10, -4), s!( -11, 6), + s!( 7, 13), s!( -23, 2), s!( -3, 2), s!( 14, -6), s!( -6, -6), s!( 4, 16), s!( -18, -7), s!( -19, 14), + s!( -19, 6), s!( -14, 5), s!( -26, 16), s!( -10, -11), s!( -34, 28), s!( 8, 20), s!( -9, 21), s!( -9, 30), + s!( -3, 6), s!( -8, -5), s!( -11, -9), s!( -16, 14), s!( 11, 7), s!( -7, 4), s!( 5, -8), s!( -13, 11), + s!( -13, 4), s!( -5, -13), s!( -10, 11), s!( 25, -5), s!( -7, 16), s!( -3, -23), s!( 1, -4), s!( -12, 5), + s!( -0, -17), s!( -6, 14), s!( 1, 16), s!( 2, 22), s!( -3, -3), s!( -9, 4), s!( -7, -3), s!( -14, 3), + s!( -12, 3), s!( -3, -15), s!( -7, 2), s!( -7, -5), s!( -5, -1), s!( -12, -9), s!( -17, 3), s!( -10, -19), + s!( -5, -26), s!( -0, -0), s!( -5, -33), s!( 0, -4), s!( -5, -9), s!( -8, -12), s!( -10, -4), s!( -11, 6), ], [ - s!( -15, 11), s!( -28, 10), s!( -17, 12), s!( 3, 13), s!( -4, 3), s!( -41, -3), s!( 4, -10), s!( 8, 4), - s!( -9, 38), s!( -26, 14), s!( -11, 5), s!( -27, 11), s!( -13, 10), s!( -51, -14), s!( -22, -6), s!( -60, -29), - s!( -16, 3), s!( -23, 12), s!( -27, 15), s!( -25, 8), s!( 13, 9), s!( 3, 22), s!( -22, 18), s!( 9, 16), - s!( 8, 3), s!( -17, 9), s!( -20, 11), s!( -5, 15), s!( -25, 13), s!( -18, 14), s!( -11, -2), s!( -8, 4), - s!( -18, 11), s!( -9, 12), s!( -10, 26), s!( -9, 11), s!( -18, 9), s!( -18, -3), s!( -22, 11), s!( -11, 1), - s!( -2, -1), s!( -2, 15), s!( -5, 19), s!( -10, 11), s!( -15, 11), s!( -22, 14), s!( -17, 2), s!( -17, 8), - s!( 2, 2), s!( -2, -3), s!( -8, -2), s!( -14, 5), s!( -15, 2), s!( -18, 11), s!( -23, 2), s!( -15, 4), - s!( 15, -12), s!( 7, -26), s!( -7, -15), s!( -16, 3), s!( -13, 6), s!( -24, 5), s!( 0, 8), s!( -29, 2), + s!( -15, 11), s!( -29, 10), s!( -17, 12), s!( 3, 13), s!( -4, 3), s!( -42, -3), s!( 4, -10), s!( 8, 4), + s!( -9, 38), s!( -26, 14), s!( -11, 5), s!( -27, 11), s!( -13, 10), s!( -51, -13), s!( -22, -6), s!( -60, -29), + s!( -16, 4), s!( -23, 12), s!( -27, 14), s!( -25, 8), s!( 13, 10), s!( 3, 22), s!( -21, 18), s!( 10, 16), + s!( 8, 3), s!( -17, 9), s!( -20, 11), s!( -5, 15), s!( -25, 14), s!( -17, 14), s!( -11, -2), s!( -8, 4), + s!( -18, 11), s!( -8, 12), s!( -10, 26), s!( -9, 10), s!( -18, 9), s!( -18, -2), s!( -22, 11), s!( -12, 2), + s!( -2, -0), s!( -2, 15), s!( -6, 18), s!( -10, 11), s!( -15, 11), s!( -23, 13), s!( -18, 2), s!( -18, 8), + s!( 1, 2), s!( -2, -3), s!( -8, -1), s!( -14, 4), s!( -16, 2), s!( -18, 11), s!( -23, 2), s!( -15, 4), + s!( 15, -12), s!( 6, -25), s!( -8, -14), s!( -16, 4), s!( -14, 6), s!( -24, 5), s!( -1, 8), s!( -29, 2), ], [ s!( 3, 12), s!( 3, 5), s!( 3, 3), s!( 0, 9), s!( -12, 3), s!( 4, -7), s!( -8, -9), s!( 5, -3), - s!( 17, 12), s!( -11, -13), s!( 35, -6), s!( 11, -15), s!( -17, -19), s!( -70, -4), s!( -17, -21), s!( 14, -24), - s!( 3, -12), s!( 4, -3), s!( -8, -4), s!( 20, -10), s!( 16, -16), s!( 29, -4), s!( 8, -8), s!( 8, -26), - s!( 6, 12), s!( -24, -1), s!( 37, -16), s!( 3, -12), s!( 34, -19), s!( 9, -13), s!( 12, -7), s!( -7, -3), - s!( -14, 2), s!( 22, -9), s!( 10, -8), s!( 24, -11), s!( -7, -10), s!( 13, -14), s!( 11, -13), s!( -1, 0), - s!( 9, -7), s!( 18, -10), s!( 7, 0), s!( 0, -6), s!( 10, -7), s!( 5, -15), s!( 3, -3), s!( -23, -7), - s!( -9, -4), s!( 15, -7), s!( -5, -6), s!( 14, -14), s!( -3, -9), s!( 12, -12), s!( -6, -12), s!( 6, -7), + s!( 17, 12), s!( -10, -13), s!( 35, -7), s!( 11, -14), s!( -17, -19), s!( -71, -4), s!( -17, -21), s!( 15, -24), + s!( 3, -12), s!( 4, -3), s!( -8, -4), s!( 20, -10), s!( 17, -16), s!( 29, -4), s!( 8, -8), s!( 8, -26), + s!( 6, 11), s!( -23, -1), s!( 37, -16), s!( 3, -11), s!( 34, -19), s!( 9, -13), s!( 12, -8), s!( -6, -3), + s!( -13, 3), s!( 23, -9), s!( 10, -7), s!( 24, -11), s!( -7, -10), s!( 13, -14), s!( 11, -13), s!( -1, 0), + s!( 10, -7), s!( 18, -10), s!( 7, 0), s!( 1, -6), s!( 10, -8), s!( 5, -15), s!( 3, -3), s!( -22, -6), + s!( -9, -4), s!( 15, -7), s!( -5, -6), s!( 13, -14), s!( -4, -10), s!( 12, -12), s!( -6, -12), s!( 6, -7), s!( -19, -9), s!( -10, -7), s!( -3, -0), s!( -13, -4), s!( 3, -6), s!( -19, -2), s!( -9, -15), s!( -4, 2), ], [ - s!( -3, -3), s!( -9, 5), s!( 6, -10), s!( -3, 4), s!( -2, -7), s!( 2, -2), s!( -3, -19), s!( -13, -4), - s!( 15, 15), s!( -15, -8), s!( 8, -11), s!( -11, -15), s!( -15, -2), s!( -40, -18), s!( 10, -2), s!( 13, -27), - s!( -9, 2), s!( -3, -10), s!( 14, -19), s!( 27, -8), s!( 10, -21), s!( -12, -6), s!( 5, -30), s!( 20, -34), - s!( 9, 5), s!( -15, 1), s!( 17, -6), s!( -12, -14), s!( -16, -8), s!( -10, -4), s!( -16, 1), s!( -4, -16), - s!( -7, 10), s!( 8, 3), s!( -16, -1), s!( -11, -6), s!( -29, -2), s!( -22, 5), s!( -21, -6), s!( -13, 5), - s!( 10, 6), s!( -3, -5), s!( -12, 2), s!( -21, -9), s!( -25, 1), s!( -29, -6), s!( -13, -2), s!( -12, -2), - s!( -4, -11), s!( -4, -2), s!( -14, -11), s!( -19, -1), s!( -28, -6), s!( -22, 3), s!( -27, 3), s!( -8, -2), - s!( -2, -14), s!( -3, -19), s!( -16, 4), s!( -12, -9), s!( -24, -3), s!( -27, -4), s!( -11, -6), s!( -19, 7), + s!( -4, -3), s!( -9, 5), s!( 6, -10), s!( -3, 4), s!( -2, -7), s!( 2, -2), s!( -3, -19), s!( -13, -4), + s!( 15, 15), s!( -15, -8), s!( 7, -11), s!( -11, -15), s!( -15, -2), s!( -40, -18), s!( 11, -2), s!( 13, -27), + s!( -9, 2), s!( -3, -10), s!( 14, -18), s!( 26, -8), s!( 10, -21), s!( -12, -6), s!( 5, -30), s!( 20, -34), + s!( 9, 5), s!( -14, 1), s!( 17, -6), s!( -11, -14), s!( -15, -7), s!( -10, -4), s!( -16, 1), s!( -3, -16), + s!( -7, 10), s!( 8, 3), s!( -17, -1), s!( -11, -6), s!( -28, -2), s!( -22, 5), s!( -21, -5), s!( -13, 5), + s!( 10, 6), s!( -4, -5), s!( -12, 2), s!( -21, -9), s!( -25, 1), s!( -29, -6), s!( -13, -2), s!( -12, -1), + s!( -4, -11), s!( -4, -1), s!( -14, -11), s!( -19, -1), s!( -27, -6), s!( -22, 3), s!( -27, 3), s!( -8, -2), + s!( -2, -14), s!( -4, -19), s!( -16, 4), s!( -12, -9), s!( -25, -3), s!( -26, -4), s!( -11, -6), s!( -20, 7), ], [ s!( -11, -6), s!( -6, -14), s!( -2, -13), s!( 4, 3), s!( -6, 1), s!( 2, -5), s!( -2, -4), s!( -14, 5), - s!( -4, 8), s!( 4, -14), s!( -24, -18), s!( -7, -11), s!( -13, -19), s!( 10, -0), s!( 19, -7), s!( -7, 4), - s!( -5, -8), s!( -11, -7), s!( 6, -12), s!( -13, -3), s!( 4, -4), s!( -22, -2), s!( -6, -9), s!( -19, -16), - s!( 3, 8), s!( 12, -8), s!( 7, -23), s!( 4, -15), s!( 31, -10), s!( 1, -5), s!( -3, -9), s!( -2, -2), - s!( 18, 4), s!( 7, -1), s!( -13, -3), s!( -3, -13), s!( 12, -10), s!( 3, -8), s!( -6, -6), s!( -23, 10), - s!( -1, -10), s!( 7, -6), s!( 3, -11), s!( -7, 0), s!( -8, -4), s!( -3, -5), s!( 6, 7), s!( 9, 10), - s!( -16, -3), s!( -3, 3), s!( 6, -3), s!( -8, -4), s!( -1, -6), s!( -5, -8), s!( -1, -5), s!( -4, 6), + s!( -4, 8), s!( 4, -14), s!( -24, -18), s!( -7, -11), s!( -13, -19), s!( 10, -0), s!( 19, -8), s!( -7, 4), + s!( -5, -8), s!( -11, -7), s!( 6, -12), s!( -13, -3), s!( 4, -4), s!( -22, -2), s!( -6, -10), s!( -19, -16), + s!( 3, 8), s!( 13, -7), s!( 7, -23), s!( 4, -15), s!( 31, -10), s!( 1, -5), s!( -3, -9), s!( -2, -2), + s!( 18, 4), s!( 7, -1), s!( -13, -3), s!( -3, -12), s!( 12, -10), s!( 3, -8), s!( -6, -6), s!( -23, 10), + s!( -1, -10), s!( 7, -6), s!( 3, -11), s!( -7, 0), s!( -8, -5), s!( -3, -5), s!( 6, 7), s!( 9, 10), + s!( -16, -3), s!( -3, 3), s!( 6, -3), s!( -8, -4), s!( -2, -6), s!( -5, -8), s!( -0, -5), s!( -4, 6), s!( -9, -1), s!( -6, -1), s!( -20, 2), s!( 3, 1), s!( -2, -1), s!( -8, -4), s!( -13, -2), s!( 9, 3), ], [ s!( -3, -13), s!( 4, 6), s!( -4, 0), s!( -12, -11), s!( 5, 4), s!( 0, 19), s!( 1, 14), s!( -8, 10), - s!( 17, -64), s!( -12, -27), s!( -23, -9), s!( -5, -12), s!( -6, -4), s!( 2, 2), s!( -9, 7), s!( 16, 3), + s!( 17, -64), s!( -12, -27), s!( -23, -9), s!( -5, -12), s!( -6, -4), s!( 2, 1), s!( -9, 7), s!( 16, 3), s!( 17, -8), s!( 43, -4), s!( 10, -1), s!( 15, -6), s!( 17, -10), s!( -20, -12), s!( -17, -7), s!( -27, 8), - s!( 0, -3), s!( 5, -9), s!( -19, -1), s!( 10, -10), s!( -3, 3), s!( 37, -10), s!( 1, -1), s!( -6, -2), - s!( 3, 15), s!( -6, -8), s!( -3, -3), s!( -19, -1), s!( 21, -14), s!( 8, 3), s!( 34, -15), s!( 14, 4), - s!( -18, 5), s!( -16, 6), s!( -7, -2), s!( -1, -5), s!( -5, -7), s!( 14, -2), s!( 14, -4), s!( 28, 10), - s!( -24, 9), s!( -14, 6), s!( -9, -3), s!( -9, -10), s!( 4, -2), s!( 4, -3), s!( 16, -3), s!( 14, 12), - s!( -0, 3), s!( -22, 13), s!( -14, -2), s!( 7, 7), s!( -8, 5), s!( 0, 6), s!( 14, -7), s!( 22, -20), + s!( 0, -3), s!( 6, -9), s!( -18, -1), s!( 10, -10), s!( -3, 3), s!( 38, -11), s!( 2, -1), s!( -6, -2), + s!( 3, 15), s!( -6, -8), s!( -3, -3), s!( -19, -1), s!( 21, -14), s!( 9, 3), s!( 35, -15), s!( 14, 4), + s!( -17, 5), s!( -16, 6), s!( -7, -2), s!( -1, -5), s!( -5, -7), s!( 14, -2), s!( 14, -4), s!( 28, 10), + s!( -24, 9), s!( -15, 6), s!( -9, -3), s!( -10, -10), s!( 4, -3), s!( 3, -3), s!( 15, -3), s!( 14, 12), + s!( -0, 3), s!( -22, 13), s!( -14, -2), s!( 7, 7), s!( -8, 5), s!( -0, 6), s!( 14, -7), s!( 22, -20), ], [ s!( -0, -3), s!( -0, -7), s!( -2, -13), s!( -9, -1), s!( 6, 16), s!( 6, 28), s!( -4, 32), s!( -7, 0), - s!(-106, -82), s!( -3, -5), s!( -2, -10), s!( 2, -8), s!( 6, 10), s!( 7, 10), s!( 4, 25), s!( 19, 25), - s!( 19, -5), s!( 19, 3), s!( 29, 11), s!( 9, 7), s!( -27, -4), s!( -31, 13), s!( -3, 8), s!( -21, 6), - s!( -2, -21), s!( 14, -5), s!( -6, -4), s!( -1, 2), s!( 37, 9), s!( -28, 15), s!( 8, -0), s!( -7, 7), - s!( -21, 7), s!( -12, 5), s!( -6, -8), s!( 8, -10), s!( 19, 1), s!( 41, 4), s!( -6, -4), s!( 15, 5), - s!( -22, 34), s!( -34, 23), s!( -12, 12), s!( -6, 2), s!( 16, -7), s!( 19, 7), s!( 33, 5), s!( -1, 4), - s!( -24, 17), s!( -27, 27), s!( -26, 20), s!( -4, 2), s!( 6, -6), s!( 31, -13), s!( 17, 2), s!( 17, 20), - s!( 0, 24), s!( -18, 28), s!( -10, -2), s!( -14, 6), s!( 8, 16), s!( 1, 3), s!( 18, 6), s!( 13, -0), + s!(-107, -83), s!( -3, -5), s!( -2, -10), s!( 2, -8), s!( 6, 10), s!( 7, 10), s!( 4, 25), s!( 19, 25), + s!( 20, -5), s!( 19, 3), s!( 29, 11), s!( 9, 7), s!( -27, -4), s!( -31, 13), s!( -3, 8), s!( -21, 6), + s!( -2, -21), s!( 14, -5), s!( -6, -3), s!( -1, 2), s!( 36, 9), s!( -28, 15), s!( 8, -0), s!( -7, 7), + s!( -21, 7), s!( -12, 5), s!( -6, -7), s!( 8, -9), s!( 19, 1), s!( 40, 4), s!( -6, -4), s!( 15, 5), + s!( -21, 34), s!( -33, 23), s!( -12, 12), s!( -6, 2), s!( 16, -7), s!( 19, 7), s!( 32, 5), s!( -1, 4), + s!( -24, 17), s!( -27, 27), s!( -26, 20), s!( -4, 2), s!( 5, -6), s!( 31, -13), s!( 17, 2), s!( 17, 20), + s!( 0, 24), s!( -18, 28), s!( -10, -2), s!( -14, 6), s!( 8, 16), s!( 0, 3), s!( 18, 6), s!( 13, -0), ], [ s!( -0, 1), s!( 7, 7), s!( 4, 6), s!( 10, 19), s!( 3, 16), s!( 5, 14), s!( 4, 7), s!( 2, -0), @@ -246,8 +246,8 @@ pub const BISHOP_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( 20, 3), s!( -21, -17), s!( -7, -0), s!( 8, 10), s!( 3, 19), s!( -9, 14), s!( -15, 17), s!( -19, -3), s!( -2, -8), s!( 9, -10), s!( 10, 18), s!( 7, 15), s!( 4, 26), s!( -12, 1), s!( 19, 31), s!( 3, -3), s!( 19, 4), s!( -7, -3), s!( 1, -5), s!( 14, 13), s!( 32, 15), s!( 24, 18), s!( 16, -9), s!( -10, -3), - s!( -13, 24), s!( -8, 7), s!( -25, 16), s!( -21, 5), s!( 37, -11), s!( 5, 13), s!( 3, 8), s!( -12, -7), - s!( 7, 4), s!( -28, 32), s!( -18, 4), s!( 5, -9), s!( 21, -21), s!( 34, 20), s!( 21, 11), s!( -10, -7), + s!( -13, 24), s!( -8, 7), s!( -25, 16), s!( -21, 6), s!( 37, -11), s!( 5, 13), s!( 3, 8), s!( -12, -7), + s!( 7, 4), s!( -28, 32), s!( -18, 4), s!( 5, -9), s!( 21, -21), s!( 34, 20), s!( 20, 11), s!( -10, -7), s!( -24, 10), s!( -25, 8), s!( -21, 16), s!( -16, -11), s!( -15, 12), s!( 11, -11), s!( 18, 1), s!( -4, -13), ], [ @@ -313,7 +313,7 @@ pub const BISHOP_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = [ s!( -1, -1), s!( -0, -3), s!( 1, 1), s!( -1, 5), s!( 3, 18), s!( 2, 21), s!( 4, 37), s!( -1, 11), s!( -23, -15), s!( -0, -2), s!( 1, -0), s!( 2, 10), s!( 11, 38), s!( 15, 40), s!( 7, 43), s!( 8, 18), - s!( 4, -1), s!( 6, 3), s!( 7, 17), s!( 4, 35), s!( 1, 35), s!( -20, 28), s!( -1, 16), s!( -6, 3), + s!( 4, -1), s!( 6, 3), s!( 7, 17), s!( 4, 35), s!( 1, 35), s!( -20, 29), s!( -1, 16), s!( -6, 3), s!( 1, -3), s!( 9, 38), s!( -2, 30), s!( -0, 31), s!( 13, 30), s!( -10, 14), s!( 18, 12), s!( -4, -6), s!( -0, 12), s!( 14, 50), s!( 8, 17), s!( -1, 23), s!( 4, -2), s!( 25, 13), s!( 1, -1), s!( -1, 1), s!( -7, 18), s!( -21, 24), s!( -7, 32), s!( -16, 3), s!( 23, 3), s!( 6, -5), s!( 31, 3), s!( -2, -8), diff --git a/src/evaluation/pst/king.rs b/src/evaluation/pst/king.rs index 107c3c5a..19864a26 100644 --- a/src/evaluation/pst/king.rs +++ b/src/evaluation/pst/king.rs @@ -1,5 +1,5 @@ // ------------------------------------------------------------------------- // -// Generated at 23-12-2024 19:19:23 UTC (e = 0.067721, k = 0.0077, r = 0.70) // +// Generated at 28-12-2024 13:59:28 UTC (e = 0.067562, k = 0.0077, r = 0.70) // // ------------------------------------------------------------------------- // use super::*; @@ -13,10 +13,10 @@ pub const KING_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -56, 44), - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 4, 31), - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 45, 14), - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 54, -19), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -55, 44), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 5, 31), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 43, 13), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 51, -19), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), @@ -24,74 +24,74 @@ pub const KING_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -12, 35), s!( 0, 0), - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -5, 32), s!( 0, 0), - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 14, 18), s!( 0, 0), - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 22, -9), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -3, 32), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 12, 17), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 17, -9), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -62, 40), s!( 0, 0), s!( 0, 0), - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -56, 33), s!( 0, 0), s!( 0, 0), - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -41, 18), s!( 0, 0), s!( 0, 0), - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -65, -9), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -61, 40), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -53, 33), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -40, 17), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -67, -8), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -84, 35), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -74, 24), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -75, 12), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -43, -36), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -83, 35), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -71, 24), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -74, 12), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -45, -36), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -87, 33), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -64, 21), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -86, 33), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -63, 21), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -60, 10), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -74, -20), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -75, -20), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 0, 0), s!( 0, 0), s!( -16, 29), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 0, 0), s!( 0, 0), s!( -28, 23), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 0, 0), s!( 0, 0), s!( -16, 13), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 0, 0), s!( 0, 0), s!( 1, -21), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( -15, 30), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( -26, 23), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( -14, 12), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( -1, -22), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 0, 0), s!( 10, 21), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 0, 0), s!( 25, 10), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 0, 0), s!( 41, 1), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 0, 0), s!( 61, -33), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 11, 21), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 26, 10), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 41, -1), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 58, -34), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( -36, 11), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 5, -1), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 65, -24), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 54, -58), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( -35, 12), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( 6, -1), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( 64, -25), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( 52, -59), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -12, -56), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -9, -5), - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -9, 10), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -9, 9), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -46, 3), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), @@ -99,9 +99,9 @@ pub const KING_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 32, -23), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 32, -22), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 25, 12), s!( 0, 0), - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 16, 26), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 16, 25), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -21, 17), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), @@ -109,7 +109,7 @@ pub const KING_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 34, -18), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 34, -17), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 42, 8), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -3, 28), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -48, 23), s!( 0, 0), s!( 0, 0), @@ -119,8 +119,8 @@ pub const KING_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 8, -20), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 58, -9), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 8, -19), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 58, -8), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -16, 18), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -88, 26), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), @@ -129,8 +129,8 @@ pub const KING_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 34, -36), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 82, -12), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 34, -35), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 82, -11), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -3, 15), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -58, 18), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), @@ -139,8 +139,8 @@ pub const KING_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ - s!( 0, 0), s!( 0, 0), s!( 80, -41), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 0, 0), s!( 0, 0), s!( 47, -6), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( 80, -40), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( 0, 0), s!( 0, 0), s!( 47, -5), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 25, 14), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -18, 6), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), @@ -159,7 +159,7 @@ pub const KING_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ - s!( -43, -99), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), + s!( -43, -98), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 70, -54), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 23, -31), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( -27, -36), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), @@ -173,82 +173,82 @@ pub const KING_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = [ s!( 2, 5), s!( 1, -0), s!( -6, -25), s!( 1, -2), s!( 2, -1), s!( -0, -6), s!( -3, -9), s!( 1, 9), s!( -1, -11), s!( -1, -6), s!( -2, -6), s!( -3, -6), s!( -1, 0), s!( 3, -1), s!( -4, -18), s!( -3, -9), - s!( 3, -0), s!( 0, 1), s!( -1, -4), s!( -3, 7), s!( 3, 5), s!( 4, -1), s!( 3, -12), s!( 4, -4), - s!( 3, 12), s!( 0, 4), s!( -2, 3), s!( -4, 5), s!( -7, 9), s!( -3, 1), s!( 11, -32), s!( -16, -28), + s!( 3, -0), s!( 0, 1), s!( -1, -4), s!( -3, 7), s!( 3, 4), s!( 4, -1), s!( 3, -12), s!( 4, -4), + s!( 3, 12), s!( 0, 4), s!( -2, 3), s!( -4, 5), s!( -7, 8), s!( -3, 0), s!( 11, -31), s!( -16, -28), s!( 1, 13), s!( 1, 8), s!( -8, 13), s!( -22, 14), s!( -4, 8), s!( -2, 11), s!( -18, 11), s!( -16, 2), - s!( 6, 8), s!( 4, 7), s!( -7, 10), s!( -3, 9), s!( 12, 7), s!( -3, 7), s!( -13, 8), s!( 5, 7), - s!( -9, -4), s!( -1, 1), s!( -3, -3), s!( 1, -10), s!( -4, 3), s!( -1, 3), s!( 10, 4), s!( 6, 5), - s!( 0, -24), s!( -3, -13), s!( 10, -16), s!( -10, -15), s!( -5, -13), s!( -3, 5), s!( 11, 1), s!( 11, -7), + s!( 6, 8), s!( 4, 7), s!( -7, 10), s!( -3, 9), s!( 12, 7), s!( -3, 7), s!( -12, 8), s!( 5, 7), + s!( -10, -4), s!( -1, 0), s!( -3, -3), s!( 2, -10), s!( -3, 3), s!( -1, 3), s!( 10, 4), s!( 6, 4), + s!( -0, -24), s!( -3, -13), s!( 10, -16), s!( -9, -14), s!( -5, -12), s!( -2, 6), s!( 10, 2), s!( 10, -6), ], [ s!( 1, -0), s!( 4, -10), s!( 4, 3), s!( -2, -6), s!( 2, -11), s!( -2, -24), s!( 5, 13), s!( -1, -7), s!( 3, -2), s!( 8, -6), s!( 2, -6), s!( -2, -5), s!( -5, -6), s!( -3, -25), s!( 0, -5), s!( -1, -10), s!( 4, 3), s!( -5, -3), s!( -2, -3), s!( -9, 10), s!( -16, -1), s!( 17, 5), s!( 13, 5), s!( 3, -17), - s!( -6, 6), s!( -4, 3), s!( -19, 9), s!( -3, 7), s!( -13, -6), s!( -6, -15), s!( -8, -31), s!( -5, -31), - s!( -4, 13), s!( -16, 21), s!( -4, 11), s!( -4, 14), s!( -11, 13), s!( -10, 11), s!( -30, 12), s!( -27, 9), - s!( 4, 8), s!( -16, 9), s!( -21, 7), s!( -24, 14), s!( -7, 14), s!( -10, 5), s!( -2, 1), s!( 3, 12), - s!( -3, -10), s!( 6, -4), s!( 15, -14), s!( 10, -10), s!( -10, 10), s!( 7, -1), s!( 15, 2), s!( 22, 4), - s!( 12, -21), s!( 19, -25), s!( 16, -15), s!( 0, -9), s!( 22, -20), s!( 8, 5), s!( 20, 2), s!( 22, 12), + s!( -6, 6), s!( -4, 3), s!( -19, 9), s!( -3, 6), s!( -13, -6), s!( -6, -15), s!( -8, -31), s!( -5, -30), + s!( -4, 13), s!( -16, 20), s!( -4, 11), s!( -4, 14), s!( -11, 13), s!( -10, 11), s!( -30, 12), s!( -27, 9), + s!( 4, 8), s!( -16, 9), s!( -20, 8), s!( -24, 14), s!( -6, 14), s!( -9, 5), s!( -1, 1), s!( 4, 11), + s!( -3, -10), s!( 6, -4), s!( 15, -14), s!( 10, -10), s!( -9, 10), s!( 7, -1), s!( 15, 2), s!( 22, 4), + s!( 11, -21), s!( 18, -25), s!( 16, -15), s!( 0, -9), s!( 21, -19), s!( 8, 5), s!( 19, 3), s!( 22, 12), ], [ s!( 3, 7), s!( 3, 6), s!( 1, 5), s!( 1, -5), s!( 1, -3), s!( 5, 5), s!( -0, 4), s!( -7, -21), - s!( 5, -2), s!( -3, -3), s!( -4, 2), s!( -3, 3), s!( 1, -8), s!( 7, 4), s!( 2, -0), s!( -7, -3), + s!( 5, -2), s!( -3, -3), s!( -4, 2), s!( -3, 3), s!( 1, -8), s!( 7, 4), s!( 2, -0), s!( -7, -2), s!( 2, 0), s!( -9, -3), s!( -14, 4), s!( -9, 8), s!( 4, 6), s!( 5, 10), s!( 9, -18), s!( -9, -9), - s!( 5, 15), s!( -12, 6), s!( -8, 2), s!( -14, 4), s!( 4, -18), s!( 7, -24), s!( 14, -21), s!( 9, -9), - s!( 10, 12), s!( 7, 6), s!( 6, 1), s!( 14, 8), s!( 4, 2), s!( 11, -4), s!( 15, 7), s!( 11, 7), - s!( -3, 4), s!( -16, -2), s!( 8, -2), s!( 9, -0), s!( 6, -4), s!( -0, -7), s!( 5, -3), s!( 8, 1), - s!( -3, -12), s!( 2, -16), s!( 3, -16), s!( -7, -3), s!( -8, -5), s!( -11, -7), s!( -4, 3), s!( 1, 1), - s!( -6, -1), s!( -4, -6), s!( -10, 3), s!( -12, -2), s!( -7, -0), s!( -4, 4), s!( -13, 13), s!( -2, 21), + s!( 5, 15), s!( -12, 6), s!( -8, 2), s!( -14, 3), s!( 4, -18), s!( 7, -24), s!( 14, -20), s!( 9, -9), + s!( 10, 12), s!( 7, 6), s!( 6, 1), s!( 14, 8), s!( 4, 2), s!( 11, -4), s!( 15, 6), s!( 11, 6), + s!( -3, 4), s!( -16, -2), s!( 8, -2), s!( 9, -0), s!( 6, -4), s!( 0, -7), s!( 5, -3), s!( 8, 1), + s!( -3, -12), s!( 2, -16), s!( 3, -16), s!( -7, -3), s!( -8, -5), s!( -11, -6), s!( -5, 3), s!( 0, 1), + s!( -7, -2), s!( -4, -7), s!( -10, 2), s!( -12, -2), s!( -7, -0), s!( -4, 4), s!( -13, 14), s!( -2, 21), ], [ s!( 1, 2), s!( 3, 13), s!( 3, 5), s!( 1, 3), s!( 2, 1), s!( 4, 10), s!( 5, 17), s!( -3, -13), s!( 2, 5), s!( -0, -0), s!( 0, 7), s!( 2, 8), s!( 4, 3), s!( 7, 20), s!( -1, 1), s!( -1, 16), s!( -2, 6), s!( -9, 1), s!( -3, -5), s!( 2, -11), s!( 5, -3), s!( 2, -5), s!( -9, -2), s!( -7, 2), - s!( 1, 2), s!( -6, -6), s!( -9, -6), s!( 3, -19), s!( 18, -22), s!( -7, -21), s!( 6, -7), s!( 10, -4), - s!( 1, 11), s!( 2, 9), s!( 3, 1), s!( -7, 6), s!( -7, 7), s!( 4, 2), s!( 16, 5), s!( 11, 0), - s!( 9, -9), s!( 6, -6), s!( -15, -1), s!( -21, 2), s!( -18, 4), s!( -9, -6), s!( -8, 1), s!( 6, -7), - s!( 3, -13), s!( -6, -12), s!( 3, -17), s!( -4, -7), s!( -3, -6), s!( -8, -6), s!( -2, -2), s!( -8, -6), - s!( 0, -5), s!( -0, -16), s!( 8, -9), s!( 10, -4), s!( 23, -10), s!( 17, -10), s!( 11, -3), s!( -1, 15), + s!( 1, 2), s!( -6, -6), s!( -9, -6), s!( 3, -19), s!( 18, -22), s!( -7, -20), s!( 6, -7), s!( 10, -4), + s!( 1, 11), s!( 2, 9), s!( 3, 1), s!( -7, 6), s!( -7, 7), s!( 4, 2), s!( 16, 5), s!( 11, -0), + s!( 9, -9), s!( 6, -6), s!( -15, -1), s!( -21, 2), s!( -17, 4), s!( -9, -6), s!( -8, 1), s!( 6, -7), + s!( 3, -13), s!( -5, -12), s!( 4, -17), s!( -4, -7), s!( -2, -5), s!( -8, -6), s!( -2, -2), s!( -8, -6), + s!( -0, -5), s!( -1, -16), s!( 7, -10), s!( 9, -4), s!( 22, -10), s!( 16, -9), s!( 10, -3), s!( -2, 14), ], [ - s!( -1, 0), s!( 3, 5), s!( 2, -1), s!( 3, 7), s!( -1, -6), s!( 3, 17), s!( 0, -10), s!( 1, 4), - s!( 1, 7), s!( 3, 3), s!( 2, -9), s!( 3, 15), s!( 2, 13), s!( -1, -1), s!( 2, 9), s!( -2, 3), + s!( -1, -0), s!( 3, 5), s!( 2, -1), s!( 3, 7), s!( -1, -6), s!( 3, 17), s!( 0, -10), s!( 1, 4), + s!( 1, 7), s!( 3, 3), s!( 2, -9), s!( 3, 15), s!( 2, 13), s!( -1, -0), s!( 2, 9), s!( -2, 3), s!( -4, 1), s!( -1, -7), s!( 2, 7), s!( 6, 9), s!( 4, 5), s!( -9, 6), s!( -9, -2), s!( -0, 7), - s!( -3, -10), s!( -9, -11), s!( 1, -24), s!( 1, -13), s!( -1, -15), s!( -12, -4), s!( -2, -6), s!( 5, 1), + s!( -3, -10), s!( -9, -11), s!( 1, -24), s!( 1, -13), s!( -1, -14), s!( -12, -4), s!( -2, -6), s!( 5, 1), s!( 4, -7), s!( 9, -6), s!( -7, -2), s!( -6, -1), s!( 8, 4), s!( -1, 2), s!( 11, 3), s!( 8, -4), s!( 3, -2), s!( 0, -1), s!( 10, -7), s!( 12, -10), s!( -1, -3), s!( -7, -3), s!( 14, -6), s!( 2, -8), - s!( 18, -5), s!( 2, -7), s!( -1, -15), s!( -20, -6), s!( 8, -11), s!( 5, -12), s!( 5, -7), s!( 10, -8), - s!( -1, 2), s!( -7, 5), s!( -10, 8), s!( 11, -8), s!( 6, -2), s!( 14, -3), s!( 1, -4), s!( 9, -6), + s!( 18, -5), s!( 2, -7), s!( -1, -14), s!( -20, -6), s!( 8, -11), s!( 5, -12), s!( 5, -7), s!( 9, -8), + s!( -1, 2), s!( -7, 5), s!( -10, 8), s!( 11, -8), s!( 6, -2), s!( 14, -3), s!( 1, -5), s!( 8, -6), ], [ s!( -3, -26), s!( -0, -7), s!( 0, 0), s!( -2, -5), s!( 1, -8), s!( -2, -5), s!( 0, -7), s!( 4, 15), s!( 0, -1), s!( 2, -14), s!( 1, -4), s!( 0, -8), s!( -1, 6), s!( 1, 2), s!( 9, 6), s!( 4, -1), s!( -3, -22), s!( 2, -13), s!( 1, 0), s!( 2, -2), s!( -4, 3), s!( -13, 4), s!( -3, 9), s!( 1, 6), - s!( -11, -22), s!( -1, -29), s!( 4, -19), s!( 2, -20), s!( -7, 2), s!( -1, 2), s!( -7, 7), s!( 4, 15), - s!( -1, -2), s!( -6, -3), s!( -1, 4), s!( -1, 7), s!( 6, 2), s!( -1, -1), s!( 13, -1), s!( 3, 2), + s!( -11, -22), s!( -1, -29), s!( 4, -19), s!( 2, -19), s!( -7, 2), s!( -1, 2), s!( -7, 7), s!( 4, 15), + s!( -1, -2), s!( -6, -3), s!( -1, 4), s!( -1, 7), s!( 6, 2), s!( -1, -0), s!( 13, -1), s!( 3, 2), s!( 8, -4), s!( 6, 1), s!( -4, -1), s!( -9, 3), s!( -12, 2), s!( -9, -1), s!( -8, -2), s!( -8, 2), s!( 9, 2), s!( 3, -0), s!( 6, -1), s!( 3, -3), s!( 2, -4), s!( -5, -7), s!( -19, 1), s!( 9, -7), - s!( -3, 11), s!( 1, 6), s!( -2, 3), s!( 13, 2), s!( 7, -14), s!( 9, -6), s!( 6, -11), s!( 2, -1), + s!( -3, 11), s!( 1, 6), s!( -2, 3), s!( 13, 1), s!( 7, -14), s!( 8, -6), s!( 6, -12), s!( 2, -1), ], [ s!( -0, -5), s!( -0, -9), s!( -0, -8), s!( 0, -7), s!( 3, -3), s!( -2, -22), s!( 1, -15), s!( -0, -3), s!( -0, -1), s!( 0, -3), s!( 0, -12), s!( -0, -12), s!( -1, -7), s!( 8, -2), s!( 10, -14), s!( 2, -13), s!( -1, -15), s!( 2, -6), s!( 0, -11), s!( -10, 0), s!( -7, 1), s!( -4, -4), s!( -3, 1), s!( 5, 1), s!( -7, -35), s!( -3, -31), s!( 3, -19), s!( -6, 1), s!( -4, 6), s!( -1, -2), s!( -2, 13), s!( 1, 3), - s!( -7, -8), s!( -10, -7), s!( 2, 9), s!( 6, 7), s!( -1, 5), s!( -7, 6), s!( 9, -1), s!( 7, 9), + s!( -7, -8), s!( -10, -7), s!( 2, 9), s!( 6, 7), s!( -1, 6), s!( -7, 6), s!( 9, -0), s!( 7, 9), s!( -4, 5), s!( 5, 4), s!( 4, 7), s!( 8, 8), s!( 8, -1), s!( -0, 2), s!( -4, -1), s!( 1, 1), - s!( 4, 3), s!( 4, 8), s!( -8, 10), s!( -11, 8), s!( 5, -6), s!( -2, -9), s!( -17, 4), s!( -3, -13), - s!( 2, 21), s!( 2, 11), s!( -3, 1), s!( -4, -1), s!( -13, -0), s!( 12, -13), s!( 8, -22), s!( -9, -16), + s!( 4, 3), s!( 4, 8), s!( -8, 10), s!( -11, 8), s!( 5, -7), s!( -2, -9), s!( -17, 3), s!( -3, -13), + s!( 2, 21), s!( 2, 11), s!( -3, 1), s!( -4, -1), s!( -13, -0), s!( 12, -13), s!( 8, -22), s!( -8, -16), ], [ s!( 0, 0), s!( 0, -2), s!( -0, -1), s!( 0, -2), s!( 2, 2), s!( -2, -8), s!( -2, -4), s!( -2, -3), s!( 0, -1), s!( -0, -2), s!( -0, -2), s!( 3, 4), s!( 2, -1), s!( -1, -18), s!( -2, -15), s!( -0, 1), s!( 1, -2), s!( -1, -14), s!( 1, 1), s!( -3, 1), s!( -0, 2), s!( -10, -4), s!( 2, -6), s!( 4, -2), - s!( -4, -32), s!( 0, -16), s!( -1, 6), s!( -3, 4), s!( 3, 6), s!( 7, -8), s!( -0, 5), s!( 3, 7), + s!( -4, -32), s!( 0, -16), s!( -1, 6), s!( -3, 4), s!( 3, 5), s!( 7, -8), s!( 0, 5), s!( 3, 7), s!( -2, -14), s!( 8, -11), s!( -8, 6), s!( -3, 6), s!( -2, -1), s!( 5, 13), s!( 5, 8), s!( 16, 24), s!( -11, 11), s!( 15, -6), s!( 8, -2), s!( 4, -3), s!( 4, -1), s!( -1, 0), s!( -1, 9), s!( 2, 3), s!( -2, 18), s!( -21, 17), s!( -11, 17), s!( -6, 9), s!( 5, -6), s!( -19, 1), s!( -7, -8), s!( -7, -9), - s!( 17, -1), s!( 4, -8), s!( 5, -6), s!( -15, 2), s!( -27, -4), s!( 9, -25), s!( -10, -9), s!( -14, -28), + s!( 17, -1), s!( 4, -8), s!( 5, -6), s!( -15, 2), s!( -27, -4), s!( 10, -25), s!( -11, -9), s!( -14, -27), ], [ s!( -1, -5), s!( -2, -3), s!( -2, -10), s!( 2, 0), s!( 1, 2), s!( 1, 1), s!( -2, -2), s!( 0, 2), @@ -258,7 +258,7 @@ pub const KING_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( -0, 14), s!( -4, 13), s!( -3, -3), s!( -6, 2), s!( -2, -3), s!( -7, -6), s!( -8, 4), s!( -3, 1), s!( 4, 4), s!( 1, 9), s!( 2, 2), s!( 3, 4), s!( 8, -1), s!( 18, 14), s!( -4, 17), s!( 3, 4), s!( -7, -2), s!( 1, 6), s!( -3, 2), s!( -0, 7), s!( -2, 12), s!( 3, 22), s!( 9, 22), s!( 16, 14), - s!( 2, 0), s!( 5, -2), s!( -2, -7), s!( -4, 2), s!( -5, 15), s!( -9, 20), s!( -5, 32), s!( -2, 14), + s!( 2, 0), s!( 5, -2), s!( -2, -7), s!( -4, 2), s!( -5, 15), s!( -9, 20), s!( -5, 31), s!( -2, 14), ], [ s!( -1, -4), s!( 4, 6), s!( 3, -7), s!( -1, -1), s!( 2, -7), s!( -1, -13), s!( 3, -4), s!( -2, -9), @@ -272,22 +272,22 @@ pub const KING_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = ], [ s!( 3, 18), s!( 3, 12), s!( 1, 8), s!( 3, 4), s!( 1, -7), s!( 4, 6), s!( 0, -8), s!( -1, -3), - s!( 2, -1), s!( -0, 6), s!( -0, 6), s!( 2, -8), s!( -0, -7), s!( 10, -2), s!( 2, -6), s!( 0, -12), + s!( 2, -1), s!( -0, 6), s!( -0, 6), s!( 2, -8), s!( -0, -7), s!( 10, -3), s!( 2, -6), s!( 0, -12), s!( -0, -1), s!( -5, 10), s!( 2, 5), s!( -6, -2), s!( 2, 2), s!( -9, 2), s!( -2, -10), s!( -8, -8), - s!( 2, 16), s!( 3, 17), s!( 6, 7), s!( 2, 5), s!( -3, 5), s!( -0, 8), s!( -1, 11), s!( 8, -7), - s!( 3, 13), s!( 3, 8), s!( 9, -7), s!( 13, -11), s!( 0, 5), s!( -2, -9), s!( 2, -1), s!( 11, -15), + s!( 2, 16), s!( 3, 17), s!( 6, 7), s!( 2, 5), s!( -3, 6), s!( -0, 8), s!( -1, 11), s!( 8, -7), + s!( 3, 13), s!( 3, 7), s!( 9, -7), s!( 13, -11), s!( 0, 5), s!( -2, -9), s!( 2, -1), s!( 11, -15), s!( 0, 4), s!( -12, 4), s!( 11, -2), s!( 10, -1), s!( 0, -8), s!( -3, 2), s!( 4, 13), s!( 3, -2), - s!( -5, -3), s!( 11, 1), s!( 1, -1), s!( 6, -1), s!( 8, 7), s!( -0, -4), s!( -1, 2), s!( 0, 11), + s!( -5, -3), s!( 11, 1), s!( 1, -1), s!( 6, -1), s!( 8, 7), s!( -0, -4), s!( -1, 2), s!( 0, 12), s!( -0, 5), s!( -1, 7), s!( -3, 1), s!( -1, 8), s!( -9, 21), s!( -19, 15), s!( -18, 17), s!( -8, 7), ], [ s!( 0, 5), s!( 1, 1), s!( 1, 3), s!( -1, -7), s!( -0, 2), s!( 3, 8), s!( 4, 14), s!( -0, 5), - s!( 1, -0), s!( 2, 9), s!( 2, 12), s!( 1, 4), s!( 11, 23), s!( 10, 25), s!( 3, 13), s!( 3, 7), + s!( 1, -0), s!( 2, 9), s!( 2, 12), s!( 1, 4), s!( 11, 22), s!( 10, 24), s!( 3, 13), s!( 3, 7), s!( -0, 9), s!( -1, 8), s!( -0, 8), s!( 2, -3), s!( -3, -11), s!( -3, -7), s!( -4, -2), s!( -3, 4), - s!( 1, 13), s!( -2, 12), s!( 0, 5), s!( 1, -3), s!( -3, -7), s!( -5, 9), s!( -1, -7), s!( 3, -7), - s!( -3, -4), s!( 0, -8), s!( 4, -5), s!( -5, -8), s!( -5, 4), s!( -1, -4), s!( 15, -8), s!( 11, -11), + s!( 1, 13), s!( -2, 12), s!( 0, 5), s!( 1, -3), s!( -3, -6), s!( -5, 9), s!( -1, -7), s!( 3, -7), + s!( -3, -4), s!( 0, -8), s!( 4, -5), s!( -5, -8), s!( -5, 3), s!( -1, -4), s!( 15, -8), s!( 11, -11), s!( 4, 3), s!( 11, 7), s!( 4, -0), s!( -11, 1), s!( -11, -4), s!( -6, -2), s!( 10, -11), s!( 10, -8), - s!( -6, -8), s!( 8, -4), s!( 8, -0), s!( -3, 10), s!( -9, 4), s!( 0, -2), s!( 11, -2), s!( -12, -5), + s!( -6, -8), s!( 8, -4), s!( 8, -0), s!( -3, 10), s!( -9, 4), s!( 0, -2), s!( 11, -2), s!( -12, -4), s!( -1, -12), s!( -6, -6), s!( -4, 4), s!( 2, 15), s!( -5, 15), s!( -6, 3), s!( -7, 4), s!( -5, -10), ], [ @@ -313,7 +313,7 @@ pub const KING_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = [ s!( -0, 1), s!( -0, -4), s!( 1, 6), s!( -0, -4), s!( 3, 3), s!( -2, -11), s!( -1, -9), s!( 0, 1), s!( 0, -2), s!( -1, -6), s!( 1, -8), s!( 1, -8), s!( -1, -14), s!( 2, 0), s!( 4, 1), s!( 2, -6), - s!( 1, -3), s!( -1, -3), s!( -1, -10), s!( -5, -13), s!( -2, 4), s!( -3, -0), s!( -4, 2), s!( 7, -4), + s!( 1, -3), s!( -1, -3), s!( -1, -10), s!( -5, -13), s!( -2, 4), s!( -3, -0), s!( -4, 1), s!( 7, -4), s!( -1, -6), s!( 1, 1), s!( 0, -1), s!( -3, -1), s!( 1, 6), s!( 7, -1), s!( -7, 10), s!( 5, 9), s!( -2, -2), s!( -3, 4), s!( -5, 4), s!( -3, -10), s!( 0, -4), s!( 6, 1), s!( 3, 2), s!( 4, 7), s!( -1, 3), s!( 7, -0), s!( -1, 6), s!( 7, 3), s!( 12, 3), s!( 13, 5), s!( -0, 12), s!( -3, -9), @@ -321,11 +321,11 @@ pub const KING_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( -1, 24), s!( -2, 27), s!( -4, 28), s!( 3, 3), s!( -8, 4), s!( -7, -3), s!( -3, -18), s!( -3, -12), ], [ - s!( -0, 1), s!( 0, -1), s!( 0, 1), s!( 0, -4), s!( 4, 5), s!( -2, -9), s!( -3, -12), s!( -2, -2), + s!( 0, 1), s!( 0, -1), s!( 0, 1), s!( 0, -4), s!( 4, 5), s!( -2, -9), s!( -3, -12), s!( -2, -2), s!( 0, -1), s!( -1, -4), s!( -1, 1), s!( 1, -6), s!( 1, 2), s!( -2, -12), s!( 1, -1), s!( 1, -0), - s!( -0, -4), s!( -1, -1), s!( -0, -7), s!( -1, -5), s!( -1, -4), s!( -3, -6), s!( 1, -3), s!( 2, 3), + s!( -0, -4), s!( -1, -1), s!( 0, -7), s!( -1, -5), s!( -1, -4), s!( -3, -6), s!( 1, -3), s!( 2, 3), s!( -1, -7), s!( 0, 0), s!( -0, 5), s!( 0, 7), s!( 2, 3), s!( 6, 2), s!( -1, 12), s!( 3, 8), - s!( -1, -5), s!( 1, -6), s!( -6, 2), s!( -3, -2), s!( 1, -4), s!( 1, 9), s!( 4, 6), s!( 4, -5), + s!( -1, -5), s!( 1, -6), s!( -6, 1), s!( -3, -2), s!( 1, -4), s!( 1, 9), s!( 4, 6), s!( 4, -5), s!( -3, 5), s!( 4, 5), s!( 7, 20), s!( 3, -3), s!( 1, 7), s!( -1, 0), s!( -4, -2), s!( -5, -5), s!( 4, 28), s!( -4, 27), s!( -7, 24), s!( -7, 0), s!( 5, -4), s!( -9, 8), s!( -4, -7), s!( -11, 0), s!( 4, 9), s!( -1, 22), s!( 15, 23), s!( 1, 5), s!( -10, -4), s!( -1, -16), s!( 5, -1), s!( -0, -13), diff --git a/src/evaluation/pst/knight.rs b/src/evaluation/pst/knight.rs index ffa4ac87..c25e8858 100644 --- a/src/evaluation/pst/knight.rs +++ b/src/evaluation/pst/knight.rs @@ -1,5 +1,5 @@ // ------------------------------------------------------------------------- // -// Generated at 23-12-2024 19:19:23 UTC (e = 0.067721, k = 0.0077, r = 0.70) // +// Generated at 28-12-2024 13:59:28 UTC (e = 0.067562, k = 0.0077, r = 0.70) // // ------------------------------------------------------------------------- // use super::*; @@ -9,72 +9,72 @@ pub const KNIGHT_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = [ [ [ - s!( 184, 273), s!( 296, 276), s!( 295, 293), s!( 335, 278), s!( 383, 278), s!( 290, 318), s!( 333, 262), s!( 254, 220), - s!( 292, 259), s!( 297, 281), s!( 351, 291), s!( 375, 299), s!( 351, 298), s!( 394, 278), s!( 353, 273), s!( 317, 278), - s!( 286, 282), s!( 346, 294), s!( 369, 299), s!( 387, 302), s!( 416, 288), s!( 424, 285), s!( 384, 299), s!( 351, 281), - s!( 319, 281), s!( 329, 298), s!( 369, 299), s!( 390, 310), s!( 382, 314), s!( 394, 317), s!( 355, 325), s!( 363, 302), - s!( 315, 260), s!( 334, 296), s!( 363, 299), s!( 361, 317), s!( 364, 317), s!( 360, 323), s!( 360, 307), s!( 342, 295), - s!( 280, 271), s!( 313, 274), s!( 334, 289), s!( 343, 311), s!( 361, 310), s!( 355, 303), s!( 340, 298), s!( 333, 284), - s!( 291, 239), s!( 283, 271), s!( 312, 268), s!( 326, 292), s!( 327, 290), s!( 339, 289), s!( 325, 273), s!( 357, 273), - s!( 248, 244), s!( 281, 196), s!( 296, 265), s!( 329, 228), s!( 322, 265), s!( 333, 273), s!( 339, 263), s!( 295, 241), + s!( 184, 273), s!( 296, 276), s!( 295, 293), s!( 335, 278), s!( 383, 278), s!( 290, 318), s!( 333, 262), s!( 253, 220), + s!( 292, 259), s!( 296, 281), s!( 351, 291), s!( 374, 299), s!( 351, 298), s!( 394, 278), s!( 353, 273), s!( 317, 278), + s!( 286, 282), s!( 346, 294), s!( 369, 299), s!( 387, 302), s!( 416, 288), s!( 423, 285), s!( 383, 299), s!( 351, 281), + s!( 319, 281), s!( 329, 298), s!( 369, 299), s!( 389, 309), s!( 381, 314), s!( 393, 316), s!( 355, 325), s!( 363, 302), + s!( 315, 260), s!( 334, 296), s!( 362, 299), s!( 361, 316), s!( 364, 316), s!( 360, 322), s!( 360, 307), s!( 341, 295), + s!( 281, 271), s!( 313, 274), s!( 334, 289), s!( 343, 311), s!( 361, 310), s!( 355, 303), s!( 339, 297), s!( 333, 284), + s!( 291, 239), s!( 283, 271), s!( 313, 268), s!( 326, 292), s!( 327, 290), s!( 338, 289), s!( 324, 273), s!( 355, 272), + s!( 248, 244), s!( 282, 196), s!( 296, 265), s!( 328, 228), s!( 322, 265), s!( 332, 273), s!( 338, 262), s!( 295, 241), ], [ s!( 167, 268), s!( 306, 285), s!( 312, 303), s!( 309, 291), s!( 383, 281), s!( 254, 302), s!( 325, 264), s!( 212, 210), s!( 286, 292), s!( 313, 303), s!( 360, 298), s!( 363, 313), s!( 328, 311), s!( 379, 283), s!( 332, 290), s!( 294, 294), - s!( 309, 295), s!( 353, 320), s!( 370, 330), s!( 375, 323), s!( 409, 305), s!( 406, 315), s!( 351, 322), s!( 326, 301), - s!( 343, 304), s!( 334, 327), s!( 360, 335), s!( 376, 337), s!( 362, 336), s!( 378, 330), s!( 339, 336), s!( 353, 303), - s!( 320, 299), s!( 327, 315), s!( 356, 330), s!( 350, 331), s!( 356, 331), s!( 359, 320), s!( 357, 312), s!( 328, 293), - s!( 302, 281), s!( 324, 307), s!( 336, 312), s!( 346, 322), s!( 355, 325), s!( 352, 311), s!( 346, 307), s!( 317, 268), - s!( 302, 258), s!( 303, 287), s!( 320, 288), s!( 334, 304), s!( 331, 299), s!( 343, 276), s!( 331, 286), s!( 335, 279), - s!( 262, 255), s!( 298, 249), s!( 318, 271), s!( 313, 285), s!( 328, 281), s!( 343, 274), s!( 348, 275), s!( 290, 249), + s!( 310, 296), s!( 353, 320), s!( 369, 329), s!( 375, 323), s!( 408, 305), s!( 405, 314), s!( 351, 322), s!( 327, 301), + s!( 343, 304), s!( 333, 326), s!( 361, 335), s!( 376, 336), s!( 362, 336), s!( 377, 329), s!( 339, 335), s!( 353, 303), + s!( 320, 299), s!( 328, 315), s!( 356, 330), s!( 350, 331), s!( 356, 331), s!( 359, 320), s!( 356, 312), s!( 328, 294), + s!( 302, 281), s!( 324, 308), s!( 337, 311), s!( 346, 322), s!( 355, 325), s!( 353, 310), s!( 346, 307), s!( 317, 268), + s!( 301, 258), s!( 303, 287), s!( 320, 288), s!( 335, 304), s!( 331, 299), s!( 342, 276), s!( 330, 286), s!( 334, 279), + s!( 262, 255), s!( 298, 250), s!( 317, 272), s!( 312, 285), s!( 327, 281), s!( 342, 273), s!( 347, 275), s!( 289, 249), ], [ s!( 133, 255), s!( 302, 293), s!( 291, 315), s!( 319, 307), s!( 374, 295), s!( 239, 308), s!( 333, 273), s!( 235, 217), s!( 278, 297), s!( 311, 309), s!( 384, 300), s!( 396, 311), s!( 336, 313), s!( 370, 296), s!( 329, 296), s!( 308, 281), - s!( 309, 306), s!( 369, 307), s!( 398, 325), s!( 384, 327), s!( 438, 310), s!( 449, 317), s!( 403, 304), s!( 366, 291), - s!( 346, 291), s!( 348, 322), s!( 374, 331), s!( 423, 314), s!( 394, 322), s!( 432, 315), s!( 386, 313), s!( 388, 292), - s!( 324, 293), s!( 339, 316), s!( 370, 334), s!( 387, 324), s!( 386, 321), s!( 401, 316), s!( 389, 310), s!( 379, 276), - s!( 305, 285), s!( 334, 309), s!( 357, 317), s!( 372, 322), s!( 376, 313), s!( 392, 306), s!( 370, 304), s!( 349, 291), - s!( 318, 276), s!( 316, 313), s!( 313, 310), s!( 348, 315), s!( 360, 305), s!( 403, 303), s!( 323, 315), s!( 359, 268), + s!( 309, 306), s!( 369, 307), s!( 398, 325), s!( 384, 327), s!( 438, 310), s!( 449, 316), s!( 403, 304), s!( 366, 291), + s!( 346, 291), s!( 348, 322), s!( 374, 331), s!( 422, 314), s!( 394, 322), s!( 431, 315), s!( 386, 313), s!( 388, 292), + s!( 324, 293), s!( 339, 316), s!( 370, 333), s!( 387, 323), s!( 385, 320), s!( 401, 316), s!( 389, 310), s!( 379, 276), + s!( 305, 285), s!( 334, 309), s!( 357, 317), s!( 372, 321), s!( 376, 313), s!( 389, 305), s!( 370, 304), s!( 349, 291), + s!( 318, 276), s!( 316, 313), s!( 313, 310), s!( 348, 315), s!( 359, 304), s!( 402, 302), s!( 323, 315), s!( 359, 268), s!( 266, 279), s!( 294, 271), s!( 309, 308), s!( 317, 297), s!( 353, 288), s!( 369, 284), s!( 332, 273), s!( 295, 277), ], [ - s!( 135, 255), s!( 297, 297), s!( 253, 310), s!( 317, 309), s!( 368, 302), s!( 215, 309), s!( 328, 271), s!( 221, 208), - s!( 289, 299), s!( 291, 324), s!( 346, 316), s!( 336, 328), s!( 326, 316), s!( 358, 313), s!( 291, 302), s!( 309, 299), - s!( 317, 301), s!( 364, 325), s!( 358, 340), s!( 357, 337), s!( 366, 333), s!( 344, 336), s!( 349, 329), s!( 328, 300), - s!( 343, 314), s!( 331, 327), s!( 347, 349), s!( 358, 348), s!( 347, 345), s!( 369, 341), s!( 334, 336), s!( 351, 308), - s!( 322, 301), s!( 323, 325), s!( 355, 346), s!( 355, 337), s!( 356, 337), s!( 358, 338), s!( 338, 329), s!( 326, 306), - s!( 303, 292), s!( 330, 320), s!( 346, 324), s!( 347, 333), s!( 361, 331), s!( 351, 313), s!( 351, 302), s!( 320, 293), - s!( 317, 273), s!( 296, 305), s!( 328, 313), s!( 334, 312), s!( 334, 310), s!( 346, 313), s!( 333, 299), s!( 329, 283), - s!( 268, 288), s!( 301, 270), s!( 306, 299), s!( 318, 301), s!( 335, 316), s!( 322, 300), s!( 304, 256), s!( 324, 289), + s!( 136, 255), s!( 297, 297), s!( 253, 310), s!( 317, 309), s!( 368, 302), s!( 215, 309), s!( 328, 271), s!( 221, 208), + s!( 289, 299), s!( 291, 324), s!( 346, 316), s!( 335, 328), s!( 326, 316), s!( 358, 313), s!( 290, 302), s!( 309, 299), + s!( 317, 301), s!( 364, 325), s!( 357, 340), s!( 357, 337), s!( 366, 333), s!( 344, 336), s!( 349, 329), s!( 328, 300), + s!( 343, 314), s!( 330, 327), s!( 347, 349), s!( 357, 347), s!( 347, 345), s!( 368, 340), s!( 334, 336), s!( 349, 308), + s!( 323, 302), s!( 323, 325), s!( 354, 345), s!( 356, 337), s!( 355, 336), s!( 358, 338), s!( 338, 329), s!( 326, 306), + s!( 303, 292), s!( 330, 320), s!( 345, 324), s!( 347, 332), s!( 360, 331), s!( 351, 312), s!( 351, 302), s!( 320, 294), + s!( 316, 273), s!( 296, 305), s!( 327, 313), s!( 333, 312), s!( 333, 310), s!( 345, 313), s!( 332, 299), s!( 329, 283), + s!( 268, 288), s!( 301, 271), s!( 306, 299), s!( 318, 301), s!( 335, 316), s!( 322, 300), s!( 304, 257), s!( 324, 289), ], [ s!( 179, 265), s!( 298, 281), s!( 292, 314), s!( 317, 310), s!( 378, 301), s!( 247, 314), s!( 328, 264), s!( 230, 216), - s!( 269, 294), s!( 304, 320), s!( 369, 316), s!( 376, 329), s!( 338, 335), s!( 385, 316), s!( 335, 301), s!( 328, 290), - s!( 310, 301), s!( 383, 318), s!( 390, 340), s!( 412, 331), s!( 429, 336), s!( 420, 322), s!( 392, 331), s!( 341, 304), - s!( 359, 300), s!( 361, 325), s!( 416, 329), s!( 416, 327), s!( 406, 333), s!( 396, 330), s!( 369, 329), s!( 371, 303), - s!( 360, 296), s!( 367, 316), s!( 400, 332), s!( 399, 327), s!( 395, 329), s!( 405, 325), s!( 356, 322), s!( 353, 297), - s!( 337, 304), s!( 340, 316), s!( 361, 320), s!( 389, 316), s!( 367, 328), s!( 363, 318), s!( 350, 314), s!( 348, 282), - s!( 325, 287), s!( 312, 316), s!( 358, 303), s!( 350, 319), s!( 346, 316), s!( 338, 304), s!( 346, 304), s!( 321, 261), - s!( 269, 285), s!( 297, 272), s!( 313, 308), s!( 332, 300), s!( 344, 291), s!( 330, 300), s!( 315, 291), s!( 295, 265), - ], - [ - s!( 169, 275), s!( 297, 271), s!( 299, 327), s!( 325, 305), s!( 375, 284), s!( 251, 307), s!( 331, 261), s!( 231, 210), - s!( 286, 294), s!( 316, 327), s!( 364, 296), s!( 361, 311), s!( 337, 313), s!( 383, 304), s!( 330, 300), s!( 333, 298), - s!( 323, 307), s!( 399, 309), s!( 372, 331), s!( 394, 325), s!( 427, 294), s!( 391, 323), s!( 383, 319), s!( 327, 296), - s!( 362, 294), s!( 352, 319), s!( 386, 328), s!( 392, 324), s!( 371, 342), s!( 389, 326), s!( 362, 318), s!( 366, 289), - s!( 349, 293), s!( 341, 326), s!( 371, 329), s!( 377, 320), s!( 379, 324), s!( 363, 344), s!( 368, 323), s!( 334, 295), + s!( 269, 295), s!( 304, 320), s!( 369, 316), s!( 376, 329), s!( 338, 335), s!( 385, 316), s!( 335, 301), s!( 328, 290), + s!( 310, 301), s!( 383, 318), s!( 390, 340), s!( 412, 330), s!( 429, 336), s!( 420, 322), s!( 392, 331), s!( 341, 304), + s!( 359, 300), s!( 361, 325), s!( 416, 329), s!( 415, 327), s!( 405, 333), s!( 396, 330), s!( 369, 329), s!( 371, 303), + s!( 360, 296), s!( 367, 316), s!( 400, 332), s!( 398, 326), s!( 395, 329), s!( 405, 325), s!( 356, 322), s!( 353, 297), + s!( 337, 304), s!( 340, 316), s!( 360, 320), s!( 389, 316), s!( 367, 328), s!( 363, 318), s!( 350, 314), s!( 348, 282), + s!( 325, 287), s!( 312, 316), s!( 358, 303), s!( 349, 318), s!( 345, 316), s!( 338, 304), s!( 346, 304), s!( 321, 261), + s!( 269, 285), s!( 297, 273), s!( 313, 308), s!( 332, 300), s!( 344, 291), s!( 330, 300), s!( 315, 291), s!( 295, 265), + ], + [ + s!( 169, 275), s!( 297, 271), s!( 299, 326), s!( 325, 305), s!( 375, 284), s!( 251, 307), s!( 331, 261), s!( 231, 210), + s!( 286, 294), s!( 316, 327), s!( 363, 296), s!( 361, 311), s!( 337, 313), s!( 383, 304), s!( 330, 300), s!( 333, 298), + s!( 324, 307), s!( 399, 309), s!( 373, 330), s!( 394, 325), s!( 427, 294), s!( 391, 323), s!( 383, 319), s!( 327, 296), + s!( 362, 294), s!( 352, 319), s!( 386, 328), s!( 391, 324), s!( 371, 342), s!( 388, 326), s!( 362, 318), s!( 366, 289), + s!( 348, 293), s!( 341, 326), s!( 371, 329), s!( 377, 320), s!( 378, 324), s!( 363, 343), s!( 368, 323), s!( 334, 295), s!( 309, 318), s!( 346, 311), s!( 368, 302), s!( 374, 319), s!( 375, 317), s!( 343, 319), s!( 341, 298), s!( 311, 294), - s!( 320, 292), s!( 312, 299), s!( 340, 322), s!( 350, 297), s!( 338, 304), s!( 333, 294), s!( 334, 288), s!( 301, 272), - s!( 260, 275), s!( 303, 306), s!( 319, 313), s!( 325, 293), s!( 314, 287), s!( 337, 286), s!( 301, 268), s!( 287, 252), + s!( 320, 292), s!( 312, 299), s!( 340, 322), s!( 349, 297), s!( 338, 304), s!( 333, 294), s!( 334, 288), s!( 301, 272), + s!( 260, 275), s!( 302, 306), s!( 319, 313), s!( 325, 293), s!( 314, 287), s!( 337, 286), s!( 301, 268), s!( 287, 252), ], [ s!( 173, 250), s!( 295, 273), s!( 303, 298), s!( 323, 280), s!( 377, 269), s!( 241, 301), s!( 325, 254), s!( 231, 199), - s!( 310, 282), s!( 315, 309), s!( 377, 286), s!( 404, 295), s!( 357, 307), s!( 376, 288), s!( 338, 305), s!( 317, 274), + s!( 309, 282), s!( 315, 309), s!( 377, 286), s!( 404, 295), s!( 357, 307), s!( 376, 288), s!( 338, 305), s!( 317, 274), s!( 335, 295), s!( 373, 291), s!( 393, 328), s!( 385, 313), s!( 427, 290), s!( 394, 307), s!( 378, 287), s!( 340, 289), - s!( 352, 301), s!( 353, 322), s!( 392, 321), s!( 396, 315), s!( 390, 328), s!( 391, 319), s!( 361, 292), s!( 342, 296), - s!( 341, 269), s!( 335, 317), s!( 364, 311), s!( 376, 314), s!( 366, 324), s!( 363, 319), s!( 369, 293), s!( 344, 274), - s!( 305, 299), s!( 343, 304), s!( 349, 300), s!( 356, 319), s!( 373, 312), s!( 334, 309), s!( 331, 290), s!( 311, 264), + s!( 352, 301), s!( 353, 322), s!( 392, 321), s!( 395, 315), s!( 389, 328), s!( 391, 319), s!( 361, 292), s!( 342, 296), + s!( 341, 269), s!( 335, 317), s!( 364, 311), s!( 376, 314), s!( 366, 324), s!( 363, 319), s!( 368, 293), s!( 344, 274), + s!( 305, 299), s!( 343, 304), s!( 350, 300), s!( 356, 319), s!( 372, 312), s!( 334, 309), s!( 331, 290), s!( 311, 264), s!( 301, 288), s!( 324, 286), s!( 341, 282), s!( 322, 321), s!( 329, 305), s!( 338, 260), s!( 327, 268), s!( 309, 270), s!( 266, 283), s!( 345, 268), s!( 317, 300), s!( 329, 280), s!( 327, 285), s!( 338, 249), s!( 299, 251), s!( 289, 250), ], @@ -84,9 +84,9 @@ pub const KNIGHT_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( 295, 282), s!( 381, 291), s!( 382, 317), s!( 383, 306), s!( 405, 304), s!( 416, 290), s!( 383, 290), s!( 353, 288), s!( 364, 290), s!( 363, 309), s!( 409, 316), s!( 410, 304), s!( 374, 330), s!( 390, 325), s!( 346, 306), s!( 342, 280), s!( 331, 283), s!( 359, 306), s!( 368, 320), s!( 374, 315), s!( 400, 309), s!( 362, 323), s!( 352, 290), s!( 317, 263), - s!( 334, 287), s!( 346, 298), s!( 357, 308), s!( 358, 319), s!( 347, 311), s!( 339, 296), s!( 308, 288), s!( 321, 265), + s!( 334, 287), s!( 346, 298), s!( 357, 308), s!( 358, 319), s!( 347, 311), s!( 340, 296), s!( 308, 288), s!( 321, 265), s!( 325, 265), s!( 305, 287), s!( 316, 290), s!( 339, 285), s!( 325, 298), s!( 331, 256), s!( 320, 271), s!( 313, 251), - s!( 272, 286), s!( 334, 262), s!( 301, 285), s!( 310, 265), s!( 313, 262), s!( 335, 251), s!( 269, 256), s!( 292, 246), + s!( 272, 286), s!( 334, 262), s!( 301, 285), s!( 310, 265), s!( 313, 262), s!( 334, 251), s!( 269, 256), s!( 292, 246), ], [ s!( 181, 264), s!( 297, 279), s!( 295, 292), s!( 330, 294), s!( 387, 294), s!( 277, 320), s!( 331, 258), s!( 259, 217), @@ -100,7 +100,7 @@ pub const KNIGHT_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = ], [ s!( 192, 277), s!( 306, 291), s!( 309, 303), s!( 322, 291), s!( 382, 280), s!( 249, 303), s!( 324, 257), s!( 218, 203), - s!( 303, 283), s!( 328, 299), s!( 371, 283), s!( 370, 299), s!( 332, 307), s!( 380, 293), s!( 343, 293), s!( 294, 283), + s!( 303, 283), s!( 328, 299), s!( 371, 283), s!( 370, 299), s!( 332, 307), s!( 380, 292), s!( 343, 293), s!( 294, 283), s!( 330, 299), s!( 364, 294), s!( 375, 307), s!( 391, 313), s!( 432, 296), s!( 415, 305), s!( 370, 324), s!( 325, 305), s!( 341, 286), s!( 342, 304), s!( 367, 320), s!( 383, 314), s!( 365, 331), s!( 393, 315), s!( 338, 320), s!( 365, 307), s!( 325, 291), s!( 336, 294), s!( 362, 323), s!( 358, 309), s!( 360, 310), s!( 365, 316), s!( 362, 301), s!( 336, 303), @@ -110,9 +110,9 @@ pub const KNIGHT_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = ], [ s!( 146, 259), s!( 305, 294), s!( 296, 312), s!( 319, 300), s!( 380, 293), s!( 240, 301), s!( 330, 270), s!( 237, 215), - s!( 281, 296), s!( 309, 311), s!( 388, 289), s!( 391, 316), s!( 347, 335), s!( 375, 317), s!( 322, 297), s!( 311, 289), - s!( 307, 307), s!( 376, 294), s!( 390, 307), s!( 381, 334), s!( 434, 295), s!( 444, 321), s!( 397, 305), s!( 370, 299), - s!( 344, 296), s!( 331, 319), s!( 385, 306), s!( 409, 303), s!( 396, 302), s!( 440, 251), s!( 393, 314), s!( 385, 292), + s!( 281, 296), s!( 309, 311), s!( 388, 289), s!( 391, 316), s!( 347, 334), s!( 375, 317), s!( 322, 297), s!( 311, 289), + s!( 307, 307), s!( 376, 294), s!( 390, 307), s!( 381, 334), s!( 434, 295), s!( 444, 321), s!( 397, 304), s!( 370, 299), + s!( 344, 296), s!( 331, 319), s!( 385, 306), s!( 409, 303), s!( 396, 302), s!( 440, 252), s!( 393, 314), s!( 385, 292), s!( 318, 286), s!( 336, 303), s!( 363, 305), s!( 376, 315), s!( 389, 310), s!( 405, 307), s!( 379, 313), s!( 381, 284), s!( 299, 279), s!( 325, 303), s!( 344, 295), s!( 364, 299), s!( 375, 293), s!( 383, 301), s!( 367, 298), s!( 340, 301), s!( 315, 276), s!( 309, 306), s!( 317, 302), s!( 340, 290), s!( 346, 292), s!( 373, 286), s!( 313, 298), s!( 352, 281), @@ -120,10 +120,10 @@ pub const KNIGHT_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = ], [ s!( 136, 252), s!( 297, 294), s!( 272, 294), s!( 320, 318), s!( 379, 303), s!( 221, 301), s!( 328, 265), s!( 221, 209), - s!( 274, 298), s!( 289, 316), s!( 350, 321), s!( 361, 330), s!( 336, 337), s!( 377, 334), s!( 324, 320), s!( 318, 303), + s!( 274, 298), s!( 289, 316), s!( 350, 321), s!( 361, 330), s!( 336, 337), s!( 377, 333), s!( 324, 320), s!( 318, 303), s!( 311, 304), s!( 375, 315), s!( 384, 315), s!( 367, 324), s!( 391, 328), s!( 386, 323), s!( 353, 329), s!( 340, 294), - s!( 331, 314), s!( 343, 307), s!( 361, 326), s!( 372, 322), s!( 341, 279), s!( 382, 314), s!( 343, 325), s!( 354, 311), - s!( 331, 294), s!( 323, 310), s!( 357, 309), s!( 369, 320), s!( 365, 333), s!( 368, 330), s!( 350, 312), s!( 340, 291), + s!( 331, 314), s!( 343, 307), s!( 361, 326), s!( 372, 322), s!( 341, 280), s!( 382, 314), s!( 343, 325), s!( 354, 311), + s!( 331, 294), s!( 323, 310), s!( 357, 309), s!( 369, 320), s!( 365, 334), s!( 368, 330), s!( 350, 312), s!( 340, 291), s!( 317, 290), s!( 342, 306), s!( 353, 289), s!( 356, 316), s!( 371, 323), s!( 355, 304), s!( 357, 305), s!( 332, 280), s!( 316, 268), s!( 295, 300), s!( 342, 298), s!( 342, 294), s!( 340, 289), s!( 353, 313), s!( 334, 302), s!( 348, 285), s!( 268, 273), s!( 321, 277), s!( 328, 291), s!( 330, 303), s!( 344, 306), s!( 337, 282), s!( 315, 272), s!( 320, 274), @@ -172,73 +172,73 @@ pub const KNIGHT_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = [ [ s!( -26, -2), s!( 1, 7), s!( -24, -1), s!( 8, 8), s!( 27, 12), s!( 52, 40), s!( 6, 9), s!( 3, 4), - s!( 0, -15), s!( -12, -14), s!( -24, -0), s!( 2, 13), s!( -5, 5), s!( -16, 10), s!( -5, -23), s!( 29, 5), - s!( 3, -18), s!( -24, -4), s!( -25, -3), s!( 6, -9), s!( 16, 14), s!( 28, 21), s!( 11, 43), s!( -10, 52), - s!( -37, -4), s!( -16, -15), s!( -19, -3), s!( -15, 4), s!( 20, -1), s!( -12, 7), s!( 22, 45), s!( -9, 22), - s!( -19, -28), s!( -18, -2), s!( -10, -10), s!( -9, -1), s!( 5, 11), s!( 5, 11), s!( -4, 8), s!( 6, 12), - s!( -9, -11), s!( -15, -13), s!( -14, -5), s!( 1, -2), s!( -8, -2), s!( -4, 13), s!( -4, 15), s!( 6, 5), - s!( -16, -17), s!( 7, -20), s!( -7, -1), s!( -15, -6), s!( -3, -10), s!( -3, 3), s!( 3, -0), s!( -1, -6), - s!( -0, -1), s!( -3, -26), s!( 5, -11), s!( 7, -21), s!( -4, -5), s!( -2, -1), s!( -2, -23), s!( -6, 5), + s!( 0, -15), s!( -12, -14), s!( -23, 0), s!( 2, 13), s!( -5, 5), s!( -16, 10), s!( -5, -23), s!( 29, 5), + s!( 3, -18), s!( -24, -4), s!( -25, -3), s!( 6, -9), s!( 15, 13), s!( 27, 21), s!( 10, 43), s!( -9, 52), + s!( -37, -4), s!( -16, -15), s!( -19, -3), s!( -15, 3), s!( 18, -2), s!( -11, 7), s!( 22, 45), s!( -8, 22), + s!( -18, -28), s!( -18, -2), s!( -10, -10), s!( -9, -1), s!( 4, 10), s!( 4, 11), s!( -4, 8), s!( 5, 12), + s!( -9, -11), s!( -15, -13), s!( -14, -5), s!( 0, -2), s!( -8, -2), s!( -5, 12), s!( -5, 15), s!( 5, 5), + s!( -16, -17), s!( 7, -20), s!( -8, -1), s!( -16, -6), s!( -4, -11), s!( -4, 2), s!( 2, -0), s!( -1, -6), + s!( -0, -1), s!( -4, -26), s!( 5, -11), s!( 6, -21), s!( -5, -5), s!( -3, -2), s!( -3, -23), s!( -6, 5), ], [ - s!( -25, 25), s!( -0, 26), s!( -19, 32), s!( 3, 22), s!( -6, 12), s!( -12, 12), s!( -1, 4), s!( -10, -8), - s!( -1, 10), s!( -19, 17), s!( -11, 19), s!( 13, 2), s!( -2, 10), s!( -8, -11), s!( -22, -19), s!( -0, 3), - s!( -11, 5), s!( -12, 15), s!( -15, 15), s!( -14, 24), s!( -14, 7), s!( -28, 30), s!( -15, 25), s!( -56, -7), - s!( -25, 7), s!( -14, 11), s!( -18, 9), s!( -11, 21), s!( -25, 11), s!( -8, 25), s!( -21, 13), s!( 1, 7), - s!( -12, 1), s!( -17, 13), s!( -23, 18), s!( -17, 17), s!( -19, 16), s!( -14, 13), s!( -13, 5), s!( -15, 13), - s!( -7, -5), s!( -11, 4), s!( -15, 7), s!( -21, 9), s!( -14, 14), s!( -15, 7), s!( -8, 2), s!( -8, -13), - s!( -8, 11), s!( -3, -8), s!( -11, 6), s!( -14, -0), s!( -11, -3), s!( -12, 4), s!( -7, 2), s!( -13, 4), - s!( -6, 13), s!( -2, -20), s!( -4, -6), s!( -7, -0), s!( -13, 2), s!( -15, 9), s!( -8, -26), s!( 20, 2), + s!( -25, 25), s!( -0, 26), s!( -19, 32), s!( 3, 22), s!( -6, 12), s!( -13, 12), s!( -1, 4), s!( -10, -8), + s!( -0, 10), s!( -18, 17), s!( -11, 19), s!( 12, 2), s!( -2, 10), s!( -9, -11), s!( -23, -19), s!( -0, 2), + s!( -10, 5), s!( -12, 15), s!( -17, 14), s!( -14, 24), s!( -13, 7), s!( -29, 29), s!( -15, 24), s!( -56, -7), + s!( -25, 8), s!( -13, 11), s!( -18, 10), s!( -12, 19), s!( -25, 12), s!( -11, 22), s!( -20, 14), s!( 1, 7), + s!( -13, 1), s!( -16, 13), s!( -22, 18), s!( -17, 16), s!( -19, 16), s!( -14, 13), s!( -15, 5), s!( -15, 13), + s!( -7, -4), s!( -11, 5), s!( -15, 7), s!( -21, 9), s!( -14, 13), s!( -15, 7), s!( -8, 2), s!( -8, -13), + s!( -9, 11), s!( -3, -8), s!( -11, 6), s!( -14, -0), s!( -11, -3), s!( -13, 3), s!( -8, 2), s!( -13, 4), + s!( -6, 13), s!( -3, -19), s!( -4, -6), s!( -8, 0), s!( -13, 2), s!( -15, 9), s!( -8, -25), s!( 20, 2), ], [ s!( 26, 20), s!( 9, 24), s!( 2, -3), s!( 4, -8), s!( -20, -19), s!( -5, -15), s!( 1, -2), s!( -21, -13), - s!( 3, 18), s!( 22, 14), s!( -1, 3), s!( -15, -7), s!( -33, -17), s!( -8, -5), s!( -16, -7), s!( 8, -3), - s!( -11, 14), s!( -8, 11), s!( 8, -2), s!( 3, -2), s!( -26, -0), s!( -9, 0), s!( -24, -3), s!( 9, -25), - s!( 7, -2), s!( 8, -5), s!( 13, -4), s!( -5, -8), s!( 25, -1), s!( 10, -3), s!( 23, 7), s!( 1, -24), - s!( -12, 11), s!( 3, -2), s!( 28, -5), s!( 14, -5), s!( 17, -10), s!( 6, -7), s!( 31, -12), s!( 16, -14), - s!( -4, 11), s!( 5, -3), s!( -7, -0), s!( 11, -1), s!( 8, -2), s!( 3, -1), s!( -6, -4), s!( 6, -4), + s!( 3, 18), s!( 22, 14), s!( -1, 3), s!( -15, -7), s!( -33, -17), s!( -8, -5), s!( -17, -7), s!( 8, -3), + s!( -11, 14), s!( -8, 11), s!( 8, -2), s!( 3, -2), s!( -27, -0), s!( -10, -1), s!( -24, -3), s!( 9, -25), + s!( 7, -2), s!( 9, -5), s!( 13, -4), s!( -5, -8), s!( 24, -2), s!( 10, -3), s!( 21, 5), s!( 1, -24), + s!( -12, 11), s!( 3, -2), s!( 27, -6), s!( 14, -4), s!( 16, -10), s!( 6, -7), s!( 30, -12), s!( 16, -14), + s!( -4, 11), s!( 5, -3), s!( -6, -0), s!( 11, -1), s!( 8, -2), s!( 2, -1), s!( -6, -4), s!( 6, -4), s!( -2, -12), s!( -2, 11), s!( -2, -1), s!( -4, -0), s!( 4, -8), s!( 6, -5), s!( 0, 3), s!( 6, 1), - s!( -2, 5), s!( -12, 6), s!( 3, 1), s!( -10, -6), s!( 22, -14), s!( 2, -1), s!( -4, 13), s!( 6, -4), + s!( -2, 5), s!( -11, 7), s!( 3, 1), s!( -10, -6), s!( 22, -14), s!( 2, -1), s!( -4, 13), s!( 6, -4), ], [ s!( 13, 12), s!( 1, 4), s!( 9, -3), s!( -4, -6), s!( -7, -9), s!( -17, -8), s!( 3, 1), s!( -31, -6), - s!( 21, 8), s!( 11, -11), s!( -17, -4), s!( -7, -16), s!( -5, -9), s!( -20, -7), s!( -0, 4), s!( 2, -7), - s!( 8, -4), s!( -7, -1), s!( -22, 1), s!( -31, -3), s!( 26, -12), s!( -16, 2), s!( 1, -3), s!( 46, -12), - s!( 4, -14), s!( -5, 2), s!( -21, 5), s!( -10, 6), s!( -33, 7), s!( -22, 18), s!( -11, -16), s!( 3, 6), - s!( -14, 4), s!( -25, 13), s!( -22, 6), s!( -23, 9), s!( -29, 4), s!( -24, 7), s!( -18, -7), s!( -13, -6), - s!( -6, 2), s!( -14, 9), s!( -23, 5), s!( -25, 3), s!( -17, 2), s!( -23, -3), s!( -19, -1), s!( -15, -4), - s!( -4, -6), s!( -1, 12), s!( -13, -5), s!( -18, -0), s!( -19, -1), s!( -20, 6), s!( -15, -1), s!( -34, -2), - s!( -7, -7), s!( -11, -4), s!( -9, -12), s!( -19, -7), s!( -16, -5), s!( -16, -14), s!( -14, 6), s!( -4, -5), + s!( 21, 8), s!( 10, -11), s!( -17, -4), s!( -7, -16), s!( -5, -9), s!( -20, -7), s!( -0, 4), s!( 2, -7), + s!( 8, -4), s!( -7, -1), s!( -22, 1), s!( -31, -3), s!( 25, -13), s!( -16, 1), s!( 1, -3), s!( 46, -12), + s!( 3, -13), s!( -8, 1), s!( -20, 5), s!( -12, 5), s!( -31, 7), s!( -25, 17), s!( -10, -15), s!( -1, 5), + s!( -14, 5), s!( -25, 13), s!( -23, 6), s!( -23, 9), s!( -29, 4), s!( -24, 7), s!( -18, -7), s!( -14, -6), + s!( -6, 2), s!( -14, 9), s!( -23, 5), s!( -25, 3), s!( -17, 2), s!( -22, -3), s!( -19, -0), s!( -15, -4), + s!( -5, -6), s!( -1, 12), s!( -13, -5), s!( -18, -0), s!( -19, -1), s!( -21, 6), s!( -16, -1), s!( -34, -2), + s!( -7, -7), s!( -11, -3), s!( -9, -12), s!( -20, -7), s!( -16, -5), s!( -17, -14), s!( -15, 6), s!( -5, -5), ], [ s!( -30, -7), s!( 2, -2), s!( -8, -25), s!( -1, -4), s!( -5, -9), s!( 3, -2), s!( 7, 19), s!( 16, 20), - s!( 3, -10), s!( -7, -28), s!( -50, -8), s!( -11, -13), s!( -4, -5), s!( -0, -3), s!( 0, -5), s!( 1, 1), - s!( -2, 0), s!( 21, -9), s!( 1, -12), s!( 16, -15), s!( 1, -0), s!( -10, -4), s!( 16, -9), s!( 11, 3), - s!( 10, -8), s!( -7, -8), s!( 27, -0), s!( 12, -4), s!( 41, -7), s!( -6, -7), s!( 28, -16), s!( -16, 8), - s!( 13, 11), s!( 9, -6), s!( 19, -3), s!( -1, -3), s!( 37, -3), s!( -0, -0), s!( 1, 4), s!( -31, 8), - s!( 6, 7), s!( 8, 5), s!( 4, -2), s!( 24, -6), s!( 1, -10), s!( -3, -4), s!( 2, 2), s!( 8, -19), - s!( 7, 4), s!( -0, 4), s!( -0, 6), s!( -9, 4), s!( -12, 4), s!( -6, 4), s!( 8, -7), s!( -11, -1), + s!( 3, -10), s!( -7, -28), s!( -51, -8), s!( -11, -13), s!( -4, -5), s!( -0, -3), s!( 0, -5), s!( 1, 1), + s!( -2, 0), s!( 21, -9), s!( 1, -12), s!( 15, -15), s!( 1, -0), s!( -10, -4), s!( 16, -9), s!( 11, 3), + s!( 10, -8), s!( -6, -8), s!( 27, -1), s!( 12, -4), s!( 41, -8), s!( -6, -6), s!( 28, -16), s!( -16, 8), + s!( 13, 11), s!( 9, -6), s!( 19, -4), s!( -1, -3), s!( 36, -4), s!( -0, 0), s!( 1, 4), s!( -31, 8), + s!( 6, 7), s!( 8, 4), s!( 4, -2), s!( 24, -6), s!( 1, -10), s!( -4, -4), s!( 2, 2), s!( 8, -19), + s!( 7, 4), s!( 0, 4), s!( -0, 6), s!( -9, 4), s!( -12, 4), s!( -6, 4), s!( 8, -7), s!( -11, -1), s!( 3, -3), s!( -22, 28), s!( 0, -4), s!( -10, 0), s!( -13, 5), s!( -6, 0), s!( -34, 8), s!( 7, 13), ], [ s!( -6, -18), s!( -2, -10), s!( -4, -19), s!( -8, -5), s!( -9, -4), s!( 7, 11), s!( 6, 17), s!( -10, 5), - s!( -0, -19), s!( -7, -29), s!( 1, -13), s!( -7, -11), s!( -13, -13), s!( 31, -3), s!( -4, 8), s!( -14, -8), - s!( 6, -12), s!( -23, -23), s!( 41, -16), s!( -1, -14), s!( -20, 6), s!( -21, 10), s!( 9, -2), s!( -13, -1), - s!( 13, -12), s!( 12, -9), s!( 6, -7), s!( -6, 4), s!( 20, -19), s!( -1, 8), s!( -7, -6), s!( -28, 12), - s!( 10, -15), s!( 12, 4), s!( -4, -8), s!( 8, 2), s!( -10, -1), s!( -15, 6), s!( -29, -1), s!( -8, -4), - s!( -4, 2), s!( 0, -3), s!( -9, 6), s!( -2, -4), s!( -11, -6), s!( -7, 1), s!( -21, 10), s!( -11, -7), - s!( 5, -2), s!( 2, -6), s!( -2, 6), s!( -6, -4), s!( -11, -0), s!( 1, -9), s!( -7, 5), s!( -11, -11), - s!( 5, -1), s!( -8, -17), s!( 6, -13), s!( -10, -3), s!( -14, 5), s!( -4, 4), s!( -12, -16), s!( -13, 3), + s!( -0, -19), s!( -7, -29), s!( 0, -13), s!( -7, -11), s!( -13, -13), s!( 31, -3), s!( -4, 8), s!( -14, -8), + s!( 6, -12), s!( -24, -23), s!( 40, -17), s!( -1, -14), s!( -20, 6), s!( -21, 10), s!( 9, -2), s!( -13, -1), + s!( 13, -12), s!( 9, -10), s!( 7, -7), s!( -7, 3), s!( 20, -19), s!( -1, 8), s!( -6, -6), s!( -28, 12), + s!( 9, -15), s!( 12, 4), s!( -4, -8), s!( 8, 2), s!( -10, -1), s!( -15, 6), s!( -29, -1), s!( -8, -4), + s!( -4, 2), s!( 0, -3), s!( -8, 6), s!( -2, -4), s!( -12, -6), s!( -7, 1), s!( -20, 10), s!( -11, -7), + s!( 5, -2), s!( 2, -6), s!( -3, 6), s!( -6, -4), s!( -11, -0), s!( 1, -9), s!( -7, 5), s!( -12, -11), + s!( 5, -1), s!( -8, -17), s!( 6, -13), s!( -10, -3), s!( -14, 5), s!( -5, 4), s!( -12, -16), s!( -13, 3), ], [ s!( -26, -33), s!( -3, -11), s!( 6, 3), s!( -4, -2), s!( -1, 15), s!( 5, -2), s!( -2, 9), s!( 11, 3), - s!( -5, -33), s!( 3, -15), s!( 11, -9), s!( 2, -7), s!( 24, -3), s!( 5, -1), s!( 16, 5), s!( -24, -0), + s!( -6, -34), s!( 3, -15), s!( 11, -9), s!( 2, -7), s!( 24, -3), s!( 6, -1), s!( 16, 5), s!( -24, -0), s!( -5, -19), s!( -21, -3), s!( 14, -3), s!( 9, -0), s!( -4, -3), s!( -13, 1), s!( -13, -1), s!( -18, -3), - s!( 30, 3), s!( -8, -3), s!( 33, -3), s!( -7, -12), s!( 26, -9), s!( -9, -11), s!( 0, -22), s!( -27, 12), - s!( 15, -16), s!( 12, -1), s!( 3, -2), s!( 22, -19), s!( 3, -0), s!( 4, -14), s!( -2, -10), s!( -0, -17), - s!( 1, -2), s!( 9, -10), s!( -3, 11), s!( 8, -5), s!( -8, 3), s!( -2, -10), s!( -10, -6), s!( -12, 3), - s!( 7, -6), s!( -6, 6), s!( -3, 12), s!( -5, -10), s!( -2, -11), s!( 2, -7), s!( -9, 1), s!( -1, -19), - s!( 1, 8), s!( -15, -9), s!( -1, 6), s!( -18, -6), s!( -0, -8), s!( 7, -0), s!( -23, 2), s!( -16, 2), + s!( 30, 2), s!( -7, -3), s!( 32, -4), s!( -7, -12), s!( 25, -9), s!( -9, -10), s!( 0, -22), s!( -27, 12), + s!( 15, -16), s!( 12, -1), s!( 3, -2), s!( 21, -19), s!( 3, -0), s!( 4, -14), s!( -2, -10), s!( -0, -17), + s!( 1, -2), s!( 9, -10), s!( -4, 11), s!( 8, -5), s!( -8, 3), s!( -2, -10), s!( -10, -6), s!( -12, 3), + s!( 7, -6), s!( -6, 6), s!( -3, 12), s!( -5, -10), s!( -3, -11), s!( 2, -7), s!( -9, 1), s!( -2, -19), + s!( 1, 8), s!( -15, -9), s!( -1, 6), s!( -18, -6), s!( -1, -8), s!( 6, -0), s!( -23, 2), s!( -16, 2), ], [ s!( 0, 0), s!( 0, -1), s!( 4, 9), s!( 5, 15), s!( -3, 2), s!( 5, 17), s!( -1, -6), s!( 1, -2), @@ -246,9 +246,9 @@ pub const KNIGHT_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( 4, 6), s!( 7, 13), s!( 25, 16), s!( 2, 2), s!( -6, -18), s!( -32, -6), s!( -10, -18), s!( 4, -11), s!( 22, 3), s!( 27, 23), s!( 8, -2), s!( 12, 1), s!( -13, -2), s!( 5, -35), s!( -6, -21), s!( -15, -20), s!( 7, 12), s!( 25, 12), s!( 5, -6), s!( 16, -1), s!( 11, -13), s!( 16, -14), s!( -5, -24), s!( 10, -20), - s!( -9, -5), s!( -1, 6), s!( 21, -4), s!( -7, 0), s!( -5, -15), s!( -8, 1), s!( 5, 8), s!( 3, 8), + s!( -9, -5), s!( -1, 6), s!( 20, -4), s!( -7, 0), s!( -5, -15), s!( -9, 1), s!( 5, 8), s!( 3, 8), s!( 7, 2), s!( 9, -6), s!( -4, -1), s!( -11, -4), s!( -4, 6), s!( -7, -5), s!( -7, 7), s!( -16, -14), - s!( -0, 5), s!( -14, 13), s!( -6, 5), s!( 10, 6), s!( -36, 4), s!( -13, -14), s!( 13, -7), s!( -9, -3), + s!( -0, 5), s!( -14, 13), s!( -6, 5), s!( 10, 6), s!( -36, 4), s!( -13, -14), s!( 12, -7), s!( -9, -3), ], [ s!( -9, -0), s!( 1, 4), s!( -8, -5), s!( 2, 5), s!( 9, 6), s!( 16, 15), s!( 1, 3), s!( 1, 1), @@ -263,8 +263,8 @@ pub const KNIGHT_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = [ s!( -3, 7), s!( 4, 10), s!( -3, 8), s!( 3, 13), s!( 1, 3), s!( 2, 11), s!( 1, 7), s!( -3, -2), s!( 14, -5), s!( -5, -1), s!( -2, -16), s!( 14, -16), s!( -3, -14), s!( 3, -7), s!( -4, -8), s!( 3, 3), - s!( -5, -20), s!( -8, -6), s!( -9, -32), s!( -13, -22), s!( -19, -10), s!( -15, 1), s!( -11, -4), s!( -23, 5), - s!( -9, -11), s!( -11, -23), s!( -4, -31), s!( -3, -27), s!( -14, -31), s!( -14, -0), s!( -18, -13), s!( 9, -2), + s!( -5, -20), s!( -8, -7), s!( -9, -33), s!( -13, -22), s!( -19, -10), s!( -15, 1), s!( -11, -4), s!( -23, 5), + s!( -9, -11), s!( -11, -24), s!( -4, -31), s!( -3, -27), s!( -14, -31), s!( -14, -0), s!( -18, -13), s!( 9, -2), s!( -3, -13), s!( 2, -18), s!( -13, -26), s!( -8, -15), s!( -15, -22), s!( -5, 1), s!( -6, -1), s!( -2, 9), s!( 3, -16), s!( -4, -4), s!( -2, -10), s!( -4, -14), s!( -5, -8), s!( 4, -0), s!( 2, -12), s!( -1, -4), s!( -1, -4), s!( 5, -8), s!( -0, -1), s!( 3, 4), s!( 4, 8), s!( -5, 5), s!( -2, 1), s!( 5, -5), @@ -273,7 +273,7 @@ pub const KNIGHT_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = [ s!( 8, 7), s!( 4, 8), s!( -0, -12), s!( -0, -9), s!( -8, -18), s!( -1, -8), s!( -1, 2), s!( -7, -4), s!( -1, -5), s!( 9, -0), s!( -0, -10), s!( -8, -18), s!( -9, -9), s!( -3, -4), s!( 4, 5), s!( 2, 2), - s!( -4, -9), s!( -7, -8), s!( -6, -25), s!( -14, 3), s!( -14, -17), s!( -0, -11), s!( -6, -3), s!( 0, -7), + s!( -4, -9), s!( -7, -8), s!( -6, -25), s!( -14, 2), s!( -14, -17), s!( -0, -11), s!( -6, -3), s!( 0, -7), s!( -0, -0), s!( 2, -15), s!( 4, -14), s!( -18, -28), s!( 4, -38), s!( -1, -48), s!( 16, -11), s!( -1, -14), s!( -4, -11), s!( -6, -14), s!( 4, -24), s!( 4, -9), s!( 17, -33), s!( 1, -14), s!( 17, -4), s!( 11, -0), s!( -0, -2), s!( 5, -1), s!( -1, 3), s!( 9, -10), s!( 15, -10), s!( 2, -3), s!( -7, 6), s!( -6, -5), @@ -282,9 +282,9 @@ pub const KNIGHT_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = ], [ s!( 3, -0), s!( 2, 4), s!( 6, 12), s!( -0, -4), s!( -1, -4), s!( -5, -11), s!( 2, 6), s!( -12, -4), - s!( 2, 2), s!( 11, -2), s!( -3, -15), s!( -3, -10), s!( -2, 10), s!( 2, 17), s!( 2, -0), s!( 0, 2), + s!( 2, 2), s!( 11, -2), s!( -3, -15), s!( -3, -10), s!( -2, 9), s!( 2, 17), s!( 2, -0), s!( 0, 2), s!( 2, -5), s!( 9, -12), s!( -13, -11), s!( -25, -32), s!( 9, -24), s!( -8, -12), s!( -0, -8), s!( 16, -8), - s!( 15, -21), s!( 1, -12), s!( -2, -5), s!( -8, -13), s!( -36, -50), s!( -16, -22), s!( -1, -9), s!( 3, 3), + s!( 15, -21), s!( 1, -12), s!( -2, -5), s!( -8, -13), s!( -36, -49), s!( -16, -22), s!( -1, -9), s!( 3, 3), s!( -1, -1), s!( -7, 1), s!( -13, -15), s!( -20, -11), s!( -18, -8), s!( -10, -12), s!( -5, -5), s!( 5, 1), s!( -1, -1), s!( 1, -3), s!( -11, -12), s!( -3, -24), s!( -0, -10), s!( 1, 6), s!( -8, 0), s!( -3, 9), s!( 7, -0), s!( -7, -7), s!( 10, 2), s!( -1, -3), s!( 0, -1), s!( -8, 6), s!( -15, -11), s!( -12, 10), @@ -303,10 +303,10 @@ pub const KNIGHT_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = [ s!( -2, -9), s!( -0, 1), s!( -3, -17), s!( 0, -0), s!( -4, -7), s!( -0, -2), s!( 2, 4), s!( -3, -2), s!( -2, -18), s!( -1, -13), s!( 2, -13), s!( -2, -13), s!( -7, -30), s!( 8, -3), s!( -1, 5), s!( -5, -9), - s!( -1, -1), s!( -4, -6), s!( 9, -19), s!( -0, -21), s!( -6, -26), s!( -20, -13), s!( 3, -31), s!( -2, -2), - s!( 13, 13), s!( 18, -21), s!( -4, -17), s!( 1, -7), s!( 2, -14), s!( -3, -34), s!( 0, -31), s!( -26, -11), + s!( -1, -1), s!( -4, -6), s!( 9, -19), s!( 0, -21), s!( -6, -26), s!( -20, -13), s!( 3, -31), s!( -2, -2), + s!( 13, 13), s!( 18, -21), s!( -4, -17), s!( 1, -7), s!( 2, -14), s!( -3, -34), s!( -0, -31), s!( -26, -11), s!( 8, -6), s!( 3, -13), s!( -4, -6), s!( 18, -16), s!( -1, -22), s!( -14, -22), s!( -9, -18), s!( -2, -8), - s!( 3, 9), s!( 9, -19), s!( -6, -17), s!( 9, -7), s!( -20, 2), s!( 5, 5), s!( -7, 2), s!( 3, -3), + s!( 3, 9), s!( 9, -19), s!( -6, -17), s!( 9, -8), s!( -20, 2), s!( 5, 5), s!( -7, 2), s!( 3, -3), s!( 5, -10), s!( -3, -6), s!( -11, -23), s!( 1, -0), s!( -2, -1), s!( 9, 2), s!( 6, 9), s!( -12, -2), s!( -1, -28), s!( 3, 7), s!( -1, -9), s!( -6, -14), s!( -1, -3), s!( -2, 1), s!( 1, -2), s!( -5, -1), ], @@ -314,7 +314,7 @@ pub const KNIGHT_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( -7, -8), s!( -1, -4), s!( -1, -12), s!( -0, -6), s!( -3, 4), s!( 2, -8), s!( -1, -1), s!( 3, -0), s!( 3, -0), s!( -0, -7), s!( 4, -9), s!( -1, -14), s!( 10, -26), s!( -8, -18), s!( 2, -14), s!( -9, -5), s!( -1, -2), s!( -16, -9), s!( 3, -17), s!( -7, -34), s!( 4, -30), s!( -15, -19), s!( -6, -16), s!( -6, -9), - s!( 14, 4), s!( -4, -17), s!( 22, -11), s!( -8, -27), s!( 21, -34), s!( 7, -44), s!( -10, -30), s!( -27, -20), + s!( 14, 4), s!( -4, -17), s!( 22, -11), s!( -8, -27), s!( 21, -34), s!( 7, -44), s!( -10, -31), s!( -27, -20), s!( 13, -8), s!( 6, 1), s!( 10, 3), s!( 10, -36), s!( 0, -27), s!( 10, -38), s!( -5, -20), s!( -9, -10), s!( -11, -4), s!( 6, -9), s!( 8, 1), s!( 6, -9), s!( -8, -23), s!( 1, -14), s!( 4, -11), s!( -3, 2), s!( -1, -8), s!( -2, 4), s!( -5, 5), s!( -2, -4), s!( 3, 15), s!( -2, -7), s!( -2, -1), s!( -7, -8), diff --git a/src/evaluation/pst/pawn.rs b/src/evaluation/pst/pawn.rs index d8bde143..3c10af91 100644 --- a/src/evaluation/pst/pawn.rs +++ b/src/evaluation/pst/pawn.rs @@ -1,5 +1,5 @@ // ------------------------------------------------------------------------- // -// Generated at 23-12-2024 19:19:23 UTC (e = 0.067721, k = 0.0077, r = 0.70) // +// Generated at 28-12-2024 13:59:28 UTC (e = 0.067562, k = 0.0077, r = 0.70) // // ------------------------------------------------------------------------- // use super::*; @@ -10,72 +10,72 @@ pub const PAWN_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = [ [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 208, 212), s!( 218, 213), s!( 197, 199), s!( 185, 194), s!( 227, 184), s!( 166, 214), s!( 111, 285), s!( 122, 302), - s!( 68, 168), s!( 94, 160), s!( 143, 126), s!( 135, 124), s!( 136, 135), s!( 137, 149), s!( 146, 191), s!( 109, 188), - s!( 56, 111), s!( 54, 101), s!( 74, 75), s!( 82, 63), s!( 95, 75), s!( 97, 93), s!( 67, 112), s!( 90, 110), - s!( 51, 93), s!( 40, 83), s!( 69, 58), s!( 73, 53), s!( 82, 61), s!( 89, 79), s!( 77, 76), s!( 102, 64), - s!( 37, 93), s!( 36, 89), s!( 61, 69), s!( 72, 68), s!( 69, 74), s!( 84, 75), s!( 97, 60), s!( 112, 48), - s!( 48, 97), s!( 44, 98), s!( 61, 91), s!( 41, 87), s!( 58, 90), s!( 90, 91), s!( 122, 72), s!( 115, 41), + s!( 208, 213), s!( 218, 213), s!( 197, 199), s!( 185, 195), s!( 227, 185), s!( 166, 215), s!( 111, 285), s!( 122, 303), + s!( 69, 168), s!( 94, 160), s!( 143, 126), s!( 136, 124), s!( 136, 135), s!( 137, 149), s!( 146, 191), s!( 109, 188), + s!( 56, 111), s!( 55, 101), s!( 75, 75), s!( 82, 64), s!( 95, 75), s!( 98, 93), s!( 67, 112), s!( 89, 110), + s!( 51, 93), s!( 41, 83), s!( 69, 59), s!( 73, 54), s!( 82, 62), s!( 89, 78), s!( 77, 77), s!( 100, 64), + s!( 38, 93), s!( 37, 89), s!( 62, 70), s!( 72, 68), s!( 69, 74), s!( 84, 75), s!( 96, 60), s!( 109, 48), + s!( 49, 97), s!( 45, 98), s!( 61, 92), s!( 41, 87), s!( 58, 91), s!( 89, 90), s!( 121, 71), s!( 112, 40), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 182, 237), s!( 193, 218), s!( 178, 208), s!( 183, 184), s!( 196, 189), s!( 143, 222), s!( 112, 296), s!( 142, 268), - s!( 77, 174), s!( 88, 160), s!( 133, 142), s!( 130, 127), s!( 128, 135), s!( 139, 158), s!( 145, 193), s!( 116, 189), - s!( 58, 128), s!( 62, 107), s!( 78, 85), s!( 87, 75), s!( 83, 91), s!( 90, 104), s!( 90, 114), s!( 84, 118), - s!( 51, 106), s!( 52, 90), s!( 73, 72), s!( 73, 70), s!( 80, 75), s!( 88, 84), s!( 108, 75), s!( 89, 79), - s!( 39, 103), s!( 40, 95), s!( 60, 85), s!( 67, 88), s!( 72, 83), s!( 88, 83), s!( 141, 54), s!( 99, 63), - s!( 47, 111), s!( 49, 106), s!( 58, 101), s!( 54, 99), s!( 60, 102), s!( 115, 87), s!( 162, 53), s!( 100, 58), + s!( 182, 237), s!( 193, 219), s!( 178, 208), s!( 184, 184), s!( 196, 190), s!( 143, 223), s!( 112, 296), s!( 143, 269), + s!( 77, 174), s!( 88, 160), s!( 133, 142), s!( 130, 127), s!( 128, 135), s!( 139, 158), s!( 145, 192), s!( 115, 189), + s!( 57, 128), s!( 62, 107), s!( 77, 85), s!( 87, 76), s!( 83, 91), s!( 91, 104), s!( 89, 114), s!( 85, 119), + s!( 51, 106), s!( 52, 90), s!( 73, 72), s!( 72, 70), s!( 80, 75), s!( 89, 85), s!( 106, 75), s!( 89, 79), + s!( 39, 103), s!( 40, 95), s!( 60, 85), s!( 67, 88), s!( 71, 82), s!( 89, 83), s!( 139, 54), s!( 99, 64), + s!( 47, 111), s!( 49, 106), s!( 58, 101), s!( 54, 99), s!( 60, 102), s!( 115, 87), s!( 160, 53), s!( 102, 58), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 207, 216), s!( 224, 202), s!( 202, 207), s!( 204, 179), s!( 198, 200), s!( 165, 240), s!( 90, 282), s!( 97, 272), - s!( 58, 174), s!( 73, 163), s!( 109, 150), s!( 141, 135), s!( 148, 142), s!( 186, 139), s!( 144, 175), s!( 76, 188), - s!( 48, 131), s!( 47, 114), s!( 83, 87), s!( 90, 85), s!( 108, 91), s!( 126, 96), s!( 86, 112), s!( 65, 124), - s!( 38, 115), s!( 41, 102), s!( 77, 78), s!( 86, 76), s!( 93, 76), s!( 127, 73), s!( 89, 85), s!( 62, 93), - s!( 33, 108), s!( 39, 99), s!( 73, 86), s!( 83, 81), s!( 96, 70), s!( 124, 69), s!( 96, 65), s!( 49, 86), - s!( 41, 120), s!( 47, 114), s!( 66, 106), s!( 48, 110), s!( 81, 87), s!( 137, 70), s!( 85, 77), s!( 44, 95), + s!( 207, 217), s!( 224, 202), s!( 202, 207), s!( 204, 180), s!( 198, 201), s!( 165, 241), s!( 91, 283), s!( 98, 273), + s!( 59, 175), s!( 73, 164), s!( 109, 151), s!( 141, 136), s!( 148, 142), s!( 185, 139), s!( 144, 175), s!( 76, 187), + s!( 49, 131), s!( 48, 114), s!( 83, 88), s!( 90, 85), s!( 108, 91), s!( 125, 96), s!( 86, 112), s!( 64, 124), + s!( 39, 115), s!( 42, 101), s!( 76, 79), s!( 85, 76), s!( 94, 77), s!( 125, 73), s!( 90, 85), s!( 61, 93), + s!( 33, 108), s!( 40, 98), s!( 72, 86), s!( 82, 81), s!( 97, 71), s!( 121, 69), s!( 97, 66), s!( 49, 86), + s!( 41, 120), s!( 47, 114), s!( 66, 105), s!( 48, 110), s!( 82, 88), s!( 136, 70), s!( 87, 78), s!( 44, 94), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 158, 245), s!( 164, 223), s!( 125, 239), s!( 206, 191), s!( 184, 225), s!( 143, 231), s!( 93, 268), s!( 70, 269), - s!( 66, 180), s!( 88, 175), s!( 104, 161), s!( 116, 155), s!( 109, 156), s!( 130, 157), s!( 86, 177), s!( 66, 184), - s!( 52, 133), s!( 60, 114), s!( 73, 99), s!( 85, 89), s!( 96, 101), s!( 88, 99), s!( 61, 122), s!( 49, 125), - s!( 49, 112), s!( 52, 101), s!( 83, 87), s!( 78, 80), s!( 96, 77), s!( 86, 87), s!( 68, 99), s!( 47, 101), - s!( 42, 108), s!( 49, 97), s!( 73, 92), s!( 68, 82), s!( 95, 77), s!( 86, 78), s!( 81, 82), s!( 45, 92), - s!( 47, 118), s!( 64, 107), s!( 73, 109), s!( 46, 104), s!( 69, 87), s!( 95, 80), s!( 90, 88), s!( 58, 96), + s!( 158, 245), s!( 163, 224), s!( 125, 240), s!( 206, 192), s!( 184, 226), s!( 143, 232), s!( 94, 268), s!( 70, 270), + s!( 66, 181), s!( 88, 175), s!( 104, 161), s!( 116, 155), s!( 109, 156), s!( 130, 157), s!( 86, 177), s!( 66, 184), + s!( 52, 133), s!( 60, 114), s!( 73, 100), s!( 86, 90), s!( 95, 101), s!( 89, 99), s!( 60, 123), s!( 48, 125), + s!( 49, 112), s!( 52, 101), s!( 84, 87), s!( 80, 81), s!( 95, 77), s!( 87, 88), s!( 68, 99), s!( 47, 101), + s!( 42, 108), s!( 49, 97), s!( 72, 92), s!( 70, 83), s!( 94, 77), s!( 88, 78), s!( 80, 82), s!( 45, 92), + s!( 47, 118), s!( 64, 107), s!( 73, 109), s!( 47, 104), s!( 69, 87), s!( 97, 80), s!( 90, 88), s!( 58, 96), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 201, 254), s!( 225, 233), s!( 185, 235), s!( 236, 219), s!( 205, 214), s!( 177, 225), s!( 78, 259), s!( 39, 278), - s!( 64, 193), s!( 88, 188), s!( 144, 171), s!( 145, 165), s!( 155, 146), s!( 147, 145), s!( 121, 161), s!( 54, 182), - s!( 38, 142), s!( 54, 129), s!( 97, 103), s!( 114, 87), s!( 103, 89), s!( 114, 91), s!( 65, 113), s!( 52, 126), - s!( 38, 120), s!( 63, 109), s!( 96, 82), s!( 116, 70), s!( 98, 75), s!( 89, 87), s!( 49, 100), s!( 31, 112), - s!( 30, 113), s!( 64, 97), s!( 89, 79), s!( 131, 56), s!( 97, 68), s!( 86, 82), s!( 42, 91), s!( 24, 105), - s!( 24, 127), s!( 71, 103), s!( 86, 93), s!( 116, 66), s!( 70, 81), s!( 82, 94), s!( 49, 103), s!( 24, 116), + s!( 201, 255), s!( 225, 233), s!( 185, 236), s!( 236, 219), s!( 205, 214), s!( 177, 225), s!( 78, 260), s!( 39, 278), + s!( 64, 194), s!( 88, 188), s!( 144, 171), s!( 145, 165), s!( 155, 146), s!( 147, 145), s!( 121, 161), s!( 55, 182), + s!( 38, 142), s!( 54, 130), s!( 98, 103), s!( 114, 87), s!( 103, 89), s!( 114, 91), s!( 65, 113), s!( 52, 126), + s!( 39, 120), s!( 63, 109), s!( 97, 82), s!( 115, 70), s!( 98, 75), s!( 88, 87), s!( 49, 100), s!( 32, 112), + s!( 31, 113), s!( 64, 97), s!( 90, 80), s!( 129, 57), s!( 97, 69), s!( 85, 83), s!( 43, 91), s!( 24, 105), + s!( 25, 127), s!( 71, 103), s!( 87, 94), s!( 115, 66), s!( 70, 82), s!( 82, 94), s!( 49, 103), s!( 24, 116), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 219, 261), s!( 233, 240), s!( 205, 272), s!( 194, 222), s!( 190, 209), s!( 167, 212), s!( 94, 254), s!( 42, 269), - s!( 98, 202), s!( 115, 207), s!( 129, 186), s!( 124, 162), s!( 139, 146), s!( 135, 132), s!( 96, 168), s!( 45, 183), - s!( 77, 145), s!( 89, 123), s!( 91, 109), s!( 73, 99), s!( 73, 100), s!( 98, 89), s!( 46, 119), s!( 41, 128), - s!( 79, 115), s!( 81, 104), s!( 100, 75), s!( 79, 78), s!( 67, 82), s!( 78, 84), s!( 47, 93), s!( 29, 109), - s!( 87, 97), s!( 119, 77), s!( 93, 84), s!( 70, 82), s!( 64, 85), s!( 69, 82), s!( 31, 92), s!( 14, 106), - s!( 99, 99), s!( 137, 74), s!( 116, 87), s!( 62, 89), s!( 38, 103), s!( 63, 101), s!( 31, 112), s!( 20, 116), + s!( 219, 262), s!( 233, 241), s!( 205, 272), s!( 194, 223), s!( 190, 209), s!( 167, 212), s!( 94, 254), s!( 43, 269), + s!( 98, 203), s!( 115, 207), s!( 129, 186), s!( 125, 162), s!( 139, 146), s!( 135, 132), s!( 96, 168), s!( 46, 183), + s!( 77, 146), s!( 89, 124), s!( 91, 109), s!( 74, 99), s!( 73, 100), s!( 98, 89), s!( 46, 119), s!( 42, 128), + s!( 79, 115), s!( 80, 105), s!( 99, 75), s!( 81, 79), s!( 67, 82), s!( 78, 84), s!( 48, 93), s!( 30, 108), + s!( 86, 97), s!( 120, 78), s!( 93, 84), s!( 71, 82), s!( 63, 85), s!( 69, 82), s!( 31, 92), s!( 15, 106), + s!( 98, 99), s!( 137, 74), s!( 116, 88), s!( 63, 90), s!( 38, 103), s!( 62, 101), s!( 32, 111), s!( 21, 116), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 263, 263), s!( 235, 293), s!( 229, 257), s!( 196, 208), s!( 192, 206), s!( 163, 211), s!( 89, 269), s!( 32, 287), - s!( 113, 228), s!( 128, 229), s!( 106, 200), s!( 135, 151), s!( 129, 145), s!( 133, 133), s!( 83, 173), s!( 63, 184), - s!( 77, 159), s!( 88, 137), s!( 71, 119), s!( 65, 100), s!( 74, 94), s!( 85, 87), s!( 50, 108), s!( 47, 130), - s!( 92, 118), s!( 93, 101), s!( 75, 94), s!( 80, 72), s!( 63, 73), s!( 67, 80), s!( 46, 92), s!( 39, 106), - s!( 102, 89), s!( 138, 70), s!( 81, 86), s!( 76, 85), s!( 50, 84), s!( 51, 84), s!( 23, 93), s!( 23, 101), - s!( 105, 85), s!( 158, 72), s!( 107, 88), s!( 41, 119), s!( 27, 106), s!( 48, 99), s!( 23, 121), s!( 31, 116), + s!( 263, 264), s!( 235, 293), s!( 229, 257), s!( 196, 208), s!( 192, 206), s!( 163, 211), s!( 89, 269), s!( 33, 287), + s!( 113, 228), s!( 128, 229), s!( 106, 200), s!( 136, 151), s!( 129, 145), s!( 133, 133), s!( 84, 173), s!( 63, 184), + s!( 77, 159), s!( 88, 137), s!( 71, 119), s!( 65, 99), s!( 74, 94), s!( 86, 87), s!( 50, 108), s!( 47, 130), + s!( 93, 118), s!( 92, 101), s!( 76, 94), s!( 80, 72), s!( 63, 73), s!( 67, 80), s!( 47, 92), s!( 40, 106), + s!( 103, 90), s!( 136, 70), s!( 82, 87), s!( 75, 84), s!( 51, 84), s!( 51, 84), s!( 23, 93), s!( 24, 101), + s!( 107, 86), s!( 157, 72), s!( 108, 88), s!( 41, 119), s!( 27, 106), s!( 48, 100), s!( 23, 120), s!( 31, 116), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ @@ -83,56 +83,56 @@ pub const PAWN_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( 232, 315), s!( 242, 299), s!( 209, 276), s!( 205, 196), s!( 194, 211), s!( 184, 232), s!( 67, 268), s!( 31, 273), s!( 98, 242), s!( 114, 236), s!( 172, 177), s!( 139, 149), s!( 145, 148), s!( 97, 147), s!( 98, 155), s!( 60, 191), s!( 70, 161), s!( 99, 140), s!( 96, 115), s!( 76, 77), s!( 58, 95), s!( 73, 77), s!( 37, 109), s!( 38, 123), - s!( 98, 102), s!( 59, 123), s!( 82, 91), s!( 77, 79), s!( 63, 75), s!( 45, 79), s!( 44, 87), s!( 36, 111), - s!( 118, 75), s!( 120, 72), s!( 89, 88), s!( 74, 91), s!( 39, 78), s!( 39, 83), s!( 11, 90), s!( 14, 107), - s!( 102, 89), s!( 151, 87), s!( 96, 87), s!( 38, 102), s!( 39, 87), s!( 38, 96), s!( 26, 109), s!( 30, 122), + s!( 97, 102), s!( 59, 123), s!( 81, 91), s!( 77, 78), s!( 63, 75), s!( 46, 80), s!( 44, 87), s!( 36, 111), + s!( 117, 74), s!( 119, 72), s!( 89, 88), s!( 74, 90), s!( 39, 78), s!( 39, 83), s!( 12, 90), s!( 14, 107), + s!( 101, 88), s!( 151, 86), s!( 96, 87), s!( 38, 102), s!( 39, 87), s!( 39, 97), s!( 26, 109), s!( 30, 122), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 228, 202), s!( 222, 216), s!( 202, 193), s!( 200, 172), s!( 233, 186), s!( 176, 278), s!( 98, 368), s!( 92, 329), - s!( 80, 166), s!( 108, 154), s!( 134, 123), s!( 147, 133), s!( 154, 135), s!( 167, 206), s!( 174, 255), s!( 127, 218), + s!( 228, 202), s!( 222, 216), s!( 202, 193), s!( 200, 172), s!( 233, 186), s!( 176, 279), s!( 98, 369), s!( 92, 330), + s!( 80, 166), s!( 108, 154), s!( 134, 123), s!( 147, 133), s!( 154, 135), s!( 167, 206), s!( 174, 256), s!( 127, 218), s!( 58, 108), s!( 70, 97), s!( 83, 76), s!( 91, 71), s!( 104, 114), s!( 109, 151), s!( 96, 201), s!( 105, 171), s!( 35, 99), s!( 46, 79), s!( 64, 78), s!( 82, 75), s!( 83, 92), s!( 91, 109), s!( 89, 141), s!( 103, 121), s!( 32, 100), s!( 19, 93), s!( 60, 88), s!( 65, 82), s!( 72, 85), s!( 79, 87), s!( 87, 114), s!( 111, 98), - s!( 23, 108), s!( 19, 102), s!( 51, 108), s!( 37, 105), s!( 46, 99), s!( 76, 101), s!( 96, 101), s!( 101, 90), + s!( 23, 109), s!( 19, 102), s!( 51, 108), s!( 37, 105), s!( 46, 99), s!( 76, 101), s!( 96, 101), s!( 101, 90), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 198, 199), s!( 220, 211), s!( 193, 207), s!( 190, 198), s!( 234, 252), s!( 182, 334), s!( 118, 350), s!( 104, 356), - s!( 71, 165), s!( 99, 152), s!( 137, 129), s!( 142, 144), s!( 156, 200), s!( 188, 228), s!( 169, 254), s!( 121, 253), - s!( 52, 111), s!( 74, 98), s!( 82, 96), s!( 95, 92), s!( 94, 123), s!( 127, 176), s!( 114, 198), s!( 92, 194), - s!( 36, 104), s!( 45, 91), s!( 72, 70), s!( 78, 101), s!( 74, 106), s!( 96, 128), s!( 138, 124), s!( 71, 138), - s!( 36, 108), s!( 26, 109), s!( 42, 91), s!( 59, 98), s!( 58, 87), s!( 78, 101), s!( 103, 99), s!( 84, 102), + s!( 198, 199), s!( 220, 211), s!( 193, 207), s!( 190, 198), s!( 234, 253), s!( 182, 335), s!( 118, 350), s!( 104, 357), + s!( 71, 165), s!( 99, 152), s!( 137, 129), s!( 142, 144), s!( 156, 200), s!( 188, 228), s!( 169, 253), s!( 121, 253), + s!( 52, 111), s!( 74, 98), s!( 82, 96), s!( 95, 92), s!( 94, 123), s!( 127, 176), s!( 114, 197), s!( 92, 194), + s!( 36, 104), s!( 45, 91), s!( 72, 70), s!( 78, 101), s!( 74, 106), s!( 96, 128), s!( 138, 123), s!( 71, 137), + s!( 36, 108), s!( 26, 109), s!( 42, 91), s!( 59, 98), s!( 58, 87), s!( 78, 101), s!( 103, 98), s!( 84, 102), s!( 16, 121), s!( 16, 113), s!( 45, 105), s!( 54, 97), s!( 59, 93), s!( 103, 98), s!( 132, 89), s!( 79, 100), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 198, 207), s!( 219, 206), s!( 202, 215), s!( 229, 231), s!( 226, 306), s!( 188, 316), s!( 86, 345), s!( 81, 321), - s!( 61, 164), s!( 78, 172), s!( 117, 163), s!( 180, 180), s!( 170, 216), s!( 212, 217), s!( 164, 224), s!( 79, 234), - s!( 60, 116), s!( 57, 118), s!( 84, 109), s!( 110, 120), s!( 125, 155), s!( 142, 164), s!( 93, 170), s!( 55, 160), + s!( 198, 207), s!( 219, 206), s!( 202, 215), s!( 229, 232), s!( 226, 307), s!( 188, 316), s!( 86, 346), s!( 81, 322), + s!( 61, 164), s!( 78, 172), s!( 117, 163), s!( 180, 180), s!( 170, 216), s!( 212, 216), s!( 164, 225), s!( 79, 234), + s!( 60, 116), s!( 57, 118), s!( 84, 109), s!( 110, 120), s!( 125, 154), s!( 142, 163), s!( 93, 170), s!( 55, 160), s!( 38, 112), s!( 55, 90), s!( 73, 94), s!( 93, 89), s!( 83, 112), s!( 135, 108), s!( 76, 116), s!( 41, 121), s!( 16, 112), s!( 30, 96), s!( 59, 100), s!( 71, 96), s!( 79, 86), s!( 119, 89), s!( 82, 96), s!( 29, 101), - s!( 19, 136), s!( 21, 116), s!( 53, 105), s!( 64, 98), s!( 72, 84), s!( 119, 91), s!( 71, 95), s!( 23, 107), + s!( 18, 136), s!( 21, 116), s!( 53, 105), s!( 64, 98), s!( 72, 84), s!( 119, 91), s!( 71, 95), s!( 23, 107), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 176, 212), s!( 203, 235), s!( 169, 273), s!( 249, 286), s!( 214, 297), s!( 167, 305), s!( 83, 312), s!( 60, 272), - s!( 50, 189), s!( 99, 197), s!( 120, 226), s!( 146, 223), s!( 142, 228), s!( 176, 209), s!( 112, 214), s!( 62, 184), - s!( 56, 145), s!( 71, 138), s!( 85, 142), s!( 110, 153), s!( 115, 171), s!( 110, 152), s!( 63, 143), s!( 48, 135), - s!( 40, 112), s!( 57, 112), s!( 89, 108), s!( 79, 110), s!( 107, 111), s!( 67, 116), s!( 68, 122), s!( 29, 118), + s!( 176, 212), s!( 203, 236), s!( 169, 274), s!( 249, 287), s!( 214, 297), s!( 167, 306), s!( 83, 313), s!( 60, 273), + s!( 50, 189), s!( 99, 197), s!( 120, 226), s!( 146, 223), s!( 142, 227), s!( 176, 209), s!( 112, 214), s!( 62, 184), + s!( 56, 145), s!( 71, 138), s!( 85, 142), s!( 110, 153), s!( 115, 170), s!( 110, 152), s!( 63, 143), s!( 48, 135), + s!( 40, 112), s!( 57, 112), s!( 89, 108), s!( 79, 110), s!( 107, 110), s!( 67, 116), s!( 68, 122), s!( 29, 118), s!( 33, 121), s!( 43, 104), s!( 68, 95), s!( 65, 100), s!( 88, 85), s!( 78, 88), s!( 54, 91), s!( 30, 103), - s!( 23, 126), s!( 26, 118), s!( 63, 107), s!( 51, 92), s!( 68, 89), s!( 81, 100), s!( 60, 106), s!( 30, 114), + s!( 23, 126), s!( 26, 119), s!( 63, 107), s!( 51, 92), s!( 68, 89), s!( 81, 100), s!( 60, 107), s!( 30, 114), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 209, 269), s!( 244, 299), s!( 218, 321), s!( 258, 296), s!( 226, 297), s!( 189, 273), s!( 77, 271), s!( 35, 268), - s!( 86, 219), s!( 115, 268), s!( 165, 238), s!( 180, 241), s!( 168, 221), s!( 155, 186), s!( 119, 168), s!( 76, 169), - s!( 53, 166), s!( 74, 169), s!( 123, 175), s!( 132, 181), s!( 117, 143), s!( 107, 119), s!( 60, 122), s!( 49, 121), + s!( 209, 270), s!( 244, 300), s!( 218, 322), s!( 258, 296), s!( 226, 298), s!( 189, 274), s!( 77, 272), s!( 35, 268), + s!( 86, 219), s!( 115, 268), s!( 165, 238), s!( 180, 240), s!( 168, 221), s!( 155, 186), s!( 119, 168), s!( 76, 169), + s!( 53, 166), s!( 74, 169), s!( 123, 175), s!( 132, 180), s!( 117, 143), s!( 107, 119), s!( 60, 122), s!( 49, 121), s!( 18, 139), s!( 65, 128), s!( 93, 116), s!( 120, 106), s!( 69, 109), s!( 52, 103), s!( 37, 105), s!( 15, 106), s!( 14, 125), s!( 52, 101), s!( 89, 98), s!( 121, 86), s!( 91, 82), s!( 46, 92), s!( 25, 94), s!( 4, 111), s!( 20, 133), s!( 46, 119), s!( 86, 104), s!( 98, 71), s!( 64, 78), s!( 54, 95), s!( 23, 110), s!( -9, 124), @@ -140,190 +140,190 @@ pub const PAWN_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 221, 337), s!( 245, 345), s!( 231, 335), s!( 229, 317), s!( 199, 260), s!( 165, 202), s!( 88, 262), s!( 18, 269), - s!( 102, 274), s!( 136, 269), s!( 178, 271), s!( 129, 249), s!( 136, 194), s!( 150, 162), s!( 101, 153), s!( 59, 171), - s!( 80, 196), s!( 100, 191), s!( 125, 203), s!( 82, 168), s!( 87, 110), s!( 103, 112), s!( 52, 116), s!( 45, 125), - s!( 72, 151), s!( 76, 139), s!( 118, 126), s!( 77, 120), s!( 54, 97), s!( 60, 96), s!( 43, 96), s!( 23, 109), + s!( 221, 338), s!( 245, 346), s!( 231, 335), s!( 229, 318), s!( 199, 260), s!( 165, 202), s!( 88, 262), s!( 18, 269), + s!( 102, 274), s!( 136, 269), s!( 178, 270), s!( 129, 249), s!( 136, 194), s!( 150, 162), s!( 101, 153), s!( 59, 171), + s!( 80, 196), s!( 100, 191), s!( 125, 202), s!( 82, 168), s!( 87, 110), s!( 103, 112), s!( 52, 116), s!( 45, 125), + s!( 72, 151), s!( 76, 139), s!( 118, 125), s!( 77, 120), s!( 54, 97), s!( 60, 96), s!( 43, 96), s!( 23, 109), s!( 80, 117), s!( 92, 108), s!( 83, 94), s!( 58, 101), s!( 58, 86), s!( 55, 94), s!( 16, 98), s!( 3, 115), - s!( 79, 130), s!( 111, 107), s!( 109, 95), s!( 60, 105), s!( 21, 109), s!( 43, 100), s!( 9, 121), s!( -5, 135), + s!( 79, 130), s!( 111, 108), s!( 109, 95), s!( 60, 105), s!( 21, 109), s!( 43, 100), s!( 9, 121), s!( -5, 135), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 253, 381), s!( 252, 340), s!( 243, 359), s!( 230, 270), s!( 204, 228), s!( 173, 223), s!( 80, 275), s!( 9, 273), - s!( 124, 309), s!( 143, 297), s!( 152, 282), s!( 144, 233), s!( 144, 162), s!( 145, 123), s!( 75, 150), s!( 60, 168), - s!( 79, 238), s!( 114, 222), s!( 94, 204), s!( 77, 144), s!( 81, 92), s!( 95, 87), s!( 52, 106), s!( 34, 113), - s!( 77, 170), s!( 100, 146), s!( 93, 144), s!( 73, 96), s!( 59, 90), s!( 62, 84), s!( 48, 93), s!( 29, 97), - s!( 96, 120), s!( 106, 104), s!( 73, 105), s!( 66, 88), s!( 52, 97), s!( 44, 98), s!( 5, 105), s!( 13, 110), + s!( 253, 382), s!( 252, 341), s!( 243, 360), s!( 230, 271), s!( 204, 228), s!( 173, 223), s!( 80, 275), s!( 9, 273), + s!( 124, 309), s!( 143, 296), s!( 152, 282), s!( 144, 233), s!( 144, 162), s!( 145, 123), s!( 75, 150), s!( 60, 168), + s!( 79, 238), s!( 114, 221), s!( 94, 204), s!( 77, 144), s!( 81, 92), s!( 95, 87), s!( 52, 106), s!( 34, 113), + s!( 77, 170), s!( 101, 146), s!( 93, 144), s!( 73, 96), s!( 59, 90), s!( 62, 84), s!( 48, 93), s!( 29, 97), + s!( 96, 121), s!( 106, 104), s!( 73, 105), s!( 66, 88), s!( 52, 97), s!( 44, 98), s!( 5, 104), s!( 13, 110), s!( 91, 127), s!( 130, 103), s!( 98, 99), s!( 40, 107), s!( 27, 109), s!( 28, 118), s!( 2, 125), s!( 2, 133), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 232, 355), s!( 243, 380), s!( 218, 329), s!( 224, 215), s!( 202, 214), s!( 179, 230), s!( 74, 267), s!( 29, 273), - s!( 112, 268), s!( 119, 313), s!( 169, 253), s!( 133, 139), s!( 156, 142), s!( 103, 121), s!( 104, 148), s!( 53, 161), + s!( 232, 356), s!( 243, 381), s!( 218, 330), s!( 224, 215), s!( 202, 214), s!( 179, 230), s!( 74, 267), s!( 29, 273), + s!( 112, 268), s!( 119, 314), s!( 169, 254), s!( 133, 139), s!( 156, 142), s!( 103, 121), s!( 104, 148), s!( 53, 161), s!( 77, 213), s!( 126, 230), s!( 106, 174), s!( 89, 105), s!( 57, 95), s!( 89, 97), s!( 27, 110), s!( 40, 124), s!( 96, 161), s!( 83, 172), s!( 91, 121), s!( 85, 101), s!( 66, 79), s!( 44, 85), s!( 45, 97), s!( 33, 99), s!( 114, 115), s!( 99, 111), s!( 92, 91), s!( 67, 87), s!( 47, 81), s!( 43, 93), s!( 18, 93), s!( 17, 105), - s!( 80, 110), s!( 156, 105), s!( 96, 102), s!( 52, 99), s!( 37, 79), s!( 41, 112), s!( 17, 124), s!( 6, 127), + s!( 80, 110), s!( 156, 106), s!( 96, 102), s!( 52, 99), s!( 37, 79), s!( 41, 112), s!( 17, 124), s!( 6, 127), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], ], [ [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 58, 4), s!( 45, 43), s!( 13, 88), s!( -6, 106), s!( 3, 71), s!( -33, 7), s!( -18, -90), s!(-108, -152), - s!( -4, 44), s!( -13, 53), s!( -41, 75), s!( -14, 63), s!( -21, 37), s!( -4, -38), s!( 30, -111), s!( -31, -100), - s!( -8, 22), s!( -7, 23), s!( -17, 42), s!( -11, 23), s!( -1, -7), s!( 5, -33), s!( 28, -43), s!( -19, -44), - s!( -4, 3), s!( -7, 10), s!( -8, 13), s!( -5, 2), s!( -5, -8), s!( 10, -16), s!( 11, -19), s!( -14, -22), - s!( 2, -8), s!( 2, -7), s!( -7, 2), s!( 2, -7), s!( 10, -5), s!( 8, -6), s!( 3, -4), s!( -10, -11), - s!( -5, -16), s!( -9, -16), s!( -4, -12), s!( -8, -1), s!( -8, 20), s!( -8, 9), s!( -3, -2), s!( -16, -16), + s!( 59, 5), s!( 45, 44), s!( 13, 89), s!( -6, 107), s!( 3, 71), s!( -33, 7), s!( -18, -91), s!(-107, -152), + s!( -3, 44), s!( -12, 53), s!( -40, 75), s!( -13, 63), s!( -21, 37), s!( -3, -38), s!( 30, -110), s!( -30, -99), + s!( -7, 22), s!( -7, 23), s!( -17, 42), s!( -11, 23), s!( -1, -7), s!( 5, -32), s!( 28, -43), s!( -19, -44), + s!( -4, 4), s!( -7, 10), s!( -8, 13), s!( -5, 2), s!( -5, -8), s!( 10, -15), s!( 11, -19), s!( -14, -22), + s!( 2, -8), s!( 2, -7), s!( -8, 2), s!( 2, -7), s!( 9, -5), s!( 8, -5), s!( 3, -5), s!( -10, -11), + s!( -4, -16), s!( -9, -16), s!( -4, -12), s!( -7, -1), s!( -8, 20), s!( -8, 8), s!( -3, -3), s!( -16, -16), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 62, 41), s!( 21, 78), s!( 1, 89), s!( -39, 81), s!( -19, 9), s!( -31, -128), s!( -88, -140), s!( -2, -152), - s!( 4, 42), s!( 2, 47), s!( -11, 61), s!( -9, 34), s!( 6, -14), s!( 43, -71), s!( -2, -86), s!( 21, -76), - s!( 11, 17), s!( 10, 21), s!( 4, 34), s!( 8, 7), s!( 15, -15), s!( 15, -31), s!( -12, -22), s!( 2, -36), - s!( 13, 3), s!( 8, 10), s!( 4, 10), s!( 13, 1), s!( 13, -5), s!( 8, -10), s!( -4, -16), s!( -8, -10), - s!( 18, -4), s!( 17, -6), s!( 9, 1), s!( 7, -0), s!( 6, 7), s!( 3, -0), s!( -18, -1), s!( -9, -0), - s!( 11, -12), s!( 7, -11), s!( 4, -8), s!( 8, -5), s!( 4, -1), s!( -2, -1), s!( -15, -9), s!( -19, -6), + s!( 62, 41), s!( 21, 78), s!( 1, 89), s!( -38, 82), s!( -19, 9), s!( -31, -128), s!( -88, -140), s!( -1, -152), + s!( 4, 42), s!( 2, 47), s!( -11, 60), s!( -9, 34), s!( 5, -14), s!( 42, -71), s!( -1, -86), s!( 21, -77), + s!( 11, 17), s!( 10, 21), s!( 4, 34), s!( 9, 7), s!( 15, -15), s!( 14, -31), s!( -12, -22), s!( 2, -36), + s!( 12, 3), s!( 7, 11), s!( 4, 10), s!( 13, 1), s!( 13, -5), s!( 7, -10), s!( -4, -16), s!( -9, -10), + s!( 17, -4), s!( 17, -6), s!( 9, 1), s!( 7, -0), s!( 6, 6), s!( 2, -1), s!( -17, -1), s!( -9, -1), + s!( 11, -12), s!( 6, -11), s!( 4, -8), s!( 8, -6), s!( 3, -0), s!( -2, -1), s!( -14, -9), s!( -19, -6), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 31, 32), s!( 35, 38), s!( 4, 22), s!( -19, -25), s!( -30, -107), s!( -49, -113), s!( 10, -121), s!( 57, -74), - s!( -28, 29), s!( -25, 39), s!( -35, 20), s!( -2, -12), s!( 51, -81), s!( 35, -71), s!( 56, -78), s!( 31, -65), - s!( -24, 22), s!( -15, 16), s!( -12, 19), s!( -14, 11), s!( 28, -16), s!( -7, -21), s!( 34, -32), s!( 15, -27), - s!( -19, 13), s!( -17, 13), s!( -15, 14), s!( -2, 9), s!( 9, 4), s!( -6, -9), s!( 1, -2), s!( 9, -10), - s!( -16, 8), s!( -16, 3), s!( -6, 0), s!( 5, -1), s!( 9, 1), s!( -7, -2), s!( -6, 3), s!( 2, 2), - s!( -22, 4), s!( -19, -3), s!( -7, -10), s!( -6, -2), s!( -1, -7), s!( -19, -5), s!( -12, -4), s!( -11, 2), + s!( 32, 33), s!( 35, 39), s!( 4, 23), s!( -19, -24), s!( -30, -107), s!( -49, -113), s!( 10, -121), s!( 58, -74), + s!( -28, 30), s!( -25, 38), s!( -35, 20), s!( -2, -12), s!( 51, -80), s!( 35, -71), s!( 56, -78), s!( 32, -65), + s!( -23, 23), s!( -14, 16), s!( -11, 19), s!( -13, 11), s!( 27, -16), s!( -6, -21), s!( 33, -31), s!( 15, -27), + s!( -19, 13), s!( -17, 13), s!( -14, 14), s!( -2, 9), s!( 8, 4), s!( -6, -8), s!( 0, -2), s!( 9, -10), + s!( -16, 8), s!( -16, 3), s!( -6, 1), s!( 5, -0), s!( 8, 2), s!( -7, -1), s!( -8, 3), s!( 2, 2), + s!( -22, 4), s!( -19, -3), s!( -7, -9), s!( -6, -2), s!( -1, -7), s!( -19, -4), s!( -13, -3), s!( -11, 2), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( -5, 44), s!( 6, 15), s!( 6, -46), s!( -22, -103), s!( -20, -123), s!( -20, -100), s!( 17, -33), s!( 42, 17), - s!( 8, 0), s!( -18, -8), s!( -2, -28), s!( 5, -70), s!( 16, -82), s!( -10, -47), s!( 4, -31), s!( 20, -32), - s!( -1, 4), s!( -7, 1), s!( -6, 8), s!( -1, -4), s!( -17, -7), s!( 2, -14), s!( -10, -6), s!( 3, -7), - s!( -7, 4), s!( -5, 5), s!( -12, 11), s!( 3, 8), s!( -19, 4), s!( -6, 6), s!( -10, 3), s!( 1, 0), - s!( -1, 0), s!( 0, -3), s!( -7, 3), s!( -6, 5), s!( -28, 12), s!( -17, 8), s!( -16, 10), s!( -0, 5), - s!( -7, -5), s!( -10, -4), s!( -12, -6), s!( 0, -19), s!( -23, 2), s!( -25, 4), s!( -20, 2), s!( -9, 4), + s!( -5, 45), s!( 6, 15), s!( 6, -46), s!( -22, -103), s!( -20, -123), s!( -20, -100), s!( 17, -33), s!( 42, 17), + s!( 8, 0), s!( -18, -8), s!( -2, -28), s!( 5, -69), s!( 16, -81), s!( -10, -47), s!( 4, -32), s!( 20, -31), + s!( -1, 5), s!( -6, 2), s!( -5, 8), s!( -1, -4), s!( -16, -6), s!( 2, -13), s!( -10, -6), s!( 3, -7), + s!( -7, 4), s!( -6, 5), s!( -12, 11), s!( 3, 8), s!( -17, 5), s!( -6, 6), s!( -10, 3), s!( 0, 0), + s!( -1, 0), s!( -0, -2), s!( -7, 3), s!( -6, 5), s!( -27, 12), s!( -17, 8), s!( -16, 10), s!( -0, 6), + s!( -7, -5), s!( -11, -4), s!( -12, -5), s!( 0, -19), s!( -22, 2), s!( -25, 4), s!( -19, 2), s!( -9, 4), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 28, 5), s!( -15, -45), s!( -6, -112), s!( -21, -118), s!( -7, -76), s!( 7, -15), s!( 37, 43), s!( 61, 51), - s!( -1, -26), s!( 33, -44), s!( 30, -79), s!( -4, -80), s!( 17, -43), s!( -25, -9), s!( 15, -3), s!( -12, 22), - s!( -6, -8), s!( 2, -8), s!( 15, -15), s!( -11, -12), s!( -9, 0), s!( -2, 3), s!( -2, 2), s!( 12, 6), - s!( -33, 8), s!( -6, 4), s!( 5, 9), s!( -30, 7), s!( -5, 14), s!( -25, 10), s!( -19, 11), s!( -22, 16), - s!( -29, 8), s!( -17, 6), s!( -1, 4), s!( -24, 2), s!( -12, 9), s!( -18, 8), s!( -7, 6), s!( -9, 12), - s!( -41, 7), s!( -22, 3), s!( -13, -4), s!( -40, 12), s!( 2, -9), s!( -16, -2), s!( -14, 0), s!( -25, 13), + s!( 28, 5), s!( -15, -45), s!( -6, -112), s!( -21, -118), s!( -7, -76), s!( 7, -15), s!( 37, 43), s!( 62, 51), + s!( -1, -26), s!( 33, -44), s!( 30, -79), s!( -3, -80), s!( 17, -43), s!( -25, -9), s!( 15, -3), s!( -12, 22), + s!( -6, -7), s!( 2, -7), s!( 15, -15), s!( -10, -11), s!( -9, 0), s!( -2, 3), s!( -2, 2), s!( 12, 6), + s!( -33, 8), s!( -6, 5), s!( 4, 10), s!( -29, 8), s!( -5, 13), s!( -24, 10), s!( -19, 11), s!( -21, 16), + s!( -29, 9), s!( -18, 7), s!( -2, 4), s!( -24, 3), s!( -12, 10), s!( -18, 8), s!( -8, 6), s!( -9, 12), + s!( -41, 7), s!( -22, 3), s!( -12, -4), s!( -39, 12), s!( 2, -9), s!( -17, -1), s!( -14, 0), s!( -25, 13), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 9, -58), s!( -16, -108), s!( -25, -128), s!( -11, -82), s!( -2, 4), s!( 6, 66), s!( 35, 49), s!( 72, 51), - s!( 16, -63), s!( 19, -80), s!( 31, -88), s!( -5, -45), s!( -19, 13), s!( -40, 33), s!( -32, 51), s!( 8, 46), - s!( -2, -24), s!( -6, -20), s!( -0, -18), s!( 30, -13), s!( -7, 11), s!( -10, 22), s!( 10, 12), s!( 16, 22), - s!( -24, -3), s!( -4, 2), s!( -17, -1), s!( 17, 8), s!( 3, 6), s!( -6, 9), s!( -1, 9), s!( 19, 14), - s!( -24, 7), s!( -33, 14), s!( -15, 1), s!( 4, 7), s!( 0, 2), s!( -3, 3), s!( 6, 3), s!( 20, 5), - s!( -36, 4), s!( -38, 9), s!( -24, 3), s!( -1, -17), s!( 0, -11), s!( -4, -4), s!( 8, -7), s!( 14, 1), + s!( 9, -58), s!( -16, -108), s!( -25, -128), s!( -11, -82), s!( -2, 4), s!( 6, 66), s!( 35, 49), s!( 72, 52), + s!( 16, -63), s!( 19, -80), s!( 32, -88), s!( -5, -45), s!( -19, 12), s!( -40, 33), s!( -32, 51), s!( 8, 46), + s!( -3, -24), s!( -6, -19), s!( -0, -18), s!( 28, -12), s!( -7, 11), s!( -10, 22), s!( 10, 12), s!( 16, 22), + s!( -23, -3), s!( -3, 2), s!( -16, -0), s!( 16, 8), s!( 3, 7), s!( -6, 9), s!( -1, 9), s!( 19, 14), + s!( -24, 8), s!( -33, 14), s!( -14, 1), s!( 4, 7), s!( 0, 2), s!( -3, 4), s!( 6, 3), s!( 20, 5), + s!( -35, 4), s!( -38, 9), s!( -24, 3), s!( -1, -16), s!( 0, -11), s!( -4, -4), s!( 8, -7), s!( 14, 1), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( -29, -144), s!(-137, -124), s!( -11, -72), s!( -5, 14), s!( 18, 72), s!( 43, 82), s!( 86, 58), s!( 76, 62), - s!( 27, -108), s!( 25, -89), s!( 28, -91), s!( 20, -14), s!( -24, 48), s!( -45, 74), s!( -7, 77), s!( -5, 56), - s!( 12, -46), s!( -16, -24), s!( 24, -40), s!( 10, -3), s!( -8, 15), s!( -11, 45), s!( 11, 38), s!( 8, 36), - s!( -23, 7), s!( -12, -15), s!( 1, -0), s!( 8, -1), s!( -6, 10), s!( -7, 15), s!( 7, 18), s!( 21, 16), - s!( -24, 14), s!( -39, 10), s!( -7, -1), s!( -6, 12), s!( 10, -7), s!( 4, 0), s!( 15, 1), s!( 20, 4), - s!( -33, 9), s!( -44, 10), s!( -16, 5), s!( 2, -0), s!( 5, -14), s!( 6, -10), s!( 5, -4), s!( 19, -4), + s!( -29, -144), s!(-138, -124), s!( -11, -72), s!( -5, 14), s!( 18, 72), s!( 43, 83), s!( 86, 58), s!( 76, 63), + s!( 28, -107), s!( 26, -89), s!( 28, -91), s!( 20, -14), s!( -24, 48), s!( -45, 74), s!( -7, 77), s!( -5, 56), + s!( 12, -46), s!( -16, -24), s!( 23, -39), s!( 10, -3), s!( -7, 15), s!( -10, 45), s!( 11, 38), s!( 8, 36), + s!( -22, 7), s!( -11, -15), s!( 1, 0), s!( 8, -1), s!( -6, 10), s!( -7, 15), s!( 7, 18), s!( 22, 16), + s!( -24, 14), s!( -39, 11), s!( -7, -1), s!( -5, 12), s!( 10, -7), s!( 4, 0), s!( 15, 1), s!( 20, 4), + s!( -32, 9), s!( -44, 10), s!( -16, 5), s!( 2, -0), s!( 6, -14), s!( 6, -10), s!( 5, -4), s!( 19, -4), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!(-153, -137), s!( -5, -36), s!( 5, 9), s!( 20, 41), s!( 19, 63), s!( 28, 78), s!( 35, 52), s!( 54, 57), - s!( -33, -117), s!( -7, -54), s!( 38, -36), s!( 21, 23), s!( -26, 78), s!( -25, 89), s!( -1, 81), s!( -36, 71), - s!( -17, -53), s!( 23, -37), s!( -21, -21), s!( -13, 10), s!( -25, 34), s!( -19, 54), s!( 6, 50), s!( -12, 49), - s!( -20, -22), s!( 7, -2), s!( 10, -5), s!( -9, -2), s!( -19, 12), s!( -3, 20), s!( 6, 15), s!( 11, 25), - s!( -38, 6), s!( -21, 11), s!( -21, 14), s!( -3, -13), s!( 2, -3), s!( 3, 2), s!( 13, 2), s!( 12, 7), - s!( -31, 0), s!( -26, 9), s!( -4, 0), s!( 2, -2), s!( 16, -8), s!( 2, -11), s!( 16, -10), s!( 3, -1), + s!(-154, -137), s!( -5, -36), s!( 5, 9), s!( 20, 41), s!( 19, 64), s!( 28, 79), s!( 36, 53), s!( 54, 57), + s!( -33, -117), s!( -7, -54), s!( 38, -36), s!( 21, 23), s!( -26, 78), s!( -26, 89), s!( -1, 81), s!( -36, 71), + s!( -17, -53), s!( 23, -37), s!( -21, -21), s!( -13, 10), s!( -25, 34), s!( -19, 55), s!( 5, 50), s!( -12, 49), + s!( -19, -21), s!( 7, -2), s!( 11, -5), s!( -9, -1), s!( -19, 12), s!( -3, 20), s!( 7, 15), s!( 11, 25), + s!( -37, 7), s!( -20, 12), s!( -20, 14), s!( -3, -12), s!( 2, -3), s!( 3, 2), s!( 13, 2), s!( 12, 7), + s!( -31, 1), s!( -26, 9), s!( -4, 0), s!( 2, -2), s!( 16, -8), s!( 2, -11), s!( 16, -10), s!( 3, -1), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 14, 13), s!( 26, 41), s!( 21, 50), s!( 20, 76), s!( 18, 67), s!( -7, 33), s!( -4, 1), s!( -70, -51), - s!( 4, 37), s!( -4, 61), s!( -26, 64), s!( 4, 68), s!( 0, 68), s!( -1, 37), s!( 21, -18), s!( -19, -4), + s!( 14, 14), s!( 26, 42), s!( 21, 50), s!( 20, 76), s!( 18, 68), s!( -7, 34), s!( -4, 2), s!( -70, -50), + s!( 4, 37), s!( -4, 61), s!( -26, 65), s!( 4, 68), s!( 0, 68), s!( -1, 37), s!( 21, -18), s!( -19, -3), s!( -6, 29), s!( -11, 36), s!( -18, 47), s!( -4, 35), s!( 4, 24), s!( 1, 17), s!( 33, -26), s!( -23, -40), s!( 1, 3), s!( -8, 8), s!( -3, 14), s!( -13, 12), s!( -6, -4), s!( 14, -3), s!( 6, -22), s!( -25, -24), s!( 1, -18), s!( 6, -14), s!( 5, -1), s!( -3, 1), s!( 1, -20), s!( 7, 1), s!( 10, -9), s!( -13, -39), - s!( 6, -20), s!( 0, -10), s!( 4, -21), s!( 0, 5), s!( -4, -10), s!( 8, 6), s!( 30, 29), s!( 8, -7), + s!( 6, -20), s!( -0, -10), s!( 4, -21), s!( 0, 5), s!( -4, -10), s!( 8, 7), s!( 30, 29), s!( 8, -7), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 14, 26), s!( 6, 63), s!( 1, 56), s!( -6, 94), s!( 11, 69), s!( -4, 31), s!( -38, -17), s!( -5, -7), - s!( 4, 53), s!( -2, 75), s!( 5, 74), s!( 1, 75), s!( 12, 68), s!( 40, 28), s!( 11, 27), s!( 14, 9), + s!( 14, 27), s!( 6, 64), s!( 1, 56), s!( -6, 95), s!( 11, 70), s!( -4, 31), s!( -38, -16), s!( -5, -6), + s!( 4, 53), s!( -2, 75), s!( 5, 74), s!( 1, 76), s!( 12, 68), s!( 40, 28), s!( 11, 27), s!( 14, 9), s!( -3, 32), s!( 7, 45), s!( 7, 43), s!( 15, 41), s!( 17, 18), s!( 18, -3), s!( -5, -21), s!( -3, -22), - s!( -3, 8), s!( 3, 8), s!( 1, 12), s!( 1, 12), s!( 14, -8), s!( 11, -30), s!( -10, -19), s!( 16, -28), - s!( 1, -22), s!( 2, -20), s!( -4, -12), s!( 10, -14), s!( 4, -14), s!( 6, -6), s!( -5, -13), s!( -12, -7), - s!( -1, -14), s!( 6, -15), s!( 0, -20), s!( 6, -11), s!( 6, 0), s!( 24, 16), s!( 14, 19), s!( -0, 17), + s!( -3, 8), s!( 3, 8), s!( 1, 12), s!( 1, 12), s!( 14, -8), s!( 11, -30), s!( -10, -20), s!( 16, -29), + s!( 1, -21), s!( 2, -19), s!( -4, -11), s!( 10, -14), s!( 4, -14), s!( 6, -6), s!( -5, -13), s!( -12, -8), + s!( -1, -14), s!( 6, -15), s!( -0, -20), s!( 6, -11), s!( 6, 0), s!( 24, 16), s!( 14, 18), s!( -0, 17), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( -5, 27), s!( 11, 33), s!( 10, 50), s!( -4, 51), s!( -5, 20), s!( -5, 3), s!( 2, 13), s!( 14, 14), - s!( -15, 36), s!( -0, 60), s!( -8, 54), s!( 3, 52), s!( 19, 27), s!( 11, 20), s!( 14, 1), s!( -2, 31), - s!( -16, 32), s!( -13, 30), s!( -7, 36), s!( -12, 29), s!( 26, -12), s!( -5, -8), s!( 19, -25), s!( 3, -14), - s!( -31, 6), s!( -33, 7), s!( -21, 7), s!( -18, -3), s!( 6, -17), s!( -14, -18), s!( 1, -26), s!( -2, -6), - s!( -13, -5), s!( -32, -8), s!( -13, -15), s!( 7, -6), s!( -1, -12), s!( -16, -21), s!( -9, -20), s!( -20, -2), - s!( -16, -9), s!( -20, -7), s!( -9, -17), s!( -12, -6), s!( 14, 1), s!( 5, -1), s!( 11, 16), s!( -1, 15), + s!( -5, 28), s!( 11, 34), s!( 10, 51), s!( -4, 52), s!( -5, 21), s!( -5, 4), s!( 2, 13), s!( 14, 14), + s!( -15, 36), s!( -0, 60), s!( -8, 54), s!( 3, 52), s!( 19, 27), s!( 11, 20), s!( 14, 2), s!( -2, 31), + s!( -16, 32), s!( -13, 30), s!( -7, 35), s!( -12, 28), s!( 26, -12), s!( -5, -8), s!( 19, -25), s!( 3, -14), + s!( -31, 6), s!( -33, 7), s!( -21, 7), s!( -18, -3), s!( 6, -17), s!( -14, -18), s!( 1, -27), s!( -2, -7), + s!( -13, -5), s!( -32, -7), s!( -13, -14), s!( 7, -6), s!( -1, -12), s!( -16, -21), s!( -9, -20), s!( -20, -2), + s!( -16, -8), s!( -20, -7), s!( -9, -17), s!( -12, -6), s!( 14, 1), s!( 6, -1), s!( 11, 16), s!( -1, 15), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( -11, 30), s!( 0, 33), s!( 1, 15), s!( -4, 13), s!( -1, -5), s!( 2, 34), s!( 10, 30), s!( 9, 34), - s!( -16, 27), s!( -4, 27), s!( 9, 36), s!( 10, 37), s!( 22, 32), s!( -8, 36), s!( -6, 29), s!( 15, 22), - s!( -13, 15), s!( -7, 12), s!( 1, 11), s!( -5, 7), s!( -18, -2), s!( -4, 1), s!( 2, -6), s!( 8, 6), + s!( -11, 31), s!( 0, 34), s!( 1, 16), s!( -4, 14), s!( -1, -4), s!( 2, 35), s!( 10, 30), s!( 9, 34), + s!( -16, 27), s!( -4, 27), s!( 9, 36), s!( 10, 37), s!( 22, 33), s!( -8, 36), s!( -6, 29), s!( 15, 22), + s!( -13, 15), s!( -7, 12), s!( 1, 10), s!( -5, 7), s!( -18, -2), s!( -4, 1), s!( 2, -6), s!( 8, 6), s!( -32, 4), s!( -16, -7), s!( -23, -8), s!( -12, -12), s!( -20, -6), s!( -0, -21), s!( -12, -2), s!( -6, 3), s!( -36, -7), s!( -16, -4), s!( -24, -8), s!( -9, -1), s!( -32, -11), s!( -20, 1), s!( -21, 3), s!( -26, 7), - s!( -41, -2), s!( -20, -4), s!( -9, 11), s!( -3, 2), s!( -21, 3), s!( -9, 19), s!( -23, 19), s!( -24, 1), + s!( -41, -2), s!( -20, -3), s!( -9, 11), s!( -3, 2), s!( -21, 3), s!( -9, 19), s!( -23, 19), s!( -24, 1), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 5, 31), s!( -1, 10), s!( 0, -7), s!( -4, -11), s!( 4, 23), s!( 12, 66), s!( 18, 63), s!( 19, 43), - s!( 1, 11), s!( 15, 2), s!( 13, 3), s!( 1, 22), s!( 13, 45), s!( 2, 64), s!( 16, 60), s!( -3, 56), + s!( 5, 32), s!( -1, 11), s!( 0, -6), s!( -4, -10), s!( 4, 24), s!( 12, 66), s!( 18, 64), s!( 19, 44), + s!( 1, 11), s!( 15, 2), s!( 13, 3), s!( 1, 23), s!( 13, 45), s!( 2, 64), s!( 16, 60), s!( -3, 56), s!( -18, 6), s!( 10, -18), s!( 22, -16), s!( -10, -13), s!( -6, 4), s!( -4, 15), s!( 7, 21), s!( 3, 24), - s!( -22, -6), s!( -10, -19), s!( -5, -27), s!( -35, -7), s!( -2, -14), s!( -11, 2), s!( -5, -0), s!( -12, 20), + s!( -22, -6), s!( -10, -19), s!( -5, -27), s!( -35, -7), s!( -2, -14), s!( -11, 2), s!( -5, 0), s!( -12, 19), s!( -28, -10), s!( -25, -7), s!( -4, -16), s!( -36, -7), s!( -8, 11), s!( -6, 1), s!( -22, -1), s!( -26, 10), - s!( -34, -1), s!( -14, 15), s!( 1, 20), s!( -15, 25), s!( 2, 1), s!( -14, 8), s!( -11, -3), s!( -24, 4), + s!( -34, -1), s!( -14, 15), s!( 1, 20), s!( -15, 25), s!( 2, 1), s!( -14, 8), s!( -11, -2), s!( -24, 4), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( 2, 19), s!( -4, -18), s!( -2, -9), s!( 6, 19), s!( 11, 65), s!( 10, 74), s!( 27, 64), s!( 34, 57), - s!( 7, 10), s!( 17, -16), s!( 8, -15), s!( 4, 22), s!( -4, 70), s!( -10, 94), s!( -3, 97), s!( 17, 73), - s!( -21, -18), s!( 6, -19), s!( -6, -15), s!( 29, 1), s!( -5, 24), s!( -6, 50), s!( 11, 41), s!( 11, 47), - s!( -16, -5), s!( 2, -36), s!( -22, -25), s!( 7, -19), s!( 4, 4), s!( -5, 2), s!( 4, 11), s!( 8, 20), + s!( 2, 20), s!( -4, -17), s!( -2, -8), s!( 6, 20), s!( 11, 66), s!( 10, 75), s!( 27, 65), s!( 34, 58), + s!( 7, 10), s!( 17, -16), s!( 8, -14), s!( 4, 22), s!( -4, 70), s!( -10, 94), s!( -3, 97), s!( 17, 73), + s!( -21, -18), s!( 6, -19), s!( -6, -16), s!( 29, 1), s!( -5, 24), s!( -6, 49), s!( 11, 41), s!( 11, 47), + s!( -16, -6), s!( 2, -36), s!( -22, -25), s!( 7, -19), s!( 4, 3), s!( -5, 2), s!( 4, 11), s!( 8, 20), s!( -25, 6), s!( -16, -14), s!( -23, -21), s!( -0, -1), s!( -13, -10), s!( -6, -10), s!( 9, -4), s!( 1, 10), s!( -25, 26), s!( -17, 16), s!( -14, -1), s!( -0, 15), s!( 3, -15), s!( -17, -12), s!( 1, -6), s!( 21, -1), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( -9, -12), s!( -26, -12), s!( 3, 11), s!( 6, 45), s!( 21, 80), s!( 26, 75), s!( 45, 72), s!( 40, 55), + s!( -9, -12), s!( -26, -11), s!( 3, 12), s!( 6, 46), s!( 21, 81), s!( 26, 76), s!( 45, 73), s!( 40, 56), s!( 10, -13), s!( 3, -16), s!( 12, -4), s!( 12, 37), s!( 6, 76), s!( -3, 107), s!( 12, 105), s!( 8, 90), s!( -8, -24), s!( -1, -25), s!( 16, -12), s!( 12, 11), s!( -4, 49), s!( 7, 61), s!( 12, 60), s!( 12, 47), - s!( -8, -29), s!( -5, -30), s!( 11, -28), s!( 9, -11), s!( -8, -8), s!( -1, 10), s!( 11, 15), s!( 13, 17), - s!( -36, -4), s!( -20, -14), s!( -7, -14), s!( -2, -13), s!( 0, -23), s!( 11, -19), s!( 6, -8), s!( 15, -4), - s!( -18, 20), s!( -16, 21), s!( -9, 11), s!( 4, 2), s!( 5, -21), s!( -1, -25), s!( 3, -9), s!( 21, -5), + s!( -8, -30), s!( -5, -30), s!( 11, -28), s!( 9, -11), s!( -8, -8), s!( -1, 11), s!( 11, 15), s!( 13, 17), + s!( -36, -4), s!( -20, -14), s!( -7, -14), s!( -2, -13), s!( 0, -23), s!( 11, -19), s!( 6, -7), s!( 15, -3), + s!( -18, 20), s!( -16, 21), s!( -9, 11), s!( 4, 2), s!( 5, -21), s!( -1, -25), s!( 3, -8), s!( 21, -5), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), ], [ s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), s!( 0, 0), - s!( -45, -24), s!( 1, 3), s!( 2, 9), s!( 7, 20), s!( 14, 48), s!( 11, 49), s!( 13, 52), s!( 24, 46), - s!( -18, -39), s!( -3, 1), s!( 16, -2), s!( 14, 40), s!( 8, 75), s!( 9, 92), s!( 10, 82), s!( -2, 75), + s!( -45, -24), s!( 1, 3), s!( 2, 9), s!( 7, 20), s!( 14, 49), s!( 11, 50), s!( 13, 53), s!( 24, 46), + s!( -18, -39), s!( -3, 1), s!( 16, -2), s!( 14, 41), s!( 8, 75), s!( 9, 93), s!( 10, 82), s!( -2, 75), s!( -18, -20), s!( 10, -14), s!( -13, -6), s!( -1, 27), s!( -18, 38), s!( 7, 68), s!( 9, 48), s!( -9, 39), s!( -8, -14), s!( -3, -34), s!( 9, -11), s!( -5, -5), s!( -17, 12), s!( -5, 26), s!( 14, 11), s!( 8, 12), s!( -11, -31), s!( -4, -10), s!( -20, -10), s!( 0, -36), s!( 2, -28), s!( 11, -5), s!( 9, -8), s!( 15, -0), diff --git a/src/evaluation/pst/queen.rs b/src/evaluation/pst/queen.rs index b985f4e3..bed6e98d 100644 --- a/src/evaluation/pst/queen.rs +++ b/src/evaluation/pst/queen.rs @@ -1,5 +1,5 @@ // ------------------------------------------------------------------------- // -// Generated at 23-12-2024 19:19:23 UTC (e = 0.067721, k = 0.0077, r = 0.70) // +// Generated at 28-12-2024 13:59:28 UTC (e = 0.067562, k = 0.0077, r = 0.70) // // ------------------------------------------------------------------------- // use super::*; @@ -9,73 +9,73 @@ pub const QUEEN_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = [ [ [ - s!(1028, 1080), s!(1043, 1112), s!(1057, 1097), s!(1086, 1090), s!(1069, 1105), s!(1107, 1085), s!(1117, 1081), s!(1089, 1089), - s!(1028, 1080), s!(1021, 1106), s!(1051, 1102), s!(1041, 1108), s!(1049, 1102), s!(1088, 1080), s!(1067, 1107), s!(1113, 1055), - s!(1041, 1057), s!(1050, 1081), s!(1076, 1058), s!(1067, 1078), s!(1089, 1073), s!(1121, 1067), s!(1100, 1068), s!(1068, 1103), - s!(1043, 1057), s!(1045, 1058), s!(1034, 1086), s!(1056, 1058), s!(1083, 1054), s!(1077, 1070), s!(1074, 1098), s!(1083, 1076), - s!(1049, 1027), s!(1035, 1088), s!(1056, 1051), s!(1057, 1049), s!(1069, 1049), s!(1080, 1056), s!(1080, 1063), s!(1075, 1059), - s!(1037, 1030), s!(1056, 1018), s!(1053, 1045), s!(1067, 1029), s!(1068, 1035), s!(1083, 1042), s!(1077, 1049), s!(1082, 1025), - s!(1042, 1079), s!(1051, 1047), s!(1064, 1011), s!(1063, 1026), s!(1074, 1025), s!(1075, 1014), s!(1093, 975), s!(1031, 1002), + s!(1028, 1081), s!(1043, 1112), s!(1057, 1097), s!(1086, 1090), s!(1069, 1105), s!(1106, 1084), s!(1117, 1080), s!(1089, 1089), + s!(1028, 1080), s!(1021, 1105), s!(1051, 1101), s!(1041, 1108), s!(1048, 1101), s!(1088, 1080), s!(1067, 1106), s!(1113, 1055), + s!(1042, 1057), s!(1050, 1081), s!(1076, 1058), s!(1067, 1078), s!(1088, 1072), s!(1120, 1066), s!(1100, 1068), s!(1068, 1103), + s!(1043, 1057), s!(1046, 1058), s!(1034, 1086), s!(1056, 1058), s!(1082, 1053), s!(1076, 1069), s!(1073, 1097), s!(1082, 1075), + s!(1050, 1027), s!(1035, 1088), s!(1057, 1051), s!(1058, 1049), s!(1068, 1048), s!(1079, 1055), s!(1079, 1062), s!(1075, 1058), + s!(1037, 1030), s!(1057, 1019), s!(1054, 1045), s!(1067, 1029), s!(1068, 1035), s!(1082, 1041), s!(1076, 1048), s!(1081, 1025), + s!(1042, 1079), s!(1051, 1047), s!(1065, 1011), s!(1063, 1026), s!(1074, 1025), s!(1075, 1014), s!(1091, 975), s!(1031, 1002), s!(1059, 1007), s!(1047, 1029), s!(1053, 996), s!(1067, 994), s!(1073, 984), s!(1059, 980), s!(1025, 1012), s!( 997, 1006), ], [ - s!(1058, 1099), s!(1047, 1110), s!(1065, 1096), s!(1086, 1088), s!(1079, 1104), s!(1089, 1092), s!(1127, 1078), s!(1086, 1085), - s!(1050, 1084), s!(1038, 1114), s!(1067, 1088), s!(1062, 1110), s!(1047, 1124), s!(1071, 1107), s!(1053, 1139), s!(1117, 1071), - s!(1079, 1055), s!(1068, 1082), s!(1075, 1089), s!(1072, 1101), s!(1071, 1104), s!(1100, 1106), s!(1101, 1091), s!(1075, 1101), - s!(1072, 1053), s!(1070, 1076), s!(1071, 1074), s!(1073, 1084), s!(1074, 1077), s!(1075, 1097), s!(1067, 1106), s!(1081, 1093), - s!(1080, 1056), s!(1072, 1062), s!(1077, 1062), s!(1076, 1065), s!(1077, 1065), s!(1075, 1077), s!(1086, 1075), s!(1072, 1070), - s!(1074, 1033), s!(1083, 1039), s!(1085, 1041), s!(1084, 1031), s!(1077, 1047), s!(1091, 1047), s!(1090, 1055), s!(1081, 1039), - s!(1082, 1036), s!(1086, 1039), s!(1089, 1015), s!(1086, 1013), s!(1092, 1022), s!(1110, 971), s!(1097, 973), s!(1042, 1042), - s!(1096, 1014), s!(1085, 1014), s!(1075, 1015), s!(1091, 999), s!(1083, 994), s!(1087, 970), s!(1003, 1026), s!(1033, 1035), + s!(1058, 1099), s!(1048, 1110), s!(1065, 1096), s!(1086, 1088), s!(1079, 1104), s!(1089, 1092), s!(1126, 1078), s!(1085, 1085), + s!(1049, 1083), s!(1037, 1113), s!(1067, 1088), s!(1062, 1110), s!(1046, 1123), s!(1071, 1107), s!(1053, 1138), s!(1115, 1070), + s!(1079, 1055), s!(1068, 1082), s!(1074, 1088), s!(1071, 1101), s!(1070, 1103), s!(1099, 1105), s!(1101, 1091), s!(1075, 1100), + s!(1072, 1053), s!(1070, 1075), s!(1071, 1074), s!(1072, 1083), s!(1073, 1077), s!(1076, 1096), s!(1066, 1105), s!(1081, 1092), + s!(1080, 1055), s!(1072, 1061), s!(1077, 1062), s!(1075, 1065), s!(1077, 1064), s!(1076, 1077), s!(1085, 1074), s!(1072, 1070), + s!(1074, 1033), s!(1083, 1039), s!(1085, 1041), s!(1084, 1032), s!(1076, 1047), s!(1091, 1046), s!(1089, 1055), s!(1081, 1039), + s!(1082, 1036), s!(1086, 1038), s!(1089, 1015), s!(1086, 1013), s!(1092, 1022), s!(1108, 971), s!(1096, 972), s!(1042, 1042), + s!(1096, 1014), s!(1085, 1014), s!(1075, 1015), s!(1091, 998), s!(1082, 994), s!(1086, 970), s!(1003, 1026), s!(1033, 1035), ], [ - s!( 991, 1073), s!(1023, 1119), s!(1040, 1099), s!(1066, 1091), s!(1081, 1087), s!(1076, 1094), s!(1103, 1058), s!(1063, 1079), + s!( 992, 1074), s!(1023, 1119), s!(1040, 1099), s!(1066, 1091), s!(1081, 1087), s!(1076, 1094), s!(1103, 1058), s!(1063, 1079), s!( 997, 1067), s!(1000, 1092), s!(1014, 1098), s!(1023, 1104), s!(1023, 1128), s!(1053, 1088), s!(1053, 1110), s!(1054, 1060), - s!(1024, 1020), s!(1027, 1057), s!(1040, 1057), s!(1069, 1081), s!(1072, 1085), s!(1095, 1066), s!(1090, 1067), s!(1058, 1080), - s!(1019, 1040), s!(1032, 1045), s!(1022, 1080), s!(1041, 1092), s!(1072, 1060), s!(1068, 1076), s!(1062, 1085), s!(1065, 1089), - s!(1030, 1028), s!(1019, 1064), s!(1050, 1052), s!(1055, 1066), s!(1067, 1065), s!(1075, 1059), s!(1068, 1063), s!(1059, 1075), - s!(1003, 1011), s!(1037, 1019), s!(1054, 1047), s!(1058, 1054), s!(1053, 1050), s!(1090, 1039), s!(1060, 1038), s!(1047, 1060), - s!(1010, 1050), s!(1034, 1027), s!(1054, 1006), s!(1057, 1010), s!(1068, 1009), s!(1047, 985), s!(1048, 1006), s!(1044, 1041), - s!(1035, 999), s!(1030, 998), s!(1019, 994), s!(1052, 955), s!(1029, 999), s!(1038, 1008), s!(1018, 1042), s!(1046, 1024), - ], - [ - s!( 983, 1065), s!(1001, 1100), s!(1053, 1095), s!(1067, 1078), s!(1069, 1081), s!(1088, 1077), s!(1083, 1061), s!(1027, 1083), - s!(1013, 1044), s!( 983, 1090), s!( 995, 1098), s!(1013, 1119), s!( 995, 1129), s!(1027, 1087), s!( 995, 1101), s!(1056, 1076), - s!(1043, 1024), s!(1002, 1059), s!(1013, 1101), s!(1032, 1086), s!(1025, 1107), s!(1051, 1078), s!(1060, 1079), s!(1055, 1074), - s!(1034, 1051), s!(1030, 1056), s!(1025, 1071), s!(1023, 1091), s!(1021, 1090), s!(1035, 1088), s!(1036, 1084), s!(1050, 1084), - s!(1054, 1020), s!(1033, 1059), s!(1041, 1056), s!(1050, 1062), s!(1039, 1089), s!(1046, 1066), s!(1052, 1055), s!(1042, 1066), - s!(1046, 1008), s!(1059, 1008), s!(1064, 1034), s!(1059, 1019), s!(1052, 1052), s!(1064, 1018), s!(1058, 1029), s!(1053, 1031), - s!(1050, 1041), s!(1065, 984), s!(1072, 963), s!(1077, 974), s!(1070, 986), s!(1083, 981), s!(1058, 1001), s!(1060, 1025), + s!(1024, 1020), s!(1027, 1057), s!(1040, 1058), s!(1069, 1081), s!(1072, 1085), s!(1095, 1066), s!(1090, 1067), s!(1058, 1080), + s!(1020, 1040), s!(1032, 1045), s!(1022, 1080), s!(1041, 1092), s!(1072, 1060), s!(1068, 1076), s!(1062, 1085), s!(1065, 1089), + s!(1031, 1028), s!(1020, 1064), s!(1050, 1053), s!(1055, 1066), s!(1067, 1065), s!(1075, 1059), s!(1068, 1063), s!(1059, 1075), + s!(1003, 1011), s!(1038, 1019), s!(1054, 1047), s!(1057, 1054), s!(1053, 1050), s!(1089, 1039), s!(1060, 1038), s!(1047, 1060), + s!(1010, 1050), s!(1034, 1027), s!(1054, 1006), s!(1057, 1010), s!(1067, 1009), s!(1047, 985), s!(1048, 1006), s!(1044, 1041), + s!(1035, 999), s!(1030, 998), s!(1019, 994), s!(1052, 956), s!(1029, 999), s!(1038, 1008), s!(1018, 1042), s!(1046, 1024), + ], + [ + s!( 984, 1065), s!(1001, 1100), s!(1053, 1095), s!(1067, 1078), s!(1069, 1081), s!(1088, 1077), s!(1083, 1061), s!(1027, 1083), + s!(1013, 1044), s!( 984, 1090), s!( 996, 1098), s!(1013, 1119), s!( 996, 1129), s!(1028, 1087), s!( 995, 1101), s!(1056, 1076), + s!(1043, 1024), s!(1003, 1059), s!(1014, 1101), s!(1032, 1086), s!(1026, 1107), s!(1051, 1079), s!(1060, 1079), s!(1056, 1074), + s!(1034, 1051), s!(1031, 1056), s!(1025, 1071), s!(1023, 1091), s!(1021, 1090), s!(1036, 1088), s!(1036, 1084), s!(1051, 1084), + s!(1053, 1019), s!(1033, 1059), s!(1041, 1056), s!(1049, 1062), s!(1039, 1089), s!(1046, 1066), s!(1052, 1055), s!(1043, 1066), + s!(1046, 1008), s!(1058, 1008), s!(1063, 1034), s!(1059, 1019), s!(1052, 1052), s!(1065, 1018), s!(1058, 1029), s!(1053, 1031), + s!(1050, 1041), s!(1065, 984), s!(1073, 963), s!(1076, 974), s!(1069, 986), s!(1082, 981), s!(1058, 1001), s!(1061, 1025), s!(1065, 1000), s!(1053, 998), s!(1051, 947), s!(1065, 948), s!(1032, 1003), s!(1035, 973), s!(1010, 1046), s!(1017, 1027), ], [ s!(1004, 1056), s!(1004, 1094), s!(1033, 1070), s!(1066, 1080), s!(1084, 1086), s!(1074, 1071), s!(1114, 1073), s!(1031, 1053), s!(1034, 1066), s!(1005, 1090), s!(1038, 1102), s!(1028, 1119), s!(1010, 1111), s!(1047, 1065), s!(1023, 1085), s!(1088, 1074), s!(1037, 1022), s!(1040, 1055), s!(1059, 1046), s!(1054, 1085), s!(1069, 1069), s!(1078, 1055), s!(1068, 1053), s!(1047, 1072), - s!(1011, 1041), s!(1038, 1060), s!(1045, 1077), s!(1031, 1068), s!(1070, 1065), s!(1064, 1058), s!(1045, 1076), s!(1047, 1071), - s!(1033, 1028), s!(1043, 1062), s!(1052, 1054), s!(1094, 1077), s!(1057, 1050), s!(1058, 1062), s!(1035, 1058), s!(1052, 1056), + s!(1011, 1041), s!(1038, 1060), s!(1046, 1077), s!(1031, 1068), s!(1070, 1065), s!(1064, 1058), s!(1045, 1076), s!(1047, 1071), + s!(1033, 1028), s!(1043, 1062), s!(1052, 1054), s!(1093, 1077), s!(1057, 1050), s!(1058, 1062), s!(1035, 1058), s!(1052, 1056), s!(1044, 1018), s!(1037, 1005), s!(1075, 1030), s!(1050, 1036), s!(1056, 1036), s!(1059, 1033), s!(1055, 1045), s!(1042, 1049), - s!(1004, 1042), s!(1039, 999), s!(1029, 1002), s!(1047, 997), s!(1051, 985), s!(1047, 1010), s!(1053, 1013), s!(1055, 1041), - s!(1029, 990), s!(1030, 997), s!(1002, 996), s!(1012, 991), s!( 994, 1006), s!(1014, 1004), s!(1012, 1042), s!(1033, 1031), + s!(1004, 1042), s!(1039, 999), s!(1029, 1002), s!(1047, 997), s!(1051, 985), s!(1048, 1010), s!(1053, 1013), s!(1055, 1041), + s!(1029, 990), s!(1030, 997), s!(1002, 996), s!(1013, 991), s!( 994, 1006), s!(1014, 1004), s!(1012, 1042), s!(1033, 1031), ], [ s!(1013, 1052), s!( 993, 1092), s!(1053, 1092), s!(1068, 1084), s!(1091, 1079), s!(1079, 1069), s!(1095, 1048), s!(1042, 1059), s!(1050, 1060), s!(1015, 1082), s!(1019, 1105), s!(1023, 1118), s!(1021, 1122), s!(1079, 1080), s!(1015, 1088), s!(1046, 1060), s!(1046, 1030), s!(1049, 1063), s!(1061, 1069), s!(1063, 1083), s!(1073, 1079), s!(1079, 1068), s!(1068, 1068), s!(1071, 1048), - s!(1057, 1044), s!(1047, 1068), s!(1062, 1071), s!(1049, 1067), s!(1059, 1075), s!(1071, 1058), s!(1063, 1072), s!(1054, 1065), - s!(1058, 1029), s!(1045, 1050), s!(1058, 1063), s!(1064, 1064), s!(1074, 1018), s!(1058, 1087), s!(1054, 1064), s!(1067, 1059), - s!(1043, 1006), s!(1058, 1015), s!(1077, 1034), s!(1066, 1016), s!(1070, 1030), s!(1072, 1016), s!(1059, 1028), s!(1047, 1055), - s!(1014, 1053), s!(1056, 1018), s!(1086, 977), s!(1072, 1014), s!(1060, 1026), s!(1059, 1016), s!(1049, 1020), s!(1062, 1038), + s!(1057, 1044), s!(1047, 1068), s!(1062, 1071), s!(1049, 1067), s!(1059, 1075), s!(1071, 1058), s!(1063, 1072), s!(1055, 1065), + s!(1058, 1029), s!(1045, 1050), s!(1058, 1063), s!(1064, 1064), s!(1074, 1018), s!(1058, 1087), s!(1054, 1064), s!(1066, 1059), + s!(1043, 1006), s!(1059, 1015), s!(1076, 1034), s!(1066, 1016), s!(1069, 1030), s!(1072, 1016), s!(1059, 1029), s!(1047, 1055), + s!(1014, 1053), s!(1056, 1018), s!(1085, 976), s!(1071, 1014), s!(1061, 1026), s!(1060, 1016), s!(1050, 1020), s!(1062, 1038), s!(1022, 993), s!(1024, 1003), s!(1049, 997), s!(1052, 986), s!(1067, 997), s!(1048, 1002), s!(1038, 1047), s!(1046, 1030), ], [ s!(1038, 1058), s!(1037, 1109), s!(1058, 1081), s!(1091, 1083), s!(1081, 1082), s!(1072, 1065), s!(1108, 1063), s!(1055, 1083), - s!(1057, 1054), s!(1028, 1103), s!(1055, 1097), s!(1057, 1117), s!(1047, 1108), s!(1074, 1064), s!(1047, 1089), s!(1054, 1063), - s!(1052, 1042), s!(1047, 1082), s!(1074, 1066), s!(1056, 1088), s!(1070, 1074), s!(1082, 1066), s!(1090, 1059), s!(1071, 1059), + s!(1057, 1054), s!(1028, 1103), s!(1055, 1097), s!(1057, 1116), s!(1047, 1108), s!(1074, 1064), s!(1047, 1089), s!(1054, 1063), + s!(1052, 1042), s!(1047, 1082), s!(1074, 1066), s!(1056, 1088), s!(1070, 1074), s!(1082, 1066), s!(1090, 1059), s!(1072, 1059), s!(1055, 1057), s!(1063, 1082), s!(1062, 1071), s!(1060, 1079), s!(1074, 1070), s!(1070, 1047), s!(1056, 1078), s!(1058, 1078), - s!(1060, 1049), s!(1053, 1077), s!(1071, 1051), s!(1072, 1050), s!(1077, 1022), s!(1068, 1053), s!(1048, 1078), s!(1056, 1082), - s!(1040, 1019), s!(1080, 1019), s!(1066, 1068), s!(1071, 1048), s!(1072, 1038), s!(1080, 1009), s!(1051, 1046), s!(1058, 1067), - s!(1013, 1046), s!(1066, 1009), s!(1086, 982), s!(1070, 1027), s!(1067, 1027), s!(1067, 1007), s!(1058, 1032), s!(1061, 1049), + s!(1060, 1049), s!(1053, 1077), s!(1071, 1051), s!(1072, 1050), s!(1077, 1023), s!(1068, 1053), s!(1048, 1078), s!(1056, 1082), + s!(1040, 1019), s!(1079, 1019), s!(1066, 1068), s!(1070, 1047), s!(1072, 1038), s!(1080, 1009), s!(1052, 1046), s!(1058, 1067), + s!(1013, 1046), s!(1066, 1009), s!(1085, 982), s!(1070, 1027), s!(1066, 1027), s!(1067, 1007), s!(1058, 1032), s!(1061, 1049), s!(1037, 999), s!(1052, 1004), s!(1071, 977), s!(1050, 995), s!(1064, 1019), s!(1024, 1003), s!(1034, 1054), s!( 999, 1014), ], [ @@ -85,8 +85,8 @@ pub const QUEEN_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!(1060, 1061), s!(1086, 1083), s!(1057, 1087), s!(1055, 1080), s!(1064, 1065), s!(1055, 1072), s!(1065, 1081), s!(1045, 1076), s!(1079, 1044), s!(1057, 1075), s!(1079, 1060), s!(1065, 1057), s!(1070, 1038), s!(1054, 1060), s!(1047, 1062), s!(1021, 1062), s!(1027, 1012), s!(1077, 1044), s!(1085, 1040), s!(1082, 1037), s!(1073, 1040), s!(1062, 1015), s!(1043, 1031), s!(1047, 1043), - s!(1011, 1047), s!(1044, 1014), s!(1082, 1002), s!(1076, 1035), s!(1055, 1030), s!(1072, 984), s!(1070, 1027), s!(1066, 1063), - s!(1066, 1006), s!(1042, 1000), s!(1062, 1006), s!(1082, 983), s!(1036, 1019), s!(1037, 999), s!(1021, 1049), s!(1022, 1031), + s!(1011, 1047), s!(1044, 1014), s!(1082, 1002), s!(1076, 1035), s!(1056, 1030), s!(1072, 984), s!(1070, 1027), s!(1066, 1063), + s!(1066, 1006), s!(1042, 1000), s!(1062, 1006), s!(1081, 983), s!(1036, 1019), s!(1037, 999), s!(1021, 1049), s!(1022, 1031), ], [ s!(1043, 1078), s!(1030, 1110), s!(1052, 1094), s!(1084, 1094), s!(1072, 1103), s!(1106, 1089), s!(1118, 1082), s!(1081, 1089), @@ -171,74 +171,74 @@ pub const QUEEN_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = ], [ [ - s!( -50, 1), s!( -37, -15), s!( -30, -1), s!( -34, -1), s!( -17, 6), s!( -26, 2), s!( 9, 13), s!( 4, 3), - s!( -20, -7), s!( -20, -10), s!( -17, -13), s!( -7, -18), s!( 26, -13), s!( 21, 9), s!( 10, 6), s!( 7, 8), - s!( -22, -28), s!( -22, -28), s!( -38, -1), s!( -6, -21), s!( -22, 25), s!( 50, -6), s!( 55, -8), s!( -6, 25), - s!( -21, -15), s!( -23, -4), s!( -1, -16), s!( -14, 9), s!( 8, 1), s!( 21, 10), s!( 35, 17), s!( 12, -18), - s!( -22, -32), s!( -14, -18), s!( -13, 5), s!( 5, -9), s!( 2, 2), s!( 5, 5), s!( -11, 21), s!( 16, -1), - s!( -12, -26), s!( -21, -8), s!( 2, -18), s!( -4, 8), s!( -0, 4), s!( -4, 13), s!( -4, 1), s!( 18, -26), - s!( -31, -6), s!( -17, -11), s!( -11, -2), s!( -4, -8), s!( -6, -3), s!( -7, 19), s!( 9, -19), s!( 8, -13), - s!( -17, -19), s!( -26, 0), s!( -8, -11), s!( -12, 3), s!( -3, -16), s!( -2, -11), s!( -4, -22), s!( 15, -9), + s!( -49, 2), s!( -36, -14), s!( -30, -0), s!( -33, -0), s!( -16, 7), s!( -26, 3), s!( 9, 13), s!( 4, 3), + s!( -19, -6), s!( -19, -9), s!( -16, -13), s!( -6, -17), s!( 26, -13), s!( 21, 9), s!( 10, 6), s!( 7, 8), + s!( -22, -27), s!( -21, -28), s!( -37, -0), s!( -6, -21), s!( -22, 24), s!( 49, -7), s!( 53, -9), s!( -5, 25), + s!( -21, -15), s!( -22, -4), s!( -1, -16), s!( -14, 9), s!( 8, 1), s!( 20, 10), s!( 32, 15), s!( 12, -18), + s!( -22, -32), s!( -13, -18), s!( -12, 5), s!( 5, -8), s!( 2, 3), s!( 4, 4), s!( -12, 20), s!( 16, -1), + s!( -11, -26), s!( -20, -8), s!( 2, -18), s!( -4, 8), s!( -1, 4), s!( -5, 12), s!( -4, 0), s!( 18, -27), + s!( -31, -6), s!( -17, -11), s!( -11, -2), s!( -5, -8), s!( -7, -3), s!( -8, 19), s!( 8, -19), s!( 8, -13), + s!( -16, -19), s!( -26, 0), s!( -8, -11), s!( -12, 3), s!( -4, -16), s!( -2, -11), s!( -4, -22), s!( 15, -9), ], [ - s!( -47, 31), s!( 3, -5), s!( 6, 1), s!( 6, 4), s!( -7, 19), s!( 30, 33), s!( 16, 20), s!( 41, 26), - s!( -21, 12), s!( -15, 26), s!( -15, 15), s!( -12, 23), s!( -9, 31), s!( 22, 14), s!( 15, 11), s!( 26, 21), - s!( -22, 2), s!( -21, 17), s!( -31, 23), s!( -10, 4), s!( 23, 23), s!( 10, 6), s!( -30, 31), s!( 26, -27), - s!( -7, -2), s!( -15, 12), s!( -13, 15), s!( -11, 24), s!( -12, 35), s!( -6, 28), s!( 2, 3), s!( -1, 3), - s!( -15, 9), s!( -13, 5), s!( -6, 16), s!( -6, 18), s!( -5, 14), s!( -2, 4), s!( 6, 2), s!( 10, 2), - s!( -2, -9), s!( -8, 13), s!( -8, 11), s!( -9, 14), s!( 0, 1), s!( -0, -0), s!( 5, 1), s!( 11, -8), - s!( -3, -6), s!( -11, 11), s!( -5, 8), s!( -1, 3), s!( -6, 1), s!( 1, -12), s!( 29, -48), s!( 3, -1), - s!( -9, -5), s!( 1, -17), s!( 10, -17), s!( -7, 9), s!( 5, -12), s!( 1, -15), s!( 13, -27), s!( -3, 3), + s!( -46, 32), s!( 3, -5), s!( 6, 1), s!( 6, 4), s!( -7, 19), s!( 30, 33), s!( 16, 20), s!( 41, 26), + s!( -21, 12), s!( -15, 25), s!( -15, 15), s!( -13, 22), s!( -10, 30), s!( 22, 14), s!( 15, 11), s!( 26, 21), + s!( -22, 2), s!( -21, 17), s!( -32, 22), s!( -10, 4), s!( 22, 22), s!( 9, 6), s!( -27, 32), s!( 28, -27), + s!( -8, -2), s!( -15, 12), s!( -13, 15), s!( -11, 24), s!( -12, 34), s!( -6, 27), s!( 4, 3), s!( -1, 2), + s!( -16, 9), s!( -12, 5), s!( -6, 17), s!( -5, 19), s!( -5, 13), s!( -2, 4), s!( 6, 2), s!( 10, 1), + s!( -2, -9), s!( -8, 13), s!( -8, 12), s!( -10, 15), s!( -0, 2), s!( -1, -0), s!( 5, 1), s!( 10, -8), + s!( -4, -6), s!( -11, 11), s!( -5, 8), s!( -2, 3), s!( -6, 2), s!( 0, -11), s!( 28, -48), s!( 4, -1), + s!( -9, -5), s!( 0, -17), s!( 10, -17), s!( -7, 9), s!( 4, -12), s!( 0, -15), s!( 13, -27), s!( -3, 3), ], [ s!( -9, 1), s!( 3, -4), s!( 15, 5), s!( 20, 8), s!( 25, 20), s!( 23, 20), s!( 27, 21), s!( 26, 8), - s!( 7, -1), s!( 22, -14), s!( 15, 6), s!( 16, -2), s!( 6, 3), s!( 8, 4), s!( 16, 1), s!( 45, -18), - s!( -7, 4), s!( 0, -3), s!( -13, 11), s!( 16, 8), s!( 11, -2), s!( 58, 33), s!( 30, 16), s!( 40, 17), - s!( -3, 7), s!( 3, 2), s!( 3, 5), s!( 22, -14), s!( -9, 15), s!( 12, -3), s!( 33, -13), s!( 33, 17), - s!( -16, -5), s!( -15, -11), s!( 1, -2), s!( 1, 12), s!( -6, 2), s!( 13, 1), s!( -12, 1), s!( 24, 8), - s!( -1, -23), s!( -3, -13), s!( 4, 3), s!( 4, -2), s!( -9, -2), s!( 13, -14), s!( -7, 4), s!( -8, 26), - s!( -9, -9), s!( -13, -7), s!( -12, 3), s!( 2, -14), s!( -5, -3), s!( -1, 4), s!( -14, -6), s!( 14, 3), + s!( 7, -1), s!( 22, -14), s!( 15, 6), s!( 16, -2), s!( 6, 3), s!( 8, 4), s!( 16, 1), s!( 43, -19), + s!( -7, 4), s!( -0, -3), s!( -14, 11), s!( 16, 8), s!( 11, -2), s!( 58, 33), s!( 30, 16), s!( 39, 17), + s!( -3, 7), s!( 3, 2), s!( 3, 5), s!( 22, -14), s!( -10, 15), s!( 12, -3), s!( 32, -13), s!( 32, 16), + s!( -15, -5), s!( -15, -11), s!( 1, -2), s!( 0, 12), s!( -6, 2), s!( 13, 1), s!( -12, 1), s!( 23, 7), + s!( -1, -23), s!( -2, -13), s!( 4, 3), s!( 4, -2), s!( -9, -2), s!( 14, -14), s!( -7, 4), s!( -8, 26), + s!( -9, -9), s!( -13, -7), s!( -12, 3), s!( 1, -14), s!( -5, -3), s!( -1, 4), s!( -14, -6), s!( 14, 3), s!( -12, -5), s!( -19, -8), s!( 5, -1), s!( -2, 0), s!( 0, -30), s!( -5, -17), s!( -18, -5), s!( 6, 6), ], [ s!( -4, -4), s!( 10, 7), s!( 6, -4), s!( 16, 9), s!( 8, 5), s!( 14, 11), s!( -13, -13), s!( -14, 5), - s!( 14, -4), s!( 32, 25), s!( 24, 7), s!( 1, -2), s!( 0, -0), s!( 11, 7), s!( 29, 19), s!( -14, 5), - s!( -2, 1), s!( 20, 6), s!( 13, 17), s!( 12, 30), s!( 8, 12), s!( -3, 19), s!( 20, 1), s!( 12, -6), - s!( 1, 2), s!( -0, 24), s!( 15, 17), s!( -2, 10), s!( 14, 19), s!( 14, 4), s!( 2, 6), s!( 11, 8), - s!( -1, 25), s!( 13, 19), s!( 7, 6), s!( -7, 0), s!( -2, 16), s!( 8, -15), s!( -1, 2), s!( 1, 5), - s!( 7, 20), s!( -2, 31), s!( -8, 11), s!( -6, -25), s!( 5, -5), s!( -3, -6), s!( 11, -25), s!( 9, -20), - s!( -3, 1), s!( 5, -2), s!( -2, -23), s!( -9, -2), s!( 1, -13), s!( -14, 6), s!( 10, -7), s!( 2, 0), + s!( 14, -4), s!( 31, 25), s!( 24, 7), s!( 1, -2), s!( 0, -0), s!( 11, 7), s!( 29, 18), s!( -14, 4), + s!( -2, 1), s!( 19, 6), s!( 13, 17), s!( 11, 30), s!( 9, 12), s!( -3, 19), s!( 20, 1), s!( 11, -6), + s!( 1, 2), s!( 1, 24), s!( 15, 17), s!( -2, 10), s!( 14, 19), s!( 14, 4), s!( 2, 6), s!( 13, 8), + s!( -1, 25), s!( 12, 19), s!( 5, 6), s!( -8, -0), s!( -2, 16), s!( 8, -15), s!( -1, 2), s!( 1, 5), + s!( 6, 20), s!( -4, 31), s!( -8, 11), s!( -7, -25), s!( 5, -5), s!( -3, -6), s!( 11, -25), s!( 9, -20), + s!( -3, 1), s!( 5, -2), s!( -2, -23), s!( -9, -2), s!( 1, -13), s!( -13, 6), s!( 10, -7), s!( 3, 0), s!( -7, 6), s!( -4, 5), s!( 3, -5), s!( -9, -23), s!( 8, -18), s!( 9, -7), s!( 2, 5), s!( 24, 11), ], [ s!( 21, 20), s!( 39, 20), s!( 12, 5), s!( 1, 2), s!( 6, 1), s!( 1, -5), s!( 3, 5), s!( 12, -7), s!( 24, 21), s!( 46, 6), s!( 2, -0), s!( 2, 1), s!( 14, 11), s!( 8, -2), s!( 20, 19), s!( -14, -7), s!( 8, 10), s!( 18, 8), s!( 25, 15), s!( 9, 3), s!( 7, 13), s!( -4, -5), s!( 7, -8), s!( -13, -7), - s!( 16, 6), s!( 25, 14), s!( 14, 2), s!( 13, 2), s!( -16, 2), s!( -1, -4), s!( -7, -5), s!( 0, 5), - s!( 24, 2), s!( 31, 14), s!( 1, 8), s!( 5, 6), s!( -20, -14), s!( -5, 4), s!( 9, -2), s!( -23, 6), + s!( 16, 6), s!( 25, 14), s!( 14, 2), s!( 13, 2), s!( -16, 2), s!( -1, -4), s!( -7, -5), s!( -0, 5), + s!( 24, 2), s!( 31, 14), s!( 1, 8), s!( 5, 6), s!( -20, -14), s!( -5, 4), s!( 8, -2), s!( -23, 6), s!( 1, 9), s!( 20, 14), s!( 13, 8), s!( 16, -4), s!( 2, 2), s!( 1, -8), s!( -6, -5), s!( 7, 0), s!( 22, 11), s!( 14, 8), s!( 10, 1), s!( 10, -4), s!( -4, 2), s!( 13, -3), s!( -14, -0), s!( -12, -1), - s!( -5, 1), s!( 6, -1), s!( -23, -5), s!( 8, 4), s!( -17, -0), s!( -3, -2), s!( -6, -1), s!( 1, 3), + s!( -6, 1), s!( 6, -1), s!( -23, -5), s!( 8, 4), s!( -17, 0), s!( -3, -2), s!( -6, -1), s!( 1, 3), ], [ - s!( 59, -1), s!( 17, 14), s!( 3, 3), s!( 14, 6), s!( 8, 2), s!( 11, 6), s!( -24, -4), s!( -49, -20), - s!( 83, 10), s!( 4, 0), s!( 3, 5), s!( 4, 3), s!( 4, 1), s!( -24, 11), s!( -42, 0), s!( -45, -12), + s!( 60, -1), s!( 17, 14), s!( 3, 3), s!( 14, 6), s!( 8, 2), s!( 11, 6), s!( -25, -4), s!( -49, -20), + s!( 81, 9), s!( 4, 0), s!( 3, 5), s!( 4, 3), s!( 4, 1), s!( -25, 11), s!( -42, 0), s!( -45, -12), s!( 46, 17), s!( 28, 15), s!( 64, 30), s!( 28, 16), s!( 16, -2), s!( -45, 8), s!( -23, -6), s!( -53, -9), - s!( 39, 15), s!( 20, 11), s!( 15, 5), s!( -3, 21), s!( -6, 8), s!( 13, -4), s!( -28, -6), s!( -24, -2), - s!( 28, 9), s!( 28, 6), s!( 3, 8), s!( 7, 4), s!( -5, 9), s!( -26, 4), s!( -6, 9), s!( -33, -12), - s!( 29, 15), s!( 0, 6), s!( -4, -5), s!( -0, 5), s!( -0, -1), s!( -5, 12), s!( -26, 9), s!( 1, -4), - s!( 6, 5), s!( 5, 3), s!( 6, -26), s!( -14, -11), s!( -4, -5), s!( 2, -6), s!( -23, 10), s!( -29, 4), + s!( 39, 15), s!( 20, 11), s!( 15, 5), s!( -3, 21), s!( -6, 8), s!( 13, -4), s!( -28, -6), s!( -25, -2), + s!( 27, 8), s!( 28, 6), s!( 3, 8), s!( 7, 4), s!( -6, 9), s!( -26, 4), s!( -5, 9), s!( -33, -12), + s!( 28, 15), s!( 0, 6), s!( -3, -5), s!( -1, 5), s!( -0, -1), s!( -6, 12), s!( -26, 9), s!( 1, -4), + s!( 6, 5), s!( 5, 3), s!( 6, -26), s!( -14, -11), s!( -4, -5), s!( 1, -6), s!( -23, 10), s!( -29, 4), s!( 8, 6), s!( -10, -1), s!( -8, 6), s!( -14, -36), s!( -9, -1), s!( 12, -8), s!( -0, 4), s!( 7, 2), ], [ s!( 26, 16), s!( 9, 8), s!( 13, 9), s!( 9, 7), s!( 1, 2), s!( -9, -11), s!( -15, -10), s!( -22, -17), s!( 4, 3), s!( 0, 1), s!( 6, 5), s!( 22, 14), s!( 22, -10), s!( -34, -2), s!( -38, 0), s!( -54, -12), - s!( 11, -1), s!( 7, 17), s!( 21, 14), s!( 27, 8), s!( -25, 9), s!( -47, -10), s!( -52, -8), s!( -25, -34), - s!( -10, 12), s!( 14, -8), s!( -1, 16), s!( 21, 7), s!( 1, -3), s!( -22, 19), s!( -23, -3), s!( -28, -21), - s!( 6, -14), s!( 11, 10), s!( -0, -1), s!( 14, -10), s!( 11, 3), s!( -9, -3), s!( -13, -13), s!( -11, -19), - s!( -7, 11), s!( 8, -13), s!( -0, -0), s!( 6, -0), s!( 16, 1), s!( 6, -4), s!( -0, 7), s!( -11, -16), - s!( 5, 14), s!( 11, -5), s!( 2, -4), s!( -4, 6), s!( -0, 7), s!( 8, -10), s!( -13, 2), s!( -26, -15), - s!( -2, 11), s!( 12, -16), s!( -0, -1), s!( -14, 6), s!( -11, 10), s!( 1, -11), s!( 12, -2), s!( 5, 5), + s!( 12, -1), s!( 7, 17), s!( 21, 14), s!( 27, 8), s!( -25, 9), s!( -47, -10), s!( -52, -8), s!( -25, -34), + s!( -9, 12), s!( 14, -8), s!( -0, 16), s!( 21, 7), s!( 1, -3), s!( -22, 19), s!( -23, -3), s!( -28, -21), + s!( 6, -14), s!( 11, 10), s!( -0, -1), s!( 14, -10), s!( 11, 3), s!( -8, -3), s!( -13, -13), s!( -11, -19), + s!( -7, 11), s!( 8, -13), s!( -0, -0), s!( 5, 0), s!( 15, 1), s!( 5, -4), s!( -0, 7), s!( -11, -16), + s!( 5, 14), s!( 11, -5), s!( 2, -4), s!( -5, 6), s!( -1, 7), s!( 8, -10), s!( -13, 2), s!( -26, -15), + s!( -2, 11), s!( 12, -16), s!( -0, -1), s!( -15, 6), s!( -11, 10), s!( 1, -11), s!( 12, -2), s!( 5, 5), ], [ s!( 3, 4), s!( 12, 6), s!( 9, 11), s!( 8, 9), s!( -10, -7), s!( -3, -7), s!( -31, -19), s!( -24, -20), @@ -248,11 +248,11 @@ pub const QUEEN_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( 20, -1), s!( 12, 15), s!( 2, 7), s!( 11, 1), s!( 13, 0), s!( -3, -3), s!( -6, -10), s!( -10, -6), s!( -10, 2), s!( -5, 14), s!( -3, 1), s!( 4, -5), s!( 8, 1), s!( -8, 6), s!( -15, -1), s!( -64, -18), s!( 11, 2), s!( -1, 12), s!( 4, -26), s!( -5, -1), s!( 3, 10), s!( -13, -17), s!( 5, -2), s!( -7, -13), - s!( 0, 2), s!( -3, 0), s!( -7, -0), s!( 9, -7), s!( 8, 0), s!( -11, -3), s!( 5, 2), s!( -3, -1), + s!( 0, 2), s!( -3, 0), s!( -7, -0), s!( 8, -7), s!( 9, 0), s!( -11, -3), s!( 5, 2), s!( -3, -1), ], [ s!( -17, -2), s!( -22, -18), s!( -6, -4), s!( -11, -4), s!( -3, 4), s!( -8, -4), s!( 2, 3), s!( 4, 5), - s!( -13, -6), s!( -14, -9), s!( -10, -4), s!( 1, -16), s!( 13, -5), s!( 17, 14), s!( 0, -7), s!( 3, 4), + s!( -13, -6), s!( -14, -9), s!( -10, -4), s!( 1, -16), s!( 13, -5), s!( 17, 14), s!( -0, -7), s!( 3, 4), s!( -9, -18), s!( -15, -14), s!( -24, -5), s!( -8, -15), s!( -11, 6), s!( 26, 8), s!( 50, 8), s!( -3, 8), s!( -11, -9), s!( -26, -4), s!( -7, -16), s!( -5, -3), s!( 5, -2), s!( 16, -3), s!( 26, 10), s!( 1, -4), s!( -24, -17), s!( -15, -12), s!( -12, 4), s!( 7, -22), s!( 2, -7), s!( 13, 5), s!( -12, 10), s!( 9, -0), @@ -261,7 +261,7 @@ pub const QUEEN_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( -6, -8), s!( -15, -6), s!( -6, -5), s!( -1, -10), s!( -3, -1), s!( -3, -5), s!( -2, -8), s!( 5, -1), ], [ - s!( -13, 6), s!( 3, -7), s!( -6, -11), s!( -3, -9), s!( -6, 0), s!( 7, 5), s!( 0, 0), s!( 14, 6), + s!( -13, 6), s!( 3, -7), s!( -6, -11), s!( -3, -9), s!( -6, -0), s!( 7, 5), s!( 0, 0), s!( 14, 6), s!( -22, 5), s!( -14, 12), s!( -5, -0), s!( -6, -8), s!( -10, 4), s!( 5, -3), s!( 1, -0), s!( 10, 3), s!( -11, 2), s!( -11, 10), s!( -17, -1), s!( -9, -2), s!( 13, -1), s!( 10, 1), s!( -14, 5), s!( 14, -3), s!( -6, -2), s!( -9, -4), s!( -13, 2), s!( -6, -2), s!( -12, -1), s!( -6, 6), s!( -0, -1), s!( -1, -8), @@ -271,7 +271,7 @@ pub const QUEEN_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( -8, -10), s!( -2, -2), s!( 12, -17), s!( -1, 11), s!( 9, 2), s!( 0, -5), s!( 7, -5), s!( 0, 4), ], [ - s!( -4, -2), s!( 2, -0), s!( 4, -1), s!( 0, -6), s!( 2, -1), s!( 4, 3), s!( 6, 2), s!( 12, 2), + s!( -4, -2), s!( 2, -0), s!( 4, -1), s!( -0, -6), s!( 2, -1), s!( 4, 3), s!( 6, 2), s!( 12, 2), s!( -7, -3), s!( 11, -5), s!( 2, -3), s!( -2, -17), s!( 0, -6), s!( 1, -0), s!( 1, -10), s!( 43, 4), s!( 6, 3), s!( 0, -3), s!( -2, -5), s!( 8, 1), s!( -2, -13), s!( 15, 7), s!( 10, -6), s!( 18, 7), s!( -2, 1), s!( 1, 3), s!( -7, -8), s!( 8, -11), s!( -3, -3), s!( 2, -2), s!( 18, -16), s!( 22, 8), @@ -296,7 +296,7 @@ pub const QUEEN_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( 9, 3), s!( 3, -1), s!( 1, -5), s!( -2, -5), s!( -5, -13), s!( -5, -9), s!( -0, -10), s!( -10, -10), s!( 4, -2), s!( 11, 5), s!( 5, -0), s!( 2, -3), s!( -8, -7), s!( -6, -9), s!( -12, -13), s!( 9, 2), s!( 27, 6), s!( 11, 7), s!( -2, -0), s!( 3, 2), s!( -9, -7), s!( -1, -1), s!( 11, -3), s!( -7, 1), - s!( 0, 5), s!( 2, 1), s!( 8, 5), s!( 8, 0), s!( 5, 4), s!( -10, -8), s!( -3, -1), s!( -1, -2), + s!( 0, 5), s!( 2, 1), s!( 8, 5), s!( 8, -0), s!( 5, 4), s!( -10, -8), s!( -3, -1), s!( -1, -2), s!( 8, 4), s!( 6, 1), s!( 3, 2), s!( -1, 1), s!( 2, 4), s!( 2, -4), s!( -2, 1), s!( -4, -0), s!( 6, 6), s!( 4, 2), s!( -7, -1), s!( 6, 4), s!( -8, -2), s!( 3, 2), s!( 1, 2), s!( 1, 2), ], diff --git a/src/evaluation/pst/rook.rs b/src/evaluation/pst/rook.rs index fd074819..62514aae 100644 --- a/src/evaluation/pst/rook.rs +++ b/src/evaluation/pst/rook.rs @@ -1,5 +1,5 @@ // ------------------------------------------------------------------------- // -// Generated at 23-12-2024 19:19:23 UTC (e = 0.067721, k = 0.0077, r = 0.70) // +// Generated at 28-12-2024 13:59:28 UTC (e = 0.067562, k = 0.0077, r = 0.70) // // ------------------------------------------------------------------------- // use super::*; @@ -9,84 +9,84 @@ pub const ROOK_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = [ [ [ - s!( 472, 559), s!( 491, 563), s!( 462, 579), s!( 515, 555), s!( 504, 556), s!( 496, 570), s!( 496, 583), s!( 498, 575), - s!( 465, 579), s!( 481, 580), s!( 479, 580), s!( 492, 570), s!( 521, 562), s!( 521, 552), s!( 518, 569), s!( 505, 560), - s!( 448, 576), s!( 474, 569), s!( 466, 573), s!( 499, 554), s!( 503, 549), s!( 523, 550), s!( 565, 541), s!( 495, 549), - s!( 433, 568), s!( 441, 576), s!( 438, 582), s!( 473, 552), s!( 475, 555), s!( 483, 562), s!( 507, 557), s!( 479, 548), - s!( 417, 576), s!( 422, 574), s!( 436, 575), s!( 455, 563), s!( 448, 565), s!( 458, 569), s!( 501, 543), s!( 459, 545), - s!( 408, 556), s!( 432, 557), s!( 432, 555), s!( 444, 551), s!( 451, 558), s!( 461, 550), s!( 476, 539), s!( 456, 542), - s!( 421, 551), s!( 434, 548), s!( 432, 552), s!( 443, 544), s!( 451, 546), s!( 461, 545), s!( 493, 523), s!( 452, 541), - s!( 443, 543), s!( 445, 546), s!( 439, 549), s!( 444, 552), s!( 451, 547), s!( 464, 536), s!( 470, 549), s!( 422, 526), - ], - [ - s!( 468, 588), s!( 476, 587), s!( 470, 592), s!( 492, 581), s!( 523, 571), s!( 485, 592), s!( 491, 603), s!( 509, 583), - s!( 465, 603), s!( 475, 607), s!( 473, 602), s!( 495, 593), s!( 498, 591), s!( 490, 586), s!( 529, 582), s!( 510, 579), - s!( 471, 588), s!( 476, 591), s!( 478, 592), s!( 496, 574), s!( 489, 573), s!( 509, 569), s!( 514, 574), s!( 501, 564), - s!( 442, 584), s!( 462, 582), s!( 453, 590), s!( 476, 571), s!( 458, 580), s!( 471, 581), s!( 453, 590), s!( 462, 568), - s!( 436, 574), s!( 437, 585), s!( 450, 581), s!( 459, 578), s!( 448, 576), s!( 448, 579), s!( 463, 569), s!( 453, 559), - s!( 432, 564), s!( 447, 558), s!( 439, 569), s!( 451, 563), s!( 446, 569), s!( 451, 564), s!( 461, 559), s!( 436, 546), - s!( 440, 557), s!( 442, 555), s!( 441, 569), s!( 454, 557), s!( 443, 565), s!( 455, 555), s!( 484, 547), s!( 376, 571), - s!( 456, 557), s!( 461, 557), s!( 456, 557), s!( 461, 555), s!( 461, 557), s!( 463, 553), s!( 462, 541), s!( 373, 576), - ], - [ - s!( 496, 573), s!( 481, 582), s!( 465, 587), s!( 499, 574), s!( 485, 582), s!( 463, 597), s!( 493, 587), s!( 509, 586), - s!( 491, 588), s!( 498, 591), s!( 496, 590), s!( 530, 576), s!( 501, 583), s!( 510, 579), s!( 524, 577), s!( 506, 579), - s!( 460, 588), s!( 480, 583), s!( 475, 589), s!( 496, 577), s!( 495, 575), s!( 488, 577), s!( 547, 560), s!( 491, 563), - s!( 442, 580), s!( 462, 581), s!( 461, 581), s!( 492, 566), s!( 476, 574), s!( 484, 567), s!( 488, 563), s!( 464, 573), - s!( 427, 575), s!( 423, 584), s!( 445, 584), s!( 476, 573), s!( 466, 569), s!( 460, 577), s!( 472, 557), s!( 462, 559), - s!( 412, 568), s!( 430, 568), s!( 438, 575), s!( 455, 562), s!( 448, 561), s!( 458, 556), s!( 482, 535), s!( 457, 551), - s!( 431, 561), s!( 446, 550), s!( 449, 558), s!( 475, 542), s!( 463, 547), s!( 476, 553), s!( 461, 542), s!( 426, 576), - s!( 437, 555), s!( 447, 554), s!( 439, 563), s!( 451, 560), s!( 457, 550), s!( 438, 557), s!( 455, 546), s!( 434, 549), - ], - [ - s!( 505, 572), s!( 487, 585), s!( 493, 584), s!( 507, 582), s!( 506, 591), s!( 484, 584), s!( 518, 586), s!( 524, 580), - s!( 468, 589), s!( 455, 605), s!( 469, 595), s!( 512, 583), s!( 494, 591), s!( 487, 583), s!( 470, 596), s!( 485, 577), - s!( 466, 581), s!( 497, 577), s!( 476, 586), s!( 488, 576), s!( 514, 578), s!( 476, 580), s!( 516, 566), s!( 464, 577), - s!( 444, 577), s!( 452, 588), s!( 460, 583), s!( 465, 578), s!( 474, 573), s!( 473, 569), s!( 457, 581), s!( 458, 577), - s!( 439, 574), s!( 447, 583), s!( 456, 580), s!( 463, 573), s!( 479, 573), s!( 435, 580), s!( 454, 573), s!( 436, 566), - s!( 439, 559), s!( 450, 563), s!( 449, 569), s!( 447, 567), s!( 459, 573), s!( 445, 553), s!( 464, 552), s!( 434, 538), - s!( 438, 569), s!( 454, 549), s!( 463, 556), s!( 457, 549), s!( 444, 577), s!( 431, 557), s!( 450, 554), s!( 429, 548), - s!( 465, 549), s!( 466, 553), s!( 458, 557), s!( 459, 549), s!( 440, 558), s!( 430, 558), s!( 457, 545), s!( 458, 532), - ], - [ - s!( 527, 565), s!( 516, 581), s!( 522, 578), s!( 514, 588), s!( 514, 578), s!( 491, 582), s!( 520, 579), s!( 529, 577), - s!( 512, 573), s!( 510, 590), s!( 514, 578), s!( 508, 591), s!( 503, 579), s!( 502, 584), s!( 504, 587), s!( 529, 567), - s!( 471, 577), s!( 513, 577), s!( 492, 576), s!( 513, 574), s!( 512, 571), s!( 506, 581), s!( 542, 558), s!( 469, 576), - s!( 472, 573), s!( 473, 583), s!( 496, 573), s!( 476, 594), s!( 457, 579), s!( 486, 571), s!( 472, 579), s!( 468, 570), - s!( 451, 575), s!( 456, 579), s!( 449, 587), s!( 457, 587), s!( 462, 573), s!( 462, 579), s!( 457, 576), s!( 454, 562), + s!( 472, 560), s!( 491, 563), s!( 462, 579), s!( 515, 555), s!( 504, 556), s!( 496, 570), s!( 496, 583), s!( 497, 575), + s!( 464, 579), s!( 480, 581), s!( 479, 580), s!( 492, 570), s!( 520, 562), s!( 520, 552), s!( 518, 569), s!( 505, 560), + s!( 448, 576), s!( 474, 569), s!( 466, 573), s!( 498, 554), s!( 502, 549), s!( 522, 550), s!( 564, 541), s!( 495, 549), + s!( 433, 569), s!( 441, 576), s!( 438, 582), s!( 473, 552), s!( 474, 555), s!( 483, 562), s!( 507, 557), s!( 479, 548), + s!( 417, 576), s!( 422, 575), s!( 436, 575), s!( 455, 563), s!( 448, 565), s!( 458, 568), s!( 501, 544), s!( 459, 545), + s!( 408, 556), s!( 432, 557), s!( 432, 555), s!( 444, 551), s!( 451, 557), s!( 460, 549), s!( 476, 539), s!( 456, 542), + s!( 421, 551), s!( 434, 548), s!( 432, 552), s!( 444, 544), s!( 451, 545), s!( 461, 544), s!( 491, 523), s!( 452, 541), + s!( 443, 543), s!( 446, 546), s!( 439, 549), s!( 444, 551), s!( 451, 546), s!( 464, 535), s!( 469, 548), s!( 422, 526), + ], + [ + s!( 467, 588), s!( 476, 587), s!( 470, 592), s!( 492, 581), s!( 523, 571), s!( 485, 592), s!( 491, 603), s!( 509, 583), + s!( 464, 603), s!( 474, 607), s!( 473, 602), s!( 495, 593), s!( 498, 592), s!( 490, 587), s!( 528, 582), s!( 509, 579), + s!( 470, 589), s!( 475, 591), s!( 477, 592), s!( 496, 575), s!( 488, 574), s!( 508, 569), s!( 514, 574), s!( 500, 564), + s!( 442, 584), s!( 462, 583), s!( 453, 590), s!( 475, 572), s!( 458, 581), s!( 471, 581), s!( 454, 591), s!( 462, 569), + s!( 436, 575), s!( 437, 585), s!( 450, 582), s!( 459, 578), s!( 448, 576), s!( 448, 579), s!( 464, 569), s!( 453, 559), + s!( 432, 564), s!( 447, 559), s!( 440, 569), s!( 451, 563), s!( 446, 568), s!( 451, 564), s!( 462, 559), s!( 436, 546), + s!( 440, 557), s!( 442, 556), s!( 441, 569), s!( 454, 557), s!( 443, 565), s!( 454, 555), s!( 484, 547), s!( 376, 571), + s!( 456, 556), s!( 461, 557), s!( 456, 557), s!( 461, 555), s!( 461, 556), s!( 463, 552), s!( 462, 541), s!( 374, 576), + ], + [ + s!( 496, 573), s!( 481, 582), s!( 465, 587), s!( 499, 574), s!( 485, 582), s!( 463, 596), s!( 493, 587), s!( 509, 585), + s!( 491, 587), s!( 498, 591), s!( 496, 590), s!( 529, 575), s!( 501, 583), s!( 510, 579), s!( 524, 577), s!( 506, 579), + s!( 460, 588), s!( 480, 583), s!( 475, 588), s!( 496, 577), s!( 495, 575), s!( 488, 577), s!( 547, 560), s!( 491, 563), + s!( 442, 580), s!( 462, 581), s!( 461, 581), s!( 492, 566), s!( 476, 574), s!( 484, 567), s!( 488, 564), s!( 464, 572), + s!( 427, 575), s!( 423, 584), s!( 445, 584), s!( 475, 573), s!( 466, 569), s!( 459, 576), s!( 472, 557), s!( 461, 559), + s!( 412, 568), s!( 430, 568), s!( 438, 575), s!( 454, 562), s!( 448, 561), s!( 458, 555), s!( 482, 535), s!( 456, 551), + s!( 431, 561), s!( 446, 550), s!( 449, 558), s!( 474, 542), s!( 462, 547), s!( 476, 553), s!( 461, 543), s!( 426, 576), + s!( 438, 555), s!( 447, 554), s!( 440, 563), s!( 452, 559), s!( 457, 550), s!( 439, 557), s!( 455, 546), s!( 433, 549), + ], + [ + s!( 505, 572), s!( 487, 585), s!( 493, 583), s!( 507, 582), s!( 506, 590), s!( 484, 584), s!( 518, 586), s!( 523, 580), + s!( 468, 589), s!( 454, 605), s!( 468, 595), s!( 512, 583), s!( 494, 591), s!( 487, 583), s!( 469, 597), s!( 484, 578), + s!( 466, 581), s!( 496, 577), s!( 475, 586), s!( 488, 576), s!( 514, 578), s!( 476, 580), s!( 516, 566), s!( 463, 577), + s!( 444, 577), s!( 452, 588), s!( 459, 583), s!( 465, 578), s!( 474, 573), s!( 473, 569), s!( 457, 581), s!( 457, 577), + s!( 440, 574), s!( 447, 583), s!( 456, 580), s!( 463, 573), s!( 478, 572), s!( 435, 580), s!( 454, 574), s!( 436, 566), + s!( 439, 559), s!( 450, 563), s!( 448, 569), s!( 447, 567), s!( 459, 573), s!( 445, 553), s!( 463, 552), s!( 434, 538), + s!( 438, 569), s!( 454, 549), s!( 462, 556), s!( 457, 549), s!( 444, 576), s!( 431, 557), s!( 450, 554), s!( 429, 548), + s!( 464, 549), s!( 465, 553), s!( 457, 557), s!( 458, 549), s!( 440, 558), s!( 429, 558), s!( 456, 545), s!( 458, 532), + ], + [ + s!( 527, 565), s!( 516, 581), s!( 522, 578), s!( 514, 587), s!( 514, 578), s!( 491, 582), s!( 520, 579), s!( 529, 577), + s!( 512, 574), s!( 510, 590), s!( 514, 578), s!( 508, 591), s!( 503, 579), s!( 502, 584), s!( 504, 587), s!( 529, 567), + s!( 471, 578), s!( 513, 577), s!( 492, 576), s!( 513, 574), s!( 512, 571), s!( 506, 580), s!( 541, 558), s!( 469, 576), + s!( 472, 574), s!( 473, 583), s!( 496, 573), s!( 476, 594), s!( 457, 579), s!( 486, 571), s!( 472, 579), s!( 468, 570), + s!( 451, 575), s!( 456, 579), s!( 449, 587), s!( 457, 587), s!( 462, 573), s!( 462, 579), s!( 457, 576), s!( 454, 563), s!( 432, 569), s!( 465, 558), s!( 452, 565), s!( 456, 568), s!( 473, 547), s!( 462, 561), s!( 477, 554), s!( 438, 560), - s!( 425, 552), s!( 440, 553), s!( 454, 557), s!( 436, 569), s!( 464, 552), s!( 470, 551), s!( 455, 561), s!( 440, 553), - s!( 429, 566), s!( 444, 574), s!( 439, 571), s!( 432, 567), s!( 458, 549), s!( 446, 555), s!( 451, 555), s!( 431, 567), + s!( 425, 552), s!( 440, 553), s!( 454, 557), s!( 436, 569), s!( 464, 552), s!( 469, 551), s!( 455, 561), s!( 440, 553), + s!( 429, 566), s!( 444, 573), s!( 439, 570), s!( 433, 567), s!( 458, 549), s!( 446, 554), s!( 451, 555), s!( 431, 566), ], [ - s!( 530, 552), s!( 511, 570), s!( 505, 588), s!( 513, 571), s!( 506, 569), s!( 488, 579), s!( 513, 569), s!( 514, 560), - s!( 496, 569), s!( 513, 572), s!( 487, 587), s!( 511, 571), s!( 507, 574), s!( 500, 572), s!( 478, 583), s!( 492, 574), - s!( 472, 569), s!( 510, 550), s!( 464, 578), s!( 479, 573), s!( 499, 560), s!( 501, 562), s!( 515, 559), s!( 483, 561), - s!( 458, 563), s!( 465, 564), s!( 459, 575), s!( 454, 579), s!( 474, 572), s!( 474, 561), s!( 482, 560), s!( 465, 556), - s!( 421, 564), s!( 445, 564), s!( 467, 571), s!( 451, 569), s!( 435, 580), s!( 450, 578), s!( 470, 560), s!( 451, 550), - s!( 438, 550), s!( 429, 564), s!( 479, 551), s!( 460, 551), s!( 445, 559), s!( 461, 537), s!( 479, 533), s!( 447, 531), - s!( 426, 557), s!( 454, 549), s!( 443, 569), s!( 450, 556), s!( 459, 552), s!( 441, 551), s!( 469, 539), s!( 436, 534), - s!( 348, 592), s!( 387, 587), s!( 431, 571), s!( 470, 542), s!( 464, 551), s!( 461, 539), s!( 473, 537), s!( 457, 547), + s!( 530, 552), s!( 511, 570), s!( 505, 587), s!( 513, 570), s!( 506, 569), s!( 488, 579), s!( 513, 569), s!( 514, 560), + s!( 496, 569), s!( 513, 572), s!( 487, 587), s!( 511, 571), s!( 507, 574), s!( 500, 572), s!( 478, 583), s!( 491, 574), + s!( 472, 569), s!( 510, 551), s!( 464, 578), s!( 479, 573), s!( 499, 560), s!( 501, 562), s!( 515, 559), s!( 482, 561), + s!( 458, 563), s!( 466, 565), s!( 459, 576), s!( 454, 579), s!( 474, 572), s!( 474, 561), s!( 482, 560), s!( 465, 556), + s!( 421, 564), s!( 445, 564), s!( 467, 571), s!( 451, 569), s!( 435, 580), s!( 450, 578), s!( 470, 560), s!( 451, 551), + s!( 438, 550), s!( 429, 564), s!( 479, 551), s!( 460, 551), s!( 445, 558), s!( 461, 537), s!( 478, 533), s!( 447, 531), + s!( 426, 557), s!( 454, 549), s!( 443, 569), s!( 449, 555), s!( 459, 552), s!( 441, 551), s!( 468, 539), s!( 436, 534), + s!( 349, 592), s!( 387, 587), s!( 431, 571), s!( 470, 542), s!( 463, 550), s!( 461, 538), s!( 473, 536), s!( 457, 547), ], [ s!( 529, 518), s!( 484, 585), s!( 506, 570), s!( 514, 557), s!( 511, 558), s!( 487, 576), s!( 501, 569), s!( 502, 565), - s!( 488, 557), s!( 479, 577), s!( 504, 574), s!( 491, 578), s!( 503, 564), s!( 514, 556), s!( 488, 563), s!( 480, 577), - s!( 477, 542), s!( 495, 571), s!( 486, 567), s!( 502, 551), s!( 515, 544), s!( 494, 562), s!( 512, 553), s!( 505, 551), + s!( 488, 557), s!( 479, 577), s!( 504, 574), s!( 491, 578), s!( 503, 564), s!( 513, 556), s!( 488, 563), s!( 480, 577), + s!( 477, 542), s!( 496, 571), s!( 486, 567), s!( 502, 551), s!( 515, 544), s!( 494, 562), s!( 512, 553), s!( 505, 551), s!( 444, 563), s!( 455, 576), s!( 491, 559), s!( 476, 566), s!( 484, 564), s!( 483, 553), s!( 482, 552), s!( 483, 546), s!( 442, 546), s!( 455, 578), s!( 459, 571), s!( 452, 565), s!( 452, 567), s!( 445, 556), s!( 457, 552), s!( 440, 558), - s!( 415, 557), s!( 448, 564), s!( 476, 557), s!( 462, 548), s!( 460, 548), s!( 469, 535), s!( 460, 537), s!( 445, 528), - s!( 393, 543), s!( 463, 571), s!( 445, 561), s!( 445, 554), s!( 463, 539), s!( 466, 528), s!( 449, 534), s!( 446, 528), - s!( 343, 583), s!( 456, 547), s!( 468, 549), s!( 470, 545), s!( 462, 543), s!( 457, 535), s!( 476, 531), s!( 462, 544), + s!( 415, 557), s!( 448, 564), s!( 476, 557), s!( 462, 547), s!( 460, 548), s!( 469, 535), s!( 460, 537), s!( 445, 528), + s!( 393, 543), s!( 463, 571), s!( 445, 561), s!( 445, 553), s!( 463, 539), s!( 466, 529), s!( 449, 534), s!( 446, 528), + s!( 343, 583), s!( 456, 547), s!( 467, 548), s!( 469, 544), s!( 461, 543), s!( 457, 535), s!( 476, 531), s!( 461, 543), ], [ s!( 497, 570), s!( 493, 570), s!( 504, 574), s!( 516, 551), s!( 509, 562), s!( 475, 565), s!( 509, 573), s!( 504, 569), s!( 476, 559), s!( 492, 564), s!( 503, 576), s!( 508, 563), s!( 523, 549), s!( 502, 561), s!( 504, 565), s!( 486, 576), - s!( 455, 565), s!( 484, 585), s!( 507, 562), s!( 501, 552), s!( 505, 565), s!( 494, 543), s!( 532, 539), s!( 496, 559), - s!( 432, 569), s!( 476, 571), s!( 477, 582), s!( 478, 571), s!( 478, 573), s!( 483, 544), s!( 479, 552), s!( 457, 557), + s!( 455, 565), s!( 484, 585), s!( 507, 562), s!( 501, 552), s!( 505, 565), s!( 494, 543), s!( 531, 539), s!( 496, 559), + s!( 432, 569), s!( 476, 571), s!( 477, 582), s!( 478, 571), s!( 478, 573), s!( 483, 544), s!( 478, 552), s!( 456, 557), s!( 436, 568), s!( 475, 579), s!( 459, 572), s!( 482, 550), s!( 467, 556), s!( 447, 560), s!( 467, 561), s!( 446, 564), - s!( 436, 571), s!( 478, 556), s!( 478, 569), s!( 469, 549), s!( 455, 547), s!( 468, 533), s!( 466, 546), s!( 455, 546), + s!( 436, 570), s!( 478, 556), s!( 478, 569), s!( 469, 549), s!( 455, 547), s!( 468, 533), s!( 466, 546), s!( 455, 546), s!( 429, 538), s!( 481, 570), s!( 475, 560), s!( 480, 545), s!( 456, 543), s!( 469, 517), s!( 475, 527), s!( 445, 549), - s!( 413, 529), s!( 475, 550), s!( 480, 539), s!( 464, 550), s!( 460, 543), s!( 462, 513), s!( 458, 546), s!( 449, 539), + s!( 413, 529), s!( 475, 550), s!( 480, 539), s!( 465, 549), s!( 460, 543), s!( 462, 513), s!( 458, 546), s!( 449, 539), ], [ s!( 493, 566), s!( 505, 557), s!( 479, 561), s!( 519, 549), s!( 511, 567), s!( 504, 588), s!( 503, 556), s!( 511, 577), @@ -99,9 +99,9 @@ pub const ROOK_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( 429, 544), s!( 445, 541), s!( 444, 542), s!( 449, 545), s!( 450, 544), s!( 464, 530), s!( 470, 547), s!( 421, 524), ], [ - s!( 505, 558), s!( 499, 557), s!( 494, 562), s!( 508, 549), s!( 526, 541), s!( 499, 575), s!( 499, 592), s!( 509, 545), - s!( 491, 582), s!( 498, 576), s!( 502, 562), s!( 518, 556), s!( 523, 554), s!( 503, 552), s!( 529, 565), s!( 513, 539), - s!( 482, 576), s!( 493, 564), s!( 498, 566), s!( 518, 553), s!( 527, 558), s!( 537, 557), s!( 532, 559), s!( 512, 549), + s!( 505, 558), s!( 499, 557), s!( 494, 562), s!( 508, 549), s!( 526, 541), s!( 499, 575), s!( 499, 591), s!( 509, 545), + s!( 491, 582), s!( 498, 576), s!( 502, 562), s!( 518, 556), s!( 523, 554), s!( 503, 552), s!( 529, 564), s!( 513, 539), + s!( 482, 576), s!( 493, 564), s!( 498, 566), s!( 518, 553), s!( 527, 558), s!( 537, 556), s!( 532, 559), s!( 512, 549), s!( 459, 568), s!( 482, 556), s!( 475, 558), s!( 486, 550), s!( 491, 559), s!( 497, 576), s!( 488, 571), s!( 491, 538), s!( 449, 557), s!( 447, 563), s!( 456, 559), s!( 468, 556), s!( 465, 557), s!( 449, 555), s!( 490, 549), s!( 455, 536), s!( 439, 550), s!( 452, 536), s!( 455, 546), s!( 471, 541), s!( 464, 557), s!( 467, 544), s!( 484, 544), s!( 449, 539), @@ -111,8 +111,8 @@ pub const ROOK_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = [ s!( 501, 557), s!( 491, 560), s!( 482, 565), s!( 510, 548), s!( 494, 544), s!( 470, 574), s!( 499, 547), s!( 503, 546), s!( 498, 571), s!( 501, 564), s!( 504, 536), s!( 545, 539), s!( 511, 528), s!( 511, 551), s!( 512, 546), s!( 504, 539), - s!( 459, 567), s!( 479, 558), s!( 480, 548), s!( 499, 532), s!( 496, 545), s!( 497, 556), s!( 543, 527), s!( 492, 547), - s!( 446, 563), s!( 474, 551), s!( 470, 556), s!( 495, 535), s!( 470, 545), s!( 487, 552), s!( 494, 549), s!( 469, 549), + s!( 459, 567), s!( 479, 558), s!( 480, 548), s!( 499, 532), s!( 496, 545), s!( 497, 555), s!( 543, 527), s!( 492, 547), + s!( 446, 563), s!( 474, 551), s!( 470, 555), s!( 495, 535), s!( 470, 545), s!( 487, 551), s!( 494, 549), s!( 469, 549), s!( 425, 550), s!( 432, 563), s!( 458, 535), s!( 478, 525), s!( 469, 526), s!( 465, 550), s!( 483, 537), s!( 469, 541), s!( 417, 552), s!( 448, 529), s!( 438, 518), s!( 475, 517), s!( 466, 528), s!( 466, 530), s!( 499, 511), s!( 467, 527), s!( 427, 537), s!( 454, 538), s!( 452, 523), s!( 483, 532), s!( 483, 517), s!( 474, 544), s!( 482, 533), s!( 432, 544), @@ -121,8 +121,8 @@ pub const ROOK_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = [ s!( 516, 557), s!( 494, 550), s!( 503, 550), s!( 512, 549), s!( 514, 581), s!( 477, 540), s!( 513, 541), s!( 527, 557), s!( 492, 560), s!( 477, 566), s!( 502, 561), s!( 509, 543), s!( 506, 565), s!( 483, 544), s!( 478, 560), s!( 504, 554), - s!( 472, 568), s!( 504, 549), s!( 472, 554), s!( 489, 550), s!( 511, 563), s!( 484, 554), s!( 527, 553), s!( 473, 559), - s!( 456, 562), s!( 455, 557), s!( 469, 558), s!( 468, 553), s!( 483, 563), s!( 492, 552), s!( 454, 568), s!( 479, 569), + s!( 472, 568), s!( 504, 549), s!( 472, 554), s!( 489, 550), s!( 511, 562), s!( 484, 554), s!( 527, 552), s!( 473, 559), + s!( 456, 562), s!( 455, 557), s!( 469, 558), s!( 468, 553), s!( 483, 563), s!( 492, 551), s!( 454, 568), s!( 479, 569), s!( 467, 547), s!( 439, 540), s!( 464, 539), s!( 455, 539), s!( 484, 553), s!( 438, 559), s!( 485, 547), s!( 462, 550), s!( 442, 547), s!( 446, 519), s!( 465, 521), s!( 447, 541), s!( 468, 538), s!( 450, 543), s!( 482, 534), s!( 458, 529), s!( 437, 547), s!( 464, 527), s!( 471, 527), s!( 460, 539), s!( 447, 531), s!( 429, 542), s!( 448, 547), s!( 448, 537), @@ -130,8 +130,8 @@ pub const ROOK_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = ], [ s!( 517, 531), s!( 505, 546), s!( 505, 540), s!( 518, 577), s!( 511, 558), s!( 486, 552), s!( 518, 547), s!( 520, 561), - s!( 506, 556), s!( 507, 556), s!( 509, 550), s!( 511, 569), s!( 515, 552), s!( 503, 553), s!( 506, 558), s!( 531, 553), - s!( 465, 560), s!( 502, 550), s!( 489, 547), s!( 515, 569), s!( 504, 554), s!( 502, 564), s!( 558, 548), s!( 478, 567), + s!( 506, 556), s!( 507, 556), s!( 509, 550), s!( 511, 568), s!( 515, 552), s!( 503, 553), s!( 506, 558), s!( 531, 553), + s!( 465, 560), s!( 502, 550), s!( 489, 547), s!( 515, 568), s!( 504, 554), s!( 502, 564), s!( 558, 548), s!( 478, 567), s!( 475, 562), s!( 472, 575), s!( 491, 557), s!( 481, 579), s!( 468, 570), s!( 492, 567), s!( 470, 561), s!( 466, 555), s!( 449, 568), s!( 449, 549), s!( 450, 555), s!( 462, 565), s!( 459, 558), s!( 455, 561), s!( 469, 556), s!( 460, 549), s!( 444, 539), s!( 469, 539), s!( 459, 539), s!( 455, 546), s!( 477, 534), s!( 466, 544), s!( 481, 536), s!( 437, 544), @@ -140,8 +140,8 @@ pub const ROOK_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = ], [ s!( 508, 493), s!( 501, 529), s!( 502, 575), s!( 513, 552), s!( 515, 566), s!( 486, 560), s!( 510, 538), s!( 516, 556), - s!( 487, 546), s!( 492, 542), s!( 481, 559), s!( 509, 557), s!( 511, 560), s!( 499, 554), s!( 484, 566), s!( 512, 552), - s!( 466, 556), s!( 501, 548), s!( 474, 582), s!( 487, 575), s!( 507, 559), s!( 504, 558), s!( 528, 533), s!( 507, 543), + s!( 487, 546), s!( 492, 541), s!( 481, 558), s!( 509, 557), s!( 511, 560), s!( 499, 554), s!( 484, 566), s!( 512, 552), + s!( 466, 555), s!( 501, 548), s!( 474, 582), s!( 487, 575), s!( 507, 559), s!( 504, 558), s!( 528, 533), s!( 507, 543), s!( 463, 563), s!( 468, 580), s!( 480, 600), s!( 460, 581), s!( 467, 559), s!( 481, 540), s!( 496, 555), s!( 470, 555), s!( 432, 554), s!( 442, 551), s!( 469, 570), s!( 447, 547), s!( 446, 564), s!( 437, 556), s!( 464, 558), s!( 463, 549), s!( 439, 539), s!( 435, 557), s!( 483, 548), s!( 453, 541), s!( 446, 549), s!( 459, 537), s!( 484, 523), s!( 451, 527), @@ -150,11 +150,11 @@ pub const ROOK_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = ], [ s!( 503, 469), s!( 496, 585), s!( 494, 544), s!( 515, 548), s!( 507, 544), s!( 482, 541), s!( 509, 544), s!( 507, 556), - s!( 484, 539), s!( 477, 568), s!( 495, 540), s!( 494, 556), s!( 518, 562), s!( 521, 544), s!( 497, 557), s!( 488, 559), - s!( 479, 555), s!( 487, 579), s!( 495, 565), s!( 504, 558), s!( 523, 543), s!( 496, 557), s!( 528, 540), s!( 505, 553), + s!( 484, 539), s!( 477, 567), s!( 495, 539), s!( 494, 556), s!( 518, 561), s!( 521, 544), s!( 497, 557), s!( 488, 559), + s!( 479, 554), s!( 487, 579), s!( 495, 564), s!( 504, 557), s!( 523, 543), s!( 496, 557), s!( 528, 540), s!( 505, 553), s!( 447, 560), s!( 467, 597), s!( 490, 567), s!( 486, 570), s!( 488, 561), s!( 494, 547), s!( 496, 537), s!( 481, 550), s!( 446, 564), s!( 456, 571), s!( 462, 557), s!( 449, 566), s!( 456, 552), s!( 455, 558), s!( 467, 538), s!( 443, 570), - s!( 423, 548), s!( 449, 554), s!( 461, 550), s!( 457, 543), s!( 464, 541), s!( 470, 537), s!( 460, 527), s!( 445, 536), + s!( 423, 548), s!( 449, 554), s!( 461, 549), s!( 457, 543), s!( 464, 541), s!( 470, 537), s!( 460, 527), s!( 445, 536), s!( 419, 546), s!( 464, 562), s!( 449, 548), s!( 447, 552), s!( 470, 538), s!( 483, 525), s!( 462, 534), s!( 447, 540), s!( 364, 562), s!( 463, 555), s!( 468, 524), s!( 474, 548), s!( 459, 526), s!( 459, 534), s!( 478, 534), s!( 454, 556), ], @@ -163,7 +163,7 @@ pub const ROOK_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( 483, 569), s!( 501, 573), s!( 510, 563), s!( 503, 556), s!( 521, 552), s!( 512, 548), s!( 501, 558), s!( 492, 557), s!( 459, 580), s!( 483, 576), s!( 502, 565), s!( 508, 568), s!( 504, 553), s!( 499, 535), s!( 547, 536), s!( 498, 556), s!( 443, 573), s!( 474, 576), s!( 486, 594), s!( 493, 573), s!( 477, 568), s!( 486, 542), s!( 503, 567), s!( 470, 562), - s!( 436, 566), s!( 467, 568), s!( 468, 574), s!( 484, 561), s!( 470, 563), s!( 455, 568), s!( 472, 560), s!( 448, 567), + s!( 436, 566), s!( 467, 568), s!( 468, 573), s!( 484, 561), s!( 470, 563), s!( 455, 568), s!( 472, 560), s!( 448, 567), s!( 436, 565), s!( 471, 557), s!( 474, 551), s!( 465, 548), s!( 455, 542), s!( 474, 533), s!( 466, 543), s!( 449, 544), s!( 432, 539), s!( 469, 549), s!( 475, 547), s!( 471, 544), s!( 457, 539), s!( 470, 518), s!( 471, 529), s!( 431, 550), s!( 413, 525), s!( 476, 543), s!( 480, 531), s!( 453, 545), s!( 463, 530), s!( 471, 516), s!( 465, 543), s!( 436, 517), @@ -171,88 +171,88 @@ pub const ROOK_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = ], [ [ - s!( -5, -28), s!( -39, 1), s!( -51, 6), s!( -38, 12), s!( -8, -0), s!( 10, 2), s!( -6, 10), s!( -4, -8), - s!( -16, 4), s!( -12, -0), s!( -2, -4), s!( 3, -3), s!( 21, -11), s!( 45, -17), s!( 62, -9), s!( 2, 2), - s!( -17, 1), s!( -29, -4), s!( -18, -6), s!( -9, -8), s!( 16, -15), s!( 48, -13), s!( 7, -2), s!( -0, -9), - s!( -16, 7), s!( -26, -1), s!( 1, -11), s!( -7, 3), s!( 31, -17), s!( 3, -11), s!( 20, -7), s!( 22, -32), - s!( -7, 5), s!( -23, 5), s!( -23, 8), s!( -14, 4), s!( -3, -5), s!( 10, -10), s!( 1, -0), s!( 21, -32), - s!( -25, 10), s!( -21, 13), s!( -8, 10), s!( -18, 20), s!( -0, 3), s!( 9, -1), s!( -1, 11), s!( 19, -12), - s!( -19, 16), s!( -17, 16), s!( -11, 14), s!( -17, 13), s!( -8, 17), s!( -4, 7), s!( 6, 4), s!( 18, -15), - s!( -17, 2), s!( -22, 8), s!( -16, 7), s!( -18, 15), s!( -13, 11), s!( -6, 6), s!( -2, 6), s!( -6, -0), - ], - [ - s!( 34, -3), s!( 28, 11), s!( 23, 14), s!( 22, 9), s!( 28, -0), s!( -12, 12), s!( 1, 3), s!( -13, 8), - s!( -27, 28), s!( -36, 30), s!( -21, 24), s!( -30, 28), s!( -32, 22), s!( -20, 23), s!( -1, -3), s!( -20, 17), - s!( -30, 22), s!( -21, 14), s!( -27, 22), s!( -31, 19), s!( 6, 6), s!( -11, 12), s!( 2, -3), s!( -8, -9), - s!( -13, 25), s!( -29, 22), s!( -13, 21), s!( -19, 21), s!( -16, 14), s!( -24, 14), s!( 4, -27), s!( -13, -4), - s!( -12, 22), s!( -24, 20), s!( -21, 20), s!( -23, 18), s!( -10, 8), s!( -13, 5), s!( -5, -1), s!( -14, 0), - s!( -8, 24), s!( -19, 25), s!( -13, 20), s!( -19, 20), s!( -14, 17), s!( -6, 6), s!( 7, -8), s!( -5, 16), - s!( -13, 29), s!( -12, 24), s!( -17, 28), s!( -17, 32), s!( -11, 20), s!( -14, 17), s!( 0, -3), s!( -11, 12), - s!( -16, 25), s!( -20, 20), s!( -17, 26), s!( -14, 23), s!( -10, 14), s!( -7, 13), s!( -7, 12), s!( -12, 4), - ], - [ - s!( 10, 9), s!( -10, 13), s!( -8, 10), s!( 6, 4), s!( -38, 19), s!( 5, 5), s!( -14, 7), s!( 20, -3), - s!( 11, 5), s!( 25, -5), s!( 13, -3), s!( 31, -7), s!( -35, 6), s!( 5, 6), s!( -3, 8), s!( 38, -5), - s!( 18, 0), s!( -10, 5), s!( 9, -4), s!( 1, -3), s!( -31, 14), s!( 10, -5), s!( 6, -6), s!( 29, -4), - s!( -17, 15), s!( -20, 8), s!( -6, 5), s!( 3, 0), s!( -35, 13), s!( -13, -10), s!( -22, 3), s!( 0, -4), - s!( -21, 5), s!( -18, -1), s!( -15, 1), s!( -21, -2), s!( -32, 5), s!( 22, -24), s!( -11, -1), s!( 12, -10), - s!( -10, 5), s!( -21, -2), s!( -16, -4), s!( -11, 3), s!( -17, 2), s!( 4, -16), s!( -11, -2), s!( 7, 9), + s!( -5, -27), s!( -39, 2), s!( -50, 7), s!( -38, 12), s!( -8, -0), s!( 10, 2), s!( -6, 9), s!( -4, -8), + s!( -15, 5), s!( -12, 1), s!( -1, -3), s!( 3, -2), s!( 22, -10), s!( 45, -16), s!( 62, -9), s!( 2, 2), + s!( -17, 1), s!( -29, -3), s!( -18, -6), s!( -9, -7), s!( 16, -15), s!( 48, -13), s!( 6, -2), s!( 0, -9), + s!( -16, 7), s!( -26, -0), s!( 1, -11), s!( -7, 3), s!( 30, -18), s!( 3, -11), s!( 19, -7), s!( 22, -32), + s!( -7, 5), s!( -23, 5), s!( -23, 8), s!( -14, 3), s!( -3, -5), s!( 10, -10), s!( 1, -0), s!( 22, -32), + s!( -25, 10), s!( -21, 13), s!( -8, 9), s!( -18, 19), s!( -1, 2), s!( 8, -2), s!( -2, 10), s!( 19, -12), + s!( -19, 16), s!( -17, 16), s!( -11, 13), s!( -17, 13), s!( -9, 16), s!( -5, 7), s!( 5, 4), s!( 18, -15), + s!( -18, 1), s!( -23, 7), s!( -17, 6), s!( -18, 14), s!( -14, 10), s!( -6, 5), s!( -3, 5), s!( -7, -1), + ], + [ + s!( 34, -2), s!( 28, 12), s!( 23, 14), s!( 22, 9), s!( 28, -0), s!( -12, 12), s!( 1, 3), s!( -13, 8), + s!( -27, 28), s!( -35, 30), s!( -21, 24), s!( -30, 28), s!( -32, 23), s!( -20, 23), s!( -1, -3), s!( -21, 17), + s!( -30, 23), s!( -21, 15), s!( -27, 22), s!( -31, 20), s!( 5, 6), s!( -12, 12), s!( 2, -3), s!( -8, -9), + s!( -13, 25), s!( -29, 23), s!( -13, 21), s!( -20, 21), s!( -16, 14), s!( -23, 14), s!( 5, -26), s!( -12, -4), + s!( -12, 22), s!( -23, 20), s!( -21, 20), s!( -22, 18), s!( -11, 7), s!( -13, 5), s!( -3, -1), s!( -14, 0), + s!( -8, 24), s!( -19, 25), s!( -13, 20), s!( -19, 20), s!( -15, 16), s!( -6, 6), s!( 6, -8), s!( -5, 16), + s!( -13, 29), s!( -13, 24), s!( -17, 28), s!( -17, 31), s!( -11, 19), s!( -14, 16), s!( -0, -3), s!( -11, 12), + s!( -16, 24), s!( -20, 20), s!( -18, 25), s!( -15, 22), s!( -10, 13), s!( -7, 13), s!( -7, 11), s!( -12, 4), + ], + [ + s!( 10, 9), s!( -10, 13), s!( -8, 9), s!( 5, 3), s!( -38, 19), s!( 5, 5), s!( -14, 7), s!( 19, -4), + s!( 11, 5), s!( 25, -5), s!( 14, -3), s!( 31, -8), s!( -35, 6), s!( 5, 6), s!( -3, 8), s!( 37, -6), + s!( 18, 0), s!( -10, 5), s!( 9, -4), s!( 1, -3), s!( -32, 14), s!( 10, -5), s!( 6, -6), s!( 28, -5), + s!( -18, 15), s!( -20, 8), s!( -6, 5), s!( 2, -0), s!( -35, 13), s!( -13, -10), s!( -22, 3), s!( -0, -4), + s!( -21, 6), s!( -18, -0), s!( -15, 1), s!( -21, -2), s!( -32, 5), s!( 22, -24), s!( -11, -1), s!( 12, -10), + s!( -10, 5), s!( -21, -2), s!( -16, -4), s!( -11, 2), s!( -17, 2), s!( 4, -16), s!( -11, -2), s!( 6, 8), s!( -20, 12), s!( -10, 3), s!( -22, 6), s!( -21, 9), s!( -21, 6), s!( -2, -6), s!( -30, 10), s!( 4, -0), - s!( -29, 21), s!( -22, 7), s!( -23, 13), s!( -16, 6), s!( -13, -2), s!( -4, 1), s!( -18, 7), s!( -17, 16), + s!( -28, 21), s!( -22, 7), s!( -23, 13), s!( -15, 6), s!( -12, -1), s!( -4, 1), s!( -17, 7), s!( -17, 16), ], [ - s!( 28, 24), s!( 3, 22), s!( 11, 4), s!( -24, 14), s!( 2, 14), s!( -1, 12), s!( -17, 9), s!( -3, 16), - s!( 27, 2), s!( 11, -2), s!( 20, -7), s!( -13, -3), s!( 2, 3), s!( -8, 1), s!( -33, 4), s!( -13, 13), - s!( 3, 11), s!( -21, 4), s!( -7, 2), s!( -34, 11), s!( 4, -7), s!( -16, 6), s!( -11, 10), s!( -35, 17), - s!( -21, 19), s!( -31, 9), s!( -8, 1), s!( -44, 15), s!( -28, -8), s!( -34, 13), s!( -36, 5), s!( -25, 14), - s!( -24, 9), s!( -12, 0), s!( -17, 5), s!( -24, -3), s!( -23, -7), s!( -47, 6), s!( -51, 1), s!( -40, 15), + s!( 28, 23), s!( 3, 21), s!( 11, 3), s!( -25, 13), s!( 2, 14), s!( -1, 11), s!( -17, 9), s!( -4, 16), + s!( 26, 2), s!( 10, -2), s!( 19, -7), s!( -13, -3), s!( 2, 3), s!( -9, 1), s!( -34, 4), s!( -14, 13), + s!( 2, 11), s!( -21, 5), s!( -7, 1), s!( -35, 11), s!( 4, -7), s!( -17, 6), s!( -12, 10), s!( -36, 17), + s!( -21, 19), s!( -31, 9), s!( -8, 1), s!( -44, 15), s!( -28, -7), s!( -34, 13), s!( -36, 5), s!( -25, 14), + s!( -23, 9), s!( -12, 0), s!( -17, 4), s!( -24, -3), s!( -22, -7), s!( -47, 6), s!( -51, 1), s!( -40, 15), s!( -30, 17), s!( -11, -7), s!( -25, 2), s!( -24, 4), s!( -14, -15), s!( -42, 8), s!( -36, 4), s!( -31, 18), - s!( -9, -9), s!( -11, -2), s!( -17, -8), s!( -9, -9), s!( -10, -17), s!( -26, 2), s!( -26, -6), s!( -31, 0), - s!( -31, 14), s!( -25, 8), s!( -16, 1), s!( -21, -1), s!( -10, 2), s!( -24, 4), s!( -31, 7), s!( -36, 19), + s!( -9, -9), s!( -11, -1), s!( -18, -8), s!( -10, -8), s!( -10, -17), s!( -27, 2), s!( -26, -6), s!( -31, 0), + s!( -31, 15), s!( -25, 8), s!( -16, 1), s!( -20, -1), s!( -10, 2), s!( -24, 4), s!( -31, 7), s!( -36, 19), ], [ - s!( -10, 28), s!( 6, 15), s!( -10, 11), s!( 5, 7), s!( -11, 20), s!( 11, 6), s!( 8, 17), s!( -0, 30), + s!( -10, 28), s!( 6, 15), s!( -10, 11), s!( 5, 7), s!( -11, 19), s!( 11, 5), s!( 8, 17), s!( -0, 29), s!( -3, 9), s!( 19, -6), s!( -5, -0), s!( 3, 5), s!( -4, 11), s!( 20, 5), s!( 37, 1), s!( 3, 14), - s!( 8, 4), s!( 5, -0), s!( -2, 12), s!( 4, -11), s!( -15, 15), s!( -10, 11), s!( -11, 9), s!( 22, 0), - s!( -17, 7), s!( -8, -7), s!( -20, 9), s!( 2, -7), s!( -18, 17), s!( -7, 8), s!( -33, 10), s!( -5, 19), - s!( 2, -4), s!( -0, -7), s!( -14, 4), s!( 17, -13), s!( -17, 5), s!( 5, -12), s!( -22, 1), s!( -7, 7), - s!( -2, 1), s!( -23, 2), s!( -4, 6), s!( 20, -21), s!( -18, -0), s!( -2, -4), s!( -12, -1), s!( -9, 0), - s!( 0, -12), s!( -8, -3), s!( -16, -5), s!( 0, -4), s!( -5, 2), s!( 4, -7), s!( 1, -11), s!( 11, 2), - s!( -28, 23), s!( -11, 1), s!( -9, 5), s!( 7, -3), s!( -10, 10), s!( -9, 12), s!( -16, 12), s!( -34, 31), - ], - [ - s!( 7, -3), s!( -2, 9), s!( 1, 7), s!( 1, -1), s!( 2, 4), s!( 11, 17), s!( 2, 6), s!( 14, 8), - s!( 19, -11), s!( 22, -12), s!( -1, -9), s!( -10, -3), s!( 18, -5), s!( -31, 22), s!( -11, 10), s!( -1, 9), - s!( 31, -23), s!( 28, -21), s!( 8, -8), s!( -11, 12), s!( -6, -9), s!( -16, 3), s!( -25, 5), s!( -10, 4), - s!( -1, -4), s!( 5, -12), s!( 7, -8), s!( -10, -5), s!( -11, 0), s!( -21, 15), s!( -23, 5), s!( -12, 9), - s!( -14, -8), s!( 9, -15), s!( 13, -41), s!( -11, -1), s!( -21, -3), s!( -18, 10), s!( -25, 0), s!( -19, 15), + s!( 8, 4), s!( 5, -0), s!( -2, 12), s!( 4, -11), s!( -16, 15), s!( -10, 11), s!( -11, 9), s!( 22, 0), + s!( -17, 7), s!( -8, -7), s!( -20, 9), s!( 2, -7), s!( -18, 16), s!( -7, 8), s!( -33, 11), s!( -5, 19), + s!( 2, -3), s!( -0, -7), s!( -14, 4), s!( 17, -13), s!( -17, 5), s!( 5, -12), s!( -22, 1), s!( -7, 7), + s!( -2, 1), s!( -23, 2), s!( -4, 5), s!( 20, -21), s!( -18, 0), s!( -2, -4), s!( -12, -1), s!( -9, 0), + s!( 0, -12), s!( -8, -3), s!( -16, -5), s!( 0, -4), s!( -6, 2), s!( 4, -7), s!( 1, -11), s!( 11, 2), + s!( -28, 23), s!( -11, 1), s!( -9, 5), s!( 7, -2), s!( -10, 10), s!( -10, 12), s!( -16, 12), s!( -34, 31), + ], + [ + s!( 7, -3), s!( -2, 9), s!( 1, 7), s!( 1, -1), s!( 2, 4), s!( 11, 16), s!( 2, 6), s!( 14, 7), + s!( 18, -11), s!( 22, -12), s!( -1, -9), s!( -10, -3), s!( 18, -6), s!( -31, 21), s!( -12, 10), s!( -2, 9), + s!( 31, -23), s!( 28, -22), s!( 8, -8), s!( -11, 11), s!( -6, -9), s!( -16, 3), s!( -25, 5), s!( -10, 4), + s!( -1, -4), s!( 5, -12), s!( 7, -8), s!( -10, -5), s!( -12, 0), s!( -21, 15), s!( -23, 6), s!( -13, 9), + s!( -14, -8), s!( 9, -15), s!( 13, -41), s!( -12, -1), s!( -21, -3), s!( -18, 10), s!( -25, 1), s!( -19, 15), s!( -2, -0), s!( 4, -12), s!( 16, -20), s!( -0, -1), s!( -33, 15), s!( -16, 14), s!( -31, 14), s!( -17, 17), - s!( -25, 6), s!( 7, -13), s!( 11, -24), s!( -3, -4), s!( -14, 9), s!( -12, 16), s!( -23, 15), s!( 4, 10), - s!( -19, 2), s!( -3, -6), s!( 10, -13), s!( -15, 5), s!( -14, 9), s!( -17, 15), s!( -27, 21), s!( -24, 21), + s!( -25, 6), s!( 7, -13), s!( 11, -24), s!( -4, -4), s!( -15, 9), s!( -13, 15), s!( -23, 15), s!( 3, 10), + s!( -19, 2), s!( -2, -6), s!( 10, -13), s!( -15, 5), s!( -14, 8), s!( -17, 14), s!( -27, 21), s!( -24, 21), ], [ - s!( -9, 19), s!( 0, 2), s!( 5, -10), s!( 7, -10), s!( 8, -14), s!( 11, -5), s!( 3, -14), s!( 15, -19), + s!( -9, 19), s!( 0, 2), s!( 5, -11), s!( 7, -10), s!( 8, -14), s!( 11, -5), s!( 3, -14), s!( 15, -19), s!( 8, -13), s!( -2, -8), s!( -26, -8), s!( 19, -18), s!( -7, 5), s!( -12, 0), s!( 2, -6), s!( -20, -1), s!( 3, -11), s!( 26, -3), s!( -5, -17), s!( 22, -10), s!( 2, -8), s!( -41, 1), s!( -28, 3), s!( -28, 6), - s!( 32, -36), s!( 27, -28), s!( 2, -9), s!( 12, -5), s!( -5, -1), s!( 4, 7), s!( -12, 1), s!( -5, 13), - s!( 8, -7), s!( 20, -27), s!( -0, -16), s!( 18, -3), s!( -0, 4), s!( 6, 1), s!( -14, -3), s!( -1, -7), + s!( 32, -36), s!( 28, -28), s!( 2, -9), s!( 11, -5), s!( -5, -1), s!( 3, 7), s!( -12, 1), s!( -6, 13), + s!( 8, -7), s!( 21, -27), s!( -0, -16), s!( 18, -4), s!( -0, 4), s!( 6, 1), s!( -14, -3), s!( -1, -7), s!( 3, -3), s!( 29, -26), s!( -5, 1), s!( 11, -13), s!( -4, 8), s!( -6, 11), s!( -8, 9), s!( -21, 9), - s!( -12, 10), s!( 14, -6), s!( -15, 5), s!( 14, -7), s!( -13, 13), s!( 4, 9), s!( -15, 12), s!( -5, 22), - s!( -10, 5), s!( 9, -8), s!( -4, -6), s!( -9, 14), s!( -8, 15), s!( -12, 22), s!( -18, 20), s!( -11, 20), + s!( -12, 10), s!( 14, -6), s!( -15, 4), s!( 13, -7), s!( -13, 13), s!( 3, 9), s!( -15, 12), s!( -5, 22), + s!( -10, 5), s!( 9, -9), s!( -4, -7), s!( -10, 13), s!( -9, 15), s!( -12, 21), s!( -19, 19), s!( -11, 20), ], [ s!( 1, 5), s!( 9, 5), s!( 4, -3), s!( -0, -18), s!( -6, -13), s!( -15, -26), s!( -9, -20), s!( -11, -13), - s!( 0, -4), s!( 10, -11), s!( 1, -7), s!( -5, -7), s!( 7, -9), s!( 0, -2), s!( -10, 6), s!( -14, -5), + s!( 0, -4), s!( 10, -11), s!( 1, -7), s!( -5, -7), s!( 7, -9), s!( 1, -2), s!( -10, 6), s!( -14, -5), s!( -6, -5), s!( 9, -18), s!( 17, -14), s!( 3, -18), s!( -1, -13), s!( -9, -10), s!( -23, -6), s!( -14, 4), - s!( 1, -18), s!( 35, -31), s!( -15, -12), s!( 0, -5), s!( 16, -9), s!( 29, -4), s!( 2, 6), s!( -12, 3), + s!( 2, -18), s!( 35, -31), s!( -15, -12), s!( 0, -5), s!( 16, -9), s!( 29, -4), s!( 2, 6), s!( -12, 3), s!( 7, -15), s!( 14, -9), s!( 3, -6), s!( 6, -13), s!( -1, -4), s!( 1, 7), s!( -16, 4), s!( -1, -5), s!( 11, -27), s!( 14, -11), s!( 1, -7), s!( 8, 2), s!( 5, 6), s!( 6, 12), s!( 1, 6), s!( -4, -6), s!( 19, -8), s!( -20, 27), s!( -9, 1), s!( -11, 7), s!( -3, 18), s!( -3, 8), s!( -7, -7), s!( -14, -1), - s!( -11, 11), s!( 2, 13), s!( -3, -3), s!( -10, 11), s!( -17, 21), s!( -9, 19), s!( -6, 9), s!( -6, 12), + s!( -12, 11), s!( 2, 13), s!( -3, -3), s!( -11, 11), s!( -17, 21), s!( -9, 19), s!( -6, 9), s!( -6, 12), ], [ s!( -6, -25), s!( -20, -9), s!( -20, -8), s!( -13, -3), s!( -4, -2), s!( 12, 6), s!( -4, -8), s!( -1, -11), - s!( -5, -17), s!( -9, -9), s!( -0, -17), s!( 3, -17), s!( 9, -20), s!( 23, -23), s!( 25, -26), s!( -2, 3), + s!( -5, -17), s!( -9, -9), s!( -0, -17), s!( 3, -17), s!( 9, -21), s!( 23, -23), s!( 25, -26), s!( -2, 3), s!( -2, -21), s!( -12, -7), s!( -14, -9), s!( -3, -10), s!( 6, -13), s!( 22, -11), s!( 2, -1), s!( -2, -2), s!( -2, -1), s!( -4, -15), s!( -10, -8), s!( -0, -20), s!( 12, -16), s!( 10, 2), s!( 21, -5), s!( 15, -8), s!( -0, -10), s!( -1, 2), s!( -9, 2), s!( -14, 4), s!( 3, -2), s!( 15, 2), s!( 4, 10), s!( 15, -9), @@ -262,18 +262,18 @@ pub const ROOK_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = ], [ s!( 20, -33), s!( 19, -32), s!( 11, -34), s!( 13, -14), s!( 14, -14), s!( -4, -22), s!( -0, -5), s!( 2, -7), - s!( -27, -28), s!( -25, -26), s!( -18, -27), s!( -18, -25), s!( -14, -25), s!( -3, -17), s!( 2, -0), s!( 4, -19), - s!( -23, -23), s!( -3, -15), s!( -5, -18), s!( -2, -16), s!( 9, -21), s!( 9, -21), s!( 11, -1), s!( 2, -13), - s!( -12, -16), s!( -20, -18), s!( -12, -34), s!( -14, -30), s!( -6, -10), s!( -5, -0), s!( 10, -7), s!( 1, -14), + s!( -27, -28), s!( -25, -26), s!( -18, -27), s!( -18, -25), s!( -14, -25), s!( -3, -17), s!( 2, -1), s!( 4, -19), + s!( -23, -23), s!( -3, -16), s!( -5, -18), s!( -2, -16), s!( 9, -21), s!( 9, -21), s!( 11, -1), s!( 2, -13), + s!( -12, -16), s!( -20, -18), s!( -12, -34), s!( -14, -30), s!( -6, -11), s!( -5, -0), s!( 10, -7), s!( 1, -14), s!( -5, -8), s!( -12, 1), s!( -8, -15), s!( 6, -8), s!( -6, -3), s!( -6, 3), s!( 7, -1), s!( -4, -0), s!( 2, -5), s!( -9, -9), s!( -4, -4), s!( -3, -6), s!( 5, 10), s!( 8, 10), s!( 12, -9), s!( 5, 10), s!( -0, -1), s!( 3, -10), s!( 7, -6), s!( 2, 5), s!( -5, -5), s!( 6, 7), s!( 6, -12), s!( 1, 4), - s!( -0, -25), s!( -8, -12), s!( -3, -18), s!( 0, -14), s!( 9, -16), s!( 8, -7), s!( 12, 1), s!( 13, 3), + s!( -0, -25), s!( -8, -12), s!( -3, -18), s!( -0, -14), s!( 9, -16), s!( 8, -7), s!( 12, 1), s!( 13, 3), ], [ - s!( 2, -46), s!( -8, -33), s!( -5, -11), s!( 3, -13), s!( -11, -28), s!( 4, 3), s!( -1, -18), s!( 6, -16), + s!( 2, -46), s!( -8, -33), s!( -5, -11), s!( 3, -14), s!( -11, -28), s!( 4, 2), s!( -1, -18), s!( 6, -16), s!( -8, -38), s!( 9, -45), s!( -4, -49), s!( 3, -48), s!( -13, -42), s!( -4, -20), s!( -2, -43), s!( 8, -33), - s!( -8, -33), s!( -20, -34), s!( 3, -37), s!( -3, -30), s!( -17, -31), s!( -2, -15), s!( 2, -23), s!( 9, -26), + s!( -8, -33), s!( -20, -34), s!( 3, -37), s!( -3, -30), s!( -17, -31), s!( -2, -15), s!( 2, -23), s!( 9, -27), s!( -2, -34), s!( -7, -37), s!( -6, -33), s!( 2, -36), s!( -17, -24), s!( -7, -8), s!( 2, -24), s!( -5, -23), s!( -9, -23), s!( -6, -28), s!( -5, -29), s!( -5, -13), s!( -14, -2), s!( 6, -16), s!( -1, -7), s!( 10, -18), s!( -2, -9), s!( -9, -36), s!( -8, -32), s!( -8, -24), s!( -1, -5), s!( 1, -13), s!( -12, -5), s!( 5, -7), @@ -281,7 +281,7 @@ pub const ROOK_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( -8, -23), s!( -26, -18), s!( -13, -33), s!( -3, -25), s!( -8, -15), s!( 2, -11), s!( -8, -24), s!( -3, -9), ], [ - s!( 6, -17), s!( -2, -13), s!( 3, -15), s!( -11, -34), s!( -1, -5), s!( -2, -23), s!( -7, -23), s!( -3, -21), + s!( 6, -17), s!( -2, -13), s!( 3, -16), s!( -11, -34), s!( -1, -6), s!( -2, -23), s!( -7, -23), s!( -3, -21), s!( 9, -34), s!( 13, -29), s!( 21, -34), s!( -9, -41), s!( -1, -12), s!( -5, -43), s!( -16, -29), s!( -10, -25), s!( -10, -29), s!( -14, -19), s!( -14, -26), s!( -19, -30), s!( -3, -9), s!( -7, -18), s!( -6, -22), s!( -15, -19), s!( -10, -27), s!( -22, -28), s!( -13, -29), s!( -25, -20), s!( -1, -1), s!( -10, -9), s!( -22, -20), s!( -17, -27), @@ -298,13 +298,13 @@ pub const ROOK_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = s!( 6, -1), s!( -0, -16), s!( -7, -8), s!( -5, -20), s!( -1, 2), s!( 6, -5), s!( -8, -9), s!( 1, -4), s!( -2, -2), s!( -8, -4), s!( -4, -3), s!( 2, -14), s!( -1, 2), s!( -1, -7), s!( -3, -11), s!( 0, -3), s!( 4, 2), s!( -4, -14), s!( -2, -5), s!( -1, -4), s!( 3, -9), s!( 5, 1), s!( 4, -9), s!( 0, -6), - s!( -5, -18), s!( 2, -15), s!( 4, -14), s!( 12, -11), s!( 8, -16), s!( -1, -17), s!( -6, -3), s!( -19, -0), + s!( -5, -18), s!( 2, -15), s!( 4, -15), s!( 12, -11), s!( 8, -16), s!( -1, -17), s!( -6, -3), s!( -19, -0), ], [ - s!( 1, -9), s!( 2, -16), s!( -2, -9), s!( 3, -20), s!( -9, -24), s!( -1, -18), s!( 0, -23), s!( 1, -20), + s!( 1, -9), s!( 2, -16), s!( -2, -9), s!( 3, -20), s!( -9, -24), s!( -1, -19), s!( 0, -23), s!( 1, -20), s!( 7, -19), s!( 11, -37), s!( -1, -9), s!( 0, -28), s!( 4, -19), s!( -15, -15), s!( 0, -18), s!( -3, -16), - s!( 7, -12), s!( 7, -28), s!( 1, -10), s!( -1, -19), s!( -4, -23), s!( -8, -12), s!( -16, -10), s!( -7, -20), - s!( -0, -21), s!( 1, -15), s!( 6, -1), s!( -3, -10), s!( 1, -12), s!( -12, -18), s!( -8, -13), s!( 4, -8), + s!( 7, -12), s!( 7, -28), s!( 1, -10), s!( -1, -19), s!( -4, -23), s!( -8, -12), s!( -16, -11), s!( -7, -20), + s!( -0, -21), s!( 1, -15), s!( 6, -1), s!( -3, -10), s!( 1, -13), s!( -12, -18), s!( -8, -13), s!( 4, -8), s!( -1, -3), s!( 7, -8), s!( 18, -6), s!( 4, -1), s!( 7, -6), s!( -8, -13), s!( 2, -4), s!( -1, -3), s!( -0, -0), s!( 7, -3), s!( 3, -15), s!( -3, -18), s!( -9, 13), s!( -3, -5), s!( -11, -1), s!( -15, 5), s!( -17, -12), s!( 8, -8), s!( -4, -23), s!( -0, -23), s!( 1, -7), s!( -9, -1), s!( -10, -5), s!( 9, 0), @@ -313,8 +313,8 @@ pub const ROOK_PST_PATTERN: [[[PackedEval; 64]; KING_BUCKETS_COUNT]; 2] = [ s!( 1, 1), s!( -1, -7), s!( 2, -25), s!( -0, -13), s!( -1, -15), s!( -3, -18), s!( -3, -18), s!( 3, -18), s!( 6, -17), s!( -3, -13), s!( -2, -24), s!( 1, -26), s!( -7, -11), s!( -18, -23), s!( 1, -14), s!( -16, -14), - s!( 4, -19), s!( 10, -3), s!( 1, -23), s!( 3, -16), s!( -2, -8), s!( -23, -6), s!( -13, -4), s!( -12, -10), - s!( 21, -16), s!( 15, -8), s!( -2, -30), s!( 5, -26), s!( -6, -14), s!( 8, -16), s!( -3, -14), s!( -3, -16), + s!( 4, -19), s!( 10, -3), s!( 1, -24), s!( 3, -16), s!( -2, -8), s!( -23, -7), s!( -13, -4), s!( -12, -10), + s!( 21, -16), s!( 15, -8), s!( -2, -30), s!( 5, -27), s!( -6, -14), s!( 8, -16), s!( -3, -14), s!( -3, -16), s!( 10, -13), s!( 5, -8), s!( 12, -5), s!( 1, -14), s!( 7, -6), s!( 2, -17), s!( -2, 1), s!( 5, -15), s!( 2, -13), s!( 16, -5), s!( 2, -7), s!( 12, -9), s!( -2, 1), s!( -7, -18), s!( 3, -0), s!( -4, -2), s!( -10, -11), s!( 9, 2), s!( -13, -3), s!( 4, -7), s!( -7, -5), s!( 13, 1), s!( 0, 10), s!( -5, -2), diff --git a/src/evaluation/safety.rs b/src/evaluation/safety.rs index 4d474e77..5d1912b9 100644 --- a/src/evaluation/safety.rs +++ b/src/evaluation/safety.rs @@ -1,25 +1,79 @@ use super::*; use crate::state::representation::Board; +use crate::utils::assert_fast; +use crate::utils::bithelpers::BitHelpers; use mobility::EvalAux; #[cfg(feature = "dev")] use crate::tuning::tuner::TunerCoeff; +pub struct SafetyData { + pub knight_safe_checks: u8, + pub bishop_safe_checks: u8, + pub rook_safe_checks: u8, + pub queen_safe_checks: u8, +} + /// Evaluates king safety on the `board` and returns score from the white color perspective (more than 0 when advantage, /// less than 0 when disadvantage). Both additional parameters, `white_aux` and `black_aux`, are /// calculated during mobility evaluation and are used here to get the final score. pub fn evaluate(board: &Board, white_aux: &EvalAux, black_aux: &EvalAux) -> PackedEval { - evaluate_color(board, white_aux) - evaluate_color(board, black_aux) + evaluate_color(board, WHITE, white_aux, black_aux) - evaluate_color(board, BLACK, white_aux, black_aux) +} + +/// Evaluates kibg safety on the `board` for the specified `color``, using `white_aux` and `black_aux`. +pub fn evaluate_color(board: &Board, color: usize, white_aux: &EvalAux, black_aux: &EvalAux) -> PackedEval { + assert_fast!(color < 2); + + let mut result = PackedEval::default(); + let (stm_aux, nstm_aux) = match color { + WHITE => (white_aux, black_aux), + BLACK => (black_aux, white_aux), + _ => panic_fast!("Invalid value: color={}", color), + }; + let data = get_safety_data(board, color, stm_aux, nstm_aux); + + result += params::KING_AREA_THREATS[((stm_aux.king_area_threats) as usize).min(7)]; + result += params::KNIGHT_SAFE_CHECKS[((data.knight_safe_checks) as usize).min(7)]; + result += params::BISHOP_SAFE_CHECKS[((data.bishop_safe_checks) as usize).min(7)]; + result += params::ROOK_SAFE_CHECKS[((data.rook_safe_checks) as usize).min(7)]; + result += params::QUEEN_SAFE_CHECKS[((data.queen_safe_checks) as usize).min(7)]; + + result } -/// Evaluates king safety on the `board` for the specified `color` and `aux` data. -fn evaluate_color(_board: &Board, aux: &EvalAux) -> PackedEval { - params::KING_AREA_THREATS[(aux.king_area_threats as usize).min(7)] +/// Gets safety data for `board`, `color`, `our_aux` and `their_aux`. +pub fn get_safety_data(board: &Board, color: usize, our_aux: &EvalAux, their_aux: &EvalAux) -> SafetyData { + assert_fast!(color < 2); + + let occupancy_bb = board.occupancy[WHITE] | board.occupancy[BLACK]; + let enemy_king_square = (board.pieces[color ^ 1][KING]).bit_scan(); + + let threats = their_aux.knight_threats | their_aux.bishop_threats | their_aux.rook_threats | their_aux.queen_threats | board.pawn_attacks[color ^ 1]; + let knight_moves_bb = movegen::get_knight_moves(enemy_king_square); + let bishop_moves_bb = movegen::get_bishop_moves(occupancy_bb, enemy_king_square); + let rook_moves_bb = movegen::get_rook_moves(occupancy_bb, enemy_king_square); + let queen_moves_bb = movegen::get_queen_moves(occupancy_bb, enemy_king_square); + let king_moves_bb = movegen::get_king_moves(enemy_king_square); + + let knight_safe_checks = ((knight_moves_bb & our_aux.knight_threats) & !threats & !king_moves_bb).bit_count() as u8; + let bishop_safe_checks = ((bishop_moves_bb & our_aux.bishop_threats) & !threats & !king_moves_bb).bit_count() as u8; + let rook_safe_checks = ((rook_moves_bb & our_aux.rook_threats) & !threats & !king_moves_bb).bit_count() as u8; + let queen_safe_checks = ((queen_moves_bb & our_aux.queen_threats) & !threats & !king_moves_bb).bit_count() as u8; + + SafetyData { knight_safe_checks, bishop_safe_checks, rook_safe_checks, queen_safe_checks } } /// Gets coefficients of king safety for `board` and inserts them into `coeffs`. Similarly, their indices (starting from `index`) are inserted into `indices`. /// Additionally, `white_aux` and `black_aux` calculated during mobility phase are also used here. #[cfg(feature = "dev")] -pub fn get_coeffs(white_aux: &EvalAux, black_aux: &EvalAux, index: &mut u16, coeffs: &mut Vec, indices: &mut Vec) { - get_array_coeffs(white_aux.king_area_threats as u8, black_aux.king_area_threats as u8, 8, index, coeffs, indices) +pub fn get_coeffs(board: &Board, white_aux: &EvalAux, black_aux: &EvalAux, index: &mut u16, coeffs: &mut Vec, indices: &mut Vec) { + let white_data = get_safety_data(board, WHITE, white_aux, black_aux); + let black_data = get_safety_data(board, BLACK, black_aux, white_aux); + + get_array_coeffs(white_aux.king_area_threats as u8, black_aux.king_area_threats as u8, 8, index, coeffs, indices); + get_array_coeffs(white_data.knight_safe_checks, black_data.knight_safe_checks, 8, index, coeffs, indices); + get_array_coeffs(white_data.bishop_safe_checks, black_data.bishop_safe_checks, 8, index, coeffs, indices); + get_array_coeffs(white_data.rook_safe_checks, black_data.rook_safe_checks, 8, index, coeffs, indices); + get_array_coeffs(white_data.queen_safe_checks, black_data.queen_safe_checks, 8, index, coeffs, indices); } diff --git a/src/state/movescan.rs b/src/state/movescan.rs index 19598768..60a0d332 100644 --- a/src/state/movescan.rs +++ b/src/state/movescan.rs @@ -491,6 +491,14 @@ pub fn get_piece_mobility(board: &Board, color: usize, aux: _ => panic_fast!("Invalid parameter: fen={}, PIECE={}", board, PIECE), }; + match PIECE { + KNIGHT => aux.knight_threats |= piece_moves_bb, + BISHOP => aux.bishop_threats |= piece_moves_bb, + ROOK => aux.rook_threats |= piece_moves_bb, + QUEEN => aux.queen_threats |= piece_moves_bb, + _ => panic_fast!("Invalid parameter: fen={}, PIECE={}", board, PIECE), + }; + aux.king_area_threats += (enemy_king_box_bb & (piece_moves_bb | from_bb)).bit_count() as i8; piece_moves_bb &= !board.occupancy[color] & !board.pawn_attacks[nstm]; diff --git a/src/tuning/tuner.rs b/src/tuning/tuner.rs index 2b55df89..0a871caa 100644 --- a/src/tuning/tuner.rs +++ b/src/tuning/tuner.rs @@ -363,7 +363,7 @@ fn load_positions(epd: &str, coeffs: &mut Vec, indices: &mut Vec Vec { params.append(&mut params::PAWN_SHIELD.iter().flat_map(|v| v.to_tuner_params(-999, 10, 40, 999, 0)).collect()); params.append(&mut params::PAWN_SHIELD_OPEN_FILE.iter().flat_map(|v| v.to_tuner_params(-999, -40, -10, 999, 0)).collect()); params.append(&mut params::KING_AREA_THREATS.iter().flat_map(|v| v.to_tuner_params(-999, -40, 40, 999, 0)).collect()); + params.append(&mut params::KNIGHT_SAFE_CHECKS.iter().flat_map(|v| v.to_tuner_params(-999, -40, 40, 999, 0)).collect()); + params.append(&mut params::BISHOP_SAFE_CHECKS.iter().flat_map(|v| v.to_tuner_params(-999, -40, 40, 999, 0)).collect()); + params.append(&mut params::ROOK_SAFE_CHECKS.iter().flat_map(|v| v.to_tuner_params(-999, -40, 40, 999, 0)).collect()); + params.append(&mut params::QUEEN_SAFE_CHECKS.iter().flat_map(|v| v.to_tuner_params(-999, -40, 40, 999, 0)).collect()); for pov in ALL_POVS { for bucket in &pst::PAWN_PST_PATTERN[pov] { @@ -491,6 +495,10 @@ where output.push_str(get_array("PAWN_SHIELD", weights, 8).as_str()); output.push_str(get_array("PAWN_SHIELD_OPEN_FILE", weights, 8).as_str()); output.push_str(get_array("KING_AREA_THREATS", weights, 8).as_str()); + output.push_str(get_array("KNIGHT_SAFE_CHECKS", weights, 8).as_str()); + output.push_str(get_array("BISHOP_SAFE_CHECKS", weights, 8).as_str()); + output.push_str(get_array("ROOK_SAFE_CHECKS", weights, 8).as_str()); + output.push_str(get_array("QUEEN_SAFE_CHECKS", weights, 8).as_str()); let path = Path::new(output_directory); fs::create_dir_all(path).unwrap();