class DiscreteStridedIntervalSet(StridedInterval): (source)
A DiscreteStridedIntervalSet represents one or more discrete StridedInterval instances.
Method | __add__ |
Operation + |
Method | __and__ |
Operation & |
Method | __eq__ |
Operation == |
Method | __floordiv__ |
Operation / |
Method | __gt__ |
Operation > |
Method | __hash__ |
Undocumented |
Method | __init__ |
Undocumented |
Method | __invert__ |
Operation ~ |
Method | __le__ |
Operation <= |
Method | __lshift__ |
Operation << |
Method | __lt__ |
Operation < |
Method | __mod__ |
Operation % |
Method | __ne__ |
Operation != |
Method | __neg__ |
Operation ~ |
Method | __or__ |
Operation | |
Method | __radd__ |
Undocumented |
Method | __rand__ |
Undocumented |
Method | __repr__ |
Undocumented |
Method | __rfloordiv__ |
Undocumented |
Method | __rmod__ |
Undocumented |
Method | __ror__ |
Undocumented |
Method | __rshift__ |
Operation >> |
Method | __rsub__ |
Undocumented |
Method | __rtruediv__ |
Undocumented |
Method | __rxor__ |
Undocumented |
Method | __sub__ |
Operation - |
Method | __truediv__ |
Undocumented |
Method | __xor__ |
Operation ^ |
Method | collapse |
Collapse into a StridedInterval instance. |
Method | concat |
Operation concat |
Method | copy |
Undocumented |
Method | eval |
:param n: :param signed: :return: |
Method | extract |
Operation extract |
Method | intersection |
Undocumented |
Method | normalize |
Return the collapsed object if ``should_collapse()`` is True, otherwise return self. |
Method | reverse |
Operation Reverse |
Method | should |
Undocumented |
Method | sign |
Operation SignExt |
Method | union |
The union operation. It might return a DiscreteStridedIntervalSet to allow for better precision in analysis. |
Method | widen |
Widening operator. |
Method | zero |
Operation ZeroExt |
Property | cardinality |
This is an over-approximation of the cardinality of this DSIS. |
Property | number |
Undocumented |
Property | stride |
Undocumented |
Method | _intersection |
Intersection with another :class:`DiscreteStridedIntervalSet`. |
Method | _intersection |
Intersection with another :class:`StridedInterval`. |
Method | _union |
Union with another DiscreteStridedIntervalSet. |
Method | _union |
Union with another StridedInterval. |
Method | _update |
Undocumented |
Method | _update |
Undocumented |
Instance Variable | _bits |
Undocumented |
Instance Variable | _lower |
Undocumented |
Instance Variable | _max |
Undocumented |
Instance Variable | _si |
Undocumented |
Instance Variable | _upper |
Undocumented |
Inherited from StridedInterval
:
Static Method | diop |
It finds the fist natural solution of the diophantine equation a*x + b*y = c. Some lines of this code are taken from the project sympy. |
Static Method | empty |
Undocumented |
Static Method | extended |
It calculates the GCD of a and b, and two values x and y such that: a*x + b*y = GCD(a,b). This code has been taken from the project sympy. |
Static Method | gcd |
Get the greatest common divisor. |
Static Method | highbit |
Undocumented |
Static Method | igcd |
:param a: First integer :param b: Second integer :return: the integer GCD between a and b |
Static Method | lcm |
Get the least common multiple. |
Static Method | least |
Pseudo least upper bound. Join the given set of intervals into a big interval. The resulting strided interval is the one which in all the possible joins of the presented SI, presented the least number of values. |
Static Method | lower |
:return: |
Static Method | max |
Undocumented |
Static Method | min |
Undocumented |
Static Method | min |
Undocumented |
Static Method | pseudo |
It two intervals in a way that the resulting SI is the one that has the least SI cardinality (i.e., which represents the least number of elements) possible if the smart_join flag is enabled, otherwise it just joins the SI according the order they are passed to the function. |
Static Method | sign |
Undocumented |
Static Method | signed |
Undocumented |
Static Method | signed |
Undocumented |
Static Method | top |
Get a TOP StridedInterval. |
Static Method | upper |
:return: |
Method | __ge__ |
Unsigned greater than or equal to |
Method | __len__ |
Get the length in bits of this variable. :return: |
Method | __mul__ |
Undocumented |
Method | add |
Binary operation: add |
Method | agnostic |
Unary operation: SignExtend |
Method | bitwise |
Binary operation: logical and |
Method | bitwise |
Unary operation: bitwise not |
Method | bitwise |
Binary operation: logical or |
Method | bitwise |
Operation xor |
Method | cast |
Undocumented |
Method | eq |
Equal |
Method | identical |
Used to make exact comparisons between two StridedIntervals. Usually it is only used in test cases. |
Method | lower |
Undocumented |
Method | lshift |
Undocumented |
Method |
|
Logical shift right. :param StridedInterval shift_amount: The amount of shifting :return: The shifted StridedInterval object :rtype: StridedInterval |
Method | mul |
Binary operation: multiplication |
Method | nameless |
Undocumented |
Method | neg |
Unary operation: neg |
Method | rshift |
Arithmetic shift right. |
Method | rshift |
Logical shift right. |
Method | sdiv |
Binary operation: signed division |
Method | SGE |
Signed greater than or equal to. |
Method | SGT |
Signed greater than. |
Method | SLE |
Signed less than or equal to. |
Method | SLT |
Signed less than |
Method | solution |
Checks whether an integer is solution of the current strided Interval :param b: integer to check :return: True if b belongs to the current Strided Interval, False otherwhise |
Method | stride |
Undocumented |
Method | sub |
Binary operation: sub |
Method | udiv |
Binary operation: unsigned division |
Method | UGE |
Unsigned greater than or equal to. |
Method | UGT |
Signed greater than. |
Method | ULE |
Unsigned less than or equal to. |
Method | ULT |
Unsigned less than. |
Method | upper |
Undocumented |
Instance Variable | uninitialized |
Undocumented |
Property | bits |
Undocumented |
Property | complement |
Return the complement of the interval Refer section 3.1 augmented for managing strides |
Property | is |
Whether this StridedInterval is a BOTTOM, in other words, describes an empty set of integers. |
Property | is |
The same as is_bottom :return: True/False |
Property | is |
If this is an integer, i.e. self.lower_bound == self.upper_bound. |
Property | is |
Undocumented |
Property | is |
If this is a TOP value. |
Property | lower |
Undocumented |
Property | max |
Treat this StridedInterval as a set of unsigned numbers, and return the greatest one |
Property | min |
Treat this StridedInterval as a set of unsigned numbers, and return the smallest one |
Property | n |
Undocumented |
Property | name |
Undocumented |
Property | reversed |
Undocumented |
Property | size |
Undocumented |
Property | unique |
Undocumented |
Property | upper |
Undocumented |
Static Method | _bigger |
Return interval with bigger cardinality Refer Section 3.1 |
Static Method | _gap |
Refer section 3.1; gap function. |
Static Method | _get |
Get the MSB (most significant bit). |
Static Method | _is |
Checks if the most significant bit is one (i.e. is the integer negative under signed arithmetic). |
Static Method | _is |
Checks if the most significant bit is zero (i.e. is the integer positive under signed arithmetic). |
Static Method | _lex |
Lexicographical LT comparison |
Static Method | _lex |
Lexicographical LTE comparison |
Static Method | _minimal |
Calculates the minimal integer that appears in both StridedIntervals. As a wrapper method of _minimal_common_integer_splitted(), this method takes arbitrary StridedIntervals. For more information, please refer to the comment of _minimal_common_integer_splitted(). |
Static Method | _minimal |
Calculates the minimal integer that appears in both StridedIntervals. It's equivalent to finding an integral solution for equation `ax + b = cy + d` that makes `ax + b` minimal si_0.stride, si_1.stride being a and c, and si_0... |
Static Method | _modular |
Undocumented |
Static Method | _modular |
Undocumented |
Static Method | _modular |
Undocumented |
Static Method | _ntz |
Get the number of consecutive zeros :param x: :return: |
Static Method | _to |
Undocumented |
Static Method | _unsigned |
Convert an unsigned integer to a signed integer. |
Static Method | _wrapped |
Return the cardinality for a set of number (| x, y |) on the wrapped-interval domain. |
Static Method | _wrapped |
Determines if an overflow happens during the addition of `a` and `b`. |
Static Method | _wrapped |
Determines if an overflow happens during the subtraction of `a` and `b`. |
Static Method | _wrapped |
Perform wrapped unsigned division on two StridedIntervals. |
Static Method | _wrapped |
Perform wrapped signed multiplication on two StridedIntervals. |
Static Method | _wrapped |
Perform wrapped unsigned division on two StridedIntervals. |
Static Method | _wrapped |
Perform wrapped unsigned multiplication on two StridedIntervals. |
Method | _involuted |
This method reverses the StridedInterval object for real. Do expect loss of precision for most cases! |
Method | _is |
Perform a wrapped LTE comparison only considering the SI bounds |
Method | _min |
Undocumented |
Method | _multi |
Undocumented |
Method | _normalize |
Undocumented |
Method | _nsplit |
Split `self` at the north pole, which is the same as in signed arithmetic. |
Method | _pre |
Undocumented |
Method | _psplit |
Split `self` at both north and south poles. |
Method | _reverse |
This method reverses the StridedInterval object for real. Do expect loss of precision for most cases! |
Method | _rshift |
Arithmetic shift right with a concrete shift amount |
Method | _rshift |
Logical shift right with a concrete shift amount |
Method | _signed |
Get lower bound and upper bound for `self` in signed arithmetic. |
Method | _ssplit |
Split `self` at the south pole, which is the same as in unsigned arithmetic. When returning two StridedIntervals (which means a splitting occurred), it is guaranteed that the first StridedInterval is on the right side of the south pole. |
Method | _surrounds |
Undocumented |
Method | _union |
Undocumented |
Method | _unrev |
Undocumented |
Method | _unrev |
Undocumented |
Method | _unrev |
Logical shift right. |
Method | _unsigned |
Get lower bound and upper bound for `self` in unsigned arithmetic. |
Instance Variable | _is |
Undocumented |
Instance Variable | _name |
Undocumented |
Instance Variable | _reversed |
Undocumented |
Instance Variable | _stride |
Undocumented |
Inherited from BackendObject
(via StridedInterval
):
Method | to |
Claripy calls this to retrieve something that it can directly reason about. |
Class Variable | __slots__ |
Undocumented |
Operation extract :param high_bit: The highest bit to begin extraction. :param low_bit: The lowest bit to end extraction. :return: Extracted bits.
Return the collapsed object if ``should_collapse()`` is True, otherwise return self. :return: A DiscreteStridedIntervalSet object.
The union operation. It might return a DiscreteStridedIntervalSet to allow for better precision in analysis. :param b: Operand :return: A new DiscreteStridedIntervalSet, or a new StridedInterval.
Intersection with another :class:`DiscreteStridedIntervalSet`. :param dsis: The other operand. :return: