Changeset 12250


Ignore:
Timestamp:
05/16/12 11:03:15 (13 years ago)
Author:
Mathieu Morlighem
Message:

Added Error calculation

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  
    1717#include "../../objects/Kriging/GaussianVariogram.h"
    1818/*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){
     19int 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){
    2020
    2121        /*output*/
    2222        double *predictions = NULL;
     23        double *error       = NULL;
    2324
    2425        /*Intermediaries*/
     
    4344
    4445        /*Allocate output*/
    45         predictions =(double*)xmalloc(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));
    4748
    4849        /*Get output*/
     
    6566                gate.observations = observations;
    6667                gate.predictions  = predictions;
     68                gate.error        = error;
    6769                gate.percent      = (double*)xcalloc(num,sizeof(double));
    6870
     
    8082        delete observations;
    8183        xfree((void**)&output);
    82         *ppredictions=predictions;
     84        *ppredictions = predictions;
     85        *perror       = error;
    8386        return 1;
    8487}/*}}}*/
     
    107110        Observations *observations = gate->observations;
    108111        double       *predictions  = gate->predictions;
     112        double       *error        = gate->error;
    109113        double       *percent      = gate->percent;
    110114
     
    163167                ratio=numerator/denominator;
    164168
    165                 predictions[idx]=0;
     169                predictions[idx] = 0.;
     170                error[idx]       = - numerator*numerator/denominator;
    166171                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];
    167173
    168174                /*clean-up*/
  • issm/trunk-jpl/src/c/modules/Krigingx/Krigingx.h

    r12232 r12250  
    1212class Variogram;
    1313
    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);
     14int  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);
    1515void ProcessVariogram(Variogram **pvariogram,Options* options);
    1616void GslSolve(double** pX,double* A,double* B,int n);
     
    2525        Observations *observations;
    2626        double       *predictions;
     27        double       *error;
    2728        double       *percent;
    2829}KrigingxThreadStruct;
Note: See TracChangeset for help on using the changeset viewer.