
    sh                         S SK JrJrJrJr  S SKJrJrJr  S SK	J
r
JrJr  S SKJrJr  S SKJrJrJrJr  S SKJr  S rS rS	 rS
 rg)    )R2R2_pR2_rR3_r)intcurve_seriesDifferentialWedgeProduct)symbolsFunction
Derivative)trigsimpsimplify)sqrtatan2sincos)Matrixc            	         [        SSS9u  pp#[        SSS9u  pE[        S5      n[        R                  " [        R
                  " X/5      5      [        [        U S-  US-  -   5      [        X5      /5      :X  d   e[        R                  " [        R
                  " X#/5      5      [        U[        U5      -  U[        U5      -  /5      :X  d   e[        R                  " [        X#/5      [        [        U5      U* [        U5      -  /[        U5      U[        U5      -  //5      :X  d   eU" [        R                  [        R                  5      n[        R
                  " X/5      n[        R
                  " [        U S-  US-  -   5      [        X5      /5      n	UR                  U5      U" X5      :X  d   eUR                  U	5      U" X5      :X  d   e[        R
                  " X/5      n
[        R
                  " X#/5      n[        R                  " U
5      U :X  d   e[        R                  " U5      U[        U5      -  :X  d   e[        R                   " U5      U:X  d   e[        R                   " U
5      [        U S-  US-  -   5      :X  d   e[        R"                  " U
5      [        X5      :X  d   e[        R                  [        R                   S-  -  [        R                  S-  -   nUR                  U
5      X S-  US-  -   -  US-  -   :X  d   eUR                  U5      US-  [        U5      S-  -  US-  [        U5      -  -   :X  d   eg )Nzx0, y0, r0, theta0Trealzx, yf      )r
   r   r   point_to_coordsr   pointr   r   r   r   r   jacobianr   xyrcallrtheta)x0y0r0theta0r   r   r   field
p1_in_rectp1_in_polarp_rp_phs                ڄ/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/sympy/diffgeom/tests/test_function_diffgeom_book.pytest_functional_diffgeom_ch2r-      s    !5DABB6%DAA  RH!564AA&b678 9 8  RL!9:2c&k>2c&k>234 5 4 ==|,
f+s3v;	'#f+r#f+~)FG1I I I I bddBDDMERH%J**d2q52q5=15=ABK;;z"ai///;;{#qy000
**bX
C
**b\
"C449??4493v;&&&449??449RURU]++++88C=E"M)))
RTT1WrttQwA773<21ur1u}-A5555773<2q5Va/"a%F2CCCCC    c            	      j  ^ [        SSS9u  p[        SSS9u  p#m[        S5      n[        S5      n[        S5      n[        R                  " X/5      nU" [        R
                  [        R                  5      nU" [        R
                  5      [        R                  -  U" [        R                  5      [        R                  -  -   n	U	R                  U5      R                  U5      R                  5       U" U 5      [        U" X5      U 5      -  U" U5      [        U" X5      U5      -  -   :X  d   e[        R                  " [        R                  S-  5      R                  U5      SU -  :X  d   e[        R                  S[        R                  -  -   n
[        R                  S-  S	[        R
                  -  -   nU
R                  U5      R                  U5      R                  5       SU -  S
U-  -   S	-   :X  d   e[        R                  * [        R                  -  [        R
                  [        R                  -  -   n[        UT[        R                  " SS/5      SS9n[        U6 u  p[        U4S j[!        U5       5       5      (       d   e[        U4S j[!        U5       5       5      (       d   eg )Nzx0, y0Tr   zx, y, tr   b1b2r   r         r   )coeffsc              3   d   >#    U  H%  u  pU[        T5      R                  UT5      :H  v   M'     g 7fN)r   taylor_term.0itermts      r,   	<genexpr>/test_functional_diffgeom_ch3.<locals>.<genexpr>G   .      M8KWQA""1a((8K   -0c              3   d   >#    U  H%  u  pU[        T5      R                  UT5      :H  v   M'     g 7fr6   )r   r7   r8   s      r,   r=   r>   I   r?   r@   )r
   r   r   r   r   r   r   e_xe_yr   doitr   r    r   zipall	enumerate)r"   r#   r   r   r   r0   r1   r)   s_fieldv_fieldvscircseriesseries_xseries_yr<   s                   @r,   test_functional_diffgeom_ch3rP   2   s9   XD)FBid+GA!A	$B	$B
**bX
CbddmGhrvvo244/G==!'',113r
8qy"%8&(*2z!B)R/H(H8I I I I 66"$$'?  %2---
266A
a!BDD&A771:C %%'1R4!B$;?:::DD5<"$$rvv+%DT1djj!Q&8FFfH M8A(8KM M M M M M8A(8KM M M M Mr.   c            	      
   [        SSS9u  pn[        SSS9u  p4pV[        SSS9n[        S5      n[        S5      n	[        S	5      n
[        R                  " X/5      n[        R                  " Xr/5      nU	" [
        R                  [
        R                  5      [
        R                  -  U
" [
        R                  [
        R                  5      [
        R                  -  -   nUR                  [
        R                  5      R                  U5      U	" X5      :X  d   eUR                  [
        R                  5      R                  U5      U
" X5      :X  d   eU" [
        R                  [
        R                  5      n[        U5      nU" [
        R                  5      R                  U5      R                  5       [        U" X5      U 5      :X  d   eU" [
        R                  5      R                  U5      R                  5       [        U" X5      U5      :X  d   eU" [
        R                   [
        R"                  5      n[        U5      n[%        U" [
        R                  5      R                  U5      R                  5       5      ['        U5      [        U" Xr5      U5      -  [)        U5      [        U" Xr5      U5      -  U-  -
  :X  d   e[%        U" [
        R                  5      R                  U5      R                  5       5      [)        U5      [        U" Xr5      U5      -  ['        U5      [        U" Xr5      U5      -  U-  -   :X  d   e[
        R                  " [
        R                  5      R                  U5      S
:X  d   e[
        R                  " [
        R                  5      S
:X  d   e[
        R                  " [
        R                  5      R                  U5      S:X  d   e[
        R                  " [
        R                  5      S:X  d   e[
        R                  * [
        R                  -  [
        R                  [
        R                  -  -   n[
        R                  " U5      R                  U5      R                  5       U* :X  d   e[
        R                  " U5      R                  U5      U :X  d   e[
        R*                  " U5      R                  U5      S:X  d   e[-        [
        R.                  " U5      R                  U5      5      S
:X  d   eU[
        R0                  -
  R                  U5      R                  U5      S:X  d   eg )Nzx0, y0, theta0Tr   zx, y, r, thetar$   )positiver   r0   r1   r3   r   )r
   r   r   r   r   r   r   r   dxdyr   rB   rC   r   rD   r   r    r!   r   r   r   drr   dthetae_theta)r"   r#   r%   r   r   r    r!   r$   r   r0   r1   r)   r*   f_field	s_field_rdf	s_field_prL   s                     r,   test_functional_diffgeom_ch4r\   M   s   -D9NBF-D9NA!		%BA	$B	$B
**bX
C
**b\
"CrttnRUU"Rbdd^BEE%99G== &&s+r"z999== &&s+r"z999"$$I	i	 Bbff:C %%':ai+DDDDbff:C %%':ai+DDDD"$$!I	i	 BBrvvJ$$S)..01FJq}b11FJq}f55b8	9: : : BrvvJ$$S)..01FJq}b11FJq}f55b8	9: : : 55=s#q(((55=A55=s#q(((55=ADD5<"$$rvv+%D55;S!&&(RC///55;S!R'''55;S!Q&&&BIIdO))#./14442::$$Y/55c:a???r.   c                     [        SSS9u	  pp#pEpgnU [        R                  -  U[        R                  -  -   n	U[        R                  -  U[        R                  -  -   n
[	        [        R
                  [        R                  5      nU" X5      X-  X-  -
  :X  d   eU [        R                  -  U[        R                  -  -   U[        R                  -  -   n	U[        R                  -  U[        R                  -  -   U[        R                  -  -   n
U[        R                  -  U[        R                  -  -   U[        R                  -  -   n[	        [        R
                  [        R                  [        R                  5      nU" XU5      [        SSXX#XEXgU/	5      R                  5       :X  d   e[        S[        S9u  pnU" [        R                  [        R                  [        R                  5      nU" [        R                  [        R                  [        R                  5      nU" [        R                  [        R                  [        R                  5      nU[        R
                  -  U[        R                  -  -   U[        R                  -  -   n[!        U5      n[!        U5      n[!        U5      n[!        U5      nU[	        U[        R
                  5      -
  [	        U[        R                  5      -
  [	        U[        R                  5      -
  nUR#                  [        R                  [        R                  5      S:X  d   eg )Nzu0:3, v0:3, w0:3Tr   r   za, b, c)clsr   )r
   r   rB   rC   r	   rS   rT   r   e_zdzr   detr   r   r   zr   r   )u0u1u2v0v1v2w0w1w2urJ   wpwabca_fb_fc_fr!   rV   dadbdcexprs                            r,   test_functional_diffgeom_ch6ry   w   s[   )01C$)O&BBBBB
266	BrvvIA
266	BrvvIA	beeRUU	#Ba8ruru}$$$
488bk!BtxxK/A
488bk!BtxxK/A
488bk!BtxxK/A	dggtww	0B	a1a"""""!EFJJLM M M iX.GA!
DFFDFFDFF
#C
DFFDFFDFF
#C
DFFDFFDFF
#CK#dgg+%DGG3E% F	c	B	c	B	c	BL
DGG #B013?DGG3LMD::dhh)Q...r.   N)sympy.diffgeom.rnr   r   r   r   sympy.diffgeomr   r   r	   
sympy.corer
   r   r   sympy.simplifyr   r   sympy.functionsr   r   r   r   sympy.matricesr   r-   rP   r\   ry    r.   r,   <module>r      s<    2 2 F F 4 4 - 1 1 !D@M6'@T/r.   