Plotvera by AnaphaseOpen the appVersionsValidationChangelog

Plotvera validation

Results of the automated validation run for version 1.2.0-beta.87 (statistics engine 1.20.0, build c7af80d), run 2026-10-24 09:06 UTC.

815checks
776passed
39known limitations, explained below
0unexpected failures

Every expected value comes from R (the script and R version are named in each case) or from a certified reference (eg NIST StRD). Nothing is typed in by hand. Methods that have no independent reference yet are listed as gaps at the end, not hidden. This is an engineering check of the calculations, not a certification or proof that an analysis suits a particular study.

Known limitations are checks Plotvera does not pass and that the suite expects not to pass, each with the reason written next to it. Most are NIST's hardest curve-fitting problems started far from the answer, where Plotvera stops and says the fit did not converge rather than report a wrong answer. A known limitation that starts passing, or a new failure, stops the release.

How it works and how to run it yourself: VALIDATION.md. Raw results: results.json.

SuiteChecksResultLargest relative error (passing checks)
Numerical accuracy against R and certified values347308 passed, 39 known limitations1.2e-4
Same input, same version, same numbers1010 passed2.8e-8
Import and re-import keeps every number248248 passed
Graphs draw the same as the approved pictures133133 passed
Stress and fuzz tests (generated inputs)7777 passed

Numerical accuracy against R and certified values

MethodCasesResultLargest relative error (passing cases)Reference and cases
One-way ANOVA1414 passed1.2e-4R 4.3.3 (car 3.1.5, multcomp 1.4.32, mvtnorm 1.4.2, lme4 2.0.6): stats::aov; Holm-Šídák step-down on pooled-SD t tests computed in anova.R [validation/r/anova.R]; NIST StRD certified values
Cases
  • pass PlantGrowth (Dobson 1983): ctrl, trt1, trt2 (n = 10 each) (source), max relative error 1.1e-8, tolerance 1e-9
    18 quantities compared; worst relative error 1.12e-8 on ctrl-trt1 Holm-Šídák P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: SS/MS/F/df/means 1e-9 relative; P values and CI bounds 0.000001 (distribution-function precision).
  • pass chickwts: 6 feeds, unequal n (10-14), casein = control/first column (source), max relative error 3.5e-8, tolerance 1e-9
    54 quantities compared; worst relative error 3.52e-8 on casein-sunflower Holm-Šídák P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: SS/MS/F/df/means 1e-9 relative; P values and CI bounds 0.000001 (distribution-function precision).
  • pass InsectSprays (Beall 1942): 6 sprays, counts with many ties (source), max relative error 2.0e-8, tolerance 1e-9
    54 quantities compared; worst relative error 1.99e-8 on C-D Holm-Šídák P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: SS/MS/F/df/means 1e-9 relative; P values and CI bounds 0.000001 (distribution-function precision).
  • pass NIST StRD SiRstv (25 observations) (source), max relative error 8.7e-14, tolerance 1e-9
    9 quantities compared; worst relative error 8.73e-14 on F. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Minimum log relative error (LRE, digits of agreement with the certified values) 13.1. Raw file validation/reference/nist/anova/SiRstv.dat.
  • pass NIST StRD SmLs01 (189 observations) (source), max relative error 7.4e-16, tolerance 1e-9
    9 quantities compared; worst relative error 7.40e-16 on SS within. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Minimum log relative error (LRE, digits of agreement with the certified values) 15.0. Raw file validation/reference/nist/anova/SmLs01.dat.
  • pass NIST StRD SmLs02 (1809 observations) (source), max relative error 1.0e-15, tolerance 1e-9
    9 quantities compared; worst relative error 1.04e-15 on MS within. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Minimum log relative error (LRE, digits of agreement with the certified values) 15.0. Raw file validation/reference/nist/anova/SmLs02.dat.
  • pass NIST StRD SmLs03 (18009 observations) (source), max relative error 1.8e-14, tolerance 1e-9
    9 quantities compared; worst relative error 1.85e-14 on SS within. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Minimum log relative error (LRE, digits of agreement with the certified values) 13.7. Raw file validation/reference/nist/anova/SmLs03.dat.
  • pass NIST StRD SmLs04 (189 observations) (source), max relative error 8.9e-11, tolerance 1e-9
    9 quantities compared; worst relative error 8.87e-11 on SS between. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Minimum log relative error (LRE, digits of agreement with the certified values) 10.1. Raw file validation/reference/nist/anova/SmLs04.dat.
  • pass NIST StRD SmLs05 (1809 observations) (source), max relative error 1.1e-10, tolerance 1e-9
    9 quantities compared; worst relative error 1.14e-10 on SS between. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Minimum log relative error (LRE, digits of agreement with the certified values) 9.9. Raw file validation/reference/nist/anova/SmLs05.dat.
  • pass NIST StRD SmLs06 (18009 observations) (source), max relative error 1.2e-10, tolerance 1e-9
    9 quantities compared; worst relative error 1.16e-10 on SS between. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Minimum log relative error (LRE, digits of agreement with the certified values) 9.9. Raw file validation/reference/nist/anova/SmLs06.dat.
  • pass NIST StRD SmLs07 (189 observations) (source), max relative error 9.3e-5, tolerance 1e-3
    11 quantities compared; worst relative error 9.30e-5 on SS between. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Minimum log relative error (LRE, digits of agreement with the certified values) 4.0. Raw file validation/reference/nist/anova/SmLs07.dat. Data have 13 significant digits at 0.1 resolution, below binary64 resolution at 1e12 (ulp 1.2e-4); certified values compared at 1e-3, and the sums of squares compared at 1e-12 with exact rational arithmetic on the binary64 inputs Plotvera receives.
  • pass NIST StRD SmLs08 (1809 observations) (source), max relative error 1.2e-4, tolerance 1e-3
    11 quantities compared; worst relative error 1.19e-4 on SS between. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Minimum log relative error (LRE, digits of agreement with the certified values) 3.9. Raw file validation/reference/nist/anova/SmLs08.dat. Data have 13 significant digits at 0.1 resolution, below binary64 resolution at 1e12 (ulp 1.2e-4); certified values compared at 1e-3, and the sums of squares compared at 1e-12 with exact rational arithmetic on the binary64 inputs Plotvera receives.
  • pass NIST StRD SmLs09 (18009 observations) (source), max relative error 1.2e-4, tolerance 1e-3
    11 quantities compared; worst relative error 1.22e-4 on SS between. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Minimum log relative error (LRE, digits of agreement with the certified values) 3.9. Raw file validation/reference/nist/anova/SmLs09.dat. Data have 13 significant digits at 0.1 resolution, below binary64 resolution at 1e12 (ulp 1.2e-4); certified values compared at 1e-3, and the sums of squares compared at 1e-12 with exact rational arithmetic on the binary64 inputs Plotvera receives.
  • pass NIST StRD AtmWtAg (48 observations) (source), max relative error 7.0e-11, tolerance 1e-9
    9 quantities compared; worst relative error 7.00e-11 on F. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Minimum log relative error (LRE, digits of agreement with the certified values) 10.2. Raw file validation/reference/nist/anova/AtmWtAg.dat.
One-way ANOVA (Dunnett vs first column)33 passed5.4e-5R 4.3.3 (car 3.1.5, multcomp 1.4.32, mvtnorm 1.4.2, lme4 2.0.6): multcomp::glht(mcp(g = "Dunnett")) + mvtnorm::qmvt, mvtnorm::GenzBretz(maxpts = 5e5, abseps = 1e-5), seed 20261001 [validation/r/anova.R]
Cases
  • pass PlantGrowth (Dobson 1983): ctrl, trt1, trt2 (n = 10 each) (source), max relative error 5.4e-5, tolerance 1e-9
    8 quantities compared; worst relative error 5.44e-5 on trt2-ctrl CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. The R reference is a randomised quasi-Monte-Carlo integral (reported abs. error 1.0e-15), so adjusted P values are compared absolutely at 0.00005 and simultaneous CI bounds at 1e-4 relative to the half-width; mean differences at 1e-9.
  • pass chickwts: 6 feeds, unequal n (10-14), casein = control/first column (source), max relative error 1.9e-5, tolerance 1e-9
    20 quantities compared; worst relative error 1.88e-5 on sunflower-casein CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. The R reference is a randomised quasi-Monte-Carlo integral (reported abs. error 9.6e-6), so adjusted P values are compared absolutely at 0.00005 and simultaneous CI bounds at 1e-4 relative to the half-width; mean differences at 1e-9.
  • pass InsectSprays (Beall 1942): 6 sprays, counts with many ties (source), max relative error 3.7e-5, tolerance 1e-9
    20 quantities compared; worst relative error 3.70e-5 on F-A CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. The R reference is a randomised quasi-Monte-Carlo integral (reported abs. error 9.6e-6), so adjusted P values are compared absolutely at 0.00005 and simultaneous CI bounds at 1e-4 relative to the half-width; mean differences at 1e-9.
One-way ANOVA (log10 test scale)11 passed8.8e-13R 4.3.3 (car 3.1.5, multcomp 1.4.32, mvtnorm 1.4.2, lme4 2.0.6): stats::aov(log10(y) ~ g) [validation/r/anova.R]
Cases
  • pass PlantGrowth, log10-transformed before testing (Plotvera test-scale option) (source), max relative error 8.8e-13, tolerance 1e-9
    5 quantities compared; worst relative error 8.76e-13 on P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: SS/MS/F/df/means 1e-9 relative; P values and CI bounds 0.000001 (distribution-function precision).
One-way ANOVA (Tukey HSD)33 passed8.0e-11R 4.3.3 (car 3.1.5, multcomp 1.4.32, mvtnorm 1.4.2, lme4 2.0.6): stats::TukeyHSD (ptukey/qtukey) [validation/r/anova.R]
Cases
  • pass PlantGrowth (Dobson 1983): ctrl, trt1, trt2 (n = 10 each) (source), max relative error 8.7e-12, tolerance 1e-9
    12 quantities compared; worst relative error 8.74e-12 on ctrl-trt1 CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tukey-Kramer for unequal n. Mean differences 1e-9; CI bounds 0.000001 of the half-width; adjusted P values 1e-10 absolute because R's ptukey and Plotvera's (jStat port of it) are both 16-point Gauss-Legendre integrals with the upper tail formed as 1 - CDF (see numerical.distributions ptukeyUpper).
  • pass chickwts: 6 feeds, unequal n (10-14), casein = control/first column (source), max relative error 7.8e-11, tolerance 1e-9
    60 quantities compared; worst relative error 7.82e-11 on casein-sunflower CI upper. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tukey-Kramer for unequal n. Mean differences 1e-9; CI bounds 0.000001 of the half-width; adjusted P values 1e-10 absolute because R's ptukey and Plotvera's (jStat port of it) are both 16-point Gauss-Legendre integrals with the upper tail formed as 1 - CDF (see numerical.distributions ptukeyUpper).
  • pass InsectSprays (Beall 1942): 6 sprays, counts with many ties (source), max relative error 8.0e-11, tolerance 1e-9
    60 quantities compared; worst relative error 8.03e-11 on C-D CI upper. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tukey-Kramer for unequal n. Mean differences 1e-9; CI bounds 0.000001 of the half-width; adjusted P values 1e-10 absolute because R's ptukey and Plotvera's (jStat port of it) are both 16-point Gauss-Legendre integrals with the upper tail formed as 1 - CDF (see numerical.distributions ptukeyUpper).
Two-way ANOVA (Type III)33 passed1.3e-7R 4.3.3 (car 3.1.5, multcomp 1.4.32, mvtnorm 1.4.2, lme4 2.0.6): car::Anova(lm(y ~ A * B, contrasts = contr.sum), type = 3) [validation/r/anova.R]
Cases
  • pass ToothGrowth (Crampton 1947): rows supp (OJ, VC) x columns dose (0.5, 1, 2), n = 10 per cell (source), max relative error 8.6e-9, tolerance 1e-9
    14 quantities compared; worst relative error 8.62e-9 on P A. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Type III sums of squares (sum-to-zero contrasts); balanced, so equal to sequential SS. Tolerances: SS/MS/F/df/means 1e-9 relative; P values and CI bounds 0.000001 (distribution-function precision).
  • pass warpbreaks (Tippett 1950): rows tension (L, M, H) x columns wool (A, B), n = 9 per cell (source), max relative error 1.3e-7, tolerance 1e-9
    14 quantities compared; worst relative error 1.34e-7 on P B. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Type III sums of squares (sum-to-zero contrasts); balanced, so equal to sequential SS. Tolerances: SS/MS/F/df/means 1e-9 relative; P values and CI bounds 0.000001 (distribution-function precision).
  • pass warpbreaks with rows 1, 2, 3, 20, 47 removed (unbalanced: Type III SS) (source), max relative error 2.2e-8, tolerance 1e-9
    14 quantities compared; worst relative error 2.21e-8 on P B. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Type III sums of squares (sum-to-zero contrasts); unbalanced design. Tolerances: SS/MS/F/df/means 1e-9 relative; P values and CI bounds 0.000001 (distribution-function precision).
Two-way ANOVA, repeated measures (columns repeated)11 passed9.3e-10R 4.3.3 (car 3.1.5, multcomp 1.4.32, mvtnorm 1.4.2, lme4 2.0.6): stats::aov(y ~ A * B + Error(S/B)) (split-plot); car::Anova(mlm, idata, idesign = ~B, type = 3) for Greenhouse-Geisser [validation/r/anova.R]
Cases
  • pass CO2 uptake (Potvin et al. 1990): rows Type (between, 6 plants each) x columns conc (7 levels, repeated within plant) (source), max relative error 9.3e-10, tolerance 1e-9
    15 quantities compared; worst relative error 9.31e-10 on P AB (GG). Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Huynh-Feldt compared with the Huynh & Feldt (1976) split-plot formula (N subjects, g groups); car's Lecoutre variant is 0.38584374200433724. Fixed in this release: Plotvera previously used N - 1 instead of N - g (see regression test below). Tolerances: SS/MS/F/df/means 1e-9 relative; P values and CI bounds 0.000001 (distribution-function precision).
Area under curve (trapezoid) (signed areas) / smooth (Savitzky-Golay)11 passed4.1e-14R 4.3.3 (zoo 1.9.1, investr 1.4.2, lme4 2.0.6, lmerTest 3.2.1, emmeans 2.0.4): net trapezoid area; positive/negative areas split at linear zero crossings; Savitzky-Golay = local quadratic lm() fit over 7 points (interior points) [validation/r/misc.R]
Cases
  • pass nottem 1920-1921 monthly temperature minus its mean (crosses zero) (source), max relative error 4.1e-14, tolerance 1e-9
    21 quantities compared; worst relative error 4.10e-14 on Savitzky-Golay(7) at month 16. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Positive/negative areas split segments at linear zero crossings. Savitzky-Golay (engine smoothXY, window 7, quadratic) compared at interior points only: Plotvera clamps the window at the ends (repeats the end value), a convention with no R equivalent; the R reference is an explicit local quadratic least-squares fit, independent of the tabulated coefficients. Smoothed values scaled by max(|value|, 1).
Area under curve (trapezoid) / integral / derivative / smooth11 passed2.2e-16R 4.3.3 (zoo 1.9.1, investr 1.4.2, lme4 2.0.6, lmerTest 3.2.1, emmeans 2.0.4): trapezoid sum(diff(x)*(y[-n]+y[-1])/2); cumsum; central differences (forward/backward at ends); zoo::rollapply(y, 5, mean, partial = TRUE) [validation/r/misc.R]
Cases
  • pass Indometh subject 1: conc vs time (11 unequally spaced points) (source), max relative error 2.2e-16, tolerance 1e-9
    35 quantities compared; worst relative error 2.19e-16 on moving average (window 5) at row 6. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Trapezoidal rule; central differences with one-sided ends; centred moving average whose window shrinks at the ends (zoo::rollapply partial = TRUE). Cumulative areas scaled by the total area.
Bland-Altman agreement11 passed2.0e-9R 4.3.3 (zoo 1.9.1, investr 1.4.2, lme4 2.0.6, lmerTest 3.2.1, emmeans 2.0.4): bias = mean(d); LoA = bias +/- 1.96 SD (Bland & Altman 1986); CIs: bias +/- t SD/sqrt(n), LoA +/- t sqrt(3 SD^2/n) (Bland & Altman 1986) [validation/r/misc.R]
Cases
  • pass sleep: drug 1 vs drug 2 treated as two methods on 10 patients (source), max relative error 2.0e-9, tolerance 1e-9
    10 quantities compared; worst relative error 2.02e-9 on bias 95% CI upper. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Limits of agreement use the conventional 1.96 multiplier, and their CIs the approximate SE sqrt(3 s²/n), both from Bland & Altman (1986); the R reference uses the same definitions (the 1999 paper's sqrt(1/n + 1.96²/(2(n-1))) gives slightly narrower intervals). Tolerances: closed-form 1e-9 relative; P values and CI bounds 0.000001.
Check data: Grubbs (replicates / subjects)66 passed4.9e-9R 4.3.3 (outliers 0.15): outliers::grubbs.test(x, type = 10, two.sided = TRUE); critical value outliers::qgrubbs(0.975, n) [validation/r/qc.R]
Cases
  • pass ELISA OD450 triplicate with one bad well (synthetic) (source), max relative error 1.1e-13, tolerance 1e-9
    8 quantities compared; worst relative error 1.07e-13 on P (two-sided). Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. The flag is G > critical value; the P value is outliers::grubbs.test(two.sided = TRUE), ie 2·n·(1 − pt(t, n − 2)). Tolerances: G, mean, SD, CV 1e-9; critical value and P 0.000001.
  • pass Triplicate with one extreme replicate (synthetic) (source), max relative error 1.6e-13, tolerance 1e-9
    8 quantities compared; worst relative error 1.64e-13 on P (two-sided). Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. The flag is G > critical value; the P value is outliers::grubbs.test(two.sided = TRUE), ie 2·n·(1 − pt(t, n − 2)). Tolerances: G, mean, SD, CV 1e-9; critical value and P 0.000001.
  • pass Clean ELISA triplicate (synthetic) (source), max relative error 5.3e-12, tolerance 1e-9
    8 quantities compared; worst relative error 5.25e-12 on P (two-sided). Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. The flag is G > critical value; the P value is outliers::grubbs.test(two.sided = TRUE), ie 2·n·(1 − pt(t, n − 2)). Tolerances: G, mean, SD, CV 1e-9; critical value and P 0.000001.
  • pass qPCR quadruplicate with one high well (synthetic) (source), max relative error 2.1e-14, tolerance 1e-9
    8 quantities compared; worst relative error 2.15e-14 on P (two-sided). Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. The flag is G > critical value; the P value is outliers::grubbs.test(two.sided = TRUE), ie 2·n·(1 − pt(t, n − 2)). Tolerances: G, mean, SD, CV 1e-9; critical value and P 0.000001.
  • pass Tumour volume, 6 mice, one far out (synthetic) (source), max relative error 7.0e-11, tolerance 1e-9
    8 quantities compared; worst relative error 7.02e-11 on critical value (alpha 0.05, two-sided). Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. The flag is G > critical value; the P value is outliers::grubbs.test(two.sided = TRUE), ie 2·n·(1 − pt(t, n − 2)). Tolerances: G, mean, SD, CV 1e-9; critical value and P 0.000001.
  • pass Michelson speed of light, experiment 1 (datasets::morley, n = 20) (source), max relative error 4.9e-9, tolerance 1e-9
    8 quantities compared; worst relative error 4.88e-9 on P (two-sided). Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. The flag is G > critical value; the P value is outliers::grubbs.test(two.sided = TRUE), ie 2·n·(1 − pt(t, n − 2)). Tolerances: G, mean, SD, CV 1e-9; critical value and P 0.000001.
Check data: replicate CV33 passed0 (identical)R 4.3.3 (outliers 0.15): stats::sd(x) / mean(x) * 100 (n - 1 denominator) [validation/r/qc.R]
Cases
  • pass replicates 20, 31, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. CV = SD (n − 1 denominator) / mean × 100.
  • pass replicates 10, 12, 14, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. CV = SD (n − 1 denominator) / mean × 100.
  • pass replicates 0.452, 0.468, 0.445, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. CV = SD (n − 1 denominator) / mean × 100.
Check data: robust screen (MAD + BH, Q = 1%)11 passed4.2e-16R 4.3.3 (outliers 0.15): robust z = |x - median|/(MAD/0.6745), 2 * pnorm(-z), stats::p.adjust(method = 'BH'), flagged at adjusted P <= 0.01 [validation/r/qc.R]
Cases
  • pass Tumour volume, 6 mice (synthetic), max relative error 4.2e-16, tolerance 1e-9
    20 quantities compared; worst relative error 4.24e-16 on P 2. The same rule as the validated "Robust FDR outlier screening" analysis (rout.*). It is Plotvera's stand-in for Prism's ROUT, which it does not reproduce.
Chi-square upper-tail P value11 passed4.1e-11R 4.3.3: pchisq(x, df, lower.tail = FALSE) [validation/r/distributions.R]
Cases
  • pass 54-point grid of arguments (validation/r/distributions.R), max relative error 4.1e-11, tolerance 1e-6
    54 quantities compared; worst relative error 4.13e-11 on pChi(40, 2). Tolerance 0.000001, relative; probabilities use |a - e| / max(e, 0.000001) so P values below 0.000001 are held to 1e-12 absolute (upper tails are 1 - CDF: values below ~1e-16 return 0, displayed "< 0.0001").
Chi-square / Fisher exact44 passed4.7e-14R 4.3.3: stats::fisher.test (two-sided); stats::chisq.test(correct = TRUE); sample odds ratio ad/bc [validation/r/contingency.R]; R 4.3.3: stats::chisq.test(m) (Pearson, no continuity correction for r x c) [validation/r/contingency.R]; R 4.3.3: stats::chisq.test(m) [validation/r/contingency.R]
Cases
  • pass Fisher's Lady Tasting Tea (Fisher 1935; R ?fisher.test): 3, 1 / 1, 3 (source), max relative error 4.7e-14, tolerance 1e-9
    5 quantities compared; worst relative error 4.65e-14 on Yates P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera reports the sample odds ratio (ad/bc = 9); R's fisher.test estimate is the conditional MLE (6.408308867005788), a different estimator, so the sample OR is compared with its definition. The Baptista-Pike OR CI has no independent reference here (exact2x2 not installed). Tolerances: closed-form values 1e-9 relative; P values and CI bounds 0.000001.
  • pass Convictions of like-sex twins of criminals (Fisher 1962; R ?fisher.test): 2, 10 / 15, 3 (source), max relative error 3.2e-14, tolerance 1e-9
    5 quantities compared; worst relative error 3.21e-14 on Yates P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera reports the sample odds ratio (ad/bc = 0.04); R's fisher.test estimate is the conditional MLE (0.04693660882769891), a different estimator, so the sample OR is compared with its definition. The Baptista-Pike OR CI has no independent reference here (exact2x2 not installed). Tolerances: closed-form values 1e-9 relative; P values and CI bounds 0.000001.
  • pass HairEyeColor summed over sex: 4 hair x 4 eye colours (n = 592) (source), max relative error 2.3e-19, tolerance 1e-9
    3 quantities compared; worst relative error 2.33e-19 on P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: closed-form values 1e-9 relative; P values and CI bounds 0.000001.
  • pass HairEyeColor black/brown hair x brown/blue/hazel eyes (2 x 3) (source), max relative error 1.1e-14, tolerance 1e-9
    3 quantities compared; worst relative error 1.06e-14 on P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: closed-form values 1e-9 relative; P values and CI bounds 0.000001.
Correlation matrix11 passed7.9e-9R 4.3.3: stats::cor; stats::cor.test per pair [validation/r/regression.R]
Cases
  • pass mtcars mpg, disp, hp, wt, qsec (n = 32) (source), max relative error 7.9e-9, tolerance 1e-9
    45 quantities compared; worst relative error 7.92e-9 on P mpg-qsec. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: estimates/SE/statistics 1e-9 relative; P values and CI bounds 0.000001.
Cox proportional hazards44 passed1.8e-10R 4.3.3 (survival 3.5.8): survival::coxph(ties = 'efron', eps = 1e-11) [validation/r/survival.R]
Cases
  • pass survival::aml: acute myelogenous leukaemia, Maintained (reference) vs Nonmaintained, n = 23 (source), max relative error 1.2e-10, tolerance 1e-8
    11 quantities compared; worst relative error 1.25e-10 on LR P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Partial-likelihood Newton iterations on both sides, so estimates are held to 1e-8; P values and CI bounds 0.000001.
  • pass survival::ovarian: rx 1 (reference) vs rx 2, n = 26 (source), max relative error 1.1e-12, tolerance 1e-8
    11 quantities compared; worst relative error 1.07e-12 on Wald P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Partial-likelihood Newton iterations on both sides, so estimates are held to 1e-8; P values and CI bounds 0.000001.
  • pass survival::lung: male (reference) vs female, n = 228, status 2 = death (source), max relative error 6.0e-14, tolerance 1e-8
    11 quantities compared; worst relative error 5.99e-14 on LR P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Partial-likelihood Newton iterations on both sides, so estimates are held to 1e-8; P values and CI bounds 0.000001.
  • pass survival::veteran: standard (reference) vs test chemotherapy, n = 137 (source), max relative error 1.8e-10, tolerance 1e-8
    11 quantities compared; worst relative error 1.77e-10 on LR chi-square. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Partial-likelihood Newton iterations on both sides, so estimates are held to 1e-8; P values and CI bounds 0.000001.
curvefit: boltzmann11 passed1.9e-8R 4.3.3 (drc 4.0.0): stats::nls(y ~ B + (T - B)/(1 + exp((V - x)/S))), then Gauss-Newton polish with analytic gradient (stats::deriv); Wald CI estimate +/- qt(0.975, df) SE [validation/r/nonlinear.R]
Cases
  • pass DNase run 1: density vs ln(conc) (Boltzmann = SSfpl form) (source), max relative error 1.9e-8, tolerance 1e-4
    22 quantities compared; worst relative error 1.89e-8 on Bottom CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera starts from its own automatic initial values (the user path). R optimum polished to relative offset 3.7e-9. Tolerances: RSS, Sy.x, R² 1e-9; parameters 0.0001 relative to max(|estimate|, SE); SE and CI bounds 0.0001 (iterative optimisers on both sides; see file header).
curvefit: dose3pl11 passed1.2e-8R 4.3.3 (drc 4.0.0): stats::nls(y ~ B + (T - B)/(1 + 10^(L - x))), then Gauss-Newton polish with analytic gradient (stats::deriv); Wald CI estimate +/- qt(0.975, df) SE [validation/r/nonlinear.R]
Cases
  • pass DNase run 1: density vs log10(conc), Hill slope fixed at 1 (source), max relative error 1.2e-8, tolerance 1e-4
    18 quantities compared; worst relative error 1.21e-8 on Bottom. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera starts from its own automatic initial values (the user path). R optimum polished to relative offset 3.3e-9. Tolerances: RSS, Sy.x, R² 1e-9; parameters 0.0001 relative to max(|estimate|, SE); SE and CI bounds 0.0001 (iterative optimisers on both sides; see file header).
curvefit: dose4pl11 passed7.3e-8R 4.3.3 (drc 4.0.0): stats::nls(y ~ B + (T - B)/(1 + 10^((L - x) * H))), then Gauss-Newton polish with analytic gradient (stats::deriv); Wald CI estimate +/- qt(0.975, df) SE [validation/r/nonlinear.R]
Cases
  • pass DNase run 1: density vs log10(conc), n = 16 (source), max relative error 7.3e-8, tolerance 1e-4
    22 quantities compared; worst relative error 7.26e-8 on Bottom. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera starts from its own automatic initial values (the user path). R optimum polished to relative offset 1.1e-8. Tolerances: RSS, Sy.x, R² 1e-9; parameters 0.0001 relative to max(|estimate|, SE); SE and CI bounds 0.0001 (iterative optimisers on both sides; see file header).
curvefit: dose5pl11 passed2.0e-7R 4.3.3 (drc 4.0.0): stats::nls(y ~ B + (T - B)/(1 + 10^((L - x) * H))^S), then Gauss-Newton polish with analytic gradient (stats::deriv); Wald CI estimate +/- qt(0.975, df) SE [validation/r/nonlinear.R]
Cases
  • pass DNase run 1: density vs log10(conc), asymmetric 5PL (source), max relative error 2.0e-7, tolerance 1e-4
    26 quantities compared; worst relative error 2.02e-7 on LogC CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera starts from its own automatic initial values (the user path). R optimum polished to relative offset 3.8e-8. Tolerances: RSS, Sy.x, R² 1e-9; parameters 0.0001 relative to max(|estimate|, SE); SE and CI bounds 0.0001 (iterative optimisers on both sides; see file header). S: constrained positive and fitted in log10 coordinates, so Plotvera reports the CI on the log scale, exp(log(est) ± t·SE/est); compared with that interval computed in nonlinear.R from R's estimate and SE (R's symmetric Wald interval is a different, legitimate choice).
curvefit: expdecay11 passed2.7e-8R 4.3.3 (drc 4.0.0): stats::nls(y ~ P + (Y0 - P) * exp(-K * x)), then Gauss-Newton polish with analytic gradient (stats::deriv); Wald CI estimate +/- qt(0.975, df) SE [validation/r/nonlinear.R]
Cases
  • pass Indometh subject 1: plasma conc vs time (h), n = 11 (source), max relative error 2.7e-8, tolerance 1e-4
    18 quantities compared; worst relative error 2.72e-8 on Plateau CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera starts from its own automatic initial values (the user path). R optimum polished to relative offset 6.1e-11. Tolerances: RSS, Sy.x, R² 1e-9; parameters 0.0001 relative to max(|estimate|, SE); SE and CI bounds 0.0001 (iterative optimisers on both sides; see file header). K: constrained positive and fitted in log10 coordinates, so Plotvera reports the CI on the log scale, exp(log(est) ± t·SE/est); compared with that interval computed in nonlinear.R from R's estimate and SE (R's symmetric Wald interval is a different, legitimate choice).
curvefit: expgrow11 passed5.2e-8R 4.3.3 (drc 4.0.0): stats::nls(y ~ Y0 * exp(K * x)), then Gauss-Newton polish with analytic gradient (stats::deriv); Wald CI estimate +/- qt(0.975, df) SE [validation/r/nonlinear.R]
Cases
  • pass uspop 1790-1870 (millions) vs years since 1790, n = 9 (source), max relative error 5.2e-8, tolerance 1e-4
    14 quantities compared; worst relative error 5.18e-8 on Y0 CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera starts from its own automatic initial values (the user path). R optimum polished to relative offset 7.3e-11. Tolerances: RSS, Sy.x, R² 1e-9; parameters 0.0001 relative to max(|estimate|, SE); SE and CI bounds 0.0001 (iterative optimisers on both sides; see file header).
curvefit: expplateau11 passed4.1e-9R 4.3.3 (drc 4.0.0): stats::nls(y ~ M - (M - Y0) * exp(-K * x)), then Gauss-Newton polish with analytic gradient (stats::deriv); Wald CI estimate +/- qt(0.975, df) SE [validation/r/nonlinear.R]
Cases
  • pass Loblolly pine height vs age, exponential plateau form (source), max relative error 4.1e-9, tolerance 1e-4
    18 quantities compared; worst relative error 4.07e-9 on K CI upper (log scale). Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera starts from its own automatic initial values (the user path). R optimum polished to relative offset 1.1e-13. Tolerances: RSS, Sy.x, R² 1e-9; parameters 0.0001 relative to max(|estimate|, SE); SE and CI bounds 0.0001 (iterative optimisers on both sides; see file header). K: constrained positive and fitted in log10 coordinates, so Plotvera reports the CI on the log scale, exp(log(est) ± t·SE/est); compared with that interval computed in nonlinear.R from R's estimate and SE (R's symmetric Wald interval is a different, legitimate choice).
curvefit: gaussian22 passed6.2e-9NIST StRD certified values; R 4.3.3 (drc 4.0.0): stats::nls(y ~ A * exp(-0.5 * ((x - M)/S)^2)), then Gauss-Newton polish with analytic gradient (stats::deriv); Wald CI estimate +/- qt(0.975, df) SE [validation/r/nonlinear.R]
Cases
  • pass NIST StRD Eckerle4 (n = 35) (source), max relative error 6.2e-9, tolerance 1e-5
    6 quantities compared; worst relative error 6.25e-9 on SE Mean. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. NIST (b1/b2)·exp(-0.5((x-b3)/b2)²) = Gaussian with Amplitude b1/b2, Mean b3, SD b2; the Amplitude SE needs the b1-b2 covariance, which NIST does not certify, so it is not compared. Minimum LRE 8.2. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative.
  • pass NIST Eckerle4 transmittance vs wavelength (n = 35), Gaussian peak (source), max relative error 5.9e-9, tolerance 1e-4
    18 quantities compared; worst relative error 5.92e-9 on Mean SE. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera starts from its own automatic initial values (the user path). R optimum polished to relative offset 5.8e-9. Tolerances: RSS, Sy.x, R² 1e-9; parameters 0.0001 relative to max(|estimate|, SE); SE and CI bounds 0.0001 (iterative optimisers on both sides; see file header). SD: constrained positive and fitted in log10 coordinates, so Plotvera reports the CI on the log scale, exp(log(est) ± t·SE/est); compared with that interval computed in nonlinear.R from R's estimate and SE (R's symmetric Wald interval is a different, legitimate choice).
curvefit: hill11 passed1.9e-8R 4.3.3 (drc 4.0.0): stats::nls(y ~ V * x^h/(K^h + x^h)), then Gauss-Newton polish with analytic gradient (stats::deriv); Wald CI estimate +/- qt(0.975, df) SE [validation/r/nonlinear.R]
Cases
  • pass Puromycin treated, Hill equation (source), max relative error 1.9e-8, tolerance 1e-4
    18 quantities compared; worst relative error 1.92e-8 on K SE. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera starts from its own automatic initial values (the user path). R optimum polished to relative offset 4.3e-9. Tolerances: RSS, Sy.x, R² 1e-9; parameters 0.0001 relative to max(|estimate|, SE); SE and CI bounds 0.0001 (iterative optimisers on both sides; see file header). K, n: constrained positive and fitted in log10 coordinates, so Plotvera reports the CI on the log scale, exp(log(est) ± t·SE/est); compared with that interval computed in nonlinear.R from R's estimate and SE (R's symmetric Wald interval is a different, legitimate choice).
curvefit: logarithmic11 passed9.8e-10R 4.3.3 (drc 4.0.0): stats::nls(y ~ A + B * log(x)), then Gauss-Newton polish with analytic gradient (stats::deriv); Wald CI estimate +/- qt(0.975, df) SE [validation/r/nonlinear.R]
Cases
  • pass Puromycin untreated: rate vs ln(conc), n = 11 (source), max relative error 9.8e-10, tolerance 1e-4
    14 quantities compared; worst relative error 9.76e-10 on B CI upper. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera starts from its own automatic initial values (the user path). R optimum polished to relative offset 4.9e-9. Tolerances: RSS, Sy.x, R² 1e-9; parameters 0.0001 relative to max(|estimate|, SE); SE and CI bounds 0.0001 (iterative optimisers on both sides; see file header).
curvefit: loglogistic11 passed4.6e-8R 4.3.3 (drc 4.0.0): stats::nls(y ~ B + (T - B)/(1 + (x/E)^(-H))), then Gauss-Newton polish with analytic gradient (stats::deriv); Wald CI estimate +/- qt(0.975, df) SE [validation/r/nonlinear.R]
Cases
  • pass drc::ryegrass root length vs ferulic acid conc (mM, linear scale incl. 0), n = 24 (source), max relative error 4.6e-8, tolerance 1e-4
    22 quantities compared; worst relative error 4.65e-8 on Bottom CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera starts from its own automatic initial values (the user path). R optimum polished to relative offset 1.0e-9. Tolerances: RSS, Sy.x, R² 1e-9; parameters 0.0001 relative to max(|estimate|, SE); SE and CI bounds 0.0001 (iterative optimisers on both sides; see file header). EC50: constrained positive and fitted in log10 coordinates, so Plotvera reports the CI on the log scale, exp(log(est) ± t·SE/est); compared with that interval computed in nonlinear.R from R's estimate and SE (R's symmetric Wald interval is a different, legitimate choice).
curvefit: loglogistic311 passed2.9e-8R 4.3.3 (drc 4.0.0): stats::nls(y ~ B + (T - B)/(1 + E/x)), then Gauss-Newton polish with analytic gradient (stats::deriv); Wald CI estimate +/- qt(0.975, df) SE [validation/r/nonlinear.R]
Cases
  • pass Puromycin treated, 3-parameter log-logistic (slope 1) (source), max relative error 2.9e-8, tolerance 1e-4
    18 quantities compared; worst relative error 2.91e-8 on Bottom CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera starts from its own automatic initial values (the user path). R optimum polished to relative offset 2.1e-9. Tolerances: RSS, Sy.x, R² 1e-9; parameters 0.0001 relative to max(|estimate|, SE); SE and CI bounds 0.0001 (iterative optimisers on both sides; see file header). EC50: constrained positive and fitted in log10 coordinates, so Plotvera reports the CI on the log scale, exp(log(est) ± t·SE/est); compared with that interval computed in nonlinear.R from R's estimate and SE (R's symmetric Wald interval is a different, legitimate choice).
curvefit: loglogistic511 passed5.7e-8R 4.3.3 (drc 4.0.0): stats::nls(y ~ B + (T - B)/(1 + (x/C)^(-H))^S), then Gauss-Newton polish with analytic gradient (stats::deriv); Wald CI estimate +/- qt(0.975, df) SE [validation/r/nonlinear.R]
Cases
  • pass drc::ryegrass, asymmetric 5-parameter log-logistic (source), max relative error 5.7e-8, tolerance 1e-4
    26 quantities compared; worst relative error 5.70e-8 on S CI upper (log scale). Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera starts from its own automatic initial values (the user path). R optimum polished to relative offset 2.7e-9. Tolerances: RSS, Sy.x, R² 1e-9; parameters 0.0001 relative to max(|estimate|, SE); SE and CI bounds 0.0001 (iterative optimisers on both sides; see file header). C, S: constrained positive and fitted in log10 coordinates, so Plotvera reports the CI on the log scale, exp(log(est) ± t·SE/est); compared with that interval computed in nonlinear.R from R's estimate and SE (R's symmetric Wald interval is a different, legitimate choice).
curvefit: mm22 passed1.4e-8NIST StRD certified values; R 4.3.3 (drc 4.0.0): stats::nls(y ~ V * x/(K + x)), then Gauss-Newton polish with analytic gradient (stats::deriv); Wald CI estimate +/- qt(0.975, df) SE [validation/r/nonlinear.R]
Cases
  • pass NIST StRD Misra1d (n = 14) (source), max relative error 2.7e-9, tolerance 1e-5
    5 quantities compared; worst relative error 2.75e-9 on SE Km = SD(b2)/b2². Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. NIST b1·b2·x/(1 + b2·x) = Michaelis-Menten Vmax·x/(Km + x) with Vmax = b1, Km = 1/b2 (SE by the exact linearised transform SE(b2)/b2²). Minimum LRE 8.6. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative.
  • pass Puromycin treated: rate vs substrate conc (ppm), n = 12 (source), max relative error 1.4e-8, tolerance 1e-4
    14 quantities compared; worst relative error 1.41e-8 on Km CI lower (log scale). Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera starts from its own automatic initial values (the user path). R optimum polished to relative offset 5.2e-10. Tolerances: RSS, Sy.x, R² 1e-9; parameters 0.0001 relative to max(|estimate|, SE); SE and CI bounds 0.0001 (iterative optimisers on both sides; see file header). Km: constrained positive and fitted in log10 coordinates, so Plotvera reports the CI on the log scale, exp(log(est) ± t·SE/est); compared with that interval computed in nonlinear.R from R's estimate and SE (R's symmetric Wald interval is a different, legitimate choice).
curvefit: onephaseassoc11 passed5.0e-9R 4.3.3 (drc 4.0.0): stats::nls(y ~ Y0 + (P - Y0) * (1 - exp(-K * x))), then Gauss-Newton polish with analytic gradient (stats::deriv); Wald CI estimate +/- qt(0.975, df) SE [validation/r/nonlinear.R]
Cases
  • pass Loblolly pine height (ft) vs age (yr), 14 trees pooled, n = 84 (source), max relative error 5.0e-9, tolerance 1e-4
    18 quantities compared; worst relative error 4.99e-9 on K CI upper (log scale). Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera starts from its own automatic initial values (the user path). R optimum polished to relative offset 1.3e-11. Tolerances: RSS, Sy.x, R² 1e-9; parameters 0.0001 relative to max(|estimate|, SE); SE and CI bounds 0.0001 (iterative optimisers on both sides; see file header). K: constrained positive and fitted in log10 coordinates, so Plotvera reports the CI on the log scale, exp(log(est) ± t·SE/est); compared with that interval computed in nonlinear.R from R's estimate and SE (R's symmetric Wald interval is a different, legitimate choice).
curvefit: poly222 passed3.4e-8NIST StRD certified values; R 4.3.3 (drc 4.0.0): stats::nls(y ~ b0 + b1 * x + b2 * x^2), then Gauss-Newton polish with analytic gradient (stats::deriv); Wald CI estimate +/- qt(0.975, df) SE [validation/r/nonlinear.R]
Cases
  • pass NIST StRD Pontius (n = 40) (source), max relative error 3.5e-10, tolerance 1e-9
    14 quantities compared; worst relative error 3.48e-10 on B0 (curve fit, LM). Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Closed-form polynomial (fitWizard polynomialFit) held to 1e-9; the built-in poly2 curve fit is solved iteratively by Levenberg-Marquardt, so its estimates are held to 1e-6, SDs 1e-4, residual SD 1e-8. Minimum LRE 9.5. Raw file validation/reference/nist/lls/Pontius.dat.
  • pass cars: stopping distance (ft) vs speed (mph), n = 50 (source), max relative error 3.4e-8, tolerance 1e-4
    18 quantities compared; worst relative error 3.42e-8 on B2 CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera starts from its own automatic initial values (the user path). R optimum polished to relative offset 6.4e-16. Tolerances: RSS, Sy.x, R² 1e-9; parameters 0.0001 relative to max(|estimate|, SE); SE and CI bounds 0.0001 (iterative optimisers on both sides; see file header).
curvefit: poly311 passed4.1e-8R 4.3.3 (drc 4.0.0): stats::nls(y ~ b0 + b1 * x + b2 * x^2 + b3 * x^3), then Gauss-Newton polish with analytic gradient (stats::deriv); Wald CI estimate +/- qt(0.975, df) SE [validation/r/nonlinear.R]
Cases
  • pass cars: cubic in speed (source), max relative error 4.1e-8, tolerance 1e-4
    22 quantities compared; worst relative error 4.11e-8 on B0. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera starts from its own automatic initial values (the user path). R optimum polished to relative offset 2.8e-15. Tolerances: RSS, Sy.x, R² 1e-9; parameters 0.0001 relative to max(|estimate|, SE); SE and CI bounds 0.0001 (iterative optimisers on both sides; see file header).
curvefit: power22 passed1.8e-8NIST StRD certified values; R 4.3.3 (drc 4.0.0): stats::nls(y ~ a * x^b), then Gauss-Newton polish with analytic gradient (stats::deriv); Wald CI estimate +/- qt(0.975, df) SE [validation/r/nonlinear.R]
Cases
  • pass NIST StRD DanWood (n = 6) (source), max relative error 5.5e-10, tolerance 1e-5
    5 quantities compared; worst relative error 5.55e-10 on a = b1. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Built-in power law a·X^b = NIST b1·x^b2, automatic starts. Minimum LRE 9.3. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative.
  • pass Puromycin treated: power law rate = a * conc^b (source), max relative error 1.8e-8, tolerance 1e-4
    14 quantities compared; worst relative error 1.76e-8 on b CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera starts from its own automatic initial values (the user path). R optimum polished to relative offset 2.5e-9. Tolerances: RSS, Sy.x, R² 1e-9; parameters 0.0001 relative to max(|estimate|, SE); SE and CI bounds 0.0001 (iterative optimisers on both sides; see file header).
curvefit: sine11 passed1.5e-8R 4.3.3 (drc 4.0.0): stats::nls(y ~ O + A * sin(2 * pi * x/W + P)), then Gauss-Newton polish with analytic gradient (stats::deriv); Wald CI estimate +/- qt(0.975, df) SE [validation/r/nonlinear.R]
Cases
  • pass nottem: Nottingham monthly mean temperature (F), 1920-1922, vs month index (source), max relative error 1.5e-8, tolerance 1e-4
    22 quantities compared; worst relative error 1.52e-8 on Phase CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera starts from its own automatic initial values (the user path). R optimum polished to relative offset 2.1e-9. Tolerances: RSS, Sy.x, R² 1e-9; parameters 0.0001 relative to max(|estimate|, SE); SE and CI bounds 0.0001 (iterative optimisers on both sides; see file header). Wavelength: constrained positive and fitted in log10 coordinates, so Plotvera reports the CI on the log scale, exp(log(est) ± t·SE/est); compared with that interval computed in nonlinear.R from R's estimate and SE (R's symmetric Wald interval is a different, legitimate choice).
curvefit: twophasedecay11 passed1.1e-7R 4.3.3 (drc 4.0.0): stats::nls(y ~ P + Af * exp(-Kf * x) + As * exp(-Ks * x)), then Gauss-Newton polish with analytic gradient (stats::deriv); Wald CI estimate +/- qt(0.975, df) SE [validation/r/nonlinear.R]
Cases
  • pass Indometh all 6 subjects pooled, n = 66 (source), max relative error 1.1e-7, tolerance 1e-4
    26 quantities compared; worst relative error 1.09e-7 on Plateau CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera starts from its own automatic initial values (the user path). R optimum polished to relative offset 5.9e-10. Tolerances: RSS, Sy.x, R² 1e-9; parameters 0.0001 relative to max(|estimate|, SE); SE and CI bounds 0.0001 (iterative optimisers on both sides; see file header). Afast, Aslow, Kslow: constrained positive and fitted in log10 coordinates, so Plotvera reports the CI on the log scale, exp(log(est) ± t·SE/est); compared with that interval computed in nonlinear.R from R's estimate and SE (R's symmetric Wald interval is a different, legitimate choice).
Fit your own equation8647 passed
39 known limitations
2.0e-5NIST StRD certified values; R 4.3.3 (drc 4.0.0): stats::nls(y ~ A * exp(-k * x) + C), then Gauss-Newton polish with analytic gradient (stats::deriv); Wald CI estimate +/- qt(0.975, df) SE [validation/r/nonlinear.R]
Cases
  • known limitation NIST StRD NoInt1 (n = 11) (source), tolerance 1e-6
    NOT MATCHED. KNOWN LIMITATION: Plotvera withholds a fit whose centred R² is negative ("fits worse than the response mean"). For this no-intercept model that R² is -0.157 while NIST certifies the uncentred R²; the estimate B1 = 2.074380165302 itself agrees with the certified value to 11 digits. Plotvera output: Fitted Custom fit. R² = -0.15702479338842767, Sy.x = 3.5675303400633758. B1 = 2.074380165302114. Note: the numerical candidate fits worse than the response mean and is unavailable for citation.
  • pass NIST StRD NoInt2 (n = 3) (source), max relative error 2.1e-11, tolerance 1e-6
    3 quantities compared; worst relative error 2.15e-11 on B1. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Entered as a user equation and solved by Levenberg-Marquardt from Plotvera's automatic starting values: estimates 1e-6, SDs 1e-4, residual SD 1e-8. Minimum LRE 10.7. Raw file validation/reference/nist/lls/NoInt2.dat.
  • pass NIST StRD Wampler1 (n = 21) (source), max relative error 0 (identical), tolerance 1e-6
    13 quantities compared. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Entered as a user equation and solved by Levenberg-Marquardt from Plotvera's automatic starting values: estimates 1e-6, SDs 1e-4, residual SD 1e-8 (exact-fit problem: certified residual SD and parameter SDs are 0, compared absolutely). Minimum LRE 15.0. Raw file validation/reference/nist/lls/Wampler1.dat.
  • known limitation NIST StRD Wampler2 (n = 21) (source), max relative error 3.6e-4, tolerance 1e-6
    KNOWN LIMITATION: Exact-fit data (certified residual ~0): the optimiser stops once SSR <= 1e-12 x total SS ("Converged: residuals reached the error tolerance"), which leaves the estimates correct to only 2-5 significant digits. Minimum LRE 3.4. NOT MATCHED: B0 0.9999912762242609 vs 1; B0 SD 0.000002507542892674518 vs 0; B1 0.10001029031708633 vs 0.1; B1 SD 0.000002753628714199255 vs 0.
  • known limitation NIST StRD Wampler3 (n = 21) (source), tolerance 1e-6
    NOT MATCHED. KNOWN LIMITATION: Reported "did not fully converge" (iteration limit) on this ill-conditioned degree-5 polynomial entered as a custom equation; Plotvera has no linear least-squares polynomial above degree 3. Plotvera output: Fitted Custom fit. R² = 0.9999955590258199, Sy.x = 2360.145023792655. B0 = 0.9999965053192701, B1 = 1.0000017078595758, B2 = 0.9999985973164451, B3 = 0.9999996408481227, B4 = 1.0000000476061588, B5 = 0.9999999987001327. Note: the fit did not fully converge.
  • known limitation NIST StRD Wampler4 (n = 21) (source), tolerance 1e-6
    NOT MATCHED. KNOWN LIMITATION: The automatic start (all parameters 1) is already the certified solution; a fit that cannot improve on its start is not labelled converged, so Plotvera withholds it. Plotvera output: Fitted Custom fit. R² = 0.9574784408256621, Sy.x = 236014.50237926765. B0 = 1, B1 = 1, B2 = 1, B3 = 1, B4 = 1, B5 = 1. Note: the fit did not fully converge.
  • known limitation NIST StRD Wampler5 (n = 21) (source), tolerance 1e-6
    NOT MATCHED. KNOWN LIMITATION: The automatic start (all parameters 1) is already the certified solution; a fit that cannot improve on its start is not labelled converged, so Plotvera withholds it. Plotvera output: Fitted Custom fit. R² = 0.0022466892157494422, Sy.x = 23601450.237926763. B0 = 1, B1 = 1, B2 = 1, B3 = 1, B4 = 1, B5 = 1. Note: the fit did not fully converge.
  • known limitation NIST StRD Filip (n = 82) (source), tolerance 1e-6
    NOT MATCHED. KNOWN LIMITATION: Degree-10 polynomial: refused by the custom-fit work budget; Plotvera has no linear least-squares polynomial above degree 3. Plotvera output: Custom nonlinear fitting was not run because the combination of 82 points, 11 fitted parameters, and 29 equation operations exceeds Plotvera's browser main-thread safety budget. Use a simpler prespecified equation, fit fewer parameters by fixing known constants, or use an audited offline fitting workflow for this workload; do not discard observations without scientific justification.
  • pass NIST StRD Misra1a (Lower difficulty, n = 14) (source), max relative error 5.5e-7, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): 500, 0.0001. Converged flag: yes (restart-stable). Minimum LRE 6.3. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 0.12455138894773993 (certified 0.12455138894).
  • pass NIST StRD Misra1a (Lower difficulty, n = 14) (source), max relative error 5.4e-7, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): 250, 0.0005. Converged flag: yes (restart-stable). Minimum LRE 6.3. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 0.1245513889450045 (certified 0.12455138894).
  • known limitation NIST StRD Misra1a (Lower difficulty, n = 14) (source), max relative error , tolerance 1e-5
    KNOWN LIMITATION: Automatic starting values (every parameter named b1..bk starts at 1) are far from the solution; Plotvera reports the fit as not converged and withholds standard errors (no silent wrong answer). "Fit your own equation" through runAnalysis with Plotvera's automatic starting values (parameters named b1..bk, so each starts at 1). Reported converged: no. Minimum LRE NaN. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 6761.787892857142 (certified 0.12455138894). NOT MATCHED: b1 43.34071428569311 vs 238.94212918; b2 1 vs 0.00055015643181; b1 SD NaN vs 2.7070075241; b2 SD NaN vs 0.0000072668688436; ....
  • known limitation NIST StRD Chwirut2 (Lower difficulty, n = 54) (source), max relative error , tolerance 1e-5
    KNOWN LIMITATION: From this start Plotvera stops away from the minimum and now says so ("not a least-squares minimum"; before this release it was labelled converged); no estimates are offered as converged. Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): 0.1, 0.01, 0.02. Converged flag: no (not-stationary). Minimum LRE NaN. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 14794.790154797307 (certified 513.04802941). NOT MATCHED: b1 0.1 vs 0.16657666537; b2 0.01 vs 0.0051653291286; b3 0.02 vs 0.012150007096; b1 SD NaN vs 0.03830328681; ....
  • pass NIST StRD Chwirut2 (Lower difficulty, n = 54) (source), max relative error 1.4e-8, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): 0.15, 0.008, 0.01. Converged flag: yes (restart-stable). Minimum LRE 7.8. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 513.0480294068652 (certified 513.04802941).
  • known limitation NIST StRD Chwirut2 (Lower difficulty, n = 54) (source), max relative error , tolerance 1e-5
    KNOWN LIMITATION: Automatic starting values (every parameter named b1..bk starts at 1) are far from the solution; Plotvera reports the fit as not converged and withholds standard errors (no silent wrong answer). "Fit your own equation" through runAnalysis with Plotvera's automatic starting values (parameters named b1..bk, so each starts at 1). Reported converged: no. Minimum LRE NaN. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 55588.217071901665 (certified 513.04802941). NOT MATCHED: b1 0.15759413995466143 vs 0.16657666537; b2 -0.10251876378311489 vs 0.0051653291286; b3 0.269945951850058 vs 0.012150007096; b1 SD NaN vs 0.03830328681; ....
  • known limitation NIST StRD Chwirut1 (Lower difficulty, n = 214) (source), max relative error , tolerance 1e-5
    KNOWN LIMITATION: From this start Plotvera stops away from the minimum and now says so ("not a least-squares minimum"; before this release it was labelled converged); no estimates are offered as converged. Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): 0.1, 0.01, 0.02. Converged flag: no (not-stationary). Minimum LRE NaN. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 50068.64891449799 (certified 2384.4771393). NOT MATCHED: b1 0.1 vs 0.1902781837; b2 0.01 vs 0.0061314004477; b3 0.02 vs 0.010530908399; b1 SD NaN vs 0.021938557035; ....
  • pass NIST StRD Chwirut1 (Lower difficulty, n = 214) (source), max relative error 3.3e-8, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): 0.15, 0.008, 0.01. Converged flag: yes (restart-stable). Minimum LRE 7.5. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 2384.4771393093565 (certified 2384.4771393).
  • known limitation NIST StRD Chwirut1 (Lower difficulty, n = 214) (source), max relative error , tolerance 1e-5
    KNOWN LIMITATION: Automatic starting values (every parameter named b1..bk starts at 1) are far from the solution; Plotvera reports the fit as not converged and withholds standard errors (no silent wrong answer). "Fit your own equation" through runAnalysis with Plotvera's automatic starting values (parameters named b1..bk, so each starts at 1). Reported converged: no. Minimum LRE NaN. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 198912.56601201804 (certified 2384.4771393). NOT MATCHED: b1 0.03658103328235077 vs 0.1902781837; b2 -0.07437481865803273 vs 0.0061314004477; b3 0.22337295448271693 vs 0.010530908399; b1 SD NaN vs 0.021938557035; ....
  • known limitation NIST StRD Lanczos3 (Lower difficulty, n = 24) (source), max relative error , tolerance 1e-5
    KNOWN LIMITATION: Iteration limit reached without a stable solution; reported as not converged. Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): 1.2, 0.3, 5.6, 5.5, 6.5, 7.6. Converged flag: no (iteration-limit). Minimum LRE NaN. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 1.611719359360658e-8 (certified 1.6117193594e-8). NOT MATCHED: b1 SD NaN vs 0.017197908859; b2 SD NaN vs 0.097041624475; b3 SD NaN vs 0.041488663282; b4 SD NaN vs 0.10766312506; ....
  • pass NIST StRD Lanczos3 (Lower difficulty, n = 24) (source), max relative error 1.0e-6, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): 0.5, 0.7, 3.6, 4.2, 4, 6.3. Converged flag: yes (restart-stable). Minimum LRE 6.0. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 1.6117193593570107e-8 (certified 1.6117193594e-8).
  • pass NIST StRD Lanczos3 (Lower difficulty, n = 24) (source), max relative error 7.8e-7, tolerance 1e-5
    "Fit your own equation" through runAnalysis with Plotvera's automatic starting values (parameters named b1..bk, so each starts at 1). Reported converged: yes. Minimum LRE 6.1. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 1.6117193593539686e-8 (certified 1.6117193594e-8).
  • pass NIST StRD Gauss1 (Lower difficulty, n = 250) (source), max relative error 1.2e-7, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): 97, 0.009, 100, 65, 20, 70, 178, 16.5. Converged flag: yes (restart-stable). Minimum LRE 6.9. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 1315.8222432036198 (certified 1315.8222432).
  • pass NIST StRD Gauss1 (Lower difficulty, n = 250) (source), max relative error 1.1e-7, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): 94, 0.0105, 99, 63, 25, 71, 180, 20. Converged flag: yes (restart-stable). Minimum LRE 7.0. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 1315.8222432035996 (certified 1315.8222432).
  • known limitation NIST StRD Gauss1 (Lower difficulty, n = 250) (source)
    KNOWN LIMITATION, NOT RUN through the user path: Custom nonlinear fitting was not run because the combination of 250 points, 8 fitted parameters, and 20 equation operations exceeds Plotvera's browser main-thread safety budget. Use a simpler prespecified equation, fit fewer parameters by fixing known constants, or use an audited offline fitting workflow for this workload; do not discard observations without scientific justification.
  • pass NIST StRD Gauss2 (Lower difficulty, n = 250) (source), max relative error 1.3e-8, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): 96, 0.009, 103, 106, 18, 72, 151, 18. Converged flag: yes (restart-stable). Minimum LRE 7.9. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 1247.5282092309988 (certified 1247.5282092).
  • pass NIST StRD Gauss2 (Lower difficulty, n = 250) (source), max relative error 1.3e-8, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): 98, 0.0105, 103, 105, 20, 73, 150, 20. Converged flag: yes (restart-stable). Minimum LRE 7.9. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 1247.528209230998 (certified 1247.5282092).
  • known limitation NIST StRD Gauss2 (Lower difficulty, n = 250) (source)
    KNOWN LIMITATION, NOT RUN through the user path: Custom nonlinear fitting was not run because the combination of 250 points, 8 fitted parameters, and 20 equation operations exceeds Plotvera's browser main-thread safety budget. Use a simpler prespecified equation, fit fewer parameters by fixing known constants, or use an audited offline fitting workflow for this workload; do not discard observations without scientific justification.
  • pass NIST StRD DanWood (Lower difficulty, n = 6) (source), max relative error 7.6e-10, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): 1, 5. Converged flag: yes (restart-stable). Minimum LRE 9.1. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 0.004317308408290979 (certified 0.0043173084083).
  • pass NIST StRD DanWood (Lower difficulty, n = 6) (source), max relative error 7.9e-11, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): 0.7, 4. Converged flag: yes (restart-stable). Minimum LRE 10.1. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 0.004317308408290984 (certified 0.0043173084083).
  • pass NIST StRD DanWood (Lower difficulty, n = 6) (source), max relative error 4.2e-10, tolerance 1e-5
    "Fit your own equation" through runAnalysis with Plotvera's automatic starting values (parameters named b1..bk, so each starts at 1). Reported converged: yes. Minimum LRE 9.4. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 0.004317308408290987 (certified 0.0043173084083).
  • pass NIST StRD Misra1b (Lower difficulty, n = 14) (source), max relative error 1.3e-6, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): 500, 0.0001. Converged flag: yes (restart-stable). Minimum LRE 5.9. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 0.07546468153473121 (certified 0.075464681533).
  • pass NIST StRD Misra1b (Lower difficulty, n = 14) (source), max relative error 1.3e-6, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): 300, 0.0002. Converged flag: yes (restart-stable). Minimum LRE 5.9. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 0.07546468153882656 (certified 0.075464681533).
  • pass NIST StRD Misra1b (Lower difficulty, n = 14) (source), max relative error 1.3e-6, tolerance 1e-5
    "Fit your own equation" through runAnalysis with Plotvera's automatic starting values (parameters named b1..bk, so each starts at 1). Reported converged: yes. Minimum LRE 5.9. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 0.07546468153547226 (certified 0.075464681533).
  • known limitation NIST StRD Kirby2 (Average difficulty, n = 151) (source), max relative error 2.3e-3, tolerance 1e-5
    KNOWN LIMITATION: Stationary to the 1e-3 relative-offset test and RSS within 1e-7 of certified, but the additive-damping Levenberg-Marquardt crawls along a badly scaled valley and stops with estimates at 3-5 significant digits (within ~1e-3 standard errors). Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): 2, -0.1, 0.003, -0.001, 0.00001. Converged flag: yes (restart-stable). Minimum LRE 2.6. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 3.9050740554309047 (certified 3.9050739624). NOT MATCHED: b1 1.6743711244050548 vs 1.6745063063; b2 -0.13926671334590635 vs -0.13927397867; b3 0.002596046496419386 vs 0.0025961181191; b4 -0.001724258506890456 vs -0.001724181187; ....
  • known limitation NIST StRD Kirby2 (Average difficulty, n = 151) (source), max relative error 2.3e-3, tolerance 1e-5
    KNOWN LIMITATION: Stationary to the 1e-3 relative-offset test and RSS within 1e-7 of certified, but the additive-damping Levenberg-Marquardt crawls along a badly scaled valley and stops with estimates at 3-5 significant digits (within ~1e-3 standard errors). Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): 1.5, -0.15, 0.0025, -0.0015, 0.00002. Converged flag: yes (restart-stable). Minimum LRE 2.6. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 3.905074064944148 (certified 3.9050739624). NOT MATCHED: b1 1.6743646265076226 vs 1.6745063063; b2 -0.13926633627233165 vs -0.13927397867; b3 0.0025960427203621512 vs 0.0025961181191; b4 -0.001724262850652889 vs -0.001724181187; ....
  • known limitation NIST StRD Kirby2 (Average difficulty, n = 151) (source)
    KNOWN LIMITATION, NOT RUN through the user path: Custom nonlinear fitting was not run because the combination of 151 points, 5 fitted parameters, and 11 equation operations exceeds Plotvera's browser main-thread safety budget. Use a simpler prespecified equation, fit fewer parameters by fixing known constants, or use an audited offline fitting workflow for this workload; do not discard observations without scientific justification.
  • known limitation NIST StRD Hahn1 (Average difficulty, n = 236) (source), max relative error , tolerance 1e-5
    KNOWN LIMITATION: From this start Plotvera stops away from the minimum and now says so ("not a least-squares minimum"; before this release it was labelled converged); no estimates are offered as converged. Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): 10, -1, 0.05, -0.00001, -0.05, 0.001, -0.000001. Converged flag: no (not-stationary). Minimum LRE NaN. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 22.997708391041996 (certified 1.5324382854). NOT MATCHED: b1 10.594691863815557 vs 1.0776351733; b2 -0.7860513880438336 vs -0.12269296921; b3 0.014920572693755326 vs 0.004086375061; b4 -0.00000427453209766687 vs -0.0000014262662514; ....
  • known limitation NIST StRD Hahn1 (Average difficulty, n = 236) (source), max relative error , tolerance 1e-5
    KNOWN LIMITATION: From NIST Start 2 the optimiser ends at a point worse than the response mean and reports it as unavailable (R² < 0). Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): 1, -0.1, 0.005, -0.000001, -0.005, 0.0001, -1e-7. Converged flag: no (inadequate-fit). Minimum LRE NaN. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 126373.1961726429 (certified 1.5324382854). NOT MATCHED: b1 -1.3918996872930853 vs 1.0776351733; b2 0.049974226507013345 vs -0.12269296921; b3 0.0011736051179147679 vs 0.004086375061; b4 -0.000001575958276534019 vs -0.0000014262662514; ....
  • known limitation NIST StRD Hahn1 (Average difficulty, n = 236) (source)
    KNOWN LIMITATION, NOT RUN through the user path: Custom nonlinear fitting was not run because the combination of 236 points, 7 fitted parameters, and 17 equation operations exceeds Plotvera's browser main-thread safety budget. Use a simpler prespecified equation, fit fewer parameters by fixing known constants, or use an audited offline fitting workflow for this workload; do not discard observations without scientific justification.
  • known limitation NIST StRD Nelson (Average difficulty) (source)
    KNOWN LIMITATION, NOT RUN: Two predictor variables (log[y] = b1 - b2*x1*exp(-b3*x2)); Plotvera curve fits have one X.
  • known limitation NIST StRD MGH17 (Average difficulty, n = 33) (source), max relative error , tolerance 1e-5
    KNOWN LIMITATION: From this start Plotvera stops away from the minimum and now says so ("not a least-squares minimum"; before this release it was labelled converged); no estimates are offered as converged. Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): 50, 150, -100, 1, 2. Converged flag: no (not-stationary). Minimum LRE NaN. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 0.00007977461759216987 (certified 0.000054648946975). NOT MATCHED: b1 0.3822374569685451 vs 0.37541005211; b2 69.57992404588184 vs 1.9358469127; b3 -69.11382197185411 vs -1.4646871366; b4 0.01659134352596647 vs 0.01286753464; ....
  • pass NIST StRD MGH17 (Average difficulty, n = 33) (source), max relative error 2.7e-6, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): 0.5, 1.5, -1, 0.01, 0.02. Converged flag: yes (restart-stable). Minimum LRE 5.6. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 0.000054648946974902014 (certified 0.000054648946975).
  • known limitation NIST StRD MGH17 (Average difficulty, n = 33) (source), max relative error , tolerance 1e-5
    KNOWN LIMITATION: Automatic starting values (every parameter named b1..bk starts at 1) are far from the solution; Plotvera reports the fit as not converged and withholds standard errors (no silent wrong answer). "Fit your own equation" through runAnalysis with Plotvera's automatic starting values (parameters named b1..bk, so each starts at 1). Reported converged: no. Minimum LRE NaN. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 0.09730828428507829 (certified 0.000054648946975). NOT MATCHED: b1 0.3724355986492191 vs 0.37541005211; b2 0.31625716713054247 vs 1.9358469127; b3 0.3162513257630131 vs -1.4646871366; b4 0.006473421333946164 vs 0.01286753464; ....
  • known limitation NIST StRD Lanczos1 (Average difficulty, n = 24) (source), max relative error 4.3e+13, tolerance 1e-5
    KNOWN LIMITATION: Exact-fit data (certified residual ~0): the optimiser stops once SSR <= 1e-12 x total SS ("Converged: residuals reached the error tolerance"), which leaves the estimates correct to only 2-5 significant digits. Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): 1.2, 0.3, 5.6, 5.5, 6.5, 7.6. Converged flag: yes (error-tolerance). Minimum LRE -13.6. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 6.222115732850583e-12 (certified 1.4307867721e-25). NOT MATCHED: b1 0.09640486042602324 vs 0.095100000027; b2 1.0066594786950636 vs 1.0000000001; b3 0.8640142075982403 vs 0.86070000013; b4 3.0081721570823503 vs 3.0000000002; ....
  • known limitation NIST StRD Lanczos1 (Average difficulty, n = 24) (source), max relative error 3.8e+13, tolerance 1e-5
    KNOWN LIMITATION: Exact-fit data (certified residual ~0): the optimiser stops once SSR <= 1e-12 x total SS ("Converged: residuals reached the error tolerance"), which leaves the estimates correct to only 2-5 significant digits. Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): 0.5, 0.7, 3.6, 4.2, 4, 6.3. Converged flag: yes (error-tolerance). Minimum LRE -13.6. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 5.411773636716287e-12 (certified 1.4307867721e-25). NOT MATCHED: b1 0.0963322397436497 vs 0.095100000027; b2 1.0062909686897137 vs 1.0000000001; b3 0.8638289010414053 vs 0.86070000013; b4 3.0077173111949036 vs 3.0000000002; ....
  • known limitation NIST StRD Lanczos1 (Average difficulty, n = 24) (source), max relative error 4.6e+13, tolerance 1e-5
    KNOWN LIMITATION: Exact-fit data (certified residual ~0): the optimiser stops once SSR <= 1e-12 x total SS ("Converged: residuals reached the error tolerance"), which leaves the estimates correct to only 2-5 significant digits. "Fit your own equation" through runAnalysis with Plotvera's automatic starting values (parameters named b1..bk, so each starts at 1). Reported converged: yes. Minimum LRE -13.7. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 6.6156584229664144e-12 (certified 1.4307867721e-25). NOT MATCHED: b1 0.09643774545749081 vs 0.095100000027; b2 1.0068262711393194 vs 1.0000000001; b3 0.8640981518555625 vs 0.86070000013; b4 3.008378125413623 vs 3.0000000002; ....
  • known limitation NIST StRD Lanczos2 (Average difficulty, n = 24) (source), max relative error , tolerance 1e-5
    KNOWN LIMITATION: Iteration limit reached without a stable solution; reported as not converged. Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): 1.2, 0.3, 5.6, 5.5, 6.5, 7.6. Converged flag: no (iteration-limit). Minimum LRE NaN. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 2.2299428124251022e-11 (certified 2.2299428125e-11). NOT MATCHED: b1 SD NaN vs 0.00066770575477; b2 SD NaN vs 0.0033989646176; b3 SD NaN vs 0.0017185846685; b4 SD NaN vs 0.0041707005856; ....
  • pass NIST StRD Lanczos2 (Average difficulty, n = 24) (source), max relative error 4.1e-7, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): 0.5, 0.7, 3.6, 4.2, 4, 6.3. Converged flag: yes (restart-stable). Minimum LRE 6.4. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 2.2299428124627447e-11 (certified 2.2299428125e-11).
  • pass NIST StRD Lanczos2 (Average difficulty, n = 24) (source), max relative error 6.9e-7, tolerance 1e-5
    "Fit your own equation" through runAnalysis with Plotvera's automatic starting values (parameters named b1..bk, so each starts at 1). Reported converged: yes. Minimum LRE 6.2. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 2.2299428127013935e-11 (certified 2.2299428125e-11).
  • pass NIST StRD Gauss3 (Average difficulty, n = 250) (source), max relative error 2.2e-8, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): 94.9, 0.009, 90.1, 113, 20, 73.8, 140, 20. Converged flag: yes (restart-stable). Minimum LRE 7.7. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 1244.4846360131583 (certified 1244.484636).
  • pass NIST StRD Gauss3 (Average difficulty, n = 250) (source), max relative error 3.4e-8, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): 96, 0.0096, 80, 110, 25, 74, 139, 25. Converged flag: yes (restart-stable). Minimum LRE 7.5. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 1244.4846360131592 (certified 1244.484636).
  • known limitation NIST StRD Gauss3 (Average difficulty, n = 250) (source)
    KNOWN LIMITATION, NOT RUN through the user path: Custom nonlinear fitting was not run because the combination of 250 points, 8 fitted parameters, and 20 equation operations exceeds Plotvera's browser main-thread safety budget. Use a simpler prespecified equation, fit fewer parameters by fixing known constants, or use an audited offline fitting workflow for this workload; do not discard observations without scientific justification.
  • pass NIST StRD Misra1c (Average difficulty, n = 14) (source), max relative error 5.1e-6, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): 500, 0.0001. Converged flag: yes (restart-stable). Minimum LRE 5.3. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 0.040966836986242115 (certified 0.040966836971).
  • pass NIST StRD Misra1c (Average difficulty, n = 14) (source), max relative error 5.1e-6, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): 600, 0.0002. Converged flag: yes (restart-stable). Minimum LRE 5.3. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 0.04096683698281204 (certified 0.040966836971).
  • pass NIST StRD Misra1c (Average difficulty, n = 14) (source), max relative error 5.1e-6, tolerance 1e-5
    "Fit your own equation" through runAnalysis with Plotvera's automatic starting values (parameters named b1..bk, so each starts at 1). Reported converged: yes. Minimum LRE 5.3. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 0.04096683698275048 (certified 0.040966836971).
  • pass NIST StRD Misra1d (Average difficulty, n = 14) (source), max relative error 2.3e-6, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): 500, 0.0001. Converged flag: yes (restart-stable). Minimum LRE 5.6. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 0.0564192952888034 (certified 0.056419295283).
  • pass NIST StRD Misra1d (Average difficulty, n = 14) (source), max relative error 2.3e-6, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): 450, 0.0003. Converged flag: yes (restart-stable). Minimum LRE 5.6. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 0.05641929528664313 (certified 0.056419295283).
  • known limitation NIST StRD Misra1d (Average difficulty, n = 14) (source), max relative error , tolerance 1e-5
    KNOWN LIMITATION: Automatic starting values (every parameter named b1..bk starts at 1) are far from the solution; Plotvera reports the fit as not converged and withholds standard errors (no silent wrong answer). "Fit your own equation" through runAnalysis with Plotvera's automatic starting values (parameters named b1..bk, so each starts at 1). Reported converged: no. Minimum LRE NaN. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 6761.807648621474 (certified 0.056419295283). NOT MATCHED: b1 43.3406491196352 vs 437.36970754; b2 -3687.6201649454097 vs 0.00030227324449; b1 SD NaN vs 3.6489174345; b2 SD NaN vs 0.0000029334354479; ....
  • known limitation NIST StRD Roszman1 (Average difficulty) (source)
    KNOWN LIMITATION, NOT RUN: Model uses arctan, which the custom-equation parser does not provide (exp, ln, log10, sqrt, abs, sin, cos, tan, pow only).
  • pass NIST StRD ENSO (Average difficulty, n = 168) (source), max relative error 7.2e-8, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): 11, 3, 0.5, 40, -0.7, -1.3, 25, -0.3, 1.4. Converged flag: yes (restart-stable). Minimum LRE 7.1. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 788.5397866829113 (certified 788.53978668).
  • pass NIST StRD ENSO (Average difficulty, n = 168) (source), max relative error 2.0e-7, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): 10, 3, 0.5, 44, -1.5, 0.5, 26, -0.1, 1.5. Converged flag: yes (restart-stable). Minimum LRE 6.3. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 788.5397866829117 (certified 788.53978668).
  • known limitation NIST StRD ENSO (Average difficulty, n = 168) (source)
    KNOWN LIMITATION, NOT RUN through the user path: Custom nonlinear fitting was not run because the combination of 168 points, 9 fitted parameters, and 36 equation operations exceeds Plotvera's browser main-thread safety budget. Use a simpler prespecified equation, fit fewer parameters by fixing known constants, or use an audited offline fitting workflow for this workload; do not discard observations without scientific justification.
  • pass NIST StRD MGH09 (Higher difficulty, n = 11) (source), max relative error 2.5e-8, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): 25, 39, 41.5, 39. Converged flag: yes (restart-stable). Minimum LRE 7.6. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 0.00030750560384923685 (certified 0.00030750560385).
  • pass NIST StRD MGH09 (Higher difficulty, n = 11) (source), max relative error 4.9e-8, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): 0.25, 0.39, 0.415, 0.39. Converged flag: yes (restart-stable). Minimum LRE 7.3. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 0.0003075056038492371 (certified 0.00030750560385).
  • pass NIST StRD MGH09 (Higher difficulty, n = 11) (source), max relative error 3.0e-8, tolerance 1e-5
    "Fit your own equation" through runAnalysis with Plotvera's automatic starting values (parameters named b1..bk, so each starts at 1). Reported converged: yes. Minimum LRE 7.5. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 0.00030750560384923723 (certified 0.00030750560385).
  • pass NIST StRD Thurber (Higher difficulty, n = 37) (source), max relative error 2.0e-5, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): 1000, 1000, 400, 40, 0.7, 0.3, 0.03. Converged flag: yes (restart-stable). Minimum LRE 4.7. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 5642.708240132372 (certified 5642.7082397).
  • pass NIST StRD Thurber (Higher difficulty, n = 37) (source), max relative error 1.6e-6, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): 1300, 1500, 500, 75, 1, 0.4, 0.05. Converged flag: yes (restart-stable). Minimum LRE 5.8. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 5642.708239670759 (certified 5642.7082397).
  • known limitation NIST StRD Thurber (Higher difficulty, n = 37) (source), max relative error 6.6e+2, tolerance 1e-5
    KNOWN LIMITATION: From the automatic start the fit converges to a different stationary point (a local minimum of this rational model with a higher RSS), which Plotvera reports as converged; any local least-squares optimiser can do this, which is why NIST supplies starting values. "Fit your own equation" through runAnalysis with Plotvera's automatic starting values (parameters named b1..bk, so each starts at 1). Reported converged: yes. Minimum LRE -2.8. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 494165.65910237 (certified 5642.7082397). NOT MATCHED: b1 1168.6381557775385 vs 1288.13968; b2 6989.581967839887 vs 1491.0792535; b3 -16432.226728623777 vs 583.23836877; b4 -6392.734025540455 vs 75.416644291; ....
  • pass NIST StRD BoxBOD (Higher difficulty, n = 6) (source), max relative error 1.6e-9, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): 1, 1. Converged flag: yes (restart-stable). Minimum LRE 8.8. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 1168.0088765555515 (certified 1168.0088766).
  • pass NIST StRD BoxBOD (Higher difficulty, n = 6) (source), max relative error 1.4e-8, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): 100, 0.75. Converged flag: yes (restart-stable). Minimum LRE 7.9. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 1168.008876555553 (certified 1168.0088766).
  • pass NIST StRD BoxBOD (Higher difficulty, n = 6) (source), max relative error 1.6e-9, tolerance 1e-5
    "Fit your own equation" through runAnalysis with Plotvera's automatic starting values (parameters named b1..bk, so each starts at 1). Reported converged: yes. Minimum LRE 8.8. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 1168.0088765555515 (certified 1168.0088766).
  • pass NIST StRD Rat42 (Higher difficulty, n = 9) (source), max relative error 1.9e-7, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): 100, 1, 0.1. Converged flag: yes (restart-stable). Minimum LRE 6.7. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 8.056522933815536 (certified 8.0565229338).
  • pass NIST StRD Rat42 (Higher difficulty, n = 9) (source), max relative error 1.9e-7, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): 75, 2.5, 0.07. Converged flag: yes (restart-stable). Minimum LRE 6.7. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 8.056522933815742 (certified 8.0565229338).
  • pass NIST StRD Rat42 (Higher difficulty, n = 9) (source), max relative error 1.9e-7, tolerance 1e-5
    "Fit your own equation" through runAnalysis with Plotvera's automatic starting values (parameters named b1..bk, so each starts at 1). Reported converged: yes. Minimum LRE 6.7. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 8.056522933815668 (certified 8.0565229338).
  • known limitation NIST StRD MGH10 (Higher difficulty, n = 16) (source), max relative error , tolerance 1e-5
    KNOWN LIMITATION: From this start Plotvera stops away from the minimum and now says so ("not a least-squares minimum"; before this release it was labelled converged); no estimates are offered as converged. Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): 2, 400000, 25000. Converged flag: no (not-stationary). Minimum LRE NaN. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 1417843973.35865 (certified 87.945855171). NOT MATCHED: b1 10016.35577732795 vs 0.005609636471; b2 174487.9030320435 vs 6181.3463463; b3 807485.5435542146 vs 345.22363462; b1 SD NaN vs 0.00015687892471; ....
  • known limitation NIST StRD MGH10 (Higher difficulty, n = 16) (source), max relative error 2.7e-5, tolerance 1e-5
    KNOWN LIMITATION: Stationary to the 1e-3 relative-offset test and RSS within 1e-7 of certified, but the additive-damping Levenberg-Marquardt crawls along a badly scaled valley and stops with estimates at 3-5 significant digits (within ~1e-3 standard errors). Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): 0.02, 4000, 250. Converged flag: yes (restart-stable). Minimum LRE 4.6. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 87.94586141273768 (certified 87.945855171). NOT MATCHED: b1 0.0056097871100683405 vs 0.005609636471; RSS 87.94586141273768 vs 87.945855171; residual SD 2.600974098778818 vs 2.6009740065.
  • known limitation NIST StRD MGH10 (Higher difficulty, n = 16) (source), max relative error , tolerance 1e-5
    KNOWN LIMITATION: Automatic starting values (every parameter named b1..bk starts at 1) are far from the solution; Plotvera reports the fit as not converged and withholds standard errors (no silent wrong answer). "Fit your own equation" through runAnalysis with Plotvera's automatic starting values (parameters named b1..bk, so each starts at 1). Reported converged: no. Minimum LRE NaN. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 132139.6146638207 (certified 87.945855171). NOT MATCHED: b1 0.1242949151288906 vs 0.005609636471; b2 3868.3708058686825 vs 6181.3463463; b3 258.3257573407099 vs 345.22363462; b1 SD NaN vs 0.00015687892471; ....
  • pass NIST StRD Eckerle4 (Higher difficulty, n = 35) (source), max relative error 3.3e-9, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): 1, 10, 500. Converged flag: yes (restart-stable). Minimum LRE 8.5. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 0.0014635887487274698 (certified 0.0014635887487).
  • pass NIST StRD Eckerle4 (Higher difficulty, n = 35) (source), max relative error 3.5e-9, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): 1.5, 5, 450. Converged flag: yes (restart-stable). Minimum LRE 8.5. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 0.0014635887487274698 (certified 0.0014635887487).
  • known limitation NIST StRD Eckerle4 (Higher difficulty, n = 35) (source), max relative error , tolerance 1e-5
    KNOWN LIMITATION: Automatic starting values (every parameter named b1..bk starts at 1) are far from the solution; Plotvera reports the fit as not converged and withholds standard errors (no silent wrong answer). "Fit your own equation" through runAnalysis with Plotvera's automatic starting values (parameters named b1..bk, so each starts at 1). Reported converged: no. Minimum LRE NaN. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 0.6996962541495202 (certified 0.0014635887487). NOT MATCHED: b1 1 vs 1.5543827178; b2 1 vs 4.0888321754; b3 1 vs 451.54121844; b1 SD NaN vs 0.015408051163; ....
  • pass NIST StRD Rat43 (Higher difficulty, n = 15) (source), max relative error 1.6e-7, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): 100, 10, 1, 1. Converged flag: yes (restart-stable). Minimum LRE 6.8. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 8786.404907963599 (certified 8786.404908).
  • pass NIST StRD Rat43 (Higher difficulty, n = 15) (source), max relative error 2.0e-8, tolerance 1e-5
    Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): 700, 5, 0.75, 1.3. Converged flag: yes (restart-stable). Minimum LRE 7.7. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 8786.404907963124 (certified 8786.404908).
  • pass NIST StRD Rat43 (Higher difficulty, n = 15) (source), max relative error 4.5e-8, tolerance 1e-5
    "Fit your own equation" through runAnalysis with Plotvera's automatic starting values (parameters named b1..bk, so each starts at 1). Reported converged: yes. Minimum LRE 7.3. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 8786.404907963137 (certified 8786.404908).
  • known limitation NIST StRD Bennett5 (Higher difficulty, n = 154) (source), max relative error , tolerance 1e-5
    KNOWN LIMITATION: Iteration limit reached (Bennett5 converges very slowly); reported as not converged. Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 1 (far): -2000, 50, 0.8. Converged flag: no (iteration-limit). Minimum LRE NaN. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 0.0005307553234789672 (certified 0.00052404744073). NOT MATCHED: b1 -2153.6323065903703 vs -2523.5058043; b2 45.05614807687564 vs 46.736564644; b3 0.9603788872738734 vs 0.93218483193; b1 SD NaN vs 297.15175411; ....
  • known limitation NIST StRD Bennett5 (Higher difficulty, n = 154) (source), max relative error , tolerance 1e-5
    KNOWN LIMITATION: Iteration limit reached (Bennett5 converges very slowly); reported as not converged. Engine fitModel (the optimiser behind "Fit your own equation") started from NIST Start 2 (near): -1500, 45, 0.85. Converged flag: no (iteration-limit). Minimum LRE NaN. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 0.0005455734052090879 (certified 0.00052404744073). NOT MATCHED: b1 -1913.3856790591967 vs -2523.5058043; b2 43.795497123500404 vs 46.736564644; b3 0.9826765184302441 vs 0.93218483193; b1 SD NaN vs 297.15175411; ....
  • known limitation NIST StRD Bennett5 (Higher difficulty, n = 154) (source), max relative error , tolerance 1e-5
    KNOWN LIMITATION: Automatic starting values (every parameter named b1..bk starts at 1) are far from the solution; Plotvera reports the fit as not converged and withholds standard errors (no silent wrong answer). "Fit your own equation" through runAnalysis with Plotvera's automatic starting values (parameters named b1..bk, so each starts at 1). Reported converged: no. Minimum LRE NaN. Tolerances: estimates 0.00001 relative to max(|certified|, certified SD), standard errors 0.0001 (finite-difference Jacobian), RSS and residual SD 1e-8 relative. RSS 49.338882350707856 (certified 0.00052404744073). NOT MATCHED: b1 -32.258018348901984 vs -2523.5058043; b2 2360.456564977261 vs 46.736564644; b3 -2336.0676400544735 vs 0.93218483193; b1 SD NaN vs 297.15175411; ....
  • pass Indometh subject 1, user equation A*exp(-k*X)+C (source), max relative error 1.0e-8, tolerance 1e-4
    18 quantities compared; worst relative error 1.02e-8 on C CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera starts from its own automatic initial values (the user path). R optimum polished to relative offset 1.7e-9. Tolerances: RSS, Sy.x, R² 1e-9; parameters 0.0001 relative to max(|estimate|, SE); SE and CI bounds 0.0001 (iterative optimisers on both sides; see file header).
Descriptive statistics1717 passed5.6e-9R 4.3.3: mean, var, sd, qt; quantile(type = 6); adjusted skewness G1 and excess kurtosis G2 (Joanes & Gill 1998 b/G) from moments [validation/r/normality.R]; NIST StRD certified values
Cases
  • pass precip: annual precipitation, 70 US cities (source), max relative error 1.3e-9, tolerance 1e-9
    15 quantities compared; worst relative error 1.30e-9 on 95% CI of mean lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Quartiles by Hyndman & Fan definition 6 (R quantile type = 6, Prism's method). Tolerances: closed-form values 1e-9 relative; P values and CI bounds 0.000001.
  • pass rivers: lengths of 141 North American rivers (skewed) (source), max relative error 2.5e-9, tolerance 1e-9
    15 quantities compared; worst relative error 2.47e-9 on 95% CI of mean lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Quartiles by Hyndman & Fan definition 6 (R quantile type = 6, Prism's method). Tolerances: closed-form values 1e-9 relative; P values and CI bounds 0.000001.
  • pass mtcars mpg (n = 32) (source), max relative error 2.4e-9, tolerance 1e-9
    15 quantities compared; worst relative error 2.35e-9 on 95% CI of mean lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Quartiles by Hyndman & Fan definition 6 (R quantile type = 6, Prism's method). Tolerances: closed-form values 1e-9 relative; P values and CI bounds 0.000001.
  • pass PlantGrowth weight (n = 30) (source), max relative error 8.2e-10, tolerance 1e-9
    15 quantities compared; worst relative error 8.25e-10 on 95% CI of mean lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Quartiles by Hyndman & Fan definition 6 (R quantile type = 6, Prism's method). Tolerances: closed-form values 1e-9 relative; P values and CI bounds 0.000001.
  • pass women weight (n = 15) (source), max relative error 2.1e-10, tolerance 1e-9
    15 quantities compared; worst relative error 2.06e-10 on 95% CI of mean lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Quartiles by Hyndman & Fan definition 6 (R quantile type = 6, Prism's method). Tolerances: closed-form values 1e-9 relative; P values and CI bounds 0.000001.
  • pass faithful eruption durations (n = 272, bimodal) (source), max relative error 1.2e-9, tolerance 1e-9
    15 quantities compared; worst relative error 1.23e-9 on 95% CI of mean lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Quartiles by Hyndman & Fan definition 6 (R quantile type = 6, Prism's method). Tolerances: closed-form values 1e-9 relative; P values and CI bounds 0.000001.
  • pass morley: Michelson speed-of-light runs (n = 100) (source), max relative error 4.8e-10, tolerance 1e-9
    15 quantities compared; worst relative error 4.85e-10 on 95% CI of mean lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Quartiles by Hyndman & Fan definition 6 (R quantile type = 6, Prism's method). Tolerances: closed-form values 1e-9 relative; P values and CI bounds 0.000001.
  • pass sleep extra, first 3 values (Shapiro-Wilk exact n = 3 branch) (source), max relative error 1.6e-10, tolerance 1e-9
    14 quantities compared; worst relative error 1.57e-10 on 95% CI of mean upper. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Quartiles by Hyndman & Fan definition 6 (R quantile type = 6, Prism's method). Tolerances: closed-form values 1e-9 relative; P values and CI bounds 0.000001.
  • pass NIST StRD PiDigits (n = 5000) (source), max relative error 6.2e-16, tolerance 1e-9
    2 quantities compared; worst relative error 6.20e-16 on SD. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. LRE mean 15.0, SD 15.0 (NIST certifies 15 digits). Mean held to 1e-14. SD held to 1e-9. The certified lag-1 autocorrelation is not checked: Plotvera does not offer autocorrelation. Raw file validation/reference/nist/univ/PiDigits.dat.
  • pass NIST StRD Lottery (n = 218) (source), max relative error 6.6e-16, tolerance 1e-9
    2 quantities compared; worst relative error 6.57e-16 on mean. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. LRE mean 15.0, SD 15.0 (NIST certifies 15 digits). Mean held to 1e-14. SD held to 1e-9. The certified lag-1 autocorrelation is not checked: Plotvera does not offer autocorrelation. Raw file validation/reference/nist/univ/Lottery.dat.
  • pass NIST StRD Lew (n = 200) (source), max relative error 4.1e-16, tolerance 1e-9
    2 quantities compared; worst relative error 4.10e-16 on SD. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. LRE mean 15.0, SD 15.0 (NIST certifies 15 digits). Mean held to 1e-14. SD held to 1e-9. The certified lag-1 autocorrelation is not checked: Plotvera does not offer autocorrelation. Raw file validation/reference/nist/univ/Lew.dat.
  • pass NIST StRD Mavro (n = 50) (source), max relative error 7.6e-14, tolerance 1e-9
    2 quantities compared; worst relative error 7.57e-14 on SD. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. LRE mean 15.0, SD 13.1 (NIST certifies 15 digits). Mean held to 1e-14. SD held to 1e-9. The certified lag-1 autocorrelation is not checked: Plotvera does not offer autocorrelation. Raw file validation/reference/nist/univ/Mavro.dat.
  • pass NIST StRD Michelso (n = 100) (source), max relative error 1.4e-14, tolerance 1e-9
    2 quantities compared; worst relative error 1.42e-14 on SD. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. LRE mean 15.0, SD 13.8 (NIST certifies 15 digits). Mean held to 1e-14. SD held to 1e-9. The certified lag-1 autocorrelation is not checked: Plotvera does not offer autocorrelation. Raw file validation/reference/nist/univ/Michelso.dat.
  • pass NIST StRD NumAcc1 (n = 3) (source), max relative error 0 (identical), tolerance 1e-9
    2 quantities compared. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. LRE mean 15.0, SD 15.0 (NIST certifies 15 digits). Mean held to 1e-14. SD held to 1e-9. The certified lag-1 autocorrelation is not checked: Plotvera does not offer autocorrelation. Raw file validation/reference/nist/univ/NumAcc1.dat.
  • pass NIST StRD NumAcc2 (n = 1001) (source), max relative error 2.8e-16, tolerance 1e-9
    2 quantities compared; worst relative error 2.78e-16 on SD. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. LRE mean 15.0, SD 15.0 (NIST certifies 15 digits). Mean held to 1e-14. SD held to 1e-9. The certified lag-1 autocorrelation is not checked: Plotvera does not offer autocorrelation. Raw file validation/reference/nist/univ/NumAcc2.dat.
  • pass NIST StRD NumAcc3 (n = 1001) (source), max relative error 3.5e-10, tolerance 1e-7
    3 quantities compared; worst relative error 3.49e-10 on SD. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. LRE mean 15.0, SD 9.5 (NIST certifies 15 digits). Mean held to 1e-14. Inputs not exactly representable in binary64 (8 constant leading digits); SD held to 1e-7 vs certified and 1e-12 vs exact arithmetic on the binary64 inputs. The certified lag-1 autocorrelation is not checked: Plotvera does not offer autocorrelation. Raw file validation/reference/nist/univ/NumAcc3.dat.
  • pass NIST StRD NumAcc4 (n = 1001) (source), max relative error 5.6e-9, tolerance 1e-7
    3 quantities compared; worst relative error 5.59e-9 on SD. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. LRE mean 15.0, SD 8.3 (NIST certifies 15 digits). Mean held to 1e-14. Inputs not exactly representable in binary64 (8 constant leading digits); SD held to 1e-7 vs certified and 1e-12 vs exact arithmetic on the binary64 inputs. The certified lag-1 autocorrelation is not checked: Plotvera does not offer autocorrelation. Raw file validation/reference/nist/univ/NumAcc4.dat.
Sensitivity / specificity (2x2)11 passed1.4e-14R 4.3.3: proportions; Wilson score CI = stats::prop.test(x, n, correct = FALSE)$conf.int; LR+ = sens/(1-spec), LR- = (1-sens)/spec [validation/r/contingency.R]
Cases
  • pass mtcars: test = weight > 3000 lb, condition = automatic transmission (TP 18, FP 2, FN 1, TN 11) (source), max relative error 1.4e-14, tolerance 1e-9
    20 quantities compared; worst relative error 1.40e-14 on spec Wilson CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Percentages divided by 100 before comparison. Wilson score intervals match prop.test(correct = FALSE). Tolerances: closed-form values 1e-9 relative; P values and CI bounds 0.000001.
F upper-tail P value11 passed1.9e-7R 4.3.3: pf(F, d1, d2, lower.tail = FALSE) [validation/r/distributions.R]
Cases
  • pass 168-point grid of arguments (validation/r/distributions.R), max relative error 1.9e-7, tolerance 1e-6
    168 quantities compared; worst relative error 1.87e-7 on pF(3, 1, 46). Tolerance 0.000001, relative; probabilities use |a - e| / max(e, 0.000001) so P values below 0.000001 are held to 1e-12 absolute (upper tails are 1 - CDF: values below ~1e-16 return 0, displayed "< 0.0001").
Friedman test (+ Dunn)11 passed3.1e-14R 4.3.3 (car 3.1.5, multcomp 1.4.32, mvtnorm 1.4.2, lme4 2.0.6): stats::friedman.test(matrix); Dunn z on within-subject mean ranks, SE sqrt(k(k+1)/(6n)), Bonferroni [validation/r/anova.R]
Cases
  • pass RoundingTimes (Hollander & Wolfe 1973, p. 140; R ?friedman.test example): 22 players x 3 methods, ties within rows (source), max relative error 3.1e-14, tolerance 1e-9
    16 quantities compared; worst relative error 3.10e-14 on Round Out-Wide Angle P Bonferroni. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Friedman statistic with within-row tie correction (R friedman.test). Tolerances: SS/MS/F/df/means 1e-9 relative; P values and CI bounds 0.000001 (distribution-function precision).
Outlier test (Grubbs)22 passed1.3e-9R 4.3.3 (zoo 1.9.1, investr 1.4.2, lme4 2.0.6, lmerTest 3.2.1, emmeans 2.0.4): G = max|x - mean|/sd; two-sided critical value (n-1)/sqrt(n) sqrt(t^2/(n-2+t^2)), t = qt(0.05/(2n), n-2) (Grubbs 1969) [validation/r/misc.R]
Cases
  • pass mtcars horsepower (n = 32; Maserati Bora 335 hp) (source), max relative error 1.3e-9, tolerance 1e-9
    4 quantities compared; worst relative error 1.34e-9 on critical value (alpha 0.05, two-sided). Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. The R package 'outliers' is not installed; the statistic and two-sided critical value are computed from Grubbs' (1969) formulas in misc.R. Tolerances: closed-form 1e-9 relative; P values and CI bounds 0.000001.
  • pass precip (n = 70) (source), max relative error 3.4e-10, tolerance 1e-9
    4 quantities compared; worst relative error 3.43e-10 on critical value (alpha 0.05, two-sided). Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. The R package 'outliers' is not installed; the statistic and two-sided critical value are computed from Grubbs' (1969) formulas in misc.R. Tolerances: closed-form 1e-9 relative; P values and CI bounds 0.000001.
Kaplan-Meier survival estimate (Greenwood log-log 95% CI)55 passed1.3e-15R 4.3.3 (survival 3.5.8): survival::survfit(conf.type = 'log-log'); summary(censored = TRUE) [validation/r/survival.R]
Cases
  • pass survival::aml: acute myelogenous leukaemia, Maintained (reference) vs Nonmaintained, n = 23 (source), max relative error 6.2e-16, tolerance 1e-9
    78 quantities compared; worst relative error 6.20e-16 on Maintained S(13) 95% CI lower. Engine function kaplanMeier (feeds the KM graph). Every distinct time in every group compared (S, number at risk, pointwise CI). Tolerances: estimates/statistics 1e-9 relative; P values and CI bounds 0.000001.
  • pass survival::ovarian: rx 1 (reference) vs rx 2, n = 26 (source), max relative error 5.9e-16, tolerance 1e-9
    104 quantities compared; worst relative error 5.88e-16 on rx1 S(59) 95% CI lower. Engine function kaplanMeier (feeds the KM graph). Every distinct time in every group compared (S, number at risk, pointwise CI). Tolerances: estimates/statistics 1e-9 relative; P values and CI bounds 0.000001.
  • pass survival::lung: male (reference) vs female, n = 228, status 2 = death (source), max relative error 5.4e-16, tolerance 1e-9
    824 quantities compared; worst relative error 5.42e-16 on male S(567) 95% CI lower. Engine function kaplanMeier (feeds the KM graph). Every distinct time in every group compared (S, number at risk, pointwise CI). Tolerances: estimates/statistics 1e-9 relative; P values and CI bounds 0.000001.
  • pass survival::veteran: standard (reference) vs test chemotherapy, n = 137 (source), max relative error 1.3e-15, tolerance 1e-9
    452 quantities compared; worst relative error 1.29e-15 on standard S(392) 95% CI upper. Engine function kaplanMeier (feeds the KM graph). Every distinct time in every group compared (S, number at risk, pointwise CI). Tolerances: estimates/statistics 1e-9 relative; P values and CI bounds 0.000001.
  • pass survival::lung by ECOG score 0, 1, 2 (three groups, n = 227) (source), max relative error 7.8e-16, tolerance 1e-9
    858 quantities compared; worst relative error 7.84e-16 on ecog1 S(731) 95% CI lower. Engine function kaplanMeier (feeds the KM graph). Every distinct time in every group compared (S, number at risk, pointwise CI). Tolerances: estimates/statistics 1e-9 relative; P values and CI bounds 0.000001.
k-means clustering11 passed1.2e-15R 4.3.3: stats::kmeans(scale(X), 3, nstart = 200, algorithm = 'Hartigan-Wong'), set.seed(1); best of 200 starts [validation/r/regression.R]
Cases
  • pass iris sepal/petal length and width (150 rows), standardised, k = 3 (source), max relative error 1.2e-15, tolerance 1e-9
    15 quantities compared; worst relative error 1.24e-15 on cluster 1 centroid Petal.Width. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. k-means has local optima: the check is that Plotvera's 10 seeded Lloyd restarts reach the same partition as R's best of 200 Hartigan-Wong starts (total within SS 138.88835971735148 in standardised units); clusters matched by first-centroid order.
Kruskal-Wallis test (+ Dunn)33 passed6.5e-10R 4.3.3 (car 3.1.5, multcomp 1.4.32, mvtnorm 1.4.2, lme4 2.0.6): stats::kruskal.test; Dunn (1964) z with tie correction computed in the script, Bonferroni [validation/r/anova.R]
Cases
  • pass PlantGrowth (Dobson 1983): ctrl, trt1, trt2 (n = 10 each) (source), max relative error 6.2e-15, tolerance 1e-9
    15 quantities compared; worst relative error 6.24e-15 on trt1-trt2 P raw. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. H is tie-corrected (R kruskal.test); Dunn z uses the tie-corrected variance. Tolerances: SS/MS/F/df/means 1e-9 relative; P values and CI bounds 0.000001 (distribution-function precision).
  • pass chickwts: 6 feeds, unequal n (10-14), casein = control/first column (source), max relative error 1.0e-10, tolerance 1e-9
    63 quantities compared; worst relative error 1.04e-10 on casein-horsebean P raw. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. H is tie-corrected (R kruskal.test); Dunn z uses the tie-corrected variance. Tolerances: SS/MS/F/df/means 1e-9 relative; P values and CI bounds 0.000001 (distribution-function precision).
  • pass InsectSprays (Beall 1942): 6 sprays, counts with many ties (source), max relative error 6.5e-10, tolerance 1e-9
    63 quantities compared; worst relative error 6.50e-10 on C-F P Bonferroni. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. H is tie-corrected (R kruskal.test); Dunn z uses the tie-corrected variance. Tolerances: SS/MS/F/df/means 1e-9 relative; P values and CI bounds 0.000001 (distribution-function precision).
Linear regression66 passed2.0e-9NIST StRD certified values; R 4.3.3: stats::lm(y ~ x); summary; confint; anova [validation/r/regression.R]
Cases
  • pass NIST StRD Norris (n = 36) (source), max relative error 1.7e-13, tolerance 1e-9
    6 quantities compared; worst relative error 1.70e-13 on B0. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Minimum LRE 12.8 (digits of agreement with 15-digit certified values). Raw file validation/reference/nist/lls/Norris.dat.
  • pass women: weight (lb) on height (in), n = 15 (source), max relative error 3.3e-10, tolerance 1e-9
    15 quantities compared; worst relative error 3.32e-10 on intercept 95% CI upper. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: estimates/SE/statistics 1e-9 relative; P values and CI bounds 0.000001.
  • pass Anscombe quartet set 1 (n = 11) (source), max relative error 2.0e-9, tolerance 1e-9
    15 quantities compared; worst relative error 2.02e-9 on intercept 95% CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: estimates/SE/statistics 1e-9 relative; P values and CI bounds 0.000001.
  • pass Anscombe quartet set 2 (n = 11) (source), max relative error 2.0e-9, tolerance 1e-9
    15 quantities compared; worst relative error 2.02e-9 on slope 95% CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: estimates/SE/statistics 1e-9 relative; P values and CI bounds 0.000001.
  • pass Anscombe quartet set 3 (n = 11) (source), max relative error 2.0e-9, tolerance 1e-9
    15 quantities compared; worst relative error 2.02e-9 on intercept 95% CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: estimates/SE/statistics 1e-9 relative; P values and CI bounds 0.000001.
  • pass Anscombe quartet set 4 (n = 11) (source), max relative error 2.0e-9, tolerance 1e-9
    15 quantities compared; worst relative error 2.02e-9 on slope 95% CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: estimates/SE/statistics 1e-9 relative; P values and CI bounds 0.000001.
Simple logistic regression22 passed6.5e-14R 4.3.3: stats::glm(family = binomial, epsilon = 1e-15) then Newton-Raphson polish; SE from inverse information; Wald CI exp(b +/- qnorm(0.975) SE) [validation/r/regression.R]
Cases
  • pass mtcars am (manual = 1) ~ wt (n = 32) (source), max relative error 6.5e-14, tolerance 1e-8
    14 quantities compared; worst relative error 6.54e-14 on Slope (X) P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Iterative ML on both sides (Plotvera Newton/IRLS; R glm polished by Newton-Raphson), so estimates are held to 1e-8 rather than 1e-9; P values and CI bounds 0.000001.
  • pass mtcars am ~ qsec (n = 32) (source), max relative error 5.8e-14, tolerance 1e-8
    14 quantities compared; worst relative error 5.77e-14 on Slope (X) P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Iterative ML on both sides (Plotvera Newton/IRLS; R glm polished by Newton-Raphson), so estimates are held to 1e-8 rather than 1e-9; P values and CI bounds 0.000001.
Survival: Kaplan-Meier and log-rank55 passed1.2e-10R 4.3.3 (survival 3.5.8): survival::survfit(conf.type = 'log-log'), quantile.survfit, survdiff; Gehan-Breslow weights n_at_risk and hazard ratios from survdiff O/E/V computed in the script; coxph(ties = 'efron') [validation/r/survival.R]
Cases
  • pass survival::aml: acute myelogenous leukaemia, Maintained (reference) vs Nonmaintained, n = 23 (source), max relative error 1.2e-10, tolerance 1e-9
    21 quantities compared; worst relative error 1.20e-10 on log-rank P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Median and its Brookmeyer-Crowley (log-log) CI compared exactly (event times). Tolerances: estimates/statistics 1e-9 relative; P values and CI bounds 0.000001.
  • pass survival::ovarian: rx 1 (reference) vs rx 2, n = 26 (source), max relative error 2.2e-13, tolerance 1e-9
    21 quantities compared; worst relative error 2.16e-13 on Gehan-Breslow P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Median and its Brookmeyer-Crowley (log-log) CI compared exactly (event times). Median not reached for rx2: Plotvera shows no median CI there, while R reports the lower limit; the engine's limits (kmMedianCI) match R. Tolerances: estimates/statistics 1e-9 relative; P values and CI bounds 0.000001.
  • pass survival::lung: male (reference) vs female, n = 228, status 2 = death (source), max relative error 8.2e-14, tolerance 1e-9
    21 quantities compared; worst relative error 8.23e-14 on Gehan-Breslow P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Median and its Brookmeyer-Crowley (log-log) CI compared exactly (event times). Tolerances: estimates/statistics 1e-9 relative; P values and CI bounds 0.000001.
  • pass survival::veteran: standard (reference) vs test chemotherapy, n = 137 (source), max relative error 8.8e-14, tolerance 1e-9
    21 quantities compared; worst relative error 8.84e-14 on Gehan-Breslow P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Median and its Brookmeyer-Crowley (log-log) CI compared exactly (event times). For test (median 52.5, first time at 50% 52) S is exactly 0.5 over an interval: R quantile.survfit and Prism (GraphPad FAQ 44, after Machin) both report the midpoint, and so does Plotvera since engine 1.19.0. Tolerances: estimates/statistics 1e-9 relative; P values and CI bounds 0.000001.
  • pass survival::lung by ECOG score 0, 1, 2 (three groups, n = 227) (source), max relative error 5.9e-13, tolerance 1e-9
    20 quantities compared; worst relative error 5.89e-13 on Gehan-Breslow P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Median and its Brookmeyer-Crowley (log-log) CI compared exactly (event times). Tolerances: estimates/statistics 1e-9 relative; P values and CI bounds 0.000001.
Mann-Whitney test2727 passed1.6e-14R 4.3.3 (survival 3.5.8): stats::wilcox.test(a, b) [validation/r/rankexact.R]
Cases
  • pass seeded normal, n = 5 vs 7, no ties, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. Plotvera method: exact. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 12 vs 12, no ties, max relative error 1.5e-16, tolerance 1e-9
    3 quantities compared; worst relative error 1.55e-16 on P (two-tailed). Plotvera method: exact. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 30 vs 30, no ties, max relative error 2.4e-15, tolerance 1e-9
    3 quantities compared; worst relative error 2.41e-15 on P (two-tailed). Plotvera method: exact. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 31 vs 8, no ties, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. Plotvera method: exact. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 35 vs 3, no ties, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. Plotvera method: exact. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 40 vs 45, no ties, max relative error 3.6e-15, tolerance 1e-9
    3 quantities compared; worst relative error 3.58e-15 on P (two-tailed). Plotvera method: exact. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 49 vs 49, no ties, max relative error 3.3e-15, tolerance 1e-9
    3 quantities compared; worst relative error 3.26e-15 on P (two-tailed). Plotvera method: exact. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 49 vs 20, no ties, max relative error 1.9e-16, tolerance 1e-9
    3 quantities compared; worst relative error 1.86e-16 on P (two-tailed). Plotvera method: exact. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 50 vs 10, no ties, max relative error 1.6e-14, tolerance 1e-9
    3 quantities compared; worst relative error 1.60e-14 on P (two-tailed). Plotvera method: normal approximation. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 60 vs 60, no ties, max relative error 1.3e-15, tolerance 1e-9
    3 quantities compared; worst relative error 1.32e-15 on P (two-tailed). Plotvera method: normal approximation. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 15 vs 26, no ties, max relative error 1.9e-16, tolerance 1e-9
    3 quantities compared; worst relative error 1.86e-16 on P (two-tailed). Plotvera method: exact. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 15 vs 24, no ties, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. Plotvera method: exact. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 31 vs 47, no ties, max relative error 1.3e-15, tolerance 1e-9
    3 quantities compared; worst relative error 1.29e-15 on P (two-tailed). Plotvera method: exact. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 10 vs 22, no ties, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. Plotvera method: exact. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 41 vs 29, no ties, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. Plotvera method: exact. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 24 vs 44, no ties, max relative error 2.9e-16, tolerance 1e-9
    3 quantities compared; worst relative error 2.86e-16 on P (two-tailed). Plotvera method: exact. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 49 vs 34, no ties, max relative error 3.7e-16, tolerance 1e-9
    3 quantities compared; worst relative error 3.67e-16 on P (two-tailed). Plotvera method: exact. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 35 vs 32, no ties, max relative error 3.8e-16, tolerance 1e-9
    3 quantities compared; worst relative error 3.84e-16 on P (two-tailed). Plotvera method: exact. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 45 vs 5, no ties, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. Plotvera method: exact. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 26 vs 45, no ties, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. Plotvera method: exact. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 47 vs 46, no ties, max relative error 4.3e-15, tolerance 1e-9
    3 quantities compared; worst relative error 4.31e-15 on P (two-tailed). Plotvera method: exact. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 32 vs 48, no ties, max relative error 9.2e-15, tolerance 1e-9
    3 quantities compared; worst relative error 9.24e-15 on P (two-tailed). Plotvera method: exact. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 27 vs 29, no ties, max relative error 2.8e-16, tolerance 1e-9
    3 quantities compared; worst relative error 2.83e-16 on P (two-tailed). Plotvera method: exact. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 15 vs 27, no ties, max relative error 1.2e-16, tolerance 1e-9
    3 quantities compared; worst relative error 1.23e-16 on P (two-tailed). Plotvera method: exact. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 47 vs 15, no ties, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. Plotvera method: exact. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass seeded normal, n = 38 vs 3, no ties, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. Plotvera method: exact. R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
  • pass small integers with ties, max relative error 2.7e-15, tolerance 1e-9
    3 quantities compared; worst relative error 2.71e-15 on P (two-tailed). Plotvera method: normal approximation (ties present). R uses the exact distribution when both groups have under 50 values and there are no ties, else the continuity-corrected normal approximation; Plotvera follows the same rule. P tolerance 0.000001.
Mann-Whitney test22 passed5.7e-13R 4.3.3 (MASS 7.3.60.0.1): stats::wilcox.test(x, y, correct = TRUE, exact = FALSE) [validation/r/ttests.R]; R 4.3.3 (MASS 7.3.60.0.1): stats::wilcox.test(x, y, exact = TRUE) [validation/r/ttests.R]
Cases
  • pass airquality Ozone, May vs August (ties: normal approximation) (source), max relative error 5.7e-13, tolerance 1e-9
    3 quantities compared; worst relative error 5.69e-13 on P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. U is reported as min(U1, U2); R reports W = U1, converted in the R script. Normal approximation with tie and continuity correction on both sides (R correct = TRUE). Tolerances: statistics 1e-9 relative; P values and CI bounds 1e-6 (distribution-function precision, see numerical.distributions).
  • pass MASS::anorexia post-treatment weight, FT (n=17) vs CBT (n=29); no ties, exact (source), max relative error 3.5e-16, tolerance 1e-9
    3 quantities compared; worst relative error 3.49e-16 on P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. U is reported as min(U1, U2); R reports W = U1, converted in the R script. Tolerances: statistics 1e-9 relative; P values and CI bounds 1e-6 (distribution-function precision, see numerical.distributions).
Multiple logistic regression22 passed1.4e-11R 4.3.3: stats::glm(family = binomial, epsilon = 1e-15) then Newton-Raphson polish; SE from inverse information; Wald CI exp(b +/- qnorm(0.975) SE) [validation/r/regression.R]
Cases
  • pass mtcars am ~ wt + hp (n = 32) (source), max relative error 1.2e-11, tolerance 1e-8
    24 quantities compared; worst relative error 1.20e-11 on LR P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Iterative ML on both sides (Plotvera Newton/IRLS; R glm polished by Newton-Raphson), so estimates are held to 1e-8 rather than 1e-9; P values and CI bounds 0.000001.
  • pass mtcars am ~ mpg + drat + carb (n = 32) (source), max relative error 1.4e-11, tolerance 1e-8
    31 quantities compared; worst relative error 1.40e-11 on LR P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Iterative ML on both sides (Plotvera Newton/IRLS; R glm polished by Newton-Raphson), so estimates are held to 1e-8 rather than 1e-9; P values and CI bounds 0.000001.
Multiple regression33 passed1.2e-8NIST StRD certified values; R 4.3.3: stats::lm; summary.lm [validation/r/regression.R]
Cases
  • pass NIST StRD Longley (n = 16, 6 collinear predictors) (source), max relative error 4.2e-12, tolerance 1e-9
    16 quantities compared; worst relative error 4.16e-12 on B1. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Minimum LRE 11.4. Longley's design is severely collinear (condition number ~1e7 after centring). Raw file validation/reference/nist/lls/Longley.dat.
  • pass mtcars mpg ~ wt + hp + disp (n = 32) (source), max relative error 1.1e-8, tolerance 1e-9
    23 quantities compared; worst relative error 1.11e-8 on disp P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: estimates/SE/statistics 1e-9 relative; P values and CI bounds 0.000001.
  • pass mtcars qsec ~ hp + wt + am + drat (n = 32) (source), max relative error 1.2e-8, tolerance 1e-9
    27 quantities compared; worst relative error 1.20e-8 on wt P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: estimates/SE/statistics 1e-9 relative; P values and CI bounds 0.000001.
Multiple t tests (one per row)11 passed1.5e-12R 4.3.3 (zoo 1.9.1, investr 1.4.2, lme4 2.0.6, lmerTest 3.2.1, emmeans 2.0.4): stats::t.test(var.equal = FALSE) per row; stats::p.adjust('BH' / 'holm') [validation/r/misc.R]
Cases
  • pass CO2 uptake, nonchilled plants: Quebec (3) vs Mississippi (3) at each of 7 concentrations (source), max relative error 1.5e-12, tolerance 1e-6
    21 quantities compared; worst relative error 1.46e-12 on conc500 P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Welch t test per row; adjusted with Benjamini-Hochberg and with Holm. Tolerances: closed-form 1e-9 relative; P values and CI bounds 0.000001.
Nested one-way ANOVA11 passed1.3e-14R 4.3.3 (car 3.1.5, multcomp 1.4.32, mvtnorm 1.4.2, lme4 2.0.6): stats::aov(y ~ group + Error(subject)) [validation/r/anova.R]
Cases
  • pass lme4::Pastes paste strength, batches A-E, 3 casks (subjects) x 2 replicate tests (source), max relative error 1.3e-14, tolerance 1e-9
    3 quantities compared; worst relative error 1.35e-14 on P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: SS/MS/F/df/means 1e-9 relative; P values and CI bounds 0.000001 (distribution-function precision).
Nested t test11 passed1.1e-13R 4.3.3 (car 3.1.5, multcomp 1.4.32, mvtnorm 1.4.2, lme4 2.0.6): stats::aov(y ~ group + Error(subject)); equivalently t.test on subject means (balanced) [validation/r/anova.R]
Cases
  • pass lme4::Pastes paste strength, batches A vs B, 3 casks (subjects) x 2 replicate tests (source), max relative error 1.1e-13, tolerance 1e-9
    4 quantities compared; worst relative error 1.05e-13 on P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: SS/MS/F/df/means 1e-9 relative; P values and CI bounds 0.000001 (distribution-function precision).
Normality diagnostics (Shapiro-Wilk, KS-Lilliefors, Anderson-Darling)88 passed4.3e-9R 4.3.3: stats::shapiro.test (Royston 1995 AS R94); KS-Lilliefors D and Anderson-Darling A2/A* from their definitions; AD P from the D'Agostino & Stephens (1986) piecewise formula [validation/r/normality.R]
Cases
  • pass precip: annual precipitation, 70 US cities (source), max relative error 9.6e-10, tolerance 1e-9
    6 quantities compared; worst relative error 9.63e-10 on Shapiro-Wilk P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Shapiro-Wilk W at 1e-7 (both sides evaluate Royston's polynomial approximations to the coefficients) and P at 0.000001. KS-Lilliefors D and Anderson-Darling A* are compared with their definitions; the Lilliefors P value (Dallal-Wilkinson) has no independent reference here because nortest is not installed. The AD P value is checked against the published D'Agostino & Stephens (1986) formula written out in normality.R, an independent transcription rather than an R package result.
  • pass rivers: lengths of 141 North American rivers (skewed) (source), max relative error 1.4e-10, tolerance 1e-9
    6 quantities compared; worst relative error 1.40e-10 on Shapiro-Wilk W. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Shapiro-Wilk W at 1e-7 (both sides evaluate Royston's polynomial approximations to the coefficients) and P at 0.000001. KS-Lilliefors D and Anderson-Darling A* are compared with their definitions; the Lilliefors P value (Dallal-Wilkinson) has no independent reference here because nortest is not installed. The AD P value is checked against the published D'Agostino & Stephens (1986) formula written out in normality.R, an independent transcription rather than an R package result.
  • pass mtcars mpg (n = 32) (source), max relative error 5.1e-10, tolerance 1e-9
    6 quantities compared; worst relative error 5.11e-10 on Shapiro-Wilk P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Shapiro-Wilk W at 1e-7 (both sides evaluate Royston's polynomial approximations to the coefficients) and P at 0.000001. KS-Lilliefors D and Anderson-Darling A* are compared with their definitions; the Lilliefors P value (Dallal-Wilkinson) has no independent reference here because nortest is not installed. The AD P value is checked against the published D'Agostino & Stephens (1986) formula written out in normality.R, an independent transcription rather than an R package result.
  • pass PlantGrowth weight (n = 30) (source), max relative error 1.2e-9, tolerance 1e-9
    6 quantities compared; worst relative error 1.23e-9 on Shapiro-Wilk P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Shapiro-Wilk W at 1e-7 (both sides evaluate Royston's polynomial approximations to the coefficients) and P at 0.000001. KS-Lilliefors D and Anderson-Darling A* are compared with their definitions; the Lilliefors P value (Dallal-Wilkinson) has no independent reference here because nortest is not installed. The AD P value is checked against the published D'Agostino & Stephens (1986) formula written out in normality.R, an independent transcription rather than an R package result.
  • pass women weight (n = 15) (source), max relative error 4.3e-9, tolerance 1e-9
    6 quantities compared; worst relative error 4.31e-9 on Shapiro-Wilk P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Shapiro-Wilk W at 1e-7 (both sides evaluate Royston's polynomial approximations to the coefficients) and P at 0.000001. KS-Lilliefors D and Anderson-Darling A* are compared with their definitions; the Lilliefors P value (Dallal-Wilkinson) has no independent reference here because nortest is not installed. The AD P value is checked against the published D'Agostino & Stephens (1986) formula written out in normality.R, an independent transcription rather than an R package result.
  • pass faithful eruption durations (n = 272, bimodal) (source), max relative error 1.5e-11, tolerance 1e-9
    6 quantities compared; worst relative error 1.54e-11 on Shapiro-Wilk P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Shapiro-Wilk W at 1e-7 (both sides evaluate Royston's polynomial approximations to the coefficients) and P at 0.000001. KS-Lilliefors D and Anderson-Darling A* are compared with their definitions; the Lilliefors P value (Dallal-Wilkinson) has no independent reference here because nortest is not installed. The AD P value is checked against the published D'Agostino & Stephens (1986) formula written out in normality.R, an independent transcription rather than an R package result.
  • pass morley: Michelson speed-of-light runs (n = 100) (source), max relative error 1.4e-9, tolerance 1e-9
    6 quantities compared; worst relative error 1.42e-9 on Shapiro-Wilk P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Shapiro-Wilk W at 1e-7 (both sides evaluate Royston's polynomial approximations to the coefficients) and P at 0.000001. KS-Lilliefors D and Anderson-Darling A* are compared with their definitions; the Lilliefors P value (Dallal-Wilkinson) has no independent reference here because nortest is not installed. The AD P value is checked against the published D'Agostino & Stephens (1986) formula written out in normality.R, an independent transcription rather than an R package result.
  • pass sleep extra, first 3 values (Shapiro-Wilk exact n = 3 branch) (source), max relative error 3.6e-15, tolerance 1e-9
    3 quantities compared; worst relative error 3.64e-15 on Shapiro-Wilk P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Shapiro-Wilk W at 1e-7 (both sides evaluate Royston's polynomial approximations to the coefficients) and P at 0.000001. KS-Lilliefors D and Anderson-Darling A* are compared with their definitions; the Lilliefors P value (Dallal-Wilkinson) has no independent reference here because nortest is not installed. The AD P value is checked against the published D'Agostino & Stephens (1986) formula written out in normality.R, an independent transcription rather than an R package result.
One-sample t test22 passed3.0e-9R 4.3.3 (MASS 7.3.60.0.1): stats::t.test(x, mu = 0) [validation/r/ttests.R]; R 4.3.3 (MASS 7.3.60.0.1): stats::t.test(x, mu = 60) [validation/r/ttests.R]
Cases
  • pass sleep (Student 1908), drug 1, mu = 0 (source), max relative error 2.0e-9, tolerance 1e-9
    7 quantities compared; worst relative error 2.02e-9 on 95% CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: statistics 1e-9 relative; P values and CI bounds 1e-6 (distribution-function precision, see numerical.distributions).
  • pass women heights, mu = 60 (source), max relative error 3.0e-9, tolerance 1e-9
    7 quantities compared; worst relative error 3.02e-9 on 95% CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: statistics 1e-9 relative; P values and CI bounds 1e-6 (distribution-function precision, see numerical.distributions).
Paired t test22 passed2.0e-9R 4.3.3 (MASS 7.3.60.0.1): stats::t.test(a, b, paired = TRUE) [validation/r/ttests.R]; R 4.3.3 (MASS 7.3.60.0.1): stats::t.test(log10(a), log10(b), paired = TRUE) [validation/r/ttests.R]
Cases
  • pass sleep (Student 1908), drug 1 vs drug 2 within patient (source), max relative error 2.0e-9, tolerance 1e-9
    7 quantities compared; worst relative error 2.02e-9 on 95% CI upper. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: statistics 1e-9 relative; P values and CI bounds 1e-6 (distribution-function precision, see numerical.distributions).
  • pass PlantGrowth ctrl vs trt1 paired by row (illustrative pairing), log10-transformed (source), max relative error 2.0e-9, tolerance 1e-9
    5 quantities compared; worst relative error 2.02e-9 on 95% CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Test on log10-transformed values (Plotvera "test scale" option); CI is on the transformed scale. Tolerances: statistics 1e-9 relative; P values and CI bounds 1e-6 (distribution-function precision, see numerical.distributions).
Principal component analysis11 passed5.6e-11R 4.3.3: stats::prcomp(X, scale. = TRUE) [validation/r/regression.R]
Cases
  • pass USArrests: Murder, Assault, UrbanPop, Rape (50 states), correlation-matrix PCA (source), max relative error 5.6e-11, tolerance 1e-9
    120 quantities compared; worst relative error 5.59e-11 on loading Rape PC4. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Eigenvalues at 1e-9; loadings and scores at 1e-8 after aligning each component's arbitrary sign to R (the eigenvector solvers differ: Jacobi/QR vs LAPACK SVD). Scores scaled by max(|score|, 1).
Pearson correlation33 passed1.9e-10R 4.3.3: stats::cor.test(x, y, method = 'pearson') [validation/r/regression.R]
Cases
  • pass mtcars wt vs mpg (n = 32) (source), max relative error 4.3e-11, tolerance 1e-9
    7 quantities compared; worst relative error 4.27e-11 on P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Fisher-z CI as R cor.test. Plotvera's CI previously used z = 1.96 rather than qnorm(0.975), a 1e-5 relative shift; fixed in this release. Tolerances: estimates/SE/statistics 1e-9 relative; P values and CI bounds 0.000001.
  • pass mtcars hp vs qsec (n = 32) (source), max relative error 1.9e-10, tolerance 1e-9
    7 quantities compared; worst relative error 1.90e-10 on P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Fisher-z CI as R cor.test. Plotvera's CI previously used z = 1.96 rather than qnorm(0.975), a 1e-5 relative shift; fixed in this release. Tolerances: estimates/SE/statistics 1e-9 relative; P values and CI bounds 0.000001.
  • pass mtcars disp vs drat (n = 32) (source), max relative error 1.9e-10, tolerance 1e-9
    7 quantities compared; worst relative error 1.91e-10 on P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Fisher-z CI as R cor.test. Plotvera's CI previously used z = 1.96 rather than qnorm(0.975), a 1e-5 relative shift; fixed in this release. Tolerances: estimates/SE/statistics 1e-9 relative; P values and CI bounds 0.000001.
One-way ANOVA, repeated measures11 passed3.4e-8R 4.3.3 (car 3.1.5, multcomp 1.4.32, mvtnorm 1.4.2, lme4 2.0.6): stats::aov(y ~ cond + Error(subj/cond)); Greenhouse-Geisser from the double-centred covariance (also car::Anova); Huynh-Feldt (1976) formula, capped at 1 [validation/r/anova.R]
Cases
  • pass RoundingTimes (Hollander & Wolfe 1973): 22 subjects x 3 conditions (source), max relative error 3.4e-8, tolerance 1e-9
    9 quantities compared; worst relative error 3.40e-8 on P (GG). Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. GG epsilon also equals car::Anova (0.7735014632705628). Huynh-Feldt is the original 1976 formula (as SPSS); car reports the Lecoutre (1991) variant, which is a different estimator. Tolerances: SS/MS/F/df/means 1e-9 relative; P values and CI bounds 0.000001 (distribution-function precision).
One-way ANOVA, repeated measures (log10 test scale)11 passed1.1e-12R 4.3.3 (car 3.1.5, multcomp 1.4.32, mvtnorm 1.4.2, lme4 2.0.6): stats::aov(log10(y) ~ cond + Error(subj/cond)) [validation/r/anova.R]
Cases
  • pass RoundingTimes, log10-transformed before testing (Plotvera test-scale option) (source), max relative error 1.1e-12, tolerance 1e-9
    4 quantities compared; worst relative error 1.08e-12 on P (sphericity assumed). Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: SS/MS/F/df/means 1e-9 relative; P values and CI bounds 0.000001 (distribution-function precision).
ROC curve22 passed3.2e-15R 4.3.3 (zoo 1.9.1, investr 1.4.2, lme4 2.0.6, lmerTest 3.2.1, emmeans 2.0.4): AUC = Mann-Whitney U/(n1 n0) (stats::wilcox.test); Hanley-McNeil (1982) SE; Youden J over observed thresholds (positive if marker >= threshold) [validation/r/misc.R]
Cases
  • pass mtcars: weight as a marker of automatic transmission (19 vs 13) (source), max relative error 2.8e-15, tolerance 1e-9
    8 quantities compared; worst relative error 2.76e-15 on AUC 95% CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Hanley-McNeil interval truncated to [0, 1] on both sides. Tolerances: closed-form 1e-9 relative; P values and CI bounds 0.000001.
  • pass infert: number of prior spontaneous abortions as a marker of case status (83 cases, 165 controls; heavy ties) (source), max relative error 3.2e-15, tolerance 1e-9
    8 quantities compared; worst relative error 3.21e-15 on AUC 95% CI lower. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Hanley-McNeil interval truncated to [0, 1] on both sides. Tolerances: closed-form 1e-9 relative; P values and CI bounds 0.000001.
Robust FDR outlier screening (MAD + BH) (robust MAD + BH screening)22 passed5.8e-14R 4.3.3 (zoo 1.9.1, investr 1.4.2, lme4 2.0.6, lmerTest 3.2.1, emmeans 2.0.4): robust z = |x - median|/(MAD/0.6745), two-sided normal P, stats::p.adjust(method = 'BH') (Plotvera's documented screening rule) [validation/r/misc.R]
Cases
  • pass mtcars horsepower (n = 32; Maserati Bora 335 hp) (source), max relative error 8.7e-15, tolerance 1e-9
    98 quantities compared; worst relative error 8.73e-15 on P row 31. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera's own documented screening rule (not GraphPad's ROUT): z = |x - median|/(MAD/0.6745) with the rounded constant 0.6745 as documented, two-sided normal P, Benjamini-Hochberg. Robust z scaled by max(|z|, 1). Tolerances: closed-form 1e-9 relative; P values and CI bounds 0.000001.
  • pass precip (n = 70) (source), max relative error 5.8e-14, tolerance 1e-9
    212 quantities compared; worst relative error 5.76e-14 on BH row 1. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Plotvera's own documented screening rule (not GraphPad's ROUT): z = |x - median|/(MAD/0.6745) with the rounded constant 0.6745 as documented, two-sided normal P, Benjamini-Hochberg. Robust z scaled by max(|z|, 1). Tolerances: closed-form 1e-9 relative; P values and CI bounds 0.000001.
Spearman correlation33 passed7.8e-10R 4.3.3: stats::cor.test(x, y, method = 'spearman', exact = FALSE) [t approximation]; CI: Fisher z with Bonett-Wright SE sqrt((1 + rho^2/2)/(n - 3)) computed in the script [validation/r/regression.R]
Cases
  • pass mtcars wt vs mpg (n = 32, ties) (source), max relative error 7.0e-11, tolerance 1e-9
    5 quantities compared; worst relative error 7.03e-11 on P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Spearman P uses the t approximation (R exact = FALSE, which R also uses with ties); the Bonett-Wright Fisher-z CI has no base-R function and is computed from its formula in regression.R. Plotvera's CI previously used z = 1.96 rather than qnorm(0.975), a 1e-5 relative shift; fixed in this release. Tolerances: estimates/SE/statistics 1e-9 relative; P values and CI bounds 0.000001.
  • pass mtcars hp vs qsec (n = 32, ties) (source), max relative error 7.8e-10, tolerance 1e-9
    5 quantities compared; worst relative error 7.76e-10 on P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Spearman P uses the t approximation (R exact = FALSE, which R also uses with ties); the Bonett-Wright Fisher-z CI has no base-R function and is computed from its formula in regression.R. Plotvera's CI previously used z = 1.96 rather than qnorm(0.975), a 1e-5 relative shift; fixed in this release. Tolerances: estimates/SE/statistics 1e-9 relative; P values and CI bounds 0.000001.
  • pass mtcars disp vs drat (n = 32, ties) (source), max relative error 4.4e-10, tolerance 1e-9
    5 quantities compared; worst relative error 4.43e-10 on P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Spearman P uses the t approximation (R exact = FALSE, which R also uses with ties); the Bonett-Wright Fisher-z CI has no base-R function and is computed from its formula in regression.R. Plotvera's CI previously used z = 1.96 rather than qnorm(0.975), a 1e-5 relative shift; fixed in this release. Tolerances: estimates/SE/statistics 1e-9 relative; P values and CI bounds 0.000001.
Spearman correlation2727 passed2.7e-14R 4.3.3 (survival 3.5.8): stats::cor.test(x, y, method = 'spearman') [validation/r/rankexact.R]
Cases
  • pass seeded, n = 3, no ties, max relative error 2.2e-16, tolerance 1e-9
    2 quantities compared; worst relative error 2.22e-16 on rho. Plotvera method: exact (all orderings). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 4, no ties, perfect order, max relative error 0 (identical), tolerance 1e-9
    2 quantities compared. Plotvera method: exact (all orderings). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 4, no ties, perfect reverse order, max relative error 0 (identical), tolerance 1e-9
    2 quantities compared. Plotvera method: exact (all orderings). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 5, no ties, max relative error 1.6e-16, tolerance 1e-9
    2 quantities compared; worst relative error 1.59e-16 on rho. Plotvera method: exact (all orderings). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 6, no ties, max relative error 1.4e-16, tolerance 1e-9
    2 quantities compared; worst relative error 1.44e-16 on rho. Plotvera method: exact (all orderings). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 7, no ties, max relative error 0 (identical), tolerance 1e-9
    2 quantities compared. Plotvera method: exact (all orderings). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 8, no ties, max relative error 0 (identical), tolerance 1e-9
    2 quantities compared. Plotvera method: exact (all orderings). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 9, no ties, max relative error 2.3e-16, tolerance 1e-9
    2 quantities compared; worst relative error 2.30e-16 on rho. Plotvera method: exact (all orderings). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 9, no ties, max relative error 2.0e-16, tolerance 1e-9
    2 quantities compared; worst relative error 2.02e-16 on rho. Plotvera method: exact (all orderings). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 10, no ties, max relative error 2.7e-16, tolerance 1e-9
    2 quantities compared; worst relative error 2.74e-16 on P (two-tailed). Plotvera method: Edgeworth series (AS 89). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 11, no ties, max relative error 4.2e-16, tolerance 1e-9
    2 quantities compared; worst relative error 4.16e-16 on P (two-tailed). Plotvera method: Edgeworth series (AS 89). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 12, no ties, max relative error 2.7e-14, tolerance 1e-9
    2 quantities compared; worst relative error 2.74e-14 on P (two-tailed). Plotvera method: Edgeworth series (AS 89). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 15, no ties, max relative error 4.2e-16, tolerance 1e-9
    2 quantities compared; worst relative error 4.17e-16 on P (two-tailed). Plotvera method: Edgeworth series (AS 89). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 20, no ties, max relative error 1.1e-15, tolerance 1e-9
    2 quantities compared; worst relative error 1.12e-15 on P (two-tailed). Plotvera method: Edgeworth series (AS 89). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 30, no ties, max relative error 9.4e-15, tolerance 1e-9
    2 quantities compared; worst relative error 9.40e-15 on P (two-tailed). Plotvera method: Edgeworth series (AS 89). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 42, no ties, max relative error 3.5e-15, tolerance 1e-9
    2 quantities compared; worst relative error 3.53e-15 on P (two-tailed). Plotvera method: Edgeworth series (AS 89). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 60, no ties, max relative error 2.6e-16, tolerance 1e-9
    2 quantities compared; worst relative error 2.65e-16 on rho. Plotvera method: Edgeworth series (AS 89). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 100, no ties, max relative error 4.8e-16, tolerance 1e-9
    2 quantities compared; worst relative error 4.78e-16 on P (two-tailed). Plotvera method: Edgeworth series (AS 89). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 23, no ties, max relative error 1.4e-14, tolerance 1e-9
    2 quantities compared; worst relative error 1.40e-14 on P (two-tailed). Plotvera method: Edgeworth series (AS 89). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 34, no ties, max relative error 2.2e-16, tolerance 1e-9
    2 quantities compared; worst relative error 2.22e-16 on P (two-tailed). Plotvera method: Edgeworth series (AS 89). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 10, no ties, max relative error 3.1e-16, tolerance 1e-9
    2 quantities compared; worst relative error 3.12e-16 on P (two-tailed). Plotvera method: Edgeworth series (AS 89). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 20, no ties, max relative error 3.5e-16, tolerance 1e-9
    2 quantities compared; worst relative error 3.46e-16 on P (two-tailed). Plotvera method: Edgeworth series (AS 89). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 33, no ties, max relative error 2.2e-16, tolerance 1e-9
    2 quantities compared; worst relative error 2.25e-16 on P (two-tailed). Plotvera method: Edgeworth series (AS 89). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 12, no ties, max relative error 3.8e-16, tolerance 1e-9
    2 quantities compared; worst relative error 3.77e-16 on P (two-tailed). Plotvera method: Edgeworth series (AS 89). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 36, no ties, max relative error 8.9e-16, tolerance 1e-9
    2 quantities compared; worst relative error 8.94e-16 on P (two-tailed). Plotvera method: Edgeworth series (AS 89). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass seeded, n = 17, no ties, max relative error 2.3e-16, tolerance 1e-9
    2 quantities compared; worst relative error 2.28e-16 on P (two-tailed). Plotvera method: Edgeworth series (AS 89). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
  • pass ties: t approximation, max relative error 1.0e-14, tolerance 1e-9
    2 quantities compared; worst relative error 9.96e-15 on P (two-tailed). Plotvera method: t approximation (ties present). R cor.test computes the P by AS 89 (every ordering for n <= 9, an Edgeworth series above) when there are no ties and n <= 1290, else the t approximation.
Standard normal CDF11 passed1.2e-13R 4.3.3: pnorm(z) [validation/r/distributions.R]
Cases
  • pass 12-point grid of arguments (validation/r/distributions.R), max relative error 1.2e-13, tolerance 1e-6
    12 quantities compared; worst relative error 1.24e-13 on normCDF(-6). Tolerance 0.000001, relative; probabilities use |a - e| / max(e, 0.000001) so P values below 0.000001 are held to 1e-12 absolute (upper tails are 1 - CDF: values below ~1e-16 return 0, displayed "< 0.0001").
Standard normal quantile11 passed2.2e-15R 4.3.3: qnorm(p) [validation/r/distributions.R]
Cases
  • pass 9-point grid of arguments (validation/r/distributions.R), max relative error 2.2e-15, tolerance 1e-6
    9 quantities compared; worst relative error 2.16e-15 on normInv(0.001). Tolerance 0.000001, relative; probabilities use |a - e| / max(e, 0.000001) so P values below 0.000001 are held to 1e-12 absolute (upper tails are 1 - CDF: values below ~1e-16 return 0, displayed "< 0.0001").
Standard curve: read unknowns (ELISA)11 passed2.1e-7R 4.3.3 (zoo 1.9.1, investr 1.4.2, lme4 2.0.6, lmerTest 3.2.1, emmeans 2.0.4): stats::nls 4PL Bottom + (Top-Bottom)/(1+(conc/EC50)^(-Hill)); investr::invest(interval = 'inversion') (calibration interval for one new reading) [validation/r/misc.R]
Cases
  • pass DNase ELISA: run 1 standards (16 points, 4PL on linear concentration), 4 run-2 readings as unknowns (source), max relative error 2.1e-7, tolerance 1e-4
    20 quantities compared; worst relative error 2.14e-7 on Hill SE. Engine standardCurve (the analysis behind "Standard curve: read unknowns"). Both fits are iterative (Plotvera LM; R nls to relative offset 1e-7) and both inversion intervals are root searches, so parameters are held to 1e-4 of their SE and interpolated concentrations and calibration limits to 1e-4 relative.
Studentized range upper-tail P (Tukey)11 passed0 (identical)R 4.3.3: ptukey(q, k, df, lower.tail = FALSE) [validation/r/distributions.R]
Cases
  • pass 81-point grid of arguments (validation/r/distributions.R), max relative error 0 (identical), tolerance 1e-6
    81 quantities compared. Absolute tolerance 1e-10: both R's ptukey and jStat.tukey (a port of it) integrate numerically (16-point Gauss-Legendre) and form the upper tail as 1 - CDF, so agreement is absolute, not relative.
Survival: Kaplan-Meier median and 95% CI1212 passed0 (identical)R 4.3.3 (survival 3.5.8): survival::survfit(Surv(t, e) ~ 1, conf.type = 'log-log') [validation/r/rankexact.R]
Cases
  • pass seeded exponential, n = 5, every subject has the event, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. Brookmeyer-Crowley CI on the log-log Greenwood band. A bound R reports as NA (the curve fell to 0 first, or never crossed) is "not estimable" or NR in Plotvera. A curve exactly on 50% gives the midpoint to the next event, as R and Prism.
  • pass seeded exponential, n = 6, every subject has the event, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. Brookmeyer-Crowley CI on the log-log Greenwood band. A bound R reports as NA (the curve fell to 0 first, or never crossed) is "not estimable" or NR in Plotvera. A curve exactly on 50% gives the midpoint to the next event, as R and Prism.
  • pass seeded exponential, n = 8, every subject has the event, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. Brookmeyer-Crowley CI on the log-log Greenwood band. A bound R reports as NA (the curve fell to 0 first, or never crossed) is "not estimable" or NR in Plotvera. A curve exactly on 50% gives the midpoint to the next event, as R and Prism.
  • pass seeded exponential, n = 10, every subject has the event, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. Brookmeyer-Crowley CI on the log-log Greenwood band. A bound R reports as NA (the curve fell to 0 first, or never crossed) is "not estimable" or NR in Plotvera. A curve exactly on 50% gives the midpoint to the next event, as R and Prism.
  • pass seeded exponential, n = 12, every subject has the event, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. Brookmeyer-Crowley CI on the log-log Greenwood band. A bound R reports as NA (the curve fell to 0 first, or never crossed) is "not estimable" or NR in Plotvera. A curve exactly on 50% gives the midpoint to the next event, as R and Prism.
  • pass seeded exponential, n = 20, every subject has the event, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. Brookmeyer-Crowley CI on the log-log Greenwood band. A bound R reports as NA (the curve fell to 0 first, or never crossed) is "not estimable" or NR in Plotvera. A curve exactly on 50% gives the midpoint to the next event, as R and Prism.
  • pass seeded exponential, n = 10, some censored, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. Brookmeyer-Crowley CI on the log-log Greenwood band. A bound R reports as NA (the curve fell to 0 first, or never crossed) is "not estimable" or NR in Plotvera. A curve exactly on 50% gives the midpoint to the next event, as R and Prism.
  • pass seeded exponential, n = 15, some censored, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. Brookmeyer-Crowley CI on the log-log Greenwood band. A bound R reports as NA (the curve fell to 0 first, or never crossed) is "not estimable" or NR in Plotvera. A curve exactly on 50% gives the midpoint to the next event, as R and Prism.
  • pass seeded exponential, n = 25, some censored, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. Brookmeyer-Crowley CI on the log-log Greenwood band. A bound R reports as NA (the curve fell to 0 first, or never crossed) is "not estimable" or NR in Plotvera. A curve exactly on 50% gives the midpoint to the next event, as R and Prism.
  • pass seeded exponential, n = 4, every subject has the event, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. Brookmeyer-Crowley CI on the log-log Greenwood band. A bound R reports as NA (the curve fell to 0 first, or never crossed) is "not estimable" or NR in Plotvera. A curve exactly on 50% gives the midpoint to the next event, as R and Prism.
  • pass seeded exponential, n = 3, every subject has the event, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. Brookmeyer-Crowley CI on the log-log Greenwood band. A bound R reports as NA (the curve fell to 0 first, or never crossed) is "not estimable" or NR in Plotvera. A curve exactly on 50% gives the midpoint to the next event, as R and Prism.
  • pass seeded exponential, n = 7, every subject has the event, max relative error 0 (identical), tolerance 1e-9
    3 quantities compared. Brookmeyer-Crowley CI on the log-log Greenwood band. A bound R reports as NA (the curve fell to 0 first, or never crossed) is "not estimable" or NR in Plotvera. A curve exactly on 50% gives the midpoint to the next event, as R and Prism.
t quantile11 passed5.7e-8R 4.3.3: qt(p, df) [validation/r/distributions.R]
Cases
  • pass 72-point grid of arguments (validation/r/distributions.R), max relative error 5.7e-8, tolerance 1e-6
    72 quantities compared; worst relative error 5.66e-8 on tInv(0.75, 1). Tolerance 0.000001, relative; probabilities use |a - e| / max(e, 0.000001) so P values below 0.000001 are held to 1e-12 absolute (upper tails are 1 - CDF: values below ~1e-16 return 0, displayed "< 0.0001").
Area under curve per mouse, compare arms11 passed1.6e-9R 4.3.3 (zoo 1.9.1, investr 1.4.2, lme4 2.0.6, lmerTest 3.2.1, emmeans 2.0.4): trapezoid AUC per chick; stats::aov(auc ~ diet) [validation/r/misc.R]
Cases
  • pass ChickWeight: per-chick AUC over days 0-21 for the 45 chicks weighed at all 12 times, 4 diets (source), max relative error 1.6e-9, tolerance 1e-9
    49 quantities compared; worst relative error 1.61e-9 on P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Only chicks weighed at all 12 times are passed, so Plotvera's common window is the full day 0-21 range used in R. Tolerances: closed-form 1e-9 relative; P values and CI bounds 0.000001.
Mixed-effects model (arm x time)11 passed4.1e-6R 4.3.3 (zoo 1.9.1, investr 1.4.2, lme4 2.0.6, lmerTest 3.2.1, emmeans 2.0.4): lmerTest::lmer(weight ~ Diet * factor(Time) + (1 | Chick), REML, sum-to-zero contrasts); anova(type = 3, ddf = 'Satterthwaite') [validation/r/misc.R]
Cases
  • pass ChickWeight: all 578 weights of 50 chicks (dropouts kept), diet x day, random intercept per chick (source), max relative error 4.1e-6, tolerance 1e-6
    14 quantities compared; worst relative error 4.06e-6 on Arm P. Engine fitMixedTimeCourse (behind "Mixed-effects model (arm × time)"). REML is a one-dimensional numerical optimisation on both sides (Plotvera profiles the variance ratio; lme4 uses its own optimiser), so variance components and F are held to 1e-6 and Satterthwaite df and P values to 1e-5 relative.
Two-tailed t P value11 passed3.7e-8R 4.3.3: 2 * pt(-|t|, df) [validation/r/distributions.R]
Cases
  • pass 99-point grid of arguments (validation/r/distributions.R), max relative error 3.7e-8, tolerance 1e-6
    99 quantities compared; worst relative error 3.66e-8 on pTwoT(0.1, 100). Tolerance 0.000001, relative; probabilities use |a - e| / max(e, 0.000001) so P values below 0.000001 are held to 1e-12 absolute (upper tails are 1 - CDF: values below ~1e-16 return 0, displayed "< 0.0001").
Unpaired t test44 passed1.2e-8R 4.3.3 (MASS 7.3.60.0.1): stats::t.test(a, b, var.equal = TRUE) [validation/r/ttests.R]; R 4.3.3 (MASS 7.3.60.0.1): stats::t.test(log10(a), log10(b), var.equal = TRUE) [validation/r/ttests.R]; R 4.3.3 (MASS 7.3.60.0.1): stats::t.test(ln(a), ln(b), var.equal = TRUE) [validation/r/ttests.R]; R 4.3.3 (MASS 7.3.60.0.1): stats::t.test(log2(a), log2(b), var.equal = TRUE) [validation/r/ttests.R]
Cases
  • pass sleep (Student 1908), drug 1 vs drug 2 as independent groups (source), max relative error 1.2e-8, tolerance 1e-9
    7 quantities compared; worst relative error 1.21e-8 on 95% CI upper. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: statistics 1e-9 relative; P values and CI bounds 1e-6 (distribution-function precision, see numerical.distributions).
  • pass PlantGrowth ctrl vs trt2, log10-transformed before testing (source), max relative error 1.2e-8, tolerance 1e-9
    5 quantities compared; worst relative error 1.21e-8 on 95% CI upper. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Test on log10-transformed values (Plotvera "test scale" option); CI is on the transformed scale. Tolerances: statistics 1e-9 relative; P values and CI bounds 1e-6 (distribution-function precision, see numerical.distributions).
  • pass PlantGrowth ctrl vs trt2, ln-transformed before testing (source), max relative error 1.2e-8, tolerance 1e-9
    5 quantities compared; worst relative error 1.21e-8 on 95% CI upper. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Test on ln-transformed values (Plotvera "test scale" option); CI is on the transformed scale. Tolerances: statistics 1e-9 relative; P values and CI bounds 1e-6 (distribution-function precision, see numerical.distributions).
  • pass PlantGrowth ctrl vs trt2, log2-transformed before testing (source), max relative error 1.2e-8, tolerance 1e-9
    5 quantities compared; worst relative error 1.21e-8 on 95% CI upper. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Test on log2-transformed values (Plotvera "test scale" option); CI is on the transformed scale. Tolerances: statistics 1e-9 relative; P values and CI bounds 1e-6 (distribution-function precision, see numerical.distributions).
Unpaired t test (with an excluded value)11 passed4.0e-9R 4.3.3 (outliers 0.15): stats::t.test(A[-5], B, var.equal = TRUE) on the reduced data [validation/r/qc.R]
Cases
  • pass A (n = 5, A row 5 = 25.0 excluded) vs B (n = 5), synthetic (source), max relative error 4.0e-9, tolerance 1e-9
    7 quantities compared; worst relative error 4.04e-9 on 95% CI upper. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. The excluded cell stays in the table; the analysis reads the table with it left out and must equal R on the reduced data. Tolerances: t, df, mean difference 1e-9; P and CI 0.000001.
Welch's t test44 passed1.1e-8R 4.3.3 (MASS 7.3.60.0.1): stats::t.test(a, b, var.equal = FALSE) [validation/r/ttests.R]; R 4.3.3 (MASS 7.3.60.0.1): stats::t.test(log10(a), log10(b), var.equal = FALSE) [validation/r/ttests.R]; R 4.3.3 (MASS 7.3.60.0.1): stats::t.test(ln(a), ln(b), var.equal = FALSE) [validation/r/ttests.R]; R 4.3.3 (MASS 7.3.60.0.1): stats::t.test(log2(a), log2(b), var.equal = FALSE) [validation/r/ttests.R]
Cases
  • pass sleep (Student 1908), drug 1 vs drug 2 as independent groups (source), max relative error 1.1e-8, tolerance 1e-9
    7 quantities compared; worst relative error 1.14e-8 on 95% CI upper. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: statistics 1e-9 relative; P values and CI bounds 1e-6 (distribution-function precision, see numerical.distributions).
  • pass PlantGrowth ctrl vs trt2, log10-transformed before testing (source), max relative error 6.4e-9, tolerance 1e-9
    5 quantities compared; worst relative error 6.37e-9 on 95% CI upper. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Test on log10-transformed values (Plotvera "test scale" option); CI is on the transformed scale. Tolerances: statistics 1e-9 relative; P values and CI bounds 1e-6 (distribution-function precision, see numerical.distributions).
  • pass PlantGrowth ctrl vs trt2, ln-transformed before testing (source), max relative error 6.4e-9, tolerance 1e-9
    5 quantities compared; worst relative error 6.37e-9 on 95% CI upper. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Test on ln-transformed values (Plotvera "test scale" option); CI is on the transformed scale. Tolerances: statistics 1e-9 relative; P values and CI bounds 1e-6 (distribution-function precision, see numerical.distributions).
  • pass PlantGrowth ctrl vs trt2, log2-transformed before testing (source), max relative error 6.4e-9, tolerance 1e-9
    5 quantities compared; worst relative error 6.37e-9 on 95% CI upper. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Test on log2-transformed values (Plotvera "test scale" option); CI is on the transformed scale. Tolerances: statistics 1e-9 relative; P values and CI bounds 1e-6 (distribution-function precision, see numerical.distributions).
Wilcoxon matched-pairs signed-rank22 passed5.2e-15R 4.3.3 (MASS 7.3.60.0.1): stats::wilcox.test(a, b, paired = TRUE, correct = TRUE, exact = FALSE) [validation/r/ttests.R]; R 4.3.3 (MASS 7.3.60.0.1): stats::wilcox.test(post, pre, paired = TRUE, exact = TRUE) [validation/r/ttests.R]
Cases
  • pass sleep drug 1 vs drug 2 (one zero difference dropped; tied |d|: normal approximation) (source), max relative error 5.2e-15, tolerance 1e-9
    3 quantities compared; worst relative error 5.15e-15 on P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Normal approximation with tie and continuity correction on both sides (R correct = TRUE). Tolerances: statistics 1e-9 relative; P values and CI bounds 1e-6 (distribution-function precision, see numerical.distributions).
  • pass MASS::anorexia FT group, Postwt vs Prewt (n=17, no ties): exact (source), max relative error 2.6e-16, tolerance 1e-9
    3 quantities compared; worst relative error 2.58e-16 on P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: statistics 1e-9 relative; P values and CI bounds 1e-6 (distribution-function precision, see numerical.distributions).
Wilcoxon matched-pairs signed-rank2323 passed1.5e-12R 4.3.3 (survival 3.5.8): stats::wilcox.test(a, b, paired = TRUE) [validation/r/rankexact.R]
Cases
  • pass seeded paired normal, n = 6, no ties or zeros, max relative error 4.4e-16, tolerance 1e-9
    2 quantities compared; worst relative error 4.44e-16 on P (two-tailed). Plotvera method: exact. Exact below 50 non-zero pairs with no tied |differences| and no zero differences (as R); the graph bracket uses the same P.
  • pass seeded paired normal, n = 10, no ties or zeros, max relative error 0 (identical), tolerance 1e-9
    2 quantities compared. Plotvera method: exact. Exact below 50 non-zero pairs with no tied |differences| and no zero differences (as R); the graph bracket uses the same P.
  • pass seeded paired normal, n = 25, no ties or zeros, max relative error 2.1e-16, tolerance 1e-9
    2 quantities compared; worst relative error 2.11e-16 on P (two-tailed). Plotvera method: exact. Exact below 50 non-zero pairs with no tied |differences| and no zero differences (as R); the graph bracket uses the same P.
  • pass seeded paired normal, n = 30, no ties or zeros, max relative error 1.6e-16, tolerance 1e-9
    2 quantities compared; worst relative error 1.57e-16 on P (two-tailed). Plotvera method: exact. Exact below 50 non-zero pairs with no tied |differences| and no zero differences (as R); the graph bracket uses the same P.
  • pass seeded paired normal, n = 31, no ties or zeros, max relative error 1.3e-16, tolerance 1e-9
    2 quantities compared; worst relative error 1.28e-16 on P (two-tailed). Plotvera method: exact. Exact below 50 non-zero pairs with no tied |differences| and no zero differences (as R); the graph bracket uses the same P.
  • pass seeded paired normal, n = 38, no ties or zeros, max relative error 1.1e-16, tolerance 1e-9
    2 quantities compared; worst relative error 1.14e-16 on P (two-tailed). Plotvera method: exact. Exact below 50 non-zero pairs with no tied |differences| and no zero differences (as R); the graph bracket uses the same P.
  • pass seeded paired normal, n = 45, no ties or zeros, max relative error 1.7e-16, tolerance 1e-9
    2 quantities compared; worst relative error 1.70e-16 on P (two-tailed). Plotvera method: exact. Exact below 50 non-zero pairs with no tied |differences| and no zero differences (as R); the graph bracket uses the same P.
  • pass seeded paired normal, n = 49, no ties or zeros, max relative error 7.9e-17, tolerance 1e-9
    2 quantities compared; worst relative error 7.94e-17 on P (two-tailed). Plotvera method: exact. Exact below 50 non-zero pairs with no tied |differences| and no zero differences (as R); the graph bracket uses the same P.
  • pass seeded paired normal, n = 50, no ties or zeros, max relative error 5.8e-16, tolerance 1e-9
    2 quantities compared; worst relative error 5.80e-16 on P (two-tailed). Plotvera method: normal approximation. Exact below 50 non-zero pairs with no tied |differences| and no zero differences (as R); the graph bracket uses the same P.
  • pass seeded paired normal, n = 70, no ties or zeros, max relative error 1.5e-12, tolerance 1e-9
    2 quantities compared; worst relative error 1.48e-12 on P (two-tailed). Plotvera method: normal approximation. Exact below 50 non-zero pairs with no tied |differences| and no zero differences (as R); the graph bracket uses the same P.
  • pass seeded paired normal, n = 12, no ties or zeros, max relative error 6.5e-16, tolerance 1e-9
    2 quantities compared; worst relative error 6.54e-16 on P (two-tailed). Plotvera method: exact. Exact below 50 non-zero pairs with no tied |differences| and no zero differences (as R); the graph bracket uses the same P.
  • pass seeded paired normal, n = 22, no ties or zeros, max relative error 1.8e-16, tolerance 1e-9
    2 quantities compared; worst relative error 1.78e-16 on P (two-tailed). Plotvera method: exact. Exact below 50 non-zero pairs with no tied |differences| and no zero differences (as R); the graph bracket uses the same P.
  • pass seeded paired normal, n = 36, no ties or zeros, max relative error 1.8e-16, tolerance 1e-9
    2 quantities compared; worst relative error 1.77e-16 on P (two-tailed). Plotvera method: exact. Exact below 50 non-zero pairs with no tied |differences| and no zero differences (as R); the graph bracket uses the same P.
  • pass seeded paired normal, n = 47, no ties or zeros, max relative error 1.8e-15, tolerance 1e-9
    2 quantities compared; worst relative error 1.77e-15 on P (two-tailed). Plotvera method: exact. Exact below 50 non-zero pairs with no tied |differences| and no zero differences (as R); the graph bracket uses the same P.
  • pass seeded paired normal, n = 17, no ties or zeros, max relative error 2.0e-16, tolerance 1e-9
    2 quantities compared; worst relative error 1.99e-16 on P (two-tailed). Plotvera method: exact. Exact below 50 non-zero pairs with no tied |differences| and no zero differences (as R); the graph bracket uses the same P.
  • pass seeded paired normal, n = 32, no ties or zeros, max relative error 1.7e-16, tolerance 1e-9
    2 quantities compared; worst relative error 1.73e-16 on P (two-tailed). Plotvera method: exact. Exact below 50 non-zero pairs with no tied |differences| and no zero differences (as R); the graph bracket uses the same P.
  • pass seeded paired normal, n = 10, no ties or zeros, max relative error 0 (identical), tolerance 1e-9
    2 quantities compared. Plotvera method: exact. Exact below 50 non-zero pairs with no tied |differences| and no zero differences (as R); the graph bracket uses the same P.
  • pass seeded paired normal, n = 10, no ties or zeros, max relative error 0 (identical), tolerance 1e-9
    2 quantities compared. Plotvera method: exact. Exact below 50 non-zero pairs with no tied |differences| and no zero differences (as R); the graph bracket uses the same P.
  • pass seeded paired normal, n = 9, no ties or zeros, max relative error 0 (identical), tolerance 1e-9
    2 quantities compared. Plotvera method: exact. Exact below 50 non-zero pairs with no tied |differences| and no zero differences (as R); the graph bracket uses the same P.
  • pass seeded paired normal, n = 40, no ties or zeros, max relative error 0 (identical), tolerance 1e-9
    2 quantities compared. Plotvera method: exact. Exact below 50 non-zero pairs with no tied |differences| and no zero differences (as R); the graph bracket uses the same P.
  • pass seeded paired, n = 8 with 2 zero differences, max relative error 1.3e-16, tolerance 1e-9
    2 quantities compared; worst relative error 1.33e-16 on P (two-tailed). Plotvera method: normal approximation (zero differences present). Exact below 50 non-zero pairs with no tied |differences| and no zero differences (as R); the graph bracket uses the same P.
  • pass seeded paired, n = 15 with 2 zero differences, max relative error 1.2e-15, tolerance 1e-9
    2 quantities compared; worst relative error 1.21e-15 on P (two-tailed). Plotvera method: normal approximation (zero differences present). Exact below 50 non-zero pairs with no tied |differences| and no zero differences (as R); the graph bracket uses the same P.
  • pass seeded paired, n = 30 with 2 zero differences, max relative error 4.2e-15, tolerance 1e-9
    2 quantities compared; worst relative error 4.18e-15 on P (two-tailed). Plotvera method: normal approximation (zero differences present). Exact below 50 non-zero pairs with no tied |differences| and no zero differences (as R); the graph bracket uses the same P.
One-sample Wilcoxon signed-rank22 passed1.1e-16R 4.3.3 (MASS 7.3.60.0.1): stats::wilcox.test(x, mu = 85, exact = TRUE) [validation/r/ttests.R]; R 4.3.3 (MASS 7.3.60.0.1): stats::wilcox.test(x, mu = 1) [R default method] [validation/r/ttests.R]
Cases
  • pass MASS::anorexia FT Postwt vs hypothetical 85 lb (no ties): exact (source), max relative error 1.1e-16, tolerance 1e-9
    2 quantities compared; worst relative error 1.14e-16 on P. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: statistics 1e-9 relative; P values and CI bounds 1e-6 (distribution-function precision, see numerical.distributions).
  • pass sleep drug 2 vs hypothetical 1 (R default: exact; decimal ties 0.9/-0.9 differ in binary64) (source), max relative error 0 (identical), tolerance 1e-9
    2 quantities compared. Display formatters fmt/fmtP/fmtR2/fmtDecisionP replaced by full-precision String(x) for the test; engine arithmetic untouched. Tolerances: statistics 1e-9 relative; P values and CI bounds 1e-6 (distribution-function precision, see numerical.distributions).

Same input, same version, same numbers

MethodCasesResultLargest relative error (passing cases)Reference and cases
Cox proportional hazards (survival::lung by sex)11 passed0 (identical)Same engine: repeat run, structuredClone of the input, and 3 seeded row permutations
Cases
  • pass lung, max relative error 0 (identical), tolerance 1e-12
    Repeat and deep-cloned runs bit-identical (JSON.stringify equal at full precision); 36 numbers compared across 3 row permutations, worst relative difference 0.00e+0 (differences below 1e-14 absolute treated as round-off of zero).
Kaplan-Meier + log-rank (survival::lung by sex)11 passed0 (identical)Same engine: repeat run, structuredClone of the input, and 3 seeded row permutations
Cases
  • pass lung, max relative error 0 (identical), tolerance 1e-12
    Repeat and deep-cloned runs bit-identical (JSON.stringify equal at full precision); 108 numbers compared across 3 row permutations, worst relative difference 0.00e+0 (differences below 1e-14 absolute treated as round-off of zero).
Linear regression (women)11 passed4.8e-16Same engine: repeat run, structuredClone of the input, and 3 seeded row permutations
Cases
  • pass women, max relative error 4.8e-16, tolerance 1e-12
    Repeat and deep-cloned runs bit-identical (JSON.stringify equal at full precision); 48 numbers compared across 3 row permutations, worst relative difference 4.76e-16 (differences below 1e-14 absolute treated as round-off of zero).
Multiple regression (mtcars mpg ~ wt + hp + disp)11 passed0 (identical)Same engine: repeat run, structuredClone of the input, and 3 seeded row permutations
Cases
  • pass mtcars, max relative error 0 (identical), tolerance 1e-12
    Repeat and deep-cloned runs bit-identical (JSON.stringify equal at full precision); 75 numbers compared across 3 row permutations, worst relative difference 0.00e+0 (differences below 1e-14 absolute treated as round-off of zero).
Nonlinear 4PL fit (DNase run 1)11 passed2.8e-8Same engine: repeat run, structuredClone of the input, and 3 seeded row permutations
Cases
  • pass DNase1, max relative error 2.8e-8, tolerance 1e-6
    Repeat and deep-cloned runs bit-identical (JSON.stringify equal at full precision); 78 numbers compared across 3 row permutations, worst relative difference 2.77e-8 (differences below 1e-14 absolute treated as round-off of zero). Levenberg-Marquardt sums residuals in row order, so a permuted fit follows a different floating-point path and stops at a slightly different point of the flat optimum (measured ~3e-8 relative, far below the displayed 4 significant digits and ~1e-5 of a standard error). Held to 1e-6 rather than 1e-12; the iteration count is excluded.
One-way ANOVA + Tukey (PlantGrowth)11 passed0 (identical)Same engine: repeat run, structuredClone of the input, and 3 seeded row permutations
Cases
  • pass PlantGrowth, max relative error 0 (identical), tolerance 1e-12
    Repeat and deep-cloned runs bit-identical (JSON.stringify equal at full precision); 81 numbers compared across 3 row permutations, worst relative difference 0.00e+0 (differences below 1e-14 absolute treated as round-off of zero).
Paired t test (sleep)11 passed0 (identical)Same engine: repeat run, structuredClone of the input, and 3 seeded row permutations
Cases
  • pass sleep, max relative error 0 (identical), tolerance 1e-12
    Repeat and deep-cloned runs bit-identical (JSON.stringify equal at full precision); 24 numbers compared across 3 row permutations, worst relative difference 0.00e+0 (differences below 1e-14 absolute treated as round-off of zero).
Simple logistic regression (mtcars am ~ wt)11 passed0 (identical)Same engine: repeat run, structuredClone of the input, and 3 seeded row permutations
Cases
  • pass mtcars, max relative error 0 (identical), tolerance 1e-12
    Repeat and deep-cloned runs bit-identical (JSON.stringify equal at full precision); 48 numbers compared across 3 row permutations, worst relative difference 0.00e+0 (differences below 1e-14 absolute treated as round-off of zero).
Two-way ANOVA (ToothGrowth)11 passed1.0e-15Same engine: repeat run, structuredClone of the input, and 3 seeded row permutations
Cases
  • pass ToothGrowth, max relative error 1.0e-15, tolerance 1e-12
    Repeat and deep-cloned runs bit-identical (JSON.stringify equal at full precision); 54 numbers compared across 3 row permutations, worst relative difference 1.05e-15 (differences below 1e-14 absolute treated as round-off of zero).
Welch's t test (sleep)11 passed0 (identical)Same engine: repeat run, structuredClone of the input, and 3 seeded row permutations
Cases
  • pass sleep, max relative error 0 (identical), tolerance 1e-12
    Repeat and deep-cloned runs bit-identical (JSON.stringify equal at full precision); 45 numbers compared across 3 row permutations, worst relative difference 0.00e+0 (differences below 1e-14 absolute treated as round-off of zero).

Import and re-import keeps every number

MethodCasesResultLargest relative error (passing cases)Reference and cases
.plotvera (R/Python integration) -> .plotvera -> re-import1414 passed0 (identical)original import
Cases
  • pass integrations/py-column.plotvera, max relative error 0 (identical)
    6 cells, 1 tables, 1 graphs compared
  • pass integrations/py-grouped.plotvera, max relative error 0 (identical)
    12 cells, 1 tables, 1 graphs compared
  • pass integrations/py-mpl-lines.plotvera, max relative error 0 (identical)
    9 cells, 1 tables, 1 graphs compared
  • pass integrations/py-seaborn.plotvera, max relative error 0 (identical)
    23 cells, 2 tables, 2 graphs compared
  • pass integrations/py-survival.plotvera, max relative error 0 (identical)
    18 cells, 1 tables, 1 graphs compared
  • pass integrations/py-xy.plotvera, max relative error 0 (identical)
    21 cells, 1 tables, 1 graphs compared
  • pass integrations/r-column.plotvera, max relative error 0 (identical)
    6 cells, 1 tables, 1 graphs compared
  • pass integrations/r-gg-box.plotvera, max relative error 0 (identical)
    10 cells, 1 tables, 1 graphs compared
  • pass integrations/r-gg-facets.plotvera, max relative error 0 (identical)
    32 cells, 2 tables, 2 graphs compared
  • pass integrations/r-gg-grouped.plotvera, max relative error 0 (identical)
    18 cells, 1 tables, 1 graphs compared
  • pass integrations/r-gg-xy.plotvera, max relative error 0 (identical)
    28 cells, 1 tables, 1 graphs compared
  • pass integrations/r-grouped.plotvera, max relative error 0 (identical)
    12 cells, 1 tables, 1 graphs compared
  • pass integrations/r-survival.plotvera, max relative error 0 (identical)
    18 cells, 1 tables, 1 graphs compared
  • pass integrations/r-xy.plotvera, max relative error 0 (identical)
    21 cells, 1 tables, 1 graphs compared
.plotvera (R/Python integration) -> .prism -> re-import1414 passed0 (identical)original import
Cases
  • pass integrations/py-column.plotvera, max relative error 0 (identical)
    6 cells, 1 tables compared
  • pass integrations/py-grouped.plotvera, max relative error 0 (identical)
    12 cells, 1 tables compared
  • pass integrations/py-mpl-lines.plotvera, max relative error 0 (identical)
    9 cells, 1 tables compared
  • pass integrations/py-seaborn.plotvera, max relative error 0 (identical)
    23 cells, 2 tables compared
  • pass integrations/py-survival.plotvera, max relative error 0 (identical)
    18 cells, 1 tables compared
  • pass integrations/py-xy.plotvera, max relative error 0 (identical)
    21 cells, 1 tables compared
  • pass integrations/r-column.plotvera, max relative error 0 (identical)
    6 cells, 1 tables compared
  • pass integrations/r-gg-box.plotvera, max relative error 0 (identical)
    10 cells, 1 tables compared
  • pass integrations/r-gg-facets.plotvera, max relative error 0 (identical)
    32 cells, 2 tables compared
  • pass integrations/r-gg-grouped.plotvera, max relative error 0 (identical)
    18 cells, 1 tables compared
  • pass integrations/r-gg-xy.plotvera, max relative error 0 (identical)
    28 cells, 1 tables compared
  • pass integrations/r-grouped.plotvera, max relative error 0 (identical)
    12 cells, 1 tables compared
  • pass integrations/r-survival.plotvera, max relative error 0 (identical)
    18 cells, 1 tables compared
  • pass integrations/r-xy.plotvera, max relative error 0 (identical)
    21 cells, 1 tables compared
.plotvera (R/Python integration) -> .pzfx -> re-import1414 passed0 (identical)original import
Cases
  • pass integrations/py-column.plotvera, max relative error 0 (identical)
    6 cells, 1 tables compared
  • pass integrations/py-grouped.plotvera, max relative error 0 (identical)
    12 cells, 1 tables compared
  • pass integrations/py-mpl-lines.plotvera, max relative error 0 (identical)
    9 cells, 1 tables compared
  • pass integrations/py-seaborn.plotvera, max relative error 0 (identical)
    23 cells, 2 tables compared
  • pass integrations/py-survival.plotvera, max relative error 0 (identical)
    18 cells, 1 tables compared
  • pass integrations/py-xy.plotvera, max relative error 0 (identical)
    21 cells, 1 tables compared
  • pass integrations/r-column.plotvera, max relative error 0 (identical)
    6 cells, 1 tables compared
  • pass integrations/r-gg-box.plotvera, max relative error 0 (identical)
    10 cells, 1 tables compared
  • pass integrations/r-gg-facets.plotvera, max relative error 0 (identical)
    32 cells, 2 tables compared
  • pass integrations/r-gg-grouped.plotvera, max relative error 0 (identical)
    18 cells, 1 tables compared
  • pass integrations/r-gg-xy.plotvera, max relative error 0 (identical)
    28 cells, 1 tables compared
  • pass integrations/r-grouped.plotvera, max relative error 0 (identical)
    12 cells, 1 tables compared
  • pass integrations/r-survival.plotvera, max relative error 0 (identical)
    18 cells, 1 tables compared
  • pass integrations/r-xy.plotvera, max relative error 0 (identical)
    21 cells, 1 tables compared
.plotvera (R/Python integration) -> CSV per table -> re-import1414 passed0 (identical)original import
Cases
  • pass integrations/py-column.plotvera, max relative error 0 (identical)
    6 cells compared; CSV cannot carry table type, table name or design
  • pass integrations/py-grouped.plotvera, max relative error 0 (identical)
    10 cells compared; 1 table(s) with subject/replicate structure written in the two-tier expanded layout (every value checked, layout not); CSV cannot carry table type, table name or design
  • pass integrations/py-mpl-lines.plotvera, max relative error 0 (identical)
    9 cells compared; 1 table(s) with subject/replicate structure written in the two-tier expanded layout (every value checked, layout not); CSV cannot carry table type, table name or design
  • pass integrations/py-seaborn.plotvera, max relative error 0 (identical)
    23 cells compared; 1 table(s) with subject/replicate structure written in the two-tier expanded layout (every value checked, layout not); CSV cannot carry table type, table name or design
  • pass integrations/py-survival.plotvera, max relative error 0 (identical)
    18 cells compared; CSV cannot carry table type, table name or design
  • pass integrations/py-xy.plotvera, max relative error 0 (identical)
    21 cells compared; 1 table(s) with subject/replicate structure written in the two-tier expanded layout (every value checked, layout not); CSV cannot carry table type, table name or design
  • pass integrations/r-column.plotvera, max relative error 0 (identical)
    6 cells compared; CSV cannot carry table type, table name or design
  • pass integrations/r-gg-box.plotvera, max relative error 0 (identical)
    10 cells compared; CSV cannot carry table type, table name or design
  • pass integrations/r-gg-facets.plotvera, max relative error 0 (identical)
    32 cells compared; 2 table(s) with subject/replicate structure written in the two-tier expanded layout (every value checked, layout not); CSV cannot carry table type, table name or design
  • pass integrations/r-gg-grouped.plotvera, max relative error 0 (identical)
    14 cells compared; 1 table(s) with subject/replicate structure written in the two-tier expanded layout (every value checked, layout not); CSV cannot carry table type, table name or design
  • pass integrations/r-gg-xy.plotvera, max relative error 0 (identical)
    28 cells compared; 1 table(s) with subject/replicate structure written in the two-tier expanded layout (every value checked, layout not); CSV cannot carry table type, table name or design
  • pass integrations/r-grouped.plotvera, max relative error 0 (identical)
    10 cells compared; 1 table(s) with subject/replicate structure written in the two-tier expanded layout (every value checked, layout not); CSV cannot carry table type, table name or design
  • pass integrations/r-survival.plotvera, max relative error 0 (identical)
    18 cells compared; CSV cannot carry table type, table name or design
  • pass integrations/r-xy.plotvera, max relative error 0 (identical)
    21 cells compared; 1 table(s) with subject/replicate structure written in the two-tier expanded layout (every value checked, layout not); CSV cannot carry table type, table name or design
CSV -> .plotvera -> re-import44 passed0 (identical)original import
Cases
  • pass smart-import/column_groups_simple.csv, max relative error 0 (identical)
    27 cells, 1 tables, 0 graphs compared
  • pass smart-import/flowjo_table_export.csv, max relative error 0 (identical)
    170 cells, 1 tables, 0 graphs compared
  • pass smart-import/plate_384_reader.csv, max relative error 0 (identical)
    600 cells, 1 tables, 0 graphs compared
  • pass smart-import/tidy_long_tumour.csv, max relative error 0 (identical)
    535 cells, 1 tables, 0 graphs compared
CSV -> .prism -> re-import44 passed0 (identical)original import
Cases
  • pass smart-import/column_groups_simple.csv, max relative error 0 (identical)
    27 cells, 1 tables compared
  • pass smart-import/flowjo_table_export.csv, max relative error 0 (identical)
    no table has a verified .prism package mapping; exporter refuses with a stated reason (nothing written)
  • pass smart-import/plate_384_reader.csv, max relative error 0 (identical)
    no table has a verified .prism package mapping; exporter refuses with a stated reason (nothing written)
  • pass smart-import/tidy_long_tumour.csv, max relative error 0 (identical)
    535 cells, 1 tables compared
CSV -> .pzfx -> re-import44 passed0 (identical)original import
Cases
  • pass smart-import/column_groups_simple.csv, max relative error 0 (identical)
    27 cells, 1 tables compared
  • pass smart-import/flowjo_table_export.csv, max relative error 0 (identical)
    no table has a verified PZFX mapping; exporter refuses with a stated reason (nothing written, no silent loss)
  • pass smart-import/plate_384_reader.csv, max relative error 0 (identical)
    no table has a verified PZFX mapping; exporter refuses with a stated reason (nothing written, no silent loss)
  • pass smart-import/tidy_long_tumour.csv, max relative error 0 (identical)
    535 cells, 1 tables compared
CSV -> CSV per table -> re-import44 passed0 (identical)original import
Cases
  • pass smart-import/column_groups_simple.csv, max relative error 0 (identical)
    27 cells compared; CSV cannot carry table type, table name or design
  • pass smart-import/flowjo_table_export.csv, max relative error 0 (identical)
    204 cells compared; CSV cannot carry table type, table name or design
  • pass smart-import/plate_384_reader.csv, max relative error 0 (identical)
    600 cells compared; CSV cannot carry table type, table name or design
  • pass smart-import/tidy_long_tumour.csv, max relative error 0 (identical)
    535 cells compared; CSV cannot carry table type, table name or design
CSV via smart import -> .plotvera -> re-import44 passed0 (identical)original import
Cases
  • pass smart-import/column_groups_simple.csv [smart import], max relative error 0 (identical)
    27 cells, 1 tables, 0 graphs compared
  • pass smart-import/flowjo_table_export.csv [smart import], max relative error 0 (identical)
    117 cells, 3 tables, 0 graphs compared
  • pass smart-import/plate_384_reader.csv [smart import], max relative error 0 (identical)
    384 cells, 1 tables, 0 graphs compared
  • pass smart-import/tidy_long_tumour.csv [smart import], max relative error 0 (identical)
    114 cells, 1 tables, 0 graphs compared
CSV via smart import -> .prism -> re-import44 passed0 (identical)original import
Cases
  • pass smart-import/column_groups_simple.csv [smart import], max relative error 0 (identical)
    27 cells, 1 tables compared
  • pass smart-import/flowjo_table_export.csv [smart import], max relative error 0 (identical)
    117 cells, 3 tables compared
  • pass smart-import/plate_384_reader.csv [smart import], max relative error 0 (identical)
    no table has a verified .prism package mapping; exporter refuses with a stated reason (nothing written)
  • pass smart-import/tidy_long_tumour.csv [smart import], max relative error 0 (identical)
    114 cells, 1 tables compared
CSV via smart import -> .pzfx -> re-import44 passed0 (identical)original import
Cases
  • pass smart-import/column_groups_simple.csv [smart import], max relative error 0 (identical)
    27 cells, 1 tables compared
  • pass smart-import/flowjo_table_export.csv [smart import], max relative error 0 (identical)
    117 cells, 3 tables compared
  • pass smart-import/plate_384_reader.csv [smart import], max relative error 0 (identical)
    no table has a verified PZFX mapping; exporter refuses with a stated reason (nothing written, no silent loss)
  • pass smart-import/tidy_long_tumour.csv [smart import], max relative error 0 (identical)
    114 cells, 1 tables compared
CSV via smart import -> CSV per table -> re-import44 passed0 (identical)original import
Cases
  • pass smart-import/column_groups_simple.csv [smart import], max relative error 0 (identical)
    27 cells compared; CSV cannot carry table type, table name or design
  • pass smart-import/flowjo_table_export.csv [smart import], max relative error 0 (identical)
    111 cells compared; 3 table(s) with subject/replicate structure written in the two-tier expanded layout (every value checked, layout not); CSV cannot carry table type, table name or design
  • pass smart-import/plate_384_reader.csv [smart import], max relative error 0 (identical)
    400 cells compared; 1 table(s) needed the first row confirmed as a header in the import preview (numeric titles are not auto-detected); CSV cannot carry table type, table name or design
  • pass smart-import/tidy_long_tumour.csv [smart import], max relative error 0 (identical)
    109 cells compared; 1 table(s) with subject/replicate structure written in the two-tier expanded layout (every value checked, layout not); CSV cannot carry table type, table name or design
Excel .xlsx -> .plotvera -> re-import88 passed0 (identical)original import
Cases
  • pass smart-import/colony_counts.xlsx, max relative error 0 (identical)
    96 cells, 1 tables, 0 graphs compared
  • pass smart-import/cytokine_grouped.xlsx, max relative error 0 (identical)
    80 cells, 1 tables, 0 graphs compared
  • pass smart-import/elisa_plate_reader.xlsx, max relative error 0 (identical)
    494 cells, 1 tables, 0 graphs compared
  • pass smart-import/ivis_bli_export.xlsx, max relative error 0 (identical)
    728 cells, 1 tables, 0 graphs compared
  • pass smart-import/lab_notebook_wide.xlsx, max relative error 0 (identical)
    295 cells, 2 tables, 0 graphs compared
  • pass smart-import/multi_sheet_workbook.xlsx, max relative error 0 (identical)
    57 cells, 2 tables, 0 graphs compared
  • pass smart-import/qpcr_ct_table.xlsx, max relative error 0 (identical)
    730 cells, 1 tables, 0 graphs compared
  • pass smart-import/survival_mice.xlsx, max relative error 0 (identical)
    144 cells, 1 tables, 0 graphs compared
Excel .xlsx -> .prism -> re-import88 passed0 (identical)original import
Cases
  • pass smart-import/colony_counts.xlsx, max relative error 0 (identical)
    96 cells, 1 tables compared
  • pass smart-import/cytokine_grouped.xlsx, max relative error 0 (identical)
    80 cells, 1 tables compared
  • pass smart-import/elisa_plate_reader.xlsx, max relative error 0 (identical)
    494 cells, 1 tables compared
  • pass smart-import/ivis_bli_export.xlsx, max relative error 0 (identical)
    728 cells, 1 tables compared
  • pass smart-import/lab_notebook_wide.xlsx, max relative error 0 (identical)
    7 cells, 1 tables compared; 1 table(s) refused by the exporter with a stated reason, not written: Tumour volume
  • pass smart-import/multi_sheet_workbook.xlsx, max relative error 0 (identical)
    57 cells, 2 tables compared
  • pass smart-import/qpcr_ct_table.xlsx, max relative error 0 (identical)
    730 cells, 1 tables compared
  • pass smart-import/survival_mice.xlsx, max relative error 0 (identical)
    144 cells, 1 tables compared
Excel .xlsx -> .pzfx -> re-import88 passed0 (identical)original import
Cases
  • pass smart-import/colony_counts.xlsx, max relative error 0 (identical)
    96 cells, 1 tables compared
  • pass smart-import/cytokine_grouped.xlsx, max relative error 0 (identical)
    80 cells, 1 tables compared
  • pass smart-import/elisa_plate_reader.xlsx, max relative error 0 (identical)
    494 cells, 1 tables compared
  • pass smart-import/ivis_bli_export.xlsx, max relative error 0 (identical)
    728 cells, 1 tables compared
  • pass smart-import/lab_notebook_wide.xlsx, max relative error 0 (identical)
    7 cells, 1 tables compared; 1 table(s) refused by the exporter with a stated reason, not written: Tumour volume
  • pass smart-import/multi_sheet_workbook.xlsx, max relative error 0 (identical)
    57 cells, 2 tables compared
  • pass smart-import/qpcr_ct_table.xlsx, max relative error 0 (identical)
    730 cells, 1 tables compared
  • pass smart-import/survival_mice.xlsx, max relative error 0 (identical)
    144 cells, 1 tables compared
Excel .xlsx -> CSV per table -> re-import88 passed0 (identical)original import
Cases
  • pass smart-import/colony_counts.xlsx, max relative error 0 (identical)
    96 cells compared; CSV cannot carry table type, table name or design
  • pass smart-import/cytokine_grouped.xlsx, max relative error 0 (identical)
    80 cells compared; CSV cannot carry table type, table name or design
  • pass smart-import/elisa_plate_reader.xlsx, max relative error 0 (identical)
    494 cells compared; CSV cannot carry table type, table name or design
  • pass smart-import/ivis_bli_export.xlsx, max relative error 0 (identical)
    728 cells compared; CSV cannot carry table type, table name or design
  • pass smart-import/lab_notebook_wide.xlsx, max relative error 0 (identical)
    294 cells compared; 1 one-column table(s) had blank rows, which a CSV line cannot hold; CSV cannot carry table type, table name or design
  • pass smart-import/multi_sheet_workbook.xlsx, max relative error 0 (identical)
    57 cells compared; CSV cannot carry table type, table name or design
  • pass smart-import/qpcr_ct_table.xlsx, max relative error 0 (identical)
    730 cells compared; CSV cannot carry table type, table name or design
  • pass smart-import/survival_mice.xlsx, max relative error 0 (identical)
    144 cells compared; CSV cannot carry table type, table name or design
Excel .xlsx via smart import -> .plotvera -> re-import88 passed0 (identical)original import
Cases
  • pass smart-import/colony_counts.xlsx [smart import], max relative error 0 (identical)
    32 cells, 1 tables, 0 graphs compared
  • pass smart-import/cytokine_grouped.xlsx [smart import], max relative error 0 (identical)
    48 cells, 1 tables, 0 graphs compared
  • pass smart-import/elisa_plate_reader.xlsx [smart import], max relative error 0 (identical)
    84 cells, 1 tables, 0 graphs compared
  • pass smart-import/ivis_bli_export.xlsx [smart import], max relative error 0 (identical)
    210 cells, 2 tables, 0 graphs compared
  • pass smart-import/lab_notebook_wide.xlsx [smart import], max relative error 0 (identical)
    192 cells, 2 tables, 0 graphs compared
  • pass smart-import/multi_sheet_workbook.xlsx [smart import], max relative error 0 (identical)
    12 cells, 1 tables, 0 graphs compared
  • pass smart-import/qpcr_ct_table.xlsx [smart import], max relative error 0 (identical)
    60 cells, 2 tables, 0 graphs compared
  • pass smart-import/survival_mice.xlsx [smart import], max relative error 0 (identical)
    72 cells, 1 tables, 0 graphs compared
Excel .xlsx via smart import -> .prism -> re-import88 passed0 (identical)original import
Cases
  • pass smart-import/colony_counts.xlsx [smart import], max relative error 0 (identical)
    32 cells, 1 tables compared
  • pass smart-import/cytokine_grouped.xlsx [smart import], max relative error 0 (identical)
    48 cells, 1 tables compared
  • pass smart-import/elisa_plate_reader.xlsx [smart import], max relative error 0 (identical)
    84 cells, 1 tables compared
  • pass smart-import/ivis_bli_export.xlsx [smart import], max relative error 0 (identical)
    210 cells, 2 tables compared
  • pass smart-import/lab_notebook_wide.xlsx [smart import], max relative error 0 (identical)
    192 cells, 2 tables compared
  • pass smart-import/multi_sheet_workbook.xlsx [smart import], max relative error 0 (identical)
    12 cells, 1 tables compared
  • pass smart-import/qpcr_ct_table.xlsx [smart import], max relative error 0 (identical)
    60 cells, 2 tables compared
  • pass smart-import/survival_mice.xlsx [smart import], max relative error 0 (identical)
    72 cells, 1 tables compared
Excel .xlsx via smart import -> .pzfx -> re-import88 passed0 (identical)original import
Cases
  • pass smart-import/colony_counts.xlsx [smart import], max relative error 0 (identical)
    32 cells, 1 tables compared
  • pass smart-import/cytokine_grouped.xlsx [smart import], max relative error 0 (identical)
    48 cells, 1 tables compared
  • pass smart-import/elisa_plate_reader.xlsx [smart import], max relative error 0 (identical)
    84 cells, 1 tables compared
  • pass smart-import/ivis_bli_export.xlsx [smart import], max relative error 0 (identical)
    210 cells, 2 tables compared
  • pass smart-import/lab_notebook_wide.xlsx [smart import], max relative error 0 (identical)
    192 cells, 2 tables compared
  • pass smart-import/multi_sheet_workbook.xlsx [smart import], max relative error 0 (identical)
    12 cells, 1 tables compared
  • pass smart-import/qpcr_ct_table.xlsx [smart import], max relative error 0 (identical)
    60 cells, 2 tables compared
  • pass smart-import/survival_mice.xlsx [smart import], max relative error 0 (identical)
    72 cells, 1 tables compared
Excel .xlsx via smart import -> CSV per table -> re-import88 passed0 (identical)original import
Cases
  • pass smart-import/colony_counts.xlsx [smart import], max relative error 0 (identical)
    22 cells compared; 1 table(s) with subject/replicate structure written in the two-tier expanded layout (every value checked, layout not); CSV cannot carry table type, table name or design
  • pass smart-import/cytokine_grouped.xlsx [smart import], max relative error 0 (identical)
    28 cells compared; 1 table(s) with subject/replicate structure written in the two-tier expanded layout (every value checked, layout not); CSV cannot carry table type, table name or design
  • pass smart-import/elisa_plate_reader.xlsx [smart import], max relative error 0 (identical)
    62 cells compared; 1 table(s) with subject/replicate structure written in the two-tier expanded layout (every value checked, layout not); CSV cannot carry table type, table name or design
  • pass smart-import/ivis_bli_export.xlsx [smart import], max relative error 0 (identical)
    183 cells compared; 2 table(s) with subject/replicate structure written in the two-tier expanded layout (every value checked, layout not); CSV cannot carry table type, table name or design
  • pass smart-import/lab_notebook_wide.xlsx [smart import], max relative error 0 (identical)
    187 cells compared; 2 table(s) with subject/replicate structure written in the two-tier expanded layout (every value checked, layout not); CSV cannot carry table type, table name or design
  • pass smart-import/multi_sheet_workbook.xlsx [smart import], max relative error 0 (identical)
    12 cells compared; CSV cannot carry table type, table name or design
  • pass smart-import/qpcr_ct_table.xlsx [smart import], max relative error 0 (identical)
    48 cells compared; 2 table(s) with subject/replicate structure written in the two-tier expanded layout (every value checked, layout not); CSV cannot carry table type, table name or design
  • pass smart-import/survival_mice.xlsx [smart import], max relative error 0 (identical)
    72 cells compared; CSV cannot carry table type, table name or design
JSON project -> .plotvera -> re-import11 passed0 (identical)original import
Cases
  • pass json/minimal-project.plotvera.json, max relative error 0 (identical)
    21 cells, 1 tables, 1 graphs compared
JSON project -> .prism -> re-import11 passed0 (identical)original import
Cases
  • pass json/minimal-project.plotvera.json, max relative error 0 (identical)
    21 cells, 1 tables compared
JSON project -> .pzfx -> re-import11 passed0 (identical)original import
Cases
  • pass json/minimal-project.plotvera.json, max relative error 0 (identical)
    21 cells, 1 tables compared
JSON project -> CSV per table -> re-import11 passed0 (identical)original import
Cases
  • pass json/minimal-project.plotvera.json, max relative error 0 (identical)
    21 cells compared; CSV cannot carry table type, table name or design
Lab-format CSV -> .plotvera -> re-import33 passed0 (identical)original import
Cases
  • pass labformats/flowjo_table.csv, max relative error 0 (identical)
    21 cells, 1 tables, 0 graphs compared
  • pass labformats/imagej_results.csv, max relative error 0 (identical)
    18 cells, 1 tables, 0 graphs compared
  • pass labformats/plain.csv, max relative error 0 (identical)
    10 cells, 1 tables, 0 graphs compared
Lab-format CSV -> .prism -> re-import33 passed0 (identical)original import
Cases
  • pass labformats/flowjo_table.csv, max relative error 0 (identical)
    no table has a verified .prism package mapping; exporter refuses with a stated reason (nothing written)
  • pass labformats/imagej_results.csv, max relative error 0 (identical)
    no table has a verified .prism package mapping; exporter refuses with a stated reason (nothing written)
  • pass labformats/plain.csv, max relative error 0 (identical)
    no table has a verified .prism package mapping; exporter refuses with a stated reason (nothing written)
Lab-format CSV -> .pzfx -> re-import33 passed0 (identical)original import
Cases
  • pass labformats/flowjo_table.csv, max relative error 0 (identical)
    no table has a verified PZFX mapping; exporter refuses with a stated reason (nothing written, no silent loss)
  • pass labformats/imagej_results.csv, max relative error 0 (identical)
    no table has a verified PZFX mapping; exporter refuses with a stated reason (nothing written, no silent loss)
  • pass labformats/plain.csv, max relative error 0 (identical)
    no table has a verified PZFX mapping; exporter refuses with a stated reason (nothing written, no silent loss)
Lab-format CSV -> CSV per table -> re-import33 passed0 (identical)original import
Cases
  • pass labformats/flowjo_table.csv, max relative error 0 (identical)
    24 cells compared; CSV cannot carry table type, table name or design
  • pass labformats/imagej_results.csv, max relative error 0 (identical)
    21 cells compared; CSV cannot carry table type, table name or design
  • pass labformats/plain.csv, max relative error 0 (identical)
    10 cells compared; CSV cannot carry table type, table name or design
PowerPoint .pptx (embedded Prism) -> .plotvera -> re-import11 passed0 (identical)original import
Cases
  • pass pptx/20260918-nsg-mice.pptx, max relative error 0 (identical)
    389 cells, 7 tables, 7 graphs compared
PowerPoint .pptx (embedded Prism) -> .prism -> re-import11 passed0 (identical)original import
Cases
  • pass pptx/20260918-nsg-mice.pptx, max relative error 0 (identical)
    389 cells, 7 tables compared
PowerPoint .pptx (embedded Prism) -> .pzfx -> re-import11 passed0 (identical)original import
Cases
  • pass pptx/20260918-nsg-mice.pptx, max relative error 0 (identical)
    389 cells, 7 tables compared
PowerPoint .pptx (embedded Prism) -> CSV per table -> re-import11 passed0 (identical)original import
Cases
  • pass pptx/20260918-nsg-mice.pptx, max relative error 0 (identical)
    377 cells compared; 7 table(s) with subject/replicate structure written in the two-tier expanded layout (every value checked, layout not); CSV cannot carry table type, table name or design
Prism .prism -> .plotvera -> re-import77 passed0 (identical)original import
Cases
  • pass prism/251219_CD7_inVivo_MOLT4_usethis.prism, max relative error 0 (identical)
    1163 cells, 4 tables, 37 graphs compared
  • pass prism/biomiha-demo-dataset.prism, max relative error 0 (identical)
    648 cells, 14 tables, 13 graphs compared
  • pass prism/biomiha-no-analysis.prism, max relative error 0 (identical)
    2000 cells, 2 tables, 2 graphs compared
  • pass prism/deleted-column-orphan-titles.prism, max relative error 0 (identical)
    373 cells, 5 tables, 5 graphs compared
  • pass prism/jax-survival-analysis-graph.prism, max relative error 0 (identical)
    1987 cells, 2 tables, 4 graphs compared
  • pass prism/jax-timecourse-row-title-days.prism, max relative error 0 (identical)
    1010 cells, 2 tables, 4 graphs compared
  • pass prism/ole-embedded-trailing-slack.prism, max relative error 0 (identical)
    373 cells, 5 tables, 5 graphs compared
Prism .prism -> .prism -> re-import77 passed0 (identical)original import
Cases
  • pass prism/251219_CD7_inVivo_MOLT4_usethis.prism, max relative error 0 (identical)
    1163 cells, 4 tables compared
  • pass prism/biomiha-demo-dataset.prism, max relative error 0 (identical)
    648 cells, 14 tables compared
  • pass prism/biomiha-no-analysis.prism, max relative error 0 (identical)
    2000 cells, 2 tables compared
  • pass prism/deleted-column-orphan-titles.prism, max relative error 0 (identical)
    373 cells, 5 tables compared
  • pass prism/jax-survival-analysis-graph.prism, max relative error 0 (identical)
    1987 cells, 2 tables compared
  • pass prism/jax-timecourse-row-title-days.prism, max relative error 0 (identical)
    1010 cells, 2 tables compared
  • pass prism/ole-embedded-trailing-slack.prism, max relative error 0 (identical)
    373 cells, 5 tables compared
Prism .prism -> .pzfx -> re-import77 passed0 (identical)original import
Cases
  • pass prism/251219_CD7_inVivo_MOLT4_usethis.prism, max relative error 0 (identical)
    1163 cells, 4 tables compared
  • pass prism/biomiha-demo-dataset.prism, max relative error 0 (identical)
    648 cells, 14 tables compared
  • pass prism/biomiha-no-analysis.prism, max relative error 0 (identical)
    2000 cells, 2 tables compared
  • pass prism/deleted-column-orphan-titles.prism, max relative error 0 (identical)
    373 cells, 5 tables compared
  • pass prism/jax-survival-analysis-graph.prism, max relative error 0 (identical)
    1987 cells, 2 tables compared
  • pass prism/jax-timecourse-row-title-days.prism, max relative error 0 (identical)
    1010 cells, 2 tables compared
  • pass prism/ole-embedded-trailing-slack.prism, max relative error 0 (identical)
    373 cells, 5 tables compared
Prism .prism -> CSV per table -> re-import77 passed0 (identical)original import
Cases
  • pass prism/251219_CD7_inVivo_MOLT4_usethis.prism, max relative error 0 (identical)
    932 cells compared; 3 table(s) with subject/replicate structure written in the two-tier expanded layout (every value checked, layout not); CSV cannot carry table type, table name or design
  • pass prism/biomiha-demo-dataset.prism, max relative error 0 (identical)
    638 cells compared; 1 table(s) with subject/replicate structure written in the two-tier expanded layout (every value checked, layout not); CSV cannot carry table type, table name or design
  • pass prism/biomiha-no-analysis.prism, max relative error 0 (identical)
    2000 cells compared; CSV cannot carry table type, table name or design
  • pass prism/deleted-column-orphan-titles.prism, max relative error 0 (identical)
    362 cells compared; 5 table(s) with subject/replicate structure written in the two-tier expanded layout (every value checked, layout not); CSV cannot carry table type, table name or design
  • pass prism/jax-survival-analysis-graph.prism, max relative error 0 (identical)
    1987 cells compared; CSV cannot carry table type, table name or design
  • pass prism/jax-timecourse-row-title-days.prism, max relative error 0 (identical)
    1020 cells compared; CSV cannot carry table type, table name or design
  • pass prism/ole-embedded-trailing-slack.prism, max relative error 0 (identical)
    362 cells compared; 5 table(s) with subject/replicate structure written in the two-tier expanded layout (every value checked, layout not); CSV cannot carry table type, table name or design
Prism .pzfx -> .plotvera -> re-import44 passed0 (identical)original import
Cases
  • pass prism/biomiha-demo-dataset.pzfx, max relative error 0 (identical)
    648 cells, 14 tables, 14 graphs compared
  • pass prism/datagrok-dose-response-4pl.pzfx, max relative error 0 (identical)
    120 cells, 1 tables, 1 graphs compared
  • pass prism/yue-survival.pzfx, max relative error 0 (identical)
    81 cells, 1 tables, 1 graphs compared
  • pass prism/yue-x-y-rep.pzfx, max relative error 0 (identical)
    21 cells, 1 tables, 1 graphs compared
Prism .pzfx -> .prism -> re-import44 passed0 (identical)original import
Cases
  • pass prism/biomiha-demo-dataset.pzfx, max relative error 0 (identical)
    534 cells, 11 tables compared; 3 table(s) refused by the exporter with a stated reason, not written: Y CVN, Y CV, Y high low
  • pass prism/datagrok-dose-response-4pl.pzfx, max relative error 0 (identical)
    120 cells, 1 tables compared
  • pass prism/yue-survival.pzfx, max relative error 0 (identical)
    81 cells, 1 tables compared
  • pass prism/yue-x-y-rep.pzfx, max relative error 0 (identical)
    21 cells, 1 tables compared
Prism .pzfx -> .pzfx -> re-import44 passed0 (identical)original import
Cases
  • pass prism/biomiha-demo-dataset.pzfx, max relative error 0 (identical)
    648 cells, 14 tables compared
  • pass prism/datagrok-dose-response-4pl.pzfx, max relative error 0 (identical)
    120 cells, 1 tables compared
  • pass prism/yue-survival.pzfx, max relative error 0 (identical)
    81 cells, 1 tables compared
  • pass prism/yue-x-y-rep.pzfx, max relative error 0 (identical)
    21 cells, 1 tables compared
Prism .pzfx -> CSV per table -> re-import44 passed0 (identical)original import
Cases
  • pass prism/biomiha-demo-dataset.pzfx, max relative error 0 (identical)
    638 cells compared; 1 table(s) with subject/replicate structure written in the two-tier expanded layout (every value checked, layout not); CSV cannot carry table type, table name or design
  • pass prism/datagrok-dose-response-4pl.pzfx, max relative error 0 (identical)
    120 cells compared; CSV cannot carry table type, table name or design
  • pass prism/yue-survival.pzfx, max relative error 0 (identical)
    108 cells compared; CSV cannot carry table type, table name or design
  • pass prism/yue-x-y-rep.pzfx, max relative error 0 (identical)
    24 cells compared; CSV cannot carry table type, table name or design
Stats file .dta -> .plotvera -> re-import44 passed0 (identical)original import
Cases
  • pass statfiles/tumour_114.dta, max relative error 0 (identical)
    30 cells, 1 tables, 0 graphs compared
  • pass statfiles/tumour_117.dta, max relative error 0 (identical)
    30 cells, 1 tables, 0 graphs compared
  • pass statfiles/tumour_118.dta, max relative error 0 (identical)
    30 cells, 1 tables, 0 graphs compared
  • pass statfiles/tumour_118_strl.dta, max relative error 0 (identical)
    30 cells, 1 tables, 0 graphs compared
Stats file .dta -> .prism -> re-import44 passed0 (identical)original import
Cases
  • pass statfiles/tumour_114.dta, max relative error 0 (identical)
    30 cells, 1 tables compared
  • pass statfiles/tumour_117.dta, max relative error 0 (identical)
    30 cells, 1 tables compared
  • pass statfiles/tumour_118.dta, max relative error 0 (identical)
    30 cells, 1 tables compared
  • pass statfiles/tumour_118_strl.dta, max relative error 0 (identical)
    30 cells, 1 tables compared
Stats file .dta -> .pzfx -> re-import44 passed0 (identical)original import
Cases
  • pass statfiles/tumour_114.dta, max relative error 0 (identical)
    30 cells, 1 tables compared
  • pass statfiles/tumour_117.dta, max relative error 0 (identical)
    30 cells, 1 tables compared
  • pass statfiles/tumour_118.dta, max relative error 0 (identical)
    30 cells, 1 tables compared
  • pass statfiles/tumour_118_strl.dta, max relative error 0 (identical)
    30 cells, 1 tables compared
Stats file .dta -> CSV per table -> re-import44 passed0 (identical)original import
Cases
  • pass statfiles/tumour_114.dta, max relative error 0 (identical)
    30 cells compared; CSV cannot carry table type, table name or design
  • pass statfiles/tumour_117.dta, max relative error 0 (identical)
    30 cells compared; CSV cannot carry table type, table name or design
  • pass statfiles/tumour_118.dta, max relative error 0 (identical)
    30 cells compared; CSV cannot carry table type, table name or design
  • pass statfiles/tumour_118_strl.dta, max relative error 0 (identical)
    30 cells compared; CSV cannot carry table type, table name or design
Stats file .sav -> .plotvera -> re-import22 passed0 (identical)original import
Cases
  • pass statfiles/tumour.sav, max relative error 0 (identical)
    30 cells, 1 tables, 0 graphs compared
  • pass statfiles/tumour_compressed.sav, max relative error 0 (identical)
    30 cells, 1 tables, 0 graphs compared
Stats file .sav -> .prism -> re-import22 passed0 (identical)original import
Cases
  • pass statfiles/tumour.sav, max relative error 0 (identical)
    30 cells, 1 tables compared
  • pass statfiles/tumour_compressed.sav, max relative error 0 (identical)
    30 cells, 1 tables compared
Stats file .sav -> .pzfx -> re-import22 passed0 (identical)original import
Cases
  • pass statfiles/tumour.sav, max relative error 0 (identical)
    30 cells, 1 tables compared
  • pass statfiles/tumour_compressed.sav, max relative error 0 (identical)
    30 cells, 1 tables compared
Stats file .sav -> CSV per table -> re-import22 passed0 (identical)original import
Cases
  • pass statfiles/tumour.sav, max relative error 0 (identical)
    30 cells compared; CSV cannot carry table type, table name or design
  • pass statfiles/tumour_compressed.sav, max relative error 0 (identical)
    30 cells compared; CSV cannot carry table type, table name or design
Stats file .xpt -> .plotvera -> re-import22 passed0 (identical)original import
Cases
  • pass statfiles/tumour_v5.xpt, max relative error 0 (identical)
    30 cells, 1 tables, 0 graphs compared
  • pass statfiles/tumour_v8.xpt, max relative error 0 (identical)
    30 cells, 1 tables, 0 graphs compared
Stats file .xpt -> .prism -> re-import22 passed0 (identical)original import
Cases
  • pass statfiles/tumour_v5.xpt, max relative error 0 (identical)
    30 cells, 1 tables compared
  • pass statfiles/tumour_v8.xpt, max relative error 0 (identical)
    30 cells, 1 tables compared
Stats file .xpt -> .pzfx -> re-import22 passed0 (identical)original import
Cases
  • pass statfiles/tumour_v5.xpt, max relative error 0 (identical)
    30 cells, 1 tables compared
  • pass statfiles/tumour_v8.xpt, max relative error 0 (identical)
    30 cells, 1 tables compared
Stats file .xpt -> CSV per table -> re-import22 passed0 (identical)original import
Cases
  • pass statfiles/tumour_v5.xpt, max relative error 0 (identical)
    30 cells compared; CSV cannot carry table type, table name or design
  • pass statfiles/tumour_v8.xpt, max relative error 0 (identical)
    30 cells compared; CSV cannot carry table type, table name or design

Graphs draw the same as the approved pictures

MethodCasesResultLargest relative error (passing cases)Reference and cases
100stacked golden SVG: 100stacked on grouped, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass grouped + {}, max relative error 0 (identical)
    identical to golden after normalisation; 74 elements
area golden SVG: area on xyThree, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass xyThree + {}, max relative error 0 (identical)
    identical to golden after normalisation; 86 elements
bar golden SVG: bar on a dark-ish canvas11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass threeColumns + {"bg":"#14181f","plotBg":"#1b212b","textColor":"#e6e9ee","palette":"high-contrast"}, max relative error 0 (identical)
    identical to golden after normalisation; 80 elements
bar golden SVG: bar on threeColumns3535 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass threeColumns + {"logY":true}, max relative error 0 (identical)
    identical to golden after normalisation; 79 elements
  • pass threeColumns + {"errorBars":"sem"}, max relative error 0 (identical)
    identical to golden after normalisation; 79 elements
  • pass threeColumns + {"errorBars":"ci"}, max relative error 0 (identical)
    identical to golden after normalisation; 79 elements
  • pass threeColumns + {"errorBars":"range"}, max relative error 0 (identical)
    identical to golden after normalisation; 79 elements
  • pass threeColumns + {"errorBars":"iqr"}, max relative error 0 (identical)
    identical to golden after normalisation; 79 elements
  • pass threeColumns + {"errorBars":"none"}, max relative error 0 (identical)
    identical to golden after normalisation; 73 elements
  • pass threeColumns + {"errorBars":"gsd","logY":true}, max relative error 0 (identical)
    identical to golden after normalisation; 73 elements
  • pass threeColumns + {"errorBars":"medci","barStyle":"meanline"}, max relative error 0 (identical)
    identical to golden after normalisation; 73 elements
  • pass threeColumns + {"errorBars":"sd","errorColor":"black"}, max relative error 0 (identical)
    identical to golden after normalisation; 79 elements
  • pass threeColumns + {"showLegend":false}, max relative error 0 (identical)
    identical to golden after normalisation; 79 elements
  • pass threeColumns + {"legendPos":"top"}, max relative error 0 (identical)
    identical to golden after normalisation; 79 elements
  • pass threeColumns + {"legendPos":"bottom"}, max relative error 0 (identical)
    identical to golden after normalisation; 79 elements
  • pass threeColumns + {"palette":"npg"}, max relative error 0 (identical)
    identical to golden after normalisation; 79 elements
  • pass threeColumns + {"palette":"aaas"}, max relative error 0 (identical)
    identical to golden after normalisation; 79 elements
  • pass threeColumns + {"palette":"colour-blind-8"}, max relative error 0 (identical)
    identical to golden after normalisation; 79 elements
  • pass threeColumns + {"palette":"high-contrast"}, max relative error 0 (identical)
    identical to golden after normalisation; 79 elements
  • pass threeColumns + {"palette":"grayscale"}, max relative error 0 (identical)
    identical to golden after normalisation; 79 elements
  • pass threeColumns + {"palette":"deep-ink"}, max relative error 0 (identical)
    identical to golden after normalisation; 79 elements
  • pass threeColumns + {"xTickAngle":"diagonal"}, max relative error 0 (identical)
    identical to golden after normalisation; 79 elements
  • pass threeColumns + {"xTickAngle":"vertical"}, max relative error 0 (identical)
    identical to golden after normalisation; 79 elements
  • pass threeColumns + {"xTickAngle":"none"}, max relative error 0 (identical)
    identical to golden after normalisation; 73 elements
  • pass threeColumns + {"showGrid":true,"gridMinor":true,"yAxis":{"minorTicks":4}}, max relative error 0 (identical)
    identical to golden after normalisation; 125 elements
  • pass threeColumns + {"yAxis":{"segments":[{"min":0,"max":300},{"min":600,"max":1000}]}}, max relative error 0 (identical)
    identical to golden after normalisation; 92 elements
  • pass threeColumns + {"yAxis":{"segments":[{"min":0,"max":100},{"min":150,"max":300},{"min":600,"max":1000}]}}, max relative error 0 (identical)
    identical to golden after normalisation; 105 elements
  • pass threeColumns + {"yAxis":{"segments":[{"min":0,"max":300},{"min":600,"max":1000}],"breakMark":"wave"}}, max relative error 0 (identical)
    identical to golden after normalisation; 93 elements
  • pass threeColumns + {"axisBreak":{"enabled":true,"low":300,"high":600}}, max relative error 0 (identical)
    identical to golden after normalisation; 80 elements
  • pass threeColumns + {"refLines":[{"axis":"y","value":500,"color":"#cc0000","style":"dashed","label":"Threshold"}],"annotations":[{"x":1,"y":700,"text":"note","arrow", max relative error 0 (identical)
    identical to golden after normalisation; 82 elements
  • pass threeColumns + {"barStyle":"meanline"}, max relative error 0 (identical)
    identical to golden after normalisation; 85 elements
  • pass threeColumns + {"useGradient":true,"cornerRadius":6,"markOutline":"darker"}, max relative error 0 (identical)
    identical to golden after normalisation; 127 elements
  • pass threeColumns + {"title":"Tumour volume","xLabel":"Arm","yLabel":"Volume (mm³)","subtitle":"day 21"}, max relative error 0 (identical)
    identical to golden after normalisation; 77 elements
  • pass threeColumns + {"font":18,"titleSize":24,"axisTitleSize":20,"title":"Big text","yLabel":"Y"}, max relative error 0 (identical)
    identical to golden after normalisation; 77 elements
  • pass threeColumns + {"axisTextBold":false}, max relative error 0 (identical)
    identical to golden after normalisation; 79 elements
  • pass threeColumns + {"frame":"box"}, max relative error 0 (identical)
    identical to golden after normalisation; 81 elements
  • pass threeColumns + {"width":320,"height":260}, max relative error 0 (identical)
    identical to golden after normalisation; 85 elements
  • pass threeColumns + {"yMinAuto":false,"yMin":0,"yMaxAuto":false,"yMax":1200}, max relative error 0 (identical)
    identical to golden after normalisation; 70 elements
bar golden SVG: bar on threeColumns, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass threeColumns + {}, max relative error 0 (identical)
    identical to golden after normalisation; 79 elements
beforeafter golden SVG: beforeafter on paired, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass paired + {}, max relative error 0 (identical)
    identical to golden after normalisation; 66 elements
bland-altman golden SVG: bland-altman on twoPaired, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass twoPaired + {}, max relative error 0 (identical)
    identical to golden after normalisation; 77 elements
box golden SVG: box on threeColumns22 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass threeColumns + {"logY":true}, max relative error 0 (identical)
    identical to golden after normalisation; 88 elements
  • pass threeColumns + {"barWidth":0.4}, max relative error 0 (identical)
    identical to golden after normalisation; 88 elements
box golden SVG: box on threeColumns, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass threeColumns + {}, max relative error 0 (identical)
    identical to golden after normalisation; 88 elements
box golden SVG: box on timeCourse, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass timeCourse + {}, max relative error 0 (identical)
    identical to golden after normalisation; 146 elements
bubble golden SVG: bubble on xyThree, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass xyThree + {}, max relative error 0 (identical)
    identical to golden after normalisation; 72 elements
column-scatter golden SVG: column-scatter on threeColumns88 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass threeColumns + {"logY":true}, max relative error 0 (identical)
    identical to golden after normalisation; 85 elements
  • pass threeColumns + {"symlogY":true}, max relative error 0 (identical)
    identical to golden after normalisation; 114 elements
  • pass threeColumns + {"errorBars":"sem"}, max relative error 0 (identical)
    identical to golden after normalisation; 85 elements
  • pass threeColumns + {"errorBars":"ci"}, max relative error 0 (identical)
    identical to golden after normalisation; 85 elements
  • pass threeColumns + {"errorBars":"none"}, max relative error 0 (identical)
    identical to golden after normalisation; 73 elements
  • pass threeColumns + {"yAxis":{"segments":[{"min":0,"max":300},{"min":600,"max":1000}]}}, max relative error 0 (identical)
    identical to golden after normalisation; 98 elements
  • pass threeColumns + {"pointShape":"diamond","pointSize":7}, max relative error 0 (identical)
    identical to golden after normalisation; 85 elements
  • pass threeColumns + {"jitter":0.4,"showPoints":false}, max relative error 0 (identical)
    identical to golden after normalisation; 85 elements
column-scatter golden SVG: column-scatter on threeColumns, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass threeColumns + {}, max relative error 0 (identical)
    identical to golden after normalisation; 85 elements
column-scatter golden SVG: column-scatter on timeCourse, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass timeCourse + {}, max relative error 0 (identical)
    identical to golden after normalisation; 162 elements
diff gate self-check77 passed0 (identical)expected verdict
Cases
  • pass base.bar golden, mutated, max relative error 0 (identical)
    verdict pass, score 0.0000, max move 0.000 px
  • pass base.bar golden, mutated, max relative error 0 (identical)
    verdict pass, score 0.0000, max move 0.010 px
  • pass base.bar golden, mutated, max relative error 0 (identical)
    verdict fail, score 0.0127, max move 2.000 px
  • pass base.bar golden, mutated, max relative error 0 (identical)
    verdict fail, score 0.0127, max move 0.000 px
  • pass base.bar golden, mutated, max relative error 0 (identical)
    verdict fail, score 0.0127, max move 0.000 px
  • pass base.bar golden, mutated, max relative error 0 (identical)
    verdict fail, score 0.7468, max move 494.000 px
  • pass base.bar golden, mutated, max relative error 0 (identical)
    verdict fail, score 0.0250, max move 0.000 px
donut golden SVG: donut on partsofwhole, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass partsofwhole + {}, max relative error 0 (identical)
    identical to golden after normalisation; 67 elements
forest golden SVG: forest on forestSheet, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass forestSheet + {}, max relative error 0 (identical)
    identical to golden after normalisation; 59 elements
grouped-bar golden SVG: grouped-bar on grouped77 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass grouped + {"logY":true}, max relative error 0 (identical)
    identical to golden after normalisation; 137 elements
  • pass grouped + {"errorBars":"sem"}, max relative error 0 (identical)
    identical to golden after normalisation; 124 elements
  • pass grouped + {"errorBars":"ci"}, max relative error 0 (identical)
    identical to golden after normalisation; 124 elements
  • pass grouped + {"errorBars":"none"}, max relative error 0 (identical)
    identical to golden after normalisation; 100 elements
  • pass grouped + {"showLegend":false}, max relative error 0 (identical)
    identical to golden after normalisation; 109 elements
  • pass grouped + {"xTickAngle":"vertical"}, max relative error 0 (identical)
    identical to golden after normalisation; 124 elements
  • pass grouped + {"xTickAngle":"diagonal"}, max relative error 0 (identical)
    identical to golden after normalisation; 124 elements
grouped-bar golden SVG: grouped-bar on grouped, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass grouped + {}, max relative error 0 (identical)
    identical to golden after normalisation; 124 elements
grouped-bar golden SVG: grouped-bar on timeCourse, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass timeCourse + {}, max relative error 0 (identical)
    identical to golden after normalisation; 162 elements
heatmap golden SVG: heatmap on multivar11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass multivar + {"colormap":"magma"}, max relative error 0 (identical)
    identical to golden after normalisation; 136 elements
heatmap golden SVG: heatmap on multivar, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass multivar + {}, max relative error 0 (identical)
    identical to golden after normalisation; 137 elements
heatmap golden SVG: heatmap, viridis on dark11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass multivar + {"bg":"#14181f","plotBg":"#1b212b","textColor":"#e6e9ee","palette":"high-contrast","colormap":"viridis"}, max relative error 0 (identical)
    identical to golden after normalisation; 138 elements
histogram golden SVG: histogram on threeColumns11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass threeColumns + {"histBins":3}, max relative error 0 (identical)
    identical to golden after normalisation; 53 elements
histogram golden SVG: histogram on threeColumns, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass threeColumns + {}, max relative error 0 (identical)
    identical to golden after normalisation; 58 elements
line golden SVG: line on timeCourse1010 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass timeCourse + {"logY":true}, max relative error 0 (identical)
    identical to golden after normalisation; 221 elements
  • pass timeCourse + {"errorBars":"sem"}, max relative error 0 (identical)
    identical to golden after normalisation; 160 elements
  • pass timeCourse + {"errorBars":"ci"}, max relative error 0 (identical)
    identical to golden after normalisation; 146 elements
  • pass timeCourse + {"errorBars":"none"}, max relative error 0 (identical)
    identical to golden after normalisation; 113 elements
  • pass timeCourse + {"errorBars":"sem","errorDisplay":"band"}, max relative error 0 (identical)
    identical to golden after normalisation; 122 elements
  • pass timeCourse + {"errorBars":"sd","errorDisplay":"both"}, max relative error 0 (identical)
    identical to golden after normalisation; 155 elements
  • pass timeCourse + {"xyReplicatePoints":true,"xySubjectLines":true}, max relative error 0 (identical)
    identical to golden after normalisation; 269 elements
  • pass timeCourse + {"showLegend":false}, max relative error 0 (identical)
    identical to golden after normalisation; 134 elements
  • pass timeCourse + {"palette":"npg"}, max relative error 0 (identical)
    identical to golden after normalisation; 152 elements
  • pass timeCourse + {"trendLines":[{"series":"NT","kind":"linear"}]}, max relative error 0 (identical)
    identical to golden after normalisation; 156 elements
line golden SVG: line on timeCourse, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass timeCourse + {}, max relative error 0 (identical)
    identical to golden after normalisation; 152 elements
line golden SVG: line on xyThree44 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass xyThree + {"legendPos":"inside","legendBox":true,"legendTitle":"Arm"}, max relative error 0 (identical)
    identical to golden after normalisation; 83 elements
  • pass xyThree + {"hiddenLegendEntries":[1]}, max relative error 0 (identical)
    identical to golden after normalisation; 80 elements
  • pass xyThree + {"showMarkers":false,"lineWidth":3,"lineStyle":"dashed"}, max relative error 0 (identical)
    identical to golden after normalisation; 74 elements
  • pass xyThree + {"width":900,"height":360}, max relative error 0 (identical)
    identical to golden after normalisation; 86 elements
line golden SVG: line on xyThree, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass xyThree + {}, max relative error 0 (identical)
    identical to golden after normalisation; 86 elements
pie golden SVG: pie on partsofwhole22 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass partsofwhole + {"showLegend":false}, max relative error 0 (identical)
    identical to golden after normalisation; 37 elements
  • pass partsofwhole + {"title":"Composition","subtitle":"share of total"}, max relative error 0 (identical)
    identical to golden after normalisation; 67 elements
pie golden SVG: pie on partsofwhole, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass partsofwhole + {}, max relative error 0 (identical)
    identical to golden after normalisation; 67 elements
qq golden SVG: qq on threeColumns, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass threeColumns + {}, max relative error 0 (identical)
    identical to golden after normalisation; 64 elements
ROC curve golden SVG: roc on rocSheet, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass rocSheet + {}, max relative error 0 (identical)
    identical to golden after normalisation; 63 elements
scatter golden SVG: scatter on a dark-ish canvas11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass xyThree + {"bg":"#14181f","plotBg":"#1b212b","textColor":"#e6e9ee","palette":"high-contrast"}, max relative error 0 (identical)
    identical to golden after normalisation; 81 elements
scatter golden SVG: scatter on dose22 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass dose + {"fitModel":"dose4pl"}, max relative error 0 (identical)
    identical to golden after normalisation; 75 elements
  • pass dose + {"fitModel":"dose4pl","fitLine":false}, max relative error 0 (identical)
    identical to golden after normalisation; 75 elements
scatter golden SVG: scatter on elisa11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass elisa + {"fitModel":"dose4pl"}, max relative error 0 (identical)
    identical to golden after normalisation; 133 elements
scatter golden SVG: scatter on linear22 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass linear + {"fitModel":"linear"}, max relative error 0 (identical)
    identical to golden after normalisation; 72 elements
  • pass linear + {"fitModel":"linear","fitBand":true}, max relative error 0 (identical)
    identical to golden after normalisation; 73 elements
scatter golden SVG: scatter on timeCourse11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass timeCourse + {"xAxis":{"segments":[{"min":0,"max":8},{"min":13,"max":22}]}}, max relative error 0 (identical)
    identical to golden after normalisation; 165 elements
scatter golden SVG: scatter on xyThree1010 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass xyThree + {"logX":true,"logY":true}, max relative error 0 (identical)
    identical to golden after normalisation; 102 elements
  • pass xyThree + {"logY":true,"yAxis":{"logBase":2}}, max relative error 0 (identical)
    identical to golden after normalisation; 77 elements
  • pass xyThree + {"logY":true,"yAxis":{"logBase":"e"}}, max relative error 0 (identical)
    identical to golden after normalisation; 81 elements
  • pass xyThree + {"showLegend":false}, max relative error 0 (identical)
    identical to golden after normalisation; 65 elements
  • pass xyThree + {"xAxis":{"labelAngle":45}}, max relative error 0 (identical)
    identical to golden after normalisation; 80 elements
  • pass xyThree + {"yAxis":{"labelAngle":-45}}, max relative error 0 (identical)
    identical to golden after normalisation; 80 elements
  • pass xyThree + {"yAxis":{"interval":1,"labelEvery":2}}, max relative error 0 (identical)
    identical to golden after normalisation; 81 elements
  • pass xyThree + {"xAxis":{"reverse":true},"yAxis":{"reverse":true}}, max relative error 0 (identical)
    identical to golden after normalisation; 80 elements
  • pass xyThree + {"fitModel":"poly2"}, max relative error 0 (identical)
    identical to golden after normalisation; 80 elements
  • pass xyThree + {"frame":"none","showGrid":true}, max relative error 0 (identical)
    identical to golden after normalisation; 87 elements
scatter golden SVG: scatter on xyThree, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass xyThree + {}, max relative error 0 (identical)
    identical to golden after normalisation; 80 elements
stacked-area golden SVG: stacked-area on xyThree, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass xyThree + {}, max relative error 0 (identical)
    identical to golden after normalisation; 74 elements
stacked-bar golden SVG: stacked-bar on grouped, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass grouped + {}, max relative error 0 (identical)
    identical to golden after normalisation; 71 elements
survival golden SVG: survival on a dark-ish canvas11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass survival + {"bg":"#14181f","plotBg":"#1b212b","textColor":"#e6e9ee","palette":"high-contrast"}, max relative error 0 (identical)
    identical to golden after normalisation; 112 elements
survival golden SVG: survival on survival66 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass survival + {"showLegend":false}, max relative error 0 (identical)
    identical to golden after normalisation; 101 elements
  • pass survival + {"palette":"lancet"}, max relative error 0 (identical)
    identical to golden after normalisation; 111 elements
  • pass survival + {"survivalMedian":true}, max relative error 0 (identical)
    identical to golden after normalisation; 112 elements
  • pass survival + {"survivalCI":"dotted"}, max relative error 0 (identical)
    identical to golden after normalisation; 113 elements
  • pass survival + {"survivalCI":"none","survivalCensors":false}, max relative error 0 (identical)
    identical to golden after normalisation; 99 elements
  • pass survival + {"frame":"box","showGrid":true}, max relative error 0 (identical)
    identical to golden after normalisation; 118 elements
survival golden SVG: survival on survival, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass survival + {}, max relative error 0 (identical)
    identical to golden after normalisation; 111 elements
violin golden SVG: violin on a dark-ish canvas11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass threeColumns + {"bg":"#14181f","plotBg":"#1b212b","textColor":"#e6e9ee","palette":"high-contrast"}, max relative error 0 (identical)
    identical to golden after normalisation; 77 elements
violin golden SVG: violin on threeColumns11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass threeColumns + {"logY":true}, max relative error 0 (identical)
    identical to golden after normalisation; 76 elements
violin golden SVG: violin on threeColumns, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass threeColumns + {}, max relative error 0 (identical)
    identical to golden after normalisation; 76 elements
violin golden SVG: violin on timeCourse, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass timeCourse + {}, max relative error 0 (identical)
    identical to golden after normalisation; 110 elements
volcano golden SVG: volcano on volcanoSheet, default style11 passed0 (identical)approved golden SVG (test/golden/render)
Cases
  • pass volcanoSheet + {}, max relative error 0 (identical)
    identical to golden after normalisation; 90 elements

Stress and fuzz tests (generated inputs)

MethodCasesResultLargest relative error (passing cases)Reference and cases
All two-group tests on tiny, tied or constant samples: P in [0, 1] or an explicit refusal, nothing shown as NaN11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 19207, runs 500)
ANOVA, Kruskal-Wallis, t and Mann-Whitney on all-equal values: an explicit refusal11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 19459, runs 100)
Bonferroni, Holm, Benjamini-Hochberg and others: adjusted P >= raw P, within [0,1], and a smaller raw P never gets a larger adjusted P11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 20230, runs 400)
Clipboard paste: arbitrary text or HTML gives a block or a plain error11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 11266, runs 500)
Column-table tests (onesample, wilcoxon1, unpaired, welch, mannwhitney, anova1, kruskal, normality): blanks, spaces and NA in the column give the identical result to the column without them11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 23297, runs 300)
Copy cells as an HTML table then paste into Plotvera: the same matrix comes back11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 11010, runs 400)
Copy cells as TSV then paste: the same matrix comes back (quotes, tabs, newlines, blanks, unicode)11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 11009, runs 400)
CSV export then import of a one-column table keeps one column and every value11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 10755, runs 300)
CSV export then import: numeric cells (negatives, exponents, 1e±300, -0) and blanks round-trip exactly; blank never becomes 011 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 10753, runs 300)
CSV export then import: text cells with quotes, commas, tabs, newlines and unicode round-trip exactly11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 10754, runs 300)
CSV import: every blank cell stays blank (never "0"), whatever the delimiter11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 10757, runs 300)
Descriptive stats are identical for any reordering of the values11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 18946, runs 300)
Descriptive stats on any finite data incl. ±1e300, subnormals and ±MAX_VALUE: min<=Q1<=median<=Q3<=max, min<=mean<=max, SD>=0, CI contains mean, nothing NaN11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 18945, runs 400)
Every column-table analysis (descriptive, normality, onesample, wilcoxon1, unpaired, welch, paired, mannwhitney, wilcoxon, anova1, rmanova1, kruskal, friedman, pearson, spearman, roc, blandaltman, grubbs, rout, freqdist) on random tables with blanks, NA, text, ties, constants and extremes: result or refusal, no NaN/Infinity shown, P in [0,1], R² <= 1, SD >= 011 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 23040, runs 200)
Every contingency-table analysis (chisq, diag2x2) on random tables with blanks, NA, text, ties, constants and extremes: result or refusal, no NaN/Infinity shown, P in [0,1], R² <= 1, SD >= 011 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 23044, runs 200)
Every grouped-table analysis (descriptive, anova2, anova2rm, multittest) on random tables with blanks, NA, text, ties, constants and extremes: result or refusal, no NaN/Infinity shown, P in [0,1], R² <= 1, SD >= 011 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 23042, runs 200)
Every multivar-table analysis (descriptive, normality, pearson, spearman, corrmatrix, mlregress, pca, kmeans, mlogistic, freqdist, multittest) on random tables with blanks, NA, text, ties, constants and extremes: result or refusal, no NaN/Infinity shown, P in [0,1], R² <= 1, SD >= 011 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 23046, runs 200)
Every nested-table analysis (nestedt, nestedanova) on random tables with blanks, NA, text, ties, constants and extremes: result or refusal, no NaN/Infinity shown, P in [0,1], R² <= 1, SD >= 011 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 23045, runs 200)
Every survival-table analysis (logrank, cox) on random tables with blanks, NA, text, ties, constants and extremes: result or refusal, no NaN/Infinity shown, P in [0,1], R² <= 1, SD >= 011 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 23043, runs 200)
Every xy-table analysis (tcmixed, tcauc, aucwiz, pearson, spearman, linreg, curvefit, stdcurve, logistic, roc, auc, customfit, smooth, derivative, integral) on random tables with blanks, NA, text, ties, constants and extremes: result or refusal, no NaN/Infinity shown, P in [0,1], R² <= 1, SD >= 011 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 23041, runs 250)
Excel preview: corrupted .xlsx gives a workbook or a plain error11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 7171, runs 40)
Excel ZIP preflight: corrupted archives give a plain error11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 7170, runs 400)
Fisher exact 2x2: P in [0,1] and unchanged by transposing or swapping rows; chi-square result never shows NaN11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 20229, runs 400)
JSON data import: any JSON value gives tables, a project or a plain refusal11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 7174, runs 400)
Kaplan-Meier on any times/censoring/ties: S(t) in [0,1] and non-increasing, 95% CI brackets S, at-risk non-increasing; log-rank P in [0,1]11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 20228, runs 300)
Lab-format recognition: arbitrary text is recognised or passed through, never a crash11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 11267, runs 500)
Linear regression: R² in [0, 1]; slope P unchanged under y -> a*y + b; slope sign follows a negated Y11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 20226, runs 300)
Mann-Whitney: P unchanged by within-group shuffles, swapping groups and y -> a*y + b; never increases with a larger shift11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 19205, runs 250)
n = 100,000 per group: t, Welch, Mann-Whitney, Wilcoxon, ANOVA, Kruskal-Wallis, correlation, regression and descriptive stats complete with finite output and P in [0, 1]11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 20231, runs 1)
Nonlinear fits (4PL, exponentials, Michaelis-Menten, Gaussian, Hill) on random/noisy/degenerate data: converged implies finite parameters and R² <= 111 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 20227, runs 150)
One-column list with a single cell holding ";", "|" or a tab: still one column, no value lost11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 10758, runs 300)
One-way ANOVA and Kruskal-Wallis: P unchanged under y -> a*y + b11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 19458, runs 250)
One-way ANOVA and Kruskal-Wallis: shuffling values within groups and reordering the groups keep P11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 19457, runs 250)
Open book.xlsx: a valid zip signature followed by random bytes fails gracefully11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 6675, runs 80)
Open colony_counts.xlsx after random truncation, byte flips or spliced garbage: result or plain error, never a crash or hang11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 6980, runs 40)
Open deck.pptx: a valid zip-pptx signature followed by random bytes fails gracefully11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 6680, runs 80)
Open file: arbitrary bytes under each supported extension return a result or a plain error, never a crash11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 6657, runs 150)
Open flowjo_table.csv after random truncation, byte flips or spliced garbage: result or plain error, never a crash or hang11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 7102, runs 120)
Open graph.prism: a valid ole signature followed by random bytes fails gracefully11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 6675, runs 80)
Open graph.prism: a valid zip-prism signature followed by random bytes fails gracefully11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 6681, runs 80)
Open imagej_results.csv after random truncation, byte flips or spliced garbage: result or plain error, never a crash or hang11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 7102, runs 120)
Open minimal-project.plotvera.json after random truncation, byte flips or spliced garbage: result or plain error, never a crash or hang11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 7123, runs 120)
Open no-analysis.prism after random truncation, byte flips or spliced garbage: result or plain error, never a crash or hang11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 7015, runs 40)
Open ole.prism after random truncation, byte flips or spliced garbage: result or plain error, never a crash or hang11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 7005, runs 30)
Open r-column.plotvera after random truncation, byte flips or spliced garbage: result or plain error, never a crash or hang11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 7088, runs 120)
Open study.dta: a valid dta signature followed by random bytes fails gracefully11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 6675, runs 80)
Open study.xpt: a valid xpt signature followed by random bytes fails gracefully11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 6675, runs 80)
Open survey.sav: a valid sav signature followed by random bytes fails gracefully11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 6675, runs 80)
Open tumour_114.dta after random truncation, byte flips or spliced garbage: result or plain error, never a crash or hang11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 7081, runs 120)
Open tumour_117.dta after random truncation, byte flips or spliced garbage: result or plain error, never a crash or hang11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 7081, runs 120)
Open tumour_118_strl.dta after random truncation, byte flips or spliced garbage: result or plain error, never a crash or hang11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 7081, runs 120)
Open tumour_compressed.sav after random truncation, byte flips or spliced garbage: result or plain error, never a crash or hang11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 7060, runs 120)
Open tumour_v5.xpt after random truncation, byte flips or spliced garbage: result or plain error, never a crash or hang11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 7074, runs 120)
Open tumour_v8.xpt after random truncation, byte flips or spliced garbage: result or plain error, never a crash or hang11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 7074, runs 120)
Open tumour.sav after random truncation, byte flips or spliced garbage: result or plain error, never a crash or hang11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 7053, runs 120)
Paired t and Wilcoxon matched-pairs: a row with a blank in either column is dropped as a pair, the same as deleting that row11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 23298, runs 300)
Paired t and Wilcoxon matched-pairs: shuffling pairs, swapping the columns and y -> a*y + b keep P11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 19206, runs 300)
Pearson and Spearman: r in [-1,1], CI contains r, P in [0,1]; unchanged by pair order and positive rescaling; r negates when one axis is negated11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 19713, runs 300)
PowerPoint import: a deck whose embedded OLE objects are garbage fails gracefully11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 7175, runs 60)
Prism .pzfx safety screen (DTD/entity refusal): arbitrary or corrupted XML text passes or gets a plain error11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 7172, runs 200)
Project codec: any JSON value is a project or a plain error11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 7173, runs 400)
Project open after random edits to the saved JSON text: a project or a plain error, never a crash11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 14852, runs 300)
Project save then open (.plotvera.json through UTF-8 bytes): tables, results and graphs deep-equal what was saved11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 14849, runs 150)
Project save, open, save again: identical bytes11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 14850, runs 150)
Share link (gzip + base64url) encode then decode deep-equals the project11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 14851, runs 60)
Share link decode of random or damaged fragments returns null or a project, never throws11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 14853, runs 200)
SPSS/Stata/SAS readers: random bytes give a table or a plain error11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 7169, runs 400)
Statistics-file/JSON CSV text (tableToCsv) then import round-trips cells11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 10756, runs 300)
t, F, chi-square CDFs non-decreasing in x; normal quantile increasing in p; two-tailed t P in [0, 1]11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 20225, runs 500)
Tests on data with ±1e300, 1e-300, subnormals, ±MAX_VALUE and mixed magnitudes: a finite result or a refusal, P in [0, 1]11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 19970, runs 400)
Text import (preview and parse, header on/off/auto): arbitrary text gives a table or a plain error11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 11265, runs 500)
Text import of a 20,000-row file completes within 5 s11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 11268, runs 3)
Two-group, k-group and correlation tests with NaN/±Infinity inserted: same result as without them, or an explicit refusal; never a shown NaN11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 19969, runs 300)
Unpaired and Welch t: P unchanged under y -> a*y + b (a in 1e-6..1e6, |b| up to 1e9*a)11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 19203, runs 300)
Unpaired and Welch t: shuffling values within each group leaves P unchanged11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 19201, runs 300)
Unpaired and Welch t: swapping the two groups negates the mean difference and keeps P11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 19202, runs 300)
Unpaired t: with the same scatter, a larger difference in means gives a P no larger11 passed0 (identical)invariant
Cases
  • pass generated (fast-check seed 19204, runs 300)

Every method Plotvera offers

87 methods and models. 75 have at least one independent reference case above; 12 do not yet, listed here so the gaps are visible.

MethodStatusWhy / cases
Descriptive statisticscovereddescriptive.precip, descriptive.rivers, descriptive.mtcars_mpg, descriptive.PlantGrowth_weight, descriptive.women_weight, descriptive.faithful_eruptions, descriptive.morley_speed, descriptive.sleep_extra_n3, nist.univ.PiDigits, nist.univ.Lottery, nist.univ.Lew, nist.univ.Mavro, nist.univ.Michelso, nist.univ.NumAcc1, nist.univ.NumAcc2, nist.univ.NumAcc3, nist.univ.NumAcc4
Normality diagnostics (Shapiro-Wilk, KS-Lilliefors, Anderson-Darling)partialShapiro-Wilk W and P match R shapiro.test; KS-Lilliefors D and Anderson-Darling A* match their definitions and the AD P value matches the published D'Agostino-Stephens formula (transcribed, not an R package). The KS-Lilliefors P value (Dallal-Wilkinson) has no independent reference here because nortest is not installed.
Outlier test (Grubbs)coveredgrubbs.mtcars-hp, grubbs.precip
Robust FDR outlier screening (MAD + BH)coveredrout.mtcars-hp, rout.precip
Frequency distributionnot coveredCounting into bins is exact integer arithmetic; the bin edges follow Plotvera's own display rule, which has no external reference implementation to compare against.
One-sample t testcoveredttest.onesample.sleep-drug1, ttest.onesample.women-height-60
One-sample Wilcoxon signed-rankcoveredwilcoxon1.exact-anorexia-FT-postwt-85, wilcoxon1.sleep-drug2-mu1
Unpaired t testcoveredttest.unpaired.student-sleep, ttest.unpaired.welch-sleep, ttest.unpaired.log10-PlantGrowth-ctrl-trt2, ttest.unpaired.ln-PlantGrowth-ctrl-trt2, ttest.unpaired.log2-PlantGrowth-ctrl-trt2
Welch's t testcoveredttest.welch.log10-PlantGrowth-ctrl-trt2, ttest.welch.ln-PlantGrowth-ctrl-trt2, ttest.welch.log2-PlantGrowth-ctrl-trt2, ttest.unpaired.welch-sleep
Paired t testcoveredttest.paired.sleep, ttest.paired.log10-PlantGrowth-ctrl-trt1
Mann-Whitney testcoveredmannwhitney.airquality-ozone-may-aug, mannwhitney.exact-anorexia-FT-CBT, rank.mw.01, rank.mw.02, rank.mw.03, rank.mw.04, rank.mw.05, rank.mw.06, rank.mw.07, rank.mw.08, rank.mw.09, rank.mw.10, rank.mw.11, rank.mw.12, rank.mw.13, rank.mw.14, rank.mw.15, rank.mw.16, rank.mw.17, rank.mw.18, rank.mw.19, rank.mw.20, rank.mw.21, rank.mw.22, rank.mw.23, rank.mw.24, rank.mw.25, rank.mw.26, rank.mw.ties
Wilcoxon matched-pairs signed-rankcoveredwilcoxon.paired-sleep, wilcoxon.paired-exact-anorexia-FT, rank.wx.01, rank.wx.02, rank.wx.03, rank.wx.04, rank.wx.05, rank.wx.06, rank.wx.07, rank.wx.08, rank.wx.09, rank.wx.10, rank.wx.11, rank.wx.12, rank.wx.13, rank.wx.14, rank.wx.15, rank.wx.16, rank.wx.17, rank.wx.18, rank.wx.19, rank.wx.20, rank.wx.zeros.1, rank.wx.zeros.2, rank.wx.zeros.3
Nested t testcoverednestedt.Pastes_AB
One-way ANOVAcoveredanova1.PlantGrowth, anova1.tukey.PlantGrowth, anova1.dunnett.PlantGrowth, anova1.chickwts, anova1.tukey.chickwts, anova1.dunnett.chickwts, anova1.InsectSprays, anova1.tukey.InsectSprays, anova1.dunnett.InsectSprays, anova1.log10-PlantGrowth, nist.anova.SiRstv, nist.anova.SmLs01, nist.anova.SmLs02, nist.anova.SmLs03, nist.anova.SmLs04, nist.anova.SmLs05, nist.anova.SmLs06, nist.anova.SmLs07, nist.anova.SmLs08, nist.anova.SmLs09, nist.anova.AtmWtAg
One-way ANOVA, repeated measurescoveredrmanova1.RoundingTimes, rmanova1.log10-RoundingTimes
Kruskal-Wallis testcoveredkruskal.PlantGrowth, kruskal.chickwts, kruskal.InsectSprays
Friedman testcoveredfriedman.RoundingTimes
Two-way ANOVA (Type III)coveredanova2.ToothGrowth_grouped, anova2.warpbreaks_grouped, anova2.warpbreaks_unbalanced_grouped
Two-way ANOVA, repeated measurespartialThe columns-repeated (split-plot) design is referenced against R aov with Error() and car::Anova (CO2 data). The rows-repeated and both-factors-repeated designs have no R reference case yet.
Nested one-way ANOVAcoverednestedanova.Pastes_AtoE
Multiple t tests (one per row)partialUnpaired Welch t per row with Benjamini-Hochberg and Holm adjustment is referenced; the paired and nonparametric row tests have no reference case yet.
Mixed-effects model (arm x time)partialType III F tests, Satterthwaite df and variance components match lme4 + lmerTest; the per-timepoint Šídák group comparisons (emmeans) and the log test scale have no reference case in this suite.
Area under curve per mouse, compare armspartialPer-subject trapezoid AUC and the one-way ANOVA comparison are referenced; the Dunnett and Kruskal-Wallis comparison options reuse engines validated under anova1 and kruskal but are not separately referenced for this analysis.
Compare products by area under the curve (AUC wizard)not coveredThe per-subject trapezoid areas and the ANOVA/Welch/Kruskal tests it reports use engines validated elsewhere in this suite, but the wizard's baseline, window, missing-value and experiment-blocking options have no R reference case yet.
Pearson correlationcoveredpearson.mtcars-wt-mpg, pearson.mtcars-hp-qsec, pearson.mtcars-disp-drat
Spearman correlationcoveredspearman.mtcars-wt-mpg, spearman.mtcars-hp-qsec, spearman.mtcars-disp-drat, rank.sp.01, rank.sp.02, rank.sp.03, rank.sp.04, rank.sp.05, rank.sp.06, rank.sp.07, rank.sp.08, rank.sp.09, rank.sp.10, rank.sp.11, rank.sp.12, rank.sp.13, rank.sp.14, rank.sp.15, rank.sp.16, rank.sp.17, rank.sp.18, rank.sp.19, rank.sp.20, rank.sp.21, rank.sp.22, rank.sp.23, rank.sp.24, rank.sp.25, rank.sp.26, rank.sp.ties
Correlation matrixcoveredcorrmatrix.mtcars
Linear regressioncoveredlinreg.women, linreg.anscombe1, linreg.anscombe2, linreg.anscombe3, linreg.anscombe4, nist.lls.Norris
Nonlinear curve fit (20 built-in models)coveredcurvefit.dose4pl-DNase1, curvefit.dose3pl-DNase1, curvefit.dose5pl-DNase1, curvefit.boltzmann-DNase1, curvefit.loglogistic-ryegrass, curvefit.loglogistic5-ryegrass, curvefit.mm-Puromycin, curvefit.hill-Puromycin, curvefit.loglogistic3-Puromycin, curvefit.logarithmic-Puromycin-untreated, curvefit.expdecay-Indometh1, curvefit.twophasedecay-Indometh, curvefit.expgrow-uspop, curvefit.onephaseassoc-Loblolly, curvefit.expplateau-Loblolly, curvefit.poly2-cars, curvefit.poly3-cars, curvefit.power-Puromycin, curvefit.sine-nottem, curvefit.gaussian-Eckerle4, nist.nls.DanWood.builtin-power, nist.nls.Misra1d.builtin-mm, nist.nls.Eckerle4.builtin-gaussian, nist.lls.Pontius
Fit your own equationpartialMatches R and NIST StRD from NIST starting values for most problems, but not all: see the failed NIST rows (higher-difficulty problems from far starts, exact-fit data stopped at the 1e-12 error tolerance, problems refused by the custom-fit work budget, Nelson and Roszman1 not expressible).
Standard curve: read unknowns (ELISA)partialUnweighted 4PL on linear concentration, with interpolated concentrations and inversion intervals, matches R nls + investr::invest. Weighting (1/Y, 1/Y²), blank subtraction, dilution factors and the line/polynomial/5PL/log-X variants have no reference case yet.
Simple logistic regressioncoveredlogistic.mtcars-am-wt, logistic.mtcars-am-qsec
Multiple logistic regressioncoveredmlogistic.mtcars-am-wt-hp, mlogistic.mtcars-am-mpg-drat-carb
Multiple regressioncoveredmlregress.mtcars-mpg, mlregress.mtcars-qsec, nist.lls.Longley
Area under curve (trapezoid)coveredxy.Indometh1, xy.nottem-anomaly
Smooth curve (moving average, Savitzky-Golay)coveredxy.Indometh1, xy.nottem-anomaly
Differentiate (dY/dX)coveredxy.Indometh1
Integrate (cumulative area)coveredxy.Indometh1
Survival: Kaplan-Meier and log-rankcoveredkm.aml, km.ovarian, km.lung-sex, km.veteran-trt, km.lung-ecog3, logrank.aml, logrank.ovarian, logrank.lung-sex, logrank.veteran-trt, logrank.lung-ecog3, rank.km.01, rank.km.02, rank.km.03, rank.km.04, rank.km.05, rank.km.06, rank.km.07, rank.km.08, rank.km.09, rank.km.10, rank.km.11, rank.km.12
Cox proportional hazardscoveredcox.aml, cox.ovarian, cox.lung-sex, cox.veteran-trt
Chi-square / Fisher exactpartialChi-square (with and without Yates), Fisher exact P and the sample odds ratio are referenced; the Baptista-Pike odds-ratio interval has no independent reference here (R exact2x2 not installed).
Sensitivity / specificity (2x2)covereddiag2x2.mtcars-wt-auto
ROC curvecoveredroc.mtcars-wt-automatic, roc.infert-spontaneous
Bland-Altman agreementcoveredblandaltman.sleep
Principal component analysiscoveredpca.USArrests
k-means clusteringcoveredkmeans.iris-k3
Dose-response, 4PL (log dose)coveredcurvefit.dose4pl-DNase1
Dose-response, 3PL (slope 1, log dose)coveredcurvefit.dose3pl-DNase1
5PL asymmetric (log dose)coveredcurvefit.dose5pl-DNase1
Log-logistic 4-parameter (linear dose)coveredcurvefit.loglogistic-ryegrass
Log-logistic 3-parameter (linear dose)coveredcurvefit.loglogistic3-Puromycin
5PL asymmetric (linear dose)coveredcurvefit.loglogistic5-ryegrass
Hill equationcoveredcurvefit.hill-Puromycin
Michaelis-Mentencoveredcurvefit.mm-Puromycin, nist.nls.Misra1d.builtin-mm
Exponential decay (one phase)coveredcurvefit.expdecay-Indometh1
Two-phase exponential decaycoveredcurvefit.twophasedecay-Indometh
Exponential growthcoveredcurvefit.expgrow-uspop
One-phase associationcoveredcurvefit.onephaseassoc-Loblolly
Exponential plateaucoveredcurvefit.expplateau-Loblolly
Gaussian peakcoveredcurvefit.gaussian-Eckerle4, nist.nls.Eckerle4.builtin-gaussian
Boltzmann sigmoidcoveredcurvefit.boltzmann-DNase1
Polynomial, quadraticcoveredcurvefit.poly2-cars, nist.lls.Pontius
Polynomial, cubiccoveredcurvefit.poly3-cars
Power lawcoveredcurvefit.power-Puromycin, nist.nls.DanWood.builtin-power
Sine wavecoveredcurvefit.sine-nottem
Logarithmic (semi-log line)coveredcurvefit.logarithmic-Puromycin-untreated
Straight linecoveredlinreg.women, linreg.anscombe1, linreg.anscombe2, linreg.anscombe3, linreg.anscombe4, nist.lls.Norris
Check data: Grubbs on replicate sets and subjects, replicate CV, robust screen (MAD + BH), and tests with excluded values left outcoveredqc.grubbs.elisa-bad-well, qc.grubbs.triplicate-extreme, qc.grubbs.triplicate-clean, qc.grubbs.quadruplicate, qc.grubbs.mice-n6, qc.grubbs.morley-expt1, qc.cv.duplicates, qc.cv.triplicate, qc.cv.elisa-clean, qc.robust.mice-n6, qc.ttest.unpaired-excluded
One-way ANOVA: Holm-Šídák multiple comparisonscoveredanova1.PlantGrowth, anova1.chickwts, anova1.InsectSprays
One-way ANOVA: Tukey HSD / Tukey-Kramercoveredanova1.tukey.PlantGrowth, anova1.tukey.chickwts, anova1.tukey.InsectSprays
One-way ANOVA: Dunnett's test vs controlcoveredanova1.dunnett.PlantGrowth, anova1.dunnett.chickwts, anova1.dunnett.InsectSprays
Dunn's test (Kruskal-Wallis and Friedman), Bonferronicoveredkruskal.PlantGrowth, kruskal.chickwts, kruskal.InsectSprays, friedman.RoundingTimes
Test on log10 / ln / log2 scalepartialReferenced for the unpaired, Welch and paired t tests, one-way ANOVA and repeated-measures one-way ANOVA; the same option on the mixed model has no reference case.
Greenhouse-Geisser and Huynh-Feldt correctionscoveredrmanova1.RoundingTimes, rmanova1.log10-RoundingTimes, anova2rm.CO2-colWithin
Kaplan-Meier pointwise 95% CI (Greenwood, log-log)coveredkm.aml, km.ovarian, km.lung-sex, km.veteran-trt, km.lung-ecog3
Median survival and Brookmeyer-Crowley 95% CIcoveredlogrank.aml, logrank.ovarian, logrank.lung-sex, logrank.veteran-trt, logrank.lung-ecog3
Gehan-Breslow-Wilcoxon testcoveredlogrank.aml, logrank.ovarian, logrank.lung-sex, logrank.veteran-trt, logrank.lung-ecog3
Hazard ratio, log-rank (O/E) methodcoveredlogrank.aml, logrank.ovarian, logrank.lung-sex, logrank.veteran-trt, logrank.lung-ecog3
Hazard ratio, Mantel-Haenszel methodcoveredlogrank.aml, logrank.ovarian, logrank.lung-sex, logrank.veteran-trt, logrank.lung-ecog3
Fisher's exact test (2x2)coveredchisq.fisher-TeaTasting, chisq.fisher-Convictions
Wilson score intervals (diagnostic 2x2)covereddiag2x2.mtcars-wt-auto
ROC AUC Hanley-McNeil interval and Youden cut-offcoveredroc.mtcars-wt-automatic, roc.infert-spontaneous
Spearman CI (Fisher z, Bonett-Wright SE)coveredspearman.mtcars-wt-mpg, spearman.mtcars-hp-qsec, spearman.mtcars-disp-drat
Nonlinear fit: log-scale CI for positive-constrained parameterscoveredcurvefit.dose4pl-DNase1, curvefit.dose3pl-DNase1, curvefit.dose5pl-DNase1, curvefit.boltzmann-DNase1, curvefit.loglogistic-ryegrass, curvefit.loglogistic5-ryegrass, curvefit.mm-Puromycin, curvefit.hill-Puromycin, curvefit.loglogistic3-Puromycin, curvefit.logarithmic-Puromycin-untreated, curvefit.expdecay-Indometh1, curvefit.twophasedecay-Indometh, curvefit.expgrow-uspop, curvefit.onephaseassoc-Loblolly, curvefit.expplateau-Loblolly, curvefit.poly2-cars, curvefit.poly3-cars, curvefit.power-Puromycin, curvefit.sine-nottem, curvefit.gaussian-Eckerle4
XY fits: replicate Y values fitted as row meansnot coveredOnly one Y value per X is used in the reference cases; the "fit only the mean Y of each row" option is checked structurally in the golden tests, not against R.
Distribution functions behind every P value and critical value (t, F, chi-square, normal, studentized range)covereddistribution.pTwoT, distribution.tInv, distribution.pF, distribution.pChi, distribution.normCDF, distribution.normInv, distribution.ptukeyUpper
Identical recomputation at full precision and row-order invariancecovereddeterminism.unpaired-welch.sleep, determinism.paired.sleep, determinism.anova1-tukey.PlantGrowth, determinism.anova2.ToothGrowth, determinism.linreg.women, determinism.mlregress.mtcars, determinism.logistic.mtcars, determinism.curvefit-4PL.DNase1, determinism.logrank-km.lung, determinism.cox.lung