Ignore:
Timestamp:
06/06/17 17:58:16 (7 years ago)
Author:
oabramkina
Message:

Two server levels: merging with trunk r1137.
There are bugs.

Location:
XIOS/dev/dev_olga/src/functor
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_olga/src/functor/accumulate.cpp

    r591 r1158  
    11#include "accumulate.hpp" 
    22#include "array_new.hpp" 
     3#include "utils.hpp" 
    34 
    45namespace xios 
     
    3334            double* out=_doutput.dataFirst(); 
    3435            for (i=0; i<n; ++i,++in,++out)  
    35               if (*in!=missingValue) 
     36              if (!NumTraits<double>::isnan(*in)) 
    3637              { 
    37                 if(*out!=missingValue) *out  += *in; 
     38                if(!NumTraits<double>::isnan(*out)) *out  += *in; 
    3839                else *out=*in ; 
    3940              } 
  • XIOS/dev/dev_olga/src/functor/average.cpp

    r591 r1158  
    11#include "average.hpp" 
    22#include "array_new.hpp" 
     3#include "utils.hpp" 
    34 
    45namespace xios 
     
    4243            int* nc=nbcalls.dataFirst() ; 
    4344            for (i=0; i<n; ++i,++nc,++in)  
    44               if (*in!=missingValue) (*nc) ++; 
     45              if (!NumTraits<double>::isnan(*in)) (*nc) ++; 
    4546          } 
    4647        } 
     
    5455            int* nc=nbcalls.dataFirst() ; 
    5556            for (i=0; i<n; ++i,++in,++out,++nc)  
    56               if (*in!=missingValue)  
     57              if (!NumTraits<double>::isnan(*in))  
    5758              { 
    5859                if (*nc != 0) (*out)  += *in; 
  • XIOS/dev/dev_olga/src/functor/maximum.cpp

    r591 r1158  
    11#include "maximum.hpp" 
    22#include "array_new.hpp" 
    3  
    4  
     3#include "utils.hpp" 
    54 
    65namespace xios 
     
    3534           {  
    3635             for (; it1 != end1; it1++, it++)  
    37                if (*it1 != missingValue) 
     36               if (!NumTraits<double>::isnan(*it1)) 
    3837               { 
    39                  if ( *it != missingValue) *it = std::max(*it1, *it); 
     38                 if (!NumTraits<double>::isnan(*it)) *it = std::max(*it1, *it); 
    4039                 else *it=*it1 ;   
    4140               } 
  • XIOS/dev/dev_olga/src/functor/minimum.cpp

    r591 r1158  
    22#include "array_new.hpp" 
    33#include <algorithm> 
     4#include "utils.hpp" 
    45 
    56namespace xios 
     
    2627      { 
    2728        const double * it1  = _dinput.dataFirst(), 
    28                       * end1 = _dinput.dataFirst() + _dinput.numElements(); 
     29                      *end1 = _dinput.dataFirst() + _dinput.numElements(); 
    2930        double * it   = _doutput.dataFirst(); 
    3031         
     
    3536          {  
    3637            for (; it1 != end1; it1++, it++)  
    37               if (*it1!=missingValue) 
     38              if (!NumTraits<double>::isnan(*it1)) 
    3839              { 
    39                 if (*it != missingValue) *it = std::min(*it1, *it); 
     40                if (!NumTraits<double>::isnan(*it)) *it = std::min(*it1, *it); 
    4041                else *it=*it1 ; 
    4142              } 
Note: See TracChangeset for help on using the changeset viewer.