
    z	i                         S r / SQrSSKrSSKJrJrJrJrJrJ	r	J
r
Jr   " S S\R                  5      rS\l        S\l        S\l         " S	 S
\R                  5      rS\l        S\l        S\l        g)zExpression-tree nodes.)ExprVarStretchValueCastUnaryBinaryIndex    Nc                   D   ^  \ rS rSrSrSr Sr U 4S jrU 4S jrSr	U =r
$ )_UnaryOp)   a.  Enumeration of the opcodes for unary operations.

The bitwise negation :data:`BIT_NOT` takes a single bit or an unsigned integer of known
width, and returns a value of the same type.

The logical negation :data:`LOGIC_NOT` takes an input that is implicitly coerced to a
Boolean, and returns a Boolean.
      c                 &   > S[         TU ]  5        3$ NzUnary.super__str__self	__class__s    \/home/james-whalen/.local/lib/python3.13/site-packages/qiskit/circuit/classical/expr/expr.pyr   _UnaryOp.__str__=   s    )*++    c                 &   > S[         TU ]  5        3$ r   r   __repr__r   s    r   r   _UnaryOp.__repr__@   s    (*+,,r    )__name__
__module____qualname____firstlineno____doc__BIT_NOT	LOGIC_NOTr   r   __static_attributes____classcell__r   s   @r   r   r   )   s)     G)I),- -r   r   z)qiskit._accelerate.circuit.classical.exprOpzUnary.Opc                      ^  \ rS rSrSrSr Sr Sr Sr Sr	 Sr
 S	r S
r Sr Sr Sr Sr Sr Sr Sr Sr Sr U 4S jrU 4S jrSrU =r$ )	_BinaryOpK   aH  Enumeration of the opcodes for binary operations.

The bitwise operations :data:`BIT_AND`, :data:`BIT_OR` and :data:`BIT_XOR` apply to two
operands of the same type, which must be a single bit or an unsigned integer of fixed width.
The resultant type is the same as the two input types.

The logical operations :data:`LOGIC_AND` and :data:`LOGIC_OR` first implicitly coerce their
arguments to Booleans, and then apply the logical operation.  The resultant type is always
Boolean.

The binary mathematical relations :data:`EQUAL`, :data:`NOT_EQUAL`, :data:`LESS`,
:data:`LESS_EQUAL`, :data:`GREATER` and :data:`GREATER_EQUAL` take unsigned integers
(with an implicit cast to make them the same width), and return a Boolean.

The bitshift operations :data:`SHIFT_LEFT` and :data:`SHIFT_RIGHT` can take bit-like
container types (e.g. unsigned integers) as the left operand, and any integer type as the
right-hand operand.  In all cases, the output bit width is the same as the input, and zeros
fill in the "exposed" spaces.

The binary arithmetic operators :data:`ADD`, :data:`SUB:, :data:`MUL`, and :data:`DIV`
can be applied to two floats or two unsigned integers, which should be made to be of
the same width during construction via a cast.
The :data:`ADD`, :data:`SUB`, and :data:`DIV` operators can be applied on two durations
yielding another duration, or a float in the case of :data:`DIV`. The :data:`MUL` operator
can also be applied to a duration and a numeric type, yielding another duration. Finally,
the :data:`DIV` operator can be used to divide a duration by a numeric type, yielding a
duration.
r   r                     	   
                        c                 &   > S[         TU ]  5        3$ NzBinary.r   r   s    r   r   _BinaryOp.__str__   s    *+,,r   c                 &   > S[         TU ]  5        3$ r>   r   r   s    r   r   _BinaryOp.__repr__   s    )+,--r   r   )r    r!   r"   r#   r$   BIT_ANDBIT_ORBIT_XOR	LOGIC_ANDLOGIC_OREQUAL	NOT_EQUALLESS
LESS_EQUALGREATERGREATER_EQUAL
SHIFT_LEFTSHIFT_RIGHTADDSUBMULDIVr   r   r'   r(   r)   s   @r   r,   r,   K   s    D G'F&G0I(H'E+I-D+J7G.M;J=K>
C"
C%
C(
C"-. .r   r,   z	Binary.Op)r$   __all__enum)qiskit._accelerate.circuit.classical.exprr   r   r   r   r   r   r   r	   Enumr   r!   r    r"   r,   r   r   r   <module>rW      s~    	 	 	 	-tyy -: B  " J.		 J.^ C	 	 $	 r   