o
    hF                     @   sN   d dl Zd dlmZ dd Zdd Zdd Zdd
dZdddZ	dddZ
dS )    N)goldenc                 C   s  t |  }d}dt }td }tg |
 |
 |
 dg|
 |
 | dg|
 |
 d|
 g|
 |
 d| g|
 | |
 dg|
 | | dg|
 | d|
 g|
 | d| g|
 d|
 |
 g|
 d|
 | g|
 d| |
 g|
 d| | g|
 |
 d|
 g|
 |
 d| g|
 |
 |
 dg|
 |
 | dg|
 | d|
 g|
 | d| g|
 | |
 dg|
 | | dg|
 d|
 |
 g|
 d|
 | g|
 d| |
 g|
 d| | g|
 |
 |
 dg|
 |
 | dg|
 |
 d|
 g|
 |
 d| g|
 | |
 dg|
 | | dg|
 | d|
 g|
 | d| g|
 d|
 |
 g|
 d|
 | g|
 d| |
 g|
 d| | gd|
 |
 |
 gd|
 |
 | gd|
 | |
 gd|
 | | gd|
 |
 |
 gd|
 |
 | gd|
 | |
 gd|
 | | gd|
 |
 |
 gd|
 |
 | gd|
 | |
 gd|
 | | g}| t||fS )N      ?   r   )tetrahedralas_quatphinparray	from_quatconcatenate)clsg1abcg2 r   \/var/www/vscode/kcb/lib/python3.10/site-packages/scipy/spatial/transform/_rotation_groups.pyicosahedral   s   	
 !"#$%&'()*+,-./0r   c                 C   s   t |  }tdd }t|
 dd|
 gd|
 d|
 gdd|
 |
 gdd| |
 gd| d|
 g| dd|
 gd|
 |
 dgd| |
 dg|
 d|
 dg| d|
 dg|
 |
 ddg| |
 ddgg}| t||fS )Nr   r   )r   r   r   sqrtr	   r
   r   r   r   r   r   r   r   r   
octahedral=   s    r   c                 C   s   t d}d}t || | |
 g|| |
 |
 g||
 | |
 g||
 |
 |
 g|| | | g|| |
 | g||
 | | g||
 |
 | gg}| t ||fS )N   r   )r   eyer	   r
   r   r   r   r   r   r   O   s   
r   r   c                 C   sr   t | || }tjdtj|dd}tjtt|t|t|gj	 }tj
||dd}| t||fS )Nr   Fendpoint   axis)cyclic	as_rotvecr   linspacepivstackzeroscossinTrollfrom_rotvecr   )r   nr   r   thetasrvr   r   r   r   dicyclic]   s
   *r-   c                 C   sL   t jddt j |dd}t |t |t |gj}| t j||ddS )Nr   r   Fr   r   r   )r   r!   r"   r#   r$   r'   r)   r(   )r   r*   r   r+   r,   r   r   r   r   f   s   r   Zc                 C   s
  t |ts	tdg d}||vrtdd| |dv r#|}d}n#|d d dv rB|dd   rB|d d }t|dd  }ntd|dk rNtd	d
| }|dkr]t| S |dkret	| S |dkrmt
| S |dkrxt| ||dS |dkrt| ||dS J )Nz!`group` argument must be a string)xyzXYr.   z`axis` must be one of z, )IOr'   r   )CDz0`group` must be one of 'I', 'O', 'T', 'Dn', 'Cn'zGroup order must be positivexyzr4   r5   r'   r7   r   r6   )
isinstancestr
ValueErrorjoinisdigitintindexlowerr   r   r   r-   r   )r   groupr   permitted_axessymbolorderr   r   r   create_groupl   s4   
 rE   )r   )r.   )numpyr   scipy.constantsr   r   r   r   r   r-   r   rE   r   r   r   r   <module>   s    8

	