Skip to content

Commit

Permalink
First pass
Browse files Browse the repository at this point in the history
  • Loading branch information
sjmgarnier committed Aug 7, 2024
1 parent 8d963eb commit d83b89b
Show file tree
Hide file tree
Showing 24 changed files with 680 additions and 2 deletions.
5 changes: 5 additions & 0 deletions .Rbuildignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
^wcec\.Rproj$
^\.Rproj\.user$
^_pkgdown\.yml$
^docs$
^pkgdown$
^\.github$
^sandbox$
1 change: 1 addition & 0 deletions .github/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.html
52 changes: 52 additions & 0 deletions .github/workflows/R-CMD-check.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
on:
push:
branches: [main, master]
pull_request:
branches: [main, master]

name: R-CMD-check.yaml

permissions: read-all

jobs:
R-CMD-check:
runs-on: ${{ matrix.config.os }}

name: ${{ matrix.config.os }} (${{ matrix.config.r }})

strategy:
fail-fast: false
matrix:
config:
- {os: macos-latest, r: 'release'}
- {os: windows-latest, r: 'release'}
- {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'}
- {os: ubuntu-latest, r: 'release'}
- {os: ubuntu-latest, r: 'oldrel-1'}

env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
R_KEEP_PKG_SOURCE: yes

steps:
- uses: actions/checkout@v4

- uses: r-lib/actions/setup-pandoc@v2

- uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ matrix.config.r }}
http-user-agent: ${{ matrix.config.http-user-agent }}
use-public-rspm: true

- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: any::rcmdcheck
needs: check

- uses: r-lib/actions/check-r-package@v2
with:
upload-snapshots: true
build_args: 'c("--no-manual","--compact-vignettes=gs+qpdf")'
50 changes: 50 additions & 0 deletions .github/workflows/pkgdown.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
on:
push:
branches: [main, master]
pull_request:
branches: [main, master]
release:
types: [published]
workflow_dispatch:

name: pkgdown.yaml

permissions: read-all

jobs:
pkgdown:
runs-on: ubuntu-latest
# Only restrict concurrency for non-PR jobs
concurrency:
group: pkgdown-${{ github.event_name != 'pull_request' || github.run_id }}
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
permissions:
contents: write
steps:
- uses: actions/checkout@v4

- uses: r-lib/actions/setup-pandoc@v2

- uses: r-lib/actions/setup-r@v2
with:
use-public-rspm: true

- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: any::pkgdown, local::.
needs: website

- name: Build site
run: pkgdown::build_site_github_pages(new_process = FALSE, install = FALSE)
shell: Rscript {0}

- name: Deploy to GitHub pages 🚀
if: github.event_name != 'pull_request'
uses: JamesIves/[email protected]
with:
clean: false
branch: gh-pages
folder: docs
61 changes: 61 additions & 0 deletions .github/workflows/test-coverage.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
on:
push:
branches: [main, master]
pull_request:
branches: [main, master]

name: test-coverage.yaml

permissions: read-all

jobs:
test-coverage:
runs-on: ubuntu-latest
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}

steps:
- uses: actions/checkout@v4

- uses: r-lib/actions/setup-r@v2
with:
use-public-rspm: true

- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: any::covr, any::xml2
needs: coverage

- name: Test coverage
run: |
cov <- covr::package_coverage(
quiet = FALSE,
clean = FALSE,
install_path = file.path(normalizePath(Sys.getenv("RUNNER_TEMP"), winslash = "/"), "package")
)
covr::to_cobertura(cov)
shell: Rscript {0}

- uses: codecov/codecov-action@v4
with:
fail_ci_if_error: ${{ github.event_name != 'pull_request' && true || false }}
file: ./cobertura.xml
plugin: noop
disable_search: true
token: ${{ secrets.CODECOV_TOKEN }}

- name: Show testthat output
if: always()
run: |
## --------------------------------------------------------------------
find '${{ runner.temp }}/package' -name 'testthat.Rout*' -exec cat '{}' \; || true
shell: bash

- name: Upload test results
if: failure()
uses: actions/upload-artifact@v4
with:
name: coverage-test-failures
path: ${{ runner.temp }}/package
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@
.httr-oauth
.DS_Store
.quarto
docs
sandbox
10 changes: 9 additions & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,13 @@ License: `use_mit_license()`, `use_gpl3_license()` or friends to pick a
Encoding: UTF-8
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.3.2
URL: https://github.com/swarm-lab/wcec
URL: https://github.com/swarm-lab/wcec, https://swarm-lab.github.io/wcec/
BugReports: https://github.com/swarm-lab/wcec/issues
LazyData: true
LinkingTo:
Rcpp,
RcppEigen
Imports:
Rcpp,
RcppEigen,
Rfast
4 changes: 4 additions & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
# Generated by roxygen2: do not edit by hand

export(wcec)
import(RcppEigen)
importFrom(Rcpp,evalCpp)
useDynLib(wcec, .registration = TRUE)
33 changes: 33 additions & 0 deletions R/RcppExports.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Generated by using Rcpp::compileAttributes() -> do not edit by hand
# Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393

#' @name .wcov
#'
#' @title Weighted Covariance Matrix
#'
#' @description \code{wcov} computes the estimates of the weighted covariance
#' matrix and the weighted mean of the data.
#'
#' @param x A matrix with \eqn{m} columns and \eqn{n} rows, where each column
#' represents a different variable and each row a different observation.
#'
#' @param w A non-negative and non-zero vector of weights for each observation.
#' Its length must equal the number of rows of x.
#'
#' @return A list with two components:
#' \itemize{
#' \item \code{center}: an estimate for the center (mean) of the data.
#' \item \code{cov}: the estimated (weighted) covariance matrix.
#' }
#'
#' @author Simon Garnier, \email{garnier@@njit.edu}
#'
#' @examples
#' m <- matrix(c(rnorm(500, 6), rnorm(500, 11, 3)), ncol = 2)
#' w <- runif(500)
#' gravitree:::.wcov(m, w)
#'
.wcov <- function(x, w) {
.Call('_wcec_wcov', PACKAGE = 'wcec', x, w)
}

57 changes: 57 additions & 0 deletions R/wcec-package.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#' wcec: ...
#'
#' The \code{wcec} package provides ...
#'
#' @author Simon Garnier <garnier@@njit.edu>
#' @author Jason Graham <jason.graham@@scranton.edu>
#'
#' Maintainer: Simon Garnier <garnier@@njit.edu>
#'
#' @details
#' \tabular{ll}{
#' Package: \tab wcec\cr
#' Type: \tab Package\cr
#' Version: \tab 0.1\cr
#' Date: \tab 2024-08-07\cr
#' License: \tab GPL-3\cr
#' }
#'
#' @name wcec
#' @import RcppEigen
#' @importFrom Rcpp evalCpp
#' @useDynLib wcec, .registration = TRUE
"_PACKAGE"


#' @title Four Gaussian Clusters
#'
#' @description Matrix of 2-dimensional points forming four Gaussian clusters.
#'
#' @name four_Gaussians
#'
#' @docType data
#'
#' @keywords datasets
#'
#' @examples
#' data(four_Gaussians)
#' plot(four_Gaussians, pch = 19)
#'
NULL


#' @title Three Gaussian Clusters
#'
#' @description Matrix of 2-dimensional points forming three Gaussian clusters.
#'
#' @name three_Gaussians
#'
#' @docType data
#'
#' @keywords datasets
#'
#' @examples
#' data(three_Gaussians)
#' plot(three_Gaussians, pch = 19)
#'
NULL
Loading

0 comments on commit d83b89b

Please sign in to comment.