pub trait EvaluateKernel: Scalar {
fn assemble_kernel_in_place(
sources: ArrayView2<'_, <Self as Scalar>::Real>,
targets: ArrayView2<'_, <Self as Scalar>::Real>,
result: ArrayViewMut2<'_, Self>,
kernel_type: KernelType,
num_threads: usize
);
fn evaluate_kernel_in_place(
sources: ArrayView2<'_, <Self as Scalar>::Real>,
targets: ArrayView2<'_, <Self as Scalar>::Real>,
charges: ArrayView2<'_, Self>,
result: ArrayViewMut3<'_, Self>,
kernel_type: KernelType,
eval_mode: EvalMode,
num_threads: usize
);
fn assemble_kernel(
sources: ArrayView2<'_, <Self as Scalar>::Real>,
targets: ArrayView2<'_, <Self as Scalar>::Real>,
kernel_type: KernelType,
num_threads: usize
) -> Array2<Self> { ... }
fn evaluate_kernel(
sources: ArrayView2<'_, <Self as Scalar>::Real>,
targets: ArrayView2<'_, <Self as Scalar>::Real>,
charges: ArrayView2<'_, Self>,
kernel_type: KernelType,
eval_mode: EvalMode,
num_threads: usize
) -> Array3<Self> { ... }
}