scijs/ndarray-blas-level1

Name: ndarray-blas-level1

Owner: scijs

Description: BLAS Level 1 operations for ndarrays

Created: 2015-05-01 14:33:25.0

Updated: 2017-02-22 01:40:54.0

Pushed: 2016-07-30 23:40:07.0

Homepage: null

Size: 153

Language: JavaScript

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

ndarray-blas-level1

Build Status npm version Dependency Status js-semistandard-style

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 | | rotg(a,b) | | Calculates the Givens rotation parameters [c, s, r] |

Example

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

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

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

1.axpy(2, x, y);
License

© 2015 Scijs. MIT License.

Authors

Ricky Reusser, Philipp Burckhardt, Tim Bright


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.