{
  "_id": "6ae00b9c4d02104fb3ebfe71",
  "Package": "genpca",
  "Type": "Package",
  "Title": "Generalized Principal Component Analysis",
  "Version": "0.2.2",
  "Authors@R": "c(\nperson(\"Brad\", \"Buchsbaum\",\nemail = \"brad.buchsbaum@gmail.com\",\nrole = c(\"aut\", \"cre\", \"cph\")))",
  "Description": "Generalized PCA and related matrix decompositions in\nweighted inner-product spaces. Methods are based on Allen, G.\nI., Grosenick, L., and Taylor, J. (2014)\n<doi:10.1080/01621459.2013.852978>, \"A generalized least-square\nmatrix decomposition\", Journal of the American Statistical\nAssociation, 109(505), 145-159; and Abdi, H. (2007), \"Singular\nvalue decomposition (SVD) and generalized singular value\ndecomposition\"\n<https://personal.utdallas.edu/~herve/Abdi-SVD2007-pretty.pdf>,\nin \"Encyclopedia of Measurement and Statistics\", 907-912.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "Language": "en-US",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr",
  "RoxygenNote": "7.3.3",
  "URL": "https://bbuchsbaum.github.io/genpca/,\nhttps://github.com/bbuchsbaum/genpca",
  "BugReports": "https://github.com/bbuchsbaum/genpca/issues",
  "Config/Needs/website": "albersdown",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-10-27 02:19:32 UTC",
    "User": "root"
  },
  "Author": "Brad Buchsbaum [aut, cre, cph]",
  "Maintainer": "Brad Buchsbaum <brad.buchsbaum@gmail.com>",
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-10-26 19:30:02 UTC",
  "RemoteUrl": "https://github.com/cran/genpca",
  "RemoteRef": "HEAD",
  "RemoteSha": "a63dfc9ec733ca9cc14848026dd815f261c252bc",
  "_user": "cran",
  "_type": "src",
  "_file": "genpca_0.2.2.tar.gz",
  "_fileid": "https://r2.ropensci.org/c5a84969a165c52c917540a60d044af32be7eaf5245c5c93a4be4d26a335cb88",
  "_filesize": 1172946,
  "_sha256": "c5a84969a165c52c917540a60d044af32be7eaf5245c5c93a4be4d26a335cb88",
  "_expires": "2027-02-04T02:25:29.000Z",
  "_created": "2026-10-27T02:19:32.000Z",
  "_published": "2026-10-27T02:25:32.103Z",
  "_upstream": "https://github.com/cran/genpca",
  "_status": "success",
  "_maintainer": {
    "name": "Brad Buchsbaum",
    "email": "brad.buchsbaum@gmail.com",
    "login": "bbuchsbaum",
    "description": "",
    "uuid": 53819
  },
  "_jobs": [
    {
      "job": 121970767657,
      "time": 193,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12704708746"
    },
    {
      "job": 121970767541,
      "time": 259,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12705600169"
    },
    {
      "job": 121970767581,
      "time": 190,
      "config": "linux-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12704474846"
    },
    {
      "job": 121970767566,
      "time": 183,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12704489778"
    },
    {
      "job": 121969386858,
      "time": 259,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12704683410"
    },
    {
      "job": 121970767502,
      "time": 111,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12704897796"
    },
    {
      "job": 121970767503,
      "time": 280,
      "config": "windows-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12704793804"
    },
    {
      "job": 121970767492,
      "time": 222,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12705140611"
    },
    {
      "job": 121970767553,
      "time": 287,
      "config": "windows-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12704684199"
    },
    {
      "job": 121970767491,
      "time": 208,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12704703775"
    }
  ],
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/40437398326",
  "_commit": {
    "id": "a63dfc9ec733ca9cc14848026dd815f261c252bc",
    "author": "Brad Buchsbaum <brad.buchsbaum@gmail.com>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 0.2.2\n",
    "time": 1793043002
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "Rcpp",
      "role": "LinkingTo"
    },
    {
      "package": "RcppArmadillo",
      "role": "LinkingTo"
    },
    {
      "package": "RcppEigen",
      "role": "LinkingTo"
    },
    {
      "package": "Rcpp",
      "role": "Imports"
    },
    {
      "package": "eigencore",
      "version": ">= 1.0.3",
      "role": "Imports"
    },
    {
      "package": "FNN",
      "role": "Imports"
    },
    {
      "package": "Matrix",
      "role": "Imports"
    },
    {
      "package": "multivarious",
      "version": ">= 0.3.0",
      "role": "Imports"
    },
    {
      "package": "assertthat",
      "role": "Imports"
    },
    {
      "package": "methods",
      "role": "Imports"
    },
    {
      "package": "digest",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "adjoin",
      "role": "Suggests"
    },
    {
      "package": "irlba",
      "role": "Suggests"
    },
    {
      "package": "matrixStats",
      "role": "Suggests"
    },
    {
      "package": "clue",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "albersdown",
      "role": "Suggests"
    },
    {
      "package": "ragg",
      "role": "Suggests"
    },
    {
      "package": "systemfonts",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-38",
      "n": 2
    },
    {
      "week": "2026-44",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "0.2.0",
      "date": "2026-09-15"
    },
    {
      "name": "0.2.1",
      "date": "2026-09-17"
    },
    {
      "name": "0.2.2",
      "date": "2026-10-26"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "bbuchsbaum",
      "count": 3,
      "uuid": 53819
    }
  ],
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "followers": 634,
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 339,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/genpca"
  },
  "_devurl": "https://github.com/bbuchsbaum/genpca",
  "_pkgdown": "https://bbuchsbaum.github.io/genpca/",
  "_searchresults": 22,
  "_topics": [
    "openblas",
    "cpp"
  ],
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/genpca.html",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/bbuchsbaum/genpca",
  "_realowner": "bbuchsbaum",
  "_cranurl": false,
  "_releases": [
    {
      "version": "0.2.0",
      "date": "2026-09-15"
    },
    {
      "version": "0.2.1",
      "date": "2026-09-17"
    },
    {
      "version": "0.2.2",
      "date": "2026-10-26"
    }
  ],
  "_exports": [
    "components",
    "geigen_cov",
    "genpca",
    "genpca_cov",
    "genpls",
    "genplsc",
    "gmd_clear_cache",
    "gpca_mle",
    "gplssvd_op",
    "mnpca_mrl",
    "reconstruct",
    "repair_metric",
    "rpls",
    "sfpca",
    "transfer",
    "truncate"
  ],
  "_help": [
    {
      "page": "geigen_cov",
      "title": "Generalized eigenproblem on a covariance matrix",
      "topics": [
        "geigen_cov"
      ]
    },
    {
      "page": "genpca",
      "title": "Generalised Principal Components Analysis (GPCA)",
      "topics": [
        "genpca"
      ]
    },
    {
      "page": "genpca_cov",
      "title": "Generalized PCA on a covariance matrix (GMD form)",
      "topics": [
        "genpca_cov"
      ]
    },
    {
      "page": "genpls",
      "title": "Generalized PLS via Implicit Operator (PLS-SVD / GPLSSVD)",
      "topics": [
        "genpls"
      ]
    },
    {
      "page": "genplsc",
      "title": "Canonical Generalized PLS (alias)",
      "topics": [
        "genplsc"
      ]
    },
    {
      "page": "gmd_clear_cache",
      "title": "Clear internal cache for matrix decompositions",
      "topics": [
        "gmd_clear_cache"
      ]
    },
    {
      "page": "gpca_mle",
      "title": "Experimental penalized-ML estimation of GPCA metrics",
      "topics": [
        "gpca_mle"
      ]
    },
    {
      "page": "gplssvd_op",
      "title": "Generalized PLS-SVD via Implicit Operator (memory-safe)",
      "topics": [
        "gplssvd_op"
      ]
    },
    {
      "page": "mnpca_mrl",
      "title": "Matrix-Normal PCA via Maximum Regularized Likelihood",
      "topics": [
        "mnpca_mrl"
      ]
    },
    {
      "page": "print.sfpca",
      "title": "Print an sfpca fit",
      "topics": [
        "print.sfpca"
      ]
    },
    {
      "page": "reconstruct.genpca",
      "title": "Reconstruct data from a genpca fit",
      "topics": [
        "reconstruct.genpca"
      ]
    },
    {
      "page": "reconstruct.sfpca",
      "title": "Reconstruct data from an sfpca fit",
      "topics": [
        "reconstruct.sfpca"
      ]
    },
    {
      "page": "repair_metric",
      "title": "Repair a metric matrix explicitly",
      "topics": [
        "repair_metric"
      ]
    },
    {
      "page": "rpls",
      "title": "Regularised / Generalised Partial Least Squares (RPLS / GPLS)",
      "topics": [
        "rpls"
      ]
    },
    {
      "page": "sfpca",
      "title": "Sparse and Functional Principal Components Analysis (SFPCA) with Spatial Coordinates",
      "topics": [
        "sfpca"
      ]
    },
    {
      "page": "transfer.cross_projector",
      "title": "Compatibility wrapper for multivarious::transfer",
      "topics": [
        "transfer.cross_projector"
      ]
    },
    {
      "page": "truncate",
      "title": "Truncate a projection to fewer components",
      "topics": [
        "truncate"
      ]
    },
    {
      "page": "truncate.genpca",
      "title": "Truncate a genpca fit to fewer components",
      "topics": [
        "truncate.genpca"
      ]
    }
  ],
  "_readme": "https://github.com/cran/genpca/raw/HEAD/README.md",
  "_rundeps": [
    "assertthat",
    "chk",
    "cli",
    "corpcor",
    "digest",
    "eigencore",
    "FNN",
    "geigen",
    "glue",
    "lattice",
    "lifecycle",
    "magrittr",
    "Matrix",
    "multivarious",
    "pillar",
    "pkgconfig",
    "Rcpp",
    "RcppArmadillo",
    "RcppEigen",
    "rlang",
    "tibble",
    "utf8",
    "vctrs"
  ],
  "_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)"
    },
    {
      "shlib": "libstdc++",
      "package": "libstdc++6",
      "source": "gcc",
      "version": "16-20260322-1ubuntu1",
      "name": "c++",
      "homepage": "http://gcc.gnu.org/",
      "description": "GNU Standard C++ Library v3"
    }
  ],
  "_vignettes": [
    {
      "source": "gplssvd-reference.Rmd",
      "filename": "gplssvd-reference.html",
      "title": "Generalized PLS-SVD: Explicit Whitening Reference",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Quick practical use",
        "Reference for contributors",
        "Notation",
        "Reference implementation",
        "Cross-checking the operator",
        "Where next"
      ],
      "created": "2026-09-15 10:50:19",
      "modified": "2026-09-15 10:50:19",
      "commits": 1
    },
    {
      "source": "genpca.Rmd",
      "filename": "genpca.html",
      "title": "Getting Started with genpca",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Fit a weighted analysis",
        "Use the fitted object",
        "Add observation weights",
        "Choose the number of components",
        "Where next",
        "The decomposition",
        "Two metrics, one weighted objective",
        "The problem it solves",
        "The solution: whiten, decompose, unwhiten",
        "What the metrics mean",
        "Choosing structured metrics",
        "Choosing a backend",
        "What are ou, ov, u, and v?",
        "Relation to the French school",
        "References"
      ],
      "created": "2026-09-15 10:50:19",
      "modified": "2026-09-15 10:50:19",
      "commits": 1
    },
    {
      "source": "gpca-scale.Rmd",
      "filename": "gpca-scale.html",
      "title": "GPCA at Scale and Special Cases",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Backend selection",
        "Backends on the same problem",
        "Sparse workflow (spectra)",
        "What stays sparse",
        "Covariance-only GPCA",
        "Out-of-sample projection",
        "Performance tips",
        "Where next"
      ],
      "created": "2026-09-15 10:50:19",
      "modified": "2026-09-15 10:50:19",
      "commits": 1
    },
    {
      "source": "gpca-metrics.Rmd",
      "filename": "gpca-metrics.html",
      "title": "GPCA Metrics: Building M and A",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Why metrics",
        "Heteroscedastic diagonals",
        "Inverse column variance is scaled PCA",
        "Weighting both margins at once",
        "Which way does a metric point?",
        "Recipes",
        "AR(1) row metric (whitens temporal autocorrelation)",
        "Spatial RBF kernel (whitens smooth spatial noise)",
        "Graph Laplacian (emphasises contrast across edges)",
        "A note on sfpca()",
        "Learning metrics with gpca_mle()",
        "SPD requirements and remedies",
        "Why the requirement exists",
        "What happens when a metric falls short",
        "Where next"
      ],
      "created": "2026-09-15 10:50:19",
      "modified": "2026-09-15 10:50:19",
      "commits": 1
    },
    {
      "source": "structured-noise.Rmd",
      "filename": "structured-noise.html",
      "title": "Modelling Structured Noise",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The problem",
        "A metric is a spectral filter",
        "Building these matrices in practice",
        "What a metric can and cannot separate",
        "Whiten by the noise, not by the signal",
        "Compare bounded and linearly increasing weights",
        "Use both margins",
        "When one metric is not enough",
        "Caveats worth carrying",
        "Where next"
      ],
      "created": "2026-09-15 10:50:19",
      "modified": "2026-09-15 10:50:19",
      "commits": 1
    },
    {
      "source": "sfpca.Rmd",
      "filename": "sfpca.html",
      "title": "Sparse and Functional PCA with sfpca()",
      "engine": "knitr::rmarkdown",
      "headings": [
        "When to reach for it",
        "A worked example",
        "What the two penalties do",
        "Choosing the penalties",
        "Reading the output",
        "Metric form versus constraint form",
        "Practical notes",
        "Where next",
        "Reference"
      ],
      "created": "2026-09-15 10:50:19",
      "modified": "2026-09-15 10:50:19",
      "commits": 1
    }
  ],
  "_score": 4.12057393120585,
  "_indexed": false,
  "_nocasepkg": "genpca",
  "_universes": [
    "cran"
  ],
  "_previous": "0.2.1",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.2",
      "date": "2026-10-27T02:22:19.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "a63dfc9ec733ca9cc14848026dd815f261c252bc",
      "fileid": "https://r2.ropensci.org/cde1ad96968791b15d922742a8784f9cd81e8e704aff5eb480670f9205fd6365",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40437398326"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.2",
      "date": "2026-10-27T02:23:03.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "a63dfc9ec733ca9cc14848026dd815f261c252bc",
      "fileid": "https://r2.ropensci.org/45bc88f365715e5b7d3dbb87d74054132f6f68498c6af172e2110d362ec9779a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40437398326"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.2.2",
      "date": "2026-10-27T02:22:19.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "a63dfc9ec733ca9cc14848026dd815f261c252bc",
      "fileid": "https://r2.ropensci.org/8bf92998b0b8bd9c9c3248937fccef36849ea6aeeda1d8ee1df0fedc16261a33",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40437398326"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.2.2",
      "date": "2026-10-27T02:22:16.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "a63dfc9ec733ca9cc14848026dd815f261c252bc",
      "fileid": "https://r2.ropensci.org/da7f794d980a0bf076d011247526ea2ee9f3e57f618dedd09379bff92ba07d22",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40437398326"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.2.2",
      "date": "2026-10-27T02:22:05.000Z",
      "arch": "emscripten",
      "commit": "a63dfc9ec733ca9cc14848026dd815f261c252bc",
      "fileid": "https://r2.ropensci.org/98310dcf9f32d55ce86d9902cdc337ee0b52b45b34268f542b839ecdbb4248c7",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40437398326"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.2.2",
      "date": "2026-10-27T02:23:15.000Z",
      "arch": "aarch64",
      "commit": "a63dfc9ec733ca9cc14848026dd815f261c252bc",
      "fileid": "https://r2.ropensci.org/c01d9fdd35db430ffef1b3498eed40c21b381567722b23c2e841e8ac8fc68236",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40437398326"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.2.2",
      "date": "2026-10-27T02:21:38.000Z",
      "arch": "x86_64",
      "commit": "a63dfc9ec733ca9cc14848026dd815f261c252bc",
      "fileid": "https://r2.ropensci.org/9516a73d9b126616c18b3b9774be3fc55d8715335cda5af82e8ff025aeff6ca2",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40437398326"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.2.2",
      "date": "2026-10-27T02:23:26.000Z",
      "arch": "aarch64",
      "commit": "a63dfc9ec733ca9cc14848026dd815f261c252bc",
      "fileid": "https://r2.ropensci.org/32a99aaed760eb4513812dfff6b79f99abe63c0e89bac96a754adc9dac7da18a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40437398326"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.2.2",
      "date": "2026-10-27T02:21:26.000Z",
      "arch": "x86_64",
      "commit": "a63dfc9ec733ca9cc14848026dd815f261c252bc",
      "fileid": "https://r2.ropensci.org/7bd3e6bd58680b4a705433921ecf07ddb440895d38b2121ab522a4677e6290f0",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40437398326"
    }
  ]
}