pub struct GPUGradientComputer { /* private fields */ }Expand description
GPU-accelerated constraint gradient computation
Implementations§
Source§impl GPUGradientComputer
impl GPUGradientComputer
Sourcepub fn with_epsilon(self, eps: f32) -> Self
pub fn with_epsilon(self, eps: f32) -> Self
Set epsilon for finite differences
Sourcepub fn compute_batch_gradients<C: ViolationComputable + Clone>(
&self,
points: &Array2<f32>,
constraint: &C,
) -> LogicResult<Array2<f32>>
pub fn compute_batch_gradients<C: ViolationComputable + Clone>( &self, points: &Array2<f32>, constraint: &C, ) -> LogicResult<Array2<f32>>
Compute gradient of constraint violation for a batch
Returns Array2 of shape (n_points, n_dims) containing gradients
Sourcepub fn compute_hessian<C: ViolationComputable>(
&self,
point: &[f32],
constraint: &C,
) -> LogicResult<Array2<f32>>
pub fn compute_hessian<C: ViolationComputable>( &self, point: &[f32], constraint: &C, ) -> LogicResult<Array2<f32>>
Compute Hessian of constraint violation (second-order information)
Useful for Newton-based optimization
Sourcepub fn is_gpu_available(&self) -> bool
pub fn is_gpu_available(&self) -> bool
Check if GPU is available
Trait Implementations§
Auto Trait Implementations§
impl Freeze for GPUGradientComputer
impl RefUnwindSafe for GPUGradientComputer
impl Send for GPUGradientComputer
impl Sync for GPUGradientComputer
impl Unpin for GPUGradientComputer
impl UnwindSafe for GPUGradientComputer
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more