Esempio n. 1
0
    def __init__(self, constant_mapper=repr, reverse=True, 
            cse_prefix="_cse", complex_constant_base_type="double",
            cse_name_list=[]):
        SimplifyingSortingStringifyMapper.__init__(self, constant_mapper, reverse)
        self.cse_prefix = cse_prefix

        self.cse_to_name = dict((cse, name) for name, cse in cse_name_list)
        self.cse_names = set(cse for name, cse in cse_name_list)
        self.cse_name_list = cse_name_list[:]

        self.complex_constant_base_type = complex_constant_base_type
Esempio n. 2
0
    def __init__(self, constant_mapper=repr, reverse=True,
            cse_prefix="_cse", complex_constant_base_type="double",
            cse_name_list=[]):
        SimplifyingSortingStringifyMapper.__init__(self, constant_mapper, reverse)
        self.cse_prefix = cse_prefix

        self.cse_to_name = dict((cse, name) for name, cse in cse_name_list)
        self.cse_names = set(cse for name, cse in cse_name_list)
        self.cse_name_list = cse_name_list[:]

        self.complex_constant_base_type = complex_constant_base_type
Esempio n. 3
0
 def map_constant(self, x, enclosing_prec):
     if isinstance(x, complex):
         return "std::complex<%s>(%s, %s)" % (
             self.complex_constant_base_type, self.constant_mapper(
                 x.real), self.constant_mapper(x.imag))
     else:
         return SimplifyingSortingStringifyMapper.map_constant(
             self, x, enclosing_prec)
Esempio n. 4
0
 def map_constant(self, x, enclosing_prec):
     if isinstance(x, complex):
         return "std::complex<%s>(%s, %s)" % (
                 self.complex_constant_base_type,
                 self.constant_mapper(x.real), 
                 self.constant_mapper(x.imag))
     else:
         return SimplifyingSortingStringifyMapper.map_constant(
                 self, x, enclosing_prec)
Esempio n. 5
0
def simplify(expr):
    "Simplify pymbolic expr via SymPy."
    # TODO switch entirely to SymPy?
    parts = SimplifyingSortingStringifyMapper()(expr)
    simplified = parse_expr(parts).simplify()
    return parse(repr(simplified))