forked from stan-dev/stan
-
Notifications
You must be signed in to change notification settings - Fork 0
/
RELEASE-NOTES.txt
1268 lines (1100 loc) · 48.8 KB
/
RELEASE-NOTES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
STAN C++ RELEASE NOTES
======================================================================
Note: these are the release notes for the stan-dev/stan repository.
Further changes may arise at the interface level (stan-dev/{rstan,
pystan, cmdstan}) and math library level (stan-dev/math).
v2.14.0 (26 December 2016)
======================================================================
Bug Fixes
--------------------------------------------------
* NUTS sampler broken (#2179)
* seralization issues with RStan v2.13.1 (#2179)
* printing result of a void function parses, but doesnt' compile (#2168)
* compound declare/define not working for all types (#2163)
Other
--------------------------------------------------
* Update Stan Math Library to v2.14.0
* make use of const references consistent (#2186)
v2.13.1 (3 December 2016)
======================================================================
Bug Fixes
--------------------------------------------------
* fixed compound declare and define (#2156, #2153, #2146)
v2.13.0 (25 November 2016)
======================================================================
New Team Members
--------------------------------------------------
* Thel Seraphim (Columbia University) -- Stan and Math libraries
* Vincent Picaud (CEA, France) -- MathematicaStan
Bug Fixes
--------------------------------------------------
* generated code for lower truncation fixed for discrete variables (#2054)
* typo in error messages for RNGs only allowed in transformed data
block (#2124)
* variables ending in _lpdf are now allowed (#2123)
* cov_exp_quad() not compiling in C++ (#2113)
* conditional operator in functions not compiling in C++ (#2101)
* off-by-one error in error message for integrate_ode_bdf() fixed (#2073)
New User-Facing Features
--------------------------------------------------
* vectorization of unary functions (#2119, #2037)
* bernoulli_logit_rng() added to language (#2084)
* Jacobian warning now suggests `target +=` (#2066)
* matrix_exp() function now available (#2043)
* compound declaration / definition statements (#1951)
New Internal Features
--------------------------------------------------
* user-defined functions can be declared and not defined (#2068)
Documentation
--------------------------------------------------
* manaul reorganization (#1599)
* line too long (#2121)
* added integer % operator documentation (#2065)
* lots more (#2051)
v2.12.0 (6 September 2016)
======================================================================
New Team Members
--------------------------------------------------
* Charles Margossian (Metrum Research Group, LLC) -- diff eq models
Known, outstanding bugs
--------------------------------------------------
* Normalization for lower truncated discrete distributions is off
by one (#2054)
Bug Fixes
--------------------------------------------------
* updated the math library to deal with g++6 errors
(math#348, math#345, math#327)
* fixed issue with 1:0 indexing in array slicing producing
huge size (#1960)
* allow variables to be named the same as unary functions
(#1459)
* distributions without cumulative distribution functions are now
prevented from being used in truncation (#2052)
* allow user-defined lpdf functions to be used in `target += `
expressions (#1944)
* fixed duplicate function warning message (#1946)
* fixed ternary operator generating C++ code that doesn't compile
(#2044)
New User-Facing Features
--------------------------------------------------
* added mdivide_left_spd() and mdivide_right_spd() to the language
(#2016)
* added cov_exp_quad() to the language (#1957)
* added break and continue statements to the language (#1756)
* added append_row() and append_col() to the language (#1347)
* updated error message for missing `|` when using probability functions
(#2003)
* updated parser/warning errors for new syntax (#1940)
New Internal Features
--------------------------------------------------
* updated Travis CI config (#2033)
* fixed segfault in lang test with g++-5.4 (#2030)
* `make clean-all` cleans CVODES binaries (#2012)
v2.11.0 (27 July 2016)
======================================================================
Bug Fixes
--------------------------------------------------
* fixed sampling bug introduced in v2.10.0 (#1979)
* fixed compilation issue under clang++3.8 for rethrow_located and
ios_base::failure (#1937)
* print() now prints when there is a rejection/exception in the model
block (#1936)
* integer division by zero throws exception (#1974, math#321)
v2.10.0 (15 June 2016)
======================================================================
New Team Members
--------------------------------------------------
* Aki Vehtari (Aalto Uni) --- GPs, LOO, statistical modeling,
MATLAB
* Rayleigh Lei (U. Michigan) --- vectorizing functions
* Sebastian Weber (Novartis) --- diff eq models
New User-Facing Features
--------------------------------------------------
* introduction of = for assignment; deprecating <- (#1819)
* _lpdf, _lpmf, _lcdf, _lccdf and vertical bar notation
for probability mass, density, and cumulative distribution
functions; update user-defined function syntax;
deprecate older forms (#1811)
* target += lp to replace increment_log_prob(lp); target() to rpelace
log_prob() function; remove lp__ variable access (#1800)
* conditional (ternary) operator (#1125)
* stiff diff eq solver CVODES from Sundials
* add control parameters (tolerance, max iteraitons) to ODE solvers
* rename ODE solvers based on algorithm, integrate_ode_rk45
for existing non-stiff Runge-Kutta solver and integrate_ode_bdf
for the stiff backward differentiation form; deprecate
the unmarked integrate_ode function (#1886)
* limiting diff eq iterations in solvers (Boost/CVODES)
* unit_vector as parameter (#1713) [it never worked in the past]
* rename multiply_log and log_binomial_coefficient
to lmultiply and lchoose (also part of #1811)
* incomplete beta function as inc_beta (#1540)
New Internal Features
--------------------------------------------------
* exhaustive HMC (XHMC)
* multinomial variant of NUTS (#1846)
* simplified NUTS criterion (#1852)
* uniform static HMC (#1849)
* Riemannian HMC with SoftAbs (#304)
* refactor semantic actions to header/implementation (#1795)
* writer callback interface for algorithms (#1739)
* error writer callbacks (#1836)
* cleaner HMC diagnostic ouptut (#1790)
* pull-request template on GitHub (#1794)
* remove unused filename argument in parser (#1752)
* remove unused lp_no_jacobian function (now controlled with
template params)
* writer callback interface for HMC (#1680)
Bug Fixes
--------------------------------------------------
* index slicing not compiling for matrices (#1754, #1810)
* parsing too eager for reserved words (#1077)
* CSV reader whitespace sensitivity (#1907)
* delayed reject multinomial NUTS (#1906)
* PYTHON2 variable for cpplint (#1912)
* size zero vectors, row vectors, matrices (#1909)
* overflowing transition probs in multinomial NUTS (#1904)
* all the manual bug fixes (#1431, #1709, #1734, #1753,
#1826, #1874, #1879, #1890)
* compiler fix for vector /. real to compile (#1883)
* terminate infinite loops in optimization (#1896)
* ADVI argument config failure (#1731)
* double struct creation removed for forward-declaration
of user-defined functions bug (#1079)
* clarify deprecation of <- is only in Stan, not R (#1819)
* memory leaking with command getting in way of debug (#1293)
* makefile dependencies for stanc (#1682)
* remove NaN init for integers in place of min (negative)
value (#1766)
* namespace pollution from log_mix removed (#1707)
* message buffering reduced in ADVI
* add pstream to user-defined CDFs supporting truncation (#1628)
* initialization failure message clarification (#1736)
v2.9.0 (3 Dec 2015)
======================================================================
New Team Members
--------------------------------------------------
* Krzysztof Sakrejda, adding functions in Stan Math and Stan
New Features
--------------------------------------------------
* General R-like indexing for arrays and vectors! (#1057)
* Automatic differentation paper: http://arxiv.org/abs/1509.07164
* Changed unit_vector transformation (#1720)
* Automatically detect bitness for Windows 32-bit (#1614)
* Better adaptation for ADVI (#1550, #1559, #1587, #1591, #1593, #1710)
Bug Fixes
--------------------------------------------------
* Allows unit_vector to be used in parameters block (#1720)
* Fixed NaN bug in ADVI (#1610)
Maintenance
--------------------------------------------------
* Reduced Cpplint warnings to 0! (#1651, #1656, #1701)
* Better ADVI output (#1588)
* Updated logo for doxygen (#1631)
* Refactoring the use of output streams (#1602, 1653, #1662,
#1670, #1676, #1696, #1601)
* Moved src/stan/services files and namespaces (#1616)
* Updated clang++ compiler options for Mac OS X (#1668)
* Additional testing on Travis CI (#1708)
* Removed unused python script (#1611)
* Updated makefile (#1618, #1655, #1659)
Manual
--------------------------------------------------
* Improved Wiener distribution documentation (#1576)
* Corrected bugs and typos (#1617)
* Thanks to Julain King, Ashley Ford, Evelyn Mitchell,
José Rojas Echenique, Miguel de Val-Borro, Bruno Jacobs,
Ryan Batt, David Manheim
v2.8.0 (8 Sep 2015)
======================================================================
New Team Members
--------------------------------------------------
* Dustin Tran, helps make variational inference a reality
New Features
--------------------------------------------------
* Inverse CDF for normal distribution (#1157)
* Compiler error messages are friendlier
- operator[] (#1517)
- assignment (#1543, stan-dev/math#146)
* Sparse matrix by dense vector multiplication (#1565)
Bug Fixes
--------------------------------------------------
* Disallow user-defiend function overloading (#1547)
* Better behaved beta cdf (#1561, stan-dev/math#124)
Manual
--------------------------------------------------
* Corrected all known bug reports and typos; details in
issues #1526, #1548, #1577
* Thanks to @jonathan-g (Github handle), Damjan Vukcevic,
Daniel Chen, Guido Biele, Takahiro Kubo, Andy Choi
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)
v2.6.3 (17 March 2015)
======================================================================
Bug Fixes
----------------------------------------
* removed extra semicolons in code; they are techinically a C++11
extension [#1379]
* removed use of variable length array; this is a C99 feature
[#1381]
Features
----------------------------------------
* error messages in initialization during sampling get printed out
to the message stream [#1326]
Test Enhancements
----------------------------------------
* added tests for is_vector_like [#1360]
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
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
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 append_col() and append_row() like cbind and rbind
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)
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 (18 June 2014)
======================================================================
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
* 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)
v2.2.0 (14 February 2014)
======================================================================
Bug Fixes
-------------
* increment_log_prob is now vectorized and compiles with vector arguments
* multinomial random number generator used the wrong size for the return value
* fixed memory leaks in auto-diff implementation
* variables can start with the prefix 'inf'
* fixed parameter output order for arrays when using optimization
Features
-------------
* suppress command line output with refresh <= 0
* added 1 to treedepth to match usual definition of treedepth
* added distance, squared_distance, diag_pre_multiply, diag_pre_multiply to Stan modeling lnaguage
* added a 'fixed_param' sampler for use with the generated quantities block
v2.0.1 (24 October 2013)
======================================================================
Bug Fixes
----------------------------------
* fixed multi_normal distribution's gradient calculations
* fixed diagnose mode from the command line to work for matrices
* typos in the manual
v2.0.0 (16 October 2013)
======================================================================
This list is incomplete. The 2.0.0 update is a huge fix, and this
list just represents what was clearly called out in pull requests.
Enhancements
----------------------------------
* all new hierarchical command-line interface
* compiler flags to build with Xcode 5 (which has too-small template-depth)
* BFGS optimization
* print variable name when initialization fails
* reserved function names (breaks backward compatibility)
* deprecate direct use of lp__ in favor of increment_log_prob()
* unfolded softmax for more efficiency, optimized and vectorized categorical
* new Cholesky factor data type
* upgraded to Boost 1.54 and Eigen 3.2.0
* added flag to suppress Jacobian adjustment in log prob (for
optimizers)
* added Rayleigh distribution
* added Bessel (and modified Bessel) functions of first and second
kind
* added Pochhammer functions (rising/falling factorials)
* completed vectorization of univariate distributions
* trapped use of "." in variable names and print error
* moved RStan into its own subproject
* rewrote writer interface for samples
* added delete method to chainables to allow exceptions in
constructors
* added sort and rank functions
* improved doc and coding for GP example models
* shuffle function signature tests for test speed
* new gradient functionality for memory allocation and cleaning
and to reduce code duplication
Bug Fixes
----------------------------------
* remove function signatures from undocumented functions
* fixed broken abs(real) signature; deprecated abs(real) in favor
of fabs(real)
* error checking for dirichlet
* fix bin/print to be row major
* suppress warnings for unused variables; cleanup truly unused ones
* fixed pow() boundary conditions with negative base, fractional
exponent
* fix model tests and error codes
* fix command-line return codes to be more compliant
* fix build parameter names to be more compliant with conventions
* fix integer vs. real problems in some RNGs
* fix print so that it prints expression values, not just names
* fix Newton optimization backtrack to eventually terminate with
failure rather than looping infinitely
* fix CSV output from command for matrices (was transposed)
* fixes to allow Stan to build under Cygwin
* fix double indexing on LHS of assignment
* fix nested expression prints to allow indexed array sizes in
declarations
* fix parameterization of gamma RNG
* reserved model's class name as variable
* added vector size test in assignment
* fixed mixture examples
* fixed rep_vector to work with integer value
* fixed parser error message
* fixed use of Boost NaN tests
* initialze local variables to NaN to prevent segfaults if used
before defined
* remove unused includes from model header
* fix signed/unsigned warnings in tests and code
* validate that init=0 is valid starting value and raise error if not
* fix diag_pre_multiply loop bound
Doc
---------------------------------
* made all user-suggested cleanups and changes to doc
* new basic programming section
* new chapter for new command line
v1.3.0 (12 April 2013)
======================================================================
Enhancements
----------------------------------
Modeling Language
* forward sampling (random draws from distributions)
in generated quantities
* added broadcast (repetition) functions for initializing
matrices, vectors, and arrays
* better error messages in parser
* additional distributions:
+ exp_mod_normal
+ gumbel
+ skew_normal
* additional functions:
+ mdivide_right_spd
+ mdivide_left_spd
+ owenst
+ columns_dot_product
+ rows_dot_product
* broadcast (repetition) functions for vectors, arrays, matrices
+ rep_arrray
+ rep_matrix
+ rep_row_vector
+ rep_vector
Command-Line
* added option to display autocorrelations in the command-line program
to print output
* changed default point estimation routine from the command line to
use Nesterov's accelerated gradient method, added option for point
estimation with Newton's method
RStan
* added method as.mcmc.list()
* compatibility with R 3.0.0
C++/Internal
* refactored math/agrad libs in C++ to separate files/includes,
remove redundant code, more unit tests for existing code
* added chainable_alloc class for caching solver results
* generalized VectorView with seq_view
* templated out generated code for efficient double-only operation
on model log probs w/o gradients
Doc
* additions to user's guide w. sample models
+ stochastic volatility example with source, optimized source,
simulation
+ time series, moving average, standardization for linear
regression, hidden Markov models, with examples
* manual's index is now hyperlinked
* added additional acknowledgements to manual
* added full description of differences between sampling
statement and lp__
* fixed general normal mixture model example
Testing
* split unit tests from distribution tests
Bug Fixes
----------------------------------
* fixed derivative in multi_normal_prec distribution function
* double-based log_prob functions return the same value as var-based
log_prob_grad functions
* calls to lgamma are now using boost's lgamma function
* patched transform to work with Eigen 3.2 beta
* all probability distribution functions and cumulative distribution
functions behave properly with 0 length vector arguments
* fixed error in definition of hypergeometric pmf
* fixed arguments to nesterov optimization ctor in command
* fixed issue with initialization matrices being read improperly
* Use fabs() instead of abs() in unit_vector_constrain.
* typos in the manual
* rstan:
+ fixed crash in R when index is out of bounds using set_cppo("fast")
+ io_context fix skipping len=0
+ fix the typo in manual (dims -> dim)
+ add require(inline) to fix the problem with loading sysdata.rda
v1.2.0 (6 March 2013)
======================================================================
Enhancements
----------------------------------
* full mass matrix estimation during warmup
* expose model log_prob and gradient functions in RStan for use
in other packages (such as optimizers)
* command-line program to display output from multiple chains
with parameter-by-parameter mean, se, sd, quantiles, and R-hat
* probability function speed improvements with vectorization
* created Stan contributed repositories for user-contributed
and experimental features (first entry is an emacs mode)