NL i$ dZddlmZddlmZmZmZmZmZddl m Z m Z m Z m Z mZmZmZmZmZmZmZmZddlmZmZmZmZmZdD]8Zeeedeeeged e eeeged e eeeeged e :d D] ZeeegededZeee geded"eef d]dZedde Z edde Z!edde Z"edde Z#edde Z$edd e Z%eef d^d!Z&e&d"d#e&d$d%e&d&d'e&d(d)e&d*d+e&d,d-e&d.d/e0e&d1d2e0e&d3d4e0e&d5d6e0e&d7d8ee9e&d:d#e&d;d%e&dd+e&d?d-e&d@d/e0e&dAd2e0e&dBd4e0e&dCd6e0d_dDZ'e'd$dEZ(e'dFdGZ)eeege dHedIJZ*eeege dKedIJZ+eeegedLeMZ,eeegedNeMZ-eeegedOeMZ.eeegedPeMZ/eeegedQeMZ0eeegedReMZ1eegedSeMZ2ee gedTeMZ3eegedUeMZ4eegedVeMZ5egedWeMZ6egedXeMZ7egedYeMZ8edZege d[e Z9y\)`a<Arbitrary-precision integer primitive ops. These mostly operate on (usually) unboxed integers that use a tagged pointer representation (CPyTagged) and correspond to the Python 'int' type. See also the documentation for mypyc.rtypes.int_rprimitive. Use mypyc.ir.ops.IntOp for operations on fixed-width/C integers. ) annotations) ERR_ALWAYS ERR_MAGICERR_MAGIC_OVERLAPPING ERR_NEVERPrimitiveDescription) RTypebit_rprimitivebool_rprimitivec_pyssize_t_rprimitivefloat_rprimitiveint16_rprimitiveint32_rprimitiveint64_rprimitiveint_rprimitiveobject_rprimitivestr_rprimitive void_rtype) binary_op custom_op function_opload_address_opunary_op)z builtins.intzmypy_extensions.i64zmypy_extensions.i32zmypy_extensions.i16zmypy_extensions.u8 PyLong_Type)nametypesrcCPyTagged_FromFloatr arg_types return_typec_function_name error_kindCPyLong_FromStrCPyLong_FromStrWithBase)z builtins.strz builtins.repr CPyTagged_Str)rr r!r"r#priority CPyBool_Strc6t|ttg|||S)N)rr r!primitive_namer#rr)opr,r!r#s ^/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mypyc/primitives/int_ops.pyint_binary_primitiver0es%  !>2%  z==int_eq)r.r,r!z!=int_ne<int_ltz<=int_le>int_gtz>=int_gec8t|ttg|||y)Nrr-)rr"r!r#s r/ int_binary_opr;ys  !>2' r1+ CPyTagged_Add-CPyTagged_Subtract*CPyTagged_Multiply& CPyTagged_And| CPyTagged_Or^ CPyTagged_Xorz//CPyTagged_FloorDivide)r#%CPyTagged_Remainderz>>CPyTagged_Rshiftz<<CPyTagged_Lshift/CPyTagged_TrueDivide)r!r#z+=z-=z*=z&=z|=z^=z//=z%=z>>=z<<=c:t|tt|tS)N)rarg_typer!r"r#)rrr)rr"s r/ int_unary_oprQs  "'  r1CPyTagged_Negate~CPyTagged_InvertCPyTagged_IsEq_T)r r!r"r#is_pureCPyTagged_IsLt_CPyInt64_Divide)r r!r"r#CPyInt64_RemainderCPyInt32_DivideCPyInt32_RemainderCPyInt16_DivideCPyInt16_RemainderCPyLong_AsInt64CPyTagged_FromSsize_tCPyTagged_FromInt64CPyLong_AsInt32CPyInt32_OverflowCPyInt16_OverflowCPyUInt8_Overflowzbuiltints.isinstance PyLong_CheckN) r.strr,rfr!r r#intreturnr) rrfr"rfr!r r#rgrhNone)rrfr"rfrhr):__doc__ __future__r mypyc.ir.opsrrrrrmypyc.ir.rtypesr r r r r rrrrrrrmypyc.primitives.registryrrrrrint_namer int_to_str_opr0r2r3r5r6r8r9r;rQ int_neg_op int_invert_op int_equal_int_less_than_int64_divide_op int64_mod_opint32_divide_op int32_mod_opint16_divide_op int16_mod_opint_to_int64_opssize_t_to_int_opint64_to_int_opint_to_int32_opint32_overflowint16_overflowuint8_overflowisinstance_intr1r/rs#    cb(H(9}M #$"-  !"%)  !>2%1 E(T .D !""' M "#"% ,8FYb     /4 SV   hN [ hN [ X> Z hN [ X> Z hN [ (        $c?# c'( c'( c?# c>" c?#d+ B c(Y? d&9= d&9=  -=J_dO$ d() d() dO$ dN# dO$ e,C d)i@ e'I> e'I>#1 2 S"45 ~.%   ~.%  !12 %$ !12 ($  !12 %$ !12 ($  !12 %$ !12 ($   ! %$ %&+  )  ! %$ ' ' '   !" r1