Coder Social home page Coder Social logo

trend-steps's Introduction

trend-steps

reduces math series to a square curve of its trend steps

Reduce a math series to a square curve like

+3      _              |
+2     | |             |
+1    _| |            _|
 0 _ |   |__       __|
-1          |_    |
-2            |_  |
-3              |_|

Use it as an array reducer.

const toTrendSteps = require('trend-steps')

const input = [
  1.2, 1.4, 1.5, 1.6, 1.5, 1.4, 1.4, 1.2
]

const output = input.reduce(toTrendSteps(), [])

In this case output will be

[
  { value: 1.2, level: 0 },
  { value: 1.4, level: 2 },
  { value: 1.5, level: 3 },
  { value: 1.6, level: 4 },
  { value: 1.5, level: -1 },
  { value: 1.4, level: -2 },
  { value: 1.4, level: 0 },
  { value: 1.2, level: -2 }
]

Note that the minimum delta between two consecutive entries is 0.1, and it is used as unit. In fact starting from first to second element, the level is increased by 2 units.

It accepts an options parameter, which defaults to { tolerance: 0.001 }, where tolerance is the criteria used to compare floats to check if they are equal. For instance, to decrease tolerance, do

const output = input.reduce(toTrendSteps({ tolerance: 0.0001 }), [])

trend-steps's People

Contributors

fibo avatar

Watchers

 avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.