diff --git a/commit/core.pyx b/commit/core.pyx index 46e2465..c987d04 100755 --- a/commit/core.pyx +++ b/commit/core.pyx @@ -4,6 +4,7 @@ cimport numpy as np cimport cython +from concurrent.futures import ThreadPoolExecutor, as_completed import glob from os import makedirs, remove, listdir from os.path import exists, join as pjoin, isfile, isdir @@ -19,13 +20,16 @@ import pickle from pkg_resources import get_distribution + import amico.scheme import amico.lut from dicelib.ui import ProgressBar, setup_logger from dicelib import ui from dicelib.utils import format_time +from dicelib.tractogram import filter +from commit import trk2dictionary import commit.models import commit.solvers from commit.operator import operator @@ -82,9 +86,12 @@ cdef class Evaluation : cdef public x cdef public CONFIG cdef public temp_data + cdef public confidence_array cdef public confidence_map_img cdef public contribution_mask + cdef public contribution_fibs cdef public contribution_voxels + cdef public debias cdef public verbose def __init__( self, study_path='.', subject='.' ) : @@ -106,9 +113,12 @@ cdef class Evaluation : self.A = None # set by "build_operator" method self.regularisation_params = None # set by "set_regularisation" method self.x = None # set by "fit" method + self.confidence_array = None # set by "fit" method self.confidence_map_img = None # set by "fit" method self.contribution_mask = None # set by "fit" method self.contribution_voxels = None # set by "fit" method + self.contribution_fibs = None + self.debias = False self.verbose = 3 # store all the parameters of an evaluation with COMMIT @@ -742,52 +752,19 @@ cdef class Evaluation : logger.info( f'[ {format_time(time.time() - tic)} ]' ) - @cython.boundscheck(False) - @cython.wraparound(False) - cpdef get_y( self ): + def get_y( self ): """ Returns a numpy array that corresponds to the 'y' vector of the optimisation problem. NB: this can be run only after having loaded the dictionary and the data. """ - - cdef int i = 0 - if self.DICTIONARY is None : logger.error( 'Dictionary not loaded; call "load_dictionary()" first' ) if self.niiDWI is None : logger.error( 'Data not loaded; call "load_data()" first' ) y = self.niiDWI_img[ self.DICTIONARY['MASK_ix'], self.DICTIONARY['MASK_iy'], self.DICTIONARY['MASK_iz'], : ].flatten().astype(np.float64) - - - if self.contribution_mask is not None : - - # find the voxels traversed by the tracts with zero contribution - zero_fibs = np.where(self.contribution_mask == 0)[0] - - # compute number of tract passing through each voxel - n_tracts = np.bincount(self.DICTIONARY['IC']['v'], minlength=self.DICTIONARY['nV']) - - # extract the voxels traversed by at most one tract - vox_single = np.where(n_tracts < zero_fibs.size)[0] - - contrib_voxels = y.copy() - contrib_voxels = contrib_voxels.astype(np.uint32) - contrib_voxels[contrib_voxels > 0] = 1 - contrib_voxels - - # iterate over vox_single and set the y values of the voxels traverse ONLY by the tracts with zero contribution to zero - with ProgressBar(total=vox_single.size, disable=self.verbose < 3, hide_on_exit=True, subinfo=True) as pbar: - for i in vox_single: - if n_tracts[i] == 1: - if self.contribution_mask[self.DICTIONARY['IC']['fiber'][self.DICTIONARY['IC']['v'] == i]] == 0: - y[i] = 0 - else: - if np.all(self.contribution_mask[self.DICTIONARY['IC']['fiber'][self.DICTIONARY['IC']['v'] == i]] == 0): - y[i] = 0 - pbar.update() - - self.contribution_voxels = contrib_voxels[y != 0] + # y[y < 0] = 0 + print(f"place of first non-zero voxel in input data: {np.where(y==1.07405806)}") return y @@ -906,7 +883,7 @@ cdef class Evaluation : for g in range(w_group.size): norm_group[g] = np.sqrt(np.sum(Aty[idx_group[g]]**2)) / w_group[g] return np.max(norm_group) - + regularisation = {} @@ -1351,10 +1328,11 @@ cdef class Evaluation : nV = self.DICTIONARY['nV'] self.confidence_map_img[ self.DICTIONARY['MASK_ix'], self.DICTIONARY['MASK_iy'], self.DICTIONARY['MASK_iz'], : ] = np.reshape( confidence_array, (nV,-1) ).astype(np.float32) + if x0 is not None : if x0.shape[0] != self.A.shape[1] : logger.error( 'x0 dimension does not match the number of columns of the dictionary' ) - + self.CONFIG['optimization'] = {} self.CONFIG['optimization']['tol_fun'] = tol_fun @@ -1362,25 +1340,68 @@ cdef class Evaluation : self.CONFIG['optimization']['max_iter'] = max_iter self.CONFIG['optimization']['regularisation'] = self.regularisation_params + if debias: + self.debias = True + self.CONFIG['optimization']['x0'] = x0 + self.confidence_array = confidence_array + + # run solver t = time.time() with ProgressBar(disable=self.verbose!=3, hide_on_exit=True) as pb: self.x, opt_details = commit.solvers.solve(self.get_y(), self.A, self.A.T, tol_fun=tol_fun, tol_x=tol_x, max_iter=max_iter, verbose=self.verbose, x0=x0, regularisation=self.regularisation_params, confidence_array=confidence_array) - self.CONFIG['optimization']['fit_details'] = opt_details - self.CONFIG['optimization']['fit_time'] = time.time()-t - if debias: - from commit.operator import operator - mask = np.ones(self.x.size, dtype=np.uint32) - # mask[self.x[:self.DICTIONARY['IC']['nF']]<0.000000000000001] = 0 - mask[:self.DICTIONARY['IC']['nF']][self.x[:self.DICTIONARY['IC']['nF']]<0.000000000000001] = 0 - self.contribution_mask = mask + if self.debias: + logger.info( 'Recomputing coefficients' ) + xic, _, _ = self.get_coeffs() + weights_in = pjoin( self.get_config('TRACKING_path'), 'streamline_weights.txt' ) + np.savetxt(weights_in, xic) - self.DICTIONARY["IC"]["eval"] = mask[:self.DICTIONARY['IC']['nF']] + dictionary_info = load_dictionary_info( pjoin(self.get_config('TRACKING_path'), 'dictionary_info.pickle') ) + tractogram = dictionary_info['filename_tractogram'] + tractogram_filtered = tractogram.replace('.tck', '_filtered.tck') + + filter(dictionary_info['filename_tractogram'], tractogram_filtered, minweight=0.000000000000001, weights_in=weights_in, force=True, verbose=0) + + # # RE-RUN COMMIT WITH THE FILTERED TRACTOGRAM + # path_COMMIT = os.path.join(local_path, "COMMIT_master_debias") + + trk2dictionary.run( + filename_tractogram = tractogram_filtered, + TCK_ref_image = dictionary_info['TCK_ref_image'], + path_out = dictionary_info['path_out'], + filename_peaks = dictionary_info['filename_peaks'], + filename_mask = dictionary_info['filename_mask'], + do_intersect = dictionary_info['do_intersect'], + fiber_shift = dictionary_info['fiber_shift'], + min_seg_len = dictionary_info['min_seg_len'], + min_fiber_len = dictionary_info['min_fiber_len'], + max_fiber_len = dictionary_info['max_fiber_len'], + vf_THR = dictionary_info['vf_THR'], + peaks_use_affine = dictionary_info['peaks_use_affine'], + flip_peaks = dictionary_info['flip_peaks'], + blur_core_extent = dictionary_info['blur_core_extent'], + blur_gauss_extent = dictionary_info['blur_gauss_extent'], + blur_gauss_min = dictionary_info['blur_gauss_min'], + blur_spacing = dictionary_info['blur_spacing'], + ndirs = dictionary_info['ndirs'], + n_threads = dictionary_info['n_threads'], + verbose = 0 + ) + + self.load_dictionary(dictionary_info['path_out']) + + self.set_threads() + self.build_operator() self.A = operator.LinearOperator( self.DICTIONARY, self.KERNELS, self.THREADS, nolut=True if hasattr(self.model, 'nolut') else False ) self.set_regularisation() - self.x, opt_details = commit.solvers.solve(self.get_y(), self.A, self.A.T, tol_fun=tol_fun, tol_x=tol_x, max_iter=max_iter, verbose=self.verbose, x0=x0, regularisation=self.regularisation_params, confidence_array=confidence_array) + + with ProgressBar(disable=self.verbose!=3, hide_on_exit=True) as pb: + self.x, opt_details = commit.solvers.solve(self.get_y(), self.A, self.A.T, tol_fun=self.CONFIG['optimization']['tol_fun'], tol_x=self.CONFIG['optimization']['tol_x'], max_iter=self.CONFIG['optimization']['max_iter'], verbose=self.verbose, x0=self.CONFIG['optimization']['x0'], regularisation=self.regularisation_params, confidence_array=self.confidence_array) + + self.CONFIG['optimization']['fit_details'] = opt_details + self.CONFIG['optimization']['fit_time'] = time.time()-t logger.info( f'[ {format_time(self.CONFIG["optimization"]["fit_time"])} ]' ) @@ -1425,7 +1446,7 @@ cdef class Evaluation : return xic, xec, xiso - def save_results( self, path_suffix=None, coeffs_format='%.5e', stat_coeffs='sum', save_est_dwi=False, do_reweighting=True ) : + def save_results( self, path_suffix=None, coeffs_format='%.5e', stat_coeffs='sum', save_est_dwi=False, do_reweighting=True, debias=False ) : """Save the output (coefficients, errors, maps etc). Parameters @@ -1487,19 +1508,8 @@ cdef class Evaluation : niiMAP_hdr['descrip'] = 'Created with COMMIT %s'%self.get_config('version') niiMAP_hdr['db_name'] = '' - if self.contribution_mask is None: - y_mea = np.reshape( self.niiDWI_img[ self.DICTIONARY['MASK_ix'], self.DICTIONARY['MASK_iy'], self.DICTIONARY['MASK_iz'], : ].flatten().astype(np.float32), (nV,-1) ) - y_est = np.reshape( self.A.dot(self.x), (nV,-1) ).astype(np.float32) - else: - nV = self.contribution_voxels.shape[0] - y_mea = np.reshape( self.get_y()[self.contribution_voxels], (nV,-1) ) - y_est = np.asarray(self.A.dot(self.x)) - y_est = np.reshape( y_est[self.contribution_voxels], (nV,-1) ).astype(np.float32) - self.DICTIONARY['MASK_ix'] = self.DICTIONARY['MASK_ix'][self.contribution_voxels] - self.DICTIONARY['MASK_iy'] = self.DICTIONARY['MASK_iy'][self.contribution_voxels] - self.DICTIONARY['MASK_iz'] = self.DICTIONARY['MASK_iz'][self.contribution_voxels] - - + y_mea = np.reshape( self.niiDWI_img[ self.DICTIONARY['MASK_ix'], self.DICTIONARY['MASK_iy'], self.DICTIONARY['MASK_iz'], : ].flatten().astype(np.float32), (nV,-1) ) + y_est = np.reshape( self.A.dot(self.x), (nV,-1) ).astype(np.float32) tmp = np.sqrt( np.mean((y_mea-y_est)**2,axis=1) ) logger.subinfo(f'RMSE: {tmp.mean():.3f} +/- {tmp.std():.3f}', indent_lvl=2, indent_char='-') @@ -1557,11 +1567,8 @@ cdef class Evaluation : xv = np.bincount( self.DICTIONARY['IC']['v'], minlength=nV, weights=tmp[ self.DICTIONARY['IC']['fiber'] ] * self.DICTIONARY['IC']['len'] ).astype(np.float32) - if self.contribution_mask is not None: - niiIC_img[ self.DICTIONARY['MASK_ix'], self.DICTIONARY['MASK_iy'], self.DICTIONARY['MASK_iz'] ] = xv[self.contribution_voxels] - else: - niiIC_img[ self.DICTIONARY['MASK_ix'], self.DICTIONARY['MASK_iy'], self.DICTIONARY['MASK_iz'] ] = xv - + niiIC_img[ self.DICTIONARY['MASK_ix'], self.DICTIONARY['MASK_iy'], self.DICTIONARY['MASK_iz'] ] = xv + logger.subinfo('Extra-axonal', indent_lvl=2, indent_char='-', with_progress=True) with ProgressBar(disable=self.verbose < 3, hide_on_exit=True, subinfo=True) as pbar: niiEC_img = np.zeros( self.get_config('dim'), dtype=np.float32 ) @@ -1569,10 +1576,7 @@ cdef class Evaluation : offset = nF * self.KERNELS['wmr'].shape[0] tmp = x[offset:offset+nE*len(self.KERNELS['wmh'])].reshape( (-1,nE) ).sum( axis=0 ) xv = np.bincount( self.DICTIONARY['EC']['v'], weights=tmp, minlength=nV ).astype(np.float32) - if self.contribution_mask is not None: - niiEC_img[ self.DICTIONARY['MASK_ix'], self.DICTIONARY['MASK_iy'], self.DICTIONARY['MASK_iz'] ] = xv[self.contribution_voxels] - else: - niiEC_img[ self.DICTIONARY['MASK_ix'], self.DICTIONARY['MASK_iy'], self.DICTIONARY['MASK_iz'] ] = xv + niiEC_img[ self.DICTIONARY['MASK_ix'], self.DICTIONARY['MASK_iy'], self.DICTIONARY['MASK_iz'] ] = xv logger.subinfo('Isotropic ', indent_lvl=2, indent_char='-', with_progress=True) with ProgressBar(disable=self.verbose < 3, hide_on_exit=True, subinfo=True) as pbar: @@ -1582,10 +1586,7 @@ cdef class Evaluation : offset_iso = offset + self.DICTIONARY['ISO']['nV'] tmp = x[offset:offset_iso].reshape( (-1,self.DICTIONARY['ISO']['nV']) ).sum( axis=0 ) xv = np.bincount( self.DICTIONARY['ISO']['v'], weights=tmp, minlength=nV ).astype(np.float32) - if self.contribution_mask is not None: - niiISO_img[ self.DICTIONARY['MASK_ix'], self.DICTIONARY['MASK_iy'], self.DICTIONARY['MASK_iz'] ] = xv[self.contribution_voxels] - else: - niiISO_img[ self.DICTIONARY['MASK_ix'], self.DICTIONARY['MASK_iy'], self.DICTIONARY['MASK_iz'] ] = xv + niiISO_img[ self.DICTIONARY['MASK_ix'], self.DICTIONARY['MASK_iy'], self.DICTIONARY['MASK_iz'] ] = xv if self.get_config('doNormalizeMaps') : niiIC = nibabel.Nifti1Image( niiIC_img / ( niiIC_img + niiEC_img + niiISO_img + 1e-16), affine, header=niiMAP_hdr ) @@ -1681,3 +1682,4 @@ cdef class Evaluation : self.niiDWI_img[ self.DICTIONARY['MASK_ix'], self.DICTIONARY['MASK_iy'], self.DICTIONARY['MASK_iz'], : ] = y_mea logger.info( f'[ {format_time(time.time() - tic)} ]' ) + diff --git a/commit/operator/operator.pyx b/commit/operator/operator.pyx index 328f0d7..d3ffbdb 100755 --- a/commit/operator/operator.pyx +++ b/commit/operator/operator.pyx @@ -9,7 +9,7 @@ from dicelib.ui import setup_logger cdef extern void COMMIT_A( int _nF, int _nE, int _nV, int _nS, int _ndirs, double *_v_in, double *_v_out, - unsigned int *_ICf, unsigned int *_ICeval, unsigned int *_ICv, unsigned short *_ICo, float *_ICl, + unsigned int *_ICf, unsigned int *_ICv, unsigned short *_ICo, float *_ICl, unsigned int *_ECv, unsigned short *_ECo, unsigned int *_ISOv, float *_wmrSFP, float *_wmhSFP, float *_isoSFP, @@ -20,7 +20,7 @@ cdef extern void COMMIT_A( cdef extern void COMMIT_At( int _nF, int _n, int _nE, int _nV, int _nS, int _ndirs, double *_v_in, double *_v_out, - unsigned int *_ICf, unsigned int *_ICeval, unsigned int *_ICv, unsigned short *_ICo, float *_ICl, + unsigned int *_ICf, unsigned int *_ICv, unsigned short *_ICo, float *_ICl, unsigned int *_ECv, unsigned short *_ECo, unsigned int *_ISOv, float *_wmrSFP, float *_wmhSFP, float *_isoSFP, @@ -31,7 +31,7 @@ cdef extern void COMMIT_At( cdef extern void COMMIT_A_nolut( int _nF, double *_v_in, double *_v_out, - unsigned int *_ICf, unsigned int *_ICeval, unsigned int *_ICv, float *_ICl, + unsigned int *_ICf, unsigned int *_ICv, float *_ICl, unsigned int *_ISOv, unsigned int* _ICthreads, unsigned int* _ISOthreads, unsigned int _nISO, unsigned int _nThreads @@ -40,7 +40,7 @@ cdef extern void COMMIT_A_nolut( cdef extern void COMMIT_At_nolut( int _nF, int _n, double *_v_in, double *_v_out, - unsigned int *_ICf, unsigned int *_ICeval, unsigned int *_ICv, float *_ICl, + unsigned int *_ICf, unsigned int *_ICv, float *_ICl, unsigned int *_ISOv, unsigned char* _ICthreadsT, unsigned int* _ISOthreadsT, unsigned int _nISO, unsigned int _nThreads @@ -62,7 +62,6 @@ cdef class LinearOperator : cdef nolut cdef unsigned int* ICf - cdef unsigned int* ICeval cdef float* ICl cdef unsigned int* ICv cdef unsigned short* ICo @@ -85,7 +84,6 @@ cdef class LinearOperator : def __init__( self, DICTIONARY, KERNELS, THREADS, nolut=False ) : """Set the pointers to the data structures used by the C code.""" - self.DICTIONARY = DICTIONARY self.KERNELS = KERNELS self.THREADS = THREADS @@ -100,7 +98,6 @@ cdef class LinearOperator : self.n = DICTIONARY['IC']['n'] # numbner of IC segments self.ndirs = KERNELS['wmr'].shape[1] # number of directions - if KERNELS['wmr'].size > 0 : self.nS = KERNELS['wmr'].shape[2] # number of SAMPLES elif KERNELS['wmh'].size > 0 : @@ -111,17 +108,11 @@ cdef class LinearOperator : self.adjoint = 0 # direct of inverse product self.n1 = self.nV*self.nS - self.n2 = self.nR*self.nF + self.nT*self.nE + self.nI*self.nV + self.n2 = self.nR*self.nF + self.nT*self.nE + self.nI*self.nV # get C pointers to arrays in DICTIONARY cdef unsigned int [::1] ICf = DICTIONARY['IC']['fiber'] self.ICf = &ICf[0] - cdef unsigned int [::1] ICeval = DICTIONARY["IC"]["eval"] - self.ICeval = &ICeval[0] - - # for i in range(self.n2): - # print(f"ICeval after assignment: {self.ICeval[i]}") - cdef float [::1] ICl = DICTIONARY['IC']['len'] self.ICl = &ICl[0] cdef unsigned int [::1] ICv = DICTIONARY['IC']['v'] @@ -162,7 +153,7 @@ cdef class LinearOperator : @property def T( self ) : """Transpose of the explicit matrix.""" - C = LinearOperator( self.DICTIONARY, self.KERNELS, self.THREADS, nolut=self.nolut ) + C = LinearOperator( self.DICTIONARY, self.KERNELS, self.THREADS, self.nolut ) C.adjoint = 1 - C.adjoint return C @@ -210,7 +201,7 @@ cdef class LinearOperator : COMMIT_A_nolut( self.nF, &v_in[0], &v_out[0], - self.ICf, self.ICeval, self.ICv, self.ICl, + self.ICf, self.ICv, self.ICl, self.ISOv, self.ICthreads, self.ISOthreads, nISO, nthreads @@ -220,7 +211,7 @@ cdef class LinearOperator : COMMIT_A( self.nF, self.nE, self.nV, self.nS, self.ndirs, &v_in[0], &v_out[0], - self.ICf, self.ICeval, self.ICv, self.ICo, self.ICl, + self.ICf, self.ICv, self.ICo, self.ICl, self.ECv, self.ECo, self.ISOv, self.LUT_IC, self.LUT_EC, self.LUT_ISO, @@ -234,7 +225,7 @@ cdef class LinearOperator : COMMIT_At_nolut( self.nF, self.n, &v_in[0], &v_out[0], - self.ICf, self.ICeval, self.ICv, self.ICl, + self.ICf, self.ICv, self.ICl, self.ISOv, self.ICthreadsT, self.ISOthreadsT, nISO, nthreads @@ -244,7 +235,7 @@ cdef class LinearOperator : COMMIT_At( self.nF, self.n, self.nE, self.nV, self.nS, self.ndirs, &v_in[0], &v_out[0], - self.ICf, self.ICeval, self.ICv, self.ICo, self.ICl, + self.ICf, self.ICv, self.ICo, self.ICl, self.ECv, self.ECo, self.ISOv, self.LUT_IC, self.LUT_EC, self.LUT_ISO, diff --git a/commit/operator/operator_c.c b/commit/operator/operator_c.c index 2ea5805..43787a7 100644 --- a/commit/operator/operator_c.c +++ b/commit/operator/operator_c.c @@ -10,7 +10,7 @@ double *x, *Y; uint32_t *ICthreads, *ECthreads, *ISOthreads; uint8_t *ICthreadsT; uint32_t *ECthreadsT, *ISOthreadsT; -uint32_t *ICf, *ICv, *ECv, *ISOv, *ICeval; +uint32_t *ICf, *ICv, *ECv, *ISOv; uint16_t *ICo, *ECo; float *ICl; float *wmrSFP0, *wmrSFP1, *wmrSFP2, *wmrSFP3, *wmrSFP4, *wmrSFP5, *wmrSFP6, *wmrSFP7, *wmrSFP8, *wmrSFP9, *wmrSFP10, *wmrSFP11, *wmrSFP12, *wmrSFP13, *wmrSFP14, *wmrSFP15, *wmrSFP16, *wmrSFP17, *wmrSFP18, *wmrSFP19; @@ -26,7 +26,6 @@ void* COMMIT_A__block( void *ptr ) { int id = (long)ptr; int offset; - uint32_t *eval0, *eval1, *eval2, *eval3, *eval4, *eval5, *eval6, *eval7, *eval8, *eval9, *eval10, *eval11, *eval12, *eval13, *eval14, *eval15, *eval16, *eval17, *eval18, *eval19; double x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, w; double *xPtr0, *xPtr1, *xPtr2, *xPtr3, *xPtr4, *xPtr5, *xPtr6, *xPtr7, *xPtr8, *xPtr9, *xPtr10, *xPtr11, *xPtr12, *xPtr13, *xPtr14, *xPtr15, *xPtr16, *xPtr17, *xPtr18, *xPtr19; double *YPtr, *YPtrEnd; @@ -49,8 +48,7 @@ void* COMMIT_A__block( void *ptr ) while (t_v != t_vEnd) { xPtr0 = x + (*t_f); - // eval0 = ICeval + *t_f; - x0 = *xPtr0 * (double)(ICeval[*t_f]); + x0 = *xPtr0; if (x0 != 0) { YPtr = Y + nS * (*t_v); @@ -71,11 +69,9 @@ void* COMMIT_A__block( void *ptr ) while (t_v != t_vEnd) { xPtr0 = x + (*t_f); - eval0 = ICeval + *t_f; - x0 = *xPtr0 * (double)(*eval0); + x0 = *xPtr0; xPtr1 = xPtr0 + nF; - eval1 = eval0 + nF; - x1 = *xPtr1 * (double)(*eval1); + x1 = *xPtr1; if (x0 != 0 || x1 != 0) { YPtr = Y + nS * (*t_v); @@ -97,14 +93,11 @@ void* COMMIT_A__block( void *ptr ) while (t_v != t_vEnd) { xPtr0 = x + (*t_f); - eval0 = ICeval + *t_f; - x0 = *xPtr0 * (double)(*eval0); + x0 = *xPtr0; xPtr1 = xPtr0 + nF; - eval1 = eval0 + nF; - x1 = *xPtr1 * (double)(*eval1); + x1 = *xPtr1; xPtr2 = xPtr1 + nF; - eval2 = eval1 + nF; - x2 = *xPtr2 * (double)(*eval2); + x2 = *xPtr2; if (x0 != 0 || x1 != 0 || x2 != 0) { YPtr = Y + nS * (*t_v); @@ -127,17 +120,13 @@ void* COMMIT_A__block( void *ptr ) while (t_v != t_vEnd) { xPtr0 = x + (*t_f); - eval0 = ICeval + *t_f; - x0 = *xPtr0 * (double)(*eval0); + x0 = *xPtr0; xPtr1 = xPtr0 + nF; - eval1 = eval0 + nF; - x1 = *xPtr1 * (double)(*eval1); + x1 = *xPtr1; xPtr2 = xPtr1 + nF; - eval2 = eval1 + nF; - x2 = *xPtr2 * (double)(*eval2); + x2 = *xPtr2; xPtr3 = xPtr2 + nF; - eval3 = eval2 + nF; - x3 = *xPtr3 * (double)(*eval3); + x3 = *xPtr3; if (x0 != 0 || x1 != 0 || x2 != 0 || x3 != 0) { YPtr = Y + nS * (*t_v); @@ -161,20 +150,15 @@ void* COMMIT_A__block( void *ptr ) while (t_v != t_vEnd) { xPtr0 = x + (*t_f); - eval0 = ICeval + *t_f; - x0 = *xPtr0 * (double)(*eval0); + x0 = *xPtr0; xPtr1 = xPtr0 + nF; - eval1 = eval0 + nF; - x1 = *xPtr1 * (double)(*eval1); + x1 = *xPtr1; xPtr2 = xPtr1 + nF; - eval2 = eval1 + nF; - x2 = *xPtr2 * (double)(*eval2); + x2 = *xPtr2; xPtr3 = xPtr2 + nF; - eval3 = eval2 + nF; - x3 = *xPtr3 * (double)(*eval3); + x3 = *xPtr3; xPtr4 = xPtr3 + nF; - eval4 = eval3 + nF; - x4 = *xPtr4 * (double)(*eval4); + x4 = *xPtr4; if (x0 != 0 || x1 != 0 || x2 != 0 || x3 != 0 || x4 != 0) { YPtr = Y + nS * (*t_v); @@ -199,23 +183,17 @@ void* COMMIT_A__block( void *ptr ) while (t_v != t_vEnd) { xPtr0 = x + (*t_f); - eval0 = ICeval + *t_f; - x0 = *xPtr0 * (double)(*eval0); + x0 = *xPtr0; xPtr1 = xPtr0 + nF; - eval1 = eval0 + nF; - x1 = *xPtr1 * (double)(*eval1); + x1 = *xPtr1; xPtr2 = xPtr1 + nF; - eval2 = eval1 + nF; - x2 = *xPtr2 * (double)(*eval2); + x2 = *xPtr2; xPtr3 = xPtr2 + nF; - eval3 = eval2 + nF; - x3 = *xPtr3 * (double)(*eval3); + x3 = *xPtr3; xPtr4 = xPtr3 + nF; - eval4 = eval3 + nF; - x4 = *xPtr4 * (double)(*eval4); + x4 = *xPtr4; xPtr5 = xPtr4 + nF; - eval5 = eval4 + nF; - x5 = *xPtr5 * (double)(*eval5); + x5 = *xPtr5; if (x0 != 0 || x1 != 0 || x2 != 0 || x3 != 0 || x4 != 0 || x5 != 0) { YPtr = Y + nS * (*t_v); @@ -241,26 +219,19 @@ void* COMMIT_A__block( void *ptr ) while (t_v != t_vEnd) { xPtr0 = x + (*t_f); - eval0 = ICeval + *t_f; - x0 = *xPtr0 * (double)(*eval0); + x0 = *xPtr0; xPtr1 = xPtr0 + nF; - eval1 = eval0 + nF; - x1 = *xPtr1 * (double)(*eval1); + x1 = *xPtr1; xPtr2 = xPtr1 + nF; - eval2 = eval1 + nF; - x2 = *xPtr2 * (double)(*eval2); + x2 = *xPtr2; xPtr3 = xPtr2 + nF; - eval3 = eval2 + nF; - x3 = *xPtr3 * (double)(*eval3); + x3 = *xPtr3; xPtr4 = xPtr3 + nF; - eval4 = eval3 + nF; - x4 = *xPtr4 * (double)(*eval4); + x4 = *xPtr4; xPtr5 = xPtr4 + nF; - eval5 = eval4 + nF; - x5 = *xPtr5 * (double)(*eval5); + x5 = *xPtr5; xPtr6 = xPtr5 + nF; - eval6 = eval5 + nF; - x6 = *xPtr6 * (double)(*eval6); + x6 = *xPtr6; if (x0 != 0 || x1 != 0 || x2 != 0 || x3 != 0 || x4 != 0 || x5 != 0 || x6 != 0) { YPtr = Y + nS * (*t_v); @@ -287,29 +258,21 @@ void* COMMIT_A__block( void *ptr ) while (t_v != t_vEnd) { xPtr0 = x + (*t_f); - eval0 = ICeval + *t_f; - x0 = *xPtr0 * (double)(*eval0); + x0 = *xPtr0; xPtr1 = xPtr0 + nF; - eval1 = eval0 + nF; - x1 = *xPtr1 * (double)(*eval1); + x1 = *xPtr1; xPtr2 = xPtr1 + nF; - eval2 = eval1 + nF; - x2 = *xPtr2 * (double)(*eval2); + x2 = *xPtr2; xPtr3 = xPtr2 + nF; - eval3 = eval2 + nF; - x3 = *xPtr3 * (double)(*eval3); + x3 = *xPtr3; xPtr4 = xPtr3 + nF; - eval4 = eval3 + nF; - x4 = *xPtr4 * (double)(*eval4); + x4 = *xPtr4; xPtr5 = xPtr4 + nF; - eval5 = eval4 + nF; - x5 = *xPtr5 * (double)(*eval5); + x5 = *xPtr5; xPtr6 = xPtr5 + nF; - eval6 = eval5 + nF; - x6 = *xPtr6 * (double)(*eval6); + x6 = *xPtr6; xPtr7 = xPtr6 + nF; - eval7 = eval6 + nF; - x7 = *xPtr7 * (double)(*eval7); + x7 = *xPtr7; if (x0 != 0 || x1 != 0 || x2 != 0 || x3 != 0 || x4 != 0 || x5 != 0 || x6 != 0 || x7 != 0) { YPtr = Y + nS * (*t_v); @@ -337,32 +300,23 @@ void* COMMIT_A__block( void *ptr ) while (t_v != t_vEnd) { xPtr0 = x + (*t_f); - eval0 = ICeval + *t_f; - x0 = *xPtr0 * (double)(*eval0); + x0 = *xPtr0; xPtr1 = xPtr0 + nF; - eval1 = eval0 + nF; - x1 = *xPtr1 * (double)(*eval1); + x1 = *xPtr1; xPtr2 = xPtr1 + nF; - eval2 = eval1 + nF; - x2 = *xPtr2 * (double)(*eval2); + x2 = *xPtr2; xPtr3 = xPtr2 + nF; - eval3 = eval2 + nF; - x3 = *xPtr3 * (double)(*eval3); + x3 = *xPtr3; xPtr4 = xPtr3 + nF; - eval4 = eval3 + nF; - x4 = *xPtr4 * (double)(*eval4); + x4 = *xPtr4; xPtr5 = xPtr4 + nF; - eval5 = eval4 + nF; - x5 = *xPtr5 * (double)(*eval5); + x5 = *xPtr5; xPtr6 = xPtr5 + nF; - eval6 = eval5 + nF; - x6 = *xPtr6 * (double)(*eval6); + x6 = *xPtr6; xPtr7 = xPtr6 + nF; - eval7 = eval6 + nF; - x7 = *xPtr7 * (double)(*eval7); + x7 = *xPtr7; xPtr8 = xPtr7 + nF; - eval8 = eval7 + nF; - x8 = *xPtr8 * (double)(*eval8); + x8 = *xPtr8; if (x0 != 0 || x1 != 0 || x2 != 0 || x3 != 0 || x4 != 0 || x5 != 0 || x6 != 0 || x7 != 0 || x8 != 0) { YPtr = Y + nS * (*t_v); @@ -391,35 +345,25 @@ void* COMMIT_A__block( void *ptr ) while (t_v != t_vEnd) { xPtr0 = x + (*t_f); - eval0 = ICeval + *t_f; - x0 = *xPtr0 * (double)(*eval0); + x0 = *xPtr0; xPtr1 = xPtr0 + nF; - eval1 = eval0 + nF; - x1 = *xPtr1 * (double)(*eval1); + x1 = *xPtr1; xPtr2 = xPtr1 + nF; - eval2 = eval1 + nF; - x2 = *xPtr2 * (double)(*eval2); + x2 = *xPtr2; xPtr3 = xPtr2 + nF; - eval3 = eval2 + nF; - x3 = *xPtr3 * (double)(*eval3); + x3 = *xPtr3; xPtr4 = xPtr3 + nF; - eval4 = eval3 + nF; - x4 = *xPtr4 * (double)(*eval4); + x4 = *xPtr4; xPtr5 = xPtr4 + nF; - eval5 = eval4 + nF; - x5 = *xPtr5 * (double)(*eval5); + x5 = *xPtr5; xPtr6 = xPtr5 + nF; - eval6 = eval5 + nF; - x6 = *xPtr6 * (double)(*eval6); + x6 = *xPtr6; xPtr7 = xPtr6 + nF; - eval7 = eval6 + nF; - x7 = *xPtr7 * (double)(*eval7); + x7 = *xPtr7; xPtr8 = xPtr7 + nF; - eval8 = eval7 + nF; - x8 = *xPtr8 * (double)(*eval8); + x8 = *xPtr8; xPtr9 = xPtr8 + nF; - eval9 = eval8 + nF; - x9 = *xPtr9 * (double)(*eval9); + x9 = *xPtr9; if (x0 != 0 || x1 != 0 || x2 != 0 || x3 != 0 || x4 != 0 || x5 != 0 || x6 != 0 || x7 != 0 || x8 != 0 || x9 != 0) { YPtr = Y + nS * (*t_v); @@ -449,38 +393,27 @@ void* COMMIT_A__block( void *ptr ) while (t_v != t_vEnd) { xPtr0 = x + (*t_f); - eval0 = ICeval + *t_f; - x0 = *xPtr0 * (double)(*eval0); + x0 = *xPtr0; xPtr1 = xPtr0 + nF; - eval1 = eval0 + nF; - x1 = *xPtr1 * (double)(*eval1); + x1 = *xPtr1; xPtr2 = xPtr1 + nF; - eval2 = eval1 + nF; - x2 = *xPtr2 * (double)(*eval2); + x2 = *xPtr2; xPtr3 = xPtr2 + nF; - eval3 = eval2 + nF; - x3 = *xPtr3 * (double)(*eval3); + x3 = *xPtr3; xPtr4 = xPtr3 + nF; - eval4 = eval3 + nF; - x4 = *xPtr4 * (double)(*eval4); + x4 = *xPtr4; xPtr5 = xPtr4 + nF; - eval5 = eval4 + nF; - x5 = *xPtr5 * (double)(*eval5); + x5 = *xPtr5; xPtr6 = xPtr5 + nF; - eval6 = eval5 + nF; - x6 = *xPtr6 * (double)(*eval6); + x6 = *xPtr6; xPtr7 = xPtr6 + nF; - eval7 = eval6 + nF; - x7 = *xPtr7 * (double)(*eval7); + x7 = *xPtr7; xPtr8 = xPtr7 + nF; - eval8 = eval7 + nF; - x8 = *xPtr8 * (double)(*eval8); + x8 = *xPtr8; xPtr9 = xPtr8 + nF; - eval9 = eval8 + nF; - x9 = *xPtr9 * (double)(*eval9); + x9 = *xPtr9; xPtr10 = xPtr9 + nF; - eval10 = eval9 + nF; - x10 = *xPtr10 * (double)(*eval10); + x10 = *xPtr10; if (x0 != 0 || x1 != 0 || x2 != 0 || x3 != 0 || x4 != 0 || x5 != 0 || x6 != 0 || x7 != 0 || x8 != 0 || x9 != 0 || x10 != 0) { YPtr = Y + nS * (*t_v); @@ -511,41 +444,29 @@ void* COMMIT_A__block( void *ptr ) while (t_v != t_vEnd) { xPtr0 = x + (*t_f); - eval0 = ICeval + *t_f; - x0 = *xPtr0 * (double)(*eval0); + x0 = *xPtr0; xPtr1 = xPtr0 + nF; - eval1 = eval0 + nF; - x1 = *xPtr1 * (double)(*eval1); + x1 = *xPtr1; xPtr2 = xPtr1 + nF; - eval2 = eval1 + nF; - x2 = *xPtr2 * (double)(*eval2); + x2 = *xPtr2; xPtr3 = xPtr2 + nF; - eval3 = eval2 + nF; - x3 = *xPtr3 * (double)(*eval3); + x3 = *xPtr3; xPtr4 = xPtr3 + nF; - eval4 = eval3 + nF; - x4 = *xPtr4 * (double)(*eval4); + x4 = *xPtr4; xPtr5 = xPtr4 + nF; - eval5 = eval4 + nF; - x5 = *xPtr5 * (double)(*eval5); + x5 = *xPtr5; xPtr6 = xPtr5 + nF; - eval6 = eval5 + nF; - x6 = *xPtr6 * (double)(*eval6); + x6 = *xPtr6; xPtr7 = xPtr6 + nF; - eval7 = eval6 + nF; - x7 = *xPtr7 * (double)(*eval7); + x7 = *xPtr7; xPtr8 = xPtr7 + nF; - eval8 = eval7 + nF; - x8 = *xPtr8 * (double)(*eval8); + x8 = *xPtr8; xPtr9 = xPtr8 + nF; - eval9 = eval8 + nF; - x9 = *xPtr9 * (double)(*eval9); + x9 = *xPtr9; xPtr10 = xPtr9 + nF; - eval10 = eval9 + nF; - x10 = *xPtr10 * (double)(*eval10); + x10 = *xPtr10; xPtr11 = xPtr10 + nF; - eval11 = eval10 + nF; - x11 = *xPtr11 * (double)(*eval11); + x11 = *xPtr11; if (x0 != 0 || x1 != 0 || x2 != 0 || x3 != 0 || x4 != 0 || x5 != 0 || x6 != 0 || x7 != 0 || x8 != 0 || x9 != 0 || x10 != 0 || x11 != 0) { YPtr = Y + nS * (*t_v); @@ -577,44 +498,31 @@ void* COMMIT_A__block( void *ptr ) while (t_v != t_vEnd) { xPtr0 = x + (*t_f); - eval0 = ICeval + *t_f; - x0 = *xPtr0 * (double)(*eval0); + x0 = *xPtr0; xPtr1 = xPtr0 + nF; - eval1 = eval0 + nF; - x1 = *xPtr1 * (double)(*eval1); + x1 = *xPtr1; xPtr2 = xPtr1 + nF; - eval2 = eval1 + nF; - x2 = *xPtr2 * (double)(*eval2); + x2 = *xPtr2; xPtr3 = xPtr2 + nF; - eval3 = eval2 + nF; - x3 = *xPtr3 * (double)(*eval3); + x3 = *xPtr3; xPtr4 = xPtr3 + nF; - eval4 = eval3 + nF; - x4 = *xPtr4 * (double)(*eval4); + x4 = *xPtr4; xPtr5 = xPtr4 + nF; - eval5 = eval4 + nF; - x5 = *xPtr5 * (double)(*eval5); + x5 = *xPtr5; xPtr6 = xPtr5 + nF; - eval6 = eval5 + nF; - x6 = *xPtr6 * (double)(*eval6); + x6 = *xPtr6; xPtr7 = xPtr6 + nF; - eval7 = eval6 + nF; - x7 = *xPtr7 * (double)(*eval7); + x7 = *xPtr7; xPtr8 = xPtr7 + nF; - eval8 = eval7 + nF; - x8 = *xPtr8 * (double)(*eval8); + x8 = *xPtr8; xPtr9 = xPtr8 + nF; - eval9 = eval8 + nF; - x9 = *xPtr9 * (double)(*eval9); + x9 = *xPtr9; xPtr10 = xPtr9 + nF; - eval10 = eval9 + nF; - x10 = *xPtr10 * (double)(*eval10); + x10 = *xPtr10; xPtr11 = xPtr10 + nF; - eval11 = eval10 + nF; - x11 = *xPtr11 * (double)(*eval11); + x11 = *xPtr11; xPtr12 = xPtr11 + nF; - eval12 = eval11 + nF; - x12 = *xPtr12 * (double)(*eval12); + x12 = *xPtr12; if (x0 != 0 || x1 != 0 || x2 != 0 || x3 != 0 || x4 != 0 || x5 != 0 || x6 != 0 || x7 != 0 || x8 != 0 || x9 != 0 || x10 != 0 || x11 != 0 || x12 != 0) { YPtr = Y + nS * (*t_v); @@ -647,47 +555,33 @@ void* COMMIT_A__block( void *ptr ) while (t_v != t_vEnd) { xPtr0 = x + (*t_f); - eval0 = ICeval + *t_f; - x0 = *xPtr0 * (double)(*eval0); + x0 = *xPtr0; xPtr1 = xPtr0 + nF; - eval1 = eval0 + nF; - x1 = *xPtr1 * (double)(*eval1); + x1 = *xPtr1; xPtr2 = xPtr1 + nF; - eval2 = eval1 + nF; - x2 = *xPtr2 * (double)(*eval2); + x2 = *xPtr2; xPtr3 = xPtr2 + nF; - eval3 = eval2 + nF; - x3 = *xPtr3 * (double)(*eval3); + x3 = *xPtr3; xPtr4 = xPtr3 + nF; - eval4 = eval3 + nF; - x4 = *xPtr4 * (double)(*eval4); + x4 = *xPtr4; xPtr5 = xPtr4 + nF; - eval5 = eval4 + nF; - x5 = *xPtr5 * (double)(*eval5); + x5 = *xPtr5; xPtr6 = xPtr5 + nF; - eval6 = eval5 + nF; - x6 = *xPtr6 * (double)(*eval6); + x6 = *xPtr6; xPtr7 = xPtr6 + nF; - eval7 = eval6 + nF; - x7 = *xPtr7 * (double)(*eval7); + x7 = *xPtr7; xPtr8 = xPtr7 + nF; - eval8 = eval7 + nF; - x8 = *xPtr8 * (double)(*eval8); + x8 = *xPtr8; xPtr9 = xPtr8 + nF; - eval9 = eval8 + nF; - x9 = *xPtr9 * (double)(*eval9); + x9 = *xPtr9; xPtr10 = xPtr9 + nF; - eval10 = eval9 + nF; - x10 = *xPtr10 * (double)(*eval10); + x10 = *xPtr10; xPtr11 = xPtr10 + nF; - eval11 = eval10 + nF; - x11 = *xPtr11 * (double)(*eval11); + x11 = *xPtr11; xPtr12 = xPtr11 + nF; - eval12 = eval11 + nF; - x12 = *xPtr12 * (double)(*eval12); + x12 = *xPtr12; xPtr13 = xPtr12 + nF; - eval13 = eval12 + nF; - x13 = *xPtr13 * (double)(*eval13); + x13 = *xPtr13; if (x0 != 0 || x1 != 0 || x2 != 0 || x3 != 0 || x4 != 0 || x5 != 0 || x6 != 0 || x7 != 0 || x8 != 0 || x9 != 0 || x10 != 0 || x11 != 0 || x12 != 0 || x13 != 0) { YPtr = Y + nS * (*t_v); @@ -721,50 +615,35 @@ void* COMMIT_A__block( void *ptr ) while (t_v != t_vEnd) { xPtr0 = x + (*t_f); - eval0 = ICeval + *t_f; - x0 = *xPtr0 * (double)(*eval0); + x0 = *xPtr0; xPtr1 = xPtr0 + nF; - eval1 = eval0 + nF; - x1 = *xPtr1 * (double)(*eval1); + x1 = *xPtr1; xPtr2 = xPtr1 + nF; - eval2 = eval1 + nF; - x2 = *xPtr2 * (double)(*eval2); + x2 = *xPtr2; xPtr3 = xPtr2 + nF; - eval3 = eval2 + nF; - x3 = *xPtr3 * (double)(*eval3); + x3 = *xPtr3; xPtr4 = xPtr3 + nF; - eval4 = eval3 + nF; - x4 = *xPtr4 * (double)(*eval4); + x4 = *xPtr4; xPtr5 = xPtr4 + nF; - eval5 = eval4 + nF; - x5 = *xPtr5 * (double)(*eval5); + x5 = *xPtr5; xPtr6 = xPtr5 + nF; - eval6 = eval5 + nF; - x6 = *xPtr6 * (double)(*eval6); + x6 = *xPtr6; xPtr7 = xPtr6 + nF; - eval7 = eval6 + nF; - x7 = *xPtr7 * (double)(*eval7); + x7 = *xPtr7; xPtr8 = xPtr7 + nF; - eval8 = eval7 + nF; - x8 = *xPtr8 * (double)(*eval8); + x8 = *xPtr8; xPtr9 = xPtr8 + nF; - eval9 = eval8 + nF; - x9 = *xPtr9 * (double)(*eval9); + x9 = *xPtr9; xPtr10 = xPtr9 + nF; - eval10 = eval9 + nF; - x10 = *xPtr10 * (double)(*eval10); + x10 = *xPtr10; xPtr11 = xPtr10 + nF; - eval11 = eval10 + nF; - x11 = *xPtr11 * (double)(*eval11); + x11 = *xPtr11; xPtr12 = xPtr11 + nF; - eval12 = eval11 + nF; - x12 = *xPtr12 * (double)(*eval12); + x12 = *xPtr12; xPtr13 = xPtr12 + nF; - eval13 = eval12 + nF; - x13 = *xPtr13 * (double)(*eval13); + x13 = *xPtr13; xPtr14 = xPtr13 + nF; - eval14 = eval13 + nF; - x14 = *xPtr14 * (double)(*eval14); + x14 = *xPtr14; if (x0 != 0 || x1 != 0 || x2 != 0 || x3 != 0 || x4 != 0 || x5 != 0 || x6 != 0 || x7 != 0 || x8 != 0 || x9 != 0 || x10 != 0 || x11 != 0 || x12 != 0 || x13 != 0 || x14 != 0) { YPtr = Y + nS * (*t_v); @@ -799,53 +678,37 @@ void* COMMIT_A__block( void *ptr ) while (t_v != t_vEnd) { xPtr0 = x + (*t_f); - eval0 = ICeval + *t_f; - x0 = *xPtr0 * (double)(*eval0); + x0 = *xPtr0; xPtr1 = xPtr0 + nF; - eval1 = eval0 + nF; - x1 = *xPtr1 * (double)(*eval1); + x1 = *xPtr1; xPtr2 = xPtr1 + nF; - eval2 = eval1 + nF; - x2 = *xPtr2 * (double)(*eval2); + x2 = *xPtr2; xPtr3 = xPtr2 + nF; - eval3 = eval2 + nF; - x3 = *xPtr3 * (double)(*eval3); + x3 = *xPtr3; xPtr4 = xPtr3 + nF; - eval4 = eval3 + nF; - x4 = *xPtr4 * (double)(*eval4); + x4 = *xPtr4; xPtr5 = xPtr4 + nF; - eval5 = eval4 + nF; - x5 = *xPtr5 * (double)(*eval5); + x5 = *xPtr5; xPtr6 = xPtr5 + nF; - eval6 = eval5 + nF; - x6 = *xPtr6 * (double)(*eval6); + x6 = *xPtr6; xPtr7 = xPtr6 + nF; - eval7 = eval6 + nF; - x7 = *xPtr7 * (double)(*eval7); + x7 = *xPtr7; xPtr8 = xPtr7 + nF; - eval8 = eval7 + nF; - x8 = *xPtr8 * (double)(*eval8); + x8 = *xPtr8; xPtr9 = xPtr8 + nF; - eval9 = eval8 + nF; - x9 = *xPtr9 * (double)(*eval9); + x9 = *xPtr9; xPtr10 = xPtr9 + nF; - eval10 = eval9 + nF; - x10 = *xPtr10 * (double)(*eval10); + x10 = *xPtr10; xPtr11 = xPtr10 + nF; - eval11 = eval10 + nF; - x11 = *xPtr11 * (double)(*eval11); + x11 = *xPtr11; xPtr12 = xPtr11 + nF; - eval12 = eval11 + nF; - x12 = *xPtr12 * (double)(*eval12); + x12 = *xPtr12; xPtr13 = xPtr12 + nF; - eval13 = eval12 + nF; - x13 = *xPtr13 * (double)(*eval13); + x13 = *xPtr13; xPtr14 = xPtr13 + nF; - eval14 = eval13 + nF; - x14 = *xPtr14 * (double)(*eval14); + x14 = *xPtr14; xPtr15 = xPtr14 + nF; - eval15 = eval14 + nF; - x15 = *xPtr15 * (double)(*eval15); + x15 = *xPtr15; if (x0 != 0 || x1 != 0 || x2 != 0 || x3 != 0 || x4 != 0 || x5 != 0 || x6 != 0 || x7 != 0 || x8 != 0 || x9 != 0 || x10 != 0 || x11 != 0 || x12 != 0 || x13 != 0 || x14 != 0 || x15 != 0) { YPtr = Y + nS * (*t_v); @@ -881,56 +744,39 @@ void* COMMIT_A__block( void *ptr ) while (t_v != t_vEnd) { xPtr0 = x + (*t_f); - eval0 = ICeval + *t_f; - x0 = *xPtr0 * (double)(*eval0); + x0 = *xPtr0; xPtr1 = xPtr0 + nF; - eval1 = eval0 + nF; - x1 = *xPtr1 * (double)(*eval1); + x1 = *xPtr1; xPtr2 = xPtr1 + nF; - eval2 = eval1 + nF; - x2 = *xPtr2 * (double)(*eval2); + x2 = *xPtr2; xPtr3 = xPtr2 + nF; - eval3 = eval2 + nF; - x3 = *xPtr3 * (double)(*eval3); + x3 = *xPtr3; xPtr4 = xPtr3 + nF; - eval4 = eval3 + nF; - x4 = *xPtr4 * (double)(*eval4); + x4 = *xPtr4; xPtr5 = xPtr4 + nF; - eval5 = eval4 + nF; - x5 = *xPtr5 * (double)(*eval5); + x5 = *xPtr5; xPtr6 = xPtr5 + nF; - eval6 = eval5 + nF; - x6 = *xPtr6 * (double)(*eval6); + x6 = *xPtr6; xPtr7 = xPtr6 + nF; - eval7 = eval6 + nF; - x7 = *xPtr7 * (double)(*eval7); + x7 = *xPtr7; xPtr8 = xPtr7 + nF; - eval8 = eval7 + nF; - x8 = *xPtr8 * (double)(*eval8); + x8 = *xPtr8; xPtr9 = xPtr8 + nF; - eval9 = eval8 + nF; - x9 = *xPtr9 * (double)(*eval9); + x9 = *xPtr9; xPtr10 = xPtr9 + nF; - eval10 = eval9 + nF; - x10 = *xPtr10 * (double)(*eval10); + x10 = *xPtr10; xPtr11 = xPtr10 + nF; - eval11 = eval10 + nF; - x11 = *xPtr11 * (double)(*eval11); + x11 = *xPtr11; xPtr12 = xPtr11 + nF; - eval12 = eval11 + nF; - x12 = *xPtr12 * (double)(*eval12); + x12 = *xPtr12; xPtr13 = xPtr12 + nF; - eval13 = eval12 + nF; - x13 = *xPtr13 * (double)(*eval13); + x13 = *xPtr13; xPtr14 = xPtr13 + nF; - eval14 = eval13 + nF; - x14 = *xPtr14 * (double)(*eval14); + x14 = *xPtr14; xPtr15 = xPtr14 + nF; - eval15 = eval14 + nF; - x15 = *xPtr15 * (double)(*eval15); + x15 = *xPtr15; xPtr16 = xPtr15 + nF; - eval16 = eval15 + nF; - x16 = *xPtr16 * (double)(*eval16); + x16 = *xPtr16; if (x0 != 0 || x1 != 0 || x2 != 0 || x3 != 0 || x4 != 0 || x5 != 0 || x6 != 0 || x7 != 0 || x8 != 0 || x9 != 0 || x10 != 0 || x11 != 0 || x12 != 0 || x13 != 0 || x14 != 0 || x15 != 0 || x16 != 0) { YPtr = Y + nS * (*t_v); @@ -967,59 +813,41 @@ void* COMMIT_A__block( void *ptr ) while (t_v != t_vEnd) { xPtr0 = x + (*t_f); - eval0 = ICeval + *t_f; - x0 = *xPtr0 * (double)(*eval0); + x0 = *xPtr0; xPtr1 = xPtr0 + nF; - eval1 = eval0 + nF; - x1 = *xPtr1 * (double)(*eval1); + x1 = *xPtr1; xPtr2 = xPtr1 + nF; - eval2 = eval1 + nF; - x2 = *xPtr2 * (double)(*eval2); + x2 = *xPtr2; xPtr3 = xPtr2 + nF; - eval3 = eval2 + nF; - x3 = *xPtr3 * (double)(*eval3); + x3 = *xPtr3; xPtr4 = xPtr3 + nF; - eval4 = eval3 + nF; - x4 = *xPtr4 * (double)(*eval4); + x4 = *xPtr4; xPtr5 = xPtr4 + nF; - eval5 = eval4 + nF; - x5 = *xPtr5 * (double)(*eval5); + x5 = *xPtr5; xPtr6 = xPtr5 + nF; - eval6 = eval5 + nF; - x6 = *xPtr6 * (double)(*eval6); + x6 = *xPtr6; xPtr7 = xPtr6 + nF; - eval7 = eval6 + nF; - x7 = *xPtr7 * (double)(*eval7); + x7 = *xPtr7; xPtr8 = xPtr7 + nF; - eval8 = eval7 + nF; - x8 = *xPtr8 * (double)(*eval8); + x8 = *xPtr8; xPtr9 = xPtr8 + nF; - eval9 = eval8 + nF; - x9 = *xPtr9 * (double)(*eval9); + x9 = *xPtr9; xPtr10 = xPtr9 + nF; - eval10 = eval9 + nF; - x10 = *xPtr10 * (double)(*eval10); + x10 = *xPtr10; xPtr11 = xPtr10 + nF; - eval11 = eval10 + nF; - x11 = *xPtr11 * (double)(*eval11); + x11 = *xPtr11; xPtr12 = xPtr11 + nF; - eval12 = eval11 + nF; - x12 = *xPtr12 * (double)(*eval12); + x12 = *xPtr12; xPtr13 = xPtr12 + nF; - eval13 = eval12 + nF; - x13 = *xPtr13 * (double)(*eval13); + x13 = *xPtr13; xPtr14 = xPtr13 + nF; - eval14 = eval13 + nF; - x14 = *xPtr14 * (double)(*eval14); + x14 = *xPtr14; xPtr15 = xPtr14 + nF; - eval15 = eval14 + nF; - x15 = *xPtr15 * (double)(*eval15); + x15 = *xPtr15; xPtr16 = xPtr15 + nF; - eval16 = eval15 + nF; - x16 = *xPtr16 * (double)(*eval16); + x16 = *xPtr16; xPtr17 = xPtr16 + nF; - eval17 = eval16 + nF; - x17 = *xPtr17 * (double)(*eval17); + x17 = *xPtr17; if (x0 != 0 || x1 != 0 || x2 != 0 || x3 != 0 || x4 != 0 || x5 != 0 || x6 != 0 || x7 != 0 || x8 != 0 || x9 != 0 || x10 != 0 || x11 != 0 || x12 != 0 || x13 != 0 || x14 != 0 || x15 != 0 || x16 != 0 || x17 != 0) { YPtr = Y + nS * (*t_v); @@ -1057,62 +885,43 @@ void* COMMIT_A__block( void *ptr ) while (t_v != t_vEnd) { xPtr0 = x + (*t_f); - eval0 = ICeval + *t_f; - x0 = *xPtr0 * (double)(*eval0); + x0 = *xPtr0; xPtr1 = xPtr0 + nF; - eval1 = eval0 + nF; - x1 = *xPtr1 * (double)(*eval1); + x1 = *xPtr1; xPtr2 = xPtr1 + nF; - eval2 = eval1 + nF; - x2 = *xPtr2 * (double)(*eval2); + x2 = *xPtr2; xPtr3 = xPtr2 + nF; - eval3 = eval2 + nF; - x3 = *xPtr3 * (double)(*eval3); + x3 = *xPtr3; xPtr4 = xPtr3 + nF; - eval4 = eval3 + nF; - x4 = *xPtr4 * (double)(*eval4); + x4 = *xPtr4; xPtr5 = xPtr4 + nF; - eval5 = eval4 + nF; - x5 = *xPtr5 * (double)(*eval5); + x5 = *xPtr5; xPtr6 = xPtr5 + nF; - eval6 = eval5 + nF; - x6 = *xPtr6 * (double)(*eval6); + x6 = *xPtr6; xPtr7 = xPtr6 + nF; - eval7 = eval6 + nF; - x7 = *xPtr7 * (double)(*eval7); + x7 = *xPtr7; xPtr8 = xPtr7 + nF; - eval8 = eval7 + nF; - x8 = *xPtr8 * (double)(*eval8); + x8 = *xPtr8; xPtr9 = xPtr8 + nF; - eval9 = eval8 + nF; - x9 = *xPtr9 * (double)(*eval9); + x9 = *xPtr9; xPtr10 = xPtr9 + nF; - eval10 = eval9 + nF; - x10 = *xPtr10 * (double)(*eval10); + x10 = *xPtr10; xPtr11 = xPtr10 + nF; - eval11 = eval10 + nF; - x11 = *xPtr11 * (double)(*eval11); + x11 = *xPtr11; xPtr12 = xPtr11 + nF; - eval12 = eval11 + nF; - x12 = *xPtr12 * (double)(*eval12); + x12 = *xPtr12; xPtr13 = xPtr12 + nF; - eval13 = eval12 + nF; - x13 = *xPtr13 * (double)(*eval13); + x13 = *xPtr13; xPtr14 = xPtr13 + nF; - eval14 = eval13 + nF; - x14 = *xPtr14 * (double)(*eval14); + x14 = *xPtr14; xPtr15 = xPtr14 + nF; - eval15 = eval14 + nF; - x15 = *xPtr15 * (double)(*eval15); + x15 = *xPtr15; xPtr16 = xPtr15 + nF; - eval16 = eval15 + nF; - x16 = *xPtr16 * (double)(*eval16); + x16 = *xPtr16; xPtr17 = xPtr16 + nF; - eval17 = eval16 + nF; - x17 = *xPtr17 * (double)(*eval17); + x17 = *xPtr17; xPtr18 = xPtr17 + nF; - eval18 = eval17 + nF; - x18 = *xPtr18 * (double)(*eval18); + x18 = *xPtr18; if (x0 != 0 || x1 != 0 || x2 != 0 || x3 != 0 || x4 != 0 || x5 != 0 || x6 != 0 || x7 != 0 || x8 != 0 || x9 != 0 || x10 != 0 || x11 != 0 || x12 != 0 || x13 != 0 || x14 != 0 || x15 != 0 || x16 != 0 || x17 != 0 || x18 != 0) { YPtr = Y + nS * (*t_v); @@ -1151,65 +960,45 @@ void* COMMIT_A__block( void *ptr ) while (t_v != t_vEnd) { xPtr0 = x + (*t_f); - eval0 = ICeval + *t_f; - x0 = *xPtr0 * (double)(*eval0); + x0 = *xPtr0; xPtr1 = xPtr0 + nF; - eval1 = eval0 + nF; - x1 = *xPtr1 * (double)(*eval1); + x1 = *xPtr1; xPtr2 = xPtr1 + nF; - eval2 = eval1 + nF; - x2 = *xPtr2 * (double)(*eval2); + x2 = *xPtr2; xPtr3 = xPtr2 + nF; - eval3 = eval2 + nF; - x3 = *xPtr3 * (double)(*eval3); + x3 = *xPtr3; xPtr4 = xPtr3 + nF; - eval4 = eval3 + nF; - x4 = *xPtr4 * (double)(*eval4); + x4 = *xPtr4; xPtr5 = xPtr4 + nF; - eval5 = eval4 + nF; - x5 = *xPtr5 * (double)(*eval5); + x5 = *xPtr5; xPtr6 = xPtr5 + nF; - eval6 = eval5 + nF; - x6 = *xPtr6 * (double)(*eval6); + x6 = *xPtr6; xPtr7 = xPtr6 + nF; - eval7 = eval6 + nF; - x7 = *xPtr7 * (double)(*eval7); + x7 = *xPtr7; xPtr8 = xPtr7 + nF; - eval8 = eval7 + nF; - x8 = *xPtr8 * (double)(*eval8); + x8 = *xPtr8; xPtr9 = xPtr8 + nF; - eval9 = eval8 + nF; - x9 = *xPtr9 * (double)(*eval9); + x9 = *xPtr9; xPtr10 = xPtr9 + nF; - eval10 = eval9 + nF; - x10 = *xPtr10 * (double)(*eval10); + x10 = *xPtr10; xPtr11 = xPtr10 + nF; - eval11 = eval10 + nF; - x11 = *xPtr11 * (double)(*eval11); + x11 = *xPtr11; xPtr12 = xPtr11 + nF; - eval12 = eval11 + nF; - x12 = *xPtr12 * (double)(*eval12); + x12 = *xPtr12; xPtr13 = xPtr12 + nF; - eval13 = eval12 + nF; - x13 = *xPtr13 * (double)(*eval13); + x13 = *xPtr13; xPtr14 = xPtr13 + nF; - eval14 = eval13 + nF; - x14 = *xPtr14 * (double)(*eval14); + x14 = *xPtr14; xPtr15 = xPtr14 + nF; - eval15 = eval14 + nF; - x15 = *xPtr15 * (double)(*eval15); + x15 = *xPtr15; xPtr16 = xPtr15 + nF; - eval16 = eval15 + nF; - x16 = *xPtr16 * (double)(*eval16); + x16 = *xPtr16; xPtr17 = xPtr16 + nF; - eval17 = eval16 + nF; - x17 = *xPtr17 * (double)(*eval17); + x17 = *xPtr17; xPtr18 = xPtr17 + nF; - eval18 = eval17 + nF; - x18 = *xPtr18 * (double)(*eval18); + x18 = *xPtr18; xPtr19 = xPtr18 + nF; - eval19 = eval18 + nF; - x19 = *xPtr19 * (double)(*eval19); + x19 = *xPtr19; if (x0 != 0 || x1 != 0 || x2 != 0 || x3 != 0 || x4 != 0 || x5 != 0 || x6 != 0 || x7 != 0 || x8 != 0 || x9 != 0 || x10 != 0 || x11 != 0 || x12 != 0 || x13 != 0 || x14 != 0 || x15 != 0 || x16 != 0 || x17 != 0 || x18 != 0 || x19 != 0) { YPtr = Y + nS * (*t_v); @@ -3060,7 +2849,7 @@ void* COMMIT_A__block( void *ptr ) void COMMIT_A( int _nF, int _nE, int _nV, int _nS, int _ndirs, double *_vIN, double *_vOUT, - uint32_t *_ICf, uint32_t *_ICeval, uint32_t *_ICv, uint16_t *_ICo, float *_ICl, + uint32_t *_ICf, uint32_t *_ICv, uint16_t *_ICo, float *_ICl, uint32_t *_ECv, uint16_t *_ECo, uint32_t *_ISOv, float *_wmrSFP, float *_wmhSFP, float *_isoSFP, @@ -3078,7 +2867,6 @@ void COMMIT_A( Y = _vOUT; ICf = _ICf; - ICeval = _ICeval; ICv = _ICv; ICo = _ICo; ICl = _ICl; @@ -3874,7 +3662,6 @@ void* COMMIT_At__block( void *ptr ) { int id = (long)ptr; int offset; - uint32_t *eval0, *eval1, *eval2, *eval3, *eval4, *eval5, *eval6, *eval7, *eval8, *eval9, *eval10, *eval11, *eval12, *eval13, *eval14, *eval15, *eval16, *eval17, *eval18, *eval19; double x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, w, YTmp; double *xPtr0, *xPtr1, *xPtr2, *xPtr3, *xPtr4, *xPtr5, *xPtr6, *xPtr7, *xPtr8, *xPtr9, *xPtr10, *xPtr11, *xPtr12, *xPtr13, *xPtr14, *xPtr15, *xPtr16, *xPtr17, *xPtr18, *xPtr19; double *YPtr, *YPtrEnd; @@ -3907,14 +3694,12 @@ void* COMMIT_At__block( void *ptr ) YTmp = *YPtr; SFP0ptr = wmrSFP0 + offset; x0 = (*SFP0ptr++) * YTmp; - // eval0 = ICeval + *t_f; - while (++YPtr != YPtrEnd) { YTmp = *YPtr; x0 += (*SFP0ptr++) * YTmp; } - x[*t_f] += w * x0 * (double)(ICeval[*t_f]); + x[*t_f] += w * x0; } t_f++; t_v++; @@ -3936,18 +3721,15 @@ void* COMMIT_At__block( void *ptr ) SFP0ptr = wmrSFP0 + offset; SFP1ptr = wmrSFP1 + offset; x0 = (*SFP0ptr++) * YTmp; - eval0 = ICeval + *t_f; - x1 = (*SFP1ptr++) * YTmp; - eval1 = eval0 + nF; while (++YPtr != YPtrEnd) { YTmp = *YPtr; x0 += (*SFP0ptr++) * YTmp; x1 += (*SFP1ptr++) * YTmp; } - x[*t_f] += w * x0 * (double)(*eval0); - x[*t_f+nF] += w * x1 * (double)(*eval1); + x[*t_f] += w * x0; + x[*t_f+nF] += w * x1; } t_f++; t_v++; @@ -3970,12 +3752,8 @@ void* COMMIT_At__block( void *ptr ) SFP1ptr = wmrSFP1 + offset; SFP2ptr = wmrSFP2 + offset; x0 = (*SFP0ptr++) * YTmp; - eval0 = ICeval + *t_f; - x1 = (*SFP1ptr++) * YTmp; - eval1 = eval0 + nF; x2 = (*SFP2ptr++) * YTmp; - eval2 = eval1 + nF; while (++YPtr != YPtrEnd) { YTmp = *YPtr; @@ -3983,9 +3761,9 @@ void* COMMIT_At__block( void *ptr ) x1 += (*SFP1ptr++) * YTmp; x2 += (*SFP2ptr++) * YTmp; } - x[*t_f] += w * x0 * (double)(*eval0); - x[*t_f+nF] += w * x1 * (double)(*eval1); - x[*t_f+2*nF] += w * x2 * (double)(*eval2); + x[*t_f] += w * x0; + x[*t_f+nF] += w * x1; + x[*t_f+2*nF] += w * x2; } t_f++; t_v++; @@ -4009,14 +3787,9 @@ void* COMMIT_At__block( void *ptr ) SFP2ptr = wmrSFP2 + offset; SFP3ptr = wmrSFP3 + offset; x0 = (*SFP0ptr++) * YTmp; - eval0 = ICeval + *t_f; - x1 = (*SFP1ptr++) * YTmp; - eval1 = eval0 + nF; x2 = (*SFP2ptr++) * YTmp; - eval2 = eval1 + nF; x3 = (*SFP3ptr++) * YTmp; - eval3 = eval2 + nF; while (++YPtr != YPtrEnd) { YTmp = *YPtr; @@ -4025,10 +3798,10 @@ void* COMMIT_At__block( void *ptr ) x2 += (*SFP2ptr++) * YTmp; x3 += (*SFP3ptr++) * YTmp; } - x[*t_f] += w * x0 * (double)(*eval0); - x[*t_f+nF] += w * x1 * (double)(*eval1); - x[*t_f+2*nF] += w * x2 * (double)(*eval2); - x[*t_f+3*nF] += w * x3 * (double)(*eval3); + x[*t_f] += w * x0; + x[*t_f+nF] += w * x1; + x[*t_f+2*nF] += w * x2; + x[*t_f+3*nF] += w * x3; } t_f++; t_v++; @@ -4053,16 +3826,10 @@ void* COMMIT_At__block( void *ptr ) SFP3ptr = wmrSFP3 + offset; SFP4ptr = wmrSFP4 + offset; x0 = (*SFP0ptr++) * YTmp; - eval0 = ICeval + *t_f; - x1 = (*SFP1ptr++) * YTmp; - eval1 = eval0 + nF; x2 = (*SFP2ptr++) * YTmp; - eval2 = eval1 + nF; x3 = (*SFP3ptr++) * YTmp; - eval3 = eval2 + nF; x4 = (*SFP4ptr++) * YTmp; - eval4 = eval3 + nF; while (++YPtr != YPtrEnd) { YTmp = *YPtr; @@ -4072,11 +3839,11 @@ void* COMMIT_At__block( void *ptr ) x3 += (*SFP3ptr++) * YTmp; x4 += (*SFP4ptr++) * YTmp; } - x[*t_f] += w * x0 * (double)(*eval0); - x[*t_f+nF] += w * x1 * (double)(*eval1); - x[*t_f+2*nF] += w * x2 * (double)(*eval2); - x[*t_f+3*nF] += w * x3 * (double)(*eval3); - x[*t_f+4*nF] += w * x4 * (double)(*eval4); + x[*t_f] += w * x0; + x[*t_f+nF] += w * x1; + x[*t_f+2*nF] += w * x2; + x[*t_f+3*nF] += w * x3; + x[*t_f+4*nF] += w * x4; } t_f++; t_v++; @@ -4102,18 +3869,11 @@ void* COMMIT_At__block( void *ptr ) SFP4ptr = wmrSFP4 + offset; SFP5ptr = wmrSFP5 + offset; x0 = (*SFP0ptr++) * YTmp; - eval0 = ICeval + *t_f; - x1 = (*SFP1ptr++) * YTmp; - eval1 = eval0 + nF; x2 = (*SFP2ptr++) * YTmp; - eval2 = eval1 + nF; x3 = (*SFP3ptr++) * YTmp; - eval3 = eval2 + nF; x4 = (*SFP4ptr++) * YTmp; - eval4 = eval3 + nF; x5 = (*SFP5ptr++) * YTmp; - eval5 = eval4 + nF; while (++YPtr != YPtrEnd) { YTmp = *YPtr; @@ -4124,12 +3884,12 @@ void* COMMIT_At__block( void *ptr ) x4 += (*SFP4ptr++) * YTmp; x5 += (*SFP5ptr++) * YTmp; } - x[*t_f] += w * x0 * (double)(*eval0); - x[*t_f+nF] += w * x1 * (double)(*eval1); - x[*t_f+2*nF] += w * x2 * (double)(*eval2); - x[*t_f+3*nF] += w * x3 * (double)(*eval3); - x[*t_f+4*nF] += w * x4 * (double)(*eval4); - x[*t_f+5*nF] += w * x5 * (double)(*eval5); + x[*t_f] += w * x0; + x[*t_f+nF] += w * x1; + x[*t_f+2*nF] += w * x2; + x[*t_f+3*nF] += w * x3; + x[*t_f+4*nF] += w * x4; + x[*t_f+5*nF] += w * x5; } t_f++; t_v++; @@ -4156,20 +3916,12 @@ void* COMMIT_At__block( void *ptr ) SFP5ptr = wmrSFP5 + offset; SFP6ptr = wmrSFP6 + offset; x0 = (*SFP0ptr++) * YTmp; - eval0 = ICeval + *t_f; - x1 = (*SFP1ptr++) * YTmp; - eval1 = eval0 + nF; x2 = (*SFP2ptr++) * YTmp; - eval2 = eval1 + nF; x3 = (*SFP3ptr++) * YTmp; - eval3 = eval2 + nF; x4 = (*SFP4ptr++) * YTmp; - eval4 = eval3 + nF; x5 = (*SFP5ptr++) * YTmp; - eval5 = eval4 + nF; x6 = (*SFP6ptr++) * YTmp; - eval6 = eval5 + nF; while (++YPtr != YPtrEnd) { YTmp = *YPtr; @@ -4181,13 +3933,13 @@ void* COMMIT_At__block( void *ptr ) x5 += (*SFP5ptr++) * YTmp; x6 += (*SFP6ptr++) * YTmp; } - x[*t_f] += w * x0 * (double)(*eval0); - x[*t_f+nF] += w * x1 * (double)(*eval1); - x[*t_f+2*nF] += w * x2 * (double)(*eval2); - x[*t_f+3*nF] += w * x3 * (double)(*eval3); - x[*t_f+4*nF] += w * x4 * (double)(*eval4); - x[*t_f+5*nF] += w * x5 * (double)(*eval5); - x[*t_f+6*nF] += w * x6 * (double)(*eval6); + x[*t_f] += w * x0; + x[*t_f+nF] += w * x1; + x[*t_f+2*nF] += w * x2; + x[*t_f+3*nF] += w * x3; + x[*t_f+4*nF] += w * x4; + x[*t_f+5*nF] += w * x5; + x[*t_f+6*nF] += w * x6; } t_f++; t_v++; @@ -4215,22 +3967,13 @@ void* COMMIT_At__block( void *ptr ) SFP6ptr = wmrSFP6 + offset; SFP7ptr = wmrSFP7 + offset; x0 = (*SFP0ptr++) * YTmp; - eval0 = ICeval + *t_f; - x1 = (*SFP1ptr++) * YTmp; - eval1 = eval0 + nF; x2 = (*SFP2ptr++) * YTmp; - eval2 = eval1 + nF; x3 = (*SFP3ptr++) * YTmp; - eval3 = eval2 + nF; x4 = (*SFP4ptr++) * YTmp; - eval4 = eval3 + nF; x5 = (*SFP5ptr++) * YTmp; - eval5 = eval4 + nF; x6 = (*SFP6ptr++) * YTmp; - eval6 = eval5 + nF; x7 = (*SFP7ptr++) * YTmp; - eval7 = eval6 + nF; while (++YPtr != YPtrEnd) { YTmp = *YPtr; @@ -4243,14 +3986,14 @@ void* COMMIT_At__block( void *ptr ) x6 += (*SFP6ptr++) * YTmp; x7 += (*SFP7ptr++) * YTmp; } - x[*t_f] += w * x0 * (double)(*eval0); - x[*t_f+nF] += w * x1 * (double)(*eval1); - x[*t_f+2*nF] += w * x2 * (double)(*eval2); - x[*t_f+3*nF] += w * x3 * (double)(*eval3); - x[*t_f+4*nF] += w * x4 * (double)(*eval4); - x[*t_f+5*nF] += w * x5 * (double)(*eval5); - x[*t_f+6*nF] += w * x6 * (double)(*eval6); - x[*t_f+7*nF] += w * x7 * (double)(*eval7); + x[*t_f] += w * x0; + x[*t_f+nF] += w * x1; + x[*t_f+2*nF] += w * x2; + x[*t_f+3*nF] += w * x3; + x[*t_f+4*nF] += w * x4; + x[*t_f+5*nF] += w * x5; + x[*t_f+6*nF] += w * x6; + x[*t_f+7*nF] += w * x7; } t_f++; t_v++; @@ -4279,24 +4022,14 @@ void* COMMIT_At__block( void *ptr ) SFP7ptr = wmrSFP7 + offset; SFP8ptr = wmrSFP8 + offset; x0 = (*SFP0ptr++) * YTmp; - eval0 = ICeval + *t_f; - x1 = (*SFP1ptr++) * YTmp; - eval1 = eval0 + nF; x2 = (*SFP2ptr++) * YTmp; - eval2 = eval1 + nF; x3 = (*SFP3ptr++) * YTmp; - eval3 = eval2 + nF; x4 = (*SFP4ptr++) * YTmp; - eval4 = eval3 + nF; x5 = (*SFP5ptr++) * YTmp; - eval5 = eval4 + nF; x6 = (*SFP6ptr++) * YTmp; - eval6 = eval5 + nF; x7 = (*SFP7ptr++) * YTmp; - eval7 = eval6 + nF; x8 = (*SFP8ptr++) * YTmp; - eval8 = eval7 + nF; while (++YPtr != YPtrEnd) { YTmp = *YPtr; @@ -4310,15 +4043,15 @@ void* COMMIT_At__block( void *ptr ) x7 += (*SFP7ptr++) * YTmp; x8 += (*SFP8ptr++) * YTmp; } - x[*t_f] += w * x0 * (double)(*eval0); - x[*t_f+nF] += w * x1 * (double)(*eval1); - x[*t_f+2*nF] += w * x2 * (double)(*eval2); - x[*t_f+3*nF] += w * x3 * (double)(*eval3); - x[*t_f+4*nF] += w * x4 * (double)(*eval4); - x[*t_f+5*nF] += w * x5 * (double)(*eval5); - x[*t_f+6*nF] += w * x6 * (double)(*eval6); - x[*t_f+7*nF] += w * x7 * (double)(*eval7); - x[*t_f+8*nF] += w * x8 * (double)(*eval8); + x[*t_f] += w * x0; + x[*t_f+nF] += w * x1; + x[*t_f+2*nF] += w * x2; + x[*t_f+3*nF] += w * x3; + x[*t_f+4*nF] += w * x4; + x[*t_f+5*nF] += w * x5; + x[*t_f+6*nF] += w * x6; + x[*t_f+7*nF] += w * x7; + x[*t_f+8*nF] += w * x8; } t_f++; t_v++; @@ -4348,26 +4081,15 @@ void* COMMIT_At__block( void *ptr ) SFP8ptr = wmrSFP8 + offset; SFP9ptr = wmrSFP9 + offset; x0 = (*SFP0ptr++) * YTmp; - eval0 = ICeval + *t_f; - x1 = (*SFP1ptr++) * YTmp; - eval1 = eval0 + nF; x2 = (*SFP2ptr++) * YTmp; - eval2 = eval1 + nF; x3 = (*SFP3ptr++) * YTmp; - eval3 = eval2 + nF; x4 = (*SFP4ptr++) * YTmp; - eval4 = eval3 + nF; x5 = (*SFP5ptr++) * YTmp; - eval5 = eval4 + nF; x6 = (*SFP6ptr++) * YTmp; - eval6 = eval5 + nF; x7 = (*SFP7ptr++) * YTmp; - eval7 = eval6 + nF; x8 = (*SFP8ptr++) * YTmp; - eval8 = eval7 + nF; x9 = (*SFP9ptr++) * YTmp; - eval9 = eval8 + nF; while (++YPtr != YPtrEnd) { YTmp = *YPtr; @@ -4382,16 +4104,16 @@ void* COMMIT_At__block( void *ptr ) x8 += (*SFP8ptr++) * YTmp; x9 += (*SFP9ptr++) * YTmp; } - x[*t_f] += w * x0 * (double)(*eval0); - x[*t_f+nF] += w * x1 * (double)(*eval1); - x[*t_f+2*nF] += w * x2 * (double)(*eval2); - x[*t_f+3*nF] += w * x3 * (double)(*eval3); - x[*t_f+4*nF] += w * x4 * (double)(*eval4); - x[*t_f+5*nF] += w * x5 * (double)(*eval5); - x[*t_f+6*nF] += w * x6 * (double)(*eval6); - x[*t_f+7*nF] += w * x7 * (double)(*eval7); - x[*t_f+8*nF] += w * x8 * (double)(*eval8); - x[*t_f+9*nF] += w * x9 * (double)(*eval9); + x[*t_f] += w * x0; + x[*t_f+nF] += w * x1; + x[*t_f+2*nF] += w * x2; + x[*t_f+3*nF] += w * x3; + x[*t_f+4*nF] += w * x4; + x[*t_f+5*nF] += w * x5; + x[*t_f+6*nF] += w * x6; + x[*t_f+7*nF] += w * x7; + x[*t_f+8*nF] += w * x8; + x[*t_f+9*nF] += w * x9; } t_f++; t_v++; @@ -4422,28 +4144,16 @@ void* COMMIT_At__block( void *ptr ) SFP9ptr = wmrSFP9 + offset; SFP10ptr = wmrSFP10 + offset; x0 = (*SFP0ptr++) * YTmp; - eval0 = ICeval + *t_f; - x1 = (*SFP1ptr++) * YTmp; - eval1 = eval0 + nF; x2 = (*SFP2ptr++) * YTmp; - eval2 = eval1 + nF; x3 = (*SFP3ptr++) * YTmp; - eval3 = eval2 + nF; x4 = (*SFP4ptr++) * YTmp; - eval4 = eval3 + nF; x5 = (*SFP5ptr++) * YTmp; - eval5 = eval4 + nF; x6 = (*SFP6ptr++) * YTmp; - eval6 = eval5 + nF; x7 = (*SFP7ptr++) * YTmp; - eval7 = eval6 + nF; x8 = (*SFP8ptr++) * YTmp; - eval8 = eval7 + nF; x9 = (*SFP9ptr++) * YTmp; - eval9 = eval8 + nF; x10 = (*SFP10ptr++) * YTmp; - eval10 = eval9 + nF; while (++YPtr != YPtrEnd) { YTmp = *YPtr; @@ -4459,17 +4169,17 @@ void* COMMIT_At__block( void *ptr ) x9 += (*SFP9ptr++) * YTmp; x10 += (*SFP10ptr++) * YTmp; } - x[*t_f] += w * x0 * (double)(*eval0); - x[*t_f+nF] += w * x1 * (double)(*eval1); - x[*t_f+2*nF] += w * x2 * (double)(*eval2); - x[*t_f+3*nF] += w * x3 * (double)(*eval3); - x[*t_f+4*nF] += w * x4 * (double)(*eval4); - x[*t_f+5*nF] += w * x5 * (double)(*eval5); - x[*t_f+6*nF] += w * x6 * (double)(*eval6); - x[*t_f+7*nF] += w * x7 * (double)(*eval7); - x[*t_f+8*nF] += w * x8 * (double)(*eval8); - x[*t_f+9*nF] += w * x9 * (double)(*eval9); - x[*t_f+10*nF] += w * x10 * (double)(*eval10); + x[*t_f] += w * x0; + x[*t_f+nF] += w * x1; + x[*t_f+2*nF] += w * x2; + x[*t_f+3*nF] += w * x3; + x[*t_f+4*nF] += w * x4; + x[*t_f+5*nF] += w * x5; + x[*t_f+6*nF] += w * x6; + x[*t_f+7*nF] += w * x7; + x[*t_f+8*nF] += w * x8; + x[*t_f+9*nF] += w * x9; + x[*t_f+10*nF] += w * x10; } t_f++; t_v++; @@ -4501,30 +4211,17 @@ void* COMMIT_At__block( void *ptr ) SFP10ptr = wmrSFP10 + offset; SFP11ptr = wmrSFP11 + offset; x0 = (*SFP0ptr++) * YTmp; - eval0 = ICeval + *t_f; - x1 = (*SFP1ptr++) * YTmp; - eval1 = eval0 + nF; x2 = (*SFP2ptr++) * YTmp; - eval2 = eval1 + nF; x3 = (*SFP3ptr++) * YTmp; - eval3 = eval2 + nF; x4 = (*SFP4ptr++) * YTmp; - eval4 = eval3 + nF; x5 = (*SFP5ptr++) * YTmp; - eval5 = eval4 + nF; x6 = (*SFP6ptr++) * YTmp; - eval6 = eval5 + nF; x7 = (*SFP7ptr++) * YTmp; - eval7 = eval6 + nF; x8 = (*SFP8ptr++) * YTmp; - eval8 = eval7 + nF; x9 = (*SFP9ptr++) * YTmp; - eval9 = eval8 + nF; x10 = (*SFP10ptr++) * YTmp; - eval10 = eval9 + nF; x11 = (*SFP11ptr++) * YTmp; - eval11 = eval10 + nF; while (++YPtr != YPtrEnd) { YTmp = *YPtr; @@ -4541,18 +4238,18 @@ void* COMMIT_At__block( void *ptr ) x10 += (*SFP10ptr++) * YTmp; x11 += (*SFP11ptr++) * YTmp; } - x[*t_f] += w * x0 * (double)(*eval0); - x[*t_f+nF] += w * x1 * (double)(*eval1); - x[*t_f+2*nF] += w * x2 * (double)(*eval2); - x[*t_f+3*nF] += w * x3 * (double)(*eval3); - x[*t_f+4*nF] += w * x4 * (double)(*eval4); - x[*t_f+5*nF] += w * x5 * (double)(*eval5); - x[*t_f+6*nF] += w * x6 * (double)(*eval6); - x[*t_f+7*nF] += w * x7 * (double)(*eval7); - x[*t_f+8*nF] += w * x8 * (double)(*eval8); - x[*t_f+9*nF] += w * x9 * (double)(*eval9); - x[*t_f+10*nF] += w * x10 * (double)(*eval10); - x[*t_f+11*nF] += w * x11 * (double)(*eval11); + x[*t_f] += w * x0; + x[*t_f+nF] += w * x1; + x[*t_f+2*nF] += w * x2; + x[*t_f+3*nF] += w * x3; + x[*t_f+4*nF] += w * x4; + x[*t_f+5*nF] += w * x5; + x[*t_f+6*nF] += w * x6; + x[*t_f+7*nF] += w * x7; + x[*t_f+8*nF] += w * x8; + x[*t_f+9*nF] += w * x9; + x[*t_f+10*nF] += w * x10; + x[*t_f+11*nF] += w * x11; } t_f++; t_v++; @@ -4585,32 +4282,18 @@ void* COMMIT_At__block( void *ptr ) SFP11ptr = wmrSFP11 + offset; SFP12ptr = wmrSFP12 + offset; x0 = (*SFP0ptr++) * YTmp; - eval0 = ICeval + *t_f; - x1 = (*SFP1ptr++) * YTmp; - eval1 = eval0 + nF; x2 = (*SFP2ptr++) * YTmp; - eval2 = eval1 + nF; x3 = (*SFP3ptr++) * YTmp; - eval3 = eval2 + nF; x4 = (*SFP4ptr++) * YTmp; - eval4 = eval3 + nF; x5 = (*SFP5ptr++) * YTmp; - eval5 = eval4 + nF; x6 = (*SFP6ptr++) * YTmp; - eval6 = eval5 + nF; x7 = (*SFP7ptr++) * YTmp; - eval7 = eval6 + nF; x8 = (*SFP8ptr++) * YTmp; - eval8 = eval7 + nF; x9 = (*SFP9ptr++) * YTmp; - eval9 = eval8 + nF; x10 = (*SFP10ptr++) * YTmp; - eval10 = eval9 + nF; x11 = (*SFP11ptr++) * YTmp; - eval11 = eval10 + nF; x12 = (*SFP12ptr++) * YTmp; - eval12 = eval11 + nF; while (++YPtr != YPtrEnd) { YTmp = *YPtr; @@ -4628,19 +4311,19 @@ void* COMMIT_At__block( void *ptr ) x11 += (*SFP11ptr++) * YTmp; x12 += (*SFP12ptr++) * YTmp; } - x[*t_f] += w * x0 * (double)(*eval0); - x[*t_f+nF] += w * x1 * (double)(*eval1); - x[*t_f+2*nF] += w * x2 * (double)(*eval2); - x[*t_f+3*nF] += w * x3 * (double)(*eval3); - x[*t_f+4*nF] += w * x4 * (double)(*eval4); - x[*t_f+5*nF] += w * x5 * (double)(*eval5); - x[*t_f+6*nF] += w * x6 * (double)(*eval6); - x[*t_f+7*nF] += w * x7 * (double)(*eval7); - x[*t_f+8*nF] += w * x8 * (double)(*eval8); - x[*t_f+9*nF] += w * x9 * (double)(*eval9); - x[*t_f+10*nF] += w * x10 * (double)(*eval10); - x[*t_f+11*nF] += w * x11 * (double)(*eval11); - x[*t_f+12*nF] += w * x12 * (double)(*eval12); + x[*t_f] += w * x0; + x[*t_f+nF] += w * x1; + x[*t_f+2*nF] += w * x2; + x[*t_f+3*nF] += w * x3; + x[*t_f+4*nF] += w * x4; + x[*t_f+5*nF] += w * x5; + x[*t_f+6*nF] += w * x6; + x[*t_f+7*nF] += w * x7; + x[*t_f+8*nF] += w * x8; + x[*t_f+9*nF] += w * x9; + x[*t_f+10*nF] += w * x10; + x[*t_f+11*nF] += w * x11; + x[*t_f+12*nF] += w * x12; } t_f++; t_v++; @@ -4674,34 +4357,19 @@ void* COMMIT_At__block( void *ptr ) SFP12ptr = wmrSFP12 + offset; SFP13ptr = wmrSFP13 + offset; x0 = (*SFP0ptr++) * YTmp; - eval0 = ICeval + *t_f; - x1 = (*SFP1ptr++) * YTmp; - eval1 = eval0 + nF; x2 = (*SFP2ptr++) * YTmp; - eval2 = eval1 + nF; x3 = (*SFP3ptr++) * YTmp; - eval3 = eval2 + nF; x4 = (*SFP4ptr++) * YTmp; - eval4 = eval3 + nF; x5 = (*SFP5ptr++) * YTmp; - eval5 = eval4 + nF; x6 = (*SFP6ptr++) * YTmp; - eval6 = eval5 + nF; x7 = (*SFP7ptr++) * YTmp; - eval7 = eval6 + nF; x8 = (*SFP8ptr++) * YTmp; - eval8 = eval7 + nF; x9 = (*SFP9ptr++) * YTmp; - eval9 = eval8 + nF; x10 = (*SFP10ptr++) * YTmp; - eval10 = eval9 + nF; x11 = (*SFP11ptr++) * YTmp; - eval11 = eval10 + nF; x12 = (*SFP12ptr++) * YTmp; - eval12 = eval11 + nF; x13 = (*SFP13ptr++) * YTmp; - eval13 = eval12 + nF; while (++YPtr != YPtrEnd) { YTmp = *YPtr; @@ -4720,20 +4388,20 @@ void* COMMIT_At__block( void *ptr ) x12 += (*SFP12ptr++) * YTmp; x13 += (*SFP13ptr++) * YTmp; } - x[*t_f] += w * x0 * (double)(*eval0); - x[*t_f+nF] += w * x1 * (double)(*eval1); - x[*t_f+2*nF] += w * x2 * (double)(*eval2); - x[*t_f+3*nF] += w * x3 * (double)(*eval3); - x[*t_f+4*nF] += w * x4 * (double)(*eval4); - x[*t_f+5*nF] += w * x5 * (double)(*eval5); - x[*t_f+6*nF] += w * x6 * (double)(*eval6); - x[*t_f+7*nF] += w * x7 * (double)(*eval7); - x[*t_f+8*nF] += w * x8 * (double)(*eval8); - x[*t_f+9*nF] += w * x9 * (double)(*eval9); - x[*t_f+10*nF] += w * x10 * (double)(*eval10); - x[*t_f+11*nF] += w * x11 * (double)(*eval11); - x[*t_f+12*nF] += w * x12 * (double)(*eval12); - x[*t_f+13*nF] += w * x13 * (double)(*eval13); + x[*t_f] += w * x0; + x[*t_f+nF] += w * x1; + x[*t_f+2*nF] += w * x2; + x[*t_f+3*nF] += w * x3; + x[*t_f+4*nF] += w * x4; + x[*t_f+5*nF] += w * x5; + x[*t_f+6*nF] += w * x6; + x[*t_f+7*nF] += w * x7; + x[*t_f+8*nF] += w * x8; + x[*t_f+9*nF] += w * x9; + x[*t_f+10*nF] += w * x10; + x[*t_f+11*nF] += w * x11; + x[*t_f+12*nF] += w * x12; + x[*t_f+13*nF] += w * x13; } t_f++; t_v++; @@ -4768,36 +4436,20 @@ void* COMMIT_At__block( void *ptr ) SFP13ptr = wmrSFP13 + offset; SFP14ptr = wmrSFP14 + offset; x0 = (*SFP0ptr++) * YTmp; - eval0 = ICeval + *t_f; - x1 = (*SFP1ptr++) * YTmp; - eval1 = eval0 + nF; x2 = (*SFP2ptr++) * YTmp; - eval2 = eval1 + nF; x3 = (*SFP3ptr++) * YTmp; - eval3 = eval2 + nF; x4 = (*SFP4ptr++) * YTmp; - eval4 = eval3 + nF; x5 = (*SFP5ptr++) * YTmp; - eval5 = eval4 + nF; x6 = (*SFP6ptr++) * YTmp; - eval6 = eval5 + nF; x7 = (*SFP7ptr++) * YTmp; - eval7 = eval6 + nF; x8 = (*SFP8ptr++) * YTmp; - eval8 = eval7 + nF; x9 = (*SFP9ptr++) * YTmp; - eval9 = eval8 + nF; x10 = (*SFP10ptr++) * YTmp; - eval10 = eval9 + nF; x11 = (*SFP11ptr++) * YTmp; - eval11 = eval10 + nF; x12 = (*SFP12ptr++) * YTmp; - eval12 = eval11 + nF; x13 = (*SFP13ptr++) * YTmp; - eval13 = eval12 + nF; x14 = (*SFP14ptr++) * YTmp; - eval14 = eval13 + nF; while (++YPtr != YPtrEnd) { YTmp = *YPtr; @@ -4817,21 +4469,21 @@ void* COMMIT_At__block( void *ptr ) x13 += (*SFP13ptr++) * YTmp; x14 += (*SFP14ptr++) * YTmp; } - x[*t_f] += w * x0 * (double)(*eval0); - x[*t_f+nF] += w * x1 * (double)(*eval1); - x[*t_f+2*nF] += w * x2 * (double)(*eval2); - x[*t_f+3*nF] += w * x3 * (double)(*eval3); - x[*t_f+4*nF] += w * x4 * (double)(*eval4); - x[*t_f+5*nF] += w * x5 * (double)(*eval5); - x[*t_f+6*nF] += w * x6 * (double)(*eval6); - x[*t_f+7*nF] += w * x7 * (double)(*eval7); - x[*t_f+8*nF] += w * x8 * (double)(*eval8); - x[*t_f+9*nF] += w * x9 * (double)(*eval9); - x[*t_f+10*nF] += w * x10 * (double)(*eval10); - x[*t_f+11*nF] += w * x11 * (double)(*eval11); - x[*t_f+12*nF] += w * x12 * (double)(*eval12); - x[*t_f+13*nF] += w * x13 * (double)(*eval13); - x[*t_f+14*nF] += w * x14 * (double)(*eval14); + x[*t_f] += w * x0; + x[*t_f+nF] += w * x1; + x[*t_f+2*nF] += w * x2; + x[*t_f+3*nF] += w * x3; + x[*t_f+4*nF] += w * x4; + x[*t_f+5*nF] += w * x5; + x[*t_f+6*nF] += w * x6; + x[*t_f+7*nF] += w * x7; + x[*t_f+8*nF] += w * x8; + x[*t_f+9*nF] += w * x9; + x[*t_f+10*nF] += w * x10; + x[*t_f+11*nF] += w * x11; + x[*t_f+12*nF] += w * x12; + x[*t_f+13*nF] += w * x13; + x[*t_f+14*nF] += w * x14; } t_f++; t_v++; @@ -4867,38 +4519,21 @@ void* COMMIT_At__block( void *ptr ) SFP14ptr = wmrSFP14 + offset; SFP15ptr = wmrSFP15 + offset; x0 = (*SFP0ptr++) * YTmp; - eval0 = ICeval + *t_f; - x1 = (*SFP1ptr++) * YTmp; - eval1 = eval0 + nF; x2 = (*SFP2ptr++) * YTmp; - eval2 = eval1 + nF; x3 = (*SFP3ptr++) * YTmp; - eval3 = eval2 + nF; x4 = (*SFP4ptr++) * YTmp; - eval4 = eval3 + nF; x5 = (*SFP5ptr++) * YTmp; - eval5 = eval4 + nF; x6 = (*SFP6ptr++) * YTmp; - eval6 = eval5 + nF; x7 = (*SFP7ptr++) * YTmp; - eval7 = eval6 + nF; x8 = (*SFP8ptr++) * YTmp; - eval8 = eval7 + nF; x9 = (*SFP9ptr++) * YTmp; - eval9 = eval8 + nF; x10 = (*SFP10ptr++) * YTmp; - eval10 = eval9 + nF; x11 = (*SFP11ptr++) * YTmp; - eval11 = eval10 + nF; x12 = (*SFP12ptr++) * YTmp; - eval12 = eval11 + nF; x13 = (*SFP13ptr++) * YTmp; - eval13 = eval12 + nF; x14 = (*SFP14ptr++) * YTmp; - eval14 = eval13 + nF; x15 = (*SFP15ptr++) * YTmp; - eval15 = eval14 + nF; while (++YPtr != YPtrEnd) { YTmp = *YPtr; @@ -4919,22 +4554,22 @@ void* COMMIT_At__block( void *ptr ) x14 += (*SFP14ptr++) * YTmp; x15 += (*SFP15ptr++) * YTmp; } - x[*t_f] += w * x0 * (double)(*eval0); - x[*t_f+nF] += w * x1 * (double)(*eval1); - x[*t_f+2*nF] += w * x2 * (double)(*eval2); - x[*t_f+3*nF] += w * x3 * (double)(*eval3); - x[*t_f+4*nF] += w * x4 * (double)(*eval4); - x[*t_f+5*nF] += w * x5 * (double)(*eval5); - x[*t_f+6*nF] += w * x6 * (double)(*eval6); - x[*t_f+7*nF] += w * x7 * (double)(*eval7); - x[*t_f+8*nF] += w * x8 * (double)(*eval8); - x[*t_f+9*nF] += w * x9 * (double)(*eval9); - x[*t_f+10*nF] += w * x10 * (double)(*eval10); - x[*t_f+11*nF] += w * x11 * (double)(*eval11); - x[*t_f+12*nF] += w * x12 * (double)(*eval12); - x[*t_f+13*nF] += w * x13 * (double)(*eval13); - x[*t_f+14*nF] += w * x14 * (double)(*eval14); - x[*t_f+15*nF] += w * x15 * (double)(*eval15); + x[*t_f] += w * x0; + x[*t_f+nF] += w * x1; + x[*t_f+2*nF] += w * x2; + x[*t_f+3*nF] += w * x3; + x[*t_f+4*nF] += w * x4; + x[*t_f+5*nF] += w * x5; + x[*t_f+6*nF] += w * x6; + x[*t_f+7*nF] += w * x7; + x[*t_f+8*nF] += w * x8; + x[*t_f+9*nF] += w * x9; + x[*t_f+10*nF] += w * x10; + x[*t_f+11*nF] += w * x11; + x[*t_f+12*nF] += w * x12; + x[*t_f+13*nF] += w * x13; + x[*t_f+14*nF] += w * x14; + x[*t_f+15*nF] += w * x15; } t_f++; t_v++; @@ -4971,40 +4606,22 @@ void* COMMIT_At__block( void *ptr ) SFP15ptr = wmrSFP15 + offset; SFP16ptr = wmrSFP16 + offset; x0 = (*SFP0ptr++) * YTmp; - eval0 = ICeval + *t_f; - x1 = (*SFP1ptr++) * YTmp; - eval1 = eval0 + nF; x2 = (*SFP2ptr++) * YTmp; - eval2 = eval1 + nF; x3 = (*SFP3ptr++) * YTmp; - eval3 = eval2 + nF; x4 = (*SFP4ptr++) * YTmp; - eval4 = eval3 + nF; x5 = (*SFP5ptr++) * YTmp; - eval5 = eval4 + nF; x6 = (*SFP6ptr++) * YTmp; - eval6 = eval5 + nF; x7 = (*SFP7ptr++) * YTmp; - eval7 = eval6 + nF; x8 = (*SFP8ptr++) * YTmp; - eval8 = eval7 + nF; x9 = (*SFP9ptr++) * YTmp; - eval9 = eval8 + nF; x10 = (*SFP10ptr++) * YTmp; - eval10 = eval9 + nF; x11 = (*SFP11ptr++) * YTmp; - eval11 = eval10 + nF; x12 = (*SFP12ptr++) * YTmp; - eval12 = eval11 + nF; x13 = (*SFP13ptr++) * YTmp; - eval13 = eval12 + nF; x14 = (*SFP14ptr++) * YTmp; - eval14 = eval13 + nF; x15 = (*SFP15ptr++) * YTmp; - eval15 = eval14 + nF; x16 = (*SFP16ptr++) * YTmp; - eval16 = eval15 + nF; while (++YPtr != YPtrEnd) { YTmp = *YPtr; @@ -5026,23 +4643,23 @@ void* COMMIT_At__block( void *ptr ) x15 += (*SFP15ptr++) * YTmp; x16 += (*SFP16ptr++) * YTmp; } - x[*t_f] += w * x0 * (double)(*eval0); - x[*t_f+nF] += w * x1 * (double)(*eval1); - x[*t_f+2*nF] += w * x2 * (double)(*eval2); - x[*t_f+3*nF] += w * x3 * (double)(*eval3); - x[*t_f+4*nF] += w * x4 * (double)(*eval4); - x[*t_f+5*nF] += w * x5 * (double)(*eval5); - x[*t_f+6*nF] += w * x6 * (double)(*eval6); - x[*t_f+7*nF] += w * x7 * (double)(*eval7); - x[*t_f+8*nF] += w * x8 * (double)(*eval8); - x[*t_f+9*nF] += w * x9 * (double)(*eval9); - x[*t_f+10*nF] += w * x10 * (double)(*eval10); - x[*t_f+11*nF] += w * x11 * (double)(*eval11); - x[*t_f+12*nF] += w * x12 * (double)(*eval12); - x[*t_f+13*nF] += w * x13 * (double)(*eval13); - x[*t_f+14*nF] += w * x14 * (double)(*eval14); - x[*t_f+15*nF] += w * x15 * (double)(*eval15); - x[*t_f+16*nF] += w * x16 * (double)(*eval16); + x[*t_f] += w * x0; + x[*t_f+nF] += w * x1; + x[*t_f+2*nF] += w * x2; + x[*t_f+3*nF] += w * x3; + x[*t_f+4*nF] += w * x4; + x[*t_f+5*nF] += w * x5; + x[*t_f+6*nF] += w * x6; + x[*t_f+7*nF] += w * x7; + x[*t_f+8*nF] += w * x8; + x[*t_f+9*nF] += w * x9; + x[*t_f+10*nF] += w * x10; + x[*t_f+11*nF] += w * x11; + x[*t_f+12*nF] += w * x12; + x[*t_f+13*nF] += w * x13; + x[*t_f+14*nF] += w * x14; + x[*t_f+15*nF] += w * x15; + x[*t_f+16*nF] += w * x16; } t_f++; t_v++; @@ -5080,42 +4697,23 @@ void* COMMIT_At__block( void *ptr ) SFP16ptr = wmrSFP16 + offset; SFP17ptr = wmrSFP17 + offset; x0 = (*SFP0ptr++) * YTmp; - eval0 = ICeval + *t_f; - x1 = (*SFP1ptr++) * YTmp; - eval1 = eval0 + nF; x2 = (*SFP2ptr++) * YTmp; - eval2 = eval1 + nF; x3 = (*SFP3ptr++) * YTmp; - eval3 = eval2 + nF; x4 = (*SFP4ptr++) * YTmp; - eval4 = eval3 + nF; x5 = (*SFP5ptr++) * YTmp; - eval5 = eval4 + nF; x6 = (*SFP6ptr++) * YTmp; - eval6 = eval5 + nF; x7 = (*SFP7ptr++) * YTmp; - eval7 = eval6 + nF; x8 = (*SFP8ptr++) * YTmp; - eval8 = eval7 + nF; x9 = (*SFP9ptr++) * YTmp; - eval9 = eval8 + nF; x10 = (*SFP10ptr++) * YTmp; - eval10 = eval9 + nF; x11 = (*SFP11ptr++) * YTmp; - eval11 = eval10 + nF; x12 = (*SFP12ptr++) * YTmp; - eval12 = eval11 + nF; x13 = (*SFP13ptr++) * YTmp; - eval13 = eval12 + nF; x14 = (*SFP14ptr++) * YTmp; - eval14 = eval13 + nF; x15 = (*SFP15ptr++) * YTmp; - eval15 = eval14 + nF; x16 = (*SFP16ptr++) * YTmp; - eval16 = eval15 + nF; x17 = (*SFP17ptr++) * YTmp; - eval17 = eval16 + nF; while (++YPtr != YPtrEnd) { YTmp = *YPtr; @@ -5138,24 +4736,24 @@ void* COMMIT_At__block( void *ptr ) x16 += (*SFP16ptr++) * YTmp; x17 += (*SFP17ptr++) * YTmp; } - x[*t_f] += w * x0 * (double)(*eval0); - x[*t_f+nF] += w * x1 * (double)(*eval1); - x[*t_f+2*nF] += w * x2 * (double)(*eval2); - x[*t_f+3*nF] += w * x3 * (double)(*eval3); - x[*t_f+4*nF] += w * x4 * (double)(*eval4); - x[*t_f+5*nF] += w * x5 * (double)(*eval5); - x[*t_f+6*nF] += w * x6 * (double)(*eval6); - x[*t_f+7*nF] += w * x7 * (double)(*eval7); - x[*t_f+8*nF] += w * x8 * (double)(*eval8); - x[*t_f+9*nF] += w * x9 * (double)(*eval9); - x[*t_f+10*nF] += w * x10 * (double)(*eval10); - x[*t_f+11*nF] += w * x11 * (double)(*eval11); - x[*t_f+12*nF] += w * x12 * (double)(*eval12); - x[*t_f+13*nF] += w * x13 * (double)(*eval13); - x[*t_f+14*nF] += w * x14 * (double)(*eval14); - x[*t_f+15*nF] += w * x15 * (double)(*eval15); - x[*t_f+16*nF] += w * x16 * (double)(*eval16); - x[*t_f+17*nF] += w * x17 * (double)(*eval17); + x[*t_f] += w * x0; + x[*t_f+nF] += w * x1; + x[*t_f+2*nF] += w * x2; + x[*t_f+3*nF] += w * x3; + x[*t_f+4*nF] += w * x4; + x[*t_f+5*nF] += w * x5; + x[*t_f+6*nF] += w * x6; + x[*t_f+7*nF] += w * x7; + x[*t_f+8*nF] += w * x8; + x[*t_f+9*nF] += w * x9; + x[*t_f+10*nF] += w * x10; + x[*t_f+11*nF] += w * x11; + x[*t_f+12*nF] += w * x12; + x[*t_f+13*nF] += w * x13; + x[*t_f+14*nF] += w * x14; + x[*t_f+15*nF] += w * x15; + x[*t_f+16*nF] += w * x16; + x[*t_f+17*nF] += w * x17; } t_f++; t_v++; @@ -5194,44 +4792,24 @@ void* COMMIT_At__block( void *ptr ) SFP17ptr = wmrSFP17 + offset; SFP18ptr = wmrSFP18 + offset; x0 = (*SFP0ptr++) * YTmp; - eval0 = ICeval + *t_f; - x1 = (*SFP1ptr++) * YTmp; - eval1 = eval0 + nF; x2 = (*SFP2ptr++) * YTmp; - eval2 = eval1 + nF; x3 = (*SFP3ptr++) * YTmp; - eval3 = eval2 + nF; x4 = (*SFP4ptr++) * YTmp; - eval4 = eval3 + nF; x5 = (*SFP5ptr++) * YTmp; - eval5 = eval4 + nF; x6 = (*SFP6ptr++) * YTmp; - eval6 = eval5 + nF; x7 = (*SFP7ptr++) * YTmp; - eval7 = eval6 + nF; x8 = (*SFP8ptr++) * YTmp; - eval8 = eval7 + nF; x9 = (*SFP9ptr++) * YTmp; - eval9 = eval8 + nF; x10 = (*SFP10ptr++) * YTmp; - eval10 = eval9 + nF; x11 = (*SFP11ptr++) * YTmp; - eval11 = eval10 + nF; x12 = (*SFP12ptr++) * YTmp; - eval12 = eval11 + nF; x13 = (*SFP13ptr++) * YTmp; - eval13 = eval12 + nF; x14 = (*SFP14ptr++) * YTmp; - eval14 = eval13 + nF; x15 = (*SFP15ptr++) * YTmp; - eval15 = eval14 + nF; x16 = (*SFP16ptr++) * YTmp; - eval16 = eval15 + nF; x17 = (*SFP17ptr++) * YTmp; - eval17 = eval16 + nF; x18 = (*SFP18ptr++) * YTmp; - eval18 = eval17 + nF; while (++YPtr != YPtrEnd) { YTmp = *YPtr; @@ -5255,25 +4833,25 @@ void* COMMIT_At__block( void *ptr ) x17 += (*SFP17ptr++) * YTmp; x18 += (*SFP18ptr++) * YTmp; } - x[*t_f] += w * x0 * (double)(*eval0); - x[*t_f+nF] += w * x1 * (double)(*eval1); - x[*t_f+2*nF] += w * x2 * (double)(*eval2); - x[*t_f+3*nF] += w * x3 * (double)(*eval3); - x[*t_f+4*nF] += w * x4 * (double)(*eval4); - x[*t_f+5*nF] += w * x5 * (double)(*eval5); - x[*t_f+6*nF] += w * x6 * (double)(*eval6); - x[*t_f+7*nF] += w * x7 * (double)(*eval7); - x[*t_f+8*nF] += w * x8 * (double)(*eval8); - x[*t_f+9*nF] += w * x9 * (double)(*eval9); - x[*t_f+10*nF] += w * x10 * (double)(*eval10); - x[*t_f+11*nF] += w * x11 * (double)(*eval11); - x[*t_f+12*nF] += w * x12 * (double)(*eval12); - x[*t_f+13*nF] += w * x13 * (double)(*eval13); - x[*t_f+14*nF] += w * x14 * (double)(*eval14); - x[*t_f+15*nF] += w * x15 * (double)(*eval15); - x[*t_f+16*nF] += w * x16 * (double)(*eval16); - x[*t_f+17*nF] += w * x17 * (double)(*eval17); - x[*t_f+18*nF] += w * x18 * (double)(*eval18); + x[*t_f] += w * x0; + x[*t_f+nF] += w * x1; + x[*t_f+2*nF] += w * x2; + x[*t_f+3*nF] += w * x3; + x[*t_f+4*nF] += w * x4; + x[*t_f+5*nF] += w * x5; + x[*t_f+6*nF] += w * x6; + x[*t_f+7*nF] += w * x7; + x[*t_f+8*nF] += w * x8; + x[*t_f+9*nF] += w * x9; + x[*t_f+10*nF] += w * x10; + x[*t_f+11*nF] += w * x11; + x[*t_f+12*nF] += w * x12; + x[*t_f+13*nF] += w * x13; + x[*t_f+14*nF] += w * x14; + x[*t_f+15*nF] += w * x15; + x[*t_f+16*nF] += w * x16; + x[*t_f+17*nF] += w * x17; + x[*t_f+18*nF] += w * x18; } t_f++; t_v++; @@ -5313,46 +4891,25 @@ void* COMMIT_At__block( void *ptr ) SFP18ptr = wmrSFP18 + offset; SFP19ptr = wmrSFP19 + offset; x0 = (*SFP0ptr++) * YTmp; - eval0 = ICeval + *t_f; - x1 = (*SFP1ptr++) * YTmp; - eval1 = eval0 + nF; x2 = (*SFP2ptr++) * YTmp; - eval2 = eval1 + nF; x3 = (*SFP3ptr++) * YTmp; - eval3 = eval2 + nF; x4 = (*SFP4ptr++) * YTmp; - eval4 = eval3 + nF; x5 = (*SFP5ptr++) * YTmp; - eval5 = eval4 + nF; x6 = (*SFP6ptr++) * YTmp; - eval6 = eval5 + nF; x7 = (*SFP7ptr++) * YTmp; - eval7 = eval6 + nF; x8 = (*SFP8ptr++) * YTmp; - eval8 = eval7 + nF; x9 = (*SFP9ptr++) * YTmp; - eval9 = eval8 + nF; x10 = (*SFP10ptr++) * YTmp; - eval10 = eval9 + nF; x11 = (*SFP11ptr++) * YTmp; - eval11 = eval10 + nF; x12 = (*SFP12ptr++) * YTmp; - eval12 = eval11 + nF; x13 = (*SFP13ptr++) * YTmp; - eval13 = eval12 + nF; x14 = (*SFP14ptr++) * YTmp; - eval14 = eval13 + nF; x15 = (*SFP15ptr++) * YTmp; - eval15 = eval14 + nF; x16 = (*SFP16ptr++) * YTmp; - eval16 = eval15 + nF; x17 = (*SFP17ptr++) * YTmp; - eval17 = eval16 + nF; x18 = (*SFP18ptr++) * YTmp; - eval18 = eval17 + nF; x19 = (*SFP19ptr++) * YTmp; - eval19 = eval18 + nF; while (++YPtr != YPtrEnd) { YTmp = *YPtr; @@ -5377,26 +4934,26 @@ void* COMMIT_At__block( void *ptr ) x18 += (*SFP18ptr++) * YTmp; x19 += (*SFP19ptr++) * YTmp; } - x[*t_f] += w * x0 * (double)(*eval0); - x[*t_f+nF] += w * x1 * (double)(*eval1); - x[*t_f+2*nF] += w * x2 * (double)(*eval2); - x[*t_f+3*nF] += w * x3 * (double)(*eval3); - x[*t_f+4*nF] += w * x4 * (double)(*eval4); - x[*t_f+5*nF] += w * x5 * (double)(*eval5); - x[*t_f+6*nF] += w * x6 * (double)(*eval6); - x[*t_f+7*nF] += w * x7 * (double)(*eval7); - x[*t_f+8*nF] += w * x8 * (double)(*eval8); - x[*t_f+9*nF] += w * x9 * (double)(*eval9); - x[*t_f+10*nF] += w * x10 * (double)(*eval10); - x[*t_f+11*nF] += w * x11 * (double)(*eval11); - x[*t_f+12*nF] += w * x12 * (double)(*eval12); - x[*t_f+13*nF] += w * x13 * (double)(*eval13); - x[*t_f+14*nF] += w * x14 * (double)(*eval14); - x[*t_f+15*nF] += w * x15 * (double)(*eval15); - x[*t_f+16*nF] += w * x16 * (double)(*eval16); - x[*t_f+17*nF] += w * x17 * (double)(*eval17); - x[*t_f+18*nF] += w * x18 * (double)(*eval18); - x[*t_f+19*nF] += w * x19 * (double)(*eval19); + x[*t_f] += w * x0; + x[*t_f+nF] += w * x1; + x[*t_f+2*nF] += w * x2; + x[*t_f+3*nF] += w * x3; + x[*t_f+4*nF] += w * x4; + x[*t_f+5*nF] += w * x5; + x[*t_f+6*nF] += w * x6; + x[*t_f+7*nF] += w * x7; + x[*t_f+8*nF] += w * x8; + x[*t_f+9*nF] += w * x9; + x[*t_f+10*nF] += w * x10; + x[*t_f+11*nF] += w * x11; + x[*t_f+12*nF] += w * x12; + x[*t_f+13*nF] += w * x13; + x[*t_f+14*nF] += w * x14; + x[*t_f+15*nF] += w * x15; + x[*t_f+16*nF] += w * x16; + x[*t_f+17*nF] += w * x17; + x[*t_f+18*nF] += w * x18; + x[*t_f+19*nF] += w * x19; } t_f++; t_v++; @@ -8060,7 +7617,7 @@ void* COMMIT_At__block( void *ptr ) void COMMIT_At( int _nF, int _n, int _nE, int _nV, int _nS, int _ndirs, double *_vIN, double *_vOUT, - uint32_t *_ICf, unsigned int *_ICeval, uint32_t *_ICv, uint16_t *_ICo, float *_ICl, + uint32_t *_ICf, uint32_t *_ICv, uint16_t *_ICo, float *_ICl, uint32_t *_ECv, uint16_t *_ECo, uint32_t *_ISOv, float *_wmrSFP, float *_wmhSFP, float *_isoSFP, @@ -8079,7 +7636,6 @@ void COMMIT_At( Y = _vIN; ICf = _ICf; - ICeval = _ICeval; ICv = _ICv; ICo = _ICo; ICl = _ICl; @@ -8886,7 +8442,7 @@ void* COMMIT_A__block_nolut( void *ptr ) while( t_v != t_vEnd ) { - x0 = x[*t_f] * (double)(ICeval[*t_f]); + x0 = x[*t_f]; if ( x0 != 0 ) Y[*t_v] += (double)(*t_l) * x0; t_f++; @@ -8919,7 +8475,7 @@ void* COMMIT_A__block_nolut( void *ptr ) void COMMIT_A_nolut( int _nF, double *_vIN, double *_vOUT, - uint32_t *_ICf, uint32_t *_ICeval, uint32_t *_ICv, float *_ICl, + uint32_t *_ICf, uint32_t *_ICv, float *_ICl, uint32_t *_ISOv, uint32_t* _ICthreads, uint32_t* _ISOthreads, uint32_t _nISO, uint32_t _nThreads @@ -8931,7 +8487,6 @@ void COMMIT_A_nolut( Y = _vOUT; ICf = _ICf; - ICeval = _ICeval; ICv = _ICv; ICl = _ICl; ISOv = _ISOv; @@ -8973,7 +8528,7 @@ void* COMMIT_At__block_nolut( void *ptr ) { // in this case, I need to walk throug because the segments are ordered in "voxel order" if ( *t_t == id ) - x[*t_f] += (double)(*t_l) * Y[*t_v] * (double)(ICeval[*t_f]); + x[*t_f] += (double)(*t_l) * Y[*t_v]; t_t++; t_f++; t_v++; @@ -9001,7 +8556,7 @@ void* COMMIT_At__block_nolut( void *ptr ) void COMMIT_At_nolut( int _nF, int _n, double *_vIN, double *_vOUT, - uint32_t *_ICf, uint32_t *_ICeval, uint32_t *_ICv, float *_ICl, + uint32_t *_ICf, uint32_t *_ICv, float *_ICl, uint32_t *_ISOv, uint8_t* _ICthreadsT, uint32_t* _ISOthreadsT, uint32_t _nISO, uint32_t _nThreads @@ -9014,7 +8569,6 @@ void COMMIT_At_nolut( Y = _vIN; ICf = _ICf; - ICeval = _ICeval; ICv = _ICv; ICl = _ICl; ISOv = _ISOv; diff --git a/commit/trk2dictionary/trk2dictionary_c.cpp b/commit/trk2dictionary/trk2dictionary_c.cpp index 7b25937..9c4368c 100644 --- a/commit/trk2dictionary/trk2dictionary_c.cpp +++ b/commit/trk2dictionary/trk2dictionary_c.cpp @@ -232,7 +232,7 @@ int trk2dictionary( // ========================================== // Parallel IC compartments // ========================================== - + if (verbosity > 2) printf( " * Exporting IC compartments:\033[0m\n" ); // unsigned int width = 25; // PROGRESS = new ProgressBar( (unsigned int) n_count, (unsigned int) width); @@ -256,6 +256,7 @@ int trk2dictionary( if (verbosity > 2) PROGRESS->close(); + if (verbosity > 2) printf( " [ %d streamlines kept, %ld segments in total ]\n", std::accumulate(totFibers.begin(), totFibers.end(), 0), std::accumulate( totICSegments.begin(), totICSegments.end(), 0) ); totFibers.clear(); threads.clear(); @@ -263,20 +264,23 @@ int trk2dictionary( // ========================================== // Parallel EC compartments // ========================================== - + if (verbosity > 2) printf( " * Exporting EC compartments:\033[0m\n" ); int EC = ECSegments( ptrPEAKS, Np, vf_THR, ECix, ECiy, ECiz, ptrTDI, ptrHashTable, path_out, ptrPeaksAffine, threads_count ); + if (verbosity > 2) printf(" [ %d voxels, %d segments ]\n", totECVoxels, totECSegments ); /*=========================*/ /* Restricted ISO compartments */ /*=========================*/ + if (verbosity > 2) printf( " * Exporting ISO compartments:\033[0m\n" ); int totISO = ISOcompartments(ptrTDI, path_out, threads_count); + if (verbosity > 2) printf(" [ %d voxels ]\n", totISO ); return 1; diff --git a/setup.py b/setup.py index 9b98d0f..1c4d09b 100644 --- a/setup.py +++ b/setup.py @@ -53,10 +53,10 @@ def run(self): build_ext.finalize_options(self) build_ext.run(self) -# # generate the operator_c.c file -# sys.path.insert(0, os.path.dirname(__file__)) -# from setup_operator import write_operator_c_file -# write_operator_c_file() +# generate the operator_c.c file +sys.path.insert(0, os.path.dirname(__file__)) +from setup_operator import write_operator_c_file +write_operator_c_file() # create the 'build' directory if not os.path.exists('build'): diff --git a/setup_operator.py b/setup_operator.py index e83bc32..395a372 100644 --- a/setup_operator.py +++ b/setup_operator.py @@ -20,7 +20,7 @@ def add_global_variables() -> str: uint32_t *ICthreads, *ECthreads, *ISOthreads; uint8_t *ICthreadsT; uint32_t *ECthreadsT, *ISOthreadsT; -uint32_t *ICf, *ICeval, *ICv, *ECv, *ISOv; +uint32_t *ICf, *ICv, *ECv, *ISOv; uint16_t *ICo, *ECo; float *ICl; float *wmrSFP0, *wmrSFP1, *wmrSFP2, *wmrSFP3, *wmrSFP4, *wmrSFP5, *wmrSFP6, *wmrSFP7, *wmrSFP8, *wmrSFP9, *wmrSFP10, *wmrSFP11, *wmrSFP12, *wmrSFP13, *wmrSFP14, *wmrSFP15, *wmrSFP16, *wmrSFP17, *wmrSFP18, *wmrSFP19; @@ -45,8 +45,7 @@ def add_intracellular_compartments() -> str: {''' s1: str = '''\ xPtr0 = x + (*t_f); - eval0 = ICeval + *t_f; - x0 = *xPtr0 * (double)(*eval0);''' + x0 = *xPtr0;''' s2: str = 'if (x0 != 0' s3: str = 'SFP0ptr = wmrSFP0 + offset;' s4: str = 'x0 * (*SFP0ptr++)' @@ -56,8 +55,7 @@ def add_intracellular_compartments() -> str: s1 += f'''\ xPtr{i} = xPtr{i - 1} + nF; - eval{i} = eval{i - 1} + nF; - x{i} = *xPtr{i} * (double)(*eval{i});''' + x{i} = *xPtr{i};''' s2 += f' || x{i} != 0' s3 += f'''\ @@ -209,7 +207,6 @@ def add_isotropic_compartments() -> str: { int id = (long)ptr; int offset; - uint32_t *eval0, *eval1, *eval2, *eval3, *eval4, *eval5, *eval6, *eval7, *eval8, *eval9, *eval10, *eval11, *eval12, *eval13, *eval14, *eval15, *eval16, *eval17, *eval18, *eval19; double x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, w; double *xPtr0, *xPtr1, *xPtr2, *xPtr3, *xPtr4, *xPtr5, *xPtr6, *xPtr7, *xPtr8, *xPtr9, *xPtr10, *xPtr11, *xPtr12, *xPtr13, *xPtr14, *xPtr15, *xPtr16, *xPtr17, *xPtr18, *xPtr19; double *YPtr, *YPtrEnd; @@ -297,7 +294,7 @@ def add_isotropic_compartments() -> str: void COMMIT_A( int _nF, int _nE, int _nV, int _nS, int _ndirs, double *_vIN, double *_vOUT, - uint32_t *_ICf, uint32_t *_ICeval, uint32_t *_ICv, uint16_t *_ICo, float *_ICl, + uint32_t *_ICf, uint32_t *_ICv, uint16_t *_ICo, float *_ICl, uint32_t *_ECv, uint16_t *_ECo, uint32_t *_ISOv, float *_wmrSFP, float *_wmhSFP, float *_isoSFP, @@ -315,7 +312,6 @@ def add_isotropic_compartments() -> str: Y = _vOUT; ICf = _ICf; - ICeval = _ICeval; ICv = _ICv; ICo = _ICo; ICl = _ICl; @@ -362,12 +358,9 @@ def add_intracellular_compartments() -> str: switch (nIC) {''' s1: str = 'SFP0ptr = wmrSFP0 + offset;' - s2: str = '''\ -x0 = (*SFP0ptr++) * YTmp; - eval0 = ICeval + *t_f; -''' + s2: str = 'x0 = (*SFP0ptr++) * YTmp;' s3: str = 'x0 += (*SFP0ptr++) * YTmp;' - s4: str = 'x[*t_f] += w * x0 * (double)(*eval0);' + s4: str = 'x[*t_f] += w * x0;' s5: str = '' for i in range(0, 20): @@ -379,14 +372,13 @@ def add_intracellular_compartments() -> str: SFP{i}ptr = wmrSFP{i} + offset;''' s2 += f'''\ - x{i} = (*SFP{i}ptr++) * YTmp; - eval{i} = eval{i - 1} + nF;''' + x{i} = (*SFP{i}ptr++) * YTmp;''' s3 += f'''\ x{i} += (*SFP{i}ptr++) * YTmp;''' s4 += f'''\ - x[*t_f+{s5}nF] += w * x{i} * (double)(*eval{i});''' + x[*t_f+{s5}nF] += w * x{i};''' s += f'''\ case {i + 1}: @@ -551,7 +543,6 @@ def add_isotropic_compartments() -> str: { int id = (long)ptr; int offset; - uint32_t *eval0, *eval1, *eval2, *eval3, *eval4, *eval5, *eval6, *eval7, *eval8, *eval9, *eval10, *eval11, *eval12, *eval13, *eval14, *eval15, *eval16, *eval17, *eval18, *eval19; double x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, w, YTmp; double *xPtr0, *xPtr1, *xPtr2, *xPtr3, *xPtr4, *xPtr5, *xPtr6, *xPtr7, *xPtr8, *xPtr9, *xPtr10, *xPtr11, *xPtr12, *xPtr13, *xPtr14, *xPtr15, *xPtr16, *xPtr17, *xPtr18, *xPtr19; double *YPtr, *YPtrEnd; @@ -640,7 +631,7 @@ def add_isotropic_compartments() -> str: void COMMIT_At( int _nF, int _n, int _nE, int _nV, int _nS, int _ndirs, double *_vIN, double *_vOUT, - uint32_t *_ICf, uint32_t *_ICeval, uint32_t *_ICv, uint16_t *_ICo, float *_ICl, + uint32_t *_ICf, uint32_t *_ICv, uint16_t *_ICo, float *_ICl, uint32_t *_ECv, uint16_t *_ECo, uint32_t *_ISOv, float *_wmrSFP, float *_wmhSFP, float *_isoSFP, @@ -659,7 +650,6 @@ def add_isotropic_compartments() -> str: Y = _vIN; ICf = _ICf; - ICeval = _ICeval; ICv = _ICv; ICo = _ICo; ICl = _ICl; @@ -701,8 +691,7 @@ def add_intracellular_compartments() -> str: while( t_v != t_vEnd ) { - eval0 = ICeval[*t_f]; - x0 = x[*t_f]* (double)(*eval0); + x0 = x[*t_f]; if ( x0 != 0 ) Y[*t_v] += (double)(*t_l) * x0; t_f++; @@ -737,7 +726,6 @@ def add_isotropic_compartments() -> str: void* COMMIT_A__block_nolut( void *ptr ) { int id = (long)ptr; - uint32_t *eval0; double x0; double *xPtr; uint32_t *t_v, *t_vEnd, *t_f; @@ -758,7 +746,7 @@ def add_commit_a_nolut() -> str: void COMMIT_A_nolut( int _nF, double *_vIN, double *_vOUT, - uint32_t *_ICf, uint32_t *_ICeval, uint32_t *_ICv, float *_ICl, + uint32_t *_ICf, uint32_t *_ICv, float *_ICl, uint32_t *_ISOv, uint32_t* _ICthreads, uint32_t* _ISOthreads, uint32_t _nISO, uint32_t _nThreads @@ -770,7 +758,6 @@ def add_commit_a_nolut() -> str: Y = _vOUT; ICf = _ICf; - ICeval = _ICeval; ICv = _ICv; ICl = _ICl; ISOv = _ISOv; @@ -806,8 +793,7 @@ def add_intracellular_compartments() -> str: { // in this case, I need to walk throug because the segments are ordered in "voxel order" if ( *t_t == id ) - eval0 = ICeval + *t_f; - x[*t_f] += (double)(*t_l) * Y[*t_v]* (double)(*eval0); + x[*t_f] += (double)(*t_l) * Y[*t_v]; t_t++; t_f++; t_v++; @@ -837,7 +823,6 @@ def add_isotropic_compartments() -> str: { int id = (long)ptr; double *xPtr; - uint32_t *eval0; uint32_t *t_v, *t_vEnd, *t_f; float *t_l; uint8_t *t_t;\n\n''' @@ -858,7 +843,7 @@ def add_commit_at_nolut() -> str: void COMMIT_At_nolut( int _nF, int _n, double *_vIN, double *_vOUT, - uint32_t *_ICf, uint32_t *_ICeval, uint32_t *_ICv, float *_ICl, + uint32_t *_ICf, uint32_t *_ICv, float *_ICl, uint32_t *_ISOv, uint8_t* _ICthreadsT, uint32_t* _ISOthreadsT, uint32_t _nISO, uint32_t _nThreads @@ -871,7 +856,6 @@ def add_commit_at_nolut() -> str: Y = _vIN; ICf = _ICf; - ICeval = _ICeval; ICv = _ICv; ICl = _ICl; ISOv = _ISOv;