bug-gnubg
[Top][All Lists]

## Réf. : [Bug-gnubg] Fix for problem with wrong double statistics

 From: Massimiliano . Maini Subject: Réf. : [Bug-gnubg] Fix for problem with wrong double statistics Date: Mon, 20 Mar 2006 13:41:18 +0100

```
I think taht the second fix is wrong ! Here's your 2nd fix :

425,426c384
<         if ( pmr->CubeDecPtr->aarOutput[ 0 ][ OUTPUT_WIN ] >=
<              CashPoint( pms, pmr->CubeDecPtr->aarOutput[ 0 ] ) ) {
---
>         if ( arDouble[ OUTPUT_TAKE ] > 1.0f ) {

Here we are in a missed double situation (it was correct to double) and
we have to estabilish if we are above or below the cash point.

This soudn't be done comparing the current equity with respect to 1.0f,
but comparing the equities of a pass and a take.

It was a DOUBLE :
If EQ[D/T]>EQ[D/P] then we are ABOVE CP (for the opponent it is
correct to pass)
If EQ[D/T]<EQ[D/P] then we are BELOW CP (for the opponent it is
correct to take)

I would do this :

425,426c384
<         if ( pmr->CubeDecPtr->aarOutput[ 0 ][ OUTPUT_WIN ] >=
<              CashPoint( pms, pmr->CubeDecPtr->aarOutput[ 0 ] ) ) {
---
>         if ( arDouble[ OUTPUT_TAKE ] > arDouble[ OUTPUT_PASS ] ) {

The 2 other changes (remove CashPoint and estabilishing if we are above too
good or below double point) are fine, even if I would do the TG/DP check
comparing equities of take/pass instead of explicitly comparing to 1.0f,
just to be uniform with previous check. SOmething like :

It was a NO DOUBLE :
If EQ[D/T]>EQ[D/P] then we are ABOVE TG (for the opponent it is
correct to pass)
If EQ[D/T]<EQ[D/P] then we are BELOW DP (for the opponent it is
correct to take)

544,545c502
<         if ( pmr->CubeDecPtr->aarOutput[ 0 ][ OUTPUT_WIN ] >=
<          CashPoint( pms, pmr->CubeDecPtr->aarOutput[ 0 ] ) ) {
---
>         if ( arDouble[ OUTPUT_TAKE] > arDouble[ OUTPUT_PASS ] ) {

I kinda find it more elegant, even if "your" one is probably more explicit.

MaX.

```