################################################################### # Numexpr - Fast numerical array expression evaluator for NumPy. # # License: MIT # Author: See AUTHORS.txt # # See LICENSE.txt and LICENSES/*.txt for details about copyright and # rights to use. #################################################################### """ Numexpr is a fast numerical expression evaluator for NumPy. With it, expressions that operate on arrays (like "3*a+4*b") are accelerated and use less memory than doing the same calculation in Python. See: http://code.google.com/p/numexpr/ for more info about it. """ from __config__ import show as show_config, get_info if get_info('mkl'): use_vml = True else: use_vml = False from cpuinfo import cpu if cpu.is_AMD() or cpu.is_Intel(): is_cpu_amd_intel = True else: is_cpu_amd_intel = False import os.path import platform from numexpr.expressions import E from numexpr.necompiler import NumExpr, disassemble, evaluate from numexpr.tests import test, print_versions from numexpr.utils import ( get_vml_version, set_vml_accuracy_mode, set_vml_num_threads, set_num_threads, detect_number_of_cores) # Initialize the number of threads to be used ncores = detect_number_of_cores() # Check that we don't surpass the MAX_THREADS in interpreter.cpp if ncores > 4096: ncores = 4096 if 'sparc' in platform.machine(): import warnings warnings.warn('The number of threads have been set to 1 because problems related ' 'to threading have been reported on some sparc machine. ' 'The number of threads can be changes using the "set_num_threads" ' 'function.') set_num_threads(1) else: set_num_threads(ncores) # The default for VML is 1 thread (see #39) set_vml_num_threads(1) import version dirname = os.path.dirname(__file__) __version__ = version.version