Ejemplo n.º 1
0
    def __init__(self, rule_mapping_context, diff_context, diff_inames,
            allowed_nonsmoothness=None):
        RuleAwareIdentityMapper.__init__(self, rule_mapping_context)
        DifferentiationMapper.__init__(
                self,

                # This is actually ignored because we
                # override map_variable below.
                variable=None,

                allowed_nonsmoothness=None)
        self.diff_context = diff_context
        self.diff_inames = diff_inames
        self.diff_iname_exprs = tuple(var(diname) for diname in diff_inames)
        self.function_map = func_map
Ejemplo n.º 2
0
    def import_instruction_and_deps(self, insn_id):
        if insn_id in self.imported_instructions:
            return

        insn = self.kernel.id_to_insn[insn_id]
        self.new_instructions.append(insn)
        self.imported_instructions.add(insn_id)

        id_map = RuleAwareIdentityMapper(self.rule_mapping_context)

        if isinstance(insn, lp.Assignment):
            id_map(insn.expression, self.kernel, insn)
        else:
            raise RuntimeError("do not know how to deal with "
                               "instruction of type %s" % type(insn))

        for dep in insn.depends_on:
            self.import_instruction_and_deps(dep)
Ejemplo n.º 3
0
 def __init__(self, rule_mapping_context, diff_context, diff_inames):
     RuleAwareIdentityMapper.__init__(self, rule_mapping_context)
     self.diff_context = diff_context
     self.diff_inames = diff_inames
     self.diff_iname_exprs = tuple(var(diname) for diname in diff_inames)
     self.function_map = func_map
Ejemplo n.º 4
0
 def __init__(self, rule_mapping_context, diff_context, diff_inames):
     RuleAwareIdentityMapper.__init__(self, rule_mapping_context)
     self.diff_context = diff_context
     self.diff_inames = diff_inames
     self.diff_iname_exprs = tuple(var(diname) for diname in diff_inames)
     self.function_map = func_map