Skip to content

Commit

Permalink
Add README
Browse files Browse the repository at this point in the history
  • Loading branch information
zeehio committed Sep 29, 2022
1 parent b6f1851 commit b086fa1
Show file tree
Hide file tree
Showing 3 changed files with 118 additions and 0 deletions.
61 changes: 61 additions & 0 deletions README.Rmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
output: github_document
---

<!-- README.md is generated from README.Rmd. Please edit that file -->

```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```

# sgolay

<!-- badges: start -->
[![CRAN status](https://www.r-pkg.org/badges/version/sgolay)](https://CRAN.R-project.org/package=sgolay)
[![R-CMD-check](https://github.com/zeehio/sgolay/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/zeehio/sgolay/actions/workflows/R-CMD-check.yaml)
[![Codecov test coverage](https://codecov.io/gh/zeehio/sgolay/branch/main/graph/badge.svg)](https://app.codecov.io/gh/zeehio/sgolay?branch=main)
<!-- badges: end -->

The goal of sgolay is to offer efficient and vectorized Savitzky-Golay filters.

## Installation

You can install the CRAN version with

```r
# install.packages("sgolay")
```

Or you can install the development version of sgolay from [GitHub](https://github.com/) with:

``` r
# install.packages("remotes")
remotes::install_github("zeehio/sgolay")
```

## Benchmark

`sgolay` is faster than `signal`, especially on either larger filter lengths or when
applied on matrices, since it uses the Fast Fourier Transform and avoids several
memory copies and extra allocations.


```{r}
library(sgolay)
x <- matrix(runif(1000*1000), nrow = 1000, ncol = 1000)
filt <- signal::sgolay(p = 2, n = 51)
timing <- bench::mark(
signal = apply(x, 2L, function(s) signal::sgolayfilt(s, filt)),
sgolay = sgolay::sgolayfilt(x, filt),
min_iterations = 50
)
plot(timing, type = 'ridge')
```

57 changes: 57 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@

<!-- README.md is generated from README.Rmd. Please edit that file -->

# sgolay

<!-- badges: start -->

[![CRAN
status](https://www.r-pkg.org/badges/version/sgolay)](https://CRAN.R-project.org/package=sgolay)
[![R-CMD-check](https://github.com/zeehio/sgolay/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/zeehio/sgolay/actions/workflows/R-CMD-check.yaml)
[![Codecov test
coverage](https://codecov.io/gh/zeehio/sgolay/branch/main/graph/badge.svg)](https://app.codecov.io/gh/zeehio/sgolay?branch=main)
<!-- badges: end -->

The goal of sgolay is to offer efficient and vectorized Savitzky-Golay
filters.

## Installation

You can install the CRAN version with

``` r
# install.packages("sgolay")
```

Or you can install the development version of sgolay from
[GitHub](https://github.com/) with:

``` r
# install.packages("remotes")
remotes::install_github("zeehio/sgolay")
```

## Benchmark

`sgolay` is faster than `signal`, especially on either larger filter
lengths or when applied on matrices, since it uses the Fast Fourier
Transform and avoids several memory copies and extra allocations.

``` r
library(sgolay)
x <- matrix(runif(1000*1000), nrow = 1000, ncol = 1000)

filt <- signal::sgolay(p = 2, n = 51)

timing <- bench::mark(
signal = apply(x, 2L, function(s) signal::sgolayfilt(s, filt)),
sgolay = sgolay::sgolayfilt(x, filt),
min_iterations = 50
)
#> Warning: Some expressions had a GC in every iteration; so filtering is disabled.
plot(timing, type = 'ridge')
#> Loading required namespace: tidyr
#> Picking joint bandwidth of 0.0135
```

<img src="man/figures/README-unnamed-chunk-2-1.png" width="100%" />
Binary file added man/figures/README-unnamed-chunk-2-1.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit b086fa1

Please sign in to comment.