
    2Vh
                         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 ZddZddZ	dd	Z
dd
ZddZd ZddZddZddZddZddZy)    N)floatx)SeedGenerator)	draw_seed)make_default_seedc                 P    t        | t        j                        r| S t        |       S N)
isinstancejaxArrayr   )seeds    L/home/dcms/DCMS/lib/python3.12/site-packages/keras/src/backend/jax/random.pyjax_draw_seedr   	   s    $		"    c                     |xs
 t               }t        |      }t        j                  j	                  || |      }||z  |z   S N)shapedtype)r   r   r
   randomnormalr   meanstddevr   r   samples         r   r   r      sB    VXEDZZt5>FF?T!!r   c                 |    |xs
 t               }t        |      }t        j                  j	                  || |||      S N)r   r   minvalmaxval)r   r   r
   r   uniformr   r   r   r   r   s        r   r   r      s?    VXED::Evf   r   c                     t        |      }t        | j                        }||d<   t        |      }t        j
                  j                  || d   |d      }|j                  |      S )N   ).N)r   axis)r   listr   tupler
   r   categoricalastype)logitsnum_samplesr   r   output_shapeoutputs         r   r%   r%      se    D%L!LO&LZZ##fY|! $ F ==r   c                 `    t        |      }t        j                  j                  || |||      S r   )r   r
   r   randintr   s        r   r,   r,   *   s3    D::Evf   r   c                     |xs
 t               }t        |      }t        j                  j	                  || dd|      }||z  |z   S )Ng       g       @)r   lowerupperr   )r   r   r
   r   truncated_normalr   s         r   r0   r0   1   sM    VXEDZZ((ES ) F F?T!!r   c                     || j                   S | j                   }g }t        |      D ]  \  }}|j                  |||   n|        |S r   )r   	enumerateappend)inputsnoise_shapeconcrete_inputs_shapeconcrete_noise_shapeivalues         r   _get_concrete_noise_shaper:   :   s_    ||"LLk* 
5##(-!!$5	

  r   c                 T   t        |      }d|z
  }t        | |      }t        j                  j	                  |||      }t        j
                  j                  || j                        }t        j                  j                  || |z  t        j
                  j                  |             S )N      ?)pr   )r   r:   r
   r   	bernoullinumpybroadcast_tor   laxselect
zeros_like)r4   rater5   r   	keep_probmasks         r   dropoutrG   G   s    Dd
I ,FK@K::	ED99!!$5D77>>fy #))"6"6v"> r   c                 ^    t        |      }t        j                  j                  || |d      S )NT)independent)r   r
   r   permutation)xr"   r   s      r   shufflerL   T   s*    D::!!$4T!BBr   c                 z    t        |      }|xs
 t               }t        j                  j	                  ||| |      S r   )r   r   r
   r   gamma)r   alphar   r   s       r   rN   rN   Y   s6    DVXE::D%uEBBr   c                     |xs
 t               }t        |      }t        j                  j	                  |      }t        j                  j	                  |      }t        j
                  j                  |||| |      }|S )N)keynr=   r   r   )r   r   r
   r?   arrayr   binomial)r   countsprobabilitiesr   r   r   s         r   rT   rT   _   sg    VXEDYY__V$FIIOOM2MZZ  Fm5 ! F Mr   c                     |xs
 t               }t        |      }t        j                  j	                  |      }t        j                  j	                  |      }t        j
                  j                  |||| |      }|S )N)rQ   abr   r   )r   r   r
   r?   rS   r   beta)r   rO   rZ   r   r   r   s         r   rZ   rZ   k   se    VXEDIIOOE"E99??4 DZZ__ETe  F Mr   )g        r<   NN)int32N)NN)r   N)r
   keras.src.backend.configr   keras.src.random.seed_generatorr   r   r   r   r   r   r%   r,   r0   r:   rG   rL   rN   rT   rZ    r   r   <module>r_      sR    
 + 9 5 =" "
 
C
C		r   