{
  "_id": "6a4682276ff6f2357554bab6",
  "Package": "amatrix",
  "Type": "Package",
  "Title": "Backend-Agnostic Matrix Extensions",
  "Version": "0.1.0",
  "Authors@R": "person(\"Brad\", \"Buchsbaum\", email = \"brad.buchsbaum@gmail.com\", role = c(\"aut\", \"cre\"))",
  "Description": "Matrix-compatible S4 classes with backend-dispatch hooks\nfor accelerated execution and predictable CPU fallback.",
  "URL": "https://bbuchsbaum.github.io/amatrix/,\nhttps://github.com/bbuchsbaum/amatrix",
  "BugReports": "https://github.com/bbuchsbaum/amatrix/issues",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "Additional_repositories": "https://bbuchsbaum.r-universe.dev",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "RoxygenNote": "7.3.3",
  "Config/Needs/website": "albersdown",
  "Repository": "https://bbuchsbaum.r-universe.dev",
  "Date/Publication": "2026-07-02 13:18:49 UTC",
  "RemoteUrl": "https://github.com/bbuchsbaum/amatrix",
  "RemoteRef": "HEAD",
  "RemoteSha": "aa1a39a22def2841186cc195dd1b4c7e0d5ff8e2",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-07-02 15:14:40 UTC",
    "User": "root"
  },
  "Author": "Brad Buchsbaum [aut, cre]",
  "Maintainer": "Brad Buchsbaum <brad.buchsbaum@gmail.com>",
  "MD5sum": "f464e4db6bde2434d762e6e5331f495a",
  "_user": "bbuchsbaum",
  "_type": "src",
  "_file": "amatrix_0.1.0.tar.gz",
  "_fileid": "c5deb75a6b539fd268ae48ad3e67ac5ca96a7bdebfce1299ad84aa93e6790254",
  "_filesize": 900583,
  "_sha256": "c5deb75a6b539fd268ae48ad3e67ac5ca96a7bdebfce1299ad84aa93e6790254",
  "_created": "2026-07-02T15:14:40.000Z",
  "_published": "2026-07-02T15:22:15.290Z",
  "_distro": "resolute",
  "_jobs": [
    {
      "job": 84808834556,
      "time": 230,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "ERROR",
      "artifact": "8043367427"
    },
    {
      "job": 84808834468,
      "time": 189,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "ERROR",
      "artifact": "8043348181"
    },
    {
      "job": 84808834488,
      "time": 208,
      "config": "linux-release-arm64",
      "r": "4.6.1",
      "check": "ERROR",
      "artifact": "8043357894"
    },
    {
      "job": 84808834565,
      "time": 201,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "ERROR",
      "artifact": "8043353082"
    },
    {
      "job": 84808834509,
      "time": 203,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "ERROR",
      "artifact": "8043354104"
    },
    {
      "job": 84808834399,
      "time": 341,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "ERROR",
      "artifact": "8043417027"
    },
    {
      "job": 84808834402,
      "time": 208,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "ERROR",
      "artifact": "8043356489"
    },
    {
      "job": 84808834431,
      "time": 395,
      "config": "macos-release-x86_64",
      "r": "4.6.1",
      "check": "ERROR",
      "artifact": "8043442975"
    },
    {
      "job": 84808066378,
      "time": 197,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8043264545"
    },
    {
      "job": 84808834480,
      "time": 139,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "8043325270"
    },
    {
      "job": 84808834465,
      "time": 209,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8043357223"
    },
    {
      "job": 84808834382,
      "time": 213,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8043358146"
    },
    {
      "job": 84808834506,
      "time": 237,
      "config": "windows-release",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8043372751"
    }
  ],
  "_buildurl": "https://github.com/r-universe/bbuchsbaum/actions/runs/28600745348",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/bbuchsbaum/amatrix",
  "_commit": {
    "id": "aa1a39a22def2841186cc195dd1b4c7e0d5ff8e2",
    "author": "bbuchsbaum <brad.buchsbaum@gmail.com>",
    "committer": "bbuchsbaum <brad.buchsbaum@gmail.com>",
    "message": "Fix determinant dispatch for adgeMatrix\n",
    "time": 1782998329
  },
  "_maintainer": {
    "name": "Brad Buchsbaum",
    "email": "brad.buchsbaum@gmail.com",
    "login": "bbuchsbaum",
    "description": "",
    "uuid": 53819
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.3",
      "role": "Depends"
    },
    {
      "package": "methods",
      "role": "Imports"
    },
    {
      "package": "Matrix",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "callr",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "irlba",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "pkgload",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "rprojroot",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    },
    {
      "package": "amatrix.mlx",
      "role": "Suggests"
    },
    {
      "package": "amatrix.arrayfire",
      "role": "Suggests"
    },
    {
      "package": "amatrix.opencl",
      "role": "Suggests"
    },
    {
      "package": "amatrix.metal",
      "role": "Suggests"
    }
  ],
  "_owner": "bbuchsbaum",
  "_selfowned": true,
  "_usedby": 2,
  "_updates": [
    {
      "week": "2026-14",
      "n": 5
    },
    {
      "week": "2026-15",
      "n": 120
    },
    {
      "week": "2026-16",
      "n": 40
    },
    {
      "week": "2026-17",
      "n": 33
    },
    {
      "week": "2026-27",
      "n": 41
    }
  ],
  "_tags": [],
  "_stars": 0,
  "_contributors": [
    {
      "user": "bbuchsbaum",
      "count": 239,
      "uuid": 53819
    }
  ],
  "_userbio": {
    "uuid": 53819,
    "type": "user",
    "name": "bbuchsbaum",
    "followers": 34
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/amatrix"
  },
  "_devurl": "https://github.com/bbuchsbaum/amatrix",
  "_pkgdown": "https://bbuchsbaum.github.io/amatrix/",
  "_searchresults": 165,
  "_topics": [
    "openblas"
  ],
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/amatrix.html",
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE",
    "manual.pdf"
  ],
  "_cranurl": false,
  "_exports": [
    "addmm",
    "adgCMatrix",
    "adgeMatrix",
    "am_colargmax",
    "am_colargmin",
    "am_ewise_inplace",
    "am_qr",
    "am_rowargmax",
    "am_rowargmin",
    "am_scatter_mean",
    "am_sweep",
    "am_sweep_inplace",
    "amatrix_backend_capabilities",
    "amatrix_backend_features",
    "amatrix_backend_health_probe",
    "amatrix_backend_matrix",
    "amatrix_backend_names",
    "amatrix_backend_plan",
    "amatrix_backend_precision_modes",
    "amatrix_backend_status",
    "amatrix_benchmark_report",
    "amatrix_bind_resident",
    "amatrix_cache_max_size",
    "amatrix_calibrate",
    "amatrix_calibration_info",
    "amatrix_compile_product",
    "amatrix_default_policy",
    "amatrix_default_precision",
    "amatrix_dispatch_op",
    "amatrix_execution_info",
    "amatrix_explain",
    "amatrix_fallback_log",
    "amatrix_fallback_log_reset",
    "amatrix_gc",
    "amatrix_gpu_status",
    "amatrix_materialize_host",
    "amatrix_memory_stats",
    "amatrix_prepare_operands",
    "amatrix_register_backend",
    "amatrix_release_resident",
    "amatrix_residency_info",
    "amatrix_resident_backend_for",
    "amatrix_set_cache_max_size",
    "amatrix_set_default_policy",
    "amatrix_set_default_precision",
    "amatrix_use_gpu",
    "amatrix_warm",
    "array_lm",
    "as_adgCMatrix",
    "as_adgeMatrix",
    "as.array",
    "as.matrix",
    "as.matrix.adgCMatrix",
    "as.matrix.adgeMatrix",
    "as.matrix.aTransposeView",
    "as.matrix.KronMatrix",
    "as.matrix.resident_handle",
    "batch_chol",
    "batch_crossprod",
    "batch_solve",
    "block_lanczos",
    "block_svd",
    "chol",
    "chol_diag",
    "chol_factor",
    "chol_logdet",
    "chol_solve",
    "chol_solve_batches",
    "colmeans",
    "colMeans",
    "colscale",
    "colsums",
    "colSums",
    "correlation",
    "cov2cor",
    "covariance",
    "crossprod_add_diag",
    "crossprod_weighted",
    "diag",
    "dist_matrix",
    "dot",
    "eigen",
    "eigh",
    "ewise",
    "gemm",
    "irlba",
    "irlba_native",
    "kernel_matrix",
    "kron",
    "kron_matrix",
    "kronecker",
    "lm_fit",
    "lm_loo_cv",
    "lu_factor",
    "lu_solve",
    "many_lm",
    "mat_log",
    "mat_pow",
    "mat_sqrt",
    "matmul",
    "ncol.resident_handle",
    "nrow.resident_handle",
    "pairwise_sqdist_argmin",
    "pca_coef",
    "qr",
    "qr_downdate",
    "qr_info",
    "qr.coef",
    "qr.fitted",
    "qr.Q",
    "qr.qty",
    "qr.qy",
    "qr.R",
    "qr.resid",
    "qr.solve",
    "quad_form",
    "resident_handle",
    "rh_colSums",
    "rh_rowSums",
    "ridge_fit",
    "ridge_path",
    "rowmeans",
    "rowMeans",
    "rowscale",
    "rowsums",
    "rowSums",
    "rsvd",
    "segment_mean",
    "segment_sum",
    "sinkhorn",
    "solve",
    "solve_triangular",
    "svd",
    "svd_factor",
    "svd_project",
    "svd_reconstruct",
    "sym",
    "t",
    "tcrossprod_weighted",
    "trace",
    "trace_estim",
    "with_amatrix",
    "wls_fit",
    "woodbury_logdet",
    "woodbury_solve",
    "xty_weighted"
  ],
  "_help": [
    {
      "page": "matmul-sparse-methods",
      "title": "Matrix multiplication for adgCMatrix",
      "topics": [
        "%*%,adgCMatrix,adgCMatrix-method",
        "%*%,adgCMatrix,adgeMatrix-method",
        "%*%,adgCMatrix,ANY-method",
        "%*%,adgCMatrix,dgCMatrix-method",
        "%*%,adgCMatrix,dgeMatrix-method",
        "%*%,adgCMatrix,Matrix-method",
        "%*%,adgCMatrix,matrix-method"
      ]
    },
    {
      "page": "addmm",
      "title": "Scaled matrix multiply with optional bias: alpha*(A%*%B) + beta*C",
      "topics": [
        "addmm"
      ]
    },
    {
      "page": "adgCMatrix",
      "title": "Create a backend-aware sparse matrix",
      "topics": [
        "adgCMatrix"
      ]
    },
    {
      "page": "adgCMatrix-class",
      "title": "Sparse column-compressed matrix with backend-dispatch metadata",
      "topics": [
        "adgCMatrix-class"
      ]
    },
    {
      "page": "adgeMatrix",
      "title": "Create a backend-aware dense matrix",
      "topics": [
        "adgeMatrix"
      ]
    },
    {
      "page": "adgeMatrix-class",
      "title": "Dense general matrix with backend-dispatch metadata",
      "topics": [
        "adgeMatrix-class"
      ]
    },
    {
      "page": "adlgCMatrix-class",
      "title": "Sparse logical matrix with backend-dispatch metadata",
      "topics": [
        "adlgCMatrix-class"
      ]
    },
    {
      "page": "adlgeMatrix-class",
      "title": "Dense logical matrix with backend-dispatch metadata",
      "topics": [
        "adlgeMatrix-class"
      ]
    },
    {
      "page": "am_argreduce",
      "title": "Row and column argmax/argmin",
      "topics": [
        "am_argreduce",
        "am_colargmax",
        "am_colargmin",
        "am_rowargmax",
        "am_rowargmin"
      ]
    },
    {
      "page": "am_ewise_inplace",
      "title": "In-place elementwise operation on a resident handle",
      "topics": [
        "am_ewise_inplace"
      ]
    },
    {
      "page": "am_qr",
      "title": "QR decomposition of an amatrix object",
      "topics": [
        "am_qr"
      ]
    },
    {
      "page": "am_scatter_mean",
      "title": "Scatter mean by group labels",
      "topics": [
        "am_scatter_mean"
      ]
    },
    {
      "page": "am_sweep",
      "title": "Backend-dispatched sweep",
      "topics": [
        "am_sweep"
      ]
    },
    {
      "page": "am_sweep_inplace",
      "title": "In-place broadcast sweep on a resident handle",
      "topics": [
        "am_sweep_inplace"
      ]
    },
    {
      "page": "amatrix_backend_capabilities",
      "title": "Query the capabilities of a registered backend",
      "topics": [
        "amatrix_backend_capabilities"
      ]
    },
    {
      "page": "amatrix_backend_features",
      "title": "Query the features of a registered backend",
      "topics": [
        "amatrix_backend_features"
      ]
    },
    {
      "page": "amatrix_backend_health_probe",
      "title": "Run a canary health probe against a registered backend",
      "topics": [
        "amatrix_backend_health_probe"
      ]
    },
    {
      "page": "amatrix_backend_matrix",
      "title": "Tabulate dispatch plans across multiple operations",
      "topics": [
        "amatrix_backend_matrix"
      ]
    },
    {
      "page": "amatrix_backend_names",
      "title": "List names of all registered backends",
      "topics": [
        "amatrix_backend_names"
      ]
    },
    {
      "page": "amatrix_backend_plan",
      "title": "Compute the dispatch plan for a single operation",
      "topics": [
        "amatrix_backend_plan"
      ]
    },
    {
      "page": "amatrix_backend_precision_modes",
      "title": "Query the precision modes supported by a registered backend",
      "topics": [
        "amatrix_backend_precision_modes"
      ]
    },
    {
      "page": "amatrix_backend_status",
      "title": "Summarise the status of registered backends",
      "topics": [
        "amatrix_backend_status"
      ]
    },
    {
      "page": "amatrix_benchmark_report",
      "title": "Report amatrix benchmark status across ops and backends",
      "topics": [
        "amatrix_benchmark_report"
      ]
    },
    {
      "page": "amatrix_bind_resident",
      "title": "Bind an amatrix object to resident backend storage",
      "topics": [
        "amatrix_bind_resident"
      ]
    },
    {
      "page": "amatrix_cache_max_size",
      "title": "Get or set the model cache maximum size",
      "topics": [
        "amatrix_cache_max_size",
        "amatrix_set_cache_max_size"
      ]
    },
    {
      "page": "amatrix_calibrate",
      "title": "Calibrate GPU dispatch thresholds for this machine",
      "topics": [
        "amatrix_calibrate"
      ]
    },
    {
      "page": "amatrix_calibration_info",
      "title": "Retrieve the current calibration state",
      "topics": [
        "amatrix_calibration_info"
      ]
    },
    {
      "page": "amatrix_compile_product",
      "title": "Compile a reusable matrix-product plan",
      "topics": [
        "amatrix_compile_product"
      ]
    },
    {
      "page": "amatrix_default_policy",
      "title": "Get the session-level default dispatch policy",
      "topics": [
        "amatrix_default_policy"
      ]
    },
    {
      "page": "amatrix_default_precision",
      "title": "Get the session-level default precision mode",
      "topics": [
        "amatrix_default_precision"
      ]
    },
    {
      "page": "amatrix_dispatch_op",
      "title": "Low-level backend dispatch for a single operation",
      "topics": [
        "amatrix_dispatch_op"
      ]
    },
    {
      "page": "amatrix_execution_info",
      "title": "Collect full dispatch information for an aMatrix object",
      "topics": [
        "amatrix_execution_info"
      ]
    },
    {
      "page": "amatrix_explain",
      "title": "Explain dispatch decisions for an aMatrix operation",
      "topics": [
        "amatrix_explain"
      ]
    },
    {
      "page": "amatrix_fallback_log",
      "title": "Return the amatrix backend fallback log",
      "topics": [
        "amatrix_fallback_log"
      ]
    },
    {
      "page": "amatrix_fallback_log_reset",
      "title": "Clear the amatrix backend fallback log",
      "topics": [
        "amatrix_fallback_log_reset"
      ]
    },
    {
      "page": "amatrix_gc",
      "title": "Free stale GPU residency entries and optionally flush the model cache",
      "topics": [
        "amatrix_gc"
      ]
    },
    {
      "page": "amatrix_gpu_status",
      "title": "GPU backend status: why am I (not) on the GPU?",
      "topics": [
        "amatrix_gpu_status"
      ]
    },
    {
      "page": "amatrix_materialize_host",
      "title": "Force materialization of an aMatrix to a host Matrix object",
      "topics": [
        "amatrix_materialize_host"
      ]
    },
    {
      "page": "amatrix_memory_stats",
      "title": "Report GPU residency and model cache usage",
      "topics": [
        "amatrix_memory_stats"
      ]
    },
    {
      "page": "amatrix_prepare_operands",
      "title": "Prepare operands for a repeated matrix product",
      "topics": [
        "amatrix_prepare_operands"
      ]
    },
    {
      "page": "amatrix_register_backend",
      "title": "Register a backend with the amatrix dispatch system",
      "topics": [
        "amatrix_register_backend"
      ]
    },
    {
      "page": "amatrix_release_resident",
      "title": "Release GPU-resident data held by an amatrix object",
      "topics": [
        "amatrix_release_resident"
      ]
    },
    {
      "page": "amatrix_residency_info",
      "title": "Query GPU residency state of an aMatrix object",
      "topics": [
        "amatrix_residency_info"
      ]
    },
    {
      "page": "amatrix_resident_backend_for",
      "title": "Choose a residency-capable accelerator backend for a hot path",
      "topics": [
        "amatrix_resident_backend_for"
      ]
    },
    {
      "page": "amatrix_set_default_policy",
      "title": "Set the session-level default dispatch policy",
      "topics": [
        "amatrix_set_default_policy"
      ]
    },
    {
      "page": "amatrix_set_default_precision",
      "title": "Set the session-level default precision mode",
      "topics": [
        "amatrix_set_default_precision"
      ]
    },
    {
      "page": "amatrix_use_gpu",
      "title": "Enable GPU acceleration for this session",
      "topics": [
        "amatrix_use_gpu"
      ]
    },
    {
      "page": "amatrix_warm",
      "title": "Warm up GPU backends to eliminate cold-start latency",
      "topics": [
        "amatrix_warm"
      ]
    },
    {
      "page": "aMatrix-class",
      "title": "Virtual base class for backend-aware matrices",
      "topics": [
        "aMatrix-class"
      ]
    },
    {
      "page": "amChol-class",
      "title": "Cholesky factorization result",
      "topics": [
        "amChol-class"
      ]
    },
    {
      "page": "amLU-class",
      "title": "LU factorization result for general square matrices",
      "topics": [
        "amLU-class"
      ]
    },
    {
      "page": "amSVD-class",
      "title": "Truncated SVD factorization result",
      "topics": [
        "amSVD-class"
      ]
    },
    {
      "page": "array_lm",
      "title": "Fit linear models with array-shaped response",
      "topics": [
        "array_lm"
      ]
    },
    {
      "page": "as_adgCMatrix",
      "title": "Coerce an object to adgCMatrix",
      "topics": [
        "as_adgCMatrix"
      ]
    },
    {
      "page": "as_adgeMatrix",
      "title": "Coerce an object to adgeMatrix",
      "topics": [
        "as_adgeMatrix"
      ]
    },
    {
      "page": "as_adgeMatrix.resident_handle",
      "title": "Convert a resident handle back to an adgeMatrix",
      "topics": [
        "as_adgeMatrix.resident_handle"
      ]
    },
    {
      "page": "coerce-methods",
      "title": "Coerce amatrix objects to base R types",
      "topics": [
        "as.array,adgCMatrix-method",
        "as.array,adgeMatrix-method",
        "as.matrix,adgCMatrix-method",
        "as.matrix,adgeMatrix-method",
        "as.matrix,amChol-method",
        "as.matrix,aTransposeView-method",
        "as.matrix,KronMatrix-method",
        "as.matrix.adgCMatrix",
        "as.matrix.adgeMatrix",
        "as.matrix.aTransposeView",
        "as.numeric,adgeMatrix-method",
        "as.vector,adgeMatrix-method"
      ]
    },
    {
      "page": "aTransposeView-class",
      "title": "Lazy transpose view of an adgeMatrix",
      "topics": [
        "aTransposeView-class"
      ]
    },
    {
      "page": "batch_chol",
      "title": "Batch Cholesky factorization",
      "topics": [
        "batch_chol"
      ]
    },
    {
      "page": "batch_crossprod",
      "title": "Batch crossproduct",
      "topics": [
        "batch_crossprod"
      ]
    },
    {
      "page": "batch_solve",
      "title": "Batch triangular solve",
      "topics": [
        "batch_solve"
      ]
    },
    {
      "page": "block_lanczos",
      "title": "Block Lanczos SVD via block Krylov iteration",
      "topics": [
        "block_lanczos",
        "block_svd"
      ]
    },
    {
      "page": "chol_diag",
      "title": "Extract the diagonal of a Cholesky factor",
      "topics": [
        "chol_diag"
      ]
    },
    {
      "page": "chol_factor",
      "title": "Compute the Cholesky factorization of an adgeMatrix",
      "topics": [
        "chol_factor"
      ]
    },
    {
      "page": "chol_logdet",
      "title": "Log-determinant from a Cholesky factor",
      "topics": [
        "chol_logdet"
      ]
    },
    {
      "page": "chol_solve",
      "title": "Solve a linear system using a Cholesky factor",
      "topics": [
        "chol_solve"
      ]
    },
    {
      "page": "chol_solve_batches",
      "title": "Solve many right-hand-side batches with one Cholesky factor",
      "topics": [
        "chol_solve_batches"
      ]
    },
    {
      "page": "chol-sparse-methods",
      "title": "Cholesky factorization for adgCMatrix",
      "topics": [
        "chol,adgCMatrix-method"
      ]
    },
    {
      "page": "chol-methods",
      "title": "Cholesky factorization for adgeMatrix",
      "topics": [
        "chol,adgeMatrix-method"
      ]
    },
    {
      "page": "correlation",
      "title": "Compute a correlation matrix",
      "topics": [
        "correlation"
      ]
    },
    {
      "page": "cov2cor-methods",
      "title": "Covariance-to-correlation methods for amatrix objects",
      "topics": [
        "cov2cor,adgCMatrix-method",
        "cov2cor,adgeMatrix-method"
      ]
    },
    {
      "page": "covariance",
      "title": "Backend-dispatched covariance matrix",
      "topics": [
        "covariance"
      ]
    },
    {
      "page": "crossprod_add_diag",
      "title": "Cross-product plus diagonal perturbation",
      "topics": [
        "crossprod_add_diag"
      ]
    },
    {
      "page": "crossprod_weighted",
      "title": "Weighted cross-product X'WX",
      "topics": [
        "crossprod_weighted"
      ]
    },
    {
      "page": "crossprod-sparse-methods",
      "title": "Cross-product methods for adgCMatrix",
      "topics": [
        "crossprod,adgCMatrix,adgCMatrix-method",
        "crossprod,adgCMatrix,adgeMatrix-method",
        "crossprod,adgCMatrix,ANY-method",
        "crossprod,adgCMatrix,dgCMatrix-method",
        "crossprod,adgCMatrix,dgeMatrix-method",
        "crossprod,adgCMatrix,Matrix-method",
        "crossprod,adgCMatrix,matrix-method",
        "crossprod,adgCMatrix,missing-method",
        "tcrossprod,adgCMatrix,adgCMatrix-method",
        "tcrossprod,adgCMatrix,adgeMatrix-method",
        "tcrossprod,adgCMatrix,ANY-method",
        "tcrossprod,adgCMatrix,dgCMatrix-method",
        "tcrossprod,adgCMatrix,dgeMatrix-method",
        "tcrossprod,adgCMatrix,Matrix-method",
        "tcrossprod,adgCMatrix,matrix-method",
        "tcrossprod,adgCMatrix,missing-method"
      ]
    },
    {
      "page": "crossprod-methods",
      "title": "Cross-product methods for adgeMatrix",
      "topics": [
        "crossprod,adgeMatrix,ANY-method",
        "crossprod,adgeMatrix,missing-method",
        "tcrossprod,adgeMatrix,ANY-method",
        "tcrossprod,adgeMatrix,missing-method"
      ]
    },
    {
      "page": "dist_matrix",
      "title": "GPU-accelerated pairwise distance matrix",
      "topics": [
        "dist_matrix"
      ]
    },
    {
      "page": "dot",
      "title": "Inner product of two vectors or matrices",
      "topics": [
        "dot"
      ]
    },
    {
      "page": "eigen-sparse-methods",
      "title": "Eigendecomposition for adgCMatrix",
      "topics": [
        "eigen,adgCMatrix-method"
      ]
    },
    {
      "page": "eigen-methods",
      "title": "Eigendecomposition for adgeMatrix",
      "topics": [
        "eigen,adgeMatrix-method"
      ]
    },
    {
      "page": "eigh",
      "title": "Symmetric eigendecomposition",
      "topics": [
        "eigh"
      ]
    },
    {
      "page": "ewise",
      "title": "Element-wise operations",
      "topics": [
        "ewise"
      ]
    },
    {
      "page": "gemm",
      "title": "Generalised matrix multiply (BLAS DGEMM interface)",
      "topics": [
        "gemm"
      ]
    },
    {
      "page": "irlba",
      "title": "GPU-accelerated truncated SVD via irlba",
      "topics": [
        "irlba"
      ]
    },
    {
      "page": "irlba_native",
      "title": "GPU-native truncated SVD via Lanczos bidiagonalization",
      "topics": [
        "irlba_native"
      ]
    },
    {
      "page": "kernel_matrix",
      "title": "GPU-accelerated pairwise kernel matrix",
      "topics": [
        "kernel_matrix"
      ]
    },
    {
      "page": "kron",
      "title": "Eager Kronecker product",
      "topics": [
        "kron"
      ]
    },
    {
      "page": "kron_matrix",
      "title": "Construct a lazy Kronecker product",
      "topics": [
        "kron_matrix"
      ]
    },
    {
      "page": "kronecker-methods",
      "title": "Kronecker product of backend-aware matrices",
      "topics": [
        "kronecker,adgCMatrix,adgCMatrix-method",
        "kronecker,adgCMatrix,adgeMatrix-method",
        "kronecker,adgCMatrix,matrix-method",
        "kronecker,adgeMatrix,adgCMatrix-method",
        "kronecker,adgeMatrix,adgeMatrix-method",
        "kronecker,adgeMatrix,matrix-method",
        "kronecker,matrix,adgCMatrix-method",
        "kronecker,matrix,adgeMatrix-method",
        "kronecker-methods"
      ]
    },
    {
      "page": "KronMatrix-class",
      "title": "Lazy Kronecker product of two matrices",
      "topics": [
        "KronMatrix-class"
      ]
    },
    {
      "page": "lm_fit",
      "title": "Fit a single linear model",
      "topics": [
        "lm_fit"
      ]
    },
    {
      "page": "lm_loo_cv",
      "title": "Leave-one-out cross-validation for linear models",
      "topics": [
        "lm_loo_cv"
      ]
    },
    {
      "page": "lu_factor",
      "title": "Store a general square matrix for LU-based solving",
      "topics": [
        "lu_factor"
      ]
    },
    {
      "page": "lu_solve",
      "title": "Solve a linear system using an LU factor",
      "topics": [
        "lu_solve"
      ]
    },
    {
      "page": "many_lm",
      "title": "Fit multiple linear models against a shared design matrix",
      "topics": [
        "many_lm"
      ]
    },
    {
      "page": "mat_fun",
      "title": "Matrix functions via symmetric eigendecomposition",
      "topics": [
        "mat_fun",
        "mat_log",
        "mat_pow",
        "mat_sqrt"
      ]
    },
    {
      "page": "matmul",
      "title": "Matrix multiplication",
      "topics": [
        "matmul"
      ]
    },
    {
      "page": "matmul-methods",
      "title": "Matrix multiplication for adgeMatrix",
      "topics": [
        "%*%,adgeMatrix,adgCMatrix-method",
        "%*%,adgeMatrix,adgeMatrix-method",
        "%*%,adgeMatrix,ANY-method",
        "%*%,adgeMatrix,aTransposeView-method",
        "%*%,adgeMatrix,dgCMatrix-method",
        "%*%,adgeMatrix,dgeMatrix-method",
        "%*%,adgeMatrix,Matrix-method",
        "%*%,adgeMatrix,matrix-method",
        "%*%,aTransposeView,adgeMatrix-method",
        "%*%,aTransposeView,ANY-method",
        "%*%,aTransposeView,aTransposeView-method",
        "%*%,aTransposeView,matrix-method",
        "%*%,dgCMatrix,adgCMatrix-method",
        "%*%,dgeMatrix,adgCMatrix-method",
        "%*%,KronMatrix,matrix-method",
        "%*%,KronMatrix,numeric-method",
        "%*%,matrix,adgCMatrix-method",
        "%*%,matrix,adgeMatrix-method",
        "%*%,matrix,aTransposeView-method",
        "%*%,matrix,KronMatrix-method",
        "%*%,numeric,adgCMatrix-method",
        "%*%,numeric,adgeMatrix-method",
        "%*%,numeric,KronMatrix-method",
        "matmul-methods"
      ]
    },
    {
      "page": "pairwise_sqdist_argmin",
      "title": "Nearest-centroid assignment via fused squared-distance computation",
      "topics": [
        "pairwise_sqdist_argmin"
      ]
    },
    {
      "page": "pca_coef",
      "title": "Project and reconstruct data using a truncated SVD",
      "topics": [
        "pca_coef"
      ]
    },
    {
      "page": "qr_downdate",
      "title": "QR downdate after removing one row",
      "topics": [
        "qr_downdate"
      ]
    },
    {
      "page": "qr_info",
      "title": "Inspect an amQR factorization object",
      "topics": [
        "qr_info"
      ]
    },
    {
      "page": "quad_form",
      "title": "Evaluate a quadratic form using a Cholesky factor",
      "topics": [
        "quad_form"
      ]
    },
    {
      "page": "resident_handle",
      "title": "Create a mutable GPU-resident handle",
      "topics": [
        "resident_handle"
      ]
    },
    {
      "page": "rh_colSums",
      "title": "Column sums of a GPU-resident handle",
      "topics": [
        "rh_colSums"
      ]
    },
    {
      "page": "rh_rowSums",
      "title": "Row sums of a GPU-resident handle",
      "topics": [
        "rh_rowSums"
      ]
    },
    {
      "page": "ridge_fit",
      "title": "Fit a single ridge regression model",
      "topics": [
        "ridge_fit"
      ]
    },
    {
      "page": "ridge_path",
      "title": "Compute a ridge regression solution path",
      "topics": [
        "ridge_path"
      ]
    },
    {
      "page": "rowmeans",
      "title": "Row and column means",
      "topics": [
        "colmeans",
        "rowmeans"
      ]
    },
    {
      "page": "rowscale",
      "title": "Row and column diagonal scaling",
      "topics": [
        "colscale",
        "rowscale"
      ]
    },
    {
      "page": "rowsums",
      "title": "Row and column sums",
      "topics": [
        "colsums",
        "rowsums"
      ]
    },
    {
      "page": "rowcol-summary-sparse-methods",
      "title": "Row and column summary methods for adgCMatrix",
      "topics": [
        "colMeans,adgCMatrix-method",
        "colSums,adgCMatrix-method",
        "rowMeans,adgCMatrix-method",
        "rowSums,adgCMatrix-method"
      ]
    },
    {
      "page": "rowcol-summary-methods",
      "title": "Row and column summary methods for adgeMatrix",
      "topics": [
        "colMeans,adgeMatrix-method",
        "colSums,adgeMatrix-method",
        "rowMeans,adgeMatrix-method",
        "rowSums,adgeMatrix-method"
      ]
    },
    {
      "page": "rsvd",
      "title": "GPU-native randomized SVD (Halko et al. 2011)",
      "topics": [
        "rsvd"
      ]
    },
    {
      "page": "segment_mean",
      "title": "Segment mean by group labels",
      "topics": [
        "segment_mean"
      ]
    },
    {
      "page": "segment_sum",
      "title": "Segment sum by group labels",
      "topics": [
        "segment_sum"
      ]
    },
    {
      "page": "sinkhorn",
      "title": "Doubly-stochastic scaling via Sinkhorn-Knopp iterations",
      "topics": [
        "sinkhorn"
      ]
    },
    {
      "page": "solve_triangular",
      "title": "Solve a triangular linear system",
      "topics": [
        "solve_triangular"
      ]
    },
    {
      "page": "solve-sparse-methods",
      "title": "Solve a linear system for adgCMatrix",
      "topics": [
        "solve,adgCMatrix,ANY-method",
        "solve,adgCMatrix,missing-method"
      ]
    },
    {
      "page": "solve-methods",
      "title": "Solve a linear system for adgeMatrix",
      "topics": [
        "solve,adgeMatrix,ANY-method",
        "solve,adgeMatrix,missing-method"
      ]
    },
    {
      "page": "svd_factor",
      "title": "Compute a truncated SVD of an aMatrix",
      "topics": [
        "svd_factor"
      ]
    },
    {
      "page": "svd_project",
      "title": "Project new data onto SVD left singular vectors",
      "topics": [
        "svd_project"
      ]
    },
    {
      "page": "svd_reconstruct",
      "title": "Reconstruct data from SVD coordinates",
      "topics": [
        "svd_reconstruct"
      ]
    },
    {
      "page": "svd-methods",
      "title": "Singular value decomposition for adgeMatrix",
      "topics": [
        "svd",
        "svd,adgeMatrix-method",
        "svd-methods"
      ]
    },
    {
      "page": "svd-sparse-methods",
      "title": "Singular value decomposition for adgCMatrix",
      "topics": [
        "svd,adgCMatrix-method"
      ]
    },
    {
      "page": "sym",
      "title": "Symmetrise a matrix",
      "topics": [
        "sym"
      ]
    },
    {
      "page": "tcrossprod_weighted",
      "title": "Weighted outer cross-product XWX'",
      "topics": [
        "tcrossprod_weighted"
      ]
    },
    {
      "page": "trace",
      "title": "Matrix trace",
      "topics": [
        "trace"
      ]
    },
    {
      "page": "trace_estim",
      "title": "Stochastic trace estimator (Hutchinson)",
      "topics": [
        "trace_estim"
      ]
    },
    {
      "page": "with_amatrix",
      "title": "Evaluate code with temporary amatrix defaults",
      "topics": [
        "with_amatrix"
      ]
    },
    {
      "page": "wls_fit",
      "title": "Fit a weighted least squares model",
      "topics": [
        "wls_fit"
      ]
    },
    {
      "page": "woodbury_logdet",
      "title": "Log-determinant via the Woodbury matrix determinant lemma",
      "topics": [
        "woodbury_logdet"
      ]
    },
    {
      "page": "woodbury_solve",
      "title": "Solve a linear system using the Woodbury matrix identity",
      "topics": [
        "woodbury_solve"
      ]
    },
    {
      "page": "xty_weighted",
      "title": "Weighted cross-product X'Wy",
      "topics": [
        "xty_weighted"
      ]
    }
  ],
  "_readme": "https://github.com/bbuchsbaum/amatrix/raw/HEAD/README.md",
  "_rundeps": [
    "lattice",
    "Matrix"
  ],
  "_sysdeps": [
    {
      "shlib": "liblapack",
      "package": "libopenblas0-pthread",
      "source": "openblas",
      "version": "0.3.32+ds-5",
      "name": "openblas",
      "homepage": "https://www.openblas.net/",
      "description": "Optimized BLAS (linear algebra) library (shared lib, pthread)"
    },
    {
      "shlib": "libblas",
      "package": "libopenblas0-pthread",
      "source": "openblas",
      "version": "0.3.32+ds-5",
      "name": "openblas",
      "homepage": "https://www.openblas.net/",
      "description": "Optimized BLAS (linear algebra) library (shared lib, pthread)"
    }
  ],
  "_vignettes": [
    {
      "source": "amatrix.Rmd",
      "filename": "amatrix.html",
      "title": "Getting started with backend-aware matrices in amatrix",
      "engine": "knitr::rmarkdown",
      "headings": [
        "What do your inputs look like?",
        "What is the quickest end-to-end path?",
        "How does amatrix decide where to run?",
        "When does shared-design caching help?",
        "What should you inspect after a fit?",
        "How do you ask for a fast backend?",
        "Where next?"
      ],
      "created": "2026-04-12 19:12:43",
      "modified": "2026-04-12 23:26:49",
      "commits": 2
    },
    {
      "source": "gpu.Rmd",
      "filename": "gpu.html",
      "title": "GPU Acceleration: Zero to First Matmul",
      "engine": "knitr::rmarkdown",
      "headings": [
        "How do I install a backend?",
        "Does it just work?",
        "Am I actually on the GPU?",
        "What does \"fast\" precision actually mean?",
        "Why did my small matrix stay on the CPU?",
        "What happens when the GPU fails?",
        "The one sharp edge: resident handles alias the GPU buffer",
        "Where next?"
      ],
      "created": "2026-07-02 00:57:16",
      "modified": "2026-07-02 12:06:38",
      "commits": 2
    },
    {
      "source": "performance.Rmd",
      "filename": "performance.html",
      "title": "When is amatrix fast?",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The speed contract",
        "Calibrate once per machine",
        "Read the benchmark report",
        "When the GPU wins",
        "When the CPU wins (and you should let it)",
        "Ask the dispatcher",
        "Residency and fallback telemetry",
        "Regenerating the baseline",
        "Honest defaults"
      ],
      "created": "2026-04-14 22:47:02",
      "modified": "2026-07-02 12:06:38",
      "commits": 2
    }
  ],
  "_score": 5.87069645798925,
  "_indexed": true,
  "_nocasepkg": "amatrix",
  "_universes": [
    "bbuchsbaum"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-07-02T15:18:01.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "aa1a39a22def2841186cc195dd1b4c7e0d5ff8e2",
      "fileid": "b4cebbefce1a64b3b941c8d0591aaab4bdb11a096aa8ce65a05e42bc7f1c0cf5",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/bbuchsbaum/actions/runs/28600745348"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-07-02T15:17:07.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "aa1a39a22def2841186cc195dd1b4c7e0d5ff8e2",
      "fileid": "6539a22f9676ae65b2ef8084691518c7a922414c3ff838f785bc90fa918371b9",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/bbuchsbaum/actions/runs/28600745348"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-07-02T15:17:37.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "aa1a39a22def2841186cc195dd1b4c7e0d5ff8e2",
      "fileid": "4edb379951ddc141ef8fed04ca8c4a53621f9bd7465096b5bad79dc20dda2fd2",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/bbuchsbaum/actions/runs/28600745348"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-07-02T15:17:12.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "aa1a39a22def2841186cc195dd1b4c7e0d5ff8e2",
      "fileid": "28537c97d3c6d9f0943c4e97f8765622bb828bdd71ea17ba28f4f812cc19b5d9",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/bbuchsbaum/actions/runs/28600745348"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.1.0",
      "date": "2026-07-02T15:17:18.000Z",
      "arch": "aarch64",
      "commit": "aa1a39a22def2841186cc195dd1b4c7e0d5ff8e2",
      "fileid": "4965cf51a408ec0c0067ad9e0cf68f6b7941a5324c6a84c35995e8d2cfd4ca79",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/bbuchsbaum/actions/runs/28600745348"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.1.0",
      "date": "2026-07-02T15:18:30.000Z",
      "arch": "x86_64",
      "commit": "aa1a39a22def2841186cc195dd1b4c7e0d5ff8e2",
      "fileid": "65a2412dcbdff6d095b4f5f04824a96e8f754455aa393302511009e2f86ac94b",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/bbuchsbaum/actions/runs/28600745348"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.1.0",
      "date": "2026-07-02T15:17:23.000Z",
      "arch": "aarch64",
      "commit": "aa1a39a22def2841186cc195dd1b4c7e0d5ff8e2",
      "fileid": "f8767f478da27b6213fbdf3ec48f9cf5884afd672f4e14c3321c548ac5b6403b",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/bbuchsbaum/actions/runs/28600745348"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.1.0",
      "date": "2026-07-02T15:18:59.000Z",
      "arch": "x86_64",
      "commit": "aa1a39a22def2841186cc195dd1b4c7e0d5ff8e2",
      "fileid": "026159e8244e54198d0c8ba982f014ce707123f986ab9199bf9c5c092de466b7",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/bbuchsbaum/actions/runs/28600745348"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.1.0",
      "date": "2026-07-02T15:17:29.000Z",
      "arch": "emscripten",
      "commit": "aa1a39a22def2841186cc195dd1b4c7e0d5ff8e2",
      "fileid": "aa39ea3e7f476bdc082974b9f00424f7d116f5aa9097196479f890706a571198",
      "status": "success",
      "buildurl": "https://github.com/r-universe/bbuchsbaum/actions/runs/28600745348"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-07-02T15:16:46.000Z",
      "arch": "x86_64",
      "commit": "aa1a39a22def2841186cc195dd1b4c7e0d5ff8e2",
      "fileid": "94ba7e4ca814f3a4a3b1784398faad9b05cdb8516d253665819d5b2cb50f4c3a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bbuchsbaum/actions/runs/28600745348"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-07-02T15:16:44.000Z",
      "arch": "x86_64",
      "commit": "aa1a39a22def2841186cc195dd1b4c7e0d5ff8e2",
      "fileid": "603a9bfc8d38aa7167cf675c8ce109e6919b739f2d0f4d48e40d98417a729f07",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bbuchsbaum/actions/runs/28600745348"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-07-02T15:17:29.000Z",
      "arch": "x86_64",
      "commit": "aa1a39a22def2841186cc195dd1b4c7e0d5ff8e2",
      "fileid": "e1d1c0098beaeaba49bc985226b3986e821a59eb343b6fbeaa67293670de835c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bbuchsbaum/actions/runs/28600745348"
    }
  ]
}