Example #1
0
      void CMinimum::apply(const CArray<double,1>& _dinput,
                                 CArray<double,1>& _doutput)
      {
        const double * it1  = _dinput.dataFirst(),
                      *end1 = _dinput.dataFirst() + _dinput.numElements();
        double * it   = _doutput.dataFirst();
        
        if (this->nbcall == 1)  for (; it1 != end1; it1++, it++) *it = *it1;
        else 
        {
          if (hasMissingValue) 
          { 
            for (; it1 != end1; it1++, it++) 
              if (!NumTraits<double>::isnan(*it1))
              {
                if (!NumTraits<double>::isnan(*it)) *it = std::min(*it1, *it);
                else *it=*it1 ;
              }
          }
          else for (; it1 != end1; it1++, it++) *it = std::min(*it1, *it);
        }

      }