vdc

🎧 van der Corput low-discrepancy sequences

Showing:

Popularity

Downloads/wk

3

GitHub Stars

11

Maintenance

Last Commit

5yrs ago

Contributors

0

Package

Dependencies

0

Size (min+gzip)

0.3KB

License

Apache-2.0

Type Definitions

Tree-Shakeable

No?

Categories

Readme

VDC

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

Installation

With npm:

$ npm install vdc

In the browser:

<script src="vdc.js"></script>

The browser exposes a variable 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)

For example:

//var VDC = require('vdc') // uncomment this line if in node

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)

Testing

make test will run the nodejs-based test.

make baseline will generate the test baselines using Mathematica by explicitly extracting and reversing the digits. The implementation is based off a tutorial http://reference.wolfram.com/mathematica/CUDALink/tutorial/Applications.html

VanDerCorput[base_][len_] := Table[
  With[{digits = Reverse@IntegerDigits[n, base]},
   Sum[2^(-ii)*digits[[ii]], {ii, Length[digits]}]
   ], {n, len}]

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

Please consult the attached LICENSE file for details. All rights not explicitly granted by the Apache 2.0 license are reserved by the Original Author.

Badges

Build Status

Coverage Status

Analytics

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial