U
    Ç-ez  ã                   @   sr   d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
 d dlmZmZ edƒ\ZZZdd	„ Zd
d„ ZdS )é    )Úproduct)ÚS)Úsymbols)ÚexpÚlog)Úsrepr)Ú	logaddexpÚ
logaddexp2zx y zc            
      C   sè   t ttƒ} tttƒttƒ ƒ}ttttgtdƒƒD ]2\}}|  ||¡| ||¡  	t¡ 
¡ dks2t‚q2dtdƒ d }dtdƒ d }t|ƒ}t|ƒ}t ||ƒ}| 	t¡dks²t‚| 
¡ dksÂt‚t ddƒ}	t|	ƒt|	 
¡ ƒksät‚d S )Né   r   é   é   )r   ÚxÚyr   r   r   ÚzÚrangeÚdiffÚrewriteÚsimplifyÚAssertionErrorr   )
Zlae_xyZref_xyÚwrtÚderiv_orderZone_third_eZtwo_thirds_eZ	logThirdEZlogTwoThirdsEZlae_sum_to_eÚwas© r   úe/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/sympy/codegen/tests/test_numpy_nodes.pyÚtest_logaddexp
   s(    


ÿÿýý


r   c                  C   sî   t ttƒ} tdt dt  ƒtdƒ }ttttgtdƒƒD ]2\}}|  ||¡| ||¡  t¡ 	¡ dks:t
‚q:dd„ }tjd d }d| }||ƒ}||ƒ}t ||ƒ}	|	 t¡dks¸t
‚|	 ¡ dksÈt
‚t ttƒ}
t|
ƒt|
 ¡ ƒksêt
‚d S )Nr   r
   r   c                 S   s   t | ƒt dƒ S )Nr   )r   )r   r   r   r   Úlb'   s    ztest_logaddexp2.<locals>.lbr   )r	   r   r   r   r   r   r   r   r   Úcancelr   r   ZOner   r   )Zlae2_xyZref2_xyr   r   r   Z
two_thirdsZfour_thirdsZlbTwoThirdsZlbFourThirdsZlae2_sum_to_2r   r   r   r   Útest_logaddexp2   s*    


ÿÿýý


r   N)Ú	itertoolsr   Zsympy.core.singletonr   Zsympy.core.symbolr   Z&sympy.functions.elementary.exponentialr   r   Zsympy.printing.reprr   Zsympy.codegen.numpy_nodesr   r	   r   r   r   r   r   r   r   r   r   Ú<module>   s   