@erosson/polynomial
TypeScript icon, indicating that this package has built-in type declarations

5.0.4 • Public • Published

npm version cdn usage

Polynomials for Typescript. Also, implements Swarm Simulator-style polynomial unit production.

Basic polynomials:

import {Polynomial} from "@erosson/polynomial"

const p = Polynomial.parse([3,2,1])
p  // [3, 2, 1]
p.toString()  // "t^2 + 2 t + 3"

p.add(Polynomial.parse([1, 2, 3]))  // [4, 4, 4]
p.mul(5)  // [15, 10, 5]
p.evaluate(0)  // 3
p.evaluate(1)  // 6
p.evaluate(2)  // 11

Other number formats are supported, like Decimal.js:

import {Polynomial, decimalNumberOps, nativeNumberOps} from "@erosson/polynomial"
import Decimal from "decimal.js"

const p1 = Polynomial.parse([3, 2, 1], nativeNumberOps)
p1.toString()  // "t^2 + 2 t + 3"

const p2 = Polynomial.parse([new Decimal(3), new Decimal(2), new Decimal(1)], decimalNumberOps(Decimal))
p2.toString()  // "t^2 + 2 t + 3"

Construct polynomials describing a unit production graph, like Swarm Simulator:

import {Production} from "@erosson/polynomial"

const vertices = new Map([['drone', 3], ['meat', 2]])
const edges = [{from: 'drone', to: 'meat', each: 5}]
const polys = Production.simpleGraphToPolynomials(vertices, edges)
polys.get('drone').toString()  // "3"
polys.get('meat').toString()  // "2 + 15 t"

Usage

In the browser, pick an import style:

<script type="module">
    import {Polynomial} from "https://esm.run/@erosson/polynomial@latest"
    ...
</script>
<script src="https://cdn.jsdelivr.net/npm/@erosson/polynomial@latest"></script>
<script>
    // it's now at `Polynomial` or `window.Polynomial`
</script>

In Node, to install via NPM:

npm install --save https://github.com/erosson/polynomial

In Node, to install via Yarn:

yarn add https://github.com/erosson/polynomial

Once installed, pick an import style:

import {Polynomial} from "@erosson/polynomial"
const {Polynomial} = require("@erosson/polynomial");

Readme

Keywords

none

Package Sidebar

Install

npm i @erosson/polynomial

Weekly Downloads

0

Version

5.0.4

License

MIT

Unpacked Size

956 kB

Total Files

38

Last publish

Collaborators

  • erosson