19 #include "libmesh/coupling_matrix.h"    26   const std::size_t max_size = std::numeric_limits<std::size_t>::max();
    28   rc_type::iterator start_range = this->
_ranges.begin();
    30   rc_type::const_iterator     other_range = other._ranges.begin();
    31   const rc_type::const_iterator other_end = other._ranges.end();
    33   for (; other_range != other_end; ++other_range)
    35       std::size_t other_range_start = other_range->first;
    36       std::size_t other_range_end = other_range->second;
    44       rc_type::iterator lb =
    45         std::upper_bound (start_range, this->
_ranges.end(),
    46                           std::make_pair(other_range_start, max_size));
    62       const std::size_t lastloc  = lb->second;
    63       libmesh_assert_less_equal(lb->first, lastloc);
    64       libmesh_assert_less_equal(lb->first, other_range_start);
    68         CouplingMatrix::rc_type::const_iterator 
next = lb;
    73             libmesh_assert_greater(
next->first, lastloc+1);
    78       CouplingMatrix::rc_type::iterator 
next = lb;
    83       if (other_range_start <= lastloc)
    84         lb->second = other_range_end;
    89         start_range = lb = this->
_ranges.emplace
    90           (next, other_range_start, other_range_end);
    98       for (
const std::size_t nextloc =
   100              std::numeric_limits<std::size_t>::max() : 
next->first;
   101            nextloc <= lb->second; ++
next)
   105           libmesh_assert_greater(nextloc, lastloc+1);
   107           lb->second = std::max(lb->second, 
next->second);
   110       CouplingMatrix::rc_type::iterator oldnext = lb;
   119   for (; other_range != other_end; ++other_range)
   120     this->
_ranges.push_back(*other_range);
 CouplingMatrix & operator &=(const CouplingMatrix &other)
The libMesh namespace provides an interface to certain functionality in the library.