npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

math-helper-functions

v4.0.0

Published

Helper with misc. math functions such as sums, averages, max, min, etc

Readme

math-helper-functions

Installation

Using npm, npm i math-helper-functions.

Using yarn, yarn add math-helper-functions.

Usage

Using import

import { calcSum } from 'math-helper-functions';

const input = [
  { item: 'bookA', count: 3 },
  { item: 'bookB', count: 4 },
];

const totalBooks = calcSum(input, 'count'); // totalBooks is 7

In a CommonJS environment

const { calcDomain } = require('math-helper-functions');

const input = [
  { item: 'bookA', count: 3 },
  { item: 'bookB', count: 10 },
  { item: 'bookC', count: 1 },
];

const domain = calcDomain(input, 'count'); // domain is [1, 10]

API

Interfaces

IBucket

Defined in: distributions.ts:22

Properties

| Property | Type | Defined in | | ---------------------------- | ------------------------------ | --------------------------------------------------------------------------------------------------------------------- | | from | number | distributions.ts:24 | | inside | (val: number) => boolean | distributions.ts:26 | | label | string | distributions.ts:23 | | to | number | distributions.ts:25 |


IDistribution

Defined in: distributions.ts:9

Properties

| Property | Type | Defined in | | ---------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------------- | | data | number[] | distributions.ts:11 | | labels | string[] | distributions.ts:10 |


IDistributionArrayItem

Defined in: distributions.ts:14

Properties

| Property | Type | Defined in | | ------------------------------------ | -------- | --------------------------------------------------------------------------------------------------------------------- | | count | number | distributions.ts:16 | | from | number | distributions.ts:18 | | label | string | distributions.ts:15 | | percentage | number | distributions.ts:17 | | to | number | distributions.ts:19 |


ISerieDistribution

Defined in: distributions.ts:29

Properties

| Property | Type | Defined in | | ------------------------------ | ---------- | --------------------------------------------------------------------------------------------------------------------- | | data | object[] | distributions.ts:31 | | labels | string[] | distributions.ts:30 |

Functions

calcBuckets()

function calcBuckets(
  array: number[],
  strict?: boolean,
  numOfBins?: number,
): IBucket[];

Defined in: distributions.ts:57

Calculate the buckets given a data array and an amount

Parameters

| Parameter | Type | Default value | Description | | ------------ | ---------- | ------------- | ------------------------------------ | | array | number[] | undefined | The data array | | strict? | boolean | false | Whether to use real or pretty domain | | numOfBins? | number | undefined | Amount of desired buckets |

Returns

IBucket[]

The buckets


calcDiff()

function calcDiff(array: any[], property?: string): number;

Defined in: domain.ts:47

Gets the absolute difference between the max and min value in an array

Parameters

| Parameter | Type | Description | | ----------- | -------- | ------------------ | | array | any[] | Input array | | property? | string | Property to map by |

Returns

number

Absolute difference between the max and min of an array


calcDistribution()

function calcDistribution(
  array: number[],
  strict: boolean,
  numOfBins?: number,
): IDistribution;

Defined in: distributions.ts:103

Calculates the distribution of an arrays values

Parameters

| Parameter | Type | Default value | Description | | ------------ | ---------- | ------------- | --------------------- | | array | number[] | undefined | Input array | | strict | boolean | false | | | numOfBins? | number | undefined | Number of bins to use |

Returns

IDistribution

The distribution


calcDistributionAsArray()

function calcDistributionAsArray(
  array: number[],
  binsStrict?: boolean,
  numOfBins?: number,
): IDistributionArrayItem[];

Defined in: distributions.ts:194

Calculates the distribution of an arrays values and outputs an array

Parameters

| Parameter | Type | Default value | Description | | ------------- | ---------- | ------------- | ---------------------------------------------- | | array | number[] | undefined | Array to calc distribution of | | binsStrict? | boolean | false | If false, buckets may be rounded [floor, ceil] | | numOfBins? | number | undefined | Number of bins to use |

Returns

IDistributionArrayItem[]

The distribution as an array of objects


calcDistributionWithSeries()

function calcDistributionWithSeries(
  buckets: IBucket[],
  dataGrouped: Record<string, unknown[]>,
  distributionProp: string,
): ISerieDistribution;

Defined in: distributions.ts:136

Calculates the distribution of an array of grouped objects

Parameters

| Parameter | Type | Description | | ------------------ | --------------------------------- | ----------- | | buckets | IBucket[] | | | dataGrouped | Record<string, unknown[]> | | | distributionProp | string | |

Returns

ISerieDistribution

The distribution with labels and data


calcDomain()

function calcDomain(
  array: any[],
  property?: string,
): [number, number] | [any, any];

Defined in: domain.ts:33

Gets the [min, max] value in an array

Parameters

| Parameter | Type | Description | | ----------- | -------- | ------------------ | | array | any[] | Input array | | property? | string | Property to map by |

Returns

[number, number] | [any, any]

The domain


calcHistogram()

function calcHistogram(
  array: any[],
  numberOfBins?: number,
  property?: string,
): number[];

Defined in: distributions.ts:247

Calculates a histogram from array values

Parameters

| Parameter | Type | Default value | Description | | --------------- | -------- | ------------- | --------------------- | | array | any[] | undefined | Input array | | numberOfBins? | number | 4 | Number of bins to use | | property? | string | undefined | Property to map by |

Returns

number[]

The histogram


calcMax()

function calcMax(array: any[], property?: string): number;

Defined in: domain.ts:11

Gets the max value in an array

Parameters

| Parameter | Type | Description | | ----------- | -------- | ------------------ | | array | any[] | Input array | | property? | string | Property to map by |

Returns

number

The maximum value in the array


calcMean()

function calcMean(array: any[], property?: string): undefined | number;

Defined in: averages.ts:102

Gets the mean value for an array

Parameters

| Parameter | Type | Description | | ----------- | -------- | ------------------ | | array | any[] | Input array | | property? | string | Property to map by |

Returns

undefined | number

The mean value


calcMedian()

function calcMedian(array: any[], property?: string): undefined | number;

Defined in: averages.ts:13

Gets an array median

Parameters

| Parameter | Type | Description | | ----------- | -------- | ---------------------- | | array | any[] | Input array | | property? | string | The property to map by |

Returns

undefined | number

The resulting median


calcMin()

function calcMin(array: any[], property?: string): number;

Defined in: domain.ts:22

Gets the min value in an array

Parameters

| Parameter | Type | Description | | ----------- | -------- | --------------- | | array | any[] | Input array | | property? | string | Property to map |

Returns

number

The minimum value in the array


calcPercent()

function calcPercent(toCalc: number, total: number): number;

Defined in: percentages.ts:24

Calculates the percentage of a value, given a total

Parameters

| Parameter | Type | Description | | --------- | -------- | --------------------------- | | toCalc | number | Number to get percentage of | | total | number | Total |

Returns

number

Percentage of the total


calcQuartiles()

function calcQuartiles(
  array: any[],
  property?: string,
): [number, number, number];

Defined in: distributions.ts:224

Gets the quartiles of an array

Parameters

| Parameter | Type | Description | | ----------- | -------- | ------------------ | | array | any[] | Input array | | property? | string | Property to map by |

Returns

[number, number, number]

The quartiles


calcStdDeviation()

function calcStdDeviation<T>(array: T[], property?: string): undefined | number;

Defined in: averages.ts:162

Calculates the standard deviation in an array of numbers

Type Parameters

| Type Parameter | Description | | -------------- | ----------- | | T | |

Parameters

| Parameter | Type | Description | | ----------- | -------- | ------------------------- | | array | T[] | Input array | | property? | string | Property to use for value |

Returns

undefined | number

The standard deviation


calcSum()

function calcSum(array: any[], property?: string): number;

Defined in: operations.ts:11

Gets the sum of the values in an array

Parameters

| Parameter | Type | Description | | ----------- | -------- | ------------------ | | array | any[] | Input array | | property? | string | Property to map by |

Returns

number

The sum


calcVariance()

function calcVariance<T>(array: T[], property?: string): undefined | number;

Defined in: averages.ts:147

Calculates the variance in an array of numbers

Type Parameters

| Type Parameter | Description | | -------------- | ----------- | | T | |

Parameters

| Parameter | Type | Description | | ----------- | -------- | ------------------------- | | array | T[] | Input array | | property? | string | Property to use for value |

Returns

undefined | number

The variance


calcWeightedMean()

function calcWeightedMean(
  array: any[],
  valueProperty: string,
  weightProperty: string,
): number;

Defined in: averages.ts:114

Gets the weighted mean for an array

Parameters

| Parameter | Type | Description | | ---------------- | -------- | -------------------------- | | array | any[] | Input array | | valueProperty | string | Property to use for value | | weightProperty | string | Property to use for weight |

Returns

number

The weighted mean


calcWeightedMedian()

function calcWeightedMedian(
  array: any[],
  valueProperty: string,
  weightProperty: string,
): number;

Defined in: averages.ts:44

Gets an array weighted median

Parameters

| Parameter | Type | Description | | ---------------- | -------- | ----------------------------- | | array | any[] | Input array | | valueProperty | string | The property to use as value | | weightProperty | string | The property to use as weight |

Returns

number

The resulting median


getMinMaxFromBucket()

function getMinMaxFromBucket(bucketLabel: string): number[];

Defined in: distributions.ts:122

Gets the min and max values for a calcDistribution bucket

Parameters

| Parameter | Type | Description | | ------------- | -------- | ---------------- | | bucketLabel | string | The bucket label |

Returns

number[]

[min, max]


getPercentile()

function getPercentile(
  array: (null | number)[],
  percentile: number,
): undefined | number;

Defined in: percentiles.ts:10

Gets the percentile of an array of values

Parameters

| Parameter | Type | Description | | ------------ | ---------------------- | --------------------------- | | array | (null | number)[] | Array to find percentile of | | percentile | number | Amount between 0 and 1 |

Returns

undefined | number

Percentile


getUntilPercentageThreshold()

function getUntilPercentageThreshold<T>(
  items: T[],
  accessor: (d: T) => number,
  percentageThreshold: number,
): T[];

Defined in: arrays.ts:57

Gets the top % acc items by an accessor

Type Parameters

| Type Parameter | | -------------- | | T |

Parameters

| Parameter | Type | Description | | --------------------- | ---------------------- | ----------------------------------------- | | items | T[] | Items to filter | | accessor | (d: T) => number | The accessor to get a value to accumulate | | percentageThreshold | number | The percentage to stop in (default 80) |

Returns

T[]


getUntilValueThreshold()

function getUntilValueThreshold<T>(
  items: T[],
  accessor: (d: T) => number,
  threshold: number,
): T[];

Defined in: arrays.ts:28

Gets the top items until a cumulative value threshold

Type Parameters

| Type Parameter | | -------------- | | T |

Parameters

| Parameter | Type | Description | | ----------- | ---------------------- | ----------------------------------------- | | items | T[] | Items to filter | | accessor | (d: T) => number | The accessor to get a value to accumulate | | threshold | number | The absolute threshold to stop in |

Returns

T[]


ruleOfThree()

function ruleOfThree(ifThis: number, isThis: number, thenThat: number): number;

Defined in: percentages.ts:9

Performs a simple rule of three

Parameters

| Parameter | Type | Description | | ---------- | -------- | ------------ | | ifThis | number | First param | | isThis | number | First result | | thenThat | number | Second param |

Returns

number

Second result