Struct necsim_impls_no_std::cogs::habitat::non_spatial::NonSpatialHabitat
source · pub struct NonSpatialHabitat<M: MathsCore> { /* private fields */ }
Implementations§
source§impl<M: MathsCore> NonSpatialHabitat<M>
impl<M: MathsCore> NonSpatialHabitat<M>
sourcepub fn new(area: (OffByOneU32, OffByOneU32), deme: NonZeroU32) -> Self
pub fn new(area: (OffByOneU32, OffByOneU32), deme: NonZeroU32) -> Self
§Contracts
Post-condition - debug: creates a habitat with community size area.0 * area.1 * deme
ret.get_total_habitat() == old(OffByOneU64::from(area.0) * OffByOneU64::from(area.1) * OffByOneU64::from(deme))
pub fn get_deme(&self) -> NonZeroU32
Trait Implementations§
source§impl<M: MathsCore> Clone for NonSpatialHabitat<M>
impl<M: MathsCore> Clone for NonSpatialHabitat<M>
source§impl<M: Debug + MathsCore> Debug for NonSpatialHabitat<M>
impl<M: Debug + MathsCore> Debug for NonSpatialHabitat<M>
source§impl<M: MathsCore, G: RngCore<M>> DispersalSampler<M, NonSpatialHabitat<M>, G> for NonSpatialDispersalSampler<M, G>
impl<M: MathsCore, G: RngCore<M>> DispersalSampler<M, NonSpatialHabitat<M>, G> for NonSpatialDispersalSampler<M, G>
§fn sample_dispersal_from_location(
&self,
location: &Location,
habitat: &H,
rng: &mut G
) -> Location
fn sample_dispersal_from_location( &self, location: &Location, habitat: &H, rng: &mut G ) -> Location
Contracts Read more
source§impl<M: MathsCore> Habitat<M> for NonSpatialHabitat<M>
impl<M: MathsCore> Habitat<M> for NonSpatialHabitat<M>
type LocationIterator<'a> = impl Iterator<Item = Location>
fn is_finite(&self) -> bool
fn get_extent(&self) -> &LandscapeExtent
fn is_location_habitable(&self, location: &Location) -> bool
fn is_indexed_location_habitable( &self, indexed_location: &IndexedLocation ) -> bool
§fn get_total_habitat(&self) -> OffByOneU64
fn get_total_habitat(&self) -> OffByOneU64
Contracts Read more
§fn get_habitat_at_location(&self, location: &Location) -> u32
fn get_habitat_at_location(&self, location: &Location) -> u32
Contracts Read more
§fn map_indexed_location_to_u64_injective(
&self,
indexed_location: &IndexedLocation
) -> u64
fn map_indexed_location_to_u64_injective( &self, indexed_location: &IndexedLocation ) -> u64
Contracts Read more
fn iter_habitable_locations(&self) -> Self::LocationIterator<'_>
source§impl<M: MathsCore> RustToCuda for NonSpatialHabitat<M>
impl<M: MathsCore> RustToCuda for NonSpatialHabitat<M>
type CudaRepresentation = NonSpatialHabitatCudaRepresentation<M>
type CudaAllocation = CombinedCudaAlloc<<LandscapeExtent as RustToCuda>::CudaAllocation, NoCudaAlloc>
source§impl<M: MathsCore> RustToCudaAsync for NonSpatialHabitat<M>
impl<M: MathsCore> RustToCudaAsync for NonSpatialHabitat<M>
type CudaAllocationAsync = CombinedCudaAlloc<<LandscapeExtent as RustToCudaAsync>::CudaAllocationAsync, NoCudaAlloc>
source§impl<M: MathsCore, G: RngCore<M>> SeparableDispersalSampler<M, NonSpatialHabitat<M>, G> for NonSpatialDispersalSampler<M, G>
impl<M: MathsCore, G: RngCore<M>> SeparableDispersalSampler<M, NonSpatialHabitat<M>, G> for NonSpatialDispersalSampler<M, G>
§fn sample_non_self_dispersal_from_location(
&self,
location: &Location,
habitat: &H,
rng: &mut G
) -> Location
fn sample_non_self_dispersal_from_location( &self, location: &Location, habitat: &H, rng: &mut G ) -> Location
Contracts Read more
§fn get_self_dispersal_probability_at_location(
&self,
location: &Location,
habitat: &H
) -> ClosedUnitF64
fn get_self_dispersal_probability_at_location( &self, location: &Location, habitat: &H ) -> ClosedUnitF64
Contracts Read more
source§impl<M: MathsCore, G: RngCore<M>> UniformlySampleableHabitat<M, G> for NonSpatialHabitat<M>
impl<M: MathsCore, G: RngCore<M>> UniformlySampleableHabitat<M, G> for NonSpatialHabitat<M>
§fn sample_habitable_indexed_location(&self, rng: &mut G) -> IndexedLocation
fn sample_habitable_indexed_location(&self, rng: &mut G) -> IndexedLocation
Contracts Read more
Auto Trait Implementations§
impl<M> Freeze for NonSpatialHabitat<M>
impl<M> RefUnwindSafe for NonSpatialHabitat<M>where
M: RefUnwindSafe,
impl<M> Send for NonSpatialHabitat<M>
impl<M> Sync for NonSpatialHabitat<M>
impl<M> Unpin for NonSpatialHabitat<M>where
M: Unpin,
impl<M> UnwindSafe for NonSpatialHabitat<M>where
M: UnwindSafe,
Blanket Implementations§
§impl<T> Backup for Twhere
T: Clone,
impl<T> Backup for Twhere
T: Clone,
default unsafe fn backup_unchecked(&self) -> T
default unsafe fn __contracts_impl_backup_unchecked(&self) -> T
fn backup(&self) -> BackedUp<Self>
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> ExtractDiscriminant for T
impl<T> ExtractDiscriminant for T
§type Discriminant = <T as ExtractDiscriminantSpec<<T as DiscriminantKind>::Discriminant>>::Ty
type Discriminant = <T as ExtractDiscriminantSpec<<T as DiscriminantKind>::Discriminant>>::Ty
The type of the discriminant, which must satisfy the trait bounds
required by
core::mem::Discriminant
. Read moresource§impl<T> LendToCuda for Twhere
T: RustToCuda,
impl<T> LendToCuda for Twhere
T: RustToCuda,
source§fn lend_to_cuda<O, E, F>(&self, inner: F) -> Result<O, E>where
E: From<CudaError>,
F: FnOnce(HostAndDeviceConstRef<'_, DeviceAccessible<<T as RustToCuda>::CudaRepresentation>>) -> Result<O, E>,
T: Sync,
fn lend_to_cuda<O, E, F>(&self, inner: F) -> Result<O, E>where
E: From<CudaError>,
F: FnOnce(HostAndDeviceConstRef<'_, DeviceAccessible<<T as RustToCuda>::CudaRepresentation>>) -> Result<O, E>,
T: Sync,
Lends an immutable borrow of
&self
to CUDA: Read moresource§fn lend_to_cuda_mut<O, E, F>(&mut self, inner: F) -> Result<O, E>where
E: From<CudaError>,
F: FnOnce(HostAndDeviceMutRef<'_, DeviceAccessible<<T as RustToCuda>::CudaRepresentation>>) -> Result<O, E>,
T: Sync + SafeMutableAliasing,
fn lend_to_cuda_mut<O, E, F>(&mut self, inner: F) -> Result<O, E>where
E: From<CudaError>,
F: FnOnce(HostAndDeviceMutRef<'_, DeviceAccessible<<T as RustToCuda>::CudaRepresentation>>) -> Result<O, E>,
T: Sync + SafeMutableAliasing,
source§fn move_to_cuda<O, E, F>(self, inner: F) -> Result<O, E>where
E: From<CudaError>,
F: FnOnce(HostAndDeviceOwned<'_, DeviceAccessible<<T as RustToCuda>::CudaRepresentation>>) -> Result<O, E>,
T: Send + RustToCuda,
<T as RustToCuda>::CudaRepresentation: StackOnly,
<T as RustToCuda>::CudaAllocation: EmptyCudaAlloc,
fn move_to_cuda<O, E, F>(self, inner: F) -> Result<O, E>where
E: From<CudaError>,
F: FnOnce(HostAndDeviceOwned<'_, DeviceAccessible<<T as RustToCuda>::CudaRepresentation>>) -> Result<O, E>,
T: Send + RustToCuda,
<T as RustToCuda>::CudaRepresentation: StackOnly,
<T as RustToCuda>::CudaAllocation: EmptyCudaAlloc,
source§impl<T> LendToCudaAsync for Twhere
T: RustToCudaAsync,
impl<T> LendToCudaAsync for Twhere
T: RustToCudaAsync,
source§fn lend_to_cuda_async<'stream, O, E, F>(
&self,
stream: Stream<'stream>,
inner: F
) -> Result<O, E>where
E: From<CudaError>,
F: FnOnce(Async<'_, 'stream, HostAndDeviceConstRef<'_, DeviceAccessible<<T as RustToCuda>::CudaRepresentation>>>) -> Result<O, E>,
T: Sync,
fn lend_to_cuda_async<'stream, O, E, F>(
&self,
stream: Stream<'stream>,
inner: F
) -> Result<O, E>where
E: From<CudaError>,
F: FnOnce(Async<'_, 'stream, HostAndDeviceConstRef<'_, DeviceAccessible<<T as RustToCuda>::CudaRepresentation>>>) -> Result<O, E>,
T: Sync,
Lends an immutable copy of
&self
to CUDA: Read more