__Step 1.__ (delta bug fix)

I noticed that Stockfish uses the fixed value for delta (18) which produces
too many fails low/high when position is winning/losing, slowing down finding
mates/winning combinations.

With many tests on short time controls, I've found that \(17+0.025\cdot|previousScore|\)
is a good (neutral) alternative.

__Step 2.__ (formula for initial reductions)

If an Elo strengh is given by the function \(f(d)\), where \(d\) is a depth
of the search, then it seems logical that an Elo difference between full and
reduced search should be proportional to the rate of Elo change,

leading to the following differential equation $$ f(d)-f(d-r)=c\cdot f'(d)\,.
$$ As I proved [link] that \(f(d)=A\ln(d)+C\,\)
is a good choice for an Elo strength function, we obtain $$ \ln(d)-\ln(d-r)=\frac{c}{d}\,,
$$ with the solution \(r=d(1-e^{-c/d})\). Combining with the Stockfish reduction
formula (\(\,r=\ln(d)\ln(mc)/2\,\)) I have found the following candidate $$
r=0.245\cdot d(1-e^{-7/d})\ln(mc)\,, $$ which proved to be solid in testing
(16:12 against CorChess beta after 140 games at 900+10 th 3).

__Step 3.__ (version b3)

Formula for initial reductions was retuned (0.245 -> 0.22; 7 -> 8.5), and lazy evaluation was removed from the code.

__Step 4.__ (version 1.1)

Ideas from version b3 were refined further.

In 10000 games match at 40+0.4 time control CorChess 1.1
defeated Stockfish with 1557-1493-6950 (+2.2 Elo).

__Step 5.__ (version 1.2)

I included null move fix tested recently in the Stockfish testing framework:

http://tests.stockfishchess.org/tests/view/58c7c8ce0ebc59035df32d8f

__Step 6.__ (version 1.3)

As it is very difficult to tune formula for initial reductions,
values were set to fit well with the Stockfish formula for depths up to 12.

Regression test was done and it was OK.

__Step 7.__ (version 1.4)

I included one nice patch rejected in Stockfish:

http://tests.stockfishchess.org/tests/view/59272b7a0ebc59035df34bf9

__Step 8.__ (version 1.5)

Null move logic was improved. Version 1.5 won four 1000 games tournaments in a row against version 1.4,

with total advantage of 7 Elo (time control: 160+1.6).

__Step 9.__ (versions 1.6, 1.7)

I accepted two strong patches that failed yellow:

http://tests.stockfishchess.org/tests/view/5955e3ac0ebc593ea732d66d

http://tests.stockfishchess.org/tests/view/595836a70ebc593ea732d6f0

__Step 10.__ (version 1.8)

Large Pages support, with code from SugaR, is introduced. It brings around 10% of speed improvement.

It is enabled by default but check how it works on your system.

__Step 11.__ (version 1.9)

Enhanced verification search tested and implemented in CorChess.

Revert to old time management.

__Step 12.__ (version 2.0)

CorChess uses Contempt 7 by default.

__Step 13.__ (version 2.1)

Cleaning and retest of CorChess features was done.

I decided to keep CorChess as close to Stockfish,

introducing only features important in correspondence chess.

__Step 14.__ (version 2.2)

Contempt 0 now disables also dynamic contempt.

__Step 15.__ (version 2.3)

A subtle bug with depth zero null move search was fixed.

__Step 16.__ (version 2.4)

Set default contempt to 12.

__Step 17.__

From version 2.5 I only try to tune some parameters.

__Step 18.__ (version 3.0)

Large Pages support was removed because of better overclocking potential, and skipping thread scheme was removed because of bad behaviour on long time controls.