pub struct SimulationKernelPtx<M: MathsCore + Sync, H: Habitat<M> + RustToCuda + Sync, G: PrimeableRng<M> + RustToCuda + Sync, S: LineageStore<M, H> + RustToCuda + Sync, X: EmigrationExit<M, H, G, S> + RustToCuda + Sync, D: DispersalSampler<M, H, G> + RustToCuda + Sync, C: CoalescenceSampler<M, H, S> + RustToCuda + Sync, T: TurnoverRate<M, H> + RustToCuda + Sync, N: SpeciationProbability<M, H> + RustToCuda + Sync, E: MinSpeciationTrackingEventSampler<M, H, G, S, X, D, C, T, N> + RustToCuda + Sync, I: ImmigrationEntry<M> + RustToCuda + Sync, A: SingularActiveLineageSampler<M, H, G, S, X, D, C, T, N, E, I> + RustToCuda + Sync, ReportSpeciation: Boolean, ReportDispersal: Boolean>(/* private fields */);
Trait Implementations§
source§impl<M: MathsCore + Sync, H: Habitat<M> + RustToCuda + Sync, G: PrimeableRng<M> + RustToCuda + Sync, S: LineageStore<M, H> + RustToCuda + Sync, X: EmigrationExit<M, H, G, S> + RustToCuda + Sync, D: DispersalSampler<M, H, G> + RustToCuda + Sync, C: CoalescenceSampler<M, H, S> + RustToCuda + Sync, T: TurnoverRate<M, H> + RustToCuda + Sync, N: SpeciationProbability<M, H> + RustToCuda + Sync, E: MinSpeciationTrackingEventSampler<M, H, G, S, X, D, C, T, N> + RustToCuda + Sync, I: ImmigrationEntry<M> + RustToCuda + Sync, A: SingularActiveLineageSampler<M, H, G, S, X, D, C, T, N, E, I> + RustToCuda + Sync, ReportSpeciation: Boolean, ReportDispersal: Boolean> CompiledKernelPtx<impl Fn(&mut Launcher<'_, '_, <M, H, G, S, X, D, C, T, N, E, I, A, ReportSpeciation, ReportDispersal>>, &PtxJit<DeepPerThreadBorrow<Simulation<M, H, G, S, X, D, C, T, N, E, I, A>>>, &mut PtxJit<DeepPerThreadBorrow<ValueBuffer<Lineage, true, true>>>, &mut PtxJit<DeepPerThreadBorrow<EventBuffer<ReportSpeciation, ReportDispersal>>>, &mut PtxJit<DeepPerThreadBorrow<ValueBuffer<SpeciationSample, false, true>>>, &mut PtxJit<DeepPerThreadBorrow<ValueBuffer<PositiveF64, false, true>>>, &ShallowInteriorMutable<AtomicU64>, &ShallowInteriorMutable<AtomicU64>, PerThreadShallowCopy<u64>, PerThreadShallowCopy<NonNegativeF64>)> for SimulationKernelPtx<M, H, G, S, X, D, C, T, N, E, I, A, ReportSpeciation, ReportDispersal>where
SimulationKernelPtx<M, H, G, S, X, D, C, T, N, E, I, A, False, False>: CompiledKernelPtx<simulate<M, H, G, S, X, D, C, T, N, E, I, A, False, False>>,
SimulationKernelPtx<M, H, G, S, X, D, C, T, N, E, I, A, False, True>: CompiledKernelPtx<simulate<M, H, G, S, X, D, C, T, N, E, I, A, False, True>>,
SimulationKernelPtx<M, H, G, S, X, D, C, T, N, E, I, A, True, False>: CompiledKernelPtx<simulate<M, H, G, S, X, D, C, T, N, E, I, A, True, False>>,
SimulationKernelPtx<M, H, G, S, X, D, C, T, N, E, I, A, True, True>: CompiledKernelPtx<simulate<M, H, G, S, X, D, C, T, N, E, I, A, True, True>>,
impl<M: MathsCore + Sync, H: Habitat<M> + RustToCuda + Sync, G: PrimeableRng<M> + RustToCuda + Sync, S: LineageStore<M, H> + RustToCuda + Sync, X: EmigrationExit<M, H, G, S> + RustToCuda + Sync, D: DispersalSampler<M, H, G> + RustToCuda + Sync, C: CoalescenceSampler<M, H, S> + RustToCuda + Sync, T: TurnoverRate<M, H> + RustToCuda + Sync, N: SpeciationProbability<M, H> + RustToCuda + Sync, E: MinSpeciationTrackingEventSampler<M, H, G, S, X, D, C, T, N> + RustToCuda + Sync, I: ImmigrationEntry<M> + RustToCuda + Sync, A: SingularActiveLineageSampler<M, H, G, S, X, D, C, T, N, E, I> + RustToCuda + Sync, ReportSpeciation: Boolean, ReportDispersal: Boolean> CompiledKernelPtx<impl Fn(&mut Launcher<'_, '_, <M, H, G, S, X, D, C, T, N, E, I, A, ReportSpeciation, ReportDispersal>>, &PtxJit<DeepPerThreadBorrow<Simulation<M, H, G, S, X, D, C, T, N, E, I, A>>>, &mut PtxJit<DeepPerThreadBorrow<ValueBuffer<Lineage, true, true>>>, &mut PtxJit<DeepPerThreadBorrow<EventBuffer<ReportSpeciation, ReportDispersal>>>, &mut PtxJit<DeepPerThreadBorrow<ValueBuffer<SpeciationSample, false, true>>>, &mut PtxJit<DeepPerThreadBorrow<ValueBuffer<PositiveF64, false, true>>>, &ShallowInteriorMutable<AtomicU64>, &ShallowInteriorMutable<AtomicU64>, PerThreadShallowCopy<u64>, PerThreadShallowCopy<NonNegativeF64>)> for SimulationKernelPtx<M, H, G, S, X, D, C, T, N, E, I, A, ReportSpeciation, ReportDispersal>where
SimulationKernelPtx<M, H, G, S, X, D, C, T, N, E, I, A, False, False>: CompiledKernelPtx<simulate<M, H, G, S, X, D, C, T, N, E, I, A, False, False>>,
SimulationKernelPtx<M, H, G, S, X, D, C, T, N, E, I, A, False, True>: CompiledKernelPtx<simulate<M, H, G, S, X, D, C, T, N, E, I, A, False, True>>,
SimulationKernelPtx<M, H, G, S, X, D, C, T, N, E, I, A, True, False>: CompiledKernelPtx<simulate<M, H, G, S, X, D, C, T, N, E, I, A, True, False>>,
SimulationKernelPtx<M, H, G, S, X, D, C, T, N, E, I, A, True, True>: CompiledKernelPtx<simulate<M, H, G, S, X, D, C, T, N, E, I, A, True, True>>,
Auto Trait Implementations§
impl<M, H, G, S, X, D, C, T, N, E, I, A, ReportSpeciation, ReportDispersal> Freeze for SimulationKernelPtx<M, H, G, S, X, D, C, T, N, E, I, A, ReportSpeciation, ReportDispersal>
impl<M, H, G, S, X, D, C, T, N, E, I, A, ReportSpeciation, ReportDispersal> RefUnwindSafe for SimulationKernelPtx<M, H, G, S, X, D, C, T, N, E, I, A, ReportSpeciation, ReportDispersal>where
M: RefUnwindSafe,
H: RefUnwindSafe,
G: RefUnwindSafe,
S: RefUnwindSafe,
X: RefUnwindSafe,
D: RefUnwindSafe,
C: RefUnwindSafe,
T: RefUnwindSafe,
N: RefUnwindSafe,
E: RefUnwindSafe,
I: RefUnwindSafe,
A: RefUnwindSafe,
ReportSpeciation: RefUnwindSafe,
ReportDispersal: RefUnwindSafe,
impl<M, H, G, S, X, D, C, T, N, E, I, A, ReportSpeciation, ReportDispersal> Send for SimulationKernelPtx<M, H, G, S, X, D, C, T, N, E, I, A, ReportSpeciation, ReportDispersal>
impl<M, H, G, S, X, D, C, T, N, E, I, A, ReportSpeciation, ReportDispersal> Sync for SimulationKernelPtx<M, H, G, S, X, D, C, T, N, E, I, A, ReportSpeciation, ReportDispersal>
impl<M, H, G, S, X, D, C, T, N, E, I, A, ReportSpeciation, ReportDispersal> Unpin for SimulationKernelPtx<M, H, G, S, X, D, C, T, N, E, I, A, ReportSpeciation, ReportDispersal>
impl<M, H, G, S, X, D, C, T, N, E, I, A, ReportSpeciation, ReportDispersal> UnwindSafe for SimulationKernelPtx<M, H, G, S, X, D, C, T, N, E, I, A, ReportSpeciation, ReportDispersal>where
M: UnwindSafe,
H: UnwindSafe,
G: UnwindSafe,
S: UnwindSafe,
X: UnwindSafe,
D: UnwindSafe,
C: UnwindSafe,
T: UnwindSafe,
N: UnwindSafe,
E: UnwindSafe,
I: UnwindSafe,
A: UnwindSafe,
ReportSpeciation: UnwindSafe,
ReportDispersal: UnwindSafe,
Blanket Implementations§
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 more