U C^Y@sdZddlmZmZmZdgZddlZddlZddlZddl Z ej ddkrZddl m Z n ddl m Z ddlZddlZddlmZd$d d Zd%d d Zd&ddZd'ddZGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZejdreZnfejdr2eZnRejd krDeZn@ejd!rXeZn,ejd"rleZnejd#reZneZeZdS)(aa cpuinfo Copyright 2002 Pearu Peterson all rights reserved, Pearu Peterson Permission to use, modify, and distribute this software is given under the terms of the NumPy (BSD style) license. See LICENSE.txt that came with this distribution for specifics. NO WARRANTY IS EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. Pearu Peterson )divisionabsolute_importprint_functioncpuN)getstatusoutput) get_exceptionrcCsjzt|\}}Wn0tk r@t}tjt|t|dYdSXt|rbt ||krbd|fSd|fS)N stacklevel)FTF) rEnvironmentErrorrwarningswarnstr UserWarningos WIFEXITED WEXITSTATUS)cmdsuccessful_statusr statusoutputer:/tmp/pip-install-6_kvzl1k/numpy/numpy/distutils/cpuinfo.py getoutput srcKs<i}|D].}t||||dd\}}|r|||<q|SNr rr )rstrip)rr kwinfokeyokrrrr command_info+s  r%ccs:t|||dd\}}|sdS|D]}|Vq&dSr)r splitlinesr )rrr r$rlinerrrcommand_by_line4s  r(cCsRi}t|||ddD]6}dd||dD}t|dkr|d||d<q|S)Nr rcSsg|] }|qSrr .0srrr Asz*key_value_from_command..r)r(splitlen)rseprr dr'lrrrkey_value_from_command<s  r4c@s@eZdZdZddZddZddZdd Zd d Zd d Z dS) CPUInfoBasezkHolds CPU information and provides methods for requiring the availability of various CPU features. cCs"z|WStk rYnXdSN) Exception)selffuncrrr _try_callKszCPUInfoBase._try_callcCsX|dsLt|d|rDt|d|}t|tjrL|j|fddSnddSt|dS)N_cSs||Sr6r)r9attrrrrVz)CPUInfoBase.__getattr__..cSsdSr6rrrrrr=Xr>) startswithhasattrgetattr isinstancetypes MethodTyper:AttributeError)r8namer<rrr __getattr__Qs  zCPUInfoBase.__getattr__cCsdSNr rr8rrr _getNCPUs[szCPUInfoBase._getNCPUscCs&td}td|d}|S)Nrz(\d+)bitr )platform architecturerecompilesearchgroup)r8ZabitsnbitsrrrZ __get_nbits^s zCPUInfoBase.__get_nbitscCs |dkS)NZ32_CPUInfoBase__get_nbitsrIrrr _is_32bitcszCPUInfoBase._is_32bitcCs |dkS)NZ64rRrIrrr _is_64bitfszCPUInfoBase._is_64bitN) __name__ __module__ __qualname____doc__r:rGrJrSrTrUrrrrr5Fs r5c@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd d!Zd"d#Zd$d%ZeZd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9Z d:d;Z!dd?Z#d@dAZ$dBdCZ%dDdEZ&dFdGZ'e'Z(dHdIZ)dJdKZ*dLdMZ+dNdOZ,dPdQZ-dRdSZ.dTdUZ/dVdWZ0dXdYZ1dZd[Z2d\d]Z3dS)^ LinuxCPUInfoNc Cs|jdk rdSig}td\}}|r4||dd<z td}Wn.tk rnt}tjt|t ddYnfX|D]V}dd| d d D}t |dkrqt|\}} |r||d kr| i| |d |<qt| ||j_dS) Nzuname -mrZuname_mz /proc/cpuinfor.r cSsg|] }|qSrr)r*rrrr-{sz)LinuxCPUInfo.__init__..:r )r"rr openrrrrrrr/r0appendclose __class__) r8r"r$rforr' name_valuerFvaluerrr__init__ms*     zLinuxCPUInfo.__init__cCsdSr6rrIrrr _not_implr>zLinuxCPUInfo._not_implcCs|jdddkS)Nr vendor_id AuthenticAMDr"rIrrr_is_AMDszLinuxCPUInfo._is_AMDcCs|o|jdddkS)Nrmodel2rir"rIrrr_is_AthlonK6_2szLinuxCPUInfo._is_AthlonK6_2cCs|o|jdddkS)Nrrj3rlrIrrr_is_AthlonK6_3szLinuxCPUInfo._is_AthlonK6_3cCstd|jdddk S)Nz .*?AMD-K6r model namerMmatchr"rIrrr _is_AthlonK6szLinuxCPUInfo._is_AthlonK6cCstd|jdddk S)Nz .*?AMD-K7rrprqrIrrr _is_AthlonK7szLinuxCPUInfo._is_AthlonK7cCstd|jdddk S)Nz.*?Athlon\(tm\) MP\brrprqrIrrr _is_AthlonMPs  zLinuxCPUInfo._is_AthlonMPcCs|o|jdddkS)Nrfamily15is_AMDr"rIrrr _is_AMD64szLinuxCPUInfo._is_AMD64cCstd|jdddk S)Nz.*?Athlon\(tm\) 64\brrprqrIrrr _is_Athlon64s  zLinuxCPUInfo._is_Athlon64cCstd|jdddk S)Nz.*?Athlon HX\brrprqrIrrr _is_AthlonHXs  zLinuxCPUInfo._is_AthlonHXcCstd|jdddk S)Nz .*?Opteron\brrprqrIrrr _is_Opterons  zLinuxCPUInfo._is_OpteroncCstd|jdddk S)Nz .*?Hammer\brrprqrIrrr _is_Hammers  zLinuxCPUInfo._is_HammercCs|jdddkS)NrrAlpharhrIrrr _is_AlphaszLinuxCPUInfo._is_AlphacCs|o|jdddkS)Nr cpu modelZEV4Zis_Alphar"rIrrr_is_EV4szLinuxCPUInfo._is_EV4cCs|o|jdddkS)NrrZEV5rrIrrr_is_EV5szLinuxCPUInfo._is_EV5cCs|o|jdddkS)NrrZEV56rrIrrr_is_EV56szLinuxCPUInfo._is_EV56cCs|o|jdddkS)NrrZPCA56rrIrrr _is_PCA56szLinuxCPUInfo._is_PCA56cCs|jdddkS)Nrrf GenuineIntelrhrIrrr _is_IntelszLinuxCPUInfo._is_IntelcCs|jdddkS)NrrZi486rhrIrrr_is_i486szLinuxCPUInfo._is_i486cCs|o|jdddkS)Nr cpu family5is_Intelr"rIrrr_is_i586szLinuxCPUInfo._is_i586cCs|o|jdddkS)Nrr6rrIrrr_is_i686szLinuxCPUInfo._is_i686cCstd|jdddk S)Nz .*?CeleronrrprqrIrrr _is_Celerons  zLinuxCPUInfo._is_CeleroncCstd|jdddk S)Nz .*?PentiumrrprqrIrrr _is_Pentiums  zLinuxCPUInfo._is_PentiumcCstd|jdddk S)Nz.*?Pentium.*?II\brrprqrIrrr _is_PentiumIIs  zLinuxCPUInfo._is_PentiumIIcCstd|jdddk S)Nz.*?PentiumPro\brrprqrIrrr_is_PentiumPros  zLinuxCPUInfo._is_PentiumProcCstd|jdddk S)Nz.*?Pentium.*?MMX\brrprqrIrrr_is_PentiumMMXs  zLinuxCPUInfo._is_PentiumMMXcCstd|jdddk S)Nz.*?Pentium.*?III\brrprqrIrrr_is_PentiumIIIs  zLinuxCPUInfo._is_PentiumIIIcCstd|jdddk S)Nz.*?Pentium.*?(IV|4)\brrprqrIrrr _is_PentiumIVs  zLinuxCPUInfo._is_PentiumIVcCstd|jdddk S)Nz.*?Pentium.*?M\brrprqrIrrr _is_PentiumMs  zLinuxCPUInfo._is_PentiumMcCs|o|Sr6)Z is_PentiumIVhas_sse3rIrrr _is_PrescottszLinuxCPUInfo._is_PrescottcCsX|oV|jdddks,|jdddkoV|oV| oVtd|jdddk S)Nrrrrwz .*?\blm\bflags)rr"rZ has_ssse3rMrrrIrrr _is_NoconaszLinuxCPUInfo._is_NoconacCs*|o(|o(td|jdddk S)Nz.*?Core\(TM\)2\brrp)Zis_64bitrrMrrr"rIrrr _is_Core2s zLinuxCPUInfo._is_Core2cCstd|jdddk S)Nz .*?Itanium\brrvrqrIrrr _is_Itaniums  zLinuxCPUInfo._is_ItaniumcCstd|jddtjdk S)Nz .*?XEON\brrp)rMrrr" IGNORECASErIrrr_is_XEONs  zLinuxCPUInfo._is_XEONcCst|jdkSrHr0r"rIrrr _is_singleCPU szLinuxCPUInfo._is_singleCPUcCs t|jSr6rrIrrrrJszLinuxCPUInfo._getNCPUscCs|jdddkS)NrZfdiv_bugyesrhrIrrr _has_fdiv_bugszLinuxCPUInfo._has_fdiv_bugcCs|jdddkS)NrZf00f_bugrrhrIrrr _has_f00f_bugszLinuxCPUInfo._has_f00f_bugcCstd|jdddk S)Nz .*?\bmmx\brrrqrIrrr_has_mmxszLinuxCPUInfo._has_mmxcCstd|jdddk S)Nz .*?\bsse\brrrqrIrrr_has_sseszLinuxCPUInfo._has_ssecCstd|jdddk S)Nz .*?\bsse2\brrrqrIrrr _has_sse2szLinuxCPUInfo._has_sse2cCstd|jdddk S)Nz .*?\bpni\brrrqrIrrr _has_sse3!szLinuxCPUInfo._has_sse3cCstd|jdddk S)Nz .*?\bssse3\brrrqrIrrr _has_ssse3$szLinuxCPUInfo._has_ssse3cCstd|jdddk S)Nz .*?\b3dnow\brrrqrIrrr _has_3dnow'szLinuxCPUInfo._has_3dnowcCstd|jdddk S)Nz.*?\b3dnowext\brrrqrIrrr _has_3dnowext*szLinuxCPUInfo._has_3dnowext)4rVrWrXr"rdrerirmrorsrtrurzr{r|r}r~rrrrr_is_i386rrrrrrrrrrrrrrrrrZ_is_XeonrrJrrrrrrrrrrrrrrZisbrZc@s8eZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9Zd:d;Z dd?Z"d@dAZ#dBdCZ$dDdEZ%dFdGZ&dHdIZ'dJdKZ(dS)L IRIXCPUInfoNcCs(|jdk rdStdddd}||j_dS)Nsysconf )rr )r1r)r"r4r`r8r"rrrrd0s  zIRIXCPUInfo.__init__cCsdSr6rrIrrrre7r>zIRIXCPUInfo._not_implcCs|jddkS)NNUM_PROCESSORS1)r"getrIrrrr9szIRIXCPUInfo._is_singleCPUcCst|jddS)Nrr intr"rrIrrrrJ<szIRIXCPUInfo._getNCPUscCs |jddd|kS)NZ PROCESSORSrzr%s)r"rr/lowerr8nrrrZ __cputype?szIRIXCPUInfo.__cputypecCs |dS)Ni_IRIXCPUInfo__cputyperIrrr _is_r2000Ar>zIRIXCPUInfo._is_r2000cCs |dS)Ni rrIrrr _is_r3000Br>zIRIXCPUInfo._is_r3000cCs |dS)Ni<rrIrrr _is_r3900Cr>zIRIXCPUInfo._is_r3900cCs |dS)NirrIrrr _is_r4000Dr>zIRIXCPUInfo._is_r4000cCs |dS)NirrIrrr _is_r4100Er>zIRIXCPUInfo._is_r4100cCs |dS)NirrIrrr _is_r4300Fr>zIRIXCPUInfo._is_r4300cCs |dS)Ni0rrIrrr _is_r4400Gr>zIRIXCPUInfo._is_r4400cCs |dS)NirrIrrr _is_r4600Hr>zIRIXCPUInfo._is_r4600cCs |dS)Ni*rrIrrr _is_r4650Ir>zIRIXCPUInfo._is_r4650cCs |dS)NirrIrrr _is_r5000Jr>zIRIXCPUInfo._is_r5000cCs |dS)NiprrIrrr _is_r6000Kr>zIRIXCPUInfo._is_r6000cCs |dS)Ni@rrIrrr _is_r8000Lr>zIRIXCPUInfo._is_r8000cCs |dS)Ni'rrIrrr _is_r10000Mr>zIRIXCPUInfo._is_r10000cCs |dS)Ni.rrIrrr _is_r12000Nr>zIRIXCPUInfo._is_r12000cCs |dS)NZorionrrIrrr _is_rorionOr>zIRIXCPUInfo._is_rorioncCs(z|jdWStk r"YnXdS)NMACHINE)r"rr7rIrrrget_ipQszIRIXCPUInfo.get_ipcCs|jdd|kS)Nrzip%s)r"rrrrrr __machineTszIRIXCPUInfo.__machinecCs |dS)N_IRIXCPUInfo__machinerIrrr_is_IP19Vr>zIRIXCPUInfo._is_IP19cCs |dS)NrrIrrr_is_IP20Wr>zIRIXCPUInfo._is_IP20cCs |dS)NrrIrrr_is_IP21Xr>zIRIXCPUInfo._is_IP21cCs |dSNrrIrrr_is_IP22Yr>zIRIXCPUInfo._is_IP22cCs|do|Sr)rrrIrrr _is_IP22_4kZr>zIRIXCPUInfo._is_IP22_4kcCs|do|SrrrrIrrr _is_IP22_5k[r>zIRIXCPUInfo._is_IP22_5kcCs |dS)NrrIrrr_is_IP24\r>zIRIXCPUInfo._is_IP24cCs |dS)NrrIrrr_is_IP25]r>zIRIXCPUInfo._is_IP25cCs |dS)NrrIrrr_is_IP26^r>zIRIXCPUInfo._is_IP26cCs |dS)NrrIrrr_is_IP27_r>zIRIXCPUInfo._is_IP27cCs |dS)NrrIrrr_is_IP28`r>zIRIXCPUInfo._is_IP28cCs |dS)NrrIrrr_is_IP30ar>zIRIXCPUInfo._is_IP30cCs |dSN rrIrrr_is_IP32br>zIRIXCPUInfo._is_IP32cCs|do|SrrrIrrr _is_IP32_5kcr>zIRIXCPUInfo._is_IP32_5kcCs|do|Sr)rrrIrrr _is_IP32_10kdr>zIRIXCPUInfo._is_IP32_10k))rVrWrXr"rdrerrJrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr-sLrc@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3ZdS)4 DarwinCPUInfoNcCs6|jdk rdStddd}tddd|d<||j_dS)Narchmachine)rrz sysctl hw=r1 sysctl_hw)r"r%r4r`rrrrrdjs zDarwinCPUInfo.__init__cCsdSr6rrIrrrrerr>zDarwinCPUInfo._not_implcCst|jdddS)Nrzhw.ncpur rrIrrrrJtszDarwinCPUInfo._getNCPUscCs|jdddkS)Nrz hw.machinezPower MacintoshrhrIrrr_is_Power_Macintoshwsz!DarwinCPUInfo._is_Power_MacintoshcCs|jddkS)Nri386rhrIrrrrzszDarwinCPUInfo._is_i386cCs|jddkS)NrppcrhrIrrr_is_ppc|szDarwinCPUInfo._is_ppccCs|jdd|kS)Nrzppc%srhrrrrrszDarwinCPUInfo.__machinecCs |dS)NiY_DarwinCPUInfo__machinerIrrr _is_ppc601r>zDarwinCPUInfo._is_ppc601cCs |dS)NiZrrIrrr _is_ppc602r>zDarwinCPUInfo._is_ppc602cCs |dS)Ni[rrIrrr _is_ppc603r>zDarwinCPUInfo._is_ppc603cCs |dS)NZ603errIrrr _is_ppc603er>zDarwinCPUInfo._is_ppc603ecCs |dS)Ni\rrIrrr _is_ppc604r>zDarwinCPUInfo._is_ppc604cCs |dS)NZ604errIrrr _is_ppc604er>zDarwinCPUInfo._is_ppc604ecCs |dS)NilrrIrrr _is_ppc620r>zDarwinCPUInfo._is_ppc620cCs |dS)NivrrIrrr _is_ppc630r>zDarwinCPUInfo._is_ppc630cCs |dS)NirrIrrr _is_ppc740r>zDarwinCPUInfo._is_ppc740cCs |dS)NirrIrrr _is_ppc7400r>zDarwinCPUInfo._is_ppc7400cCs |dS)NirrIrrr _is_ppc7450r>zDarwinCPUInfo._is_ppc7450cCs |dS)NirrIrrr _is_ppc750r>zDarwinCPUInfo._is_ppc750cCs |dS)NirrIrrr _is_ppc403r>zDarwinCPUInfo._is_ppc403cCs |dS)NirrIrrr _is_ppc505r>zDarwinCPUInfo._is_ppc505cCs |dS)Ni!rrIrrr _is_ppc801r>zDarwinCPUInfo._is_ppc801cCs |dS)Ni5rrIrrr _is_ppc821r>zDarwinCPUInfo._is_ppc821cCs |dS)Ni7rrIrrr _is_ppc823r>zDarwinCPUInfo._is_ppc823cCs |dS)Ni\rrIrrr _is_ppc860r>zDarwinCPUInfo._is_ppc860)rVrWrXr"rdrerJrrrrrrrrrrrrrrrrrrrrr r rrrrrgs4rc@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3ZdS)4 SunOSCPUInfoNcCsl|jdk rdStdddddd}tddd |d <td D]&}td |}|r8|d |d<q`q8||j_dS)Nrmachuname_iz isainfo -bz isainfo -n)rr r Z isainfo_b isainfo_nzuname -Xrruname_Xz psrinfo -v 0z+\s*The (?P

[\w\d]+) processor operates atp processor)r"r%r4r(rMrrrPr`)r8r"r'mrrrrds   zSunOSCPUInfo.__init__cCsdSr6rrIrrrrer>zSunOSCPUInfo._not_implcCs|jddkS)NrrrhrIrrrrszSunOSCPUInfo._is_i386cCs|jddkS)NrZsparcrhrIrrr _is_sparcszSunOSCPUInfo._is_sparccCs|jddkS)Nrsparcv9rhrIrrr _is_sparcv9szSunOSCPUInfo._is_sparcv9cCst|jdddS)NrZNumCPUr rrIrrrrJszSunOSCPUInfo._getNCPUscCs|jddkS)NrZsun4rhrIrrr_is_sun4szSunOSCPUInfo._is_sun4cCstd|jddk S)NZSUNWr rqrIrrr_is_SUNWszSunOSCPUInfo._is_SUNWcCstd|jddk S)Nz.*SPARCstation-5r rqrIrrr_is_sparcstation5szSunOSCPUInfo._is_sparcstation5cCstd|jddk S)Nz .*Ultra-1r rqrIrrr _is_ultra1szSunOSCPUInfo._is_ultra1cCstd|jddk S)Nz .*Ultra-250r rqrIrrr _is_ultra250szSunOSCPUInfo._is_ultra250cCstd|jddk S)Nz .*Ultra-2r rqrIrrr _is_ultra2szSunOSCPUInfo._is_ultra2cCstd|jddk S)Nz .*Ultra-30r rqrIrrr _is_ultra30szSunOSCPUInfo._is_ultra30cCstd|jddk S)Nz .*Ultra-4r rqrIrrr _is_ultra4szSunOSCPUInfo._is_ultra4cCstd|jddk S)Nz .*Ultra-5_10r rqrIrrr _is_ultra5_10szSunOSCPUInfo._is_ultra5_10cCstd|jddk S)Nz .*Ultra-5r rqrIrrr _is_ultra5szSunOSCPUInfo._is_ultra5cCstd|jddk S)Nz .*Ultra-60r rqrIrrr _is_ultra60szSunOSCPUInfo._is_ultra60cCstd|jddk S)Nz .*Ultra-80r rqrIrrr _is_ultra80szSunOSCPUInfo._is_ultra80cCstd|jddk S)Nz.*Ultra-Enterpriser rqrIrrr_is_ultraenterpricesz SunOSCPUInfo._is_ultraenterpricecCstd|jddk S)Nz.*Ultra-Enterprise-10000r rqrIrrr_is_ultraenterprice10ksz#SunOSCPUInfo._is_ultraenterprice10kcCstd|jddk S)Nz .*Sun-Firer rqrIrrr _is_sunfireszSunOSCPUInfo._is_sunfirecCstd|jddk S)Nz.*Ultrar rqrIrrr _is_ultraszSunOSCPUInfo._is_ultracCs|jddkS)NrZsparcv7rhrIrrr_is_cpusparcv7szSunOSCPUInfo._is_cpusparcv7cCs|jddkS)NrZsparcv8rhrIrrr_is_cpusparcv8szSunOSCPUInfo._is_cpusparcv8cCs|jddkS)NrrrhrIrrr_is_cpusparcv9szSunOSCPUInfo._is_cpusparcv9)rVrWrXr"rdrerrrrJrrrrrrrrrrr r!r"r#r$r%r&r'r(rrrrr s4r c@s eZdZdZdZddZddZddZd d Zd d Z d dZ ddZ ddZ ddZ ddZddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:Z d;d<Z!d=d>Z"d?d@Z#dS)A Win32CPUInfoNz,HARDWARE\DESCRIPTION\System\CentralProcessorc Cs|jdk rdSg}z\d+)\s+model\s+(?P\d+)\s+stepping\s+(?P\d+)r Z Processorr\Z IdentifierZFMLFamilyZMDLModelZSTPZSteppingz (ignoring))r"sys version_infowinreg_winregrMrNrOpenKeyHKEY_LOCAL_MACHINEpkeyEnumKeyerrorr^Z EnumValuerOrrPr7printexc_infor`) r8r"r.ZprgxZchndZpnumprocZphndZpidxrFrcZvtpeZsrchrrrrdsF       zWin32CPUInfo.__init__cCsdSr6rrIrrrrer>zWin32CPUInfo._not_implcCs|jdddkS)NrVendorIdentifierrgrhrIrrrriszWin32CPUInfo._is_AMDcCs|o|jdddkSNrr*rxrIrrr _is_Am486szWin32CPUInfo._is_Am486cCs|o|jdddkSr9rxrIrrr _is_Am5x86szWin32CPUInfo._is_Am5x86cCs,|o*|jdddko*|jdddkS)Nrr*r+)rr r.rrxrIrrr _is_AMDK5szWin32CPUInfo._is_AMDK5cCs,|o*|jdddko*|jdddkS)Nrr*r=r+)rxrIrrr _is_AMDK6#szWin32CPUInfo._is_AMDK6cCs,|o*|jdddko*|jdddkS)Nrr*r=r+rxrIrrr _is_AMDK6_2'szWin32CPUInfo._is_AMDK6_2cCs,|o*|jdddko*|jdddkS)Nrr*r=r+ rxrIrrr _is_AMDK6_3+szWin32CPUInfo._is_AMDK6_3cCs|o|jdddkSNrr*r?rxrIrrr _is_AMDK7/szWin32CPUInfo._is_AMDK7cCs|o|jdddkSNrr*rxrIrrrrz6szWin32CPUInfo._is_AMD64cCs|jdddkS)Nrr8rrhrIrrrr;szWin32CPUInfo._is_IntelcCs|jdddkS)Nrr*rrhrIrrrr>szWin32CPUInfo._is_i386cCs|jdddkSr9rhrIrrrrAszWin32CPUInfo._is_i486cCs|o|jdddkSNrr*r=rrIrrrrDszWin32CPUInfo._is_i586cCs|o|jdddkSrFrrIrrrrGszWin32CPUInfo._is_i686cCs|o|jdddkSrJrrIrrrrJszWin32CPUInfo._is_PentiumcCs,|o*|jdddko*|jdddkS)Nrr*r=r+r:rrIrrrrMszWin32CPUInfo._is_PentiumMMXcCs,|o*|jdddko*|jdddkS)Nrr*r?r+r rrIrrrrQszWin32CPUInfo._is_PentiumProcCs,|o*|jdddko*|jdddkS)Nrr*r?r+)rr=r?rrIrrrrUszWin32CPUInfo._is_PentiumIIcCs,|o*|jdddko*|jdddkS)Nrr*r?r+r@rBrD rrIrrrrYszWin32CPUInfo._is_PentiumIIIcCs|o|jdddkSrHrrIrrrr]szWin32CPUInfo._is_PentiumIVcCs,|o*|jdddko*|jdddkS)Nrr*r?r+)rD rrIrrrr`szWin32CPUInfo._is_PentiumMcCs,|o*|jdddko*|jdddkS)Nrr*r?r+)rIrrIrrrrdszWin32CPUInfo._is_Core2cCst|jdkSrHrrIrrrrjszWin32CPUInfo._is_singleCPUcCs t|jSr6rrIrrrrJmszWin32CPUInfo._getNCPUscCs`|r>|jdddkr,|jdddkp<|jdddkS|rX|jdddkSdSdS) Nrr*r=r+r:r?rIr=r?rIFrr"ryrIrrrrps$zWin32CPUInfo._has_mmxcCs|r>|jdddkr,|jdddkp<|jdddkS|r||jdddkrj|jdddkpz|jdddkSdSdS) Nrr*r?r+rKrI)r?r@rBrLFrTrIrrrryszWin32CPUInfo._has_ssecCs8|r |p|p|S|r0|SdSdS)NF)rZ is_Pentium4Z is_PentiumMZis_Core2ryZis_AMD64rIrrrrszWin32CPUInfo._has_sse2cCs|o|jdddkS)Nrr*rSrxrIrrrrszWin32CPUInfo._has_3dnowcCs|o|jdddkS)Nrr*rRrxrIrrrrszWin32CPUInfo._has_3dnowext)$rVrWrXr"r2rdrerir;r<r>rArCrErGrzrrrrrrrrrrrrrrrJrrrrrrrrrr)sB+   r)linuxZirixdarwinsunoswin32cygwin)r r )r r )r r )r r ) rY __future__rrr__all__r,rMrCrr- subprocessrcommandsrrKZnumpy.distutils.compatrrr%r(r4objectr5rZrrr r)r?ZcpuinforrrrrsL     #E:.J6