Options
All
  • Public
  • Public/Protected
  • All
Menu

@thi.ng/math

math

npm versionnpm downloads Twitter Follow

This project is part of the @thi.ng/umbrella monorepo.

For the Clojure version, please visit: thi.ng/math-clj

About

Assorted common math functions & utilities.

Partially ported from Clojure version thi.ng/math-clj, c.thi.ng and thi.ng/vexed-generation.

Status

STABLE - used in production

Search or submit any issues for this package

Breaking changes in v4.0.0

The introduction of several standard libc math functions causes a behavior change of the existing fmod() function...

  • rename fmod() => mod() to align w/ GLSL counterpart
  • add new fmod() w/ standard libc behavior (same as JS % op)
  • add remainder() w/ standard libc behavior

Installation

yarn add @thi.ng/math
// ES module
<script type="module" src="https://unpkg.com/@thi.ng/math?module" crossorigin></script>

// UMD
<script src="https://unpkg.com/@thi.ng/math/lib/index.umd.js" crossorigin></script>

Package sizes (gzipped, pre-treeshake): ESM: 3.94 KB / CJS: 4.55 KB / UMD: 3.75 KB

Dependencies

Usage examples

Several demos in this repo's /examples directory are using this package.

A selection:

ScreenshotDescriptionLive demoSource
Basic crypto-currency candle chart with multiple moving averages plotsDemoSource
2D Bezier curve-guided particle systemDemoSource
Animated sine plasma effect visualized using contour linesDemoSource
Worker based, interactive Mandelbrot visualizationDemoSource
Unison wavetable synth with waveform editorDemoSource
2D scenegraph & shape pickingDemoSource
2D scenegraph & image map based geometry manipulationDemoSource
Simplistic SVG bar chart componentDemoSource

API

Generated API docs

TODO

Authors

Maintainer

Contributors

If this project contributes to an academic publication, please cite it as:

@misc{thing-math,
  title = "@thi.ng/math",
  author = "Karsten Schmidt and others",
  note = "https://thi.ng/math",
  year = 2013
}

License

© 2013 - 2021 Karsten Schmidt // Apache Software License 2.0

Generated using TypeDoc