# findroots

> A TypeScript implementation of High-Performance Polynomial Root Finding for Graphics (Yuksel 2022)

Latest version **1.0.3** (published 2022-07-14) · MIT license · 0 weekly downloads

## Install

```sh
npm install findroots
pnpm add findroots
yarn add findroots
bun add findroots
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.3 |
| Published | 2022-07-14 |
| First published | 2022-07-14 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Peter Boyer |
| Maintainers | pb |
| Keywords | polynomial, roots, root-finding, math |

## Links

- npm: https://www.npmjs.com/package/findroots
- Repository: https://github.com/pboyer/findRoots
- Issues: https://github.com/pboyer/findRoots/issues
- npm.io page: https://npm.io/package/findroots

## Dependencies (2)

- [typescript](https://npm.io/package/typescript.md) ^4.7.4
- [@types/node](https://npm.io/package/@types/node.md) ^18.0.4

## Alternatives

- [random-seedable](https://npm.io/package/random-seedable.md) — 27.9K weekly downloads
- [n2words](https://npm.io/package/n2words.md) — 22.2K weekly downloads
- [@stdlib/math-base-special-factorialln](https://npm.io/package/@stdlib/math-base-special-factorialln.md) — 5.7K weekly downloads
- [@stdlib/math-base-special-abs2](https://npm.io/package/@stdlib/math-base-special-abs2.md) — 1.7K weekly downloads
- [commons-math-interpolation](https://npm.io/package/commons-math-interpolation.md) — 1.4K weekly downloads

## Recent versions

- 1.0.3 (latest) — 2022-07-14

## README

## Nomial

Nomial is a TypeScript implementation of Cem Yuksel's extremely fast, robust, and simple root finding algorithm presented in the paper "High-Performance Polynomial Root Finding for Graphics" (2022). It can be used to find real roots of polynomials of degree 10 and higher. It has no dependencies.

## Installation

> npm install nomial

or using yarn

> yarn add nomial


## Usage

### Importing

```typescript
// as a ES module
import findRoots from 'nomial';

// as a CommonJS module
const findRoots = require('nomial');
```

### Usage

```typescript
// The coefficients are stored in order of exponent power so this polynomial corresponds to
// -7412 - 1505x - 20x^2 - 10x^3 + x^5
const roots = findRoots([-7412, -1505, -20, -10, 0, 1]);
```

There are optional arguments to specify the start and end of the search interval and epsilon used to terminate root finding.

```typescript
const startSearchInterval = -100;
const endSearchInterval = 100;
const epsilon = 1e-6;

const roots = findRoots(coefficients, startSearchInterval, endSearchInterval, epsilon);
```


## Paper

Cem Yuksel. 2022. High-Performance Polynomial Root Finding for Graphics. Proc. ACM Comput. Graph. Interact. Tech. 5, 3, Article 7 (July 2022), 15 pages.

---
_Source: https://npm.io/package/findroots · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
