{"id":16580180,"url":"https://github.com/davidedc/algebrite","last_synced_at":"2025-05-15T11:04:15.152Z","repository":{"id":37431773,"uuid":"54584318","full_name":"davidedc/Algebrite","owner":"davidedc","description":"Computer Algebra System in Javascript (Typescript)","archived":false,"fork":false,"pushed_at":"2023-06-23T20:38:54.000Z","size":3720,"stargazers_count":976,"open_issues_count":88,"forks_count":60,"subscribers_count":36,"default_branch":"master","last_synced_at":"2025-04-14T16:58:40.076Z","etag":null,"topics":["algebra","algebraic","algebraic-computation","cas","coffeescript","computer-algebra","computer-algebra-system","javascript","javascript-cas","math","symbolic","symbolic-computation","symbolic-manipulation"],"latest_commit_sha":null,"homepage":"http://algebrite.org","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davidedc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-03-23T18:39:26.000Z","updated_at":"2025-04-06T19:23:14.000Z","dependencies_parsed_at":"2024-01-14T19:13:35.480Z","dependency_job_id":"689c09fb-06c6-4196-88c6-2c10ac603436","html_url":"https://github.com/davidedc/Algebrite","commit_stats":{"total_commits":913,"total_committers":9,"mean_commits":"101.44444444444444","dds":0.07447973713033951,"last_synced_commit":"4a91ef420f189d5157e6d313429bedabdf5a5a24"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidedc%2FAlgebrite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidedc%2FAlgebrite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidedc%2FAlgebrite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidedc%2FAlgebrite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidedc","download_url":"https://codeload.github.com/davidedc/Algebrite/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254328385,"owners_count":22052632,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["algebra","algebraic","algebraic-computation","cas","coffeescript","computer-algebra","computer-algebra-system","javascript","javascript-cas","math","symbolic","symbolic-computation","symbolic-manipulation"],"created_at":"2024-10-11T22:24:06.125Z","updated_at":"2025-05-15T11:04:15.097Z","avatar_url":"https://github.com/davidedc.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://raw.githubusercontent.com/davidedc/Algebrite/941de5515ec57baee3f5d2bacbd4db2ee382c461/readme-images/algebrite-logo-for-readme.png\" width=\"150px\" alt=\"algebrite header\"/\u003e\n\n[![npm version](https://badge.fury.io/js/algebrite.svg)](https://badge.fury.io/js/algebrite)\n\nAlgebrite is a Javascript (Typescript) library for symbolic mathematics designed to be comprehensible and easily extensible.\n\n\n```js\nvar Algebrite = require('algebrite')\n\nAlgebrite.run('x + x') // =\u003e \"2 x\"\n\nAlgebrite.factor('10!').toString() // =\u003e \"2^8 3^4 5^2 7\"\n\nAlgebrite.eval('integral(x^2)').toString() // =\u003e \"1/3 x^3\"\n\n// composing...\nAlgebrite.integral(Algebrite.eval('x')).toString() // =\u003e \"1/2 x^2\"\n```\n\n# Features\n\nAlgebrite supports: arbitrary-precision arithmetic, complex quantities, simplification, expansion , substitution, symbolic and numeric roots, units of measurement, matrices, derivatives and gradients, tensors, integrals, multi-integrals, computing integrals and much more!\n\n# Examples and manual\n\nPlease refer to [http://algebrite.org/](http://algebrite.org/)\n\nAll the built-in methods in Algebrite are exposed through a javascript interface. Strings are automatically parsed as expressions, numbers are converted into the appropriate representation, and the internal cons objects are returned. \n\nThe cons objects have a `toString` method which converts it into a pretty-print notation.\n\n# How to build\n\nFor a build to run tests:\n\n1. make sure npm is installed, then:\n2. ```npm install```\n3. ```bazelisk build algebrite```\n\n(```bazelisk``` is the launcher for the ```bazel``` build system). The bazel build system tends to be smart and cache things. You can do a thorough clean by:\n\n```bazelisk clean; rm -rf ./dist/*```\n\nThe so called \"npm build\" does a build for npm and browser:\n\n1. make sure npm is installed, then:\n2. ```npm install``` (if you didn't run this already)\n3. ```bazelisk build npm```\n4. open ```index.html```\n\n# How to test\n\nFor full tests:\n\n```bazelisk test :all```\n\nor, if caches get in the way:\n\n```bazelisk test :all --cache_test_results=no```\n\n\n# Contribute\nplease take a look at the [contributing](https://github.com/davidedc/Algebrite/blob/master/contributing.md) file.\n\n# References\n\nAlgebrite starts as an adaptation of [the EigenMath CAS by George Weigt](http://eigenmath.sourceforge.net/Eigenmath.pdf). Also you might want to check another fork of EigenMath: [SMIB by Philippe Billet](http://smib.sourceforge.net/).\n\nAnother CAS of similar nature is [SymPy](http://www.sympy.org/en/index.html) made in Python.\n\nThree other Javascript CAS are\n\n* [javascript-cas by Anthony Foster](https://github.com/aantthony/javascript-cas) supporting \"differentiation, complex numbers, sums, vectors (dot products, cross products, gradient/curl etc)\"\n* [Coffeequate by Matthew Alger](http://coffeequate.readthedocs.org/) supporting \"quadratic and linear equations, simplification of most algebraic expressions, uncertainties propagation, substitutions, variables, constants, and symbolic constants\".\n* [Algebra.js by Nicole White](http://algebra.js.org) which among other things can build and solve equations via a \"chainable\" API.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidedc%2Falgebrite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidedc%2Falgebrite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidedc%2Falgebrite/lists"}