in commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/shape/LineSampler.java [302:328]
public static LineSampler of(UniformRandomProvider rng,
double[] a,
double[] b) {
final int dimension = a.length;
if (dimension != b.length) {
throw new IllegalArgumentException(
new StringBuilder("Mismatch of vertex dimensions: ").append(dimension).append(',')
.append(b.length).toString());
}
// Detect non-finite vertices
Coordinates.requireFinite(a, "Vertex a");
Coordinates.requireFinite(b, "Vertex b");
// Low dimension specialisations
if (dimension == TWO_D) {
return new LineSampler2D(rng, a, b);
} else if (dimension == THREE_D) {
return new LineSampler3D(rng, a, b);
} else if (dimension > THREE_D) {
return new LineSamplerND(rng, a, b);
} else if (dimension == ONE_D) {
// Unlikely case of 1D is placed last.
// Use o.a.c.rng.sampling.distribution.ContinuousUniformSampler for non-array samples.
return new LineSampler1D(rng, a, b);
}
// Less than 1D
throw new IllegalArgumentException("Unsupported dimension: " + dimension);
}