
    -iF                     H    S SK rS SKJr  S rS rS rS	S jrS	S jr	S
S jr
g)    N)goldenc                 4   [        U 5      R                  5       nSnS[        -  n[        S-  n[        R                  " / U7U7U7S/PU7U7U* S/PU7U7SU7/PU7U7SU* /PU7U* U7S/PU7U* U* S/PU7U* SU7/PU7U* SU* /PU7SU7U7/PU7SU7U* /PU7SU* U7/PU7SU* U* /PU7U7SU7/PU7U7SU* /PU7U7U7S/PU7U7U* S/PU7U* SU7/PU7U* SU* /PU7U* U7S/PU7U* U* S/PU7SU7U7/PU7SU7U* /PU7SU* U7/PU7SU* U* /PU7U7U7S/PU7U7U* S/PU7U7SU7/PU7U7SU* /PU7U* U7S/PU7U* U* S/PU7U* SU7/PU7U* SU* /PU7SU7U7/PU7SU7U* /PU7SU* U7/PU7SU* U* /PSU7U7U7/PSU7U7U* /PSU7U* U7/PSU7U* U* /PSU7U7U7/PSU7U7U* /PSU7U* U7/PSU7U* U* /PSU7U7U7/PSU7U7U* /PSU7U* U7/PSU7U* U* /P5      nU R                  [        R                  " X45      5      $ )N      ?   r   )tetrahedralas_quatphinparray	from_quatconcatenate)clsg1abcg2s         [/var/www/html/venv/lib/python3.13/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` ==122    c                    [        U 5      R                  5       n[        R                  " S5      S-  n[        R                  " U7SSU7/SU7SU7/SSU7U7/SSU* U7/SU* SU7/U* SSU7/SU7U7S/SU* U7S/U7SU7S/U* SU7S/U7U7SS/U* U7SS//5      nU R                  [        R                  " X45      5      $ )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 ==122r   c                    [         R                  " S5      nSn[         R                  " X"* U* U7/X"* U7U7/X"7U* U7/X"7U7U7/X"* U* U* /X"* U7U* /X"7U* U* /X"7U7U* //5      nU R                  [         R                  " X45      5      $ )N   r   )r
   eyer   r   r   r   s       r   r   r   O   s    	BA	ArA2r?rA2r?rA2r?rA2r?rA2r?rA2r?rA2r?rA2r?$ 
%B ==122r   c                    [        XU5      R                  5       n[        R                  " S[        R                  USS9n[        R                  [        R
                  " [        R                  " U5      [        R                  " U5      [        R                  " U5      /5      R                  -  n[        R                  " XRSS9nU R                  [        R                  " X645      5      $ )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    			'	'	)B[[BEE1u5F	BHHQKHIKK	KB		"B??2>>2(344r   c                 0   [         R                  " SS[         R                  -  USS9n[         R                  " U[         R                  " U5      [         R                  " U5      /5      R
                  nU R                  [         R                  " XBSS95      $ )Nr   r   Fr   r!   r"   )r
   r&   r'   r(   r)   r,   r.   r-   )r   r/   r#   r0   r1   s        r   r$   r$   f   sc    [[AIq59F	FBHHQK!5	6	8	8B??2772!455r   c                 .   [        U[        5      (       d  [        S5      e/ SQnX#;  a  [        SSR                  U5      -   5      eUS;   a  UnSnO@US S S;   a,  USS  R	                  5       (       a  US S n[        USS  5      nO[        S5      eUS:  a  [        S	5      eS
R                  UR                  5       5      nUS:X  a  [        U 5      $ US:X  a  [        U 5      $ US:X  a  [        U 5      $ US:X  a
  [        XUS9$ US:X  a
  [        XUS9$  e)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%8rE!"IKLLqy788;;tzz|$D}3	3#	33	3..	3ct,,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   