bieremaboyzprogramming / bbppairings Goto Github PK
View Code? Open in Web Editor NEWA Swiss-system chess tournament pairing engine, implementing the Burstein and Dutch systems.
License: Other
A Swiss-system chess tournament pairing engine, implementing the Burstein and Dutch systems.
License: Other
Someone emailed me alerting me that the pairing of the last round in this file is incorrect. Player 42 should be paired in his own bracket, and player 45 should float.
suboptimalExchangeInRemainder.txt
Hello, first of all: I sent this already to JaVaFo by eMail, not sure if I understood who is responsible.
In the file attached player 15 had already a paired-bye in round 4 with a full point. Nevertheless bbpPairings/JaVaFo wants to give him another one for round 6.
Actually I am sure it's my bad understanding or but can you help me to understand this?
trffile_before_round_6.txt
Reply from bbp:
11
6 12
21 1
18 16
11 20
8 7
13 2
5 4
14 10
9 3
19 17
15 0
Here the 15 should not get the 0 again, should he?
Hello,
I can't manage to specify absent players to bbpPairings in order to exclude them from next round pairing.
I found the XXZ parameter in the JaVaFo documentation, but it does not seem to be handled.
I've also tried to add 0000 - Z in the column of the next round, but it's ignored too.
Am I missing something ?
Please find the sample I use to reproduce the issue : TRF(x) sample
./bbpPairings.exe --dutch sample.trf -p
Players 23, 28 and 43 should be excluded from pairings, but they're not.
Many thank for your work on this project.
When I try to compile bbpPairings, I'm getting an error:
src/swisssystems/burstein.cpp: In function 'swisssystems::burstein::{anonymous}::points_product swisssystems::burstein::{anonymous}::calculateSonnebornBerger(const tournament::Player&, const tournament::Tournament&, const std::vector<utility::uinttypes::uint<2> >&)':
src/swisssystems/burstein.cpp:215:17: error: ambiguous overload for 'operator*' (operand types are 'swisssystems::burstein::{anonymous}::points_product' {aka 'utility::uinttypes::uint<3>'} and 'const swisssystems::burstein::{anonymous}::adjusted_score' {aka 'const utility::uinttypes::uint<2>'})
214 | points_product{ tournament.getPoints(player, match) }
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| uint<3>
215 | * virtualScore;
| ^ ~~~~~~~~~~~~
| |
| uint<2>
I'm using g++ (Alpine 12.2.1_git20220924-r4) 12.2.1 20220924.
There seems to be a discrepancy between pointProductSize
and adjustedScoreSize
which makes the types of the uint generics differ so the operands of the multiply have different types. I'm not sure how to correct that.
Hi,
I wrote a package for Emacs that is able to open a TRF file and do the pairings with bbpPairings. Although it is still in the beta testing stage, I thought It might be of your interest.
I think it is important to be able to handle tournaments with free software only.
Hello
I'm JP and I am the programmer of the pairings program Sevilla (www.jbfsoftware.com).
I am interested in including a good WM based pairings engine into my software, and would like to consider including bbpPairings (if you don't mind).
I ran into one issue so far. The .trf input file gives an error message for players being absent with a half point bye in the round to pair. This is because the half point was already included in the score total of the player. bbpPairings seems not to like it, and when I corrected the scores the file was accepted.
However, also the test file of JaVaFo http://www.rrweb.org/javafo/aum/TRFXSample2.txt adds the half point already. As you are trying to be as compatible as possible to JaVaFo, would/could you consider to change this? Otherwise, maybe you could exclude the total point check for players who are not to be paired anyway?
No doubt the correct number of points may be subject of discussion. The original .trf definition for reporting is about completed tournaments, and .trf usage for pairing is beyond the original idea of the .trf.
B.t.w. I commented the break on line 630 of trf.cpp
if (matchIndex >= tournament.playedRounds)
{
// next line removed by #jph
// break;
}
and then my files were accepted. Would this be a working alternative and/or a recommended one?
Best regards,
JP
In this operator you've defined a bool value carry
which default is false and you make decisions based on it and in else part you assign a uintmax
to it.i am really confused about this part.could you please clarify it?
The Burstein system pairings seem to be completely messed up, starting from the first round. This was observed in the v5.0.0 64-bit Windows release build and may well affect all the v5.0.0 release builds. It is not present in the corresponding v4.1.0 release build. It is present when v4.1.0 and some earlier versions are compiled using newer GCC versions like GCC 11.
Hello Jeremy,
I am currently verifying your Burstein engine with the internal one of Sevilla. I run into differences caused by different sorting of score groups (and the floaters). From your documentation I understand that BBP Pairings sorts on Sonneborn-Berger, Buchholz score, Buchholz tiebreak, Median score, Median tiebreak. You calculate the "score" as "tiebreak multiplied with score". Sevilla sorts on Sonneborn-Berger, Buchholz tiebreak and Median tiebreak only. In the FIDE documentation (C4.3.4, point 3.2) "basic pairing principles" this is mentioned too. Of course this results into pairing diffferences from time to time, especially when there are floaters.
Did I miss anything in the (FIDE) documentation, is this a bug in the BBP Pairings engine, maybe a deliberate change, maybe a future Burstein version?
Best regards, JP.
Can someone help please?
./bbpPairings.exe
./bbpPairings.exe: /lib/libc.so.6: version GLIBC_2.33' not found (required by ./bbpPairings.exe) ./bbpPairings.exe: /lib/libc.so.6: version
GLIBC_2.25' not found (required by ./bbpPairings.exe)
./bbpPairings.exe: /lib/libc.so.6: version GLIBC_2.35' not found (required by ./bbpPairings.exe) ./bbpPairings.exe: /lib/libc.so.6: version
GLIBC_2.32' not found (required by ./bbpPairings.exe)
./bbpPairings.exe: /lib/libc.so.6: version GLIBC_2.34' not found (required by ./bbpPairings.exe) ./bbpPairings.exe: /lib/libc.so.6: version
GLIBC_2.36' not found (required by ./bbpPairings.exe)
skgronau.de>
skgronau.de> uname -a
Linux gwaay 3.10.0-1160.88.1.el7.x86_64 #1 SMP Tue Mar 7 15:41:52 UTC 2023 x86_6 4 x86_64 x86_64 GNU/Linux
Hello Jeremy,
A Sevilla user created a situation where he preselected a PAB. When the pairing with BBP Pairings was done, some kind of mess existed. The player with the preselected PAB (marked 0000 U) in the .trf was considered the one with a highest score, and another player was rewarded the PAB.
Should this be considered a bug or should I not offer to allow these kind of .trf files? Anyway, the JaVaFo engine paired the same .trf as I desired.
See the attachment, where the intention was that player 17 got the (pre-assigned) PAB.
Best regards, JP.
Thanks for sharing source.
How can i build from source in ubuntu?
With gcc 10.3.1 (alpine), I am unable to build due to these unsupported -W flags:
g++: error: unrecognized command-line option '-Wctad-maybe-unsupported'
g++: error: unrecognized command-line option '-Warray-parameter=2'
g++: error: unrecognized command-line option '-Winvalid-imported-macros'
cc1plus: error: command-line option '-Wenum-conversion' is valid for C/ObjC but not for C++ [-Werror]
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.