My original formulation was a sum. Ugly and complex but it works; unfortunately it took a long time 1616 seconds. After a few “grande dark roasts” I rewrote it as a loop. Much better: 0 seconds! I don’t understand exactly why.
* fast: 0 secondsloop((TechYieldname,fpumap(fpuall,fpu),cropmap(cropAll,crop),cropjmap(crop,j),LandMap(LandAll,Land),tech,pt(p,t))$UserTechYieldDriver(TechYieldname,FpuAll,CropAll,LandAll,Tech,p),
YldTechGRX00a(TechYieldname,j,fpu,land,tech,t) =
UserTechYieldDriver(TechYieldname,FpuAll,CropAll,LandAll,Tech,p);
);
* slow: 1616 seconds
YldTechGRX00b(TechYieldname,j,fpu,land,tech,t) = sum((fpumap(fpuall,fpu),cropmap(cropAll,crop),cropjmap(crop,j),LandMap(LandAll,Land),pt(p,t)),UserTechYieldDriver(TechYieldname,FpuAll,CropAll,LandAll,Tech,p));
This comment has been removed by a blog administrator.
ReplyDelete