# frost-fft

> Fast Fourier Transform (FFT) implementation in TypeScript using the Cooley–Tukey algorithm for power-of-2 input lengths

Latest version **0.3.1** (published 2026-04-06) · MIT license · 0 weekly downloads

## Install

```sh
npm install frost-fft
pnpm add frost-fft
yarn add frost-fft
bun add frost-fft
```

## Health

**Score 60/100 (C)** — status: active.

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

Warnings: low downloads; pre 1.0.

## Facts

| | |
|---|---|
| Version | 0.3.1 |
| Published | 2026-04-06 |
| First published | 2023-12-08 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 48.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Lumi Pakkanen |
| Maintainers | frostburn |
| Keywords | FFT, Fourier, Fast Fourier Transformation, Typescript |

## Links

- npm: https://www.npmjs.com/package/frost-fft
- Homepage: https://github.com/frostburn/frost-fft#readme
- Issues: https://github.com/frostburn/frost-fft/issues
- Funding: https://github.com/sponsors/frostburn
- npm.io page: https://npm.io/package/frost-fft

## Alternatives

- [@openai/codex-sdk](https://npm.io/package/@openai/codex-sdk.md) — 731.4K weekly downloads
- [babel-plugin-transform-react-jsx](https://npm.io/package/babel-plugin-transform-react-jsx.md) — 565.0K weekly downloads
- [babel-helper-remove-or-void](https://npm.io/package/babel-helper-remove-or-void.md) — 508.5K weekly downloads
- [@pnpm/store-controller-types](https://npm.io/package/@pnpm/store-controller-types.md) — 186.9K weekly downloads
- [react-native-signature-canvas](https://npm.io/package/react-native-signature-canvas.md) — 155.6K weekly downloads

## Recent versions

- 0.3.1 (latest) — 2026-04-06
- 0.3.0 — 2026-03-25
- 0.2.2 — 2024-12-08
- 0.2.1 — 2024-06-01
- 0.2.0 — 2024-05-23
- 0.1.0 — 2023-12-08
- 0.0.4 — 2023-12-08

## README

# frost-fft
The world didn't need yet another Fast Fourier Transform (FFT) implementation, but here we are...

```typescript
import {fft, ifft, ifftReal} from 'frost-fft';

const signal = new Float64Array(256).map(Math.random);

// The imaginary argument is optional, zeros assumed by default (faster).
const [realCoefs, imagCoefs] = fft(
  signal,
  signal.map(() => 0)
);

// There's no normalization. These are 256 times too large.
const [realSignalScaled, imagSignalScaled] = ifft(realCoefs, imagCoefs);

// The original signal reconstructed (with some floating point noise).
const realSignal = ifftReal(realCoefs, imagCoefs).map(s => s / 256);
```
## Supported imports
Use only the package root import:

```typescript
import {fft, ifft, ifftReal} from 'frost-fft';
```

Public export path(s):
- `frost-fft`

Do not import from internal build paths such as `frost-fft/dist/*`; those are not part of the public API contract and may change.


## Documentation ##
Documentation is hosted at the project [Github pages](https://frostburn.github.io/frost-fft).

To generate documentation locally run:
```bash
npm run doc
```

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