pub unsafe extern "C" fn cuvsPcaFit(
res: cuvsResources_t,
params: cuvsPcaParams_t,
input: *mut DLManagedTensor,
components: *mut DLManagedTensor,
explained_var: *mut DLManagedTensor,
explained_var_ratio: *mut DLManagedTensor,
singular_vals: *mut DLManagedTensor,
mu: *mut DLManagedTensor,
noise_vars: *mut DLManagedTensor,
flip_signs_based_on_U: bool,
) -> cuvsError_tExpand description
@brief Perform PCA fit operation.
Computes the principal components, explained variances, singular values, and column means from the input data.
@code {.c} #include <cuvs/core/c_api.h> #include <cuvs/preprocessing/pca.h>
// Create cuvsResources_t cuvsResources_t res; cuvsResourcesCreate(&res);
// Create PCA params cuvsPcaParams_t params; cuvsPcaParamsCreate(¶ms); params->n_components = 2;
// Assume populated DLManagedTensor objects (col-major, float32, device memory) DLManagedTensor input; // [n_rows x n_cols] DLManagedTensor components; // [n_components x n_cols] DLManagedTensor explained_var; // [n_components] DLManagedTensor explained_var_ratio; // [n_components] DLManagedTensor singular_vals; // [n_components] DLManagedTensor mu; // [n_cols] DLManagedTensor noise_vars; // [1] (scalar)
cuvsPcaFit(res, params, &input, &components, &explained_var, &explained_var_ratio, &singular_vals, &mu, &noise_vars, false);
// Cleanup cuvsPcaParamsDestroy(params); cuvsResourcesDestroy(res); @endcode
@param[in] res cuvsResources_t opaque C handle @param[in] params PCA parameters @param[inout] input input data [n_rows x n_cols] (col-major, float32, device) @param[out] components principal components [n_components x n_cols] (col-major, float32, device) @param[out] explained_var explained variances [n_components] (float32, device) @param[out] explained_var_ratio explained variance ratios [n_components] (float32, device) @param[out] singular_vals singular values [n_components] (float32, device) @param[out] mu column means [n_cols] (float32, device) @param[out] noise_vars noise variance [1] (float32, device) @param[in] flip_signs_based_on_U whether to determine signs by U (true) or V.T (false) @return cuvsError_t