Commit 09c6f788 by Markus Holzer

### Fix RoundOff problems

parent 29e0e84e
Pipeline #36459 failed with stages
in 3 minutes and 1 second
 ... ... @@ -441,7 +441,7 @@ class CustomSympyPrinter(CCodePrinter): def _print_Pow(self, expr): """Don't use std::pow function, for small integer exponents, write as multiplication""" if not expr.free_symbols: return self._typed_number(expr.evalf(), get_type_of_expression(expr.base)) return self._typed_number(expr.evalf(17), get_type_of_expression(expr.base)) if expr.exp.is_integer and expr.exp.is_number and 0 < expr.exp < 8: return f"({self._print(sp.Mul(*[expr.base] * expr.exp, evaluate=False))})" ... ... @@ -452,7 +452,7 @@ class CustomSympyPrinter(CCodePrinter): def _print_Rational(self, expr): """Evaluate all rationals i.e. print 0.25 instead of 1.0/4.0""" res = str(expr.evalf().num) res = str(expr.evalf(17)) return res def _print_Equality(self, expr): ... ...
 ... ... @@ -234,7 +234,7 @@ def apply_sympy_optimisations(assignments): # Evaluates all constant terms evaluate_constant_terms = ReplaceOptim(lambda e: hasattr(e, 'is_constant') and e.is_constant and not e.is_integer, lambda p: p.evalf()) lambda p: p.evalf(17)) sympy_optimisations = [evaluate_constant_terms] + list(optims_c99) ... ...
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!