class documentation

An AST representing a set of operations culminating in an IEEE754 floating point number. Do not instantiate this class directly, instead use FPV or FPS to construct a value or symbol, and then use operations to construct more complicated expressions. :ivar length: The length of this value :ivar sort: The sort of this value, usually either FSORT_FLOAT or FSORT_DOUBLE

Method raw_to_bv Interpret the bit-pattern of this IEEE754 floating point number as a bitvector. The inverse of this function is to_bv.
Method raw_to_fp A counterpart to BV.raw_to_fp - does nothing and returns itself.
Method to_bv Undocumented
Method to_fp Convert this float to a different sort
Method val_to_bv Convert this floating point value to an integer.
Class Variable __slots__ Undocumented
Property sort Undocumented
Static Method _from_float Undocumented

Inherited from Bits:

Method make_like Undocumented
Method size :returns: The bit length of this AST
Static Method _check_replaceability Undocumented
Method _type_name Undocumented

Inherited from Base (via Bits):

Class Method __init_with_annotations__ Undocumented
Method __a_init__ Initializes an AST. Takes the same arguments as ``Base.__new__()``
Method __bool__ This prevents people from accidentally using an AST as a condition. For example, the following was previously common::
Method __getattr__ Undocumented
Method __hash__ Undocumented
Method __init__ Undocumented
Method __iter__ This prevents people from iterating over ASTs.
Method __new__ This is called when you create a new Base object, whether directly or through an operation. It finalizes the arguments (see the _finalize function, above) and then computes a hash. If an AST of this hash already exists, it returns that AST...
Method __reduce__ Undocumented
Method __repr__ Undocumented
Method annotate Appends annotations to this AST.
Method append_annotation Appends an annotation to this AST.
Method append_annotations Appends several annotations to this AST.
Method canonicalize Undocumented
Method children_asts Return an iterator over the nested children ASTs.
Method dbg_is_looped Undocumented
Method dbg_repr Returns a debug representation of this AST.
Method insert_annotation Inserts an annotation to this AST.
Method insert_annotations Inserts several annotations to this AST.
Method leaf_asts Return an iterator over the leaf ASTs.
Method remove_annotation Removes an annotation from this AST.
Method remove_annotations Removes several annotations from this AST.
Method replace Returns this AST but with the AST 'old' replaced with AST 'new' in its subexpressions.
Method replace_annotations Replaces annotations on this AST.
Method replace_dict Returns this AST with subexpressions replaced by those that can be found in `replacements` dict.
Method shallow_repr Returns a string representation of this AST, but with a maximum depth to prevent floods of text being printed.
Method split Splits the AST if its operation is `split_on` (i.e., return all the arguments). Otherwise, return a list with just the AST.
Method structurally_match Structurally compares two A objects, and check if their corresponding leaves are definitely the same A object (name-wise or hash-identity wise).
Method swap_args This returns the same AST, with the arguments swapped out for new_args.
Method to_claripy Returns itself. Provides compatibility with other classes (such as SimActionObject) which provide a similar method to unwrap to an AST.
Constant FULL_REPR Undocumented
Constant FULL_SIMPLIFY Undocumented
Constant LITE_REPR Undocumented
Constant LITE_SIMPLIFY Undocumented
Constant MID_REPR Undocumented
Constant UNSIMPLIFIED Undocumented
Instance Variable annotations Undocumented
Instance Variable args Undocumented
Instance Variable depth Undocumented
Instance Variable length Undocumented
Instance Variable op Undocumented
Instance Variable symbolic Undocumented
Instance Variable variables Undocumented
Property cache_key A key that refers to this AST - this value is appropriate for usage as a key in dictionaries.
Property cardinality Undocumented
Property concrete Undocumented
Property ite_burrowed Returns an equivalent AST that "burrows" the ITE expressions as deep as possible into the ast, for simpler printing.
Property ite_excavated Returns an equivalent AST that "excavates" the ITE expressions out as far as possible toward the root of the AST, for processing in static analyses.
Property multivalued Undocumented
Property recursive_children_asts DEPRECATED: Use children_asts() instead.
Property recursive_leaf_asts DEPRECATED: Use leaf_asts() instead.
Property singlevalued Undocumented
Property uc_alloc_depth The depth of allocation by lazy-initialization. It's only used in under-constrained symbolic execution mode.
Property uninitialized Whether this AST comes from an uninitialized dereference or not. It's only used in under-constrained symbolic execution mode.
Static Method _arg_serialize Undocumented
Static Method _ast_serialize Serialize the AST and get a bytestring for hashing.
Static Method _calc_hash Calculates the hash of an AST, given the operation, args, and kwargs.
Static Method _op_repr Undocumented
Method _apply_to_annotations Undocumented
Method _burrow_ite Undocumented
Method _excavate_ite Undocumented
Method _first_backend Undocumented
Method _identify_vars Undocumented
Method _rename Undocumented
Class Variable _hash_cache Undocumented
Class Variable _leaf_cache Undocumented
Instance Variable _burrowed Undocumented
Instance Variable _cache_key Undocumented
Instance Variable _cached_encoded_name Undocumented
Instance Variable _eager_backends Undocumented
Instance Variable _errored Undocumented
Instance Variable _excavated Undocumented
Instance Variable _hash Undocumented
Instance Variable _relocatable_annotations Undocumented
Instance Variable _simplified Undocumented
Instance Variable _uc_alloc_depth Undocumented
Instance Variable _uneliminatable_annotations Undocumented
Instance Variable _uninitialized Undocumented
Property _encoded_name Undocumented
def raw_to_bv(self): (source)

Interpret the bit-pattern of this IEEE754 floating point number as a bitvector. The inverse of this function is to_bv. :return: A BV AST whose bit-pattern is the same as this FP

def raw_to_fp(self): (source)

A counterpart to BV.raw_to_fp - does nothing and returns itself.

def to_bv(self): (source)

Undocumented

def to_fp(self, sort, rm=None): (source)

Convert this float to a different sort :param sort: The sort to convert to :param rm: Optional: The rounding mode to use :return: An FP AST

def val_to_bv(self, size, signed=True, rm=None): (source)

Convert this floating point value to an integer. :param size: The size of the bitvector to return :param signed: Optional: Whether the target integer is signed :param rm: Optional: The rounding mode to use :return: A bitvector whose value is the rounded version of this FP's value

__slots__: tuple = (source)

Undocumented

Undocumented

@staticmethod
def _from_float(like, value): (source)

Undocumented