Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including ndarray-proxy with all npm packages installed. Try it out:

var ndarrayProxy = require("ndarray-proxy")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

ndarray-proxy v1.0.0

Turns functions into ndarrays


Creates proxies for ndarrays. These give a logical view of a function as an ndarray.


Proxy ndarrays work just like ndarrays, and can be used in all the same ways. However, unlike dense arrays they do not keep any storage and instead use a function to determine the contents of the array. Here is a simple example:

var proxy = require('ndarray-proxy')

//Create a 10x10 proxy ndarray
var x = proxy([10, 10], function(i, j) {
  console.log('Called:', i, j)
  return 10*i + j

x.get(1,2)    //Prints out:   Called: 1 2
x.get(7,8)    //Prints out:   Called: 7 8

It is possible to slice the view of a proxy ndarray, just like a regular ndarray:

x.lo(2,3).get(1,1)            //Prints out:  Called: 3 4
x.transpose(1,0).get(3,7)     //Prints out:  Called: 7 3

You can use lazy ndarrays with cwise or any other library that works with ndarrays.

It is also possible to add a setter to the proxy ndarray to implement custom assignment operations. For example:

var y = proxy([10,10],
    function(i,j) { return 10*i+j; },
    function(i,j,v) {
      console.log('SET:', i, j, '=', v)

y.set(2,3,10) //Prints:  SET: 2 3 = 10

If a setter isn't specified, then writing to the array throws an error.


You can install the library using npm:

npm install ndarray-proxy

And like all ndarray modules it should work in a browser that supports typed arrays using browserify.


require('ndarray-proxy')(shape, get_func[, set_func])

Creates a wrapper for an ndarray

  • shape is the shape of the wrapped ndarray
  • get_func(i0,i1,...) implements access to the ndarray
  • set_func(i0,i1,...,v) implements writing to the ndarray

Returns A proxy view of the functions.


(c) 2013 Mikola Lysenko. MIT License


RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free