R/RcppExports.R

Defines functions p_omega_z right left makeCitationEstimate relative_f_norm_change_impl p_u_zx_impl p_u_ztx_impl p_u_tilde_zx_impl p_u_tilde_ztx_impl p_omega_f_norm_ut_impl masked_approximation_impl

Documented in masked_approximation_impl

# Generated by using Rcpp::compileAttributes() -> do not edit by hand
# Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393

#' Expand an SVD only at observed values of a sparse matrix
#'
#' TODO: describe what it looks like for dimensions to match up between
#' `s` and `mask`. See `vignette("sparse-computations")` for mathematical
#' details.
#'
#' @param U Low-rank matrix of left singular-ish vectors.
#' @param V Low-rank matrix of right singular-ish vectors.
#' @param row Zero-based row indices of observed elements.
#' @param col Zero-based col indices of observed elements.
#'
#' @details The idea is to populate `U`, `d` and `V` with using the
#'   elements of an SVD-like list. You can generate `row` and `col`
#'   most easily from a sparse masking Matrix (Matrix package),
#'   coercing to triplet format, and extracting `mask@i` for `row`
#'   and `mask@j` for column.
#'
#' @return A sparse matrix representing the low-rank reconstruction
#'   from `U`, `d` and `V`, only at the index pairs indicated by
#'   `row` and `col`.
#'
#' @keywords internal
#'
masked_approximation_impl <- function(U, V, row, col) {
    .Call(`_fastadi_masked_approximation_impl`, U, V, row, col)
}

p_omega_f_norm_ut_impl <- function(U, d, V, row, col, num_threads) {
    .Call(`_fastadi_p_omega_f_norm_ut_impl`, U, d, V, row, col, num_threads)
}

p_u_tilde_ztx_impl <- function(U, d, V, row, col, x) {
    .Call(`_fastadi_p_u_tilde_ztx_impl`, U, d, V, row, col, x)
}

p_u_tilde_zx_impl <- function(U, d, V, row, col, x) {
    .Call(`_fastadi_p_u_tilde_zx_impl`, U, d, V, row, col, x)
}

p_u_ztx_impl <- function(U, d, V, x, num_threads) {
    .Call(`_fastadi_p_u_ztx_impl`, U, d, V, x, num_threads)
}

p_u_zx_impl <- function(U, d, V, x, num_threads) {
    .Call(`_fastadi_p_u_zx_impl`, U, d, V, x, num_threads)
}

relative_f_norm_change_impl <- function(new_U, new_d, new_V, U, d, V, num_threads) {
    .Call(`_fastadi_relative_f_norm_change_impl`, new_U, new_d, new_V, U, d, V, num_threads)
}

makeCitationEstimate <- function(citations, U, d, V) {
    .Call(`_fastadi_makeCitationEstimate`, citations, U, d, V)
}

left <- function(x, A) {
    .Call(`_fastadi_left`, x, A)
}

right <- function(x, A) {
    .Call(`_fastadi_right`, x, A)
}

p_omega_z <- function(A) {
    .Call(`_fastadi_p_omega_z`, A)
}

Try the fastadi package in your browser

Any scripts or data that you put into this service are public.

fastadi documentation built on June 8, 2025, 12:44 p.m.