
    z	if	                     X    S r SSKJr  SSKJr  SSKJrJr   " S S\5      r " S S\S	9r	g
)z
Tolerances mixin class.
    )ABCMeta)QiskitError)ATOL_DEFAULTRTOL_DEFAULTc                      ^  \ rS rSrSrU 4S jrS r\S 5       r\R                  S 5       r\S 5       r
\
R                  S 5       r
S	rU =r$ )
TolerancesMeta   zMetaclass to handle tolerancesc                 `   > [         U l        [        U l        SU l        [
        TU ]  XU5        g )Ng-C6?)r   _ATOL_DEFAULTr   _RTOL_DEFAULT_MAX_TOLsuper__init__)clsargskwargs	__class__s      i/home/james-whalen/.local/lib/python3.13/site-packages/qiskit/quantum_info/operators/mixins/tolerances.pyr   TolerancesMeta.__init__   s)    ((F+    c           	          US:  a  [        SU SU S35      eXR                  :  a  [        SU SU SU R                   S35      eg)z%Check if value is within valid rangesr   zInvalid z (z) must be non-negative.z) must be less than .N)r   r   )r   value
value_names      r   _check_valueTolerancesMeta._check_value   s]    19Bug=TUVV<<Bug=QRUR^R^Q__`abb  r   c                     U R                   $ z;Default absolute tolerance parameter for float comparisons.)r   r   s    r   atolTolerancesMeta.atol&           r   c                 4    U R                  US5        Xl        g)z?Set default absolute tolerance parameter for float comparisons.r    N)r   r   r   r   s     r   r    r!   +        	'!r   c                     U R                   $ z;Default relative tolerance parameter for float comparisons.)r   r   s    r   rtolTolerancesMeta.rtol1   r"   r   c                 4    U R                  US5        Xl        g)z?Set default relative tolerance parameter for float comparisons.r(   N)r   r   r$   s     r   r(   r)   6   r%   r    )__name__
__module____qualname____firstlineno____doc__r   r   propertyr    setterr(   __static_attributes____classcell__)r   s   @r   r   r      si    (,c ! ! 
[[" "
 ! ! 
[[" "r   r   c                   8    \ rS rSrSr\S 5       r\S 5       rSrg)TolerancesMixin=   zMixin Class for tolerancesc                 .    U R                   R                  $ r   )r   r    selfs    r   r    TolerancesMixin.atol@        ~~"""r   c                 .    U R                   R                  $ r'   )r   r(   r9   s    r   r(   TolerancesMixin.rtolE   r<   r   r+   N)	r,   r-   r.   r/   r0   r1   r    r(   r3   r+   r   r   r6   r6   =   s+    $# # # #r   r6   )	metaclassN)
r0   abcr   qiskit.exceptionsr   (qiskit.quantum_info.operators.predicatesr   r   r   r6   r+   r   r   <module>rC      s.     ) O$"W $"N# #r   