https://github.com/blajanclaudiu/treated

https://github.com/blajanclaudiu/treated

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.7%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: blajanclaudiu
  • License: mit
  • Language: TypeScript
  • Default Branch: main
  • Size: 666 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 2
  • Releases: 0
Created about 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme Contributing License

README.md

algebrite header

npm version

Algebrite is a Javascript (Typescript) library for symbolic mathematics designed to be comprehensible and easily extensible.

```js var Algebrite = require('algebrite')

Algebrite.run('x + x') // => "2 x"

Algebrite.factor('10!').toString() // => "2^8 3^4 5^2 7"

Algebrite.eval('integral(x^2)').toString() // => "1/3 x^3"

// composing... Algebrite.integral(Algebrite.eval('x')).toString() // => "1/2 x^2" ```

Features

Algebrite 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!

Examples and manual

Please refer to http://algebrite.org/

All 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.

The cons objects have a toString method which converts it into a pretty-print notation.

How to build

For a build to run tests:

  1. make sure npm is installed, then:
  2. npm install
  3. bazelisk build algebrite

(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:

bazelisk clean; rm -rf ./dist/*

The so called "npm build" does a build for npm and browser:

  1. make sure npm is installed, then:
  2. npm install (if you didn't run this already)
  3. bazelisk build npm
  4. open index.html

How to test

For full tests:

bazelisk test :all

or, if caches get in the way:

bazelisk test :all --cache_test_results=no

Contribute

please take a look at the contributing file.

References

Algebrite starts as an adaptation of the EigenMath CAS by George Weigt. Also you might want to check another fork of EigenMath: SMIB by Philippe Billet.

Another CAS of similar nature is SymPy made in Python.

Three other Javascript CAS are

  • javascript-cas by Anthony Foster supporting "differentiation, complex numbers, sums, vectors (dot products, cross products, gradient/curl etc)"
  • Coffeequate by Matthew Alger supporting "quadratic and linear equations, simplification of most algebraic expressions, uncertainties propagation, substitutions, variables, constants, and symbolic constants".
  • Algebra.js by Nicole White which among other things can build and solve equations via a "chainable" API.

Owner

  • Login: blajanclaudiu
  • Kind: user

GitHub Events

Total
  • Issues event: 1
  • Watch event: 1
  • Pull request event: 1
  • Create event: 3
Last Year
  • Issues event: 1
  • Watch event: 1
  • Pull request event: 1
  • Create event: 3

Dependencies

package-lock.json npm
  • @bazel/bazelisk 1.10.1 development
  • @bazel/buildifier 4.2.4 development
  • @bazel/esbuild 4.4.6 development
  • @bazel/typescript 4.4.6 development
  • @bazel/worker 4.4.6 development
  • @protobufjs/aspromise 1.1.2 development
  • @protobufjs/base64 1.1.2 development
  • @protobufjs/codegen 2.0.4 development
  • @protobufjs/eventemitter 1.1.0 development
  • @protobufjs/fetch 1.1.0 development
  • @protobufjs/float 1.0.2 development
  • @protobufjs/inquire 1.1.0 development
  • @protobufjs/path 1.1.2 development
  • @protobufjs/pool 1.1.0 development
  • @protobufjs/utf8 1.1.0 development
  • @types/long 4.0.1 development
  • @types/node 10.17.60 development
  • buffer-from 1.1.2 development
  • google-protobuf 3.19.1 development
  • long 4.0.0 development
  • protobufjs 6.8.8 development
  • semver 5.6.0 development
  • source-map 0.6.1 development
  • source-map-support 0.5.9 development
  • tslib 1.14.1 development
  • tsutils 3.21.0 development
  • typescript 3.9.10 development
  • @types/node 14.18.0
  • big-integer 1.6.51
package.json npm
  • @bazel/bazelisk latest development
  • @bazel/buildifier latest development
  • @bazel/esbuild ^4.4.6 development
  • @bazel/typescript 4.4.6 development
  • typescript ^3.9.6 development
  • @types/node ^14.0.14
  • big-integer ^1.6.32