Forms — interactive mathematics. Four handles, one expression.
- Rust 43.1%
- JavaScript 22.5%
- TypeScript 18.7%
- HTML 11.7%
- Python 2.3%
- Other 1.7%
The symbolic answer path routed fib/nCr/nPr through i64 math_fns, so results were capped (fib n<=92) or overflowed to None (nCr/nPr beyond i64) — lossy for a tool that already carries exact rationals. gcd/lcm were already exact via BigRational. - math_fns: add fibonacci_big (fast doubling), combinations_big, permutations_big — exact BigInt, arbitrary-magnitude result, compute-capped at 1e6 multiplications. - apply_number_theory: fib/nCr/nPr now produce Term::Num(from_big_integer(..)). nCr/nPr read numer_big() so n,k may exceed i64 (e.g. nCr(2^100, 2) now computes). - The fast f64 plotting path (eval_numeric) is unchanged. Frozen regressions (oracle_regressions.rs, all values independently verified): fib(100), fib(200), nCr(50,25), nPr(20,10), nCr(2^100,2), gcd/lcm large coprimes. Updated the internal large-nCr test to assert the exact value (was no-panic only). Suite 493 + 15 regressions + 7 prop + 3 spike green; wasm32 clean. Authored by Rowan Valle; Executed by Claude Code. |
||
|---|---|---|
| .claude | ||
| assets | ||
| docs/decisions | ||
| manual | ||
| math-core | ||
| math-wasm | ||
| public | ||
| sources | ||
| src | ||
| tests | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| favicon.png | ||
| index.html | ||
| manual.json | ||
| no-dead-symbols.md | ||
| package-lock.json | ||
| package.json | ||
| ROADMAP.md | ||
| style.css | ||
| tsconfig.json | ||
| vite.config.ts | ||