
    sg                         d dl mZmZmZmZ d dlmZmZmZ d dl	m
Z
mZmZ d dlmZmZ d dlmZmZmZmZ d dlmZ d Zd Zd	 Zd
 Zy)    )R2R2_pR2_rR3_r)intcurve_seriesDifferentialWedgeProduct)symbolsFunction
Derivative)trigsimpsimplify)sqrtatan2sincos)Matrixc            	         t        dd      \  } }}}t        dd      \  }}t        d      }t        j                  t	        j
                  | |g            t        t        | dz  |dz  z         t        ||       g      k(  sJ t	        j                  t        j
                  ||g            t        |t        |      z  |t        |      z  g      k(  sJ t        j                  t        ||g      t        t        |      | t        |      z  gt        |      |t        |      z  gg      k(  sJ  |t        j                  t        j                        }t	        j
                  | |g      }t        j
                  t        | dz  |dz  z         t        ||       g      }	|j                  |       || |      k(  sJ |j                  |	       || |      k(  sJ t	        j
                  | |g      }
t        j
                  ||g      }t        j                  |
      | k(  sJ t        j                  |      |t        |      z  k(  sJ t        j                   |      |k(  sJ t        j                   |
      t        | dz  |dz  z         k(  sJ t        j"                  |
      t        ||       k(  sJ t        j                  t        j                   dz  z  t        j                  dz  z   }|j                  |
      | | dz  |dz  z   z  |dz  z   k(  sJ |j                  |      |dz  t        |      dz  z  |dz  t        |      z  z   k(  sJ y )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                c/var/www/html/venv/lib/python3.12/site-packages/sympy/diffgeom/tests/test_function_diffgeom_book.pytest_functional_diffgeom_ch2r-      s    !5DABB6%DAqA  RH!564AA&b"678 9 8  RL!9:2c&k>2c&k>234 5 4 ==F|,
f+s3v;	'#f+r#f+~)FG1I I I I bddBDDMERH%J**d2q52q5=15R=ABK;;z"aBi///;;{#qRy000
**b"X
C
**b&\
"C449??4493v;&&&449??449RURU]++++88C=E"bM)))
RTT1WrttQwA773<2r1ur1u}-A5555773<2q5Va/"a%F2CCCCC    c            	      d   t        dd      \  } }t        dd      \  }}t        d      }t        d      }t        d      }t        j                  | |g      } |t        j
                  t        j                        } |t        j
                        t        j                  z   |t        j                        t        j                  z  z   }	|	j                  |      j                  |      j                          ||       t         || |      |       z   ||      t         || |      |      z  z   k(  sJ t	        j                  t        j                  dz        j                  |      d| z  k(  sJ t        j                  dt        j                  z  z   }
t        j                  dz  d	t        j
                  z  z   }|
j                  |      j                  |      j                         d| z  d
|z  z   d	z   k(  sJ t        j                   t        j                  z  t        j
                  t        j                  z  z   }t        |t        j                  ddg      d      }t        | \  }}t        fdt!        |      D              sJ t        fdt!        |      D              sJ y )Nzx0, y0Tr   zx, y, tr   b1b2r   r         r   )coeffsc              3   `   K   | ]%  \  }}|t              j                  |      k(   ' y wN)r   taylor_term.0itermts      r,   	<genexpr>z/test_functional_diffgeom_ch3.<locals>.<genexpr>G   2      M-4QA""1a((M   +.c              3   `   K   | ]%  \  }}|t              j                  |      k(   ' y wr6   )r   r7   r8   s      r,   r=   z/test_functional_diffgeom_ch3.<locals>.<genexpr>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_ch3rO   2   s9   XD)FBid+GAq!A	$B	$B
**b"X
CbddmGhrvvo244/G==!'',113r
8qRy"%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Hh M8A(8KM M M M M8A(8KM M M Mr.   c            	      
   t        dd      \  } }}t        dd      \  }}}}t        dd      }t        d      }t        d      }	t        d	      }
t        j                  | |g      }t	        j                  ||g      } |	t
        j                  t
        j                        t
        j                  z   |
t
        j                  t
        j                        t
        j                  z  z   }|j                  t
        j                        j                  |       |	| |      k(  sJ |j                  t
        j                        j                  |       |
| |      k(  sJ  |t
        j                  t
        j                        }t        |      } |t
        j                        j                  |      j                         t         || |      |       k(  sJ  |t
        j                        j                  |      j                         t         || |      |      k(  sJ  |t
        j                   t
        j"                        }t        |      }t%         |t
        j                        j                  |      j                               t'        |      t         |||      |      z  t)        |      t         |||      |      z  |z  z
  k(  sJ t%         |t
        j                        j                  |      j                               t)        |      t         |||      |      z  t'        |      t         |||      |      z  |z  z   k(  sJ t        j                  t
        j                        j                  |      d
k(  sJ t        j                  t
        j                        d
k(  sJ t        j                  t
        j                        j                  |      dk(  sJ t        j                  t
        j                        dk(  sJ t
        j                   t
        j                  z  t
        j                  t
        j                  z  z   }t        j                  |      j                  |      j                         | k(  sJ t        j                  |      j                  |      | k(  sJ t        j*                  |      j                  |      dk(  sJ t-        t        j.                  |      j                  |            d
k(  sJ |t
        j0                  z
  j                  |      j                  |      dk(  sJ y )Nzx0, y0, theta0Tr   zx, y, r, thetar$   )positiver   r0   r1   r3   r   )r
   r   r   r   r   r   r   r   dxdyr   rA   rB   r   rC   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_prK   s                     r,   test_functional_diffgeom_ch4r[   M   s   -D9NBF-D9NAq!U		%BA	$B	$B
**b"X
C
**b&\
"CrttnRUU"Rbdd^BEE%99G== &&s+r"bz999== &&s+r"bz999"$$I	i	 Bbff:C %%':aBi+DDDDbff:C %%':aBi+DDDD"$$!I	i	 BBrvvJ$$S)..01FJqV}b11FJqV}f55b8	9: : : BrvvJ$$S)..01FJqV}b11FJqV}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                     t        dd      \	  } }}}}}}}}| t        j                  z  |t        j                  z  z   }	|t        j                  z  |t        j                  z  z   }
t	        t        j
                  t        j                        } ||	|
      | |z  ||z  z
  k(  sJ | t        j                  z  |t        j                  z  z   |t        j                  z  z   }	|t        j                  z  |t        j                  z  z   |t        j                  z  z   }
|t        j                  z  |t        j                  z  z   |t        j                  z  z   }t	        t        j
                  t        j                  t        j                        } ||	|
|      t        dd| ||||||||g	      j                         k(  sJ t        dt              \  }}} |t        j                  t        j                  t        j                        } |t        j                  t        j                  t        j                        } |t        j                  t        j                  t        j                        }|t        j
                  z  |t        j                  z  z   |t        j                  z  z   }t!        |      }t!        |      }t!        |      }t!        |      }|t	        |t        j
                        z
  t	        |t        j                        z
  t	        |t        j                        z
  }|j#                  t        j                  t        j                        dk(  sJ y )Nzu0:3, v0:3, w0:3Tr   r   za, b, c)clsr   )r
   r   rA   rB   r	   rR   rS   r   e_zdzr   detr   r   r   zr   r   )u0u1u2v0v1v2w0w1w2urI   wpwabca_fb_fc_fr!   rU   dadbdcexprs                            r,   test_functional_diffgeom_ch6rx   w   su   )01C$)O&BBBBB
266	BrvvIA
266	BrvvIA	beeRUU	#Ba8r"ur"u}$$$
488bk!BtxxK/A
488bk!BtxxK/A
488bk!BtxxK/A	dggtww	0B	1a1a"b"b"b"b"!EFJJLM M M iX.GAq!
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-   rO   r[   rx    r.   r,   <module>r      s<    2 2 F F 4 4 - 1 1 !D@M6'@T/r.   