Samples

The syntax for sampling in an interval or region is the following:

sample(n,lb,ub,S::SamplingAlgorithm)

Where lb and ub are respectively lower and upper bound. There are many sampling algorithms to choose from:

  • Grid sample
  • Uniform sample
  • Sobol sample
  • Latin Hypercube sample
Surrogates.sampleMethod

sample(n,lb,ub,::LatinHypercube)

Returns a Tuple containig LatinHypercube sequences.

source
  • Low Discrepancy sample
Surrogates.sampleMethod

sample(n,lb,ub,S::LowDiscrepancySample)

Low discrepancy sample:

  • Dimension 1: Van der corput sequence
  • Dimension > 1: Halton sequence

If dimension d > 1, every bases must be coprime with each other.

source

Adding a new sampling method

Adding a new sampling method is a two step process:

  1. Add a new SamplingAlgorithm type
  2. Overload the sample function with the new type.

Example

struct NewAmazingSamplingAlgorithm{OPTIONAL} <: SamplingAlgorithm end

function sample(n,lb,ub,::NewAmazingSamplingAlgorithm)
    if lb is  Number
        ...
        return x
    else
        ...
        return Tuple.(x)
    end
end