import { RESULTS_REPO_URL } from "../results"; const REPO_URL = "https://github.com/concept-collection/fastandaccurate"; export function AboutPage() { const cliUrl = `https://concept-collection.github.io/fastandaccurate/cli.tgz?v=${__BUILD_ID__}`; return ( <>

← problems

About

A limitation of most solver comparisons is that they fix a discretization, which quietly decides much of the outcome. Here each{" "} problem is posed in the continuum, with an exact or highly accurate reference solution; a solver chooses its own discretization and is scored at problem-specified evaluation points. Each problem defines its own interface and a short list of official{" "} instances (parameter combinations) in a written specification, so every solver is compared on identical inputs. Solvers are MATLAB function files run by{" "} numbl (MATLAB syntax in the browser and in node), so everything on this site runs client side, and the identical harness runs from the command line.

Measurement

The central object is the work-precision curve: error against compute time, traced out as the solver's resolution parameter varies. Errors are measured at a fixed set of evaluation points defined per instance, relative to the reference solution. Timing is one untimed warmup run (which absorbs JIT compilation), then the median of repeated timed runs; a run includes the solver's own discretization, assembly, solve, and evaluation. There is deliberately no single ranking: which curve is best can differ by accuracy regime, instance, and machine, and the site presents the curves rather than a verdict. Times from different machines are not comparable; every result records its environment, and the charts label curves by machine.

Results and provenance

Results are JSON files in{" "} fastandaccurate-results, added by pull request; the site reads that repository statically, so there is no database and no server. Every result carries its provenance: the instance spec and its hash, solver id and version, timing protocol, runtime, numbl version, and machine. Results produced by in-browser solvers can be rerun by any visitor on their own machine, directly on the problem page. Results from solvers outside the repository (and, in the future, from other languages and hardware) enter the same way and are marked as not reproducible in the browser.

Running outside the browser

The command line installs from this site itself (node 20 or newer; nothing on the npm registry):

{`npx ${cliUrl} run --label "my workstation"`}

This runs the standard sweeps and writes one result JSON per instance and solver. Useful flags: --instance <id>,{" "} --solver <id>, --repeats N,{" "} --max-n N, --out dir. To benchmark your own solver, point the harness at a MATLAB function file implementing the problem's solver interface:

{`npx ${cliUrl} run --solver-file my_method.m --solver-id my-method`}

Note that npx caches by the exact URL string; the ?v={" "} suffix above ties the command to the current deployment so a later visit installs the current build.

Submitting

Result files can be loaded on a problem page (load result file) to view them against the committed curves before submitting anything. To publish results, open a pull request adding the files under{" "} results/ in the{" "} results repository. To add a solver to the site itself, so visitors can rerun it in the browser, PR the solver directory and a manifest entry to{" "} the main repository; submissions are reviewed against the problem specification, including that a solver must not special-case the known solution.

); }