|
37 | 37 | </tr> |
38 | 38 | <tr> |
39 | 39 | <td class="headerItem">Test Date:</td> |
40 | | - <td class="headerValue">2026-02-26 19:16:57</td> |
| 40 | + <td class="headerValue">2026-03-02 16:42:41</td> |
41 | 41 | <td></td> |
42 | 42 | <td class="headerItem">Functions:</td> |
43 | 43 | <td class="headerCovTableEntryHi">91.7 %</td> |
|
313 | 313 | <span id="L251"><span class="lineNum"> 251</span> : </span> |
314 | 314 | <span id="L252"><span class="lineNum"> 252</span> : #endif // MAGIC</span> |
315 | 315 | <span id="L253"><span class="lineNum"> 253</span> : </span> |
316 | | -<span id="L254"><span class="lineNum"> 254</span> <span class="tlaGNC"> 187233459 : bool isAttackedBB(const Position &p, const Square s, const Color c) { ///@todo try to optimize order better ?</span></span> |
317 | | -<span id="L255"><span class="lineNum"> 255</span> <span class="tlaGNC"> 187233459 : assert(isValidSquare(s));</span></span> |
| 316 | +<span id="L254"><span class="lineNum"> 254</span> <span class="tlaGNC"> 199268068 : bool isAttackedBB(const Position &p, const Square s, const Color c) { ///@todo try to optimize order better ?</span></span> |
| 317 | +<span id="L255"><span class="lineNum"> 255</span> <span class="tlaGNC"> 199268068 : assert(isValidSquare(s));</span></span> |
318 | 318 | <span id="L256"><span class="lineNum"> 256</span> : const BitBoard occupancy = p.occupancy();</span> |
319 | | -<span id="L257"><span class="lineNum"> 257</span> <span class="tlaGNC"> 187233459 : if (c == Co_White)</span></span> |
320 | | -<span id="L258"><span class="lineNum"> 258</span> <span class="tlaGNC"> 71741238 : return attack<P_wb>(s, p.blackBishop() | p.blackQueen(), occupancy) ||</span></span> |
321 | | -<span id="L259"><span class="lineNum"> 259</span> <span class="tlaGNC"> 70593075 : attack<P_wr>(s, p.blackRook() | p.blackQueen(), occupancy) ||</span></span> |
322 | | -<span id="L260"><span class="lineNum"> 260</span> <span class="tlaGNC"> 26741603 : attack<P_wp>(s, p.blackPawn(), occupancy, Co_White) ||</span></span> |
323 | | -<span id="L261"><span class="lineNum"> 261</span> <span class="tlaGNC"> 65258314 : attack<P_wn>(s, p.blackKnight()) ||</span></span> |
| 319 | +<span id="L257"><span class="lineNum"> 257</span> <span class="tlaGNC"> 199268068 : if (c == Co_White)</span></span> |
| 320 | +<span id="L258"><span class="lineNum"> 258</span> <span class="tlaGNC"> 83525669 : return attack<P_wb>(s, p.blackBishop() | p.blackQueen(), occupancy) ||</span></span> |
| 321 | +<span id="L259"><span class="lineNum"> 259</span> <span class="tlaGNC"> 82084711 : attack<P_wr>(s, p.blackRook() | p.blackQueen(), occupancy) ||</span></span> |
| 322 | +<span id="L260"><span class="lineNum"> 260</span> <span class="tlaGNC"> 26719627 : attack<P_wp>(s, p.blackPawn(), occupancy, Co_White) ||</span></span> |
| 323 | +<span id="L261"><span class="lineNum"> 261</span> <span class="tlaGNC"> 76559252 : attack<P_wn>(s, p.blackKnight()) ||</span></span> |
324 | 324 | <span id="L262"><span class="lineNum"> 262</span> : attack<P_wk>(s, p.blackKing());</span> |
325 | 325 | <span id="L263"><span class="lineNum"> 263</span> : else</span> |
326 | | -<span id="L264"><span class="lineNum"> 264</span> <span class="tlaGNC"> 300708388 : return attack<P_wb>(s, p.whiteBishop() | p.whiteQueen(), occupancy) ||</span></span> |
327 | | -<span id="L265"><span class="lineNum"> 265</span> <span class="tlaGNC"> 299740182 : attack<P_wr>(s, p.whiteRook() | p.whiteQueen(), occupancy) ||</span></span> |
328 | | -<span id="L266"><span class="lineNum"> 266</span> <span class="tlaGNC"> 129732664 : attack<P_wp>(s, p.whitePawn(), occupancy, Co_Black) ||</span></span> |
329 | | -<span id="L267"><span class="lineNum"> 267</span> <span class="tlaGNC"> 280653144 : attack<P_wn>(s, p.whiteKnight()) ||</span></span> |
| 326 | +<span id="L264"><span class="lineNum"> 264</span> <span class="tlaGNC"> 312672562 : return attack<P_wb>(s, p.whiteBishop() | p.whiteQueen(), occupancy) ||</span></span> |
| 327 | +<span id="L265"><span class="lineNum"> 265</span> <span class="tlaGNC"> 311159365 : attack<P_wr>(s, p.whiteRook() | p.whiteQueen(), occupancy) ||</span></span> |
| 328 | +<span id="L266"><span class="lineNum"> 266</span> <span class="tlaGNC"> 129728246 : attack<P_wp>(s, p.whitePawn(), occupancy, Co_Black) ||</span></span> |
| 329 | +<span id="L267"><span class="lineNum"> 267</span> <span class="tlaGNC"> 291340606 : attack<P_wn>(s, p.whiteKnight()) ||</span></span> |
330 | 330 | <span id="L268"><span class="lineNum"> 268</span> : attack<P_wk>(s, p.whiteKing());</span> |
331 | 331 | <span id="L269"><span class="lineNum"> 269</span> : }</span> |
332 | 332 | <span id="L270"><span class="lineNum"> 270</span> : </span> |
|
347 | 347 | <span id="L285"><span class="lineNum"> 285</span> <span class="tlaUNC"> 0 : attack<P_wk>(s, p.whiteKing());</span></span> |
348 | 348 | <span id="L286"><span class="lineNum"> 286</span> : }</span> |
349 | 349 | <span id="L287"><span class="lineNum"> 287</span> : </span> |
350 | | -<span id="L288"><span class="lineNum"> 288</span> <span class="tlaGNC tlaBgGNC"> 3221952 : BitBoard allAttackedBB(const Position &p, const Square s) {</span></span> |
351 | | -<span id="L289"><span class="lineNum"> 289</span> <span class="tlaGNC"> 3221952 : assert(isValidSquare(s));</span></span> |
| 350 | +<span id="L288"><span class="lineNum"> 288</span> <span class="tlaGNC tlaBgGNC"> 5790404 : BitBoard allAttackedBB(const Position &p, const Square s) {</span></span> |
| 351 | +<span id="L289"><span class="lineNum"> 289</span> <span class="tlaGNC"> 5790404 : assert(isValidSquare(s));</span></span> |
352 | 352 | <span id="L290"><span class="lineNum"> 290</span> : const BitBoard occupancy = p.occupancy();</span> |
353 | | -<span id="L291"><span class="lineNum"> 291</span> <span class="tlaGNC"> 6443904 : return attack<P_wb>(s, p.allBishop() | p.allQueen(), occupancy) |</span></span> |
354 | | -<span id="L292"><span class="lineNum"> 292</span> <span class="tlaGNC"> 6443904 : attack<P_wr>(s, p.allRook() | p.allQueen(), occupancy) |</span></span> |
355 | | -<span id="L293"><span class="lineNum"> 293</span> <span class="tlaGNC"> 3221952 : attack<P_wn>(s, p.allKnight()) |</span></span> |
356 | | -<span id="L294"><span class="lineNum"> 294</span> <span class="tlaGNC"> 3221952 : attack<P_wp>(s, p.blackPawn(), occupancy, Co_White) |</span></span> |
| 353 | +<span id="L291"><span class="lineNum"> 291</span> <span class="tlaGNC"> 11580808 : return attack<P_wb>(s, p.allBishop() | p.allQueen(), occupancy) |</span></span> |
| 354 | +<span id="L292"><span class="lineNum"> 292</span> <span class="tlaGNC"> 11580808 : attack<P_wr>(s, p.allRook() | p.allQueen(), occupancy) |</span></span> |
| 355 | +<span id="L293"><span class="lineNum"> 293</span> <span class="tlaGNC"> 5790404 : attack<P_wn>(s, p.allKnight()) |</span></span> |
| 356 | +<span id="L294"><span class="lineNum"> 294</span> <span class="tlaGNC"> 5790404 : attack<P_wp>(s, p.blackPawn(), occupancy, Co_White) |</span></span> |
357 | 357 | <span id="L295"><span class="lineNum"> 295</span> : attack<P_wp>(s, p.whitePawn(), occupancy, Co_Black) |</span> |
358 | | -<span id="L296"><span class="lineNum"> 296</span> <span class="tlaGNC"> 3221952 : attack<P_wk>(s, p.allKing());</span></span> |
| 358 | +<span id="L296"><span class="lineNum"> 296</span> <span class="tlaGNC"> 5790404 : attack<P_wk>(s, p.allKing());</span></span> |
359 | 359 | <span id="L297"><span class="lineNum"> 297</span> : }</span> |
360 | 360 | <span id="L298"><span class="lineNum"> 298</span> : </span> |
361 | | -<span id="L299"><span class="lineNum"> 299</span> <span class="tlaGNC"> 23877929 : BitBoard between(const Square sq1, const Square sq2){</span></span> |
| 361 | +<span id="L299"><span class="lineNum"> 299</span> <span class="tlaGNC"> 26925812 : BitBoard between(const Square sq1, const Square sq2){</span></span> |
362 | 362 | <span id="L300"><span class="lineNum"> 300</span> : #if !defined(WITH_SMALL_MEMORY)</span> |
363 | | -<span id="L301"><span class="lineNum"> 301</span> <span class="tlaGNC"> 23877929 : return mask[sq1].between[sq2];</span></span> |
| 363 | +<span id="L301"><span class="lineNum"> 301</span> <span class="tlaGNC"> 26925812 : return mask[sq1].between[sq2];</span></span> |
364 | 364 | <span id="L302"><span class="lineNum"> 302</span> : #else</span> |
365 | 365 | <span id="L303"><span class="lineNum"> 303</span> : constexpr BitBoard m1 {static_cast<BitBoard>(-1)};</span> |
366 | 366 | <span id="L304"><span class="lineNum"> 304</span> : constexpr BitBoard a2a7 {0x0001010101010100};</span> |
|
383 | 383 | <span id="L321"><span class="lineNum"> 321</span> <span class="tlaUNC tlaBgUNC"> 0 : bool isAttacked(const Position &p, const Square s){</span></span> |
384 | 384 | <span id="L322"><span class="lineNum"> 322</span> : //assert(isValidSquare(s)); ///@todo ?</span> |
385 | 385 | <span id="L323"><span class="lineNum"> 323</span> : START_TIMER</span> |
386 | | -<span id="L324"><span class="lineNum"> 324</span> <span class="tlaGNC tlaBgGNC"> 187233459 : const bool b = isValidSquare(s) && BBTools::isAttackedBB(p, s, p.c);</span></span> |
| 386 | +<span id="L324"><span class="lineNum"> 324</span> <span class="tlaGNC tlaBgGNC"> 199268068 : const bool b = isValidSquare(s) && BBTools::isAttackedBB(p, s, p.c);</span></span> |
387 | 387 | <span id="L325"><span class="lineNum"> 325</span> : STOP_AND_SUM_TIMER(IsAttacked);</span> |
388 | 388 | <span id="L326"><span class="lineNum"> 326</span> <span class="tlaUNC tlaBgUNC"> 0 : return b;</span></span> |
389 | 389 | <span id="L327"><span class="lineNum"> 327</span> : }</span> |
390 | 390 | <span id="L328"><span class="lineNum"> 328</span> : </span> |
391 | | -<span id="L329"><span class="lineNum"> 329</span> <span class="tlaGNC tlaBgGNC"> 186769863 : bool isPosInCheck(const Position& p){</span></span> |
| 391 | +<span id="L329"><span class="lineNum"> 329</span> <span class="tlaGNC tlaBgGNC"> 198803298 : bool isPosInCheck(const Position& p){</span></span> |
392 | 392 | <span id="L330"><span class="lineNum"> 330</span> : // handles chess variants</span> |
393 | 393 | <span id="L331"><span class="lineNum"> 331</span> : ///@todo some chess variant will always return false here, there is no such things as check</span> |
394 | | -<span id="L332"><span class="lineNum"> 332</span> <span class="tlaGNC"> 186769863 : return isAttacked(p, kingSquare(p));</span></span> |
| 394 | +<span id="L332"><span class="lineNum"> 332</span> <span class="tlaGNC"> 198803298 : return isAttacked(p, kingSquare(p));</span></span> |
395 | 395 | <span id="L333"><span class="lineNum"> 333</span> : }</span> |
396 | 396 | <span id="L334"><span class="lineNum"> 334</span> : </span> |
397 | | -<span id="L335"><span class="lineNum"> 335</span> <span class="tlaGNC"> 161919 : bool isAttacked(const Position &p, BitBoard bb) { // copy ///@todo should be done without iterating over Square !</span></span> |
398 | | -<span id="L336"><span class="lineNum"> 336</span> <span class="tlaGNC"> 603734 : while (bb)</span></span> |
399 | | -<span id="L337"><span class="lineNum"> 337</span> <span class="tlaGNC"> 463596 : if (isAttacked(p, BB::popBit(bb))) return true;</span></span> |
| 397 | +<span id="L335"><span class="lineNum"> 335</span> <span class="tlaGNC"> 162332 : bool isAttacked(const Position &p, BitBoard bb) { // copy ///@todo should be done without iterating over Square !</span></span> |
| 398 | +<span id="L336"><span class="lineNum"> 336</span> <span class="tlaGNC"> 605060 : while (bb)</span></span> |
| 399 | +<span id="L337"><span class="lineNum"> 337</span> <span class="tlaGNC"> 464770 : if (isAttacked(p, BB::popBit(bb))) return true;</span></span> |
400 | 400 | <span id="L338"><span class="lineNum"> 338</span> : return false;</span> |
401 | 401 | <span id="L339"><span class="lineNum"> 339</span> : }</span> |
402 | 402 | </pre> |
|
0 commit comments