Collatz: JavaScript 🟨🟦🟩🟥
Functions related to the Collatz/Syracuse/3N+1 problem, implemented in JavaScript (transpiled from TypeScript).
Getting Started
To install the latest from npm;
npm i @skenvy/collatz
Also available on deno. See the typescript import, the CommonJS import, or the ECMAScript import.
Usage
Provides the basic functionality to interact with the Collatz conjecture.
The parameterisation uses the same (P,a,b)
notation as Conway’s generalisations.
Besides the function and reverse function, there is also functionality to retrieve the hailstone sequence, the “stopping time”/”total stopping time”, or tree-graph.
The only restriction placed on parameters is that both P
and a
can’t be 0
.
Usage Examples
TSDoc+TypeDoc generated docs
Istanbul.js/nyc generated coverage
Developing
The first time setup
git clone https://github.com/Skenvy/Collatz.git && cd Collatz/javascript && make setup
Iterative development
The majority of make
recipes for this are just wrapping an invocation of npm run ...
on one of the package.json
’s "scripts"
.
make docs
will recreate the TypeDoc docs, based on TSDoc comments.make test
will run the mocha tests and attempt a dry run of the publishing.make lint
will run eslint.make verify_transpiled_checkin
will confirm you haven’t forgotten to check in changes to the transpiled output.make build
will runnpm pack
after linting, testing, and verifying check-in.