
    g~                         d dl mZ d dlmZmZmZ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mZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z! d	 Z"d
 Z#dS )    )N)FloatIoopi)symbols)sqrt)atan2)Matrix)factor)BeamParameterCurvedMirrorCurvedRefraction
FlatMirrorFlatRefraction	FreeSpaceGeometricRayRayTransferMatrixThinLensconjugate_gauss_beamsgaussian_conjgeometric_conj_abgeometric_conj_afgeometric_conj_bfrayleigh2waistwaist2rayleighc                 B    t          |           t          |          k    S )N)str)abs     d/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/physics/optics/tests/test_gaussopt.pystreqr"      s    q66SVV    c            
      |   t          dddd          } | t          ddgddgg          k    sJ | t          t          ddgddgg                    k    sJ | j        | j        | j        | j        gg dk    sJ t          d          \  }}}}}}t          |          }|t          ddgd|z  dgg          k    sJ |j        d|z  k    sJ t          |          t          d|gddgg          k    sJ t          ||          t          ddgd||z  gg          k    sJ t          |||          t          ddg||z
  ||z  z  ||z  gg          k    sJ t                      t          ddgddgg          k    sJ t          |          t          ddgd	|z  dgg          k    sJ t          |          t          ddgd|z  dgg          k    sJ t          |          t          |          z  }t          ddgd	|z  dgg          t          d|gddgg          z  }	|j        |	d
         k    sJ |j        |	d         k    sJ |j        |	d         k    sJ |j        |	d         k    sJ t          d          }
t          ||
          t          |g|
gg          k    sJ t          |          t          ||
          z  t          |
|z  |z   g|
gg          k    sJ t          t          |f|
ff                    t          |g|
gg          k    sJ t          |          t          ||
          z  j        |
|z  |z   k    sJ t          |          t          ||
          z  j        |
k    sJ t!          ddd          }t#          |j        ddt&          z  t(          z  z             sJ t#          t+          |j                  ddt&          z  z             sJ t#          t+          |j                  t/          d                    sJ t#          t+          |j                  t/          d                    sJ t          d          }||z  }t#          t+          |j                  t/          d                    sJ t#          t+          |j                  t/          d                    sJ t          d          \  }}t5          ||          t(          |dz  z  |z  k    sJ t          d          \  }}t7          ||          t9          ||z            t9          t(                    z  k    sJ t          d          \  }}}t;          ||          ||z  ||z   z  k    sJ t=          ||          ||z  ||z
  z  k    sJ t?          ||          ||z  ||z
  z  k    sJ t;          t@          |          |k    sJ t;          |t@                    |k    sJ t          d          \  }}}tC          |||          d         dd||dz  | |z   z  z   z  d|z  z   z  k    sJ tC          |||          d         |d|dz  |dz  z  z
  |dz  |dz  z  z   z  k    sJ tC          |||          d         dt9          d|dz  |dz  z  z
  |dz  |dz  z  z             z  k    sJ t          d          \  }}}}tE          ||||          d         |t9          |dz  |dz  z  t(          dz  |dz  z  |dz  |dz  z  z  z
             dz   z  k    sJ tG          tE          ||||          d                   ||dz  z  |dz  |dz  z  t9          |dz  |dz  z  t(          dz  |dz  z  |dz  |dz  z  z  z
            z
  z  |dz  z  k    sJ tE          ||||          d         |k    sJ t          dd           \  }}}t!          |||          }|j$        |t(          dz  |dz  z  |dz  |dz  z  z  dz   z  k    sJ |j        |t9          |dz  |dz  z  t(          dz  |dz  z  z  dz             z  k    sJ |j        |k    sJ |j%        |t(          |z  z  k    sJ |j&        tO          |t(          |dz  z  |z            k    sJ |j(        d|z  t(          z  k    sJ t!          dddd!          }t#          |j        dd"t&          z  t(          z  z             sJ t#          t+          |j                  t/          d#                    sJ t#          t+          |j                  t/          d                    sJ d S )$N            )r%   r&   r'   r(   zd f h n1 n2 Rr   )r   r   )r   r%   )r%   r   )r%   r%   angleg 4PSȡ>gMbP?)wgsHM0?g      ?gҔJ˵@
   gP?g(1EDa?z	w wavelenzz_r wavelenza b fzs_in z_r_in fzl w_i w_o f)fzz l w_0T)positive)r,   ngsHM0@gݔJ˵'@))r   r   ABCDr   r   r   r   r   r   r   r   heightr+   r   r"   qr   r   r   w_0r   z_rr,   r   r   r	   r   r   r   r   r   r   r   radius
divergencegouyr
   waist_approximation_limit)matdr.   hn1n2Rlensmulmul_matr+   pfsp1r,   wavelenr8   r   r    s_inz_r_inlw_iw_ozr7   s                             r!   test_gauss_optrP      s
   
Aq!Q
'
'C&1a&1a&)******#VaVaV,<%=%=??????E35#%'<<<7777 11Aq!RQA;;D6q!9r!tQi01111116RT>>>>Q<<6Q7QF"3444444"b!!VaVaBZ,@%A%AAAAA	2r q!fR!B$'7B&?@AAB B B B<<6Aq6Aq6"2333333??f!Qi"Q$%;<<<<<<A;;&a)bdAY!7888888
q//)A,,
&C!Qi"Q$+,,Vq!Wq!f4E-F-FFG5GDM!!!!5GDM!!!!5GDM!!!!5GDM!!!!GE5!!V!Wug,>%?%?????	 5!!"%+eAgk]UG,D%E%EF F F F1$!13355!ug9O9OOOOOaLLa///757Q;FFFFaLLa///6%????fa4(((Aa*1,R//0000013/1122222155!45566666155!12233333	2B	AB132334444424% 34455555%%JAw!W%%AqD8888=))LC#w''4+<+<T"XX+EEEEEgGAq!Q""ac1q5k1111Q""ac1q5k1111Q""ac1q5k1111R##q((((Q##q((((o..OD&!fa  "dVQYT	-B&B"Cac"IJK K K Kfa %q471a4<'7&!)AqD.'HIJ J J Jfa  a$'!Q$,&61a4&G!H!HHI I I I ]++NAsC C22215	c1fS!Vmb!eCFlAqDAI66	7	77!;:= = = = ='3q999!<==36QsAvS!VCF]RU36\1a419-EEFFFBHHKQBO O O O O C22215::::	D111IAq#ac"""A8q"a%Q,1QT	2Q6777773#d1a419b!eCFl3a788888885C<<<<<1bf:%%%%6U1baik******&!A#b&0000fa41---Aa*1,R//00000155!12233333155!4556666666r#   N)$sympy.core.evalfr   sympy.core.numbersr   r   r   r   sympy.core.symbolr   (sympy.functions.elementary.miscellaneousr	   (sympy.functions.elementary.trigonometricr
   sympy.matrices.denser   sympy.polys.polytoolsr   sympy.physics.opticsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r"   rP    r#   r!   <module>rZ      sv         1 1 1 1 1 1 1 1 1 1 1 1 % % % % % % 9 9 9 9 9 9 : : : : : : ' ' ' ' ' ' ( ( ( ( ( (" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "  R7 R7 R7 R7 R7r#   