Changeset 5edfe12 in sasmodels for sasmodels/kerneldll.py
- Timestamp:
- Nov 24, 2015 4:13:15 PM (8 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:
- 7f7f99f
- Parents:
- 92da231
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/kerneldll.py
r92da231 r5edfe12 49 49 import tempfile 50 50 import ctypes as ct 51 from ctypes import c_void_p, c_int, c_ double, c_float51 from ctypes import c_void_p, c_int, c_longdouble, c_double, c_float 52 52 53 53 import numpy as np … … 96 96 if np.dtype(dtype) == generate.F32: 97 97 basename += "32" 98 elif np.dtype(dtype) == generate.F64: 99 basename += "64" 100 else: 101 basename += "128" 98 102 return joinpath(DLL_PATH, basename+'.so') 99 103 … … 118 122 models are allowed as DLLs. 119 123 """ 120 if not ALLOW_SINGLE_PRECISION_DLLS: dtype = "double" # Force 64-bit dll121 124 dtype = np.dtype(dtype) 125 if dtype == generate.F32 and not ALLOW_SINGLE_PRECISION_DLLS: 126 dtype = generate.F64 # Force 64-bit dll 122 127 123 128 if callable(info.get('Iq',None)): … … 127 132 source = generate.use_single(source) 128 133 tempfile_prefix = 'sas_'+info['name']+'32_' 134 elif dtype == generate.F64: 135 tempfile_prefix = 'sas_'+info['name']+'64_' 129 136 else: 130 tempfile_prefix = 'sas_'+info['name']+'_' 137 source = generate.use_long_double(source) 138 tempfile_prefix = 'sas_'+info['name']+'128_' 131 139 132 140 source_files = generate.sources(info) + [info['filename']] … … 196 204 raise 197 205 198 fp = c_float if self.dtype == generate.F32 else c_double 206 fp = (c_float if self.dtype == generate.F32 207 else c_double if self.dtype == generate.F64 208 else c_longdouble) 199 209 pd_args_1d = [c_void_p, fp] + [c_int]*Npd1d if Npd1d else [] 200 210 pd_args_2d= [c_void_p, fp] + [c_int]*Npd2d if Npd2d else [] … … 265 275 266 276 def __call__(self, fixed_pars, pd_pars, cutoff): 267 real = np.float32 if self.q_input.dtype == generate.F32 else np.float64 277 real = (np.float32 if self.q_input.dtype == generate.F32 278 else np.float64 if self.q_input.dtype == generate.F64 279 else np.float128) 268 280 269 281 nq = c_int(self.q_input.nq)
Note: See TracChangeset
for help on using the changeset viewer.