🎧 van der Corput low-discrepancy sequences
Go to file
2013-12-14 02:43:55 -05:00
test_files Initial commit 2013-12-14 02:43:55 -05:00
.gitignore Initial commit 2013-12-14 02:43:55 -05:00
.travis.yml Initial commit 2013-12-14 02:43:55 -05:00
LICENSE Initial commit 2013-12-14 02:43:55 -05:00
Makefile Initial commit 2013-12-14 02:43:55 -05:00
package.json Initial commit 2013-12-14 02:43:55 -05:00
README.md Initial commit 2013-12-14 02:43:55 -05:00
test.js Initial commit 2013-12-14 02:43:55 -05:00
vdc.js Initial commit 2013-12-14 02:43:55 -05:00

VDC

Pure JS implementation of van der Corput low-discrepancy sequences.

Installation

Available on npm vdc:

$ npm install vdc

Usage

The exported function VDC accepts a opts object with the following fields:

  • b (default 2) base for the sequence.
  • n (default 0) starting index for the sequence.

Calling without arguments will default to the aforementioned values.

The object returned by VDC exposes a next() method to get the next element.

The field last holds the most recently generated value (accessing the field does not trigger a recalculation)

Sample Session

var VDC = require('vdc')

var opts = {'n':0, 'b':2};
var generator = VDC(opts);
for(var i = 0; i != 10; ++i) console.log(generator.next());

The expected output is

0       (0/1)
0.5     (1/2)
0.25    (1/4)
0.75    (3/4)
0.125   (1/8)
0.625   (5/8)
0.375   (3/8)
0.875   (7/8)
0.0625  (1/16)
0.5625  (9/16)

Notes

0 is the first value. Some sources (notably Wikipedia) start the sequence at 1/2, but others (Glasserman "Monte Carlo Methods in Financial Engineering") claim that the original sequence definition started at 0.

License

MIT-licensed. See LICENSE