
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
p.toString()
p.add(Polynomial.parse([1, 2, 3]))
p.mul(5)
p.evaluate(0)
p.evaluate(1)
p.evaluate(2)
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()
const p2 = Polynomial.parse([new Decimal(3), new Decimal(2), new Decimal(1)], decimalNumberOps(Decimal))
p2.toString()
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()
polys.get('meat').toString()
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>
</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");