o
    8VaH                     @   s  d Z ddlmZ ddlZddlmZmZmZmZm	Z	m
Z
mZ ddlmZmZmZ g dZedd	Zed
eZe
ddd\ZZe
ddd\ZZeefeed	 ed	  eeefgeefee	e eee fgdZedeeefeZedeeefeZe F ed e
ded\ZZZZejeeegeed	 ed	  eeegddd ejeeegee	e eee gddd W d   n1 sw   Y  e  \e_e_ \e_e_\e_e_e  \e_e_ \e_e_\e_e_e  \e_e_  \e_e_ \e_e_ e  \e_!e_" \e_!e_"\e_!e_"e#  \e_$e_% \e_$e_%\e_$e_%e#  \e_&e_' \e_&e_'\e_&e_'eddZ(ed
e(Z)e
ddd\ZZZ*e
ddd\Z+Z,ZZZ-eee*feed	 ed	  eeee*fge+e,e*fe+e	e, e+ee, e*fgeee*feed	 ed	  e*d	  ee*eed	 ed	  e*d	   eeefgeee-feee e	e- eee ee- ee	e fge+e,e*fee+d	 e*d	  ee*ee+d	 e*d	   e,fgeee-feee e-ee	e fgdZ.ede)eee*fe.Z/ede)e+e,e*fe.Z0ede)eee-fe.Z1e  ed e
ded\ZZZ*Z+Z,ZZZ-e/je0eee*geed	 ed	  eeee*gddd e0je/e+e,e*ge+e	e, e+ee, e*gddd e/je1eee*geed	 ed	  e*d	  ee*eed	 ed	  e*d	   eeegddd e1je/eee-geee e	e- eee ee- ee	e gddd e0je1e+e,e*gee+d	 e*d	  ee*ee+d	 e*d	   e,gddd e1je0eee-geee e-ee	e gddd W d   n	1 sw   Y  e/ \e/_e/_e/_*e0 \e0_+e0_,e0_*e1 \e1_e1_e1_-e/ \e/_e/_ e/_2e0 \e0_3e0_4e0_2e1 \e1_!e1_"e1_5e/# \e/_$e/_%e/_6e0# \e0_7e0_8e0_6e1# \e1_&e1_'e1_9dS ) at  Predefined R^n manifolds together with common coord. systems.

Coordinate systems are predefined as well as the transformation laws between
them.

Coordinate functions can be accessed as attributes of the manifold (eg `R2.x`),
as attributes of the coordinate systems (eg `R2_r.x` and `R2_p.theta`), or by
using the usual `coord_sys.coord_function(index, name)` interface.
    )AnyN)sqrtatan2acossincossymbolsDummy   )ManifoldPatchCoordSystem)R2	R2_originrelations_2dR2_rR2_pR3	R3_originrelations_3dR3_rR3_cR3_szR^2   originzx yT)realz	rho theta)Znonnegative))rectangularpolar)r   r   r   r   ignorezx y r theta)clsF)ZinverseZfill_in_gapszR^3   zx y zzrho psi r theta phi))r   cylindrical)r!   r   )r   	spherical)r"   r   )r!   r"   )r"   r!   r!   r"   zx y z rho psi r theta phi):__doc__typingr   warningsZsympyr   r   r   r   r   r   r	   Zdiffgeomr   r   r   __all__r   r   xyrZthetar   r   r   catch_warningssimplefilterZ
connect_toZcoord_functionsZbase_vectorsZe_xZe_yZe_rZe_thetaZbase_oneformsZdxZdyZdrZdthetar   r   zZrhoZpsiZphir   r   r   r   Ze_zZe_rhoZe_psiZe_phiZdzZdrhoZdpsiZdphi r-   r-   3/usr/lib/python3/dist-packages/sympy/diffgeom/rn.py<module>   s    
$

$

((((((

"



0