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 🙏

© 2024 – Pkg Stats / Ryan Hefner

@compute.ts/math

v2.1.0

Published

Provide math operators for the computeTS package

Downloads

167

Readme

Presentation

The engine is based on incremental computation algorithms. When a calculation is submitted to the engine, all the computed values are memorized. So, if you change some variable and query an evaluation, the engine is able to compute the result very fast because it recomputes only what has changed.

compute.ts

Libraries

The project provides several libraries that each comes with dozens of operators. Please note the cross-compatibility of the libraries.

Imports

Typescript

import {/* required operators */} from '@compute.ts/math';

Javascript

const {/* required operators */} = require('@compute.ts/math');

Operators

sum

sum(x[number] | number[]) ➜ ynumber

The sum operator allows you to create a number expression which evals to the lowest given expressions

import {number} from "@compute.ts/number"  
import {sum} from "@compute.ts/math"
import {array} from "@compute.ts/array"

const x0 = number();  
const x1 = number();  
// ...  
const xn = number();  
const arr = array.ofNumber([x0, x1, ..., xn])

const y = sum([x0, x1, ..., xn]) | sum(arr);
const value = y.eval();

times

times(x[number] | number[]) ➜ ynumber

The times operator allows you to create a number expression which evals to the multiplication of the arrray values

import {number} from "@compute.ts/number"  
import {times} from "@compute.ts/math"
import {array} from "@compute.ts/array"


const x0 = number();  
const x1 = number();  
// ...  
const xn = number();  
const arr = array.ofNumber([x0, x1, ..., xn])

const y = times([x0, x1, ..., xn]) | times(arr);
const value = y.eval();

min

min(x[number] | number[]) ➜ ynumber

The min operator allows you to create a number expression which evals to the lowest given expressions

import {number} from "@compute.ts/number"  
import {min} from "@compute.ts/math"
import {array} from "@compute.ts/array"

const x0 = number();  
const x1 = number();  
// ...  
const xn = number();  
const arr = array.ofNumber([x0, x1, ..., xn])

const y = min([x0, x1, ..., xn]) | min(arr);
const value = y.eval();

argMin

argMin(x[number] | number[]) ➜ ynumber

The argMin operator allows you to create a number expression which evals to the index of the lowest given expressions

import {number} from "@compute.ts/number"  
import {argMin} from "@compute.ts/math"
import {array} from "@compute.ts/array"

const x0 = number();  
const x1 = number();  
// ...  
const xn = number();  
const arr = array.ofNumber([x0, x1, ..., xn])

const y = argMin([x0, x1, ..., xn]) | argMin(arr);
const value = y.eval();

max

max(x[number] | number[]) ➜ ynumber

The max operator allows you to create a number expression which evals to the highest given expressions

import {number} from "@compute.ts/number"  
import {max} from "@compute.ts/math"
import {array} from "@compute.ts/array"

const x0 = number();  
const x1 = number();  
// ...  
const xn = number();  
const arr = array.ofNumber([x0, x1, ..., xn])

const y = max([x0, x1, ..., xn]) | max(arr);
const value = y.eval();

argMax

argMax(x[number] | number[]) ➜ ynumber

The argMax operator allows you to create a number expression which evals to the index of the highest given expressions

import {number} from "@compute.ts/number"  
import {argMax} from "@compute.ts/math"
import {array} from "@compute.ts/array"

const x0 = number();  
const x1 = number();  
// ...  
const xn = number();  
const arr = array.ofNumber([x0, x1, ..., xn])

const y = argMax([x0, x1, ..., xn]) | argMax(arr);
const value = y.eval();

mean

mean(x[number] | number[]) ➜ ynumber

The mean operator allows you to create a number expression which evals to the mean value of the given expressions

import {number} from "@compute.ts/number"  
import {mean} from "@compute.ts/math"
import {array} from "@compute.ts/array"

const x0 = number();  
const x1 = number();  
// ...  
const xn = number();  
const arr = array.ofNumber([x0, x1, ..., xn])

const y = mean([x0, x1, ..., xn]) | mean(arr);
const value = y.eval();

median

median(x[number] | number[]) ➜ ynumber

The median operator allows you to create a number expression which evals to median value of the given expressions

import {number} from "@compute.ts/number"  
import {median} from "@compute.ts/math"
import {array} from "@compute.ts/array"

const x0 = number();  
const x1 = number();  
// ...  
const xn = number();  
const arr = array.ofNumber([x0, x1, ..., xn])

const y = median([x0, x1, ..., xn]) | median(arr);
const value = y.eval();

pow

pow(xnumber, ynumber) ➜ znumber

The pow operator allows you to create a number expression which evals to x power y

import {number} from "@compute.ts/number"  
import {pow} from "@compute.ts/math"

const x = number();  
const y = number();  
const z = pow(x, y);

const value = z.eval();

pi

pi ➜ xnumber

The pi operator allows you to create a number expression which evals to pi (≈1,141593)

import {pi} from "@compute.ts/math"

const x = pi;

x.affect(2);

e

e ➜ xnumber

The e operator allows you to create a number expression which evals to e (≈2,71828)

import {e} from "@compute.ts/math"

const x = e;  

x.affect(2);

sqrt

sqrt(xnumber) ➜ ynumber

The sqrt operator allows you to create a number expression which evals to the square root of the given expression

import {number} from "@compute.ts/number"  
import {sqrt} from "@compute.ts/math"

const x = number();  
const y = sqrt(x);

const value = y.eval();

x2

x2(xnumber) ➜ ynumber

The x2 operator allows you to create a number expression which evals to the square of x

import {number} from "@compute.ts/number"  
import {x2} from "@compute.ts/math"

const x = number();  
const y = x2(x);

const value = y.eval();

x3

x3(xnumber) ➜ ynumber

The x3 operator allows you to create a number expression which evals to the cube of x

import {number} from "@compute.ts/number"  
import {x3} from "@compute.ts/math"

const x = number();  
const y = x3(x);

const value = y.eval();

log2

log2(xnumber) ➜ ynumber

The log2 operator allows you to create a number expression which evals to the logarithm neperien of the given expression

import {number} from "@compute.ts/number"  
import {log2} from "@compute.ts/math"

const x = number();  
const y = log2(x);

const value = y.eval();

log10

log10(xnumber) ➜ ynumber

The log10 operator allows you to create a number expression which evals to the logarithm decimal of the given expression

import {number} from "@compute.ts/number"  
import {log10} from "@compute.ts/math"

const x = number();  
const y = log10(x);

const value = y.eval();

exp

exp(xnumber) ➜ ynumber

The exp operator allows you to create a number expression which evals to the exponential of the given expression

import {number} from "@compute.ts/number"  
import {exp} from "@compute.ts/math"

const x = number();  
const y = exp(x);

const value = y.eval();

cos

cos(xnumber) ➜ ynumber

The cos operator allows you to create a number expression which evals to the cosinus of the given expression

import {number} from "@compute.ts/number"  
import {cos} from "@compute.ts/math"

const x = number();  
const y = cos(x);

const value = y.eval();

sin

sin(xnumber) ➜ ynumber

The sin operator allows you to create a number expression which evals to the sinus of x

import {number} from "@compute.ts/number"  
import {sin} from "@compute.ts/math"

const x = number();  
const y = sin(x);

const value = y.eval();

tan

tan(xnumber) ➜ ynumber

The tan operator allows you to create a number expression which evals to the tangente of x

import {number} from "@compute.ts/number"  
import {tan} from "@compute.ts/math"

const x = number();  
const y = tan(x);

const value = y.eval();

cosH

cosH(xnumber) ➜ ynumber

The cosH operator allows you to create a number expression which evals to the hyperbolic cosinus of the given expression

import {number} from "@compute.ts/number"  
import {cosH} from "@compute.ts/math"

const x = number();  
const y = cosH(x);

const value = y.eval();

sinH

sinH(xnumber) ➜ ynumber

The sinH operator allows you to create a number expression which evals to the hyperbolic sinus of x

import {number} from "@compute.ts/number"  
import {sinH} from "@compute.ts/math"

const x = number();  
const y = sinH(x);

const value = y.eval();

tanH

tanH(xnumber) ➜ ynumber

The tanH operator allows you to create a number expression which evals to the hyperbolic tangente of x

import {number} from "@compute.ts/number"  
import {tanH} from "@compute.ts/math"

const x = number();  
const y = tanH(x);

const value = y.eval();

arcCos

arcCos(xnumber) ➜ ynumber

The arcCos operator allows you to create a number expression which evals to the arc cosinus of the given expression

import {number} from "@compute.ts/number"  
import {arcCos} from "@compute.ts/math"

const x = number();  
const y = arcCos(x);

const value = y.eval();

arcSin

arcSin(xnumber) ➜ ynumber

The arcSin operator allows you to create a number expression which evals to the arc sinus of the given expression

import {number} from "@compute.ts/number"  
import {arcSin} from "@compute.ts/math"

const x = number();  
const y = arcSin(x);

const value = y.eval();

arcTan

arcTan(xnumber) ➜ ynumber

The arcTan operator allows you to create a number expression which evals to the arc tangente of the given expression

import {number} from "@compute.ts/number"  
import {arcTan} from "@compute.ts/math"

const x = number();  
const y = arcTan(x);

const value = y.eval();

arcCosH

arcCosH(xnumber) ➜ ynumber

The arcCosH operator allows you to create a number expression which evals to the hyperbolic arc cosinus of the given expression

import {number} from "@compute.ts/number"  
import {arcCosH} from "@compute.ts/math"

const x = number();  
const y = arcCosH(x);

const value = y.eval();

arcSinH

arcSinH(xnumber) ➜ ynumber

The arcSinH operator allows you to create a number expression which evals to the hyperbolic arc sinus of the given expression

import {number} from "@compute.ts/number"  
import {arcSinH} from "@compute.ts/math"

const x = number();  
const y = arcSinH(x);

const value = y.eval();

arcTanH

arcTanH(xnumber) ➜ ynumber

The arcTanH operator allows you to create a number expression which evals to the hyperbolic arc tangente of the given expression

import {number} from "@compute.ts/number"  
import {arcTanH} from "@compute.ts/math"

const x = number();  
const y = arcTanH(x);

const value = y.eval();

trunc

trunc(xnumber) ➜ ynumber

The trunc operator allows you to create a number expression which evals to the truncature of x

import {number} from "@compute.ts/number"  
import {trunc} from "@compute.ts/math"

const x = number();  
const y = trunc(x);

const value = y.eval();

sign

sign(xnumber) ➜ ynumber

The sign operator allows you to create a number expression which evals to 1 if x is positive, -1 if x is negative

import {number} from "@compute.ts/number"  
import {sign} from "@compute.ts/math"

const x = number();  
const y = sign(x);

const value = y.eval();

inverse

inverse(xnumber) ➜ ynumber

The inverse operator allows you to create a number expression which evals to the inverse of the given expression

import {number} from "@compute.ts/number"  
import {inverse} from "@compute.ts/math"

const x = number();  
const y = inverse(x);

const value = y.eval();

floor

floor(xnumber) ➜ ynumber

The floor operator allows you to create a number expression which evals to the floor of the given expression

import {number} from "@compute.ts/number"  
import {floor} from "@compute.ts/math"

const x = number();  
const y = floor(x);

const value = y.eval();

ceil

ceil(xnumber) ➜ ynumber

The ceil operator allows you to create a number expression which evals to the ceil of the given expression

import {number} from "@compute.ts/number"  
import {ceil} from "@compute.ts/math"

const x = number();  
const y = ceil(x);

const value = y.eval();

gcd

gcd(xnumber, ynumber) ➜ znumber

The gcd operator allows you to create a number expression which evals to the greatest common divisor of the given expressions

import {number} from "@compute.ts/number"  
import {gcd} from "@compute.ts/math"

const x = number();  
const y = number();  
const z = gcd(x, y);

const value = z.eval();

About the author

I am a software developer with 4 years of project specializing in the development of web solutions. Digital Nomad, I work while traveling. After 3 years into the french industry, I've started to work as a freelance software architect or fullstack developer.

Based on state-of-the-art web technologies, I offer you to architect & develop the best version of your project. My experience in the web app development assure you to build a nice looking, performant and stable product.

Minimalist, I like to travel, to meet people, learn new things and handmade stuff. Scuba & sky diving licenced. I like also hamburgers, Kinder chocolate and crepes. Karate black belt.

https://berthellemy.com/