res_reg_lmnt_awikner.helpers
1import numpy as np 2from numba import jit, objmode 3from scipy.signal import find_peaks 4import os 5 6 7def get_windows_path(path_base): 8 path = path_base.replace('/', '\\') 9 path = u"\\\\?\\" + path 10 return path 11 12 13@jit(nopython=True, fastmath=True) 14def poincare_max(traj, idxs=np.empty(1, dtype=np.intc)): 15 if idxs.size == 0: 16 idxs = np.arange(traj.shape[0]) 17 poincare_map = [] 18 for j in idxs: 19 with objmode(peaks='int64[:]'): 20 peaks, tmp = find_peaks(traj[j]) 21 pmap = np.zeros(peaks.size) 22 for i, peak in enumerate(peaks): 23 with objmode(polyvals='double[:]'): 24 polyvals = np.polyfit(np.arange(3), traj[j, peak - 1:peak + 2], 2) 25 if polyvals[0] == 0: 26 if polyvals[1] <= 0: 27 pmap[i] = polyvals[2] 28 else: 29 pmap[i] = polyvals[2] + polyvals[1] * 2 30 else: 31 pmap[i] = polyvals[2] - polyvals[1] ** 2.0 / (4 * polyvals[0]) 32 poincare_map.append(pmap) 33 return poincare_map 34 35 36@jit(nopython=True, fastmath=True) 37def poincare_max_peaks(traj, idxs=np.empty(1, dtype=np.intc)): 38 if idxs.size == 0: 39 idxs = np.arange(traj.shape[0]) 40 poincare_map = [] 41 peaks_all = [] 42 for j in idxs: 43 with objmode(peaks='int64[:]'): 44 peaks, tmp = find_peaks(traj[j]) 45 pmap = np.zeros(peaks.size) 46 for i, peak in enumerate(peaks): 47 with objmode(polyvals='double[:]'): 48 polyvals = np.polyfit(np.arange(3), traj[j, peak - 1:peak + 2], 2) 49 if polyvals[0] == 0: 50 if polyvals[1] <= 0: 51 pmap[i] = polyvals[2] 52 else: 53 pmap[i] = polyvals[2] + polyvals[1] * 2 54 else: 55 pmap[i] = polyvals[2] - polyvals[1] ** 2.0 / (4 * polyvals[0]) 56 poincare_map.append(pmap) 57 peaks_all.append(peaks) 58 return poincare_map, peaks_all 59 60 61def set_numba(root_folder, disable_jit): 62 config_file = open(os.path.join(root_folder, '.numba_config.yaml'), 'w') 63 config_file.write('---\n') 64 config_file.write('disable_jit: %d' % int(disable_jit)) 65 config_file.close() 66 67def get_filename(run_folder_name, var_str, res_itr, train_seed, noise_val, reg_train_time, **kwargs): 68 if 'test_idx' in kwargs: 69 if 'reg' in kwargs: 70 filename = os.path.join(run_folder_name, '%s_res%d_train%d_test%d_noise%e_reg%e_regtrain%d.csv' % ( 71 var_str, res_itr, train_seed, kwargs['test_idx'], noise_val, kwargs['reg'], reg_train_time)) 72 else: 73 filename = os.path.join(run_folder_name, '%s_res%d_train%d_test%d_noise%e_regtrain%d.csv' % ( 74 var_str, res_itr, train_seed, kwargs['test_idx'], noise_val, reg_train_time)) 75 else: 76 filename = os.path.join(run_folder_name, '%s_res%d_train%d_noise%e_regtrain%d.csv' % ( 77 var_str, res_itr, train_seed, noise_val, reg_train_time)) 78 if 'just_file' in kwargs: 79 if isinstance(kwargs['just_file'], bool): 80 if kwargs['just_file']: 81 return os.path.basename(filename) 82 else: 83 return filename 84 else: 85 raise TypeError() 86 else: 87 return filename
def
get_windows_path(path_base):
@jit(nopython=True, fastmath=True)
def
poincare_max(traj, idxs=array([1], dtype=int32)):
14@jit(nopython=True, fastmath=True) 15def poincare_max(traj, idxs=np.empty(1, dtype=np.intc)): 16 if idxs.size == 0: 17 idxs = np.arange(traj.shape[0]) 18 poincare_map = [] 19 for j in idxs: 20 with objmode(peaks='int64[:]'): 21 peaks, tmp = find_peaks(traj[j]) 22 pmap = np.zeros(peaks.size) 23 for i, peak in enumerate(peaks): 24 with objmode(polyvals='double[:]'): 25 polyvals = np.polyfit(np.arange(3), traj[j, peak - 1:peak + 2], 2) 26 if polyvals[0] == 0: 27 if polyvals[1] <= 0: 28 pmap[i] = polyvals[2] 29 else: 30 pmap[i] = polyvals[2] + polyvals[1] * 2 31 else: 32 pmap[i] = polyvals[2] - polyvals[1] ** 2.0 / (4 * polyvals[0]) 33 poincare_map.append(pmap) 34 return poincare_map
@jit(nopython=True, fastmath=True)
def
poincare_max_peaks(traj, idxs=array([0], dtype=int32)):
37@jit(nopython=True, fastmath=True) 38def poincare_max_peaks(traj, idxs=np.empty(1, dtype=np.intc)): 39 if idxs.size == 0: 40 idxs = np.arange(traj.shape[0]) 41 poincare_map = [] 42 peaks_all = [] 43 for j in idxs: 44 with objmode(peaks='int64[:]'): 45 peaks, tmp = find_peaks(traj[j]) 46 pmap = np.zeros(peaks.size) 47 for i, peak in enumerate(peaks): 48 with objmode(polyvals='double[:]'): 49 polyvals = np.polyfit(np.arange(3), traj[j, peak - 1:peak + 2], 2) 50 if polyvals[0] == 0: 51 if polyvals[1] <= 0: 52 pmap[i] = polyvals[2] 53 else: 54 pmap[i] = polyvals[2] + polyvals[1] * 2 55 else: 56 pmap[i] = polyvals[2] - polyvals[1] ** 2.0 / (4 * polyvals[0]) 57 poincare_map.append(pmap) 58 peaks_all.append(peaks) 59 return poincare_map, peaks_all
def
set_numba(root_folder, disable_jit):
def
get_filename( run_folder_name, var_str, res_itr, train_seed, noise_val, reg_train_time, **kwargs):
68def get_filename(run_folder_name, var_str, res_itr, train_seed, noise_val, reg_train_time, **kwargs): 69 if 'test_idx' in kwargs: 70 if 'reg' in kwargs: 71 filename = os.path.join(run_folder_name, '%s_res%d_train%d_test%d_noise%e_reg%e_regtrain%d.csv' % ( 72 var_str, res_itr, train_seed, kwargs['test_idx'], noise_val, kwargs['reg'], reg_train_time)) 73 else: 74 filename = os.path.join(run_folder_name, '%s_res%d_train%d_test%d_noise%e_regtrain%d.csv' % ( 75 var_str, res_itr, train_seed, kwargs['test_idx'], noise_val, reg_train_time)) 76 else: 77 filename = os.path.join(run_folder_name, '%s_res%d_train%d_noise%e_regtrain%d.csv' % ( 78 var_str, res_itr, train_seed, noise_val, reg_train_time)) 79 if 'just_file' in kwargs: 80 if isinstance(kwargs['just_file'], bool): 81 if kwargs['just_file']: 82 return os.path.basename(filename) 83 else: 84 return filename 85 else: 86 raise TypeError() 87 else: 88 return filename