Rev 154 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 154 | Rev 156 | ||
---|---|---|---|
Line 412... | Line 412... | ||
412 | int squares[64]; |
412 | int squares[64]; |
413 | int numsquares = 0; |
413 | int numsquares = 0; |
414 | uint64_t temp = magic_bishop_mask[i]; |
414 | uint64_t temp = magic_bishop_mask[i]; |
415 | 415 | ||
416 | while (temp) { |
416 | while (temp) { |
417 | uint64_t abit = temp & |
417 | uint64_t abit = temp & (0-temp); // Pierre-Marie Baty -- signedness fix |
418 | 418 | ||
419 | squares[numsquares++] = |
419 | squares[numsquares++] = |
420 | initmagicmoves_bitpos64_database[(abit * |
420 | initmagicmoves_bitpos64_database[(abit * |
421 | 0x07EDD5E59A4E28C2ull) >> 58]; |
421 | 0x07EDD5E59A4E28C2ull) >> 58]; |
422 | temp ^= abit; |
422 | temp ^= abit; |
Line 445... | Line 445... | ||
445 | int squares[64]; |
445 | int squares[64]; |
446 | int numsquares = 0; |
446 | int numsquares = 0; |
447 | uint64_t temp = magic_rook_mask[i]; |
447 | uint64_t temp = magic_rook_mask[i]; |
448 | 448 | ||
449 | while (temp) { |
449 | while (temp) { |
450 | uint64_t abit = temp & |
450 | uint64_t abit = temp & (0-temp); // Pierre-Marie Baty -- signedness fix |
451 | 451 | ||
452 | squares[numsquares++] = |
452 | squares[numsquares++] = |
453 | initmagicmoves_bitpos64_database[(abit * |
453 | initmagicmoves_bitpos64_database[(abit * |
454 | 0x07EDD5E59A4E28C2ull) >> 58]; |
454 | 0x07EDD5E59A4E28C2ull) >> 58]; |
455 | temp ^= abit; |
455 | temp ^= abit; |
Line 819... | Line 819... | ||
819 | */ |
819 | */ |
820 | mem_per_node = |
820 | mem_per_node = |
821 | hash_table_size * sizeof(HASH_ENTRY) / Max(smp_max_threads, 1); |
821 | hash_table_size * sizeof(HASH_ENTRY) / Max(smp_max_threads, 1); |
822 | for (node = 0; node < smp_max_threads; node++) { |
822 | for (node = 0; node < smp_max_threads; node++) { |
823 | ThreadAffinity(node); |
823 | ThreadAffinity(node); |
824 | memset((char *) hash_table + node * mem_per_node, 0, mem_per_node) |
824 | memset((char *) hash_table + node * mem_per_node, 0, (size_t) mem_per_node); // Pierre-Marie Baty -- added type cast |
825 | } |
825 | } |
826 | ThreadAffinity(0); |
826 | ThreadAffinity(0); |
827 | if (mem_per_node * Max(smp_max_threads, |
827 | if (mem_per_node * Max(smp_max_threads, |
828 | 1) < hash_table_size * sizeof(HASH_ENTRY)) |
828 | 1) < hash_table_size * sizeof(HASH_ENTRY)) |
829 | memset((char *) hash_table + smp_max_threads * mem_per_node, 0, |
829 | memset((char *) hash_table + smp_max_threads * mem_per_node, 0, |
830 |
|
830 | (size_t) (hash_table_size * sizeof(HASH_ENTRY) - // Pierre-Marie Baty -- added type cast |
831 | mem_per_node * smp_max_threads); |
831 | mem_per_node * smp_max_threads)); |
832 | /* |
832 | /* |
833 | ************************************************************ |
833 | ************************************************************ |
834 | * * |
834 | * * |
835 | * Second, initialize the primary hash path table, using * |
835 | * Second, initialize the primary hash path table, using * |
836 | * the NUMA trick to place part of the hash path table on * |
836 | * the NUMA trick to place part of the hash path table on * |
Line 840... | Line 840... | ||
840 | */ |
840 | */ |
841 | mem_per_node = |
841 | mem_per_node = |
842 | hash_path_size * sizeof(HPATH_ENTRY) / Max(smp_max_threads, 1); |
842 | hash_path_size * sizeof(HPATH_ENTRY) / Max(smp_max_threads, 1); |
843 | for (node = 0; node < smp_max_threads; node++) { |
843 | for (node = 0; node < smp_max_threads; node++) { |
844 | ThreadAffinity(node); |
844 | ThreadAffinity(node); |
845 | memset((char *) hash_path + node * mem_per_node, 0, mem_per_node) |
845 | memset((char *) hash_path + node * mem_per_node, 0, (size_t) mem_per_node); // Pierre-Marie Baty -- added type cast |
846 | } |
846 | } |
847 | ThreadAffinity(0); |
847 | ThreadAffinity(0); |
848 | if (mem_per_node * Max(smp_max_threads, |
848 | if (mem_per_node * Max(smp_max_threads, |
849 | 1) < hash_path_size * sizeof(HPATH_ENTRY)) |
849 | 1) < hash_path_size * sizeof(HPATH_ENTRY)) |
850 | memset((char *) hash_path + smp_max_threads * mem_per_node, 0, |
850 | memset((char *) hash_path + smp_max_threads * mem_per_node, 0, |
851 | hash_path_size * sizeof(HPATH_ENTRY) - |
851 | (size_t) (hash_path_size * sizeof(HPATH_ENTRY) - |
852 | mem_per_node * smp_max_threads); |
852 | mem_per_node * smp_max_threads)); // Pierre-Marie Baty -- added type cast |
853 | /* |
853 | /* |
854 | ************************************************************ |
854 | ************************************************************ |
855 | * * |
855 | * * |
856 | * Finally, initialize the primary pawn hash table, using * |
856 | * Finally, initialize the primary pawn hash table, using * |
857 | * the NUMA trick to place part of the pawn hash table on * |
857 | * the NUMA trick to place part of the pawn hash table on * |
Line 862... | Line 862... | ||
862 | mem_per_node = |
862 | mem_per_node = |
863 | pawn_hash_table_size * sizeof(PAWN_HASH_ENTRY) / Max(smp_max_threads, |
863 | pawn_hash_table_size * sizeof(PAWN_HASH_ENTRY) / Max(smp_max_threads, |
864 | 1); |
864 | 1); |
865 | for (node = 0; node < smp_max_threads; node++) { |
865 | for (node = 0; node < smp_max_threads; node++) { |
866 | ThreadAffinity(node); |
866 | ThreadAffinity(node); |
867 | memset((char *) pawn_hash_table + node * mem_per_node, 0, mem_per_node) |
867 | memset((char *) pawn_hash_table + node * mem_per_node, 0, (size_t) mem_per_node); // Pierre-Marie Baty -- added type cast |
868 | } |
868 | } |
869 | ThreadAffinity(0); |
869 | ThreadAffinity(0); |
870 | if (mem_per_node * Max(smp_max_threads, |
870 | if (mem_per_node * Max(smp_max_threads, |
871 | 1) < pawn_hash_table_size * sizeof(PAWN_HASH_ENTRY)) |
871 | 1) < pawn_hash_table_size * sizeof(PAWN_HASH_ENTRY)) |
872 | memset((char *) pawn_hash_table + smp_max_threads * mem_per_node, 0, |
872 | memset((char *) pawn_hash_table + smp_max_threads * mem_per_node, 0, |
873 | pawn_hash_table_size * sizeof(PAWN_HASH_ENTRY) - |
873 | (size_t) (pawn_hash_table_size * sizeof(PAWN_HASH_ENTRY) - |
874 | mem_per_node * smp_max_threads); |
874 | mem_per_node * smp_max_threads)); // Pierre-Marie Baty -- added type cast |
875 | /* |
875 | /* |
876 | ************************************************************ |
876 | ************************************************************ |
877 | * * |
877 | * * |
878 | * Before we return, we need to re-pin this thread to the * |
878 | * Before we return, we need to re-pin this thread to the * |
879 | * correct processor. * |
879 | * correct processor. * |
Line 1134... | Line 1134... | ||
1134 | */ |
1134 | */ |
1135 | void InitializeLMP() { |
1135 | void InitializeLMP() { |
1136 | int i; |
1136 | int i; |
1137 | 1137 | ||
1138 | for (i = 0; i < LMP_depth; i++) |
1138 | for (i = 0; i < LMP_depth; i++) |
1139 | LMP[i] = |
1139 | LMP[i] = (int) (LMP_base + pow(i + .5, LMP_scale)); // Pierre-Marie Baty -- added type cast |
1140 | } |
1140 | } |
1141 | 1141 | ||
1142 | /* |
1142 | /* |
1143 | ******************************************************************************* |
1143 | ******************************************************************************* |
1144 | * * |
1144 | * * |
Line 1154... | Line 1154... | ||
1154 | for (d = 0; d < 32; d++) |
1154 | for (d = 0; d < 32; d++) |
1155 | for (m = 0; m < 64; m++) |
1155 | for (m = 0; m < 64; m++) |
1156 | LMR[d][m] = 0; |
1156 | LMR[d][m] = 0; |
1157 | for (d = 3; d < 32; d++) |
1157 | for (d = 3; d < 32; d++) |
1158 | for (m = 1; m < 64; m++) { |
1158 | for (m = 1; m < 64; m++) { |
1159 | LMR[d][m] = |
1159 | LMR[d][m] = (uint8_t) // Pierre-Marie Baty -- added type cast |
1160 | Max(Min(log(d * LMR_db) * log(m * LMR_mb) / LMR_s, LMR_max), |
1160 | (Max(Min(log(d * LMR_db) * log(m * LMR_mb) / LMR_s, LMR_max), |
1161 | LMR_min); |
1161 | LMR_min)); |
1162 | LMR[d][m] = Min(LMR[d][m], Max(d - 1 - LMR_rdepth, 0)); |
1162 | LMR[d][m] = Min(LMR[d][m], Max(d - 1 - LMR_rdepth, 0)); |
1163 | } |
1163 | } |
1164 | } |
1164 | } |
1165 | 1165 | ||
1166 | /* |
1166 | /* |