Skip to content

Commit 6fad34d

Browse files
authored
Replaces the essential fprintf with message events (#261)
1 parent 113a952 commit 6fad34d

File tree

8 files changed

+54
-26
lines changed

8 files changed

+54
-26
lines changed

API/RATMain.m

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,22 @@
1616
result = reflectivityCalculation(problemStruct,problemCells,problemLimits,controls);
1717
case coderEnums.procedures.Simplex
1818
if ~strcmpi(controls.display, coderEnums.displayOptions.Off)
19-
fprintf('\nRunning simplex\n\n');
19+
triggerEvent(coderEnums.eventTypes.Message, sprintf('\nRunning simplex\n\n'));
2020
end
2121
[problemStruct,result] = runSimplex(problemStruct,problemCells,problemLimits,controls);
2222
case coderEnums.procedures.DE
2323
if ~strcmpi(controls.display, coderEnums.displayOptions.Off)
24-
fprintf('\nRunning Differential Evolution\n\n');
24+
triggerEvent(coderEnums.eventTypes.Message, sprintf('\nRunning Differential Evolution\n\n'));
2525
end
2626
[problemStruct,result] = runDE(problemStruct,problemCells,problemLimits,controls);
2727
case coderEnums.procedures.NS
2828
if ~strcmpi(controls.display, coderEnums.displayOptions.Off)
29-
fprintf('\nRunning Nested Sampler\n\n');
29+
triggerEvent(coderEnums.eventTypes.Message, sprintf('\nRunning Nested Sampler\n\n'));
3030
end
3131
[problemStruct,result,bayesResults] = runNestedSampler(problemStruct,problemCells,problemLimits,controls,priors);
3232
case coderEnums.procedures.Dream
3333
if ~strcmpi(controls.display, coderEnums.displayOptions.Off)
34-
fprintf('\nRunning DREAM\n\n');
34+
triggerEvent(coderEnums.eventTypes.Message, sprintf('\nRunning DREAM\n\n'));
3535
end
3636
[problemStruct,result,bayesResults] = runDREAM(problemStruct,problemCells,problemLimits,controls,priors);
3737
otherwise

minimisers/DE/deopt.m

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -107,15 +107,15 @@
107107
%-----Check input variables---------------------------------------------
108108
if (I_NP < 5)
109109
I_NP=5;
110-
fprintf(1,' I_NP increased to minimal value 5\n');
110+
triggerEvent(coderEnums.eventTypes.Message, sprintf('I_NP increased to minimal value 5\n'));
111111
end
112112
if ((F_CR < 0) | (F_CR > 1))
113113
F_CR=0.5;
114-
fprintf(1,'F_CR should be from interval [0,1]; set to default value 0.5\n');
114+
triggerEvent(coderEnums.eventTypes.Message, sprintf('F_CR should be from interval [0,1]; set to default value 0.5\n'));
115115
end
116116
if (I_itermax <= 0)
117117
I_itermax = 200;
118-
fprintf(1,'I_itermax should be > 0; set to default value 200\n');
118+
triggerEvent(coderEnums.eventTypes.Message, sprintf('I_itermax should be > 0; set to default value 200\n'));
119119
end
120120
I_refresh = floor(I_refresh);
121121

@@ -305,7 +305,8 @@
305305

306306
if (I_refresh > 0)
307307
if ((rem(I_iter,I_refresh) == 0) || I_iter == 1) && strcmpi(controls.display, coderEnums.displayOptions.Iter)
308-
fprintf('Iteration: %g, Best: %f, fWeight: %f, F_CR: %f, I_NP: %g\n\n', I_iter,S_bestval.FVr_oa(1),fWeight,F_CR,I_NP);
308+
triggerEvent(coderEnums.eventTypes.Message, ...
309+
sprintf('Iteration: %g, Best: %f, fWeight: %f, F_CR: %f, I_NP: %g\n\n', I_iter,S_bestval.FVr_oa(1),fWeight,F_CR,I_NP));
309310

310311
%disp(S_bestval);
311312
%var(FM_pop)
@@ -328,7 +329,7 @@
328329

329330
if isRATStopped(controls.IPCFilePath)
330331
if ~strcmpi(controls.display, coderEnums.displayOptions.Off)
331-
fprintf('Optimisation terminated by user\n');
332+
triggerEvent(coderEnums.eventTypes.Message, sprintf('Optimisation terminated by user\n'));
332333
end
333334
break;
334335
end

minimisers/DE/runDE.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@
104104
result = reflectivityCalculation(problemStruct,problemCells,problemLimits,controls);
105105

106106
if ~strcmpi(controls.display, coderEnums.displayOptions.Off)
107-
fprintf('Final chi squared is %g\n',result.calculationResults.sumChi);
107+
triggerEvent(coderEnums.eventTypes.Message, sprintf('Final chi squared is %g\n',result.calculationResults.sumChi));
108108
end
109109

110110
end

minimisers/DREAM/functions/ratDREAM.m

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -161,9 +161,7 @@
161161
% Now print to screen all the settings
162162
controls = ratInputs.controls;
163163
if ~strcmpi(controls.display, coderEnums.displayOptions.Off)
164-
fprintf('------------------ Summary of the main settings used ------------------\n');
165-
disp(DREAMPar);
166-
fprintf('-----------------------------------------------------------------------\n');
164+
printParameters(DREAMPar);
167165
end
168166
% Now check how the measurement sigma is arranged (estimated or defined)
169167
%
@@ -276,7 +274,7 @@
276274

277275
if isRATStopped(controls.IPCFilePath)
278276
if ~strcmpi(controls.display, coderEnums.displayOptions.Off)
279-
fprintf('Optimisation terminated by user\n');
277+
triggerEvent(coderEnums.eventTypes.Message, sprintf('Optimisation terminated by user\n'));
280278
end
281279
break;
282280
end
@@ -300,3 +298,30 @@
300298
triggerEvent(coderEnums.eventTypes.Progress, 'DREAM', 1);
301299
%close(h);
302300
end
301+
302+
303+
function printParameters(DREAMPar)
304+
% Print the dream parameters
305+
coder.varsize('setting', [1 Inf], [0 1]);
306+
setting = sprintf('------------------ Summary of the main settings used ------------------\n');
307+
names = fieldnames(DREAMPar);
308+
bools = {'false', 'true'};
309+
for k=1:numel(names)
310+
setting = strjoin({setting, sprintf('%25s: ', names{k})});
311+
value = DREAMPar.(names{k});
312+
if isnumeric(value)
313+
if numel(value) ~= 1
314+
dim = size(value);
315+
setting = strjoin({setting, sprintf('[%gx%g %s]\n', dim(1), dim(2), class(value))});
316+
else
317+
setting = strjoin({setting, sprintf('%.8g\n', value(1))});
318+
end
319+
elseif islogical(value)
320+
setting = strjoin({setting, sprintf('%s\n', bools{double(value) + 1})});
321+
else
322+
setting = strjoin({setting, sprintf('''%s''\n', value)});
323+
end
324+
end
325+
setting = strjoin({setting, sprintf('-----------------------------------------------------------------------\n')});
326+
triggerEvent(coderEnums.eventTypes.Message, setting);
327+
end

minimisers/DREAM/functions/removeOutlier.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@
203203
else
204204
if N >= 61
205205
N = 60; n_ind = size(peirce_r,1);
206-
fprintf('DREAMPar.nChains > 60; using Peirce r-values for DREAMPar.nChains is 60');
206+
triggerEvent(coderEnums.eventTypes.Message, 'DREAMPar.nChains > 60; using Peirce r-values for DREAMPar.nChains is 60');
207207
end
208208
if N < 2
209209
error('Insufficient number of chains to apply Peirce diagnostic');

minimisers/NS/drawMCMC.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@
184184

185185
% print out acceptance ratio
186186
if ~strcmpi(controls.display, coderEnums.displayOptions.Off)
187-
fprintf('Acceptance ratio: %1.4f, \n\n', acctot/(Ntimes*nMCMC));
187+
triggerEvent(coderEnums.eventTypes.Message, sprintf('Acceptance ratio: %1.4f, \n\n', acctot/(Ntimes*nMCMC)));
188188
end
189189

190190
return

minimisers/NS/nestedSampler.m

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -271,12 +271,12 @@
271271

272272
% display progress (optional)
273273
if ~strcmpi(controls.display, coderEnums.displayOptions.Off)
274-
fprintf('log(Z): %.5e, tol = %.5e, K = %d, iteration = %d, H = %.5e\n', ...
275-
logZ, tol, int32(K), int32(j), H);
274+
triggerEvent(coderEnums.eventTypes.Message, sprintf('log(Z): %.5e, tol = %.5e, K = %d, iteration = %d, H = %.5e\n', ...
275+
logZ, tol, int32(K), int32(j), H));
276276
end
277277
if isRATStopped(controls.IPCFilePath)
278278
if ~strcmpi(controls.display, coderEnums.displayOptions.Off)
279-
fprintf('Optimisation terminated by user\n');
279+
triggerEvent(coderEnums.eventTypes.Message, sprintf('Optimisation terminated by user\n'));
280280
end
281281
break;
282282
end

minimisers/simplex/fMinSearch.m

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -237,8 +237,9 @@
237237

238238
% Print out initial f(x) as 0th iteration
239239
if prnt == 3
240-
fprintf('\n%s\n', header);
241-
fprintf(' %5.0f %5.0f %12.6g %s\n', itercount, func_evals, fv(1), how);
240+
triggerEvent(coderEnums.eventTypes.Message, sprintf('\n%s\n', header));
241+
triggerEvent(coderEnums.eventTypes.Message, ...
242+
sprintf(' %5.0f %5.0f %12.6g %s\n', itercount, func_evals, fv(1), how));
242243
% elseif prnt == 4
243244
% Option never used in RAT
244245

@@ -299,7 +300,8 @@
299300
itercount = itercount + 1;
300301
func_evals = n+1;
301302
if prnt == 3
302-
fprintf(' %5.0f %5.0f %12.6g %s\n', itercount, func_evals, fv(1), how);
303+
triggerEvent(coderEnums.eventTypes.Message, ...
304+
sprintf(' %5.0f %5.0f %12.6g %s\n', itercount, func_evals, fv(1), how));
303305
% elseif prnt == 4
304306
% fprintf('%s \n', ' ')
305307
% fprintf('%s \n', how)
@@ -418,7 +420,7 @@
418420
v = v(:,j);
419421
itercount = itercount + 1;
420422
if prnt == 3
421-
fprintf(' %5.0f %5.0f %12.6g %s\n', itercount, func_evals, fv(1), how);
423+
triggerEvent(coderEnums.eventTypes.Message, sprintf(' %5.0f %5.0f %12.6g %s\n', itercount, func_evals, fv(1), how));
422424
% elseif prnt == 4
423425
% fprintf('%s \n', ' ')
424426
% fprintf('%s \n', num2str(how))
@@ -490,7 +492,7 @@
490492
end
491493

492494
if printMsg
493-
fprintf('\n%s\n', msg);
495+
triggerEvent(coderEnums.eventTypes.Message, sprintf('\n%s\n', msg));
494496
end
495497
end
496498
%--------------------------------------------------------------------------
@@ -541,9 +543,9 @@
541543
output.iterations = iteration;
542544
output.funcCount = funccount;
543545
output.algorithm = 'Nelder-Mead simplex direct search';
544-
output.message = sprintf('Optimisation terminated by user');
546+
output.message = 'Optimisation terminated by user';
545547
if display > 0
546-
fprintf('\n%s\n', output.message);
548+
triggerEvent(coderEnums.eventTypes.Message, sprintf('\n%s\n', output.message));
547549
end
548550
end
549551

0 commit comments

Comments
 (0)