{"id":32153817,"url":"https://github.com/skenvy/collatz","last_synced_at":"2026-02-18T22:01:39.987Z","repository":{"id":39743071,"uuid":"467350484","full_name":"Skenvy/Collatz","owner":"Skenvy","description":"Functions related to the Collatz/Syracuse/3N+1 problem.","archived":false,"fork":false,"pushed_at":"2026-02-11T09:35:11.000Z","size":4926,"stargazers_count":6,"open_issues_count":11,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-11T17:27:21.572Z","etag":null,"topics":["collatz"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Skenvy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"Skenvy"}},"created_at":"2022-03-08T03:33:25.000Z","updated_at":"2026-02-11T09:35:02.000Z","dependencies_parsed_at":"2023-02-10T02:15:56.242Z","dependency_job_id":"c907bf6d-db32-43bb-9cd5-eb1f7e3c432a","html_url":"https://github.com/Skenvy/Collatz","commit_stats":{"total_commits":499,"total_committers":4,"mean_commits":124.75,"dds":"0.38476953907815636","last_synced_commit":"e64ceb80cbc6bc1a6b9e40eef71d4ae746b269b5"},"previous_names":[],"tags_count":47,"template":false,"template_full_name":null,"purl":"pkg:github/Skenvy/Collatz","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skenvy%2FCollatz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skenvy%2FCollatz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skenvy%2FCollatz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skenvy%2FCollatz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Skenvy","download_url":"https://codeload.github.com/Skenvy/Collatz/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skenvy%2FCollatz/sbom","scorecard":{"id":130733,"data":{"date":"2025-08-11","repo":{"name":"github.com/Skenvy/Collatz","commit":"fef24fa1596bfd0f2d7a3d3a73ad684752f1096a"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":7.6,"checks":[{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":-1,"reason":"Found no human activity in the last 30 changesets","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":2,"reason":"badge detected: InProgress","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Token-Permissions","score":9,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/LaTeX-build.yaml:84","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/R-build.yaml:127","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/R-build.yaml:156","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/R-build.yaml:82","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/R-build.yaml:104","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/github-pages.yaml:44","Info: jobLevel 'contents' permission set to 'read': .github/workflows/github-pages.yaml:69","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/go-build.yaml:87","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/go-build.yaml:111","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/go-build.yaml:141","Info: jobLevel 'actions' permission set to 'read': .github/workflows/go-build.yaml:26","Info: jobLevel 'contents' permission set to 'read': .github/workflows/go-build.yaml:27","Warn: jobLevel 'security-events' permission set to 'write': .github/workflows/go-build.yaml:28","Info: jobLevel 'actions' permission set to 'read': .github/workflows/go-test.yaml:77","Info: jobLevel 'contents' permission set to 'read': .github/workflows/go-test.yaml:78","Warn: jobLevel 'security-events' permission set to 'write': .github/workflows/go-test.yaml:79","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/java-build.yaml:87","Warn: jobLevel 'packages' permission set to 'write': .github/workflows/java-build.yaml:107","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/java-build.yaml:142","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/java-build.yaml:165","Info: jobLevel 'actions' permission set to 'read': .github/workflows/java-build.yaml:24","Info: jobLevel 'contents' permission set to 'read': .github/workflows/java-build.yaml:25","Warn: jobLevel 'security-events' permission set to 'write': .github/workflows/java-build.yaml:26","Info: jobLevel 'actions' permission set to 'read': .github/workflows/java-test.yaml:92","Info: jobLevel 'contents' permission set to 'read': .github/workflows/java-test.yaml:93","Warn: jobLevel 'security-events' permission set to 'write': .github/workflows/java-test.yaml:94","Warn: jobLevel 'packages' permission set to 'write': .github/workflows/javascript-build.yaml:108","Info: jobLevel 'contents' permission set to 'read': .github/workflows/javascript-build.yaml:165","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/javascript-build.yaml:179","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/javascript-build.yaml:215","Info: jobLevel 'actions' permission set to 'read': .github/workflows/javascript-build.yaml:24","Info: jobLevel 'contents' permission set to 'read': .github/workflows/javascript-build.yaml:25","Warn: jobLevel 'security-events' permission set to 'write': .github/workflows/javascript-build.yaml:26","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/javascript-build.yaml:88","Warn: jobLevel 'security-events' permission set to 'write': .github/workflows/javascript-test.yaml:147","Info: jobLevel 'actions' permission set to 'read': .github/workflows/javascript-test.yaml:145","Info: jobLevel 'contents' permission set to 'read': .github/workflows/javascript-test.yaml:146","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/julia-build.yaml:60","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/julia-build.yaml:100","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/julia-build.yaml:121","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/python-build.yaml:88","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/python-build.yaml:139","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/python-build.yaml:171","Info: jobLevel 'actions' permission set to 'read': .github/workflows/python-build.yaml:26","Info: jobLevel 'contents' permission set to 'read': .github/workflows/python-build.yaml:27","Warn: jobLevel 'security-events' permission set to 'write': .github/workflows/python-build.yaml:28","Info: jobLevel 'contents' permission set to 'read': .github/workflows/python-test.yaml:133","Warn: jobLevel 'security-events' permission set to 'write': .github/workflows/python-test.yaml:134","Info: jobLevel 'actions' permission set to 'read': .github/workflows/python-test.yaml:132","Info: jobLevel 'actions' permission set to 'read': .github/workflows/ruby-build.yaml:27","Info: jobLevel 'contents' permission set to 'read': .github/workflows/ruby-build.yaml:28","Warn: jobLevel 'security-events' permission set to 'write': .github/workflows/ruby-build.yaml:29","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/ruby-build.yaml:90","Warn: jobLevel 'packages' permission set to 'write': .github/workflows/ruby-build.yaml:110","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/ruby-build.yaml:151","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/ruby-build.yaml:184","Info: jobLevel 'actions' permission set to 'read': .github/workflows/ruby-test.yaml:81","Info: jobLevel 'contents' permission set to 'read': .github/workflows/ruby-test.yaml:82","Warn: jobLevel 'security-events' permission set to 'write': .github/workflows/ruby-test.yaml:83","Info: found token with 'none' permissions: .github/workflows/C#-test.yaml:1","Info: found token with 'none' permissions: .github/workflows/LaTeX-build.yaml:1","Info: found token with 'none' permissions: .github/workflows/LaTeX-test.yaml:1","Info: found token with 'none' permissions: .github/workflows/R-build.yaml:1","Info: found token with 'none' permissions: .github/workflows/R-test.yaml:1","Info: topLevel 'actions' permission set to 'read': .github/workflows/github-codeql.yaml:14","Info: topLevel 'contents' permission set to 'read': .github/workflows/github-codeql.yaml:15","Warn: topLevel 'security-events' permission set to 'write': .github/workflows/github-codeql.yaml:16","Info: found token with 'none' permissions: .github/workflows/github-context.yaml:1","Info: found token with 'none' permissions: .github/workflows/github-pages.yaml:1","Info: found token with 'none' permissions: .github/workflows/gleam-test.yaml:1","Info: found token with 'none' permissions: .github/workflows/go-build.yaml:1","Info: found token with 'none' permissions: .github/workflows/go-test.yaml:1","Info: found token with 'none' permissions: .github/workflows/java-build.yaml:1","Info: found token with 'none' permissions: .github/workflows/java-test.yaml:1","Info: found token with 'none' permissions: .github/workflows/javascript-build.yaml:1","Info: found token with 'none' permissions: .github/workflows/javascript-test.yaml:1","Info: found token with 'none' permissions: .github/workflows/julia-build.yaml:1","Info: found token with 'none' permissions: .github/workflows/julia-test.yaml:1","Info: found token with 'none' permissions: .github/workflows/python-build.yaml:1","Info: found token with 'none' permissions: .github/workflows/python-test.yaml:1","Info: found token with 'none' permissions: .github/workflows/ruby-build.yaml:1","Info: found token with 'none' permissions: .github/workflows/ruby-test.yaml:1","Info: found token with 'none' permissions: .github/workflows/rust-test.yaml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":9,"reason":"dependency not pinned by hash detected -- score normalized to 9","details":["Warn: containerImage not pinned by hash: LaTeX/container/Dockerfile:1: pin your Docker image by updating ubuntu:24.04 to ubuntu:24.04@sha256:a08e551cb33850e4740772b38217fc1796a66da2506d312abe51acda354ff061","Info: 135 out of 135 GitHub-owned GitHubAction dependencies pinned","Info:  20 out of  20 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact javascript-v1.3.0 not signed: https://api.github.com/repos/Skenvy/Collatz/releases/203039027","Warn: release artifact ruby-v1.1.0 not signed: https://api.github.com/repos/Skenvy/Collatz/releases/201899343","Warn: release artifact javascript-v1.2.1 not signed: https://api.github.com/repos/Skenvy/Collatz/releases/201907202","Warn: release artifact LaTeX-v0.0.1 not signed: https://api.github.com/repos/Skenvy/Collatz/releases/194371633","Warn: release artifact javascript-v1.2.0 not signed: https://api.github.com/repos/Skenvy/Collatz/releases/146930139","Warn: release artifact javascript-v1.3.0 does not have provenance: https://api.github.com/repos/Skenvy/Collatz/releases/203039027","Warn: release artifact ruby-v1.1.0 does not have provenance: https://api.github.com/repos/Skenvy/Collatz/releases/201899343","Warn: release artifact javascript-v1.2.1 does not have provenance: https://api.github.com/repos/Skenvy/Collatz/releases/201907202","Warn: release artifact LaTeX-v0.0.1 does not have provenance: https://api.github.com/repos/Skenvy/Collatz/releases/194371633","Warn: release artifact javascript-v1.2.0 does not have provenance: https://api.github.com/repos/Skenvy/Collatz/releases/146930139"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/python-build.yaml:109"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"SAST","score":9,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 27 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":7,"reason":"3 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: PYSEC-2025-49 / GHSA-5rjg-fvgr-3xxf"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-16T05:12:46.940Z","repository_id":39743071,"created_at":"2025-08-16T05:12:46.941Z","updated_at":"2025-08-16T05:12:46.941Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29596329,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T20:59:56.587Z","status":"ssl_error","status_checked_at":"2026-02-18T20:58:41.434Z","response_time":162,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["collatz"],"created_at":"2025-10-21T11:45:18.678Z","updated_at":"2026-02-18T22:01:39.979Z","avatar_url":"https://github.com/Skenvy.png","language":"Python","funding_links":["https://github.com/sponsors/Skenvy"],"categories":[],"sub_categories":[],"readme":"# [Collatz](https://github.com/Skenvy/Collatz)\n\u003cp align=\"center\"\u003e\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/wiki/Skenvy/Collatz/.meta/banners/modifications/_Main_dark.png\"/\u003e\n  \u003cimg alt=\"Banner Image, Collatz Coral\" src=\"https://raw.githubusercontent.com/wiki/Skenvy/Collatz/.meta/banners/modifications/_Main_light.png\" width=830 height=666/\u003e\n\u003c/picture\u003e\u003c/p\u003e\n\u003csub\u003e\u003cp align=\"center\"\u003e\u003ci\u003e\n  \u003ca href=\"https://github.com/Skenvy/Collatz/blob/main/.meta/banners/README.md\"\u003eColourised Collatz Coral\u003c/a\u003e; derived from this\n  \u003ca href=\"https://twitter.com/Gelada/status/846751901756653568\"\u003eoriginal by Edmund Harriss\u003c/a\u003e\n\u003c/i\u003e\u003c/p\u003e\u003c/sub\u003e\n\n---\nOf all the [open problems in mathematics](https://en.wikipedia.org/wiki/List_of_unsolved_problems_in_mathematics), the [Collatz Conjecture / 3N+1 problem](https://en.wikipedia.org/wiki/Collatz_conjecture) [[*](https://mathworld.wolfram.com/CollatzProblem.html)] is infamously probably the most disproportionately difficult to solve compared to how incredibly simple it is to state.\nThe simplest form of the question is, for every positive integer, if we recursively halve any even integer, and alternatively multiply by 3 and add 1 for any odd integer, are we guaranteed to eventually end up with a value of 1.\n\nThis project aims to provide as similar an interface and experience as possible, across several languages, for interacting with basic functionality related to the Collatz conjecture.\nThe initial focus is a breadth first approach, that tries to provide a parameterisable hailstone and tree-graphing function in every implementation that has been committed to.\nAfter these are complete, the focus will shift to providing LaTeX notes on particular approaches to solving it, which have the potential to inform what additional features and functionality will likely be added.\n[Although you can always raise a feature request](https://github.com/Skenvy/Collatz/issues/new?assignees=\u0026labels=enhancement\u0026projects=\u0026template=feature-request.yaml), there's no guarantee as to how it will be prioritised.\n\nThe list of implementations, where the externally hosted package lives, where the GitHub hosted pages lives, and whether there is an internal package hosted on GitHub or not, are listed below.\n## Badges\n[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/6311/badge)](https://bestpractices.coreinfrastructure.org/projects/6311)\n[![Go Reference](https://pkg.go.dev/badge/github.com/Skenvy/Collatz/go.svg)](https://pkg.go.dev/github.com/Skenvy/Collatz/go)\n[![Go Report Card](https://goreportcard.com/badge/github.com/Skenvy/Collatz/go)](https://goreportcard.com/report/github.com/Skenvy/Collatz/go)\n[![CRAN Version](https://www.r-pkg.org/badges/version/collatz)](https://cran.r-project.org/package=collatz)\n## Implementations\n| Code | External Pkg | GitHub Pages | Internal Pkg |\n| :--- | :---         | :---         | :---         |\n| [C#](https://github.com/Skenvy/Collatz/tree/main/C%23) | **#TODO** | **#TODO** | **#TODO** |\n| [Gleam](https://github.com/Skenvy/Collatz/tree/main/gleam) | **#TODO** | **#TODO** | _N/A_ |\n| [Go](https://github.com/Skenvy/Collatz/tree/main/go) | [pkg.go.dev](https://pkg.go.dev/github.com/Skenvy/Collatz/go) | [GoDoc](https://skenvy.github.io/Collatz/go/)+[Cover](https://skenvy.github.io/Collatz/go/coverage.html) | _N/A_ |\n| [Java](https://github.com/Skenvy/Collatz/tree/main/java) | [mvn-central](https://search.maven.org/artifact/io.github.skenvy/collatz) | [Site](https://skenvy.github.io/Collatz/java/)+[JavaDoc](https://skenvy.github.io/Collatz/java/apidocs/io/github/skenvy/package-summary.html) | [mvn-gh](https://github.com/Skenvy/Collatz/packages/1445255) |\n| [JavaScript](https://github.com/Skenvy/Collatz/tree/main/javascript) | [npm](https://www.npmjs.com/package/@skenvy/collatz)+[jsr](https://jsr.io/@skenvy/collatz) | [TSDoc+TypeDoc](https://skenvy.github.io/Collatz/javascript) | [npm-gh](https://github.com/Skenvy/Collatz/pkgs/npm/collatz) |\n| [Julia](https://github.com/Skenvy/Collatz/tree/main/julia) | [juliahub](https://juliahub.com/ui/Packages/Collatz/UmeZE) | [Documenter](https://skenvy.github.io/Collatz/julia/) | _N/A_ |\n| [LaTeX](https://github.com/Skenvy/Collatz/tree/main/LaTeX) | _N/A_ | **#TODO** | _N/A_ |\n| [Python](https://github.com/Skenvy/Collatz/tree/main/python) | [pypi](https://pypi.org/project/collatz/) | [Sphinx+MyST](https://skenvy.github.io/Collatz/python/) | _N/A_ |\n| [R](https://github.com/Skenvy/Collatz/tree/main/R) | [CRAN](https://cran.r-project.org/package=collatz) | [roxy+pkgd](https://skenvy.github.io/Collatz/R/)+[covr](https://skenvy.github.io/Collatz/R/covr/Collatz-report.html)+[PDF](https://skenvy.github.io/Collatz/R/pdf/) | _N/A_ |\n| [Ruby](https://github.com/Skenvy/Collatz/tree/main/ruby) | [RubyGems](https://rubygems.org/gems/collatz) | [RDoc](https://skenvy.github.io/Collatz/ruby/) | [gems-gh](https://github.com/Skenvy/Collatz/packages/1636643) |\n| [Rust](https://github.com/Skenvy/Collatz/tree/main/rust) | **#TODO** | **#TODO** | _N/A_ |\n## Versioned Functionality\n* \"_optionally_\" refers to the ability to provide parameterisation at will, i.e. you should be able to choose to provide it or not to. It does not mean that the parameterisability as a feature is optional to implement.\n### V0: Basic: Function and Reverse Function\n* The **function**, _optionally_ parameterisable.\n* The **reverse function**, _optionally_ parameterisable.\n### V1: Core: Hailstone and Treegraph, parameterisable and accepting arbitrary integers.\n* The **function**, _optionally_ parameterisable, accepts arbitrary integers.\n* The **reverse function**, _optionally_ parameterisable, accepts arbitrary integers.\n* **Hailstone sequences**, with _optional_ max stopping time, parameterisability, \"stopping mode\" (_total stop_ or _stop_), and inclusion of verbose control sequence flags to describe the output.\n* **Stopping time**, with _optional_ max stopping time, parameterisability, \"stopping mode\" (_total stop_ or _stop_).\n* **Tree graphs** (_hailstone equivalent_ using the reverse function), with _optional_ parameterisability, and **not optional** \"maximum orbit\".\n### V2:?\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskenvy%2Fcollatz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskenvy%2Fcollatz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskenvy%2Fcollatz/lists"}