In my use of the smartmarket module, the particulars of my model result in a 
non-convergent system occasionally.  In trying to make the error-handling in 
these cases more robust, I found that line 178 of the smartmarket is causing me 
problems:

price       = mkt.lim.P.max_offer * ones(ng, 1);

This branch of the function is reached when the uopf function fails to converge 
and goes through the process of setting all the expected outputs to dummy 
values.  In my case, I've found that mkt.lim.P.max_offer is a null value, thus 
causing problems.  Somehow I got under the impression that the max_offer value 
was optional but clearly that is not the case for non-convergence.

I can see that if the mkt.lim is empty,  'runmarket.m' calls 'pricelimits' (in 
pricelimimts.m) which calls 'fill_lim' (in the same file) which appears to 
assign null values to the necessary quantities.  It seems like 'fill_lim' 
should actually be defining numeric values so that the error I'm experiencing 
is avoided.  Am I understanding this correctly or have I missed something?

Trevor

Reply via email to