
    sg&
                     J    d Z ddlmZ ddlmZmZmZmZmZ ddl	Z
ddlmZ d Zy)aL  
unit test describing the hyperbolic half-plane with the Poincare metric. This
is a basic model of hyperbolic geometry on the (positive) half-space

{(x,y) \in R^2 | y > 0}

with the Riemannian metric

ds^2 = (dx^2 + dy^2)/y^2

It has constant negative scalar curvature = -2

https://en.wikipedia.org/wiki/Poincare_half-plane_model
    )diag)twoform_to_matrixmetric_to_Christoffel_1stmetric_to_Christoffel_2ndmetric_to_Riemann_componentsmetric_to_Ricci_componentsN)ImmutableDenseNDimArrayc                  P   t         j                  j                  } t         j                  j                  j                  }|j
                  }|j                  }|j                  } | ||       | ||      z   |dz  z  }t        |      }t        |dz  |dz        }||k(  sJ t        |      }|d   dk(  sJ |d   |dz   k(  sJ |d   |dz   k(  sJ |d   dk(  sJ |d   |dz   k(  sJ |d	   dk(  sJ |d
   dk(  sJ |d   |dz  k(  sJ t        |      }	|	d   dk(  sJ |	d   |dz   k(  sJ |	d   |dz   k(  sJ |	d   dk(  sJ |	d   |dz   k(  sJ |	d	   dk(  sJ |	d
   dk(  sJ |	d   |dz  k(  sJ t        |      }
|
d   dk(  sJ |
d   dk(  sJ |
d   dk(  sJ |
d   dk(  sJ |
d   dk(  sJ |
d   |dz   k(  sJ |
d   |dz  k(  sJ |
d   dk(  sJ |
d   dk(  sJ |
d   |dz  k(  sJ |
d   |dz   k(  sJ |
d   dk(  sJ |
d   dk(  sJ |
d   dk(  sJ |
d   dk(  sJ |
d   dk(  sJ t        |      }|d   |dz   k(  sJ |d   dk(  sJ |d   dk(  sJ |d   |dz   k(  sJ |t        |dz   dd|dz   gd       k(  sJ |d   |d!   z   |d"z  z  }|dk(  sJ |d"z  dk(  sJ y )#N)r   r   r   r   )r   r      )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   )r   r   )r   r   )   r   )r   r   r   )sympydiffgeomTensorProductrnR2ydydxr   r   r   r   r   r   r	   )TPr   r   r   r   gautomatmatgamma1gamma2RmRicRs                ]/var/www/html/venv/lib/python3.12/site-packages/sympy/diffgeom/tests/test_hyperbolic_space.pytest_H2r"      s   		%	%B					B
A	B	B	BbRj	 !b')A"G
q2wB
 C'>>&q)F'?a'?q2wh&&&'?q2wh&&&'?a'?q2wh&&&'?a'?a'?a"g%%%&q)F'?a'?q2wh&&&'?q2wh&&&'?a'?q2wh&&&'?a'?a'?a"g%%%	%a	(Bj>Qj>Qj>Qj>Qj>Qj>a"gX%%%j>QW$$$j>Qj>Qj>QW$$$j>a"gX%%%j>Qj>Qj>Qj>Qj>Q
$Q
'Ct9R   t9>>t9>>t9R   )AG8QAG8*DfMMMM 
TSY	1$A7N7 Q3"99    )__doc__sympy.matrices.denser   sympy.diffgeomr   r   r   r   r   sympy.diffgeom.rnr   sympy.tensor.arrayr	   r"    r#   r!   <module>r*      s)    &V V  6Dr#   