Skip to content

Commit

Permalink
merge devel onto master for 1.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
paciorek committed May 26, 2023
2 parents 741efdf + 172e7cc commit 3b6f35d
Show file tree
Hide file tree
Showing 693 changed files with 159,092 additions and 4,672 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/ci.yaml
Expand Up @@ -25,7 +25,7 @@ jobs:
matrix:
config:
- {os: windows-latest, r: 'release', batch: 1}
- {os: macOS-latest, r: 'release', batch: 1}
- {os: macOS-latest, r: '4.2.2', batch: 1}
- {os: ubuntu-20.04, r: 'devel', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest", batch: 1}
- {os: ubuntu-20.04, r: 'release', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest", batch: 1}
- {os: ubuntu-20.04, r: 'release', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest", batch: 2}
Expand Down Expand Up @@ -88,7 +88,7 @@ jobs:
if: runner.os != 'Windows'
run: |
R CMD build packages/nimble # Is this needed? Is purpose of this to see if 'build' induces an error?
R CMD INSTALL --install-tests packages/nimble
R CMD INSTALL --install-tests --enable-dylib=false packages/nimble # use libnimble.a to reduce seg faults when using clearCompiled for long sets of AD tests
- name: Install reverse dependencies
run: |
Expand Down
2 changes: 0 additions & 2 deletions .gitignore
Expand Up @@ -19,6 +19,4 @@ MyMakevars
*.Rproj

/packages/nimble/inst/CppCode/Makeconf
/packages/nimble/inst/include/cppad/


2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -77,7 +77,7 @@ NIMBLE. Journal of Computational and Graphical Statistics 26:403-413. [https://d

In published work that uses NIMBLE, please also cite the package version:

de Valpine, P., C. Paciorek, D. Turek, N. Michaud, C. Anderson-Bergman, F. Obermeyer, C. Wehrhahn Cortes, A. Rodriguez, D. Temple Lang, and S. Paganin. 2022. NIMBLE: MCMC, Particle Filtering, and Programmable Hierarchical Modeling. doi: 10.5281/zenodo.1211190. R package version 0.13.2, https://cran.r-project.org/package=nimble.
de Valpine, P., C. Paciorek, D. Turek, N. Michaud, C. Anderson-Bergman, F. Obermeyer, C. Wehrhahn Cortes, A. Rodriguez, D. Temple Lang, and S. Paganin. 2022. NIMBLE: MCMC, Particle Filtering, and Programmable Hierarchical Modeling. doi: 10.5281/zenodo.1211190. R package version 1.0.0, https://cran.r-project.org/package=nimble.

To help us track usage to justify funding support for NIMBLE, please include the DOI in the citation.

Expand Down
Binary file modified UserManual/NimbleUserManual_files/figure-html/plotPump-1.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
224 changes: 129 additions & 95 deletions UserManual/cha-RCfunctions.html

Large diffs are not rendered by default.

427 changes: 231 additions & 196 deletions UserManual/cha-algos-provided.html

Large diffs are not rendered by default.

237 changes: 136 additions & 101 deletions UserManual/cha-bnp.html

Large diffs are not rendered by default.

369 changes: 203 additions & 166 deletions UserManual/cha-building-models.html

Large diffs are not rendered by default.

364 changes: 204 additions & 160 deletions UserManual/cha-data-structures.html

Large diffs are not rendered by default.

109 changes: 72 additions & 37 deletions UserManual/cha-installing-nimble.html

Large diffs are not rendered by default.

211 changes: 122 additions & 89 deletions UserManual/cha-lightning-intro.html

Large diffs are not rendered by default.

1,125 changes: 635 additions & 490 deletions UserManual/cha-mcmc.html

Large diffs are not rendered by default.

85 changes: 60 additions & 25 deletions UserManual/cha-more-introduction.html

Large diffs are not rendered by default.

934 changes: 485 additions & 449 deletions UserManual/cha-progr-with-models.html

Large diffs are not rendered by default.

195 changes: 115 additions & 80 deletions UserManual/cha-spatial.html

Large diffs are not rendered by default.

333 changes: 184 additions & 149 deletions UserManual/cha-user-defined.html

Large diffs are not rendered by default.

356 changes: 195 additions & 161 deletions UserManual/cha-using-models.html

Large diffs are not rendered by default.

85 changes: 60 additions & 25 deletions UserManual/cha-welcome-nimble.html

Large diffs are not rendered by default.

392 changes: 218 additions & 174 deletions UserManual/cha-writing-models.html

Large diffs are not rendered by default.

83 changes: 59 additions & 24 deletions UserManual/overview.html

Large diffs are not rendered by default.

112 changes: 86 additions & 26 deletions UserManual/references.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion UserManual/search_index.json

Large diffs are not rendered by default.

101 changes: 101 additions & 0 deletions UserManual/src/ADreferences.bib
@@ -0,0 +1,101 @@

@book{griewank-walther-08,
address = {Philadelphia, PA},
edition = {Second edition},
title = {Evaluating {Derivatives}: {Principles} and {Techniques} of {Algorithmic} {Differentiation}, {Second} {Edition}},
isbn = {978-0-89871-659-7},
shorttitle = {Evaluating {Derivatives}},
abstract = {Algorithmic, or automatic, differentiation (AD) is a growing area of theoretical research and software development concerned with the accurate and efficient evaluation of derivatives for function evaluations given as computer programs. The resulting derivative values are useful for all scientific computations that are based on linear, quadratic, or higher order approximations to nonlinear scalar or vector functions. AD has been applied in particular to optimization, parameter identification, nonlinear equation solving, the numerical integration of differential equations, and combinations of these. Apart from quantifying sensitivities numerically, AD also yields structural dependence information, such as the sparsity pattern and generic rank of Jacobian matrices. The field opens up an exciting opportunity to develop new algorithms that reflect the true cost of accurate derivatives and to use them for improvements in speed and reliability. This second edition has been updated and expanded to cover recent developments in applications and theory, including an elegant NP completeness argument by Uwe Naumann and a brief introduction to scarcity, a generalization of sparsity. There is also added material on checkpointing and iterative differentiation. To improve readability the more detailed analysis of memory and complexity bounds has been relegated to separate, optional chapters.The book consists of three parts: a stand-alone introduction to the fundamentals of AD and its software; a thorough treatment of methods for sparse problems; and final chapters on program-reversal schedules, higher derivatives, nonsmooth problems and iterative processes. Each of the 15 chapters concludes with examples and exercises. Audience: This volume will be valuable to designers of algorithms and software for nonlinear computational problems. Current numerical software users should gain the insight necessary to choose and deploy existing AD software tools to the best advantage. Contents: Rules; Preface; Prologue; Mathematical Symbols; Chapter 1: Introduction; Chapter 2: A Framework for Evaluating Functions; Chapter 3: Fundamentals of Forward and Reverse; Chapter 4: Memory Issues and Complexity Bounds; Chapter 5: Repeating and Extending Reverse; Chapter 6: Implementation and Software; Chapter 7: Sparse Forward and Reverse; Chapter 8: Exploiting Sparsity by Compression; Chapter 9: Going beyond Forward and Reverse; Chapter 10: Jacobian and Hessian Accumulation; Chapter 11: Observations on Efficiency; Chapter 12: Reversal Schedules and Checkpointing; Chapter 13: Taylor and Tensor Coefficients; Chapter 14: Differentiation without Differentiability; Chapter 15: Implicit and Iterative Differentiation; Epilogue; List of Figures; List of Tables; Assumptions and Definitions; Propositions, Corollaries, and Lemmas; Bibliography; Index},
language = {English},
publisher = {Society for Industrial and Applied Mathematic},
author = {Griewank, Andreas and Walther, Andrea},
month = sep,
year = {2008},
}

@incollection{neal-11,
series = {Chapman \& {Hall}/{CRC} {Handbooks} of {Modern} {Statistical} {Methods}},
title = {{MCMC} {Using} {Hamiltonian} {Dynamics}},
isbn = {978-1-4200-7941-8},
url = {http://www.crcnetbase.com/doi/abs/10.1201/b10905-6},
urldate = {2014-12-08},
booktitle = {Handbook of {Markov} {Chain} {Monte} {Carlo}},
publisher = {Chapman and Hall/CRC},
author = {Neal, Radford M.},
year = {2011},
file = {Full Text PDF:/Users/perry/Zotero/storage/QZ4VX9WC/RadfordM Neal - 2011 - MCMC Using Hamiltonian Dynamics.pdf:application/pdf;Snapshot:/Users/perry/Zotero/storage/EDHGHSQ5/b10905-6.html:text/html},
}

@Manual{borchers-22,
title = {pracma: Practical Numerical Math Functions},
author = {Hans W. Borchers},
year = {2022},
note = {R package version 2.3.8},
url = {https://CRAN.R-project.org/package=pracma},
}

@Manual{gilbert-varadhan-19,
title = {numDeriv: Accurate Numerical Derivatives},
author = {Paul Gilbert and Ravi Varadhan},
year = {2019},
note = {R package version 2016.8-1.1},
url = {https://CRAN.R-project.org/package=numDeriv},
}

@misc{bell-22,
title = {{CppAD}: {A} {Package} for {Differentiation} of {C}++ {Algorithms}.},
url = {www.coin-or.org/CppAD},
author = {Bell, B},
year = {2022},
}

@Article{kristensen-etal-16,
title = {{TMB}: Automatic Differentiation and {L}aplace
Approximation},
author = {Kasper Kristensen and Anders Nielsen and Casper W. Berg
and Hans Skaug and Bradley M. Bell},
journal = {Journal of Statistical Software},
year = {2016},
volume = {70},
number = {5},
pages = {1--21},
doi = {10.18637/jss.v070.i05},
}


@article{skaug-fournier-06,
title = {Automatic approximation of the marginal likelihood in non-{Gaussian} hierarchical models},
volume = {51},
issn = {0167-9473},
url = {https://www.sciencedirect.com/science/article/pii/S0167947306000764},
doi = {10.1016/j.csda.2006.03.005},
abstract = {Fitting of non-Gaussian hierarchical random effects models by approximate maximum likelihood can be made automatic to the same extent that Bayesian model fitting can be automated by the program BUGS. The word “automatic” means that the technical details of computation are made transparent to the user. This is achieved by combining a technique from computer science known as “automatic differentiation” with the Laplace approximation for calculating the marginal likelihood. Automatic differentiation, which should not be confused with symbolic differentiation, is mostly unknown to statisticians, and hence basic ideas and results are reviewed. The computational performance of the approach is compared to that of existing mixed-model software on a suite of datasets selected from the mixed-model literature.},
language = {en},
number = {2},
urldate = {2022-06-26},
journal = {Computational Statistics \& Data Analysis},
author = {Skaug, Hans J. and Fournier, David A.},
month = nov,
year = {2006},
keywords = {AD Model Builder, Automatic differentiation, Importance sampling, Laplace approximation, Mixed models, Random effects},
pages = {699--709},
file = {ScienceDirect Full Text PDF:/Users/perry/Zotero/storage/KIYRTAWE/Skaug and Fournier - 2006 - Automatic approximation of the marginal likelihood.pdf:application/pdf;ScienceDirect Snapshot:/Users/perry/Zotero/storage/RUWARWJP/S0167947306000764.html:text/html},
}

@article{fournier-etal-12,
title = {{AD} {Model} {Builder}: using automatic differentiation for statistical inference of highly parameterized complex nonlinear models},
volume = {27},
issn = {1055-6788},
shorttitle = {{AD} {Model} {Builder}},
url = {http://dx.doi.org/10.1080/10556788.2011.597854},
doi = {10.1080/10556788.2011.597854},
abstract = {Many criteria for statistical parameter estimation, such as maximum likelihood, are formulated as a nonlinear optimization problem. Automatic Differentiation Model Builder (ADMB) is a programming framework based on automatic differentiation, aimed at highly nonlinear models with a large number of parameters. The benefits of using AD are computational efficiency and high numerical accuracy, both crucial in many practical problems. We describe the basic components and the underlying philosophy of ADMB, with an emphasis on functionality found in no other statistical software. One example of such a feature is the generic implementation of Laplace approximation of high-dimensional integrals for use in latent variable models. We also review the literature in which ADMB has been used, and discuss future development of ADMB as an open source project. Overall, the main advantages of ADMB are flexibility, speed, precision, stability and built-in methods to quantify uncertainty.},
number = {2},
urldate = {2015-02-20},
journal = {Optimization Methods and Software},
author = {Fournier, David A. and Skaug, Hans J. and Ancheta, Johnoel and Ianelli, James and Magnusson, Arni and Maunder, Mark N. and Nielsen, Anders and Sibert, John},
month = apr,
year = {2012},
pages = {233--249},
file = {Full Text PDF:/Users/perry/Zotero/storage/MTSE48QS/Fournier et al. - 2012 - AD Model Builder using automatic differentiation .pdf:application/pdf;Snapshot:/Users/perry/Zotero/storage/TMXGPVWC/10556788.2011.html:text/html},
}
2 changes: 1 addition & 1 deletion UserManual/src/UserManualRefs.bib
Expand Up @@ -210,7 +210,7 @@ @article{Ariyo_etal_2019
@article{Vehtari_etal_2017,
title={Practical Bayesian model evaluation using leave-one-out cross-validation and WAIC},
author={Vehtari, Aki and Gelman, Andrew and Gabry, Jonah},
journal={Statistics and computing},
journal={Statistics and Computing},
volume={27},
number={5},
pages={1413--1432},
Expand Down
2 changes: 1 addition & 1 deletion UserManual/src/_bookdown.yml
Expand Up @@ -5,6 +5,6 @@ language:
chapter_name: "Chapter "
delete_merged_file: true

rmd_files: ["index.Rmd", "chapter_WelcomeToNimble.Rmd", "chapter_LightningIntroduction.Rmd", "chapter_MoreIntroduction.Rmd", "chapter_InstallingNimble.Rmd", "chapter_WritingModels.Rmd", "chapter_BuildingModels.Rmd", "chapter_MCMC.Rmd", "chapter_OtherAlgorithms.Rmd", "chapter_Spatial.Rmd", "chapter_BNP.Rmd", "chapter_ProgrammingOverview.Rmd", "chapter_RCfunctions.Rmd", "chapter_UserDefined.Rmd", "chapter_UsingModels.Rmd", "chapter_DataStructures.Rmd", "chapter_WritingNimbleFunctions.Rmd", "refs.Rmd"]
rmd_files: ["index.Rmd", "chapter_WelcomeToNimble.Rmd", "chapter_LightningIntroduction.Rmd", "chapter_MoreIntroduction.Rmd", "chapter_InstallingNimble.Rmd", "chapter_WritingModels.Rmd", "chapter_BuildingModels.Rmd", "chapter_MCMC.Rmd", "chapter_OtherAlgorithms.Rmd", "chapter_Spatial.Rmd", "chapter_BNP.Rmd", "chapter_ProgrammingOverview.Rmd", "chapter_RCfunctions.Rmd", "chapter_UserDefined.Rmd", "chapter_UsingModels.Rmd", "chapter_DataStructures.Rmd", "chapter_WritingNimbleFunctions.Rmd", "chapter_AD.Rmd", "refs.Rmd"]


2 changes: 1 addition & 1 deletion UserManual/src/_output.yml
Expand Up @@ -5,7 +5,7 @@ bookdown::gitbook:
before: |
<img src="./nimble-icon.png"
width=100>
<li><a href="./cha-welcome-nimble.html">NIMBLE User Manual, Version 0.13.1</a></li>
<li><a href="./cha-welcome-nimble.html">NIMBLE User Manual, Version 1.0.0</a></li>
<li><a href="https://github.com/nimble-dev/nimble">NIMBLE Development Team</a></li>
<li><a href="https://R-nimble.org">https://R-nimble.org</a></li>
after: |
Expand Down

0 comments on commit 3b6f35d

Please sign in to comment.