Index: ScalarCode.h =================================================================== RCS file: /home/pooma/Repository/r2/src/Evaluator/ScalarCode.h,v retrieving revision 1.6 diff -r1.6 ScalarCode.h 63c63 < // Full Description: --- > // ApplyMultiArgLoc 64a65,90 > // ApplyMultiArgLoc is a helper class that permits generic application of > // a function to a set of arguments with a Loc<>. The user can provide a > // functor which takes a set of arguments: > // > // struct UserFunctor { > // operator()(F1 &f1, F2 &f2, F3 &f3, Loc<4> &loc); > // } > // > // By wrapping the arguments and the functor in this object, we get a > // common interface that takes integers and can be used by the evaluator > // in the inner loop. > // > // ApplyMultiArgLoc, UserFunctor> > // op(MultiArg3(f1, f2, f3), function); > // > // op(i, j, k, l); > // > // -translates to UserFunctor::operator()(f1, f2, f3, Loc<4>(i, j, k, l)); > // > // This helper class is not for external use. It gets used inside > // EvaluateLocLoop which generates the loops for the MultiArgKernel. > // > // WARNING: This object is intended to have a very short lifetime. It > // stores non-const references to the function and multi-arg, so you should > // not store one of these objects for later use. EvaluateLocLoop creates > // an ApplyMultiArgLoc that just lives for the length of the function call. 105c131 < ApplyMultiArgLoc(const MultiArg2 &multiArg,const Function &function) --- > ApplyMultiArgLoc(MultiArg2 &multiArg,Function &function) 130,131c156,157 < const MultiArg2 &multiArg_m; < const Function &function_m; --- > MultiArg2 &multiArg_m; > Function &function_m; 137,138c163,164 < ApplyMultiArgLoc(const MultiArg3 &multiArg, < const Function &function) --- > ApplyMultiArgLoc(MultiArg3 &multiArg, > Function &function) 167,168c193,194 < const MultiArg3 &multiArg_m; < const Function &function_m; --- > MultiArg3 &multiArg_m; > Function &function_m; 174,175c200,201 < ApplyMultiArgLoc(const MultiArg7 &multiArg, < const Function &function) --- > ApplyMultiArgLoc(MultiArg7 &multiArg, > Function &function) 208,209c234,235 < const MultiArg7 &multiArg_m; < const Function &function_m; --- > MultiArg7 &multiArg_m; > Function &function_m; 215,216c241,242 < ApplyMultiArgLoc(const MultiArg6 &multiArg, < const Function &function) --- > ApplyMultiArgLoc(MultiArg6 &multiArg, > Function &function) 249,250c275,276 < const MultiArg6 &multiArg_m; < const Function &function_m; --- > MultiArg6 &multiArg_m; > Function &function_m; 256,257c282,283 < ApplyMultiArgLoc(const MultiArg4 &multiArg, < const Function &function) --- > ApplyMultiArgLoc(MultiArg4 &multiArg, > Function &function) 290,291c316,317 < const MultiArg4 &multiArg_m; < const Function &function_m; --- > MultiArg4 &multiArg_m; > Function &function_m; 297,298c323,324 < ApplyMultiArgLoc(const MultiArg5 &multiArg, < const Function &function) --- > ApplyMultiArgLoc(MultiArg5 &multiArg, > Function &function) 331,332c357,358 < const MultiArg5 &multiArg_m; < const Function &function_m; --- > MultiArg5 &multiArg_m; > Function &function_m; 348c374 < void operator()(const MultiArg &multiArg) --- > void operator()(MultiArg &multiArg) 375c401,402 < EvaluateLocLoop kernel(function_m,f1.physicalDomain()); --- > EvaluateLocLoop kernel(function_m, > f1.physicalDomain()); 388c415,416 < EvaluateLocLoop kernel(function_m,f1.physicalDomain()); --- > EvaluateLocLoop kernel(function_m, > f1.physicalDomain()); 401c429,430 < EvaluateLocLoop kernel(function_m,f1.physicalDomain()); --- > EvaluateLocLoop kernel(function_m, > f1.physicalDomain()); 414c443,444 < EvaluateLocLoop kernel(function_m,f1.physicalDomain()); --- > EvaluateLocLoop kernel(function_m, > f1.physicalDomain()); 423c453,454 < void operator()(const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5) --- > void operator()(const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, > const F5 &f5) 427c458,459 < EvaluateLocLoop kernel(function_m,f1.physicalDomain()); --- > EvaluateLocLoop kernel(function_m, > f1.physicalDomain()); 436c468,469 < void operator()(const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6) --- > void operator()(const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, > const F5 &f5, const F6 &f6) 440c473,474 < EvaluateLocLoop kernel(function_m,f1.physicalDomain()); --- > EvaluateLocLoop kernel(function_m, > f1.physicalDomain()); 449c483,484 < void operator()(const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7) --- > void operator()(const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, > const F5 &f5, const F6 &f6, const F7 &f7) 453c488,489 < EvaluateLocLoop kernel(function_m,f1.physicalDomain()); --- > EvaluateLocLoop kernel(function_m, > f1.physicalDomain()); Index: ScalarCodeInfo.h =================================================================== RCS file: /home/pooma/Repository/r2/src/Evaluator/ScalarCodeInfo.h,v retrieving revision 1.3 diff -r1.3 ScalarCodeInfo.h 179d178 < // domain[d].first(),