
    sgF                     B    d dl Zd dlmZ d Zd Zd Zd	dZd	dZ	d
dZ
y)    N)goldenc                 2   t        |       j                         }d}dt        z  }t        dz  }t        j                  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      }| j                  t        j                  ||f            S )N      ?   r   )tetrahedralas_quatphinparray	from_quatconcatenate)clsg1abcg2s         [/var/www/html/venv/lib/python3.12/site-packages/scipy/spatial/transform/_rotation_groups.pyicosahedralr      s   	S		!	!	#BAc	AaA	 /$QBQB? /$BQB?/$BAr?/$ BAr?/$ BQB?	/$
 BQB?/$ BAr?/$ BAr?/$ BA2r?/$ BA2r?/$ BA2r?/$ BA2r?/$ BAr?/$ BAr?/$ BQB?/$ BQB?/$  BAr?!/$" BAr?#/$$ BQB?%/$& BQB?'/$( BA2r?)/$* BA2r?+/$, BA2r?-/$. BA2r?//$0 BQB?1/$2 BQB?3/$4 BAr?5/$6 BAr?7/$8 BQB?9/$: BQB?;/$< BAr?=/$> BAr??/$@ BA2r?A/$B BA2r?C/$D BA2r?E/$F BA2r?G/$H rA2r?I/$J rA2r?K/$L rA2r?M/$N rA2r?O/$P rA2r?Q/$R rA2r?S/$T rA2r?U/$V rA2r?W/$X rA2r?Y/$Z rA2r?[/$\ rA2r?]/$^ rA2r?_/$ /
%B` ==R122    c                    t        |       j                         }t        j                  d      dz  }t        j                  |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      }| j                  t        j                  ||f            S )Nr   r   )r   r   r
   sqrtr   r   r   r   r   r   r   s       r   
octahedralr   =   s
   	S		!	!	#B

QA	QB1qb>r1qb>q1"qb>q1"qb>r1qb>B1qb>rA2q>rA2q>BA2q>BA2q>BAq>BAq># 
$B ==R122r   c                 &   t        j                  d      }d}t        j                  || | |g|| ||g||| |g||||g|| | | g|| || g||| | g|||| gg      }| j                  t        j                  ||f            S )N   r   )r
   eyer   r   r   r   s       r   r   r   O   s    	BA	ArA2r?rA2r?rA2r?rA2r?rA2r?rA2r?rA2r?rA2r?$ 
%B ==R122r   c                    t        | ||      j                         }t        j                  dt        j                  |d      }t        j                  t        j
                  t        j                  |      t        j                  |      t        j                  |      g      j                  z  }t        j                  ||d      }| j                  t        j                  ||f            S )Nr   Fendpoint   axis)cyclic	as_rotvecr
   linspacepivstackzeroscossinTrollfrom_rotvecr   )r   nr#   r   thetasrvr   s          r   dicyclicr2   ]   s    	Q		'	'	)B[[BEE1u5F	BHHQKHIKK	KB	T	"B??2>>2r(344r   c                 4   t        j                  ddt         j                  z  |d      }t        j                  |t        j                  |      t        j                  |      g      j
                  }| j                  t        j                  ||d            S )Nr   r   Fr   r!   r"   )r
   r&   r'   r(   r)   r,   r.   r-   )r   r/   r#   r0   r1   s        r   r$   r$   f   se    [[AIq59F	FBHHQK!5	6	8	8B??2772t!455r   c                    t        |t              st        d      g d}||vrt        ddj                  |      z         |dv r|}d}n9|d d dv r'|dd  j	                         r|d d }t        |dd        }nt        d      |dk  rt        d	      d
j                  |j                               }|dk(  rt        |       S |dk(  rt        |       S |dk(  rt        |       S |dk(  rt        | ||      S |dk(  rt        | ||      S J )Nz!`group` argument must be a string)xyzXYZz`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xyzr;   r<   r,   r>   r"   r=   )
isinstancestr
ValueErrorjoinisdigitintindexlowerr   r   r   r2   r$   )r   groupr#   permitted_axessymbolorders         r   create_grouprL   l   s#   eS!<==3N>!1DIIn4MMNN	rj	 U12Y%6%6%8rE!"IKLLqy788;;tzz|$D}3	3#	33	3U..	3c5t,,ur   )r   )r:   )numpyr
   scipy.constantsr   r	   r   r   r   r2   r$   rL    r   r   <module>rP      s*     )53p3$356 r   