add functionality to interpolate in look-up tables
I maintainer di solito rispondono entro 1 giorno
@SteveBronder ci sta già lavorando.
Dal 26/8/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Many scientific and technical models incoporate tabulated data as part of the model definition. For example, to model temperature changes in some material where the heat capacity depends on temperature, one may need to compute the heat capacities at arbitrary temperatures even if measured values are only available at some specific temperatures. Many scientific computing tools implement various methods to interpolate in tabulated data, but Stan does not (as far as I know).
I think it would be good to add such functionality, as this would expand the scope of problems that can be modelled with Stan.
There are a lot of interpolation methods out there. To start with, I used OPenAI Codex to generate simple stan code for two common interpolation methods: PCHIP (Piecewise Cubic Hermite Interpolating Polynomial) and cubic natural splines. Both have continuous first derivatives which I think is good for HMC simulations. (Piece-wise linear interpolation does not, and was not included). The code is available here: https://github.com/bmelinden/stan_interpolation, and include scripts that demonstrate both their use in Stan and good agreement with corresponding interpolation methods in R.
Both are implemented as two-step calls. First a setup using the tabulated data
W = pchip_setup(xk, yk);
and then interpolated values can be calculated as
y = pchip_eval(x, W);
Versions of these interpolation methods are available in for example Matlab (pchip, spline), Boost interpolation, scipy interpolate, and R (pracma pchip, splinefun). In fact, most software packages supply more interpolation methods than that, but these two may be a good enough start.
I would be happy to work more on this, but I am unsure on how to proceed.
- Lingua principale
- C++
- Stelle
- 845
- Fork
- 225
- Merge medio
- 3g 9h
- PR unite (30g)
- 12
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di stan-dev/math
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 54/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 54/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
-
numerics performance
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
stan-dev/math#3481 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
`eigendecompose_sym`, `eigenvalues_sym` and `eigenvectors_sym` do not compile for complex matrices of `fvar<var>` or `fvar<fvar<double>>`Forse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Apertabug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
stan-dev/math#3477 · 5 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di stan-dev/math
Issue simili
-
Upstream changes to reviewAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
rhalbersma/xstd-ints#395 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug] Root filesystem scope (/) incorrectly rejects all descendant pathsForse già presa @mugenkyou l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
neutralinojs/neutralino.js#304 · 1 commento ·
-
FuSa
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
tenstorrent/tt-umd#3851 ·
I maintainer di solito rispondono entro 3 giorni
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
mattgodbolt/zindex#67 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100