moteur : la cohérence avec le total ignore un manque sous le demi-watt
Un manque de 10⁻¹² W, arrondi de la somme des phases, changeait des décisions au douzième chiffre dans le scénario run de la preuve decisions, sans rien protéger. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
3dfb74dcb3
commit
8eb2f7b00b
@ -98,7 +98,9 @@ QList<double> tiragesCoherentsAvecLeTotal(const QList<double> &parPhaseW, double
|
||||
importe += qMax(0.0, w);
|
||||
}
|
||||
const double manque = totalW - somme;
|
||||
if (manque <= 0)
|
||||
// Sous le demi-watt, c'est l'arrondi d'une somme de flottants, pas une lecture en retard : la
|
||||
// corriger changerait des décisions au douzième chiffre sans rien protéger.
|
||||
if (manque <= 0.5)
|
||||
return tirages; // les phases disent au moins ce que dit le total : rien à corriger
|
||||
for (double &w : tirages)
|
||||
w += importe > 0 ? manque * qMax(0.0, w) / importe : manque / tirages.size();
|
||||
|
||||
@ -116,9 +116,10 @@ QString drawCapSourceCode(DrawCapSource s);
|
||||
*
|
||||
* \param parPhaseW Tirage lu sur chaque phase, en watts (import > 0, export < 0).
|
||||
* \param totalW Puissance totale du même compteur, en watts (import > 0).
|
||||
* \return Les mêmes tirages si leur somme atteint le total. Sinon, le MANQUE (total − somme) est
|
||||
* ajouté aux phases qui importent, au prorata de ce qu'elles lisent — ou à parts égales si
|
||||
* aucune n'importe. Aucune valeur n'est jamais diminuée. Liste vide : rendue telle quelle.
|
||||
* \return Les mêmes tirages si leur somme atteint le total, à un demi-watt près. Sinon, le
|
||||
* MANQUE (total − somme) est ajouté aux phases qui importent, au prorata de ce qu'elles lisent
|
||||
* — ou à parts égales si aucune n'importe. Aucune valeur n'est jamais diminuée. Liste vide :
|
||||
* rendue telle quelle.
|
||||
*
|
||||
* \par Pourquoi
|
||||
* Les phases d'un compteur triphasé somment à son total : la phase la plus chargée porte AU MOINS
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user