Skip to content

Commit d429d7c

Browse files
author
Nicusor Serban
committed
Merge remote-tracking branch 'origin/develop' into release/v2.36.0
2 parents 13b0c5c + 595ae41 commit d429d7c

File tree

3 files changed

+174
-0
lines changed

3 files changed

+174
-0
lines changed

src/stan/io/stan_csv_reader.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,10 @@ class stan_csv_reader {
250250

251251
int rows = lines - 3;
252252
int cols = std::count(line.begin(), line.end(), ',') + 1;
253+
if (cols == 1) {
254+
// model has no parameters
255+
return;
256+
}
253257
adaptation.metric.resize(rows, cols);
254258
char comment; // Buffer for comment indicator, #
255259

src/test/unit/io/stan_csv_reader_test.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ class StanIoStanCsvReader : public testing::Test {
3030
"src/test/unit/io/test_csv_files/bernoulli_warmup.csv");
3131
fixed_param_stream.open(
3232
"src/test/unit/io/test_csv_files/fixed_param_output.csv");
33+
no_params_stream.open(
34+
"src/test/unit/io/test_csv_files/no_parameters_hmc.csv");
3335
}
3436

3537
void TearDown() {
@@ -46,6 +48,7 @@ class StanIoStanCsvReader : public testing::Test {
4648
bernoulli_thin_stream.close();
4749
bernoulli_warmup_stream.close();
4850
fixed_param_stream.close();
51+
no_params_stream.close();
4952
}
5053

5154
std::ifstream blocker0_stream, epil0_stream;
@@ -58,6 +61,7 @@ class StanIoStanCsvReader : public testing::Test {
5861
std::ifstream bernoulli_thin_stream;
5962
std::ifstream bernoulli_warmup_stream;
6063
std::ifstream fixed_param_stream;
64+
std::ifstream no_params_stream;
6165
};
6266

6367
TEST_F(StanIoStanCsvReader, read_metadata1) {
@@ -570,6 +574,14 @@ TEST_F(StanIoStanCsvReader, fixed_param) {
570574
ASSERT_EQ(10, fixed_param.samples.rows());
571575
}
572576

577+
TEST_F(StanIoStanCsvReader, no_parameters) {
578+
stan::io::stan_csv no_parameters_hmc;
579+
std::stringstream out;
580+
no_parameters_hmc = stan::io::stan_csv_reader::parse(no_params_stream, &out);
581+
ASSERT_EQ(100, no_parameters_hmc.samples.rows());
582+
ASSERT_EQ(0, no_parameters_hmc.adaptation.metric.size());
583+
}
584+
573585
TEST_F(StanIoStanCsvReader, no_samples) {
574586
std::ifstream no_samples_stream;
575587
no_samples_stream.open(
@@ -590,4 +602,5 @@ TEST_F(StanIoStanCsvReader, variational) {
590602
= stan::io::stan_csv_reader::parse(variational_stream, &out);
591603
variational_stream.close();
592604
ASSERT_EQ(1000, variational.metadata.num_samples);
605+
ASSERT_EQ(0, variational.adaptation.metric.size());
593606
}
Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
# stan_version_major = 2
2+
# stan_version_minor = 35
3+
# stan_version_patch = 0
4+
# model = sim_model
5+
# start_datetime = 2024-11-25 16:05:51 UTC
6+
# method = sample (Default)
7+
# sample
8+
# num_samples = 100
9+
# num_warmup = 100
10+
# save_warmup = false (Default)
11+
# thin = 1 (Default)
12+
# adapt
13+
# engaged = true (Default)
14+
# gamma = 0.05 (Default)
15+
# delta = 0.8 (Default)
16+
# kappa = 0.75 (Default)
17+
# t0 = 10 (Default)
18+
# init_buffer = 75 (Default)
19+
# term_buffer = 50 (Default)
20+
# window = 25 (Default)
21+
# save_metric = false (Default)
22+
# algorithm = hmc (Default)
23+
# hmc
24+
# engine = nuts (Default)
25+
# nuts
26+
# max_depth = 10 (Default)
27+
# metric = diag_e (Default)
28+
# metric_file = (Default)
29+
# stepsize = 1 (Default)
30+
# stepsize_jitter = 0 (Default)
31+
# num_chains = 1 (Default)
32+
# id = 1 (Default)
33+
# data
34+
# file = (Default)
35+
# init = 2 (Default)
36+
# random
37+
# seed = 1799096017 (Default)
38+
# output
39+
# file = output.csv (Default)
40+
# diagnostic_file = (Default)
41+
# refresh = 100 (Default)
42+
# sig_figs = -1 (Default)
43+
# profile_file = profile.csv (Default)
44+
# save_cmdstan_config = false (Default)
45+
# num_threads = 1 (Default)
46+
# stanc_version = %%NAME%%3 %%VERSION%%
47+
# stancflags =
48+
lp__,accept_stat__,stepsize__,treedepth__,n_leapfrog__,divergent__,energy__,x
49+
# Adaptation terminated
50+
# Step size = 1.35996e+14
51+
# Diagonal elements of inverse mass matrix:
52+
#
53+
0,1,1.35996e+14,1,1,0,0,8.57152
54+
0,1,1.35996e+14,1,1,0,0,-4.56101
55+
0,1,1.35996e+14,1,1,0,0,9.30019
56+
0,1,1.35996e+14,1,1,0,0,-14.6254
57+
0,1,1.35996e+14,1,1,0,0,8.30123
58+
0,1,1.35996e+14,1,1,0,0,19.2067
59+
0,1,1.35996e+14,1,1,0,0,12.6027
60+
0,1,1.35996e+14,1,1,0,0,-5.70173
61+
0,1,1.35996e+14,1,1,0,0,3.04002
62+
0,1,1.35996e+14,1,1,0,0,-8.28215
63+
0,1,1.35996e+14,1,1,0,0,3.20386
64+
0,1,1.35996e+14,1,1,0,0,-6.45707
65+
0,1,1.35996e+14,1,1,0,0,-5.29269
66+
0,1,1.35996e+14,1,1,0,0,5.1527
67+
0,1,1.35996e+14,1,1,0,0,-3.69775
68+
0,1,1.35996e+14,1,1,0,0,-1.77925
69+
0,1,1.35996e+14,1,1,0,0,-13.7562
70+
0,1,1.35996e+14,1,1,0,0,-0.789554
71+
0,1,1.35996e+14,1,1,0,0,-14.0911
72+
0,1,1.35996e+14,1,1,0,0,-4.71911
73+
0,1,1.35996e+14,1,1,0,0,-12.7874
74+
0,1,1.35996e+14,1,1,0,0,15.029
75+
0,1,1.35996e+14,1,1,0,0,-6.30709
76+
0,1,1.35996e+14,1,1,0,0,3.50805
77+
0,1,1.35996e+14,1,1,0,0,9.01495
78+
0,1,1.35996e+14,1,1,0,0,5.9809
79+
0,1,1.35996e+14,1,1,0,0,11.02
80+
0,1,1.35996e+14,1,1,0,0,9.68621
81+
0,1,1.35996e+14,1,1,0,0,-4.20659
82+
0,1,1.35996e+14,1,1,0,0,-7.71128
83+
0,1,1.35996e+14,1,1,0,0,-13.6125
84+
0,1,1.35996e+14,1,1,0,0,0.541567
85+
0,1,1.35996e+14,1,1,0,0,-6.96969
86+
0,1,1.35996e+14,1,1,0,0,2.49902
87+
0,1,1.35996e+14,1,1,0,0,8.31074
88+
0,1,1.35996e+14,1,1,0,0,13.4856
89+
0,1,1.35996e+14,1,1,0,0,-4.60591
90+
0,1,1.35996e+14,1,1,0,0,6.84733
91+
0,1,1.35996e+14,1,1,0,0,-16.8676
92+
0,1,1.35996e+14,1,1,0,0,4.43181
93+
0,1,1.35996e+14,1,1,0,0,-10.6785
94+
0,1,1.35996e+14,1,1,0,0,-5.56113
95+
0,1,1.35996e+14,1,1,0,0,-0.95401
96+
0,1,1.35996e+14,1,1,0,0,11.2198
97+
0,1,1.35996e+14,1,1,0,0,3.43417
98+
0,1,1.35996e+14,1,1,0,0,-11.2942
99+
0,1,1.35996e+14,1,1,0,0,-14.3029
100+
0,1,1.35996e+14,1,1,0,0,3.69492
101+
0,1,1.35996e+14,1,1,0,0,0.319324
102+
0,1,1.35996e+14,1,1,0,0,-5.95097
103+
0,1,1.35996e+14,1,1,0,0,5.99333
104+
0,1,1.35996e+14,1,1,0,0,-6.59629
105+
0,1,1.35996e+14,1,1,0,0,14.1795
106+
0,1,1.35996e+14,1,1,0,0,-7.58818
107+
0,1,1.35996e+14,1,1,0,0,4.89377
108+
0,1,1.35996e+14,1,1,0,0,4.63195
109+
0,1,1.35996e+14,1,1,0,0,-4.62905
110+
0,1,1.35996e+14,1,1,0,0,-11.4145
111+
0,1,1.35996e+14,1,1,0,0,4.03017
112+
0,1,1.35996e+14,1,1,0,0,-10.0459
113+
0,1,1.35996e+14,1,1,0,0,-11.8674
114+
0,1,1.35996e+14,1,1,0,0,-0.161997
115+
0,1,1.35996e+14,1,1,0,0,-5.75037
116+
0,1,1.35996e+14,1,1,0,0,-13.3027
117+
0,1,1.35996e+14,1,1,0,0,4.86817
118+
0,1,1.35996e+14,1,1,0,0,11.1937
119+
0,1,1.35996e+14,1,1,0,0,13.918
120+
0,1,1.35996e+14,1,1,0,0,-12.2423
121+
0,1,1.35996e+14,1,1,0,0,22.3588
122+
0,1,1.35996e+14,1,1,0,0,-8.30628
123+
0,1,1.35996e+14,1,1,0,0,-6.87127
124+
0,1,1.35996e+14,1,1,0,0,12.721
125+
0,1,1.35996e+14,1,1,0,0,-7.86135
126+
0,1,1.35996e+14,1,1,0,0,-8.56196
127+
0,1,1.35996e+14,1,1,0,0,-4.04709
128+
0,1,1.35996e+14,1,1,0,0,-21.6766
129+
0,1,1.35996e+14,1,1,0,0,-19.6485
130+
0,1,1.35996e+14,1,1,0,0,1.99421
131+
0,1,1.35996e+14,1,1,0,0,11.2645
132+
0,1,1.35996e+14,1,1,0,0,-9.35154
133+
0,1,1.35996e+14,1,1,0,0,-3.37081
134+
0,1,1.35996e+14,1,1,0,0,2.46874
135+
0,1,1.35996e+14,1,1,0,0,7.28248
136+
0,1,1.35996e+14,1,1,0,0,19.3846
137+
0,1,1.35996e+14,1,1,0,0,-4.92502
138+
0,1,1.35996e+14,1,1,0,0,-11.4687
139+
0,1,1.35996e+14,1,1,0,0,3.12818
140+
0,1,1.35996e+14,1,1,0,0,-5.79636
141+
0,1,1.35996e+14,1,1,0,0,12.2196
142+
0,1,1.35996e+14,1,1,0,0,5.59427
143+
0,1,1.35996e+14,1,1,0,0,-22.9084
144+
0,1,1.35996e+14,1,1,0,0,2.70951
145+
0,1,1.35996e+14,1,1,0,0,-0.604509
146+
0,1,1.35996e+14,1,1,0,0,1.06201
147+
0,1,1.35996e+14,1,1,0,0,-3.10986
148+
0,1,1.35996e+14,1,1,0,0,6.57804
149+
0,1,1.35996e+14,1,1,0,0,9.0426
150+
0,1,1.35996e+14,1,1,0,0,3.30854
151+
0,1,1.35996e+14,1,1,0,0,8.85378
152+
0,1,1.35996e+14,1,1,0,0,-1.71584
153+
#
154+
# Elapsed Time: 0 seconds (Warm-up)
155+
# 0 seconds (Sampling)
156+
# 0 seconds (Total)
157+
#

0 commit comments

Comments
 (0)