
    2VhC                         d dl Zd dlmc 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lmZ d dlmZ d d	lmZ dd
ZddZddZddZddZddZddZddZddZddZy)    N)Type)floatx)OPENVINO_DTYPES)OpenVINOKerasTensor)convert_to_numpy)SeedGenerator)	draw_seed)make_default_seedc                 &   |xs
 t               }t        |      }t        j                  j	                  |j
                        }|j                  | ||      j                  |      }t        t        j                  |      j                  d            S )N)sizelocscaler   )r   r	   nprandomdefault_rngdatanormalastyper   ov_opsetconstantoutput)shapemeanstddevdtypeseedrngnormal_consts          Q/home/dcms/DCMS/lib/python3.12/site-packages/keras/src/backend/openvino/random.pyr   r      so    VXET?D
))

		
*C::5d&:AHHOLx00>EEaHII    c                    |xs
 t               }t        |   }t        |      }t        |t              rt        |      \  }}nt        |      j                  \  }}t        j                  ||      }t        j                  ||      }	t        | t              rt        |       } t        j                  | t        j                        }
t        j                  |
||	|||      }t	        |j                  d            S )N)r   r   )r   r   r	   
isinstancer   r   r   r   r   tuplelistr   i32random_uniformr   )r   minvalmaxvalr   r   ov_typeseed1seed2minval_constmaxval_constoutput_shape_constr&   s               r   uniformr/      s    VXEe$GT?D$+,'-u ++u$$V59L$$V59L%U!**5A,,L,N ~44Q788r    c                     t        d      )Nz4`categorical` is not supported with openvino backendNotImplementedError)logitsnum_samplesr   r   s       r   categoricalr5   )   s    
> r    c                     t        d      )Nz0`randint` is not supported with openvino backendr1   )r   r'   r(   r   r   s        r   randintr7   /       
: r    c                 T   |xs
 t               }t        |      }t        j                  j	                  |j
                        }|d|z  z
  }|d|z  z   }t        j                  |       }t        j                  d      }	|	j                  d   |k  rK|j                  |||      }
|
|
|k\  |
|k  z     }t        j                  |	|      }	|	j                  d   |k  rK|	d | j                  |      j                  |       }t        t        j                  |      j!                  d            S )N   r   )r   r   r   )r   r	   r   r   r   r   prodemptyr   r   appendr   reshaper   r   r   r   )r   r   r   r   r   r   lower_boundupper_bound
flat_shaperandom_numbersbatchvalidnp_array_ress                r   truncated_normalrF   5   s   VXET?D
))

		
*CV#KV#KJXXa[N 

q
!J
.

t6

C u+0DEF >59 

q
!J
. "+:.55e<DDUKLx00>EEaHIIr    c                     t        d      )Nz0`dropout` is not supported with openvino backendr1   )inputsratenoise_shaper   s       r   dropoutrK   P   r8   r    c                     t        d      )Nz0`shuffle` is not supported with openvino backendr1   )xaxisr   s      r   shufflerO   V   r8   r    c                     t        d      )Nz.`gamma` is not supported with openvino backendr1   )r   alphar   r   s       r   gammarR   \   s    
N
OOr    c                     t        d      )Nz1`binomial` is not supported with openvino backendr1   )r   countsprobabilitiesr   r   s        r   binomialrV   `   s    
; r    c                     t        d      )Nz-`beta` is not supported with openvino backendr1   )r   rQ   betar   r   s        r   rX   rX   f   s    
M
NNr    )g        g      ?NN)int64N)int32N)NN)r   N)numpyr   openvino.runtime.opset14runtimeopset14r   openvinor   keras.src.backend.configr   keras.src.backend.openvino.corer   r   r   keras.src.random.seed_generatorr   r	   r
   r   r/   r5   r7   rF   rK   rO   rR   rV   rX    r    r   <module>rd      s\     + +  + ; ? < 9 5 =J9&J6POr    