code: def log1p(expr):
      # Use trick to compute log1p for small values more accurate
      # https://www.johndcook.com/blog/2012/07/25/trick-for-computing-log1x/
      expr = ast.IdExpr(expr, to_reuse=True)
      expr1p = utils.add(ast.NumVal(1.0), expr, to_reuse=True)
      expr1pm1 = utils.sub(expr1p, ast.NumVal(1.0), to_reuse=True)
      return ast.IfExpr(
          utils.eq(expr1pm1, ast.NumVal(0.0)),
          expr,
          utils.div(utils.mul(expr, ast.LogExpr(expr1p)), expr1pm1),
      )
  
file_path: m2cgen/m2cgen/assemblers/fallback_expressions.py
imports: import math
  from m2cgen import ast
  from m2cgen.assemblers import utils
label_desc: Use image node_id 5 for calling a global function with example usage: log1p(expr) and returns: ast