Struct necsim_impls_no_std::cogs::habitat::in_memory::InMemoryHabitat
source · pub struct InMemoryHabitat<M: MathsCore> { /* private fields */ }
Implementations§
source§impl<M: MathsCore> InMemoryHabitat<M>
impl<M: MathsCore> InMemoryHabitat<M>
sourcepub fn try_new(habitat: Array2D<u32>) -> Option<Self>
pub fn try_new(habitat: Array2D<u32>) -> Option<Self>
§Contracts
Post-condition - debug: habitat extent has the dimension of the habitat array
if let Some(ret) = & ret { old(habitat.num_columns()) == usize::from(ret.get_extent().width()) && old(habitat.num_rows()) == usize::from(ret.get_extent().height()) } else { true }
Trait Implementations§
source§impl<M: MathsCore> Clone for InMemoryHabitat<M>
impl<M: MathsCore> Clone for InMemoryHabitat<M>
source§impl<M: Debug + MathsCore> Debug for InMemoryHabitat<M>
impl<M: Debug + MathsCore> Debug for InMemoryHabitat<M>
source§impl<M: MathsCore> Habitat<M> for InMemoryHabitat<M>
impl<M: MathsCore> Habitat<M> for InMemoryHabitat<M>
type LocationIterator<'a> = impl Iterator<Item = Location> + 'a
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 InMemoryHabitat<M>
impl<M: MathsCore> RustToCuda for InMemoryHabitat<M>
type CudaRepresentation = InMemoryHabitatCudaRepresentation<M>
type CudaAllocation = CombinedCudaAlloc<<LandscapeExtent as RustToCuda>::CudaAllocation, CombinedCudaAlloc<<Arc<[u64]> as RustToCuda>::CudaAllocation, CombinedCudaAlloc<<Arc<[u32]> as RustToCuda>::CudaAllocation, NoCudaAlloc>>>
source§impl<M: MathsCore> RustToCudaAsync for InMemoryHabitat<M>
impl<M: MathsCore> RustToCudaAsync for InMemoryHabitat<M>
type CudaAllocationAsync = CombinedCudaAlloc<<LandscapeExtent as RustToCudaAsync>::CudaAllocationAsync, CombinedCudaAlloc<<Arc<[u64]> as RustToCudaAsync>::CudaAllocationAsync, CombinedCudaAlloc<<Arc<[u32]> as RustToCudaAsync>::CudaAllocationAsync, NoCudaAlloc>>>
source§impl<M: MathsCore> TurnoverRate<M, InMemoryHabitat<M>> for InMemoryTurnoverRate
impl<M: MathsCore> TurnoverRate<M, InMemoryHabitat<M>> for InMemoryTurnoverRate
§fn get_turnover_rate_at_location(
&self,
location: &Location,
habitat: &H
) -> NonNegativeF64
fn get_turnover_rate_at_location( &self, location: &Location, habitat: &H ) -> NonNegativeF64
Contracts Read more
source§impl<M: MathsCore, G: RngCore<M>> UniformlySampleableHabitat<M, G> for InMemoryHabitat<M>
impl<M: MathsCore, G: RngCore<M>> UniformlySampleableHabitat<M, G> for InMemoryHabitat<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 InMemoryHabitat<M>
impl<M> RefUnwindSafe for InMemoryHabitat<M>where
M: RefUnwindSafe,
impl<M> Send for InMemoryHabitat<M>
impl<M> Sync for InMemoryHabitat<M>
impl<M> Unpin for InMemoryHabitat<M>where
M: Unpin,
impl<M> UnwindSafe for InMemoryHabitat<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