o 6a* @sddlZddlZddlmZddlZddlZddlmZm Z m Z m Z m Z m Z mZddlmZddlmZeddpEeddoEed dZejd oMeZejje d d ZdddZeeZgdZGdddZdS)N)path) c_longlongc_doublec_floatc_intcastpointerPOINTER)assert_array_max_ulp)__cpu_features__AVX512FFFMA3AVX2linuxz;avoid testing inconsistent platform library implementations)reason np.float32cCsVt|d}|dkrtt|}t|tt}|jj Stt|}t|tt}|jj S)Nz np.float64) intrrrr rrrcontentsvalue)sdatatypeicpfprF/usr/lib/python3/dist-packages/numpy/core/tests/test_umath_accuracy.pyconverts   r)zumath-validation-set-exp.csvzumath-validation-set-log.csvzumath-validation-set-sin.csvzumath-validation-set-cos.csvc@seZdZeddZdS) TestAccuracyc CstjddtD]}tttd}t||}t|}dd|D}tj|dddt fddd d }t |d  d d }t t|}t |dD]T} ||d| k} tjt| dt| dtt| d} tjt| dt| dtt| d} tjt| } | | } | | } | d}t|| | |qLWdn1swYq WddS1swYdS)Nignore)alldatacss |] }|ddvr|VqdS)r)$#Nr).0rrrr ,sz=TestAccuracy.test_validate_transcendentals..z|S39)typeinputoutputulperr,)dtypenames delimiter skip_headerr-r'r()r-r)r*)nperrstatefilesrjoindirname__file__open genfromtxtrsplitextsplitgetattruniquearray str_to_floatastypestrevalrandom permutationlenmaxr )selffilenamedata_dirfilepathfidfile_without_commentsr!npnamenpfuncr data_subsetinvaloutvalperm maxulperrrrrtest_validate_transcendentals%s8    ,, "z*TestAccuracy.test_validate_transcendentalsN)__name__ __module__ __qualname__ platform_skiprUrrrrr$sr)r)numpyr3platformosrsyspytestctypesrrrrrrr numpy.testingr numpy.core._multiarray_umathr getIS_AVX startswithruntestmarkskipifrYr vectorizer@r5rrrrrs& $