code: def mpf_neg(s, prec=None, rnd=round_fast):
      """Negate a raw mpf (return -s), rounding the result to the
      specified precision. The prec argument can be omitted to do the
      operation exactly."""
      sign, man, exp, bc = s
      if not man:
          if exp:
              if s == finf:
                  return fninf
              if s == fninf:
                  return finf
          return s
      if not prec:
          return (1 - sign, man, exp, bc)
      return normalize1(1 - sign, man, exp, bc, prec, rnd)
  
imports: import math
  from bisect import bisect
  import sys
  from .backend import MPZ, MPZ_TYPE, MPZ_ZERO, MPZ_ONE, MPZ_TWO, MPZ_FIVE, BACKEND, STRICT, HASH_MODULUS, HASH_BITS, gmpy, sage, sage_utils
  from .libintmath import giant_steps, trailtable, bctable, lshift, rshift, bitcount, trailing, sqrt_fixed, numeral, isqrt, isqrt_fast, sqrtrem, bin_to_radix
label_desc: Use image node_id 36 for calling a global function with example usage: mpf_neg(s, prec, rnd) and returns: normalize1, s, unknown,  man,  exp,  bc, fninf, finf