def _print_Pow(self, expr): PREC = precedence(expr) if expr.exp == -1: return '1.0/%s' % (self.parenthesize(expr.base, PREC)) elif expr.exp == 0.5: if expr.base.is_integer: # Fortan intrinsic sqrt() does not accept integer argument if expr.base.is_Number: return 'sqrt(%s.0d0)' % self._print(expr.base) else: return 'sqrt(dble(%s))' % self._print(expr.base) else: return 'sqrt(%s)' % self._print(expr.base) else: return CodePrinter._print_Pow(self, expr)
def _print_Pow(self, expr): PREC = precedence(expr) if expr.exp == -1: return "%s/%s" % ( self._print(literal_dp(1)), self.parenthesize(expr.base, PREC), ) elif expr.exp == 0.5: if expr.base.is_integer: # Fortran intrinsic sqrt() does not accept integer argument if expr.base.is_Number: return "sqrt(%s.0d0)" % self._print(expr.base) else: return "sqrt(dble(%s))" % self._print(expr.base) else: return "sqrt(%s)" % self._print(expr.base) else: return CodePrinter._print_Pow(self, expr)