Ejemplo n.º 1
0
void clamp(Eigen::PlainObjectBase<Derived>& m, typename Derived::Scalar lower, typename Derived::Scalar upper) {
    typedef typename Eigen::PlainObjectBase<Derived>::Index idx_t;

    for (idx_t i = 0; i < m.outerSize(); ++i) {
        for (idx_t j = 0; j < m.innerSize(); ++j) {
            int offset = i * m.innerSize() + j;
            if (m.data()[offset] < lower) m.data()[offset] = lower;
            if (m.data()[offset] > upper) m.data()[offset] = upper;
        }
    }
}