Changeset 5efe850 in sasmodels
- Timestamp:
- May 20, 2016 12:53:41 PM (9 years ago)
- Branches:
- master, core_shell_microgels, costrafo411, magnetic_model, release_v0.94, release_v0.95, ticket-1257-vesicle-product, ticket_1156, ticket_1265_superball, ticket_822_more_unit_tests
- Children:
- c98c772, 4bfbca2
- Parents:
- 33af590
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
sascomp
ra78bebc r5efe850 4 4 import os 5 5 import glob 6 import logging 7 logging.basicConfig(level=logging.INFO) 6 8 7 9 def main(): … … 11 13 sys.path.insert(0, os.path.join(root, 'bumps')) 12 14 sys.path.insert(0, os.path.join(root, 'periodictable')) 15 sys.path.insert(0, os.path.join(root, 'tinycc')) 13 16 if sasview: # glob returns a list 14 17 sys.path.insert(0, sasview[0]) -
sasmodels/kernel_template.c
r3832f27 r5efe850 12 12 // Note: if using a C++ compiler, then define kernel as extern "C" 13 13 #ifndef USE_OPENCL 14 // Use SAS_DOUBLE to force the use of double even for float kernels 15 # define SAS_DOUBLE dou ## ble 14 16 # ifdef __cplusplus 15 17 #include <cstdio> … … 38 40 #if defined(__TINYC__) 39 41 #include <math.h> 40 inline double trunc(double x) { return x>=0?floor(x):-floor(-x); }41 inline double fmin(double x, double y) { return x>y ? y : x; }42 inline double fmax(double x, double y) { return x<y ? y : x; }43 42 // TODO: test isnan 44 43 inline double _isnan(double x) { return x != x; } // hope this doesn't optimize away! 45 44 #undef isnan 46 45 #define isnan(x) _isnan(x) 46 // Defeat the double->float conversion since we don't have tgmath 47 inline SAS_DOUBLE trunc(SAS_DOUBLE x) { return x>=0?floor(x):-floor(-x); } 48 inline SAS_DOUBLE fmin(SAS_DOUBLE x, SAS_DOUBLE y) { return x>y ? y : x; } 49 inline SAS_DOUBLE fmax(SAS_DOUBLE x, SAS_DOUBLE y) { return x<y ? y : x; } 47 50 #define NEED_EXPM1 48 51 #define NEED_TGAMMA … … 70 73 71 74 #if defined(NEED_EXPM1) 72 static double expm1(double x) { 75 static SAS_DOUBLE expm1(SAS_DOUBLE x_in) { 76 double x = (double)x_in; // go back to float for single precision kernels 73 77 // Adapted from the cephes math library. 74 78 // Copyright 1984 - 1992 by Stephen L. Moshier -
sasmodels/kerneldll.py
r821a9c6 r5efe850 60 60 from .exception import annotate_exception 61 61 62 # Compiler platform details 63 if sys.platform == 'darwin': 64 #COMPILE = "gcc-mp-4.7 -shared -fPIC -std=c99 -fopenmp -O2 -Wall %s -o %s -lm -lgomp" 65 COMPILE = "gcc -shared -fPIC -std=c99 -O2 -Wall %(source)s -o %(output)s -lm" 66 elif os.name == 'nt': 62 if os.name == 'nt': 63 # Windows compiler; check if TinyCC is available 64 try: 65 from tinycc import TCC 66 except ImportError: 67 TCC = None 67 68 # call vcvarsall.bat before compiling to set path, headers, libs, etc. 68 69 if "VCINSTALLDIR" in os.environ: … … 73 74 # TODO: remove intermediate OBJ file created in the directory 74 75 # TODO: maybe don't use randomized name for the c file 76 # TODO: maybe ask distutils to find MSVC 75 77 CC = "cl /nologo /Ox /MD /W3 /GS- /DNDEBUG /Tp%(source)s " 76 78 LN = "/link /DLL /INCREMENTAL:NO /MANIFEST /OUT:%(output)s" … … 79 81 else: 80 82 COMPILE = " ".join((CC, LN)) 81 elif True: 82 # If MSVC compiler is not available, try using mingw 83 # fPIC is not needed on windows 83 elif TCC: 84 # TinyCC compiler. 85 COMPILE = TCC + " -shared -rdynamic -Wall %(source)s -o %(output)s" 86 else: 87 # MinGW compiler. 84 88 COMPILE = "gcc -shared -std=c99 -O2 -Wall %(source)s -o %(output)s -lm" 85 89 if "SAS_OPENMP" in os.environ: 86 COMPILE = COMPILE + " -fopenmp" 87 else: 88 # If MSVC compiler is not available, try using tinycc 89 from tinycc import TCC 90 COMPILE = TCC + " -shared -rdynamic -Wall %(source)s -o %(output)s" 90 COMPILE += " -fopenmp" 91 91 else: 92 COMPILE = "cc -shared -fPIC -fopenmp -std=c99 -O2 -Wall %(source)s -o %(output)s -lm" 92 # Generic unix compile 93 # On mac users will need the X code command line tools installed 94 COMPILE = "cc -shared -fPIC -std=c99 -O2 -Wall %(source)s -o %(output)s -lm" 95 96 # add openmp support if not running on a mac 97 if sys.platform != 'darwin': 98 #COMPILE = "gcc-mp-4.7 -shared -fPIC -std=c99 -fopenmp -O2 -Wall %s -o %s -lm -lgomp" 99 COMPILE += " -fopenmp" 93 100 94 101 # Windows-specific solution
Note: See TracChangeset
for help on using the changeset viewer.