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

@basementuniverse/vec

v1.0.2

Published

A small vector and matrix library

Downloads

8

Readme

vec

A small vector and matrix library

Usage

Node:

const { vec, mat } = require('@basementuniverse/vec');

Browser:

<script src="vec.js"></script>

Typescript:

import { vec, mat } from '@basementuniverse/vec';

Contents

Functions

Typedefs

vec([x], [y]) ⇒ vec

Create a new vector

Kind: global function
Returns: vec - A new vector

| Param | Type | Description | | --- | --- | --- | | [x] | number | vec | The x component of the vector, or a vector to copy | | [y] | number | The y component of the vector |

Example (Various ways to initialise a vector)

let a = vec(3, 2);  // (3, 2)
let b = vec(4);     // (4, 4)
let c = vec(a);     // (3, 2)
let d = vec();      // (0, 0)

vec.components(a) ⇒ Array.<number>

Get the components of a vector as an array

Kind: static method of vec
Returns: Array.<number> - The vector components as an array

| Param | Type | Description | | --- | --- | --- | | a | vec | The vector to get components from |

vec.ux() ⇒ vec

Return a unit vector (1, 0)

Kind: static method of vec
Returns: vec - A unit vector (1, 0)

vec.uy() ⇒ vec

Return a unit vector (0, 1)

Kind: static method of vec
Returns: vec - A unit vector (0, 1)

vec.add(a, b) ⇒ vec

Add vectors

Kind: static method of vec
Returns: vec - a + b

| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a | | b | vec | Vector b |

vec.mul(a, b) ⇒ vec

Scale a vector

Kind: static method of vec
Returns: vec - a * b

| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a | | b | number | Scalar b |

vec.sub(a, b) ⇒ vec

Subtract vectors

Kind: static method of vec
Returns: vec - a - b

| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a | | b | vec | Vector b |

vec.len(a) ⇒ number

Get the length of a vector

Kind: static method of vec
Returns: number - |a|

| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a |

vec.manhattan(a) ⇒ number

Get the length of a vector using taxicab geometry

Kind: static method of vec
Returns: number - |a|

| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a |

vec.nor(a) ⇒ vec

Normalise a vector

Kind: static method of vec
Returns: vec - ^a

| Param | Type | Description | | --- | --- | --- | | a | vec | The vector to normalise |

vec.dot(a, b) ⇒ number

Get a dot product of vectors

Kind: static method of vec
Returns: number - a ∙ b

| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a | | b | vec | Vector b |

vec.rot(a, r) ⇒ vec

Rotate a vector by r radians

Kind: static method of vec
Returns: vec - A rotated vector

| Param | Type | Description | | --- | --- | --- | | a | vec | The vector to rotate | | r | number | The angle to rotate by, measured in radians |

vec.eq(a, b) ⇒ boolean

Check if two vectors are equal

Kind: static method of vec
Returns: boolean - True if vectors a and b are equal, false otherwise

| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a | | b | vec | Vector b |

vec.rad(a) ⇒ number

Get the angle of a vector

Kind: static method of vec
Returns: number - The angle of vector a in radians

| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a |

vec.cpy(a) ⇒ vec

Copy a vector

Kind: static method of vec
Returns: vec - A copy of vector a

| Param | Type | Description | | --- | --- | --- | | a | vec | The vector to copy |

vec.map(a, f) ⇒ vec

Call a function on each component of a vector and build a new vector from the results

Kind: static method of vec
Returns: vec - Vector a mapped through f

| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a | | f | vectorMapCallback | The function to call on each component of the vector |

vec.str(a, [s]) ⇒ string

Convert a vector into a string

Kind: static method of vec
Returns: string - A string representation of the vector

| Param | Type | Default | Description | | --- | --- | --- | --- | | a | vec | | The vector to convert | | [s] | string | "', '" | The separator string |

mat([m], [n], [entries]) ⇒ mat

Create a new matrix

Kind: global function
Returns: mat - A new matrix

| Param | Type | Default | Description | | --- | --- | --- | --- | | [m] | number | 4 | The number of rows | | [n] | number | 4 | The number of columns | | [entries] | Array.<number> | [] | Matrix values in reading order |

mat.identity(n) ⇒ mat

Get an identity matrix of size n

Kind: static method of mat
Returns: mat - An identity matrix

| Param | Type | Description | | --- | --- | --- | | n | number | The size of the matrix |

mat.get(a, i, j) ⇒ number

Get an entry from a matrix

Kind: static method of mat
Returns: number - The value at position (i, j) in matrix a

| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | i | number | The row offset | | j | number | The column offset |

mat.set(a, i, j, v)

Set an entry of a matrix

Kind: static method of mat

| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | i | number | The row offset | | j | number | The column offset | | v | number | The value to set in matrix a |

mat.row(a, m) ⇒ Array.<number>

Get a row from a matrix as an array

Kind: static method of mat
Returns: Array.<number> - Row m from matrix a

| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | m | number | The row offset |

mat.col(a, n) ⇒ Array.<number>

Get a column from a matrix as an array

Kind: static method of mat
Returns: Array.<number> - Column n from matrix a

| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | n | number | The column offset |

mat.add(a, b) ⇒ mat

Add matrices

Kind: static method of mat
Returns: mat - a + b

| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | b | mat | Matrix b |

mat.sub(a, b) ⇒ mat

Subtract matrices

Kind: static method of mat
Returns: mat - a - b

| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | b | mat | Matrix b |

mat.mul(a, b) ⇒ mat | boolean

Multiply matrices

Kind: static method of mat
Returns: mat | boolean - ab or false if the matrices cannot be multiplied

| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | b | mat | Matrix b |

mat.scale(a, b) ⇒ mat

Scale a matrix

Kind: static method of mat
Returns: mat - a * b

| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | b | number | Scalar b |

mat.trans(a) ⇒ mat

Transpose a matrix

Kind: static method of mat
Returns: mat - A transposed matrix

| Param | Type | Description | | --- | --- | --- | | a | mat | The matrix to transpose |

mat.minor(a, i, j) ⇒ mat | boolean

Get the minor of a matrix

Kind: static method of mat
Returns: mat | boolean - The (i, j) minor of matrix a or false if the matrix is not square

| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | i | number | The row offset | | j | number | The column offset |

mat.det(a) ⇒ number | boolean

Get the determinant of a matrix

Kind: static method of mat
Returns: number | boolean - |a| or false if the matrix is not square

| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a |

mat.nor(a) ⇒ mat | boolean

Normalise a matrix

Kind: static method of mat
Returns: mat | boolean - ^a or false if the matrix is not square

| Param | Type | Description | | --- | --- | --- | | a | mat | The matrix to normalise |

mat.adj(a) ⇒ mat

Get the adjugate of a matrix

Kind: static method of mat
Returns: mat - The adjugate of a

| Param | Type | Description | | --- | --- | --- | | a | mat | The matrix from which to get the adjugate |

mat.inv(a) ⇒ mat | boolean

Get the inverse of a matrix

Kind: static method of mat
Returns: mat | boolean - a^-1 or false if the matrix has no inverse

| Param | Type | Description | | --- | --- | --- | | a | mat | The matrix to invert |

mat.eq(a, b) ⇒ boolean

Check if two matrices are equal

Kind: static method of mat
Returns: boolean - True if matrices a and b are identical, false otherwise

| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | b | mat | Matrix b |

mat.cpy(a) ⇒ mat

Copy a matrix

Kind: static method of mat
Returns: mat - A copy of matrix a

| Param | Type | Description | | --- | --- | --- | | a | mat | The matrix to copy |

mat.map(a, f) ⇒ mat

Call a function on each entry of a matrix and build a new matrix from the results

Kind: static method of mat
Returns: mat - Matrix a mapped through f

| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | f | matrixMapCallback | The function to call on each entry of the matrix |

mat.str(a, [ms], [ns]) ⇒ string

Convert a matrix into a string

Kind: static method of mat
Returns: string - A string representation of the matrix

| Param | Type | Default | Description | | --- | --- | --- | --- | | a | mat | | The matrix to convert | | [ms] | string | "', '" | The separator string for columns | | [ns] | string | "'\n'" | The separator string for rows |

vec : Object

A 2d vector

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | x | number | The x component of the vector | | y | number | The y component of the vector |

vec.components(a) ⇒ Array.<number>

Get the components of a vector as an array

Kind: static method of vec
Returns: Array.<number> - The vector components as an array

| Param | Type | Description | | --- | --- | --- | | a | vec | The vector to get components from |

vec.ux() ⇒ vec

Return a unit vector (1, 0)

Kind: static method of vec
Returns: vec - A unit vector (1, 0)

vec.uy() ⇒ vec

Return a unit vector (0, 1)

Kind: static method of vec
Returns: vec - A unit vector (0, 1)

vec.add(a, b) ⇒ vec

Add vectors

Kind: static method of vec
Returns: vec - a + b

| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a | | b | vec | Vector b |

vec.mul(a, b) ⇒ vec

Scale a vector

Kind: static method of vec
Returns: vec - a * b

| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a | | b | number | Scalar b |

vec.sub(a, b) ⇒ vec

Subtract vectors

Kind: static method of vec
Returns: vec - a - b

| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a | | b | vec | Vector b |

vec.len(a) ⇒ number

Get the length of a vector

Kind: static method of vec
Returns: number - |a|

| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a |

vec.manhattan(a) ⇒ number

Get the length of a vector using taxicab geometry

Kind: static method of vec
Returns: number - |a|

| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a |

vec.nor(a) ⇒ vec

Normalise a vector

Kind: static method of vec
Returns: vec - ^a

| Param | Type | Description | | --- | --- | --- | | a | vec | The vector to normalise |

vec.dot(a, b) ⇒ number

Get a dot product of vectors

Kind: static method of vec
Returns: number - a ∙ b

| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a | | b | vec | Vector b |

vec.rot(a, r) ⇒ vec

Rotate a vector by r radians

Kind: static method of vec
Returns: vec - A rotated vector

| Param | Type | Description | | --- | --- | --- | | a | vec | The vector to rotate | | r | number | The angle to rotate by, measured in radians |

vec.eq(a, b) ⇒ boolean

Check if two vectors are equal

Kind: static method of vec
Returns: boolean - True if vectors a and b are equal, false otherwise

| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a | | b | vec | Vector b |

vec.rad(a) ⇒ number

Get the angle of a vector

Kind: static method of vec
Returns: number - The angle of vector a in radians

| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a |

vec.cpy(a) ⇒ vec

Copy a vector

Kind: static method of vec
Returns: vec - A copy of vector a

| Param | Type | Description | | --- | --- | --- | | a | vec | The vector to copy |

vec.map(a, f) ⇒ vec

Call a function on each component of a vector and build a new vector from the results

Kind: static method of vec
Returns: vec - Vector a mapped through f

| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a | | f | vectorMapCallback | The function to call on each component of the vector |

vec.str(a, [s]) ⇒ string

Convert a vector into a string

Kind: static method of vec
Returns: string - A string representation of the vector

| Param | Type | Default | Description | | --- | --- | --- | --- | | a | vec | | The vector to convert | | [s] | string | "', '" | The separator string |

vectorMapCallback ⇒ number

A function to call on each component of a vector

Kind: global typedef
Returns: number - The mapped component

| Param | Type | Description | | --- | --- | --- | | value | number | The component value | | label | 'x' | 'y' | The component label (x or y) |

mat : Object

A matrix

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | m | number | The number of rows in the matrix | | n | number | The number of columns in the matrix | | entries | Array.<number> | The matrix values |

mat.identity(n) ⇒ mat

Get an identity matrix of size n

Kind: static method of mat
Returns: mat - An identity matrix

| Param | Type | Description | | --- | --- | --- | | n | number | The size of the matrix |

mat.get(a, i, j) ⇒ number

Get an entry from a matrix

Kind: static method of mat
Returns: number - The value at position (i, j) in matrix a

| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | i | number | The row offset | | j | number | The column offset |

mat.set(a, i, j, v)

Set an entry of a matrix

Kind: static method of mat

| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | i | number | The row offset | | j | number | The column offset | | v | number | The value to set in matrix a |

mat.row(a, m) ⇒ Array.<number>

Get a row from a matrix as an array

Kind: static method of mat
Returns: Array.<number> - Row m from matrix a

| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | m | number | The row offset |

mat.col(a, n) ⇒ Array.<number>

Get a column from a matrix as an array

Kind: static method of mat
Returns: Array.<number> - Column n from matrix a

| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | n | number | The column offset |

mat.add(a, b) ⇒ mat

Add matrices

Kind: static method of mat
Returns: mat - a + b

| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | b | mat | Matrix b |

mat.sub(a, b) ⇒ mat

Subtract matrices

Kind: static method of mat
Returns: mat - a - b

| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | b | mat | Matrix b |

mat.mul(a, b) ⇒ mat | boolean

Multiply matrices

Kind: static method of mat
Returns: mat | boolean - ab or false if the matrices cannot be multiplied

| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | b | mat | Matrix b |

mat.scale(a, b) ⇒ mat

Scale a matrix

Kind: static method of mat
Returns: mat - a * b

| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | b | number | Scalar b |

mat.trans(a) ⇒ mat

Transpose a matrix

Kind: static method of mat
Returns: mat - A transposed matrix

| Param | Type | Description | | --- | --- | --- | | a | mat | The matrix to transpose |

mat.minor(a, i, j) ⇒ mat | boolean

Get the minor of a matrix

Kind: static method of mat
Returns: mat | boolean - The (i, j) minor of matrix a or false if the matrix is not square

| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | i | number | The row offset | | j | number | The column offset |

mat.det(a) ⇒ number | boolean

Get the determinant of a matrix

Kind: static method of mat
Returns: number | boolean - |a| or false if the matrix is not square

| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a |

mat.nor(a) ⇒ mat | boolean

Normalise a matrix

Kind: static method of mat
Returns: mat | boolean - ^a or false if the matrix is not square

| Param | Type | Description | | --- | --- | --- | | a | mat | The matrix to normalise |

mat.adj(a) ⇒ mat

Get the adjugate of a matrix

Kind: static method of mat
Returns: mat - The adjugate of a

| Param | Type | Description | | --- | --- | --- | | a | mat | The matrix from which to get the adjugate |

mat.inv(a) ⇒ mat | boolean

Get the inverse of a matrix

Kind: static method of mat
Returns: mat | boolean - a^-1 or false if the matrix has no inverse

| Param | Type | Description | | --- | --- | --- | | a | mat | The matrix to invert |

mat.eq(a, b) ⇒ boolean

Check if two matrices are equal

Kind: static method of mat
Returns: boolean - True if matrices a and b are identical, false otherwise

| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | b | mat | Matrix b |

mat.cpy(a) ⇒ mat

Copy a matrix

Kind: static method of mat
Returns: mat - A copy of matrix a

| Param | Type | Description | | --- | --- | --- | | a | mat | The matrix to copy |

mat.map(a, f) ⇒ mat

Call a function on each entry of a matrix and build a new matrix from the results

Kind: static method of mat
Returns: mat - Matrix a mapped through f

| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | f | matrixMapCallback | The function to call on each entry of the matrix |

mat.str(a, [ms], [ns]) ⇒ string

Convert a matrix into a string

Kind: static method of mat
Returns: string - A string representation of the matrix

| Param | Type | Default | Description | | --- | --- | --- | --- | | a | mat | | The matrix to convert | | [ms] | string | "', '" | The separator string for columns | | [ns] | string | "'\n'" | The separator string for rows |

matrixMapCallback ⇒ number

A function to call on each entry of a matrix

Kind: global typedef
Returns: number - The mapped entry

| Param | Type | Description | | --- | --- | --- | | value | number | The entry value | | index | number | The entry index | | entries | Array.<number> | The array of matrix entries |