Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@basementuniverse/vec

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@basementuniverse/vec

A small vector and matrix library

  • 1.0.0
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

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

  • vec
  • mat

Functions

vec([x], [y])vec

Create a new vector

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

Create a new matrix

Typedefs

vec : Object

A 2d vector

vectorMapCallbacknumber

A function to call on each component of a vector

mat : Object

A matrix

matrixMapCallbacknumber

A function to call on each entry of a matrix

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

Create a new vector

Kind: global function
Returns: vec - A new vector

ParamTypeDescription
[x]number | vecThe x component of the vector, or a vector to copy
[y]numberThe 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

ParamTypeDescription
avecThe 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

ParamTypeDescription
avecVector a
bvecVector b

vec.mul(a, b) ⇒ vec

Scale a vector

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

ParamTypeDescription
avecVector a
bnumberScalar b

vec.sub(a, b) ⇒ vec

Subtract vectors

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

ParamTypeDescription
avecVector a
bvecVector b

vec.len(a) ⇒ number

Get the length of a vector

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

ParamTypeDescription
avecVector a

vec.manhattan(a) ⇒ number

Get the length of a vector using taxicab geometry

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

ParamTypeDescription
avecVector a

vec.nor(a) ⇒ vec

Normalise a vector

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

ParamTypeDescription
avecThe vector to normalise

vec.dot(a, b) ⇒ number

Get a dot product of vectors

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

ParamTypeDescription
avecVector a
bvecVector b

vec.rot(a, r) ⇒ vec

Rotate a vector by r radians

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

ParamTypeDescription
avecThe vector to rotate
rnumberThe 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

ParamTypeDescription
avecVector a
bvecVector 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

ParamTypeDescription
avecVector a

vec.cpy(a) ⇒ vec

Copy a vector

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

ParamTypeDescription
avecThe 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

ParamTypeDescription
avecVector a
fvectorMapCallbackThe 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

ParamTypeDefaultDescription
avecThe 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

ParamTypeDefaultDescription
[m]number4The number of rows
[n]number4The 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

ParamTypeDescription
nnumberThe 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

ParamTypeDescription
amatMatrix a
inumberThe row offset
jnumberThe column offset

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

Set an entry of a matrix

Kind: static method of mat

ParamTypeDescription
amatMatrix a
inumberThe row offset
jnumberThe column offset
vnumberThe 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

ParamTypeDescription
amatMatrix a
mnumberThe 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

ParamTypeDescription
amatMatrix a
nnumberThe column offset

mat.add(a, b) ⇒ mat

Add matrices

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

ParamTypeDescription
amatMatrix a
bmatMatrix b

mat.sub(a, b) ⇒ mat

Subtract matrices

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

ParamTypeDescription
amatMatrix a
bmatMatrix 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

ParamTypeDescription
amatMatrix a
bmatMatrix b

mat.scale(a, b) ⇒ mat

Scale a matrix

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

ParamTypeDescription
amatMatrix a
bnumberScalar b

mat.trans(a) ⇒ mat

Transpose a matrix

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

ParamTypeDescription
amatThe 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

ParamTypeDescription
amatMatrix a
inumberThe row offset
jnumberThe 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

ParamTypeDescription
amatMatrix 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

ParamTypeDescription
amatThe matrix to normalise

mat.adj(a) ⇒ mat

Get the adjugate of a matrix

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

ParamTypeDescription
amatThe 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

ParamTypeDescription
amatThe 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

ParamTypeDescription
amatMatrix a
bmatMatrix b

mat.cpy(a) ⇒ mat

Copy a matrix

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

ParamTypeDescription
amatThe 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

ParamTypeDescription
amatMatrix a
fmatrixMapCallbackThe 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

ParamTypeDefaultDescription
amatThe 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

NameTypeDescription
xnumberThe x component of the vector
ynumberThe 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

ParamTypeDescription
avecThe 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

ParamTypeDescription
avecVector a
bvecVector b

vec.mul(a, b) ⇒ vec

Scale a vector

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

ParamTypeDescription
avecVector a
bnumberScalar b

vec.sub(a, b) ⇒ vec

Subtract vectors

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

ParamTypeDescription
avecVector a
bvecVector b

vec.len(a) ⇒ number

Get the length of a vector

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

ParamTypeDescription
avecVector a

vec.manhattan(a) ⇒ number

Get the length of a vector using taxicab geometry

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

ParamTypeDescription
avecVector a

vec.nor(a) ⇒ vec

Normalise a vector

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

ParamTypeDescription
avecThe vector to normalise

vec.dot(a, b) ⇒ number

Get a dot product of vectors

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

ParamTypeDescription
avecVector a
bvecVector b

vec.rot(a, r) ⇒ vec

Rotate a vector by r radians

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

ParamTypeDescription
avecThe vector to rotate
rnumberThe 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

ParamTypeDescription
avecVector a
bvecVector 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

ParamTypeDescription
avecVector a

vec.cpy(a) ⇒ vec

Copy a vector

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

ParamTypeDescription
avecThe 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

ParamTypeDescription
avecVector a
fvectorMapCallbackThe 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

ParamTypeDefaultDescription
avecThe 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

ParamTypeDescription
valuenumberThe component value
label'x' | 'y'The component label (x or y)

mat : Object

A matrix

Kind: global typedef
Properties

NameTypeDescription
mnumberThe number of rows in the matrix
nnumberThe number of columns in the matrix
entriesArray.<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

ParamTypeDescription
nnumberThe 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

ParamTypeDescription
amatMatrix a
inumberThe row offset
jnumberThe column offset

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

Set an entry of a matrix

Kind: static method of mat

ParamTypeDescription
amatMatrix a
inumberThe row offset
jnumberThe column offset
vnumberThe 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

ParamTypeDescription
amatMatrix a
mnumberThe 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

ParamTypeDescription
amatMatrix a
nnumberThe column offset

mat.add(a, b) ⇒ mat

Add matrices

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

ParamTypeDescription
amatMatrix a
bmatMatrix b

mat.sub(a, b) ⇒ mat

Subtract matrices

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

ParamTypeDescription
amatMatrix a
bmatMatrix 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

ParamTypeDescription
amatMatrix a
bmatMatrix b

mat.scale(a, b) ⇒ mat

Scale a matrix

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

ParamTypeDescription
amatMatrix a
bnumberScalar b

mat.trans(a) ⇒ mat

Transpose a matrix

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

ParamTypeDescription
amatThe 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

ParamTypeDescription
amatMatrix a
inumberThe row offset
jnumberThe 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

ParamTypeDescription
amatMatrix 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

ParamTypeDescription
amatThe matrix to normalise

mat.adj(a) ⇒ mat

Get the adjugate of a matrix

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

ParamTypeDescription
amatThe 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

ParamTypeDescription
amatThe 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

ParamTypeDescription
amatMatrix a
bmatMatrix b

mat.cpy(a) ⇒ mat

Copy a matrix

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

ParamTypeDescription
amatThe 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

ParamTypeDescription
amatMatrix a
fmatrixMapCallbackThe 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

ParamTypeDefaultDescription
amatThe 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

ParamTypeDescription
valuenumberThe entry value
indexnumberThe entry index
entriesArray.<number>The array of matrix entries

FAQs

Package last updated on 19 Dec 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc