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

ndarray-band

v1.0.14

Published

Create a view of a band of an ndarray

Downloads

27

Readme

ndarray-band

Build Status npm version Dependency Status

Create a view of a band of an ndarray

Introduction

First things first, if bands are meaningful in your matrix problem, there's a chance you should really just be dealing with the bands directly using algorithms designed to work with, for example, tridiagonal or Toeplitz matrices. But if you need a band, then this module provides a convenience function to extract a view of a band, i.e. a diagonal with an offset.

Note that for an ndarray of dimension , since the band is a one-dimensional array, only offsets are necessary. Thus, the offsets are given for dimensions .

Also note that for dimensions greater than two, this gets a little confusing. Here's a more precise specification that's not exactly less confusing, but at least it's precise: Given an array and offsets , , ..., , ndarray-band returns a view of at

where is the the first element that falls within the bounds of and is the index of the view starting at zero. The length of the band will be such that it only ever contains element within the bounds of .

To make that actually concrete, the bands of a matrix are indexed like:

Example

Consider constructing the 1-D discrete Laplacian operator. Of course in any realistic problem you'd obviously want to avoid constructing this at all costs, but there are cases where it's necessary or at least useful to refer to a band view.

var pool = require('ndarray-scratch'),
    ops = require('ndarray-ops'),
    band = require('ndarray-band')

var A = pool.zeros([10,10])

ops.assigns( band(A,-1),  1 )  // (superdiagonal)
ops.assigns( band(A, 0), -2 )  // (diagonal)
ops.assigns( band(A, 1),  1 )  // (subdiagonal)

//        [ -2    1    0    0    0    0    0    0    0    0 ]
//        [  1   -2    1    0    0    0    0    0    0    0 ]
//        [  0    1   -2    1    0    0    0    0    0    0 ]
//        [  0    0    1   -2    1    0    0    0    0    0 ]
//  A  =  [  0    0    0    1   -2    1    0    0    0    0 ]
//        [  0    0    0    0    1   -2    1    0    0    0 ]
//        [  0    0    0    0    0    1   -2    1    0    0 ]
//        [  0    0    0    0    0    0    1   -2    1    0 ]
//        [  0    0    0    0    0    0    0    1   -2    1 ]
//        [  0    0    0    0    0    0    0    0    1   -2 ]

Install

$ npm install ndarray-band

API

require('ndarray-band')( A, offsets )

Create a view of a band of an ndarray given offsets along the dimensions.

  • A: the ndarray of dimension of which to create a view
  • offsets: an array of length containing the offset of the band along the respective dimensions. For the special case , the band is equal to the original vector so the offset is unused. For the special case , there is only one offset so a scalar is permitted in place of an array.

Returns: a 1-D ndarray starting at element 0 and of whatever length required such that the view will never contain an element outside the original ndarray.

Credits

(c) 2015 Ricky Reusser. MIT License