
    i                        % S SK JrJrJr  S SKrS SKJr  S SKJr  S SK	J
r  S SKJr  \\\   \R                  4   r\\S'   \\\\   4   r\\S'   S	\S
\R&                  4S jrS	\S
S4S jrS\R,                  S\\   S
\R,                  4S jrg)    )ListTupleUnionN)
eval_shape)
TensorSpec)_pytree)	TypeAliasTensorAllocSpec	AllocSpecspecreturnc                     [        U [        5      (       a  U  Vs/ s H  n[        U5      PM     sn$ U u  p#[        U5      n[        R
                  " X#S9$ s  snf )N)dtype)
isinstancelistallocr   torchempty)r   sshaper   s       U/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/executorch/exir/memory.pyr   r      sO    $"&'$Qa$''LE uE;;u** (s   Ac                     g)zu
The function is nop. The major purpose is to put it in the Fx IR.
E.g., it can be the target of call_function node.
N )r   s    r   freer   $   s    
 	    basesizec                 $    U R                  U5      $ )zY
This function mimics torch.ops.aten.view.default.

It is used to elide view_copy nodes.
)view)r   r   s     r   r   r   ,   s     99T?r   )typingr   r   r   r   executorch.exir.sym_utilr   executorch.exir.tensorr   torch.utilsr   pytreetyping_extensionsr	   intr   r
   __annotations__r   PyTreer   r   Tensorr   r   r   r   <module>r*      s    & %  / - ) '"5:u{{#:; ;	9 +	 +fmm +	z 	d 	u|| 49  r   