Skip to content
This repository was archived by the owner on Mar 19, 2021. It is now read-only.

Commit f6537b2

Browse files
Daniel Leeariddell
authored andcommitted
Fixes #345. Adding logger.
1 parent 4409895 commit f6537b2

File tree

1 file changed

+23
-22
lines changed

1 file changed

+23
-22
lines changed

pystan/stan_fit.hpp

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@
1515
#include <boost/random/uniform_real_distribution.hpp>
1616

1717
#include <stan/callbacks/interrupt.hpp>
18-
#include <stan/callbacks/writer.hpp>
18+
#include <stan/callbacks/stream_logger.hpp>
1919
#include <stan/callbacks/stream_writer.hpp>
20+
#include <stan/callbacks/writer.hpp>
2021
#include <stan/io/empty_var_context.hpp>
2122
#include <stan/services/diagnose/diagnose.hpp>
2223
#include <stan/services/optimize/bfgs.hpp>
@@ -782,8 +783,8 @@ namespace pystan {
782783
&& args.get_ctrl_sampling_algorithm() != Fixed_param)
783784
throw std::runtime_error("Must use algorithm=\"Fixed_param\" for "
784785
"model that has no parameters.");
785-
stan::callbacks::stream_writer info(std::cout);
786-
stan::callbacks::stream_writer err(std::cerr);
786+
stan::callbacks::stream_logger logger(std::cout, std::cout, std::cout,
787+
std::cerr, std::cerr);
787788

788789
PyErr_CheckSignals_Functor interrupt;
789790

@@ -850,7 +851,7 @@ namespace pystan {
850851
init_radius,
851852
epsilon, error,
852853
interrupt,
853-
info,
854+
logger,
854855
init_writer,
855856
sample_writer);
856857
holder.num_failed = return_code;
@@ -868,7 +869,7 @@ namespace pystan {
868869
random_seed, id, init_radius,
869870
num_iterations,
870871
save_iterations,
871-
interrupt, info,
872+
interrupt, logger,
872873
init_writer, sample_writer);
873874
}
874875
if (args.get_ctrl_optim_algorithm() == BFGS) {
@@ -891,7 +892,7 @@ namespace pystan {
891892
num_iterations,
892893
save_iterations,
893894
refresh,
894-
interrupt, info,
895+
interrupt, logger,
895896
init_writer, sample_writer);
896897
}
897898
if (args.get_ctrl_optim_algorithm() == LBFGS) {
@@ -916,7 +917,7 @@ namespace pystan {
916917
num_iterations,
917918
save_iterations,
918919
refresh,
919-
interrupt, info,
920+
interrupt, logger,
920921
init_writer, sample_writer);
921922
}
922923
std::vector<double> params = sample_writer.x();
@@ -958,7 +959,7 @@ namespace pystan {
958959
num_thin,
959960
refresh,
960961
interrupt,
961-
info, err, init_writer,
962+
logger, init_writer,
962963
*sample_writer_ptr, diagnostic_writer);
963964
} else if (args.get_ctrl_sampling_algorithm() == NUTS) {
964965
sampler_names.resize(5);
@@ -990,7 +991,7 @@ namespace pystan {
990991
num_warmup, num_samples,
991992
num_thin, save_warmup, refresh,
992993
stepsize, stepsize_jitter, max_depth,
993-
interrupt, info, err, init_writer,
994+
interrupt, logger, init_writer,
994995
*sample_writer_ptr, diagnostic_writer);
995996
} else {
996997
double delta = args.get_ctrl_sampling_adapt_delta();
@@ -1009,7 +1010,7 @@ namespace pystan {
10091010
stepsize, stepsize_jitter, max_depth,
10101011
delta, gamma, kappa,
10111012
t0, init_buffer, term_buffer, window,
1012-
interrupt, info, err, init_writer,
1013+
interrupt, logger, init_writer,
10131014
*sample_writer_ptr, diagnostic_writer);
10141015
}
10151016
} else if (args.get_ctrl_sampling_metric() == DIAG_E) {
@@ -1020,7 +1021,7 @@ namespace pystan {
10201021
num_warmup, num_samples,
10211022
num_thin, save_warmup, refresh,
10221023
stepsize, stepsize_jitter, max_depth,
1023-
interrupt, info, err, init_writer,
1024+
interrupt, logger, init_writer,
10241025
*sample_writer_ptr, diagnostic_writer);
10251026
} else {
10261027
double delta = args.get_ctrl_sampling_adapt_delta();
@@ -1039,7 +1040,7 @@ namespace pystan {
10391040
stepsize, stepsize_jitter, max_depth,
10401041
delta, gamma, kappa,
10411042
t0, init_buffer, term_buffer, window,
1042-
interrupt, info, err, init_writer,
1043+
interrupt, logger, init_writer,
10431044
*sample_writer_ptr, diagnostic_writer);
10441045
}
10451046
} else if (args.get_ctrl_sampling_metric() == UNIT_E) {
@@ -1050,7 +1051,7 @@ namespace pystan {
10501051
num_warmup, num_samples,
10511052
num_thin, save_warmup, refresh,
10521053
stepsize, stepsize_jitter, max_depth,
1053-
interrupt, info, err, init_writer,
1054+
interrupt, logger, init_writer,
10541055
*sample_writer_ptr, diagnostic_writer);
10551056
} else {
10561057
double delta = args.get_ctrl_sampling_adapt_delta();
@@ -1065,7 +1066,7 @@ namespace pystan {
10651066
num_thin, save_warmup, refresh,
10661067
stepsize, stepsize_jitter, max_depth,
10671068
delta, gamma, kappa, t0,
1068-
interrupt, info, err, init_writer,
1069+
interrupt, logger, init_writer,
10691070
*sample_writer_ptr, diagnostic_writer);
10701071
}
10711072
}
@@ -1097,7 +1098,7 @@ namespace pystan {
10971098
num_warmup, num_samples,
10981099
num_thin, save_warmup, refresh,
10991100
stepsize, stepsize_jitter, int_time,
1100-
interrupt, info, err, init_writer,
1101+
interrupt, logger, init_writer,
11011102
*sample_writer_ptr, diagnostic_writer);
11021103
} else {
11031104
double delta = args.get_ctrl_sampling_adapt_delta();
@@ -1116,7 +1117,7 @@ namespace pystan {
11161117
stepsize, stepsize_jitter, int_time,
11171118
delta, gamma, kappa, t0,
11181119
init_buffer, term_buffer, window,
1119-
interrupt, info, err, init_writer,
1120+
interrupt, logger, init_writer,
11201121
*sample_writer_ptr, diagnostic_writer);
11211122

11221123
}
@@ -1128,7 +1129,7 @@ namespace pystan {
11281129
num_warmup, num_samples,
11291130
num_thin, save_warmup, refresh,
11301131
stepsize, stepsize_jitter, int_time,
1131-
interrupt, info, err, init_writer,
1132+
interrupt, logger, init_writer,
11321133
*sample_writer_ptr, diagnostic_writer);
11331134

11341135
} else {
@@ -1148,7 +1149,7 @@ namespace pystan {
11481149
stepsize, stepsize_jitter, int_time,
11491150
delta, gamma, kappa, t0,
11501151
init_buffer, term_buffer, window,
1151-
interrupt, info, err, init_writer,
1152+
interrupt, logger, init_writer,
11521153
*sample_writer_ptr, diagnostic_writer);
11531154
}
11541155
} else if (args.get_ctrl_sampling_metric() == UNIT_E) {
@@ -1159,7 +1160,7 @@ namespace pystan {
11591160
num_warmup, num_samples,
11601161
num_thin, save_warmup, refresh,
11611162
stepsize, stepsize_jitter, int_time,
1162-
interrupt, info, err, init_writer,
1163+
interrupt, logger, init_writer,
11631164
*sample_writer_ptr, diagnostic_writer);
11641165

11651166
} else {
@@ -1175,7 +1176,7 @@ namespace pystan {
11751176
num_thin, save_warmup, refresh,
11761177
stepsize, stepsize_jitter, int_time,
11771178
delta, gamma, kappa, t0,
1178-
interrupt, info, err, init_writer,
1179+
interrupt, logger, init_writer,
11791180
*sample_writer_ptr, diagnostic_writer);
11801181
}
11811182
}
@@ -1265,7 +1266,7 @@ namespace pystan {
12651266
max_iterations, tol_rel_obj, eta,
12661267
adapt_engaged, adapt_iterations,
12671268
eval_elbo, output_samples,
1268-
interrupt, info, init_writer,
1269+
interrupt, logger, init_writer,
12691270
*sample_writer_ptr, diagnostic_writer);
12701271
} else {
12711272
return_code = stan::services::experimental::advi
@@ -1275,7 +1276,7 @@ namespace pystan {
12751276
max_iterations, tol_rel_obj, eta,
12761277
adapt_engaged, adapt_iterations,
12771278
eval_elbo, output_samples,
1278-
interrupt, info, init_writer,
1279+
interrupt, logger, init_writer,
12791280
*sample_writer_ptr, diagnostic_writer);
12801281
}
12811282
std::vector<std::vector<double> > slst(sample_writer_ptr->values_.x().begin(),

0 commit comments

Comments
 (0)