Hi Trevor,

Your suggestion is reasonable, but it seems there are a lot of places where the 
code checks for empty values of these limits and acts accordingly. I have 
replaced the line your reference in smartmkt.m with the following …

    if isempty(mkt.lim.P.max_offer)
        price   = NaN(ng, 1);
    else
        price   = mkt.lim.P.max_offer * ones(ng, 1);
    end

Hopefully, this will address the error you are seeing. Let me know if it does 
not.


-- 
Ray Zimmerman
Senior Research Associate
B30 Warren Hall, Cornell University, Ithaca, NY 14853
phone: (607) 255-9645





On Aug 19, 2013, at 4:44 PM, "Hardy, Trevor" <[email protected]> wrote:

> 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