# Rekenkwaliteit, definities en grenzen

De gedeelde rekenkern wordt gebruikt door de browser én door een afzonderlijke serverworker. De browserworker heeft een tijdslimiet van 2 seconden; de serverworker 2,5 seconden en een geheugenlimiet. Formules zijn maximaal 512 tekens, maximaal 256 knopen en beperkt genest. Er is geen `eval`, scriptinvoer, CAS, symbolische differentiatie/integratie, programmabibliotheek of huiswerkoplosser.

## Onafhankelijke controles

207 reproduceerbare referentiegevallen zijn gegenereerd met de standaardbibliotheek van Python: `fractions.Fraction`, `math`, `statistics` en `statistics.NormalDist`. De seed is 20260906. De Python-code importeert de JavaScript-rekenkern niet. Aanvullende analytische controles gebruiken onder andere wortel 2, integraal van x², integraal van sin(x), afgeleide van x³ en expliciete meetkundige rijen. Randgevallen testen ongeldige invoer, onderloop, overloop en verdachte discontinuïteiten.

Vijf numerieke onderdelen uit officiële examens havo B en vwo A 2026 zijn aanvullend met de correctievoorschriften gecontroleerd; zie het bronnenregister. Teststatus en broncontrolesommen staan in `evidence/verification.json`. Een geslaagde test bewijst geen juistheid voor alle mogelijke invoer.

## Functieregister

| Functie | Implementatie / definitie | Belangrijke grens |
| --- | --- | --- |
| +, −, ×, ÷, machten en breuken | IEEE-754 binary64 voor numeriek rekenen; daarnaast gereduceerde BigInt-rationalen voor exacte rationale bewerkingen | Geen stilzwijgende afronding op weergavecijfers; niet-eindige uitkomsten en onderloop krijgen een melding. Exacte gehele machten begrensd om geheugengebruik te beheersen. |
| sqrt, cbrt, abs, ln, log, exp | Reële standaardfuncties, log met optioneel grondtal | Geen complexe getallen; domeinfouten expliciet; loggrondtal positief en ongelijk aan 1 |
| sin/cos/tan en inversen | RAD of DEG expliciet in profiel | Zeer grote hoeken geweigerd; tangens te dicht bij een pool geweigerd; argumentreductie blijft numeriek |
| faculteit, nCr, nPr | Exacte gehele berekeningen, functieklasse kansrekening | Gehele n tot 170; ook via directe formule geblokkeerd als kansrekening uitstaat |
| Grafieken | Maximaal 4 functies, adaptieve onderverdeling, middenpunttest, afbreken bij ongeldigheid/grote sprong | Geen wiskundige garantie dat iedere pool, piek, domeincomponent of trilling wordt gevonden; venster expliciet; lijnpatronen plus kleuren |
| Waardentabellen | Maximaal 201 rijen; stap wordt niet afgerond op zichtbare decimalen | Ongedefinieerde cel toont melding; geen stilzwijgende nul |
| Nulpunt/snĳpunt | Bisectie na tekenwisseling, maximaal 100 iteraties, relatieve residucontrole | Veronderstelt continuïteit; vindt geen raaknulpunten zonder tekenwisseling; gevonden punt niet automatisch uniek |
| Extremum | Gulden-snedezoeken, verificatie lokaal en binnen interval | Veronderstelt één extremum in het interval; geen globale garantie, randoptimum geeft melding |
| Afgeleide | Centrale verschillen op twee stapgroottes, Richardson-correctie en vergelijking links/rechts | Numerieke benadering; knikken en ongeschikte schaal worden zo mogelijk geweigerd; foutschatting is geen bewezen bovengrens |
| Integraal | Adaptieve Simpsonkwadratuur, 24 startintervallen, maximaal 60.000 evaluaties | Alleen voldoende gladde functies op een eindig interval; oscillaties kunnen aliasing geven. Geen gegarandeerde methode voor discontinuïteiten of oneigenlijke integralen. |
| Beschrijvende statistiek | Welford-variantie; populatie σ gebruikt n, steekproef s gebruikt n−1 | 1–10.000 waarnemingen, absolute waarden ≤10¹⁰⁰; voor n=1 geen s. Geen gewichten/frequentiekolom. |
| Kwartielen | Mediaan van onderste/bovenste helft; bij oneven n middelste waarde uitgesloten | Voor n=1 beide kwartielen gelijk aan die waarde. Andere apparaten kunnen een andere kwartielconventie gebruiken. |
| Regressie | Gewone kleinste kwadraten: lineair; logtransformatie voor exponentieel en macht | R² bij getransformeerde modellen op ln(y); geen causale interpretatie; gelijke/bijna gelijke x en ongeldige logwaarden geweigerd |
| Binomiaal | Som van log-PMF-termen, Lanczos loggamma | Gehele 0≤n≤10.000; 0≤p≤1; grenzen inclusief, geheel en binnen [0,n]. Bij n=10.000 gebruikt één Pythonreferentie ook loggamma: onafhankelijk platform, geen onafhankelijk algoritme. |
| Normaal | Geschaalde kwadratuur van dichtheid | Eindige gestandaardiseerde grenzen binnen [−12,12]. `-inf`/`inf` gebruiken die grenzen als afkap; weggelaten staartmassa circa 1,8×10⁻³³ per kant. Geen continuïteitscorrectie. |
| Inverse normaal | Bisectie op de kleine staart en symmetrie, zodat geen bijna gelijke cumulatieve waarden worden afgetrokken | Kans tussen 10⁻¹² en 1−10⁻¹²; extreme grenzen apart gecontroleerd |
| Poisson | Som van log-PMF-termen | 0≤λ≤700, gehele 0≤k≤10.000; grenzen inclusief |
| Rijen | Expliciet u(n) of eersteorde recursie u(n+1)=f(u(n),n), met deelsom | Maximaal 1000 termen, beginindex 0–100.000. Geen gekoppelde rijen of tweedeorde recursie. |

## Exact en benaderd

Alle decimale literals worden als exacte rationalen opgebouwd waar de grootte dat toelaat. Rationale bewerkingen kunnen daarom exact worden getoond, bijvoorbeeld 0,1+0,2 = 3/10. Numerieke functies zoals `sqrt(2)` worden als benaderingen getoond; het ontbreken van een exacte weergave beweert niet dat een exacte wiskundige vorm niet bestaat.

De numerieke weergave is maximaal 12 significante cijfers. Intern blijven binary64-waarden en, waar beschikbaar, exacte breuken behouden. Een tussenberekening die buiten het eindige numerieke bereik valt wordt geweigerd, ook wanneer een grotere samengestelde formule theoretisch later weer binnen bereik zou kunnen komen. Zeer ongunstige schaal en subtractieve uitwissing blijven algemene beperkingen bij benaderde rekenfuncties.

## Vrijgave voor toetsen

`VALIDATED` in het profielregister is uitsluitend de technische allowlist die door deze testset wordt ondersteund. Het is geen didactische of onafhankelijke vrijgave. Functies buiten die lijst kunnen niet in een serverprofiel. De build weigert wanneer testresultaten falen of de geteste bestanden daarna veranderen.

**De hele huidige uitgave staat voor beoordeelde toetsen nog op niet vrijgegeven.** De server kan geen gecontroleerde toets maken. Voor vrijgave zijn aanvullend nodig: bronmatrix per vak/jaar, vergelijking met representatieve officiële opgaven en correctievoorschriften, docentbeoordeling van te behouden leerlingvaardigheden, onafhankelijke rekenreview en apparaat-/beveiligingsacceptatie. Bij gevonden fouten eerst functie verwijderen uit de allowlist, controles uitbreiden en een nieuwe vaste versie uitbrengen; een lopende afname niet bijwerken.
