§
    ƒÛgå
  ã                   ó4  — d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ  e
¦   «         Zej        Z ej         ej        d¦  «        ¦  «        Zed	„ ¦   «         Ze                     ej        ¦  «        e                     ej        ¦  «        d
„ ¦   «         ¦   «         Ze                     ej        ¦  «        d„ ¦   «         Ze                     ej        ¦  «        d„ ¦   «         Z ee ej        ej        ¦  «        ¦  «        d„ ¦   «         Z dS )é    )Úsingledispatch)Úir)ÚtypesÚcgutils)ÚNumbaWarning)ÚRegistry)Ú	nvvmutils)Úwarné   c                 ó&   — t          d| ›�¦  «        ‚)zµ
    Handle printing of a single value of the given Numba type.
    A (format string, [list of arguments]) is returned that will allow
    forming the final printf()-like call.
    z*printing unimplemented for values of type )ÚNotImplementedError)ÚtyÚcontextÚbuilderÚvals       úJ/granary/edev/quantum/lib/python3.11/site-packages/numba/cuda/printimpl.pyÚ
print_itemr      s#   € õ Ð
Ø!# ð&ñ 'ô 'ð 'ó    c                 ó’   — | t           j        v rd}t           j        }nd}t           j        }|                     ||| |¦  «        }||gfS )Nz%lluz%lld)r   Úunsigned_domainÚuint64Úint64Úcast)r   r   r   r   ÚrawfmtÚdsttypeÚllds          r   Úint_print_implr      sO   € ð 
�UÔ"Ð"Ð"ØˆÝ”,ˆˆàˆÝ”+ˆØ
�,Š,�w  R¨Ñ
1Ô
1€CØ�C�5ˆ=Ðr   c                 óP   — |                      ||| t          j        ¦  «        }d|gfS )Nz%f)r   r   Úfloat64)r   r   r   r   r   s        r   Úreal_print_implr    )   s'   € à
�,Š,�w  R­¬Ñ
7Ô
7€CØ�#�ˆ;Ðr   c                 óx   — | j         }t          |t          ¦  «        sJ ‚d}|                     ||¦  «        }||gfS )Nz%s)Úliteral_valueÚ
isinstanceÚstrÚinsert_string_const_addrspace)r   r   r   ÚsigvalÚpyvalr   r   s          r   Úconst_print_implr(   /   sF   € àÔ€EÝ�e�SÑ!Ô!Ð!Ð!Ð!Ø€FØ
×
/Ò
/°¸Ñ
?Ô
?€CØ�C�5ˆ=Ðr   c                 óü  — t          j        |j        ¦  «        }g }g }t          t	          |j        |¦  «        ¦  «        D ]G\  }\  }}	t          || ||	¦  «        \  }
}|                     |
¦  «         |                     |¦  «         ŒHd 	                    |¦  «        dz   }t          |¦  «        dk    r-d}t          |t          ¦  «         |                     dd¦  «        }|                      ||¦  «        }t          j        ||¦  «        }t          j        ||¦  «        }t          j        |j        ¦  «        }|                     |||                     |t(          ¦  «        f¦  «         |                      ¦   «         S )z½This function is a generic 'print' wrapper for arbitrary types.
    It dispatches to the appropriate 'print' implementations above
    depending on the detected real types in the signature.ú ú
é    zjCUDA print() cannot print more than 32 items. The raw format string will be emitted by the kernel instead.ú%z%%)r	   Údeclare_vprintÚmoduleÚ	enumerateÚzipÚargsr   ÚappendÚextendÚjoinÚlenr
   r   Úreplacer%   r   Úmake_anonymous_structÚalloca_once_valueÚcallÚbitcastÚvoidptrÚget_dummy_value)r   r   Úsigr2   ÚvprintÚformatsÚvaluesÚiÚargtypeÚargvalÚargfmtÚargvalsr   ÚmsgÚfmtÚarrayÚarrayptrs                    r   Úprint_varargsrK   8   s_  € õ Ô% g¤nÑ5Ô5€Fà€GØ€Få )­#¨c¬h¸Ñ*=Ô*=Ñ >Ô >ð ð ÑˆÑˆG�VÝ$ W¨g°wÀÑGÔG‰ˆ�Ø�Š�vÑÔÐØ�Š�gÑÔÐÐà�XŠX�gÑÔ Ñ%€FÝ
ˆ4�y„y�2‚~€~ðNˆåˆS•,ÑÔÐà—’  TÑ*Ô*ˆØ
×
/Ò
/°¸Ñ
@Ô
@€CÝÔ)¨'°6Ñ:Ô:€EÝÔ(¨°%Ñ8Ô8€HåÔ% g¤nÑ5Ô5€FØ‡L‚L�˜#˜wŸš¨x½ÑAÔAÐBÑCÔCÐCà×"Ò"Ñ$Ô$Ð$r   N)!Ú	functoolsr   Úllvmliter   Ú
numba.corer   r   Únumba.core.errorsr   Únumba.core.imputilsr   Ú
numba.cudar	   Úwarningsr
   ÚregistryÚlowerÚPointerTypeÚIntTyper<   r   ÚregisterÚIntegerÚIntegerLiteralr   ÚFloatr    ÚStringLiteralr(   ÚprintÚVarArgÚAnyrK   © r   r   ú<module>r`      s²  ðØ $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ø *Ð *Ð *Ð *Ð *Ð *Ø (Ð (Ð (Ð (Ð (Ð (Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð àˆ8‰:Œ:€ØŒ€à
ˆ"Œ.˜˜œ A™œÑ
'Ô
'€ð
 ð'ð 'ñ „ð'ð ×Ò�U”]Ñ#Ô#Ø×Ò�UÔ)Ñ*Ô*ðð ñ +Ô*ñ $Ô#ðð ×Ò�U”[Ñ!Ô!ðð ñ "Ô!ðð
 ×Ò�UÔ(Ñ)Ô)ðð ñ *Ô)ðð €€uˆlˆeŒl˜5œ9Ñ%Ô%Ñ&Ô&ð%ð %ñ 'Ô&ð%ð %ð %r   