class_docstr: Strategy for sampling the space of nan float values.
class_docstr_tok: ["Strategy","for","sampling","the","space","of","nan","float","values","."]
code: def do_draw(self, data):
      # Nans must have all exponent bits and the first mantissa bit set, so
      # we generate by taking 64 random bits and setting the required ones.
      sign_bit = int(data.draw_boolean()) << 63
      nan_bits = float_to_int(math.nan)
      mantissa_bits = data.draw_integer(0, 2**52 - 1)
      return int_to_float(sign_bit | nan_bits | mantissa_bits)
  
imports: import math
  from decimal import Decimal
  from fractions import Fraction
  from typing import Literal, Optional, Union
  from hypothesis.control import reject
  from hypothesis.errors import InvalidArgument
  from hypothesis.internal.filtering import get_float_predicate_bounds, get_integer_predicate_bounds
  from hypothesis.internal.floats import SMALLEST_SUBNORMAL, float_of, float_to_int, int_to_float, is_negative, next_down, next_down_normal, next_up, next_up_normal, width_smallest_normals
  from hypothesis.internal.validation import check_type, check_valid_bound, check_valid_interval
  from hypothesis.strategies._internal.misc import nothing
  from hypothesis.strategies._internal.strategies import SampledFromStrategy, SearchStrategy
  from hypothesis.strategies._internal.utils import cacheable, defines_strategy
label_desc: Use image node_id 1 for calling the NanStrategy obj's underlying member method code with example usage: obj.do_draw(data) and returns: int_to_float