solvr 0.2.0

Advanced computing library for real-world problem solving - optimization, differential equations, interpolation, statistics, and more
Documentation
//! WebGPU implementation of Gaussian Mixture Model.

use crate::cluster::impl_generic::{
    gmm_aic_impl, gmm_bic_impl, gmm_fit_impl, gmm_predict_impl, gmm_predict_proba_impl,
    gmm_score_impl,
};
use crate::cluster::traits::gmm::{GmmAlgorithms, GmmModel, GmmOptions};
use numr::error::Result;
use numr::runtime::wgpu::{WgpuClient, WgpuRuntime};
use numr::tensor::Tensor;

impl GmmAlgorithms<WgpuRuntime> for WgpuClient {
    fn gmm_fit(
        &self,
        data: &Tensor<WgpuRuntime>,
        options: &GmmOptions,
    ) -> Result<GmmModel<WgpuRuntime>> {
        gmm_fit_impl(self, data, options)
    }

    fn gmm_predict(
        &self,
        model: &GmmModel<WgpuRuntime>,
        data: &Tensor<WgpuRuntime>,
    ) -> Result<Tensor<WgpuRuntime>> {
        gmm_predict_impl(self, model, data)
    }

    fn gmm_predict_proba(
        &self,
        model: &GmmModel<WgpuRuntime>,
        data: &Tensor<WgpuRuntime>,
    ) -> Result<Tensor<WgpuRuntime>> {
        gmm_predict_proba_impl(self, model, data)
    }

    fn gmm_score(
        &self,
        model: &GmmModel<WgpuRuntime>,
        data: &Tensor<WgpuRuntime>,
    ) -> Result<Tensor<WgpuRuntime>> {
        gmm_score_impl(self, model, data)
    }

    fn gmm_bic(
        &self,
        model: &GmmModel<WgpuRuntime>,
        data: &Tensor<WgpuRuntime>,
    ) -> Result<Tensor<WgpuRuntime>> {
        gmm_bic_impl(self, model, data)
    }

    fn gmm_aic(
        &self,
        model: &GmmModel<WgpuRuntime>,
        data: &Tensor<WgpuRuntime>,
    ) -> Result<Tensor<WgpuRuntime>> {
        gmm_aic_impl(self, model, data)
    }
}