JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 46888
  • Score
    100M100P100Q181608F
  • License MIT

BLAS Level 1 operations for ndarrays

Package Exports

  • ndarray-blas-level1

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ndarray-blas-level1) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

ndarray-blas-level1

Build Status npm version Dependency Status

BLAS Level 1 operations for ndarrays

A quick note on why this exists: The goal is not to reinvent the wheel. There are lots of implementations of BLAS out there. Even for JS. There's a nodejs wrapper for LAPACK. Depending on what you need, maybe you should use that. The goal of this is to bring standardized BLAS operations to ndarrays so that algorithms can be made as future-resistant as possible by writing them in terms of standardized, easily-translatable operations.

Usage

This library implements the basic vector operations of the Level 1 Basic Linear Algebra Subprograms (BLAS). Many of these functions are also implemented in ndarray-ops—which also has functions that are not included in BLAS. So the right answer is probably some blend of the two. This library exists mainly to frame things in a relatively standard, coherent framework.

NB: This library performs no checks to ensure you're only passing one-dimensional vectors. It simply iterates across the first dimension of the array, so if you pass it higher-dimensional arrays, don't expect a meaningful result.

Function Operation Description
swap(x,y) x \leftrightarrow y Swap the elements of x and y
scal(alpha,x) x \leftarrow \alpha x Multiple vector x by scalar alpha
copy(x,y) y \leftarrow x Copy x into y
axpy(alpha, x, y) y \leftarrow \alpha x + y Multiple x by alpha and add it to y
cpsc(alpha, x, y) y \leftarrow \alpha x Multiply x by alpha and assign it to y
dot(x,y) dot \leftarrow x^T y Calculate the inner product of x and y.
nrm2(x) nrm2 \leftarrow ||x||_2 Calculate the 2-norm of x
asum(x) asum \leftarrow ||x||_1 Calculate the 1-norm of x
iamax(x) \underset{i} {\mathrm{argmax}} |x_i| the argmax of x

Example

Usage should be pretty straightforward. There aren't really any options or variations.

var blas1 = require('ndarray-blas-level1');

var x = ndarray([1,2,3]);
var y = ndarray([3,4,5]);

blas1.axpy( 2, x, y );

Credits

(c) 2015 Ricky Reusser. MIT License