Formules

Het programma kent een ingebouwde runtime-formule-evaluatie-functie. Deze functie rekent formules uit die als gewone tekst ingegeven zijn. Naast de normale aritmetische functies, kunnen verschillende wiskundige en logische functies gebruikt worden. Ook zijn een aantal gereserveerde variabelen te gebruiken.

De evaluatie houdt zich aan de normale verwerkingsvolgorde (vermenigvuldigen gaat voor optellen). Met behulp van haakjes is de verwerkingsvolgorde aan te passen.

Aritmetische functies
expr1 + expr2 Optellen van twee expressies
expr1 - expr2
-expr
Aftrekken van twee expressies
Negatie
expr1 * expr2 Vermenigvuldigen van twee expressies
expr1 / expr2 Delen van twee expressies. expr2 mag niet nul zijn
expr1 ^ expr2 Machtsverheffen
expr1 % expr2 Modulo van expr1 gedeeld door expr2

Parameters (per speler)
W Het aantal Winstpartijen
V Het aantal Verliespartijen (in de Punten- en Klasseaanpassingsformules)
Het klasseverschil (in de Voorgift- en Komiformules)
J Het aantal partijen in Jigo geëindigd
P Het aantal gespeelde partijen (=W+V+J)
R De ronde (telt vanaf 1) waarvoor de berekening plaatsvindt
K De huidige klasse (let op: in tienden van echte klasses)

Overige functies
sqrt(expr) De wortel van expr
abs(expr) De absolute waarde van expr
sign(expr) Het teken van expr: 1 voor positief, -1 voor negatief en 0 voor nul
max(expr1,expr2,...,exprn) De maximale waarde van alle expressies (n is minimaal 1)
min(expr1,expr2,...,exprn) De minimale waarde van alle expressies (n is minimaal 1)

Logische expressies
expr1 < expr2 Test kleiner dan, resultaat is 1 (waar) of 0 (onwaar)
expr1 > expr2 Test groter dan, resultaat is 1 (waar) of 0 (onwaar)
expr1 <= expr2 Test kleiner dan of gelijk aan, resultaat is 1 (waar) of 0 (onwaar)
expr1 >= expr2 Test groter dan of gelijk aan, resultaat is 1 (waar) of 0 (onwaar)
expr1 <> expr2
expr1 != expr2
Test ongelijk aan, resultaat is 1 (waar) of 0 (onwaar)
expr1 = expr2 Test gelijk aan, resultaat is 1 (waar) of 0 (onwaar)
als(expr1,expr2,expr3) Als expr1 waar is (waarde niet nul), dan expr2, anders expr3
(expr) Groeperen


Let op: De functie-evaluator werkt ook intern uitsluitend met integer (gehele) getallen. Dit betekent dat er rekening gehouden moet worden met de evaluatie-volgorde, in verband met afrondingen.

Voorbeeld: het berekenen van het winstpercentage:
100 * (W + J / 2) / P   Gaat fout, omdat bij een oneven aantal jigo-partijen een ongewenste afronding plaats vindt.
(100 * W + 50 * J) / P   Dit geeft de correcte uitkomst.


Voorbeelden:
(100 * W + 50 * J) / P
Het winstpercentage.


Max(Min((980 * K / 100 + 5) / 10, K-1), 0)
Formule voor het vaststellen van de nieuwe klasse na een winstpartij:
De nieuwe klasse is 98% van de oude klasse, maar altijd minimaal 1/10 klasse lager, maar nooit minder dan 0.


(1000 * W - sqrt(1000000 * W)) / P
De Leidse wortelformule.


min((V + 2) / 2, 9)
Voorgift in stenen op 19x19
als(V < 18, 6 * ((V + 1) % 2), 5 * (17 - V))
Komi op 19x19.