a
    kº”hE  ã                   @   s¾   d dl mZmZ d dlmZmZ d dlmZmZ d dl	m
Z
 d dlmZmZ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mZ d d
lmZ d dlmZ e ee ¡Zdd„ Z dS )é    )Ú
DerivativeÚFunction)ÚIÚpi)ÚSymbolÚsymbols)Úsqrt)Úatan2ÚcosÚsin)Úsimplify)ÚepsilonÚmu)Úexp)Úspeed_of_lightÚmÚs©ÚTWave)Úraisesc                     s  t dƒ\‰ ‰} }‰tdƒ}tdƒ‰tdƒ}tdƒ}tˆ ˆˆƒ}t| ˆ|ƒ}|jˆ ksXJ ‚|jˆksfJ ‚|jˆkstJ ‚|jtˆ|  ksŠJ ‚|j	dˆ ksœJ ‚|j
dt ˆ ks²J ‚|jdt ˆ | t ksÐJ ‚|jt| ksâJ ‚|| }|jtˆ d dˆ  |  tˆ| ƒ  | d  ƒks"J ‚|jˆks2J ‚|jtˆ tˆƒ | t|ƒ  ˆ tˆƒ | t|ƒ  ƒkspJ ‚|jtˆ|  ksˆJ ‚|j	dˆ ksœJ ‚|j
dt ˆ ks´J ‚|jdt ˆ | t ksÔJ ‚|jt| ksèJ ‚t| t¡| t¡ | t¡ ƒdksJ ‚| d	¡tt t||ˆƒˆˆƒ t||ˆƒ||ƒ ksPJ ‚| t¡tˆ d dˆ  |  tˆ| ƒ  | d  ƒttˆ | | t d
t  dt ˆ ˆ  tˆ tˆƒ | t|ƒ  ˆ tˆƒ | t|ƒ  ƒ ƒ ksîJ ‚| t¡tˆ d dˆ  |  tˆ| ƒ  | d  ƒttdt ˆ ˆ tˆ tˆƒ | t|ƒ  ˆ tˆƒ | t|ƒ  ƒ tt ˆ | | d
t    ƒ ksJ ‚tˆ d ddˆ ƒ}|jˆks²J ‚|| }	|	jtˆ d dˆ  |  tˆ| ƒ  | d  ƒksòJ ‚|	jˆksJ ‚|	jtˆ tˆƒ | t|ƒ  ˆ tˆƒ | t|ƒ  ƒks@J ‚|	jtˆ|  ksXJ ‚|	j	dˆ kslJ ‚|	j
dt ˆ ks„J ‚|	jdt ˆ | t ks¤J ‚|	jt| ks¸J ‚t|	 t¡| t¡ | t¡ ƒdksäJ ‚|	 d	¡tt t||ˆƒˆˆƒ t||ˆƒ||ƒ ks J ‚|	 t¡tˆ d dˆ  |  tˆ| ƒ  | d  ƒtdt ˆ ˆ tˆ tˆƒ | t|ƒ  ˆ tˆƒ | t|ƒ  ƒ tt ˆ | | d
t   ƒ ks¾J ‚|	 t¡tˆ d dˆ  |  tˆ| ƒ  | d  ƒttdt ˆ ˆ tˆ tˆƒ | t|ƒ  ˆ tˆƒ | t|ƒ  ƒ tt ˆ | | d
t    ƒ ks`J ‚d| }
|
jdˆ  ks|J ‚|
jˆksŒJ ‚|
jˆksœJ ‚|
 }|jdˆ  ks¶J ‚|jˆksÆJ ‚|jˆksÖJ ‚tt‡ fdd„ƒ tt‡ ‡‡‡fdd„ƒ d S )NzA1, phi1, A2, phi2, fÚnÚtÚxÚEé   é   r   Zpdei%<ïéþÿÿÿc                      s   t ˆ ƒS ©Nr   © )ÚA1r   úS/var/www/auris/lib/python3.9/site-packages/sympy/physics/optics/tests/test_waves.pyÚ<lambda>Q   ó    ztest_twave.<locals>.<lambda>c                      s   t ˆ ˆˆˆƒS r   r   r   ©r   ÚfZphi1r   r   r    r!   R   r"   )r   r   r   r   Z	amplitudeZ	frequencyÚphaseZ
wavelengthÚcZtime_periodZangular_velocityr   Z
wavenumberÚspeedr   r
   r	   r   r   Zrewriter   r   r   r   r   r   r   r   Ú
ValueError)ÚA2Zphi2r   r   r   Zw1Zw2Zw3Zw4Zw5Zw6Zw7r   r#   r    Ú
test_twave   sª    8> ,<(ÿ8
ÿÿÿ(ÿ4
ÿÿÿ8> ,<(ÿ2
ÿÿÿ(ÿ4
ÿÿÿr*   N)!Zsympy.core.functionr   r   Zsympy.core.numbersr   r   Zsympy.core.symbolr   r   Z(sympy.functions.elementary.miscellaneousr   Z(sympy.functions.elementary.trigonometricr	   r
   r   Zsympy.simplify.simplifyr   Z	sympy.abcr   r   Z&sympy.functions.elementary.exponentialr   Zsympy.physics.unitsr   r   r   Zsympy.physics.opticsr   Zsympy.testing.pytestr   Z
convert_tor&   r*   r   r   r   r    Ú<module>   s   