Ë
    7^(hu  ã                   óª   — d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZ d dl	m
Z
mZmZmZ  ed«      Z ed«      ZddgZdd	„Zd
„ Z ed«      d„ «       Zy)é    N)Úimport_module)ÚskipÚskip_under_pyodide)Úcompile_link_import_py_extÚcompile_link_import_stringsÚcompile_sourcesÚget_abspathÚnumpyÚcython)z	sigmoid.cz÷
#include <math.h>

void sigmoid(int n, const double * const restrict in,
             double * const restrict out, double lim){
    for (int i=0; i<n; ++i){
        const double x = in[i];
        out[i] = x*pow(pow(x/lim, 8)+1, -1./8.);
    }
}
)z_sigmoid.pyxaw  
import numpy as np
cimport numpy as cnp

cdef extern void c_sigmoid "sigmoid" (int, const double * const,
                                      double * const, double)

def sigmoid(double [:] inp, double lim=350.0):
    cdef cnp.ndarray[cnp.float64_t, ndim=1] out = np.empty(
        inp.size, dtype=np.float64)
    c_sigmoid(inp.size, &inp[0], &out[0], lim)
    return out
c                 ó$   — | | |z  dz  dz   dz  z  S )Né   é   g      À?© )ÚdataÚlims     úq/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/utilities/_compilation/tests/test_compilation.pyÚnpyr   )   s   € Ø�$�s‘(˜Q‘˜q‘ DÑ)Ñ)Ð)ó    c                  ó  — t         st        d«       t        st        d«       ddlm}   | «       st        d«       dt         j                  «       gdœ}d }	 t        t        |¬«      \  }}t         j                  j                  d	«      }|j                  |«      }t        |«      }t         j                  ||«      sJ ‚	 |r|d
   rt        j                  |d
   «       y y y # |r|d
   rt        j                  |d
   «       w w w xY w)Nznumpy not installed.zcython not installed.r   ©Úhas_cúNo C compiler found.Úc99)ÚstdÚinclude_dirs)Úcompile_kwargsi  € Ú	build_dir)r
   r   r   Úsympy.utilities._compilationr   Úget_includer   Ú	_sources1ÚrandomÚsigmoidr   ÚallcloseÚshutilÚrmtree)r   Ú
compile_kwÚinfoÚmodr   Úres_modÚres_npys          r   Ú test_compile_link_import_stringsr+   -   sß   € ÝÜÐ#Ô$ÝÜÐ$Ô%å2ÙŒ7ÜÐ#Ô$à´×1BÑ1BÓ1DÐ0EÑF€JØ€Dð-Ü/´	È*ÔU‰	ˆˆTÜ�|‰|×"Ñ" ;Ó/ˆØ—+‘+˜dÓ#ˆÜ�d“)ˆÜ�~‰~˜g wÔ/Ð/Ñ/á�D˜Ò%Ü�M‰M˜$˜{Ñ+Õ,ð &ˆ4ø‰4�D˜Ò%Ü�M‰M˜$˜{Ñ+Õ,ð &ˆ4ús   ÁA'C  Ã #Dz(Emscripten does not support subprocessesc                  ó2  — t        j                  «       } ddlm}  |«       st	        d«       t        | «      }t        j                  d|¬«      \  }}t        |d«      5 }|j                  d«       d d d «       t        |g|¬«      \  }t        ||¬«      }t        j                  j                  |«      sJ ‚	 t        j                  d	d
g«      }t        j                  d	|g«      }	d|	j!                  d«      v sJ ‚t$        sy t        j                  d|¬«      \  }}
t        |
d«      5 }|j                  d«       d d d «       t'        |
g|g|¬«      }|j)                  d«      dk(  sJ ‚y # 1 sw Y   ŒùxY w# t        j"                  $ r Y Œ�w xY w# 1 sw Y   ŒUxY w)Nr   r   r   z.c)ÚdirÚwtzH
        int foo(int bar) {
            return 2*bar;
        }
        )ÚcwdÚnmz--helpÚfoozutf-8z.pyxz;cdef extern int foo(int)
def _foo(arg):
    return foo(arg))Ú
extra_objsr   é   é*   )ÚtempfileÚmkdtempr   r   r   ÚstrÚmkstempÚopenÚwriter   r	   ÚosÚpathÚexistsÚ
subprocessÚcheck_outputÚdecodeÚCalledProcessErrorr   r   Ú_foo)Útmpdirr   r   Ú_handleÚ	file_pathÚofhÚobjÚobj_pathÚ_Únm_outÚpyx_pathr(   s               r   Útest_compile_sourcesrL   D   s‚  € ä×ÑÓ€Få2ÙŒ7ÜÐ#Ô$ä�F“€IÜ!×)Ñ)¨$°IÔ>Ñ€GˆYÜ	ˆi˜Ó	ð  #Ø�	‰	ð ô 	÷ô ˜I˜;¨IÔ6�D€CÜ˜3 IÔ.€HÜ�7‰7�>‰>˜(Ô#Ð#Ð#ð/Ü×#Ñ# T¨8Ð$4Ó5ˆô ×(Ñ(¨$°Ð)9Ó:ˆØ˜Ÿ™ gÓ.Ñ.Ð.Ð.åØä ×(Ñ(¨°YÔ?Ñ€GˆXÜ	ˆh˜Ó	ð + Ø�	‰	ð )ô 	+÷+ô % h Z¸X¸JÐR[Ô
\€CØ�8‰8�B‹<˜2ÒÐÑ÷5ð ûô ×(Ñ(ò Ùðú÷+ð +ús*   ÁE(Â7E4 Ä'FÅ(E1Å4F
Æ	F
ÆF)g     àu@)r$   r;   r>   r5   Úsympy.externalr   Úsympy.testing.pytestr   r   Ú(sympy.utilities._compilation.compilationr   r   r   r	   r
   r   r    r   r+   rL   r   r   r   ú<module>rP      sm   ðÛ Û 	Û Û Ý (ß 9÷ Kó  Ká�gÓ€Ù	�xÓ	 €ð
ðð€	ó8*ò-ñ. Ð>Ó?ñ#ó @ñ#r   