Changeset 12250
- Timestamp:
- 05/16/12 11:03:15 (13 years ago)
- Location:
- issm/trunk-jpl/src/c/modules/Krigingx
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/modules/Krigingx/Krigingx.cpp
r12232 r12250 17 17 #include "../../objects/Kriging/GaussianVariogram.h" 18 18 /*FUNCTION Krigingx{{{*/ 19 int Krigingx(double** ppredictions,double * obs_x, double* obs_y, double* obs_list, int obs_length,double* x_interp,double* y_interp,int n_interp,Options* options){19 int Krigingx(double** ppredictions,double **perror,double* obs_x, double* obs_y, double* obs_list, int obs_length,double* x_interp,double* y_interp,int n_interp,Options* options){ 20 20 21 21 /*output*/ 22 22 double *predictions = NULL; 23 double *error = NULL; 23 24 24 25 /*Intermediaries*/ … … 43 44 44 45 /*Allocate output*/ 45 predictions =(double*)x malloc(n_interp*sizeof(double));46 for(int i=0;i<n_interp;i++) predictions[i]=0;46 predictions =(double*)xcalloc(n_interp,sizeof(double)); 47 error =(double*)xcalloc(n_interp,sizeof(double)); 47 48 48 49 /*Get output*/ … … 65 66 gate.observations = observations; 66 67 gate.predictions = predictions; 68 gate.error = error; 67 69 gate.percent = (double*)xcalloc(num,sizeof(double)); 68 70 … … 80 82 delete observations; 81 83 xfree((void**)&output); 82 *ppredictions=predictions; 84 *ppredictions = predictions; 85 *perror = error; 83 86 return 1; 84 87 }/*}}}*/ … … 107 110 Observations *observations = gate->observations; 108 111 double *predictions = gate->predictions; 112 double *error = gate->error; 109 113 double *percent = gate->percent; 110 114 … … 163 167 ratio=numerator/denominator; 164 168 165 predictions[idx]=0; 169 predictions[idx] = 0.; 170 error[idx] = - numerator*numerator/denominator; 166 171 for(i=0;i<n_obs;i++) predictions[idx] += (gamma0[i]-ratio)*GinvZ[i]; 172 for(i=0;i<n_obs;i++) error[idx] += gamma0[i]*GinvG0[i]; 167 173 168 174 /*clean-up*/ -
issm/trunk-jpl/src/c/modules/Krigingx/Krigingx.h
r12232 r12250 12 12 class Variogram; 13 13 14 int Krigingx(double** ppredictions,double * x, double* y, double* observations, int n_obs,double* x_interp,double* y_interp,int n_interp,Options* options);14 int Krigingx(double** ppredictions,double **perror,double* x, double* y, double* observations, int n_obs,double* x_interp,double* y_interp,int n_interp,Options* options); 15 15 void ProcessVariogram(Variogram **pvariogram,Options* options); 16 16 void GslSolve(double** pX,double* A,double* B,int n); … … 25 25 Observations *observations; 26 26 double *predictions; 27 double *error; 27 28 double *percent; 28 29 }KrigingxThreadStruct;
Note:
See TracChangeset
for help on using the changeset viewer.