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); } }