Ë
    ˆ\;jV  ã                   ó    — d dl Z d dlmZ  G d„ d«      Z G d„ de«      Z G d„ de«      Z G d	„ d
e«      Z G d„ de«      Z e«       Z e«       Z	y)é    N)Ú
constraintc                   ó>   — e Zd ZdZdd„Zed„ «       Zed„ «       Zd„ Zy)ÚVariablez¸Random variable of probability distribution.

    Args:
        is_discrete (bool): Is the variable discrete or continuous.
        event_rank (int): The rank of event dimensions.
    Nc                 ó.   — || _         || _        || _        y ©N)Ú_is_discreteÚ_event_rankÚ_constraint)ÚselfÚis_discreteÚ
event_rankr   s       úeG:\00. PROJECTS\API\Inventory\templateJSON\kerjaOCR\Lib\site-packages\paddle/distribution/variable.pyÚ__init__zVariable.__init__   s   € Ø'ˆÔØ%ˆÔØ%ˆÕó    c                 ó   — | j                   S r   )r   ©r   s    r   r   zVariable.is_discrete    s   € à× Ñ Ð r   c                 ó   — | j                   S r   )r	   r   s    r   r   zVariable.event_rank$   s   € à×ÑÐr   c                 ó$   — | j                  |«      S )zYCheck whether the 'value' meet the constraint conditions of this
        random variable.)r
   )r   Úvalues     r   r   zVariable.constraint(   s   € ð ×Ñ Ó&Ð&r   )Fr   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úpropertyr   r   r   © r   r   r   r      s9   „ ñó&ð
 ñ!ó ð!ð ñ ó ð ó'r   r   c                   ó    ‡ — e Zd Zdˆ fd„	Zˆ xZS )ÚRealc                 óD   •— t         ‰| �  d|t        j                  «       y ©NF)Úsuperr   r   Úreal©r   r   Ú	__class__s     €r   r   zReal.__init__/   s   ø€ Ü‰Ñ˜ 
¬J¯O©OÕ<r   ©r   ©r   r   r   r   Ú__classcell__©r#   s   @r   r   r   .   s   ø„ ÷=ñ =r   r   c                   ó    ‡ — e Zd Zdˆ fd„	Zˆ xZS )ÚPositivec                 óD   •— t         ‰| �  d|t        j                  «       y r   )r    r   r   Úpositiver"   s     €r   r   zPositive.__init__4   s   ø€ Ü‰Ñ˜ 
¬J×,?Ñ,?Õ@r   r$   r%   r'   s   @r   r)   r)   3   s   ø„ ÷Añ Ar   r)   c                   ó(   ‡ — e Zd ZdZˆ fd„Zd„ Zˆ xZS )ÚIndependentzØReinterprets some of the batch axes of variable as event axes.

    Args:
        base (Variable): Base variable.
        reinterpreted_batch_rank (int): The rightmost batch rank to be
            reinterpreted.
    c                 óp   •— || _         || _        t        ‰| �  |j                  |j
                  |z   «       y r   )Ú_baseÚ_reinterpreted_batch_rankr    r   r   r   )r   ÚbaseÚreinterpreted_batch_rankr#   s      €r   r   zIndependent.__init__A   s4   ø€ ØˆŒ
Ø)AˆÔ&Ü‰ÑØ×Ñ˜dŸo™oÐ0HÑHõ	
r   c                 óP  — | j                   j                  |«      }|j                  «       | j                  k  r$t	        dj                  | j                  «      «      ‚|j                  |j                  d |j                  «       | j                  z
   dz   «      j                  d«      S )Nz1Input dimensions must be equal or grater than  {})éÿÿÿÿr4   )
r/   r   Údimr0   Ú
ValueErrorÚformatÚreshapeÚshaper2   Úall)r   r   Úrets      r   r   zIndependent.constraintH   s�   € Ø�j‰j×#Ñ# EÓ*ˆØ�7‰7‹9�t×5Ñ5Ò5ÜØC×JÑJØ×2Ñ2óóð ð
 �{‰{Ø�I‰IÐA˜Ÿ™›	 D×$AÑ$AÑAÐBÀUÑJó
ç
‰#ˆb‹'ð	r   )r   r   r   r   r   r   r&   r'   s   @r   r-   r-   8   s   ø„ ñô
ö
r   r-   c                   ó:   — e Zd Zdd„Zed„ «       Zed„ «       Zd„ Zy)ÚStackc                 ó    — || _         || _        y r   )Ú_varsÚ_axis)r   ÚvarsÚaxiss      r   r   zStack.__init__V   s   € ØˆŒ
Øˆ�
r   c                 ó:   — t        d„ | j                  D «       «      S )Nc              3   ó4   K  — | ]  }|j                   –— Œ y ­wr   )r   ©Ú.0Úvars     r   Ú	<genexpr>z$Stack.is_discrete.<locals>.<genexpr>\   s   è ø€ Ð9©j s�3—?•?©jùó   ‚)Úanyr?   r   s    r   r   zStack.is_discreteZ   s   € äÑ9¨d¯jªjÓ9Ó9Ð9r   c                 ól   — t        d„ | j                  D «       «      }| j                  |z   dk  r|dz  }|S )Nc              3   ó4   K  — | ]  }|j                   –— Œ y ­wr   )r   rE   s     r   rH   z#Stack.event_rank.<locals>.<genexpr>`   s   è ø€ Ð8©Z c�3—>•>©ZùrI   r   é   )Úmaxr?   r@   )r   Úranks     r   r   zStack.event_rank^   s5   € äÑ8¨T¯ZªZÓ8Ó8ˆØ�:‰:˜Ñ˜qÒ Ø�A‰IˆDØˆr   c           	      ó²  — |j                  «        | j                  cxk  r|j                  «       k  s,n t        d|j                  «       › d| j                  › d�«      ‚t        j                  t        | j                  t        j                  || j                  «      «      D ��cg c]  \  }}|j                  |«      ‘Œ c}}| j                  «      S c c}}w )NzInput dimensions z- should be grater than stack constraint axis Ú.)	r5   r@   r6   ÚpaddleÚstackÚzipr?   ÚunstackÚcheck)r   r   rG   s      r   r   zStack.constrainte   s¼   € Ø—‘“� §
¡
Ô8¨U¯Y©Y«[Ô8ÜØ# E§I¡I£K =ð 1#Ø#'§:¡: ,¨að1óð ô
 �|‰|ô #&Ø—J‘J¤§¡¨u°d·j±jÓ Aô#ôñ#‘J�C˜ð —	‘	˜%Õ ð#òð �J‰Jó
ð 	
ùós   Â%C
Nr$   )r   r   r   r   r   r   r   r   r   r   r   r=   r=   U   s4   „ óð ñ:ó ð:ð ñó ðó
r   r=   )
rR   Úpaddle.distributionr   r   r   r)   r-   r=   r!   r+   r   r   r   Ú<module>rX      sZ   ðó Ý *÷'ñ 'ô6=ˆ8ô =ô
Aˆxô Aô
�(ô ô:
ˆHô 
ñD ƒv€Ù‹:�r   