Stan 2.6.0 Released

stanlogo-main

We’re happy to announce the release of Stan 2.6, including RStan, PyStan, CmdStan; it will also work with the existing Stan.jl and MatlabStan. Although there is some new functionality (hence the minor version bump), this is primarily a maintenance release. It fixes all of the known memory issues with Stan 2.5.0 and improves overall speed by around 5–10% (this will vary by model).

How to Get It

As usual, you can get everything you need starting from the

Please let us know if you run into any problems with installation or need help using Stan, ideally through the Stan Users Group (also linked from the home page).

Release Notes

These are the release notes for the underlying C++ code for Stan, which is shared by all interfaces.

v2.6.0 (5 February 2015)
======================================================================

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

2 thoughts on “Stan 2.6.0 Released

Leave a Reply

Your email address will not be published. Required fields are marked *