ó
    Eñi  ã                   ó°  • S SK rSSKJr  SSKJrJrJrJ	r	J
r
JrJr  S SKr  SS jr\R                  " \S\R                   5      rS\l        \R                  " \S\R                   5      rS	\l        \R                  " \S\R&                  5      rS
\l        \R                  " \S\R&                  5      rS\l          SS jr\R                  " \S\R                   5      rS\l        \R                  " \S\R                   5      rS\l        \R                  " \S\R&                  5      rS\l        \R                  " \S\R&                  5      rS\l        g)é    Né   )Úpypocketfft)Ú	_asfarrayÚ_init_nd_shape_and_axesÚ_datacopiedÚ
_fix_shapeÚ_fix_shape_1dÚ_normalizationÚ_workersFc
           	      óR  • [        U5      n
U=(       d    [        X¢5      n[        X`5      n[        U5      nU (       d  US:X  a  SnOUS:X  a  SnUb  [	        X¤U5      u  p«U=(       d    UnO/U
R
                  U   S:  a  [        SU
R
                  U    S35      eU(       a  U
OSn[        R                  " U5      (       a]  Uc  [        R                  " U
5      OUnU" U
R                  X54XlR                  U5        U" U
R                  X54XlR                  U5        U$ U" X£U4XlX‰5      $ )zÎForward or backward 1-D DCT/DST

Parameters
----------
forward : bool
    Transform direction (determines type and normalisation)
transform : {pypocketfft.dct, pypocketfft.dst}
    The transform to perform
é   é   Nr   zinvalid number of data points (z) specified)r   r   r
   r   r	   ÚshapeÚ
ValueErrorÚnpÚiscomplexobjÚ
empty_likeÚrealÚimag)ÚforwardÚ	transformÚxÚtypeÚnÚaxisÚnormÚoverwrite_xÚworkersÚorthogonalizeÚtmpÚcopiedÚouts                Ú`/home/mande/repo/quber/.venv/lib/python3.13/site-packages/scipy/fft/_pocketfft/realtransforms.pyÚ_r2rr$      s  € ô �A‹,€CØ×4¤¨SÓ!4€KÜ˜$Ó(€DÜ�wÓ€GæØ�1‹9Ø‰DØ�Q‹YØˆDà�}Ü# C¨DÓ1‰ˆØ!×+ V‰Ø	�‰�4‰˜1Ó	ÜÐ:¸3¿9¹9ÀT¹?Ð:KÈ;ÐWÓXÐXæ‰3 4€Cô 
‡‚�q×ÑØ$'¡KŒb�mŠm˜CÔ °SˆÙ�#—(‘(˜D '¨4·±¸7ÔCÙ�#—(‘(˜D '¨4·±¸7ÔCØˆ
á�S  ¨°GÓKÐKó    TÚdctÚidctÚdstÚidstc
           	      ó$  • [        U5      n
[        X¤U5      u  pµU=(       d    [        X¢5      n[        U5      S:X  a  U$ [	        X«U5      u  p¬U=(       d    UnU (       d  US:X  a  SnOUS:X  a  Sn[        X`5      n[        U5      nU(       a  U
OSn[        R                  " U5      (       a[  Uc  [        R                  " U
5      OUnU" U
R                  X5XmR                  U5        U" U
R                  X5XmR                  U5        U$ U" X£XVXØU	5      $ )zÍForward or backward nd DCT/DST

Parameters
----------
forward : bool
    Transform direction (determines type and normalisation)
transform : {pypocketfft.dct, pypocketfft.dst}
    The transform to perform
r   r   r   N)r   r   r   Úlenr   r
   r   r   r   r   r   r   )r   r   r   r   ÚsÚaxesr   r   r   r   r    r   r!   r"   s                 r#   Ú_r2rnr.   ;   sñ   € ô �A‹,€Cä)¨#°$Ó7�K€EØ×4¤¨SÓ!4€Kä
ˆ4ƒy�Aƒ~Øˆä˜S¨Ó.�K€CØ×' €KæØ�1‹9Ø‰DØ�Q‹YØˆDä˜$Ó(€DÜ�wÓ€GÞ‰3 4€Cô 
‡‚�q×ÑØ$'¡KŒb�mŠm˜CÔ °SˆÙ�#—(‘(˜D¨¯h©h¸Ô@Ù�#—(‘(˜D¨¯h©h¸Ô@Øˆ
á�S ¨C¸-ÓHÐHr%   ÚdctnÚidctnÚdstnÚidstn)r   NéÿÿÿÿNFNN)r   NNNFNN)Únumpyr   Ú r   ÚpfftÚhelperr   r   r   r   r	   r
   r   Ú	functoolsr$   Úpartialr&   Ú__name__r'   r(   r)   r.   r/   r0   r1   r2   © r%   r#   Ú<module>r<      s=  ðÛ Ý !÷J÷ Jñ Jã ð ?CØ8<ô%LðP ×Ò˜˜d D§H¡HÓ-€Ø€„Ø×Ò˜˜u d§h¡hÓ/€Ø€„à×Ò˜˜d D§H¡HÓ-€Ø€„Ø×Ò˜˜u d§h¡hÓ/€Ø€„ð BFØ9=ô'IðT ×Ò˜  d§h¡hÓ/€Ø€„Ø×Ò˜% ¨¯©Ó1€Ø€„à×Ò˜  d§h¡hÓ/€Ø€„Ø×Ò˜% ¨¯©Ó1€Ø€…r%   