Skip to content

Releases: stan-dev/cmdstan

v2.9.0

04 Dec 23:17
Compare
Choose a tag to compare

v2.9.0 (4 Dec 2015)

CmdStan release notes

The v2.9.0 release of CmdStan includes updated Stan and Stan Math Libraries.

For more details on changes to the Stan library, see the Stan release notes for v2.9.0.

Note: Download using the links to cmdstan-2.9.0.tar.gz or cmdstan-2.9.0.zip for a version that includes Stan and all libraries. (The "Source code" downloads does not include the Stan library and will not work as-is.)

To clone CmdStan using git, see: https://github.com/stan-dev/cmdstan/wiki/Getting-Started-with-CmdStan

v2.8.0

20 Sep 00:27
Compare
Choose a tag to compare

v2.8.0 (19 Sep 2015)

CmdStan release notes

The v2.8.0 release of CmdStan includes updated Stan and Stan Math Libraries.

Starting with this version of CmdStan, bin/print is deprecated and will be removed for v3.0. Use bin/stansummary instead for command line posterior analysis.

For more details on changes to the Stan library, see the Stan release notes for v2.8.0.

Note: Download using the links to cmdstan-2.8.0.tar.gz or cmdstan-2.8.0.zip for a version that includes Stan and all libraries. (The "Source code" downloads does not include the Stan library and will not work as-is.)
To clone CmdStan using git, see: https://github.com/stan-dev/cmdstan/wiki/Getting-Started-with-CmdStan

Known issues

For this version, running

make build

will report the incorrect version, 2.7.0 instead of 2.8.0. This is merely the make process echoing the incorrect version: the stanc compiler and bin/stansummary are both v2.8.0 and you can ignore the output.

v2.7.0

15 Jul 04:53
Compare
Choose a tag to compare

v2.7.0 (15 July 2015)

CmdStan release notes

The v2.7.0 release of CmdStan only had minor changes. The documentation was edited for clarity and correctness. The examples in the documentation should work again.

Below are the Stan release notes for v2.7.0.

STAN C++ RELEASE NOTES

v2.7.0 (9 July 2015)

New Team Members

  • Alp Kucukelbir, who brings you variational inference
  • Robert L. Grant, who brings you the StataStan interface

Major New Feature

  • Black-box variational inference, mean field and full
    rank (#1505)

New Features

  • Line numbers reported for runtime errors (#1195)
  • Wiener first passage time density (#765) (thanks to
    Michael Schvartsman)
  • Partial initialization (#1069)
  • NegBinomial2 RNG (#1471) and PoissonLog RNG (#1458) and extended
    range for Dirichlet RNG (#1474) and fixed Poisson RNG for older
    Mac compilers (#1472)
  • Error messages now use operator notation (#1401)
  • More specific error messages for illegal assignments (#1100)
  • More specific error messages for illegal sampling statement
    signatures (#1425)
  • Extended range on ibeta derivatives with wide impact on CDFs (#1426)
  • Display initialization error messages (#1403)
  • Works with Intel compilers and GCC 4.4 (#1506, #1514, #1519)

Bug Fixes

  • Allow functions ending in _lp to call functions ending in _lp (#1500)
  • Update warnings to catch uses of illegal sampling functions like
    CDFs and updated declared signatures (#1152)
  • Disallow constraints on local variables (#1295)
  • Allow min() and max() in variable declaration bounds and remove
    unnecessary use of math.h and top-level :: namespace (#1436)
  • Updated exponential lower bound check (#1179)
  • Extended sum to work with zero size arrays (#1443)
  • Positive definiteness checks fixed (were > 1e-8, now > 0) (#1386)

Code Reorganization and Back End Upgrades

  • New static constants (#469, #765)
  • Added major/minor/patch versions as properties (#1383)
  • Pulled all math-like functionality into stan::math namespace
  • Pulled the Stan Math Library out into its own repository (#1520)
  • Included in Stan C++ repository as submodule
  • Removed final usage of std::cout and std::cerr (#699) and
    updated tests for null streams (#1239)
  • Removed over 1000 CppLint warnings
  • Remove model write CSV methods (#445)
  • Reduced generality of operators in fvar (#1198)
  • Removed folder-level includes due to order issues (part of Math
    reorg) and include math.hpp include (#1438)
  • Updated to Boost 1.58 (#1457)
  • Travis continuous integration for Linux (#607)
  • Add grad() method to math::var for autodiff to encapsulate math::vari
  • Added finite diff functionals for testing (#1271)
  • More configurable distribution unit tests (#1268)
  • Clean up directory-level includes (#1511)
  • Removed all lint from new math lib and add cpplint to build lib
    (#1412)
  • Split out derivative functionals (#1389)

Manual and Dcoumentation

  • New Logo in Manual; remove old logos (#1023)
  • Corrected all known bug reports and typos; details in
    issues #1420, #1508, #1496
  • Thanks to Sunil Nandihalli, Andy Choi, Sebastian Weber,
    Heraa Hu, @jonathan-g (GitHub handle), M. B. Joseph, Damjan
    Vukcevic, @tosh1ki (GitHub handle), Juan S. Casallas
  • Fix some parsing issues for index (#1498)
  • Added chapter on variational inference
  • Added strangely unrelated regressions and multivariate probit
    examples
  • Discussion from Ben Goodrich about reject() and sampling
  • Start to reorganize code with fast examples first, then
    explanations
  • Added CONTRIBUTING.md file (#1408)

Download using the links to cmdstan-2.7.0.tar.gz or cmdstan-2.7.0.zip for a version that includes Stan and all libraries.

To clone CmdStan, see: https://github.com/stan-dev/cmdstan/wiki/Getting-Started-with-CmdStan

v2.6.2

14 Mar 20:26
Compare
Choose a tag to compare

v2.6.2 (14 March 2015)

CmdStan release notes

There have been very few changes to CmdStan for this release. This updates Stan to v2.6.2.
[We skipped Stan v2.6.1 due to some problems with that version.]

Stan release notes for v2.6.2 and v2.6.1 are below.

v2.6.2 (14 March 2015)

Bug Fixes

  • fixed append_row and append_col to return the corect types [#1297]
  • documentation fix: fixed generation of stan-functions.txt [#1327]
  • changed constructor of stan::agrad::var so it can compile without
    C++11 [#1337, 1364]
  • fixed bug in matrix double-indexing [#1342]
  • fixed calculation of derivative in normal_cdf_log, normal_ccdf_log
    [#1357]

API Enhancements

  • refactored math / autodiff library [#1222, #1349, #1353]
  • fixed capitalization in tests [#1355]
  • updated Eigen to 3.2.4 [#1173]

v2.6.1 (3 March 2015)

Language Enhancements

  • improved warning messages from the parser [#1244]

API/Build/Test Enhancements

  • the C++ API now throws 3 types of exceptions [#685]
  • parts of the C++ API were rearranged (gm, common) [#942]
  • replace promote_args
  • allow reading from a local makefile outside of the code repository [#1277]
  • added gradient of hessian functional in C++ [#1272]
  • supressed printing of adjoints when printing stan::agrad::var [#330]
  • removed some cpplint warnings [#1282]
  • removed doxygen warnings [#1290]
  • reimplemented fmix and fmax [#1311]

Bug Fixes

  • allow nested indexes to compile with integrate_ode [#1317]

Documentation

  • fixed typos in MCMC sampling

Download using the links to cmdstan-2.6.2.tar.gz or cmdstan-2.6.2.zip for a version that includes Stan and all libraries.

To clone CmdStan, see: https://github.com/stan-dev/cmdstan/wiki/Getting-Started-with-CmdStan

v2.6.0

05 Feb 21:52
Compare
Choose a tag to compare

v2.6.0 (5 February 2015)

CmdStan release notes

There have been very few changes to CmdStan for this release:

  • CmdStan now generates a .hpp file instead of a .cpp file.
  • The manual has been updated.
  • This release includes Stan v2.6.0

Stan v2.6.0 release notes

New Features

  • log_mix function for binary mixtures [half of #970]
  • neg_binomial_2 CDF function [#1129]

Language Enhancements

  • allow local-variable integers to be treated as constants,
    allowing, among other things, more general ODE functions [#1131]
  • initialize transformed data and generated quantities the
    same way as transformed parameters [#1099]
  • libstan.a removed and model compilation is 100% header-only [#1095]
  • check for infinite/nan inits from boundary initializations
    with warning [#537]

API/Build/Test Enhancements

  • removed extra variables being generated by validation [#1248]
  • generalize OperandsAndPartials to second order [#676]
  • rationalize error handling, using const char* args for efficiency [#1234]
  • upgrade to Boost version 1.55 library [#1206]
  • generate .hpp instead of .cpp for models [#803]
  • value_of_rec recursive metaprogram to pull values out of higher-order
    autodiff structures; removes order dependency on fwd/rev includes
    [#1232]
  • tests now run more efficiently with Python script [#1110]
  • add performance tests to continuous integration to perform
    end-to-end regression testing on speed [#708, #1245]
  • manual index parser for tool automation in interfaces (such as
    auto-complete suggestions) and emacs mode
  • refactor log determinant and fix return type cast in vector arena
    alloc [#1187]
  • update makefile dependencies for auto-generated cpp test files [#1108]
  • move test models into clearly labeled directories (good/bad) [#1016]
  • removing policies from math error checking [#1122]
  • remove usage of Boost's formatting (which can cause runtime
    errors like printf) [#1103]
  • rearrange directory structure of err_handling [#1102]
  • clean up math includes to proper location in source tree [#778]
  • remove Windows newline and write script to catch in future [#1233]
  • remove extra copy of Eigen (3.2.0), leaving just Eigen 3.2.2 [#1206]
  • remove example-models dependency from Git [#1105]

Bug Fixes

  • allow identifiers with prefixes matching keywords [#1177]
  • allow functions to be used in variable declaration constriants [#1151]
  • fix segfault resulting from multivariate normal in optimizer (root
    cause wasn't in optimizer, but in autodiff nesting cleanup) [#1200]
  • fixed return type in language and C++ for append_row of two
    column vectors and append_col of two row vectors [#1241]
  • fixed derivative error for pareto_type_2_log() [#1223]
  • remove unused models from stan distribution (they're now in
    the stan-dev/example-models repo on GitHub) [#1249]
  • squash compiler warnings and fix windows tests (mostly
    signed vs. unsigned, as usual) [#1257]
  • fix memory leak in ODE solver [#1160]
  • fix overflow in gamma_p function to throw instead [#674]
  • make sure multiply_lower_tri_self_transpose returns a symmetric
    matrix [#1121]
  • fix overflow in Poisson RNG to throw instead [#1053]

Documentation

  • manual updated for 2.6 [#1081]
    • new chapter on software process (thanks to Sebastian Weber
      and Tony Rossini for help)
    • new chapter on sparse and ragged arrays
    • pointers to Julia and MATLAB interfaces (yay!)
    • vectorization of CDFs described
    • fix priors on IRT models
    • added discussion of multiple change points
    • remove range-contstrained scale priors
    • clarified fixed parameter call
    • remove references to "std::vector" in favor of "array"
    • corrected signs for lasso and ridge and discuss truncated gradient
      and absolute zero results
    • extended discussion of Gaussian process priors (thanks
      to Aki Vehtari, Jon Zelner, and Herra Huu)
    • remove bogus paths to models and replace with pointers to
      example-models repo
    • clarified Wishart/inverse Wishart parameterizations w.r.t. BDA3
    • fixed exp_mod_normal definition
    • fix student-t reparameterization
    • fix hurdle distribution definition

Thanks!

Thanks to all the users who contributed code and doc corrections
and comments: Alex Zvoleff, Juan Sebastián Casallas, Gökçen
Eraslan, seldomworks [GitHub handle], Avraham Adler, Sebastian
Weber, Amos Waterland, David Hallvig, Howard Zail, Andre Pfeuffer,
Bobby Jacob, Cody Ross, Krzysztof Sakrejda, Andrew Ellis, John Sutton

Download using the green link to cmdstan-2.6.0.tar.gz or cmdstan-2.6.0.zip.

v2.5.0

20 Oct 22:18
Compare
Choose a tag to compare

CmdStan release notes:

The biggest change to CmdStan was the documentation. There were a lot of mistakes in v2.4.0 that were corrected with this version.

Click the green link to cmdstan-2.5.0.tar.gz to download CmdStan with Stan and the example-models packaged together.

For the updates to Stan, the release notes are below.

Stan release notes:

v2.5.0 (20 October 2014)

New Features

  • ordinary differential equation solver, implemented by coupling
    the user-specified system with its sensitivities (#771)
  • add reject() statement for user-defined rejections/exceptions (#458)
  • new num_elements() functions that applies to all containers (#1026)
  • added is_nan() and is_inf() function (#592)
  • nested reverse-mode autodiff, primarily for ode solver (#1031)
  • added get_lp() function to remove any need for bar lp__ (#470)
  • new functions cbind() and rbind() like those in R (#787)
  • added modulus function in a way tht is consistent with integer
    division across platforms (#577)
  • exposed pareto_type_2_rng (#580)
  • added Frechet distribution and multi_gp_cholesky distribution
    (thanks to Alexey Stukalov for both)

Enhancements

  • removed Eigen code insertion for numeric traits and replaced
    with order-independent metaprogram (#1065)
  • cleaned up error messages to provide clearer error context
    and more informative messages (#640)
  • extensive tests for higher order autodiff in densities (#823)
  • added context factory
  • deprecated lkj_cov density (#865)
  • trying again with informational/rejection message (#223)
  • more code moved from interfaces into Stan common libraries,
    including a var_context factory for configuration
  • moved example models to own repo (stan-dev/example-models) and
    included as submodule for stan-dev/stan (#314)
  • added per-iteration interrupt handler to BFGS optimizer (#768)
  • worked around unused function warnings from gcc (#796)
  • fixed error messages in vector to array conversion (#579, thanks
    Kevin S. Van Horn)
  • fixed gp-fit.stan example to be as efficient as manual
    version (#782)
  • update to Eigen version 3.2.2 (#1087)

Builds

  • pull out testing into Python script for developers to simplify
    makes
  • libstan dependencies handled properly and regenerate
    dependencies, including working around bug in GNU
    make 3.8.1 (#1058, #1061, #1062)

Bug Fixes

  • deal with covariant return structure in functions (allows
    data-only variables to alternate with parameter version); involved
    adding new traits metaprograms promote_scalar and
    promote_scalar_type (#849)
  • fixed error message on check_nonzero_size (#1066)
  • fix arg config printing after random seed generation (#1049)
  • logical conjunction and disjunction operators short circuit (#593)
  • clean up parser bug preventing variables starting with reserved
    names (#866)
  • fma() function calls underlying platform fma (#667)
  • remove upper bound on number of function arguments (#867)
  • cleaned up code to remove compiler warnings (#1034)
  • share likely() and unlikely() macros to avoid redundancy warnings (#1002)
  • complete review of function library for NaN behavior and consistency
    of calls for double and autodiff values, with extensive
    documentation and extensive new unit tests for this and other,
    ehances NaN testing in built-in test functions (several dozen issues
    in the #800 to #902 range)
  • fixing Eigen assert bugs with NO_DEBUG in tests (#904)
  • fix to makefile to allow builds in g++ 4.4 (thanks to Ewan Dunbar)
  • fix precedence of exponentiation in language (#835)
  • allow size zero inputs in data and initialization (#683)

Documentation

  • new chapter on differential equation solver
  • new sections on default priors for regression coefficients and
    scales, including hierarchical and multivariate based on
    full Cholesky parameterization
  • new part on algorithms, which chapters on HMC/NUTS, optimization,
    and diagnostics
  • new chapter on models with latent discrete parameters
  • using latexmk through make for LaTeX compilation
  • changed page numbers to beg contiguous throughout so page numbers
    match PDF viewer page number
  • all user-supplied corrections applied from next-manual issue
  • section on identifiability with priors, including discussion of K-1
    parameterization of softmax and IRT
  • new section on convergence monitoring
  • extensive corrections from Andrew Gelman on regression models
    and notation
  • added discussion of hurdle model in zero inflation section
  • update built-in function doc to clarify several behaviors (#1025)

Download the green link to cmdstan-2.5.0.tar.gz

CmdStan v2.4.0

21 Jul 03:28
Compare
Choose a tag to compare

CmdStan v2.4.0 is based on Stan v2.4.0.

The green-linked tarball includes a copy of Stan v2.4.0 and is the quickest way to get started.

v2.4.0 (20 July 2014)
======================================================================

New Features
------------
* L-BFGS optimization (now the default)
* completed higher-order autodiff (added all probability functions,
  matrix functions, and matrix operators); tested up to 3rd order
* enhanced effective range of normal_cdf to prevent underflow/overflow
* added von Mises RNG
* added ability to use scalars in all element-wise operations
* allow matrix division for mixing scalars and matrices
* vectorization of outcome variates in multivariate normal with efficiency boosts
* generalization of multivariate normal to allow rwo vectors as means
  and

Reorganization
--------------
* move bin/print and bin/stanc to CmdStan; no longer generating main
  when compiling model from Stan C++

New Developer
-------------
* Added Jeffrey Arnold as core Stan developer

Bug Fixes
---------
* modified error messages so that they're all 1-indexed instead of 0-indexed
* fixed double print out of times in commands
* const added to iterators to allow VS2008 compiles
* fix boundary conditions on ordered tests
* fix for pow as ^ syntax to catch illegal use of vectors (which
  aren't supported)
* allow zero-length inputs to multi_normal and multi_student_t
  with appropriate log prob (i.e., 0)
* fixed bug in inverse-Wishart RNG to match MCMCPack results
  with slightly asymmetric inputs
* fixed problem with compiling user-defined function twice
* fixed problem with int-only parameters for user-defined functions
* fixed NaN init problems for user-defined functions
* added check that user variable doesn't conflict with user function + doc
* disallow void argument types in user-defined functions

Code Cleanup and Efficiency Improvements
----------------------------------------
* removed main() from models generated from C++ Stan (they are
  now available only in CmdStan); removed no_main command options
* reserve vector sizes for saving for sample recorder
* removing many instances of std::cout from API (more still to go)
* removed non-functional Nesterov optimization option
* optimization code refactoring for testing ease
* better constant handling in von Mises distribution
* removed tabs from all source files
* massive re-org of testing to remove redundant files and allow
  traits-based specializations, plus fixed for 1-indexing

Testing
-------
* added tests for log_softmax, multiply_lower_tri_self_transpose, tcrossprod
* break out function signature tests into individual files, add many
  more
* enhanced cholesky factor tests for round trip transforms and
  derivatives
* extensive unit testing added for optimization
* remove use of std::cout in all tests

Example Models
--------------
* lots of cleanup in links and models in ARM examples
* added BUGS litter example with more stable priors than in the
  BUGS version (the original model doesn't fit well in BUGS as is,
  either)

Documentation
-------------
* add infix operators to manual
* categorical_logit sampling statement
* Cholesky factor with unit diagonal transform example
* example of using linear regression for prediction/forecasting with
  notes
* clarified some relations of naive Bayes to clustering
  vs. classification and relation to non-identifiability
* new advice on multivariate priors for quad_form_diag
* fix typo in multiply_lower_self_transpose (thanks to Alexey Stukalov)
* fix formatting of reserved names in manual
* fixed typo and clarified effective sample size doc

v2.3.0

20 Jun 22:18
Compare
Choose a tag to compare

This is the first separate release of CmdStan!

To use CmdStan, download the cmdstan-2.3.0.tar.gz using the green button below, untar, then type make on the command line from within the cmdstan directory.

[If you wish to clone the repository directly, you'll need to update the Stan submodule.]

From the Stan v2.3.0 release notes:

We had a record number of user-submitted patches this go around.
Thanks to everyone!

New Features

  • user-defined function definitions added to Stan language
  • cholesky_corr data type for Cholesky factors of correlation matrices
  • a^b syntax for pow(a,b) (thanks to Mitzi Morris)
  • reshaping functions: to_matrix(), to_vector(), to_row_vector(),
    to_array_1d(), to_array_2d()
  • matrix operations: quad_form_sym() (x' *Sigma * x), QR decompositions
    qr_Q(), qr_R()
  • densities: Gaussian processes multi_gp_log(), multi_gp(),
    and alternative negative binomial parameterization neg_binomial_2()
  • random number generator: multi_normal_cholesky_rng()
  • sorting: sort_indices_*() for returning indexes in sorted order by
    value
  • added JSON parser to C++ (not exposed through interfaces yet; thanks
    to Mitzi Morris)
  • many fixes to I/O for data and inits to check consistency and
    report errors
  • removed some uses of std::cout where they don't belong
  • updated parser for C++11 compatibility (thanks to Rob Goedman)

New Developer

  • added Marco Inacio as core developer

Optimizations

  • turned off Eigen asserts
  • efficiency improvements to posterior analysis print

Documentation

  • Clarified licensing policy for individual code contributions
  • Huge numbers of fixes to the documentation, including many
    user-contributed patches (thanks!), fixes to parallelization in
    CmdStan, Windows install instructions, boundaries for Dirichlet and
    Beta, removed suggestion to use floor and ceiling as indices,
    vectorized many models, clarified that && doesn't short circuit,
    clarified von Mises normalization, updated censoring doc (thanks
    to Alexey Stukalov), negative binomial doc enhanced, new references,
    new discussion of hierarchical models referencing Betancourt and
    Girolami paper,
  • Avraham Adler was particularly useful in pointing out and fixing
    documentation errors

Bug Fixes

  • fixed bug in lkj density
  • fixed bug in Jacobian for corr_matrix data type
  • fix cholesky_cov_matrix test code to allow use as parameter
  • fixed poisson_rng, neg_binomial_rng
  • allow binary operations (e.g., < and >) within range constraints
  • support MS Visual Studio 2008
  • fixed memory leaks in categorical sampling statement, categorical_log
    function, and softmax functions
  • removed many compiler warnings
  • numerous bug fixes to arithmetic test code conditions and messages,
    including calls from
  • fixed model crashes when no parameter specified
  • fixed template name conflicts for some compiler bugs (thanks Kevin
    S. Van Horn)

Code Reorganizations & Updates

  • CmdStan is now in its own repository on GitHub: stan-dev/cmdstan
  • consolidate and simplify error handling across modules
  • pulled functionality from CmdStan command class and PyStan and RStan
    into Stan C++
  • generalized some interfaces to allow std::vector as well as Eigen
    for compatibility
  • generalize some I/O CSV writer capabilities
  • optimization output text cleaned up
  • integer overflow during I/O now raises informative error messages
  • const correctness for chains (thanks Kevin S. Van Horn)