pub struct Kernel<'a> { /* private fields */ }Expand description
Kernel evaluator for training. Holds references to the dataset and
precomputes x_square[i] = dot(x[i], x[i]) for RBF kernels.
Stores Vec<&'a [SvmNode]> so that the solver can swap entries
during shrinking (mirroring the C++ pointer-array swap trick).
The kernel_function method pointer pattern from C++ is replaced
by a match on kernel_type — the branch predictor handles this
efficiently since the type doesn’t change during training.
Implementations§
Source§impl<'a> Kernel<'a>
impl<'a> Kernel<'a>
Sourcepub fn new(x: &'a [Vec<SvmNode>], param: &SvmParameter) -> Self
pub fn new(x: &'a [Vec<SvmNode>], param: &SvmParameter) -> Self
Create a new kernel evaluator for the given dataset and parameters.
Sourcepub fn evaluate(&self, i: usize, j: usize) -> f64
pub fn evaluate(&self, i: usize, j: usize) -> f64
Evaluate K(x[i], x[j]) using precomputed data where possible.
Sourcepub fn swap_index(&mut self, i: usize, j: usize)
pub fn swap_index(&mut self, i: usize, j: usize)
Swap data-point references and precomputed squares at positions i and j.
Used by QMatrix implementations during solver shrinking.
Auto Trait Implementations§
impl<'a> Freeze for Kernel<'a>
impl<'a> RefUnwindSafe for Kernel<'a>
impl<'a> Send for Kernel<'a>
impl<'a> Sync for Kernel<'a>
impl<'a> Unpin for Kernel<'a>
impl<'a> UnwindSafe for Kernel<'a>
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