o
    i e                     @   sl   d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ ddejdfd	d
ZdS )zOperations for linear algebra.    N)dtypes)ops)tensor)	array_ops)math_ops)compatc                 C   s  t j|d| ||gd |du }|du rg n|}|du r| n|}t| tjs,t|tjr3t| |}n t| tjr?t|tjsIt	d|  d| | |k}t
| |}t|tjs_t|tjrt j|dtjd}tj||gfdd	}|stj|| |gfdd	}nt|}||g }|s|| |g }tj||d
}	|rt|	W  d   S tj||d
}
t|
|	W  d   S 1 sw   Y  dS )zQConstruct an identity matrix, or a batch of matrices.

  See `linalg_ops.eye`.
  eye)default_namevaluesNz[Arguments `num_rows` and `num_columns` must be positive integer values. Received: num_rows=z, num_columns=shape)namedtyper   )axis)r   )r   
name_scope
isinstancer   Tensorr   minimumr   integral_types	TypeErrornpconvert_to_tensorr   int32r   concatlistonesmatrix_diagzerosmatrix_set_diag)num_rowsnum_columnsbatch_shaper   r   	is_square	diag_size
diag_shaper   	diag_oneszero_matrix r&   T/var/www/myenv/lib/python3.10/site-packages/tensorflow/python/ops/linalg_ops_impl.pyr      sV   	

)
$r   )__doc__numpyr   tensorflow.python.frameworkr   r   r   tensorflow.python.opsr   r   tensorflow.python.utilr   float32r   r&   r&   r&   r'   <module>   s   