MCPcopy Create free account
hub / github.com/Notgnoshi/generative / simulate

Function simulate

tools/streamline.rs:261–293  ·  view source on GitHub ↗
(
    geometries: G,
    field: &'v VectorField,
    timestep: f64,
    num_timesteps: usize,
    random_timesteps: bool,
    rng: &'v mut StdRng,
    streamline_kind: StreamlineKind,
    record_strea

Source from the content-addressed store, hash-verified

259
260#[allow(clippy::too_many_arguments)]
261fn simulate<'v, G>(
262 geometries: G,
263 field: &'v VectorField,
264 timestep: f64,
265 num_timesteps: usize,
266 random_timesteps: bool,
267 rng: &'v mut StdRng,
268 streamline_kind: StreamlineKind,
269 record_streamlines: bool,
270) -> impl Iterator<Item = (Geometry, Vec<LineString>)> + 'v
271where
272 G: IntoIterator<Item = Geometry>,
273 G: 'v,
274{
275 geometries.into_iter().map(move |g| {
276 let num_timesteps = if random_timesteps {
277 let n = num_timesteps * 2; // changes mean
278 let p = 0.5; // changes skew
279 let dist = Binomial::new(n as u64, p).unwrap();
280 dist.sample(rng) as usize
281 } else {
282 num_timesteps
283 };
284 simulate_geometry(
285 g,
286 field,
287 timestep,
288 num_timesteps,
289 streamline_kind,
290 record_streamlines,
291 )
292 })
293}
294
295fn simulate_geometry(
296 geometry: Geometry,

Callers 1

mainFunction · 0.85

Calls 1

simulate_geometryFunction · 0.85

Tested by

no test coverage detected