
    AVh	                         d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl  ej                  d       d Z	d	 Z
d
 Zd Zd Zd Zd Z ej                   d      d        Z ej                   d      d        Z ej                   d      d        Zy)z%Ops to manipulate hashmap of tensors.    )ops)	array_ops)cond)gen_map_ops)*EmptyTensorMapc                  *    t        j                         S N)r   empty_tensor_map     M/home/dcms/DCMS/lib/python3.12/site-packages/tensorflow/python/ops/map_ops.pyr   r      s    		%	%	''r   c                 ,    t        j                  |       S r
   )r   tensor_map_size)input_handles    r   r   r      s    		$	$\	22r   c                 0    t        j                  | ||      S r
   )r   tensor_map_insert)r   keyvalues      r   r   r   !   s    		&	&|S%	@@r   c                 0    t        j                  | ||      S r
   )r   tensor_map_lookupr   r   value_dtypes      r   r   r   $   s    		&	&|S+	FFr   c                 0    t        j                  | ||      S r
   )r   tensor_map_eraser   s      r   r   r   '   s    		%	%lC	EEr   c                 .    t        j                  | |      S r
   )r   tensor_map_has_key)r   r   s     r   r   r   *   s    		'	'c	::r   c                 .    t        j                  | |      S r
   )r   tensor_map_stack_keys)r   	key_dtypes     r   r   r   .   s    		*	*<	CCr   TensorMapLookupc                 Z    | j                   \  }}t               }t        |||      }d }||fS r
   )inputsr   r   )opdval_kmap_gradkey_grads         r   
LookupGradr*   2   s5    	$!Q(xD1((	8	r   TensorMapInsertc                     | j                   \  }d }t        j                  t              fdfd      \  }}|||fS )Nc                  `    t         j                        t         j                        fS r
   )r   dtyper   )dmapr'   vs   r   <lambda>zInsertGrad.<locals>.<lambda>?   s+    q!''*,<T1agg,NO r   c                  2    t        j                         fS r
   )r   
zeros_like)r/   r0   s   r   r1   zInsertGrad.<locals>.<lambda>A   s    y##A&- r   )r#   r   r   )r$   r/   r&   r)   
value_gradr(   r'   r0   s    `    @@r   
InsertGradr5   :   sL    II'!Q(99q! $P-/:x 
8Z	''r   TensorMapErasec                     d }|}||fS r
   r   )r$   r/   r)   r(   s       r   	EraseGradr8   D   s    ((	8	r   N)__doc__tensorflow.python.frameworkr   tensorflow.python.opsr   r   r   !tensorflow.python.ops.gen_map_opsNotDifferentiabler   r   r   r   r   r   r   RegisterGradientr*   r5   r8   r   r   r   <module>r?      s    , , + & - /   & '(3AGF;D '( ) '(( )( &' (r   