Class BoxSampler
java.lang.Object
org.apache.commons.rng.sampling.shape.BoxSampler
- All Implemented Interfaces:
ObjectSampler<double[]>
,SharedStateObjectSampler<double[]>
,SharedStateSampler<SharedStateObjectSampler<double[]>>
- Direct Known Subclasses:
BoxSampler.BoxSampler2D
,BoxSampler.BoxSampler3D
,BoxSampler.BoxSamplerND
Generate points uniformly distributed within a n-dimension box (hyperrectangle).
Sampling uses:
- Since:
- 1.4
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static class
Sample uniformly from a box in 2D.private static class
Sample uniformly from a box in 3D.private static class
Sample uniformly from a box in ND. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final UniformRandomProvider
The source of randomness.private static final int
The dimension for 3D sampling.private static final int
The dimension for 2D sampling. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) double
createSample
(double a, double b) Creates the sample between bound a and b.static BoxSampler
of
(UniformRandomProvider rng, double[] a, double[] b) Create a box sampler with boundsa
andb
.abstract double[]
sample()
Create an object sample.abstract BoxSampler
Create a new instance of the sampler with the same underlying state using the given uniform random provider as the source of randomness.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.commons.rng.sampling.ObjectSampler
samples, samples
-
Field Details
-
TWO_D
private static final int TWO_DThe dimension for 2D sampling.- See Also:
-
THREE_D
private static final int THREE_DThe dimension for 3D sampling.- See Also:
-
rng
The source of randomness.
-
-
Constructor Details
-
BoxSampler
BoxSampler(UniformRandomProvider rng) - Parameters:
rng
- Source of randomness.
-
-
Method Details
-
sample
public abstract double[] sample()Description copied from interface:ObjectSampler
Create an object sample.- Specified by:
sample
in interfaceObjectSampler<double[]>
- Returns:
- a random Cartesian coordinate within the box.
-
createSample
double createSample(double a, double b) Creates the sample between bound a and b.- Parameters:
a
- Bound ab
- Bound b- Returns:
- the sample
-
withUniformRandomProvider
Create a new instance of the sampler with the same underlying state using the given uniform random provider as the source of randomness.- Specified by:
withUniformRandomProvider
in interfaceSharedStateSampler<SharedStateObjectSampler<double[]>>
- Parameters:
rng
- Generator of uniformly distributed random numbers.- Returns:
- the sampler
-
of
Create a box sampler with boundsa
andb
. Sampled points are uniformly distributed within the box defined by the bounds.Sampling is supported in dimensions of 2 or above. Single dimension sampling can be performed using a
LineSampler
.Note: There is no requirement that
a <= b
. The samples will be uniformly distributed in the rangea
tob
for each dimension.- Parameters:
rng
- Source of randomness.a
- Bound a.b
- Bound b.- Returns:
- the sampler
- Throws:
IllegalArgumentException
- If the bounds do not have the same dimension; the dimension is less than 2; or bounds have non-finite coordinates.
-