// Initialize global search variables
StopOnPonderhit = AbortSearch = Quit = AspirationFailLow = false;
+ MaxSearchTime = AbsoluteMaxSearchTime = ExtraSearchTime = 0;
NodesSincePoll = 0;
TM.resetNodeCounters();
SearchStartTime = get_system_time();
// Initialize iteration
Iteration++;
BestMoveChangesByIteration[Iteration] = 0;
- if (Iteration <= 5)
- ExtraSearchTime = 0;
cout << "info depth " << Iteration << endl;
EvalInfo ei;
StateInfo st;
+ CheckInfo ci(pos);
int64_t nodes;
Move move;
Depth depth, ext, newDepth;
Value value, alpha, beta;
bool isCheck, moveIsCheck, captureOrPromotion, dangerous;
- int researchCount = 0;
+ int researchCountFH, researchCountFL;
+
+ researchCountFH = researchCountFL = 0;
alpha = *alphaPtr;
beta = *betaPtr;
- CheckInfo ci(pos);
isCheck = pos.is_check();
// Step 1. Initialize node and poll (omitted at root, but I can see no good reason for this, FIXME)
print_pv_info(pos, ss, alpha, beta, value);
// Prepare for a research after a fail high, each time with a wider window
- researchCount++;
- *betaPtr = beta = Min(beta + AspirationDelta * (1 << researchCount), VALUE_INFINITE);
+ *betaPtr = beta = Min(beta + AspirationDelta * (1 << researchCountFH), VALUE_INFINITE);
+ researchCountFH++;
} // End of fail high loop
break;
// Prepare for a research after a fail low, each time with a wider window
- researchCount++;
- *alphaPtr = alpha = Max(alpha - AspirationDelta * (1 << researchCount), -VALUE_INFINITE);
+ *alphaPtr = alpha = Max(alpha - AspirationDelta * (1 << researchCountFL), -VALUE_INFINITE);
+ researchCountFL++;
} // Fail low loop