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>>,

source§

fn get_ptx() -> &'static CStr

source§

fn get_entry_point() -> &'static CStr

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>

§

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>
where H: Send, S: Send, X: Send, D: Send, C: Send, T: Send, N: Send, E: Send, I: Send, A: Send, ReportSpeciation: Send, ReportDispersal: Send,

§

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>
where ReportSpeciation: Sync, ReportDispersal: Sync,

§

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>
where M: Unpin, H: Unpin, G: Unpin, S: Unpin, X: Unpin, D: Unpin, C: Unpin, T: Unpin, N: Unpin, E: Unpin, I: Unpin, A: Unpin, ReportSpeciation: Unpin, ReportDispersal: Unpin,

§

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> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> ExtractDiscriminant for T

§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Erased for T

source§

impl<T> PortableBitSemantics for T
where T: PortableBitSemantics + ?Sized,

source§

impl<T> StackOnly for T
where T: StackOnly,