Changeset 14051


Ignore:
Timestamp:
11/29/12 08:59:50 (12 years ago)
Author:
Mathieu Morlighem
Message:

CHG: better percent print

Location:
issm/trunk-jpl/src/c/modules/Krigingx
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/modules/Krigingx/Krigingx.cpp

    r14048 r14051  
    8888                gate.predictions  = predictions;
    8989                gate.error        = error;
    90                 gate.percent      = xNewZeroInit<double>(num);
     90                gate.numdone      = xNewZeroInit<int>(num);
    9191
    9292                /*launch the thread manager with Krigingxt as a core: */
    9393                LaunchThread(NearestNeighbort,(void*)&gate,num);
    9494                _printLine_("\r      interpolation progress: "<<fixed<<setw(6)<<setprecision(2)<<100.<<"%");
    95                 xDelete<double>(gate.percent);
     95                xDelete<int>(gate.numdone);
    9696        }
    9797        else if(strcmp(output,"idw")==0){ //Inverse distance weighting
     
    109109                gate.predictions  = predictions;
    110110                gate.error        = error;
    111                 gate.percent      = xNewZeroInit<double>(num);
     111                gate.numdone      = xNewZeroInit<int>(num);
    112112                gate.power        = power;
    113113
     
    115115                LaunchThread(idwt,(void*)&gate,num);
    116116                _printLine_("\r      interpolation progress: "<<fixed<<setw(6)<<setprecision(2)<<100.<<"%");
    117                 xDelete<double>(gate.percent);
     117                xDelete<int>(gate.numdone);
    118118        }
    119119        else if(strcmp(output,"v4")==0){ //Inverse distance weighting
     
    129129                gate.predictions  = predictions;
    130130                gate.error        = error;
    131                 gate.percent      = xNewZeroInit<double>(num);
     131                gate.numdone      = xNewZeroInit<int>(num);
    132132
    133133                /*launch the thread manager with Krigingxt as a core: */
    134134                LaunchThread(v4t,(void*)&gate,num);
    135135                _printLine_("\r      interpolation progress: "<<fixed<<setw(6)<<setprecision(2)<<100.<<"%");
    136                 xDelete<double>(gate.percent);
     136                xDelete<int>(gate.numdone);
    137137        }
    138138        else if(strcmp(output,"prediction")==0){
     
    149149                gate.predictions  = predictions;
    150150                gate.error        = error;
    151                 gate.percent      = xNewZeroInit<double>(num);
     151                gate.numdone      = xNewZeroInit<int>(num);
    152152
    153153                /*launch the thread manager with Krigingxt as a core: */
    154154                LaunchThread(Krigingxt,(void*)&gate,num);
    155155                _printLine_("\r      interpolation progress: "<<fixed<<setw(6)<<setprecision(2)<<100.<<"%");
    156                 xDelete<double>(gate.percent);
     156                xDelete<int>(gate.numdone);
    157157        }
    158158        else{
     
    195195        double       *predictions  = gate->predictions;
    196196        double       *error        = gate->error;
    197         double       *percent      = gate->percent;
    198 
    199         /*Intermediaries*/
    200         double        localpercent;
     197        int          *numdone      = gate->numdone;
    201198
    202199        /*partition loop across threads: */
     
    205202
    206203                /*Print info*/
    207                 percent[my_thread]=double(idx-i0)/double(i1-i0)*100.;
    208                 localpercent=percent[0];
    209                 for(int i=1;i<num_threads;i++) localpercent=min(localpercent,percent[i]);
    210                 if(my_thread==0) _printString_("\r      interpolation progress: "<<setw(6)<<setprecision(2)<<localpercent<<"%");
     204                numdone[my_thread]=idx-i0;
     205                if(my_thread==0){
     206                        int alldone=numdone[0];
     207                        for(int i=1;i<num_threads;i++) alldone+=numdone[i];
     208                        _printString_("\r      interpolation progress: "<<setw(6)<<setprecision(2)<<double(alldone)/double(n_interp)*100.<<"%");
     209                }
    211210
    212211                /*Kriging interpolation*/
     
    243242        double       *predictions  = gate->predictions;
    244243        double       *error        = gate->error;
    245         double       *percent      = gate->percent;
    246 
    247         /*Intermediaries*/
    248         int           i;
    249         double        localpercent;
     244        int          *numdone      = gate->numdone;
    250245
    251246        /*partition loop across threads: */
     
    254249
    255250                /*Print info*/
    256                 percent[my_thread]=double(idx-i0)/double(i1-i0)*100.;
    257                 localpercent=percent[0];
    258                 for(i=1;i<num_threads;i++) localpercent=min(localpercent,percent[i]);
    259                 if(my_thread==0) _printString_("\r      interpolation progress: "<<setw(6)<<setprecision(2)<<localpercent<<"%");
     251                numdone[my_thread]=idx-i0;
     252                if(my_thread==0){
     253                        int alldone=numdone[0];
     254                        for(int i=1;i<num_threads;i++) alldone+=numdone[i];
     255                        _printString_("\r      interpolation progress: "<<setw(6)<<setprecision(2)<<double(alldone)/double(n_interp)*100.<<"%");
     256                }
    260257
    261258                observations->InterpolationNearestNeighbor(&predictions[idx],x_interp[idx],y_interp[idx],radius);
     
    291288        double       *predictions  = gate->predictions;
    292289        double       *error        = gate->error;
    293         double       *percent      = gate->percent;
     290        int          *numdone      = gate->numdone;
    294291        double        power        = gate->power;
    295 
    296         /*Intermediaries*/
    297         double localpercent;
    298292
    299293        /*partition loop across threads: */
     
    302296
    303297                /*Print info*/
    304                 percent[my_thread]=double(idx-i0)/double(i1-i0)*100.;
    305                 localpercent=percent[0];
    306                 for(int i=1;i<num_threads;i++) localpercent=min(localpercent,percent[i]);
    307                 if(my_thread==0) _printString_("\r      interpolation progress: "<<setw(6)<<setprecision(2)<<localpercent<<"%");
     298                numdone[my_thread]=idx-i0;
     299                if(my_thread==0){
     300                        int alldone=numdone[0];
     301                        for(int i=1;i<num_threads;i++) alldone+=numdone[i];
     302                        _printString_("\r      interpolation progress: "<<setw(6)<<setprecision(2)<<double(alldone)/double(n_interp)*100.<<"%");
     303                }
    308304
    309305                observations->InterpolationIDW(&predictions[idx],x_interp[idx],y_interp[idx],radius,mindata,maxdata,power);
     
    338334        double       *predictions  = gate->predictions;
    339335        double       *error        = gate->error;
    340         double       *percent      = gate->percent;
    341 
    342         /*Intermediaries*/
    343         double localpercent;
     336        int          *numdone      = gate->numdone;
    344337
    345338        /*partition loop across threads: */
     
    348341
    349342                /*Print info*/
    350                 percent[my_thread]=double(idx-i0)/double(i1-i0)*100.;
    351                 localpercent=percent[0];
    352                 for(int i=1;i<num_threads;i++) localpercent=min(localpercent,percent[i]);
    353                 if(my_thread==0) _printString_("\r      interpolation progress: "<<setw(6)<<setprecision(2)<<localpercent<<"%");
     343                numdone[my_thread]=idx-i0;
     344                if(my_thread==0){
     345                        int alldone=numdone[0];
     346                        for(int i=1;i<num_threads;i++) alldone+=numdone[i];
     347                        _printString_("\r      interpolation progress: "<<setw(6)<<setprecision(2)<<double(alldone)/double(n_interp)*100.<<"%");
     348                }
    354349
    355350                observations->InterpolationV4(&predictions[idx],x_interp[idx],y_interp[idx],radius,mindata,maxdata);
  • issm/trunk-jpl/src/c/modules/Krigingx/Krigingx.h

    r14048 r14051  
    2828        double       *predictions;
    2929        double       *error;
    30         double       *percent;
     30        int          *numdone;
    3131        double        power;//for idw
    3232}KrigingxThreadStruct;
Note: See TracChangeset for help on using the changeset viewer.