Low Discrepancy Sequences

Low Discrepancy Sequences

Low Discrepancy toolbox


The goal of this toolbox is to provide a collection of low discrepancy sequences. These random numbers are designed to be used in a Monte-Carlo simulation. For example, low discrepancy sequences provide a higher convergence rate to the Monte-Carlo method when used in numerical integration. The toolbox takes into account the dimension of the problem, i.e. generate vectors with dimensions from 20 to 1111, depending on the sequence.

The current prototype has the following features :

  • manage arbitrary number of dimensions,
  • skips a given number of elements in the sequence,
  • leaps (i.e. ignores) a given number of elements from call to call,
  • fast sequences based on compiled source code,
  • suggest optimal settings to use the best of the sequences,
  • object oriented programming.
  • get directly the dimension-th coordinate, without generating the coordinates 1,2,...,dimension-1.

Overview of sequences

  • The Halton sequence (classic, leaped, reverse or scrambled),
  • The Sobol sequence (classic or scrambled),
  • The Faure sequence,
  • The Niederreiter arbitrary base sequence.

This component currently provides the sequences based on a C source code, for performance.

See the overview in the help provided with this toolbox.


The module provides the following help pages:

  • lowdisc_overview : An overview of the Low Discrepancy toolbox.

The flagship of this module is:

  • lowdisc_ldgen : Returns uniform numbers from a low discrepancy sequence.


  • lowdisc_plots — A gallery of low discrepancy sequences.
  • lowdisc_projections — An overview of bad 2D projections.
  • lowdisc_tmsnets — (t,m,s)-nets and low discrepancy sequences.
  • lowdisc_efficiency — Efficiency of Monte-Carlo and QMC.


  • lowdisc_cget : Returns the value associated with the given key.
  • lowdisc_configure : Configure a field of the object and returns the modified object.
  • lowdisc_destroy : Destroy the current object.
  • lowdisc_get : Quiery one not-configurable field.
  • lowdisc_new : Create a new object.
  • lowdisc_next : Returns the next term of the sequence
  • lowdisc_startup : Startup the sequence.

Static Functions:

  • lowdisc_methods : Returns available sequences.
  • lowdisc_stopall : Stop all fast sequences.

Favorable Parameters:

  • lowdisc_fauresuggest : Returns favorable parameters for Faure sequences.
  • lowdisc_haltonsuggest : Returns favorable parameters for Halton sequence.
  • lowdisc_niederbase : Returns optimal base for Niederreiter sequence.
  • lowdisc_niedersuggest : Returns favorable parameters for Niederreiter sequence.
  • lowdisc_sobolsuggest : Returns favorable parameters for Sobol sequences.

Support Functions:

  • lowdisc_getpath : Returns the path to the current module.
  • lowdisc_plotbmbox : Plot all elementary boxes with volume b^m
  • lowdisc_plotelembox : Plot elementary box
  • lowdisc_proj2d : Plots 2 dimensional projections.


  • This module depends on Scilab (>=v5.5).
  • This module depends on the helptbx module.
  • This module depends on the Stixbox module (v>=2.2).
  • This module depends on the apifun module (v>=0.3).
  • This module depends on the number module (v>=1.2).
  • This module depends on the specfun module (v>=0.2).


  • 2012-2014 - Michael Baudin
  • 2009-2011 - DIGITEO - Michael Baudin
  • 2008-2009 - INRIA - Michael Baudin
  • 2003-2009 - John Burkardt
  • 1994 - Paul Bratley, Bennett Fox, Harald Niederreiter
  • 1986-1988 - Bennett Fox


This toolbox is distributed under the GNU LGPL license.


Michael Baudin thanks John Burkardt for his help during the development of this library. Thanks to Alan Cornet, Pierre Marechal for the technical help for this project. Thanks to Jean-Philippe Chancelier for finding bugs in the source code of the gateway. Thanks to Jeanne Demgne for her feedback on this module.

Development Team
Michael Baudin
Happy Crew
Abdoulaye Diop

Powered by InDefero,
a Céondo Ltd initiative.