inline bool MultiIndex<I, DIMENSION>::lex (const MultiIndex<I, DIMENSION>& lambda) const { return std::lexicographical_compare(FixedArray1D<I, DIMENSION>::begin(), FixedArray1D<I, DIMENSION>::end(), lambda.begin(), lambda.end()); }
inline bool MultiIndex<I, DIMENSION>::operator < (const MultiIndex& lambda) const { unsigned int r1(FixedArray1D<I,DIMENSION>::operator [] (0)),r2(multi_degree(lambda)); for (unsigned int i(1); i < DIMENSION; i++) { r1 += FixedArray1D<I,DIMENSION>::operator [] (i); } return (r1<r2) || ((r1==r2) && (std::lexicographical_compare(FixedArray1D<I, DIMENSION>::begin(), FixedArray1D<I, DIMENSION>::end(), lambda.begin(), lambda.end()) )); }