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
