30 auto& program = translationUnit.getProgram();
33 struct name_functors :
public NodeMapper {
35 mutable std::vector<std::pair<std::string, Own<IntrinsicFunctor>>> functorNames{};
36 name_functors() =
default;
38 std::vector<std::pair<std::string, Own<IntrinsicFunctor>>> getFunctorNames() {
39 return std::move(functorNames);
44 if (
auto* inf =
dynamic_cast<IntrinsicFunctor*
>(node.get())) {
46 std::stringstream newName;
47 newName <<
"@multires_" <<
count++;
49 return mk<Variable>(newName.str());
57 for (
auto* clause : program.getClauses()) {
59 clause->apply(update);
60 for (
auto& [name, func] : update.getFunctorNames()) {