In sorting, we used to compute non-price utilities. Now that endogenous variables are supported, we are recomputing the full utility on each iteration. However, most of the variables are exogenous - so that part of the utility function could be kept constant.
I'm going to put this on the back burner for now - now that utility computation is multithreaded, it only adds ~10 mins per iteration on the 16-core, 128 GB RAM instances I'm using to estimate these models.
In sorting, we used to compute non-price utilities. Now that endogenous variables are supported, we are recomputing the full utility on each iteration. However, most of the variables are exogenous - so that part of the utility function could be kept constant.