nodes: 0, module; 1, function_definition; 2, function_name:val_to_fp; 3, parameters; 4, block; 5, identifier:self; 6, identifier:sort; 7, default_parameter; 8, default_parameter; 9, expression_statement; 10, if_statement; 11, if_statement; 12, expression_statement; 13, return_statement; 14, identifier:signed; 15, True; 16, identifier:rm; 17, None; 18, comment:"""
          Interpret this bitvector as an integer, and return the floating-point representation of that integer.
  
          :param sort:    The sort of floating point value to return
          :param signed:  Optional: whether this value is a signed integer
          :param rm:      Optional: the rounding mode to use
          :return:        An FP AST whose value is the same as this BV
          """; 19, comparison_operator:rm is None; 20, block; 21, comparison_operator:sort is None; 22, block; 23, assignment; 24, call; 25, identifier:rm; 26, None; 27, expression_statement; 28, identifier:sort; 29, None; 30, expression_statement; 31, identifier:op; 32, conditional_expression:fp.fpToFP if signed else fp.fpToFPUnsigned; 33, identifier:op; 34, argument_list; 35, assignment; 36, assignment; 37, attribute; 38, identifier:signed; 39, attribute; 40, identifier:rm; 41, identifier:self; 42, identifier:sort; 43, identifier:rm; 44, call; 45, identifier:sort; 46, call; 47, identifier:fp; 48, identifier:fpToFP; 49, identifier:fp; 50, identifier:fpToFPUnsigned; 51, attribute; 52, argument_list; 53, attribute; 54, argument_list; 55, attribute; 56, identifier:default; 57, attribute; 58, identifier:from_size; 59, attribute; 60, attribute; 61, identifier:RM; 62, attribute; 63, identifier:FSort; 64, identifier:self; 65, identifier:length; 66, identifier:fp; 67, identifier:fp; 68, identifier:fp; 69, identifier:fp
code: def val_to_fp(self, sort, signed=True, rm=None):
          """
          Interpret this bitvector as an integer, and return the floating-point representation of that integer.
  
          :param sort:    The sort of floating point value to return
          :param signed:  Optional: whether this value is a signed integer
          :param rm:      Optional: the rounding mode to use
          :return:        An FP AST whose value is the same as this BV
          """
          if rm is None:
              rm = fp.fp.RM.default()
          if sort is None:
              sort = fp.fp.FSort.from_size(self.length)
  
          op = fp.fpToFP if signed else fp.fpToFPUnsigned
          return op(rm, self, sort)