Skip to content

Commit b51b094

Browse files
snicoletvondele
authored andcommitted
Simplify format_cp_aligned_dot()
closes official-stockfish#3583 No functional change
1 parent 7cfc1f9 commit b51b094

File tree

1 file changed

+21
-44
lines changed

1 file changed

+21
-44
lines changed

src/nnue/evaluate_nnue.cpp

Lines changed: 21 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -227,69 +227,46 @@ namespace Stockfish::Eval::NNUE {
227227

228228
static const std::string PieceToChar(" PNBRQK pnbrqk");
229229

230-
// Requires the buffer to have capacity for at least 5 values
230+
231+
// format_cp_compact() converts a Value into (centi)pawns and writes it in a buffer.
232+
// The buffer must have capacity for at least 5 chars.
231233
static void format_cp_compact(Value v, char* buffer) {
232234

233235
buffer[0] = (v < 0 ? '-' : v > 0 ? '+' : ' ');
234236

235237
int cp = std::abs(100 * v / PawnValueEg);
236-
237238
if (cp >= 10000)
238239
{
239-
buffer[1] = '0' + cp / 10000; cp %= 10000;
240-
buffer[2] = '0' + cp / 1000; cp %= 1000;
241-
buffer[3] = '0' + cp / 100; cp %= 100;
242-
buffer[4] = ' ';
240+
buffer[1] = '0' + cp / 10000; cp %= 10000;
241+
buffer[2] = '0' + cp / 1000; cp %= 1000;
242+
buffer[3] = '0' + cp / 100; cp %= 100;
243+
buffer[4] = ' ';
243244
}
244245
else if (cp >= 1000)
245246
{
246-
buffer[1] = '0' + cp / 1000; cp %= 1000;
247-
buffer[2] = '0' + cp / 100; cp %= 100;
248-
buffer[3] = '.';
249-
buffer[4] = '0' + cp / 10;
247+
buffer[1] = '0' + cp / 1000; cp %= 1000;
248+
buffer[2] = '0' + cp / 100; cp %= 100;
249+
buffer[3] = '.';
250+
buffer[4] = '0' + cp / 10;
250251
}
251252
else
252253
{
253-
buffer[1] = '0' + cp / 100; cp %= 100;
254-
buffer[2] = '.';
255-
buffer[3] = '0' + cp / 10; cp %= 10;
256-
buffer[4] = '0' + cp / 1;
254+
buffer[1] = '0' + cp / 100; cp %= 100;
255+
buffer[2] = '.';
256+
buffer[3] = '0' + cp / 10; cp %= 10;
257+
buffer[4] = '0' + cp / 1;
257258
}
258259
}
259260

260-
// Requires the buffer to have capacity for at least 7 values
261+
262+
// format_cp_aligned_dot() converts a Value into (centi)pawns and writes it in a buffer,
263+
// always keeping two decimals. The buffer must have capacity for at least 7 chars.
261264
static void format_cp_aligned_dot(Value v, char* buffer) {
262-
buffer[0] = (v < 0 ? '-' : v > 0 ? '+' : ' ');
263265

264-
int cp = std::abs(100 * v / PawnValueEg);
266+
buffer[0] = (v < 0 ? '-' : v > 0 ? '+' : ' ');
265267

266-
if (cp >= 10000)
267-
{
268-
buffer[1] = '0' + cp / 10000; cp %= 10000;
269-
buffer[2] = '0' + cp / 1000; cp %= 1000;
270-
buffer[3] = '0' + cp / 100; cp %= 100;
271-
buffer[4] = '.';
272-
buffer[5] = '0' + cp / 10; cp %= 10;
273-
buffer[6] = '0' + cp;
274-
}
275-
else if (cp >= 1000)
276-
{
277-
buffer[1] = ' ';
278-
buffer[2] = '0' + cp / 1000; cp %= 1000;
279-
buffer[3] = '0' + cp / 100; cp %= 100;
280-
buffer[4] = '.';
281-
buffer[5] = '0' + cp / 10; cp %= 10;
282-
buffer[6] = '0' + cp;
283-
}
284-
else
285-
{
286-
buffer[1] = ' ';
287-
buffer[2] = ' ';
288-
buffer[3] = '0' + cp / 100; cp %= 100;
289-
buffer[4] = '.';
290-
buffer[5] = '0' + cp / 10; cp %= 10;
291-
buffer[6] = '0' + cp / 1;
292-
}
268+
double cp = 1.0 * std::abs(int(v)) / PawnValueEg;
269+
sprintf(&buffer[1], "%6.2f", cp);
293270
}
294271

295272

0 commit comments

Comments
 (0)