Changeset 790 for sans/XOP_Dev


Ignore:
Timestamp:
Feb 16, 2011 5:39:25 PM (12 years ago)
Author:
srkline
Message:

Adding Threadsafe declarations to Debye Sphere functions to allow binning of distances to be threaded.

Location:
sans/XOP_Dev/MonteCarlo
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • sans/XOP_Dev/MonteCarlo/DebyeSpheres.c

    r789 r790  
    241241    int npt,numBins,binIndex; 
    242242        double grid,binWidth,val; 
     243        int p1,p2; 
    243244         
    244245         
     
    283284    npt = (int) WavePoints(p->xwavH);   //wavePoints returns long, number of XYZ points 
    284285    numBins = (int) WavePoints(p->bwavH);       //wavePoints returns long, number of points in bin wave 
     286        p1 = (int) p->p1; 
     287        p2 = (int) p->p2; 
     288         
    285289         
    286290        xv = WaveData(p->xwavH);                //xyz locations 
     
    293297         
    294298        //do the i!=j double loop,       
    295         for(i=0;i<npt;i+=1) { 
     299        for(i=p1;i<p2;i+=1) { 
    296300                for(j=(i+1);j<npt;j+=1) { 
    297301                        val = XYZDistance(xv[i],xv[j],yv[i],yv[j],zv[i],zv[j])*grid; 
     
    329333    int npt,numBins,binIndex; 
    330334        double grid,binWidth,val,retVal; 
     335        int p1,p2; 
     336 
    331337         
    332338// for accessing the 2D wave data to write the results   
     
    418424        PSFid = WaveData(p->PSFidH);                    //this one is 2D 
    419425         
     426        p1 = (int) p->p1; 
     427        p2 = (int) p->p2; 
     428         
    420429        grid = p->grid; 
    421430        binWidth = p->binWidth; 
    422431         
    423432        //do the i!=j double loop,       
    424         for(i=0;i<npt;i+=1) { 
     433        for(i=p1;i<p2;i+=1) { 
    425434                for(j=(i+1);j<npt;j+=1) { 
    426435                        val = XYZDistance(xv[i],xv[j],yv[i],yv[j],zv[i],zv[j])*grid; 
  • sans/XOP_Dev/MonteCarlo/DebyeSpheres.h

    r789 r790  
    4040// result is the last parameter, always. 
    4141typedef struct BinParam { 
     42        double p2; 
     43        double p1;              // start and stop of the outer index 
    4244        double binWidth; 
    4345        double grid; 
     
    4648        waveHndl ywavH; // y coordinate. 
    4749        waveHndl xwavH; // x coordinate. 
    48         //      void* tp;                       //unused void for threadsafe functions 
     50        void* tp;                       //unused void for threadsafe functions 
    4951        double result; 
    5052}BinParam, *BinParamPtr;    
     
    5355// result is the last parameter, always. 
    5456typedef struct BinSLDParam { 
     57        double p2; 
     58        double p1;              // start and stop of the outer index 
    5559        double binWidth; 
    5660        double grid; 
     
    6266        waveHndl ywavH; // y coordinate. 
    6367        waveHndl xwavH; // x coordinate. 
    64         //      void* tp;                       //unused void for threadsafe functions 
     68        void* tp;                       //unused void for threadsafe functions 
    6569        double result; 
    6670}BinSLDParam, *BinSLDParamPtr;    
  • sans/XOP_Dev/MonteCarlo/MonteCarlo.r

    r789 r790  
    114114                 
    115115                "binDistanceX",         /* function name */ 
    116                 F_UTIL | F_EXTERNAL,                                    /* function category == UTILITY */ 
     116                F_UTIL | F_THREADSAFE | F_EXTERNAL,                                     /* function category == UTILITY */ 
    117117                NT_FP64,                                                        /* return value type */                  
    118118                { 
     
    123123                        NT_FP64,                                                // grid 
    124124                        NT_FP64,                                                // bin width 
     125                        NT_FP64,                                                // start index 
     126                        NT_FP64,                                                // stop index 
    125127                }, 
    126128                 
     
    134136                 
    135137                "binSLDDistanceX",              /* function name */ 
    136                 F_UTIL | F_EXTERNAL,                                    /* function category == UTILITY */ 
     138                F_UTIL | F_THREADSAFE | F_EXTERNAL,                                     /* function category == UTILITY */ 
    137139                NT_FP64,                                                        /* return value type */                  
    138140                { 
     
    146148                        NT_FP64,                                                // grid 
    147149                        NT_FP64,                                                // bin width 
     150                        NT_FP64,                                                // start index 
     151                        NT_FP64,                                                // stop index 
    148152                }, 
    149153                 
Note: See TracChangeset for help on using the changeset viewer.