
    \h~                         S SK Jr  S SKJrJrJrJr  S SKJr  S SK	J
r
  S SKJr  S SKJr  S SKJr  S SKJrJrJrJrJrJrJrJrJrJrJrJrJrJrJ r J!r!  S	 r"S
 r#g)    )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                 0    [        U 5      [        U5      :H  $ )N)str)abs     `/var/www/auris/envauris/lib/python3.13/site-packages/sympy/physics/optics/tests/test_gaussopt.pystreqr"      s    q6SV    c            
      f   [        SSSS5      n U [        SS/SS//5      :X  d   eU [        [        SS/SS//5      5      :X  d   eU R                  U R                  U R                  U R
                  // SQ:X  d   e[        S5      u  pp4pV[        U5      nU[        SS/SU-  S//5      :X  d   eUR                  SU-  :X  d   e[        U5      [        SU/SS//5      :X  d   e[        XE5      [        SS/SXE-  //5      :X  d   e[        XdU5      [        SS/XE-
  Xe-  -  XE-  //5      :X  d   e[        5       [        SS/SS//5      :X  d   e[        U5      [        SS/S	U-  S//5      :X  d   e[        U5      [        SS/SU-  S//5      :X  d   e[        U5      [        U5      -  n[        SS/S	U-  S//5      [        SU/SS//5      -  n	UR                  U	S
   :X  d   eUR                  U	S   :X  d   eUR                  U	S   :X  d   eUR
                  U	S   :X  d   e[        S5      n
[        X:5      [        U/U
//5      :X  d   e[        U5      [        X:5      -  [        X-  U-   /U
//5      :X  d   e[        [        U4U
445      5      [        U/U
//5      :X  d   e[        U5      [        X:5      -  R                  X-  U-   :X  d   e[        U5      [        X:5      -  R                  U
:X  d   e[!        SSSS9n[#        UR$                  SS[&        -  [(        -  -   5      (       d   e[#        [+        UR$                  5      SS[&        -  -   5      (       d   e[#        [+        UR,                  5      [/        S5      5      (       d   e[#        [+        UR0                  5      [/        S5      5      (       d   e[        S5      nX-  n[#        [+        UR2                  5      [/        S5      5      (       d   e[#        [+        UR2                  5      [/        S5      5      (       d   e[        S5      u  p[5        X5      [(        US-  -  U-  :X  d   e[        S5      u  nn[7        UU5      [9        UU-  5      [9        [(        5      -  :X  d   e[        S5      u  nnn[;        UU5      UU-  UU-   -  :X  d   e[=        UU5      UU-  UU-
  -  :X  d   e[?        UU5      UU-  UU-
  -  :X  d   e[;        [@        U5      U:X  d   e[;        U[@        5      U:X  d   e[        S5      u  nnn[C        UUU5      S   SSUUS-  U* U-   -  -   -  SU-  -   -  :X  d   e[C        UUU5      S   USUS-  US-  -  -
  US-  US-  -  -   -  :X  d   e[C        UUU5      S   S[9        SUS-  US-  -  -
  US-  US-  -  -   5      -  :X  d   e[        S5      u  nnnn[E        UUUUS9S   U[9        US-  US-  -  [(        S-  US-  -  US-  US-  -  -  -
  5      * S-   -  :X  d   e[G        [E        UUUUS9S   5      UUS-  -  US-  US-  -  [9        US-  US-  -  [(        S-  US-  -  US-  US-  -  -  -
  5      -
  -  US-  -  :X  d   e[E        UUUUS9S   U:X  d   e[        SSS 9u  nnn[!        UUUS9nURH                  U[(        S-  US-  -  US-  US-  -  -  S-   -  :X  d   eUR2                  U[9        US-  US-  -  [(        S-  US-  -  -  S-   5      -  :X  d   eUR,                  U:X  d   eURJ                  U[(        U-  -  :X  d   eURL                  [O        U[(        US-  -  U-  5      :X  d   eURP                  SU-  [(        -  :X  d   e[!        SSSSS!9n[#        UR$                  SS"[&        -  [(        -  -   5      (       d   e[#        [+        UR0                  5      [/        S#5      5      (       d   e[#        [+        UR,                  5      [/        S5      5      (       d   eg )$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,<%=????EE355#%%'<777 1A!A;D6q!9r!tQi0111166RT>>Q<6Q7QF"34444"!VaVaZ,@%AAAA	rq!f!$'7&?@AB B B<6Aq6Aq6"23333?f!Qi"Q$%;<<<<A;&a)bdAY!78888
q/)A,
&C!Qi"Q$+,Vq!Wq!f4E-FFG55GDM!!!55GDM!!!55GDM!!!55GDM!!!GE!V!Wug,>%????	!"%+egk]UG,D%EF F F1$!135!ug9OOOOaLa//7757Q;FFFaLa//66%???fa4(Aa*1,R//0000133/1122221555!4566661555!123333	2B	B133234444244% 345555%JA!%AqD888=)LC#w'4+<T"X+EEEEgGAq!Q"ac1q5k111Q"ac1q5k111Q"ac1q5k111R#q(((Q#q(((o.OD&!fa "dVQYT	-B&B"Cac"IJK K Kfa%q471a4<'7&!)AqD.'HIJ J Jfa a$'!Q$,&61a4&G!HHI I I ]+NAsC C215	c1fS!Vmb!eCFlAqDAI66	77!;:= = = ='3q9!<=36QsAvS!VCF]RU36\1a419-EEFFBHHKQBO O O O C215:::	D1IAq#ac"A88q"a%Q,1QT	2Q6777733#d1a419b!eCFl3a78888855C<<<<1bf:%%%66U1baik****&&!A#b&000fa41-Aa*1,R//00001555!1233331555!45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      sA     1 1 % 9 : ' (" " " " "R7r#   