mon-entreprise/publicodes/source
Maxime Quandalle d7f140334e 🐎 Accélère l'inversion
La fonction `uniroot` prend 2 paramètres d'amorçage "min" et "max" qui
nous définissions jusqu'alors comme des minimums et maximum absolus
-10^8 et +10^8. Vu que nous sommes obligés de calculer au moins une
première valeur à l'extérieur de `uniroot` notamment pour calculer les
variables manquantes, ce commit permet de ré-utiliser ce calcul dans
l'amorçage d' `uniroot`.

Les gains de performances sont détaillés dans la PR associée.

Par ailleurs supprime l'option "valeurs négatives possibles" rendue
obsolète.

Il y a des légers décalages d'1€ sur une dizaine de snapshots qui liés à
des arrondis à l'euro. On calcule en effet les inversions à 10 centimes
près et on peut donc tomber sur une valeur de xx,54€ là où la vraie
valeur est xx,48€ ce qui donne 1€ de différence avec l'arrondi alors que
la différence initialement calculée est inférieure à 10 centimes.

Par curiosité j'ai rejoué les tests de non-régressions en changeant les
paramètres d'`uniroot` pour avoir une précision au centime près (en
augmentant le nombre max d'itération à 50) et il se trouve que sur la
dizaine de tests différents entre ce commit et la version d'avant une
moitié des arrondis à l'euro étaient faux avant et corrects maintenant
et inversement pour l'autre moitié.
2020-11-23 15:55:17 +01:00
..
components 🐎 Accélère l'inversion 2020-11-23 15:55:17 +01:00
cyclesLib transforme applicable si et non applicable si en mécanisme chainée 2020-11-04 11:59:03 +01:00
locales 🔥 Sépare le moteur dans un packet isolé 2020-05-14 15:25:22 +02:00
mecanisms 🐎 Accélère l'inversion 2020-11-23 15:55:17 +01:00
types ⚙️ Ajoute un attribut "dependencies" sur les règles parsées 2020-11-12 10:24:35 +01:00
date.ts 🔥 Sépare le moteur dans un packet isolé 2020-05-14 15:25:22 +02:00
error.ts 🔥 Sépare le moteur dans un packet isolé 2020-05-14 15:25:22 +02:00
evaluateReference.ts ⬆ MAJ TypeScript vers 4.1 2020-11-20 12:08:21 +01:00
evaluateRule.ts 🐎 Ajout d'un cache pour l'applicabilité 2020-11-13 11:32:33 +01:00
evaluation.tsx ⚙️ Petites simplifications du code du moteur 2020-11-05 18:25:43 +01:00
format.ts Termine le formulaire de demande de mobilité en Europe 2020-07-03 16:40:43 +02:00
grammar.ne Termine le formulaire de demande de mobilité en Europe 2020-07-03 16:40:43 +02:00
grammarFunctions.js ⚙️ Petites simplifications du code du moteur 2020-11-05 18:25:43 +01:00
i18n.ts 🔥 Sépare le moteur dans un packet isolé 2020-05-14 15:25:22 +02:00
index.ts ⚙️ Nouvelle API d'évaluation 2020-11-05 10:22:48 +01:00
nodeUnits.ts 🐎 Accélère l'inversion 2020-11-23 15:55:17 +01:00
parse.tsx 🔥 Rm régularisation 2020-11-17 17:57:36 +01:00
parseReference.ts ⚙️ Ajoute un attribut "dependencies" sur les règles parsées 2020-11-12 10:24:35 +01:00
parseRule.tsx ⚙️ Ajoute un attribut "dependencies" sur les règles parsées 2020-11-12 10:24:35 +01:00
parseRules.ts transforme applicable si et non applicable si en mécanisme chainée 2020-11-04 11:59:03 +01:00
ruleUtils.ts 🐛 Supprime l'obligation de déclarer les parents dans le Publicode Studio 2020-11-12 10:24:35 +01:00
temporal.ts 🔥 Sépare le moteur dans un packet isolé 2020-05-14 15:25:22 +02:00
translateRules.ts 🔥 Refacto des contrôles 2020-09-22 19:21:58 +01:00
uniroot.ts 🐎 Accélère l'inversion 2020-11-23 15:55:17 +01:00
units.ts 🔥 Supprime un TODO obsolète 2020-06-16 14:09:23 +02:00
utils.ts 🔥 Sépare le moteur dans un packet isolé 2020-05-14 15:25:22 +02:00