|
241 | 241 | migration: (0.0 < f64 <= 1.0), |
242 | 242 | ) |
243 | 243 | /* (almost) infinite spatially-explicit scenario with Gaussian distributed dispersal |
244 | | - * the entire infinite landscape is habitat but, without loss of generality, has deme 1 */ |
| 244 | + * the entire infinite landscape is habitat but, without loss of generality, has deme 1 |
| 245 | + * the landscape is on a (wrapping) torus with 0 <= x < 2^32 and 0 <= y < 2^32 */ |
245 | 246 | | AlmostInfinite( |
246 | 247 | /* radius of a circle from which individuals are sampled */ |
247 | 248 | radius: (u16), |
248 | 249 | /* sigma for the Gaussian dispersal kernel N(0, sigma^2) */ |
249 | 250 | sigma: (0.0 <= f64), |
250 | 251 | ) |
| 252 | + /* (almost) infinite spatially-explicit scenario with (approximate) Gaussian distributed dispersal |
| 253 | + each location (x, y) in the landscape has either habitat for exactly one individual, |
| 254 | + or is inhabitable, depending on a sample from an OpenSimplexNoise |
| 255 | + the landscape is on a (wrapping) torus with 0 <= x < 2^32 and 0 <= y < 2^32 */ |
| 256 | + | WrappingNoise( |
| 257 | + /* random seed for the noise */ |
| 258 | + seed: (i64), |
| 259 | + /* percentage of the habitat that will be habitable */ |
| 260 | + coverage: (0.0 <= f64 <= 1.0), |
| 261 | + /* scale of the noise, is doubled on each octave |
| 262 | + * choose 0.025 for a reasonable default */ |
| 263 | + scale: (0.0 < f64 <= 1.0), |
| 264 | + /* geometric persistence factor for noise amplitude across octaves |
| 265 | + * choose 0.5 for a reasonable default */ |
| 266 | + persistence: (0.0 < f64 <= 1.0), |
| 267 | + /* number of noise octaves that are accumulated for each sample |
| 268 | + * a larger number of octaves provides finer-grained habitat boundaries |
| 269 | + but is less efficient to simulate |
| 270 | + * choose 1 for only one noise sample per location and maximum efficiency */ |
| 271 | + octaves: (0 < usize), |
| 272 | + /* rectangular sample area, individuals living in here are simulated |
| 273 | + * the sample area can wrap around the torus */ |
| 274 | + sample: Extent( |
| 275 | + /* lower-left origin x of the sample area */ |
| 276 | + x: (u32), |
| 277 | + /* lower-left origin y of the sample area */ |
| 278 | + y: (u32), |
| 279 | + /* width of the sample area */ |
| 280 | + width: (1 <= u64 <= 2^32), |
| 281 | + /* height of the sample area */ |
| 282 | + height: (1 <= u64 <= 2^32), |
| 283 | + ), |
| 284 | + /* sigma for the Gaussian dispersal kernel N(0, sigma^2) */ |
| 285 | + sigma: (0.0 <= f64), |
| 286 | + ) |
251 | 287 | ), |
252 | 288 |
|
253 | 289 | /* selection of the coalescence algorithm which is used */ |
|
0 commit comments