dspline

Tools for computations with discrete splines

https://github.com/glmgen/dspline

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.9%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Tools for computations with discrete splines

Basic Info
Statistics
  • Stars: 7
  • Watchers: 1
  • Forks: 3
  • Open Issues: 3
  • Releases: 1
Created about 4 years ago · Last pushed about 1 year ago
Metadata Files
Readme Changelog License

README.Rmd

---
output: github_document
---



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

# dspline


[![R-CMD-check](https://github.com/glmgen/dspline/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/glmgen/dspline/actions/workflows/R-CMD-check.yaml)
[![CRAN status](https://www.r-pkg.org/badges/version/dspline)](https://CRAN.R-project.org/package=dspline)


These are *not* B-splines:

```{r db-splines, echo=FALSE, dev="png", fig.width=7, fig.height=3, dpi=300}
library(dspline)
n = 50
k = 2

set.seed(11)
e = runif(n, -1/(2.5*(n+1)), 1/(2.5*(n+1)))
xd = 1:n/(n+1) + e
x = seq(0, 1, length = 5*n)
knot_idx = round(seq((k+1) + 5, (n-1) - 5, length = 4))
N1 = n_mat(k, xd, knot_idx = knot_idx)
N2 = n_eval(k, xd, x, knot_idx = knot_idx, N = N1)

par(mar = rep(0.01, 4))
matplot(x, N2, type = "l", lty = 1, col = 1:ncol(N2), 
        xlim = c(0, 1), ylim = c(0, 1), axes = FALSE)
matplot(xd, N1, type = "p", pch = 19, col = 1:ncol(N1), add = TRUE)
abline(v = xd[knot_idx], lty = 2, lwd = 0.5, col = 8)
```

These are called *discrete* B-splines. They span a function space called
**discrete splines**, which are analogous to splines, but defined in terms of 
a suitable discrete notion of smoothness. 

- Discrete splines have continuous *discrete* derivatives at their knots (rather
  than continuous derivatives, as splines do). 

- They have important computational properties, like the fact that interpolation
within the space of discrete splines can be done in *constant-time*. 

- They are intimately connected to trend filtering (they provide the basis
  representation that underlies the trend filtering estimator). 

For more background, see the monograph:
  ["Divided differences, falling factorials, and discrete splines:
  Another look at trend filtering and related
  problems"](https://www.stat.berkeley.edu/~ryantibs/papers/dspline.pdf).

The `dspline` package provides tools for computations with discrete splines. The
core routines are written in C++ for efficiency. See the
[reference index](https://glmgen.github.io/dspline/reference/index.html) for a
summary of the tools that are available.

## Installation

To install the released version from CRAN:

``` r
install.packages("dspline")
```

To install the development version from GitHub:

``` r
# install.packages("pak")
pak::pak("glmgen/dspline")
```

Owner

  • Name: glmgen
  • Login: glmgen
  • Kind: organization

GitHub Events

Total
  • Create event: 9
  • Release event: 1
  • Issues event: 7
  • Watch event: 1
  • Delete event: 5
  • Issue comment event: 11
  • Push event: 43
  • Pull request review event: 1
  • Pull request event: 15
  • Fork event: 1
Last Year
  • Create event: 9
  • Release event: 1
  • Issues event: 7
  • Watch event: 1
  • Delete event: 5
  • Issue comment event: 11
  • Push event: 43
  • Pull request review event: 1
  • Pull request event: 15
  • Fork event: 1

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 3
  • Total pull requests: 8
  • Average time to close issues: 10 months
  • Average time to close pull requests: 1 day
  • Total issue authors: 3
  • Total pull request authors: 3
  • Average comments per issue: 3.0
  • Average comments per pull request: 0.75
  • Merged pull requests: 7
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 8
  • Average time to close issues: 11 days
  • Average time to close pull requests: 1 day
  • Issue authors: 2
  • Pull request authors: 3
  • Average comments per issue: 4.0
  • Average comments per pull request: 0.75
  • Merged pull requests: 7
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • brookslogan (1)
  • ryantibs (1)
  • dajmcdon (1)
Pull Request Authors
  • ryantibs (5)
  • dajmcdon (2)
  • brookslogan (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • cran 228 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 1
  • Total maintainers: 1
cran.r-project.org: dspline

Tools for Computations with Discrete Splines

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 228 Last month
Rankings
Dependent packages count: 26.5%
Dependent repos count: 32.7%
Average: 48.6%
Downloads: 86.6%
Maintainers (1)
Last synced: 11 months ago

Dependencies

DESCRIPTION cran
  • Matrix * imports
  • Rcpp * imports
  • RcppEigen * imports
  • rlang * imports
  • testthat >= 3.0.0 suggests