
    ij!                        d dl Z d dlm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  ej$                         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)convert_to_tensor)
get_device)to_torch_dtype)SeedGenerator)	draw_seed)make_default_seedc                     t               }|dk(  ry t        j                  t                     }t        |       \  }}|j	                  t        ||z         dz         |S )Nmetadevice    )r   torch	Generatorr   manual_seedint)seedr   	generator
first_seedsecond_seeds        s/var/www/html/emotional.easysim.app/public_html/venv/lib/python3.12/site-packages/keras/src/backend/torch/random.pytorch_seed_generatorr      sW    \Fz|4I'oJ #j;67*DE    c           	          |xs
 t               }t        |      }t               dk(  r"t        j                  ||| |t                     S t        |      }t        j                  ||| ||t                     S )Nr   sizedtyper   r   r   r   r   )r   r   r   r   normalr   )shapemeanstddevr   r   r   s         r   r   r      sq    VXE5!E|v||&uE*,
 	
 %T*I<<| r   c                 *   t        |       } t        |      }t        j                  | d      }t	               dk(  r't        j
                  ||d      j                  |      S t        |      }t        j
                  ||d|      j                  |      S )N)dimr   T)replacement)r&   r   )r   r   r   softmaxr   multinomialtyper   )logitsnum_samplesr   r   probsr   s         r   categoricalr-   1   s    v&F5!EMM&b)E|v  
 $u+		
 %T*I	
 d5kr   c                 L   |xs
 t               }t        |      }| }t        |      dk(  rd} t               dk(  r!t	        j
                  | |t                     }n,t        |      }t	        j
                  | ||t                     }||z
  |z  |z   }t        |      dk(  r|d   S |S )Nr   )   r   r   r   )r   r   lenr   r   randr   )	r    minvalmaxvalr   r   requested_shaperand_tensorr   outputs	            r   uniformr7   E   s    VXE5!EO
?q |vjje5N(.	jj)5
 vo,v5F
?q ayMr   c           	          t        |      }t               dk(  r"t        j                  ||| |t                     S t	        |      }t        j                  ||| ||t                     S )Nr   )lowhighr   r   r   )r9   r:   r   r   r   r   )r   r   r   randintr   )r    r2   r3   r   r   r   s         r   r;   r;   [   si    5!E|v}}<
 	
 %T*I==| r   c                    t        |      }t        t        |       dz   dd||      }|dkD  |dk  z  }|j                  dd	      d   }t	        j
                  | |t               
      }|j                  j                  |j                  d|      j                  d             |j                  j                  |      j                  |       |S )N)   r   r/   )r!   r"   r   r      r$   T)keepdim)r   r   )r   r   tuplemaxr   emptyr   datacopy_gathersqueezemul_add_)	r    r!   r"   r   r   xvalidindexestrunc_xs	            r   truncated_normalrN   q   s    5!E 	uU|d"1EMAVAEiiDi)!,Gkk%uZ\BGLLqxxG,44R89LLf""4(Nr   c                     || j                   S | j                   }g }t        |      D ]  \  }}|j                  |||   n|        |S )N)r    	enumerateappend)inputsnoise_shapeconcrete_inputs_shapeconcrete_noise_shapeivalues         r   _get_concrete_noise_shaperX   ~   s_    ||"LLk* 
5##(-!!$5	

  r   c                    |dk(  rt        j                  | t                     S |dk(  r| S |t        |t              r|j
                  |d|z
  }t        | |      }t        j                  ||t                     }t        |      }t               dk(  rt        j                  |      }nt        j                  ||      }|j                         }t        j                  || j                        }t        j                  || |z  t        j                  | | j                              S t         j                  j                   j#                  | |dd	      S )
N      ?r           r   )r   )r   TF)ptraininginplace)r   
zeros_liker   
isinstancer   _initial_seedrX   fullr   	bernoulliboolbroadcast_tor    wherer   nn
functionaldropout)rR   raterS   r   	keep_probkeep_prob_matrixr   masks           r   ri   ri      s.   s{z|<<s{D-0T5G5G5O"$J	/D :::<
 ).	 <6!??#34D??#3yIDyy{!!$5{{YV6<<8
 	
 88&&$u '  r   c                 P   t        |       } t               dk(  r?t        j                  | j                  d |dz    t                     j                  |      }nJt        |      }t        j                  | j                  d |dz    |t                     j                  |      }t        | j                  |z
  dz
        D ]  }|j                  d         |j                  g t        |dz         D cg c]  }d c}| j                  |dz   d   }| j                  ||      S c c}w )Nr   r/   r   )r   r   r$   )r   r   r   r1   r    argsortr   rangendim
unsqueeze_repeatrF   )rJ   axisr   row_permr   _s         r   shufflerw      s   !A |v::aggjq1*,GOO
 ).	::GGJdQh9Z\

'$- 	 166D=1$%  B  x 4!8_	%!	%)*)<H 88D(## 
&s   0	D#
c                 >   |xs
 t               }t        |      }t        j                  t	        |      |       }t        j
                  | t                     }t        j                  j                         }t               dk(  s2t        |      \  }}t        j                  t        ||z         dz         t        j                  j                  j                  ||      }|j                         j!                  |      }	t        j                  j#                  |       |	S )Nr   r   r   )r   r   r   re   r   onesr   randomget_rng_stater   r   r   distributionsgammaGammasampler)   set_rng_state)
r    alphar   r   betaprev_rng_stater   r   gamma_distributionr   s
             r   r}   r}      s    VXE5!E07?E::eJL1D\\//1N<6!"+D/
K#j;67*DE,,2288E&&(--e4F	LL~.Mr   c                 @   |xs
 t               }t        |      }t        j                  t	        |      |       }t        j                  t	        |      |       }t        j
                  j                         }t               dk(  s2t        |      \  }}t        j                  t        ||z         dz         t        j                  j                  j                  ||      }|j                         j                  |      }	t        j
                  j!                  |       |	S )Nr   r   )total_countr,   )r   r   r   re   r   rz   r{   r   r   r   r   r|   binomialBinomialr   r)   r   )
r    countsprobabilitiesr   r   r   r   r   binomial_distributionr   s
             r   r   r      s    VXE5!E 1& 95AF&&'8'GOM\\//1N<6!"+D/
K#j;67*DE!//88AA- B  #))+007F	LL~.Mr   c                 @   |xs
 t               }t        |      }t        j                  t	        |      |       }t        j                  t	        |      |       }t        j
                  j                         }t               dk(  s2t        |      \  }}t        j                  t        ||z         dz         t        j                  j                  j                  ||      }|j                         j                  |      }	t        j
                  j!                  |       |	S )Nr   r   )concentration1concentration0)r   r   r   re   r   rz   r{   r   r   r   r   r|   r   Betar   r)   r   )
r    r   r   r   r   r   r   r   beta_distributionr   s
             r   r   r      s    VXE5!E07?E/5u=D\\//1N<6!"+D/
K#j;67*DE++0055T 6  %%',,U3F	LL~.Mr   )r[   rZ   NN)int32N)NN)r   N)r   torch._dynamo_dynamodynamotorch.nn.functionalrg   rh   tnnkeras.src.backend.configr   keras.src.backend.torch.corer   r   r   keras.src.random.seed_generatorr   r   r	   disabler   r   r-   r7   r;   rN   rX   ri   rw   r}   r   r    r   r   <module>r      s{      ! ! + : 3 7 9 5 =
 
 
&(,,

 "J$2 $r   